diff --git a/patches/0006-Make-shared-features-config-optional.patch b/patches/0006-Make-shared-features-config-optional.patch
index c244192189..67a4450635 100644
--- a/patches/0006-Make-shared-features-config-optional.patch
+++ b/patches/0006-Make-shared-features-config-optional.patch
@@ -9,10 +9,10 @@ Modified in fork in https://github.com/pulumi/terraform-provider-azurerm/commit/
This originally included a conditional block to only set the SharedFeatures config if it had a value but this seems to have been lost during the provider config being refactored in https://github.com/hashicorp/terraform-provider-azurerm/commit/57bcf134131514ffcc962f20b12f993fad7d6060#diff-58d6a027753b50994deb7e11e4a99dde423f35844986019bd9cea5e0c94aba22
diff --git a/internal/provider/features.go b/internal/provider/features.go
-index 1c42fa1b7b..5a20738ec6 100644
+index e39c3ce0c7..aac9b65f19 100644
--- a/internal/provider/features.go
+++ b/internal/provider/features.go
-@@ -388,7 +388,7 @@ func schemaFeatures(supportLegacyTestSuite bool) *pluginsdk.Schema {
+@@ -403,7 +403,7 @@ func schemaFeatures(supportLegacyTestSuite bool) *pluginsdk.Schema {
return &pluginsdk.Schema{
Type: pluginsdk.TypeList,
diff --git a/patches/0013-Update-documentation.patch b/patches/0013-Update-documentation.patch
index ccdbdc57e4..c7c611e33b 100644
--- a/patches/0013-Update-documentation.patch
+++ b/patches/0013-Update-documentation.patch
@@ -1722,7 +1722,7 @@ index c6387f8e37..ab11365777 100644
```hcl
diff --git a/website/docs/r/kubernetes_cluster.html.markdown b/website/docs/r/kubernetes_cluster.html.markdown
-index 07e4ab531d..3da8903e82 100644
+index dd3898b6c5..f8cb8ab6f7 100644
--- a/website/docs/r/kubernetes_cluster.html.markdown
+++ b/website/docs/r/kubernetes_cluster.html.markdown
@@ -10,15 +10,9 @@ description: |-
@@ -2275,10 +2275,10 @@ index dc6b71544f..424dbbc59a 100644
* How to connect a `Private Endpoint` to a [Cosmos PostgreSQL](https://github.com/hashicorp/terraform-provider-azurerm/tree/main/examples/private-endpoint/cosmos-db/postgresql)
* How to connect a `Private Endpoint` to a [PostgreSQL Server](https://github.com/hashicorp/terraform-provider-azurerm/tree/main/examples/private-endpoint/postgresql)
diff --git a/website/docs/r/public_ip.html.markdown b/website/docs/r/public_ip.html.markdown
-index 1f4eccb6de..7d2d700d1c 100644
+index 5abc7f8954..b9bbf4c0ec 100644
--- a/website/docs/r/public_ip.html.markdown
+++ b/website/docs/r/public_ip.html.markdown
-@@ -94,7 +94,7 @@ In addition to the Arguments listed above - the following Attributes are exporte
+@@ -96,7 +96,7 @@ In addition to the Arguments listed above - the following Attributes are exporte
* `ip_address` - The IP address value that was allocated.
diff --git a/provider/cmd/pulumi-resource-azure/bridge-metadata.json b/provider/cmd/pulumi-resource-azure/bridge-metadata.json
index 424541d0bf..0ae69537ba 100644
--- a/provider/cmd/pulumi-resource-azure/bridge-metadata.json
+++ b/provider/cmd/pulumi-resource-azure/bridge-metadata.json
@@ -4979,6 +4979,15 @@
}
}
},
+ "azurerm_dashboard_grafana_managed_private_endpoint": {
+ "current": "azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint",
+ "majorVersion": 6,
+ "fields": {
+ "group_ids": {
+ "maxItemsOne": false
+ }
+ }
+ },
"azurerm_data_factory": {
"current": "azure:datafactory/factory:Factory",
"majorVersion": 6,
@@ -5829,6 +5838,10 @@
}
}
},
+ "azurerm_data_protection_backup_instance_mysql_flexible_server": {
+ "current": "azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer",
+ "majorVersion": 6
+ },
"azurerm_data_protection_backup_instance_postgresql": {
"current": "azure:dataprotection/backupInstancePostgresql:BackupInstancePostgresql",
"majorVersion": 6
@@ -6600,6 +6613,21 @@
}
}
},
+ "azurerm_dynatrace_monitor": {
+ "current": "azure:dynatrace/monitor:Monitor",
+ "majorVersion": 6,
+ "fields": {
+ "identity": {
+ "maxItemsOne": true
+ },
+ "plan": {
+ "maxItemsOne": true
+ },
+ "user": {
+ "maxItemsOne": true
+ }
+ }
+ },
"azurerm_elastic_cloud_elasticsearch": {
"current": "azure:elasticcloud/elasticsearch:Elasticsearch",
"majorVersion": 6,
@@ -13421,6 +13449,15 @@
}
}
},
+ "azurerm_mongo_cluster": {
+ "current": "azure:cosmosdb/mongoCluster:MongoCluster",
+ "majorVersion": 6,
+ "fields": {
+ "preview_features": {
+ "maxItemsOne": false
+ }
+ }
+ },
"azurerm_monitor_aad_diagnostic_setting": {
"current": "azure:monitoring/aadDiagnosticSetting:AadDiagnosticSetting",
"majorVersion": 6,
@@ -19021,6 +19058,18 @@
}
}
},
+ "azurerm_stack_hci_network_interface": {
+ "current": "azure:stack/hciNetworkInterface:HciNetworkInterface",
+ "majorVersion": 6,
+ "fields": {
+ "dns_servers": {
+ "maxItemsOne": false
+ },
+ "ip_configuration": {
+ "maxItemsOne": true
+ }
+ }
+ },
"azurerm_stack_hci_storage_path": {
"current": "azure:stack/hciStoragePath:HciStoragePath",
"majorVersion": 6
@@ -19298,6 +19347,44 @@
}
}
},
+ "azurerm_storage_account_queue_properties": {
+ "current": "azure:storage/accountQueueProperties:AccountQueueProperties",
+ "majorVersion": 6,
+ "fields": {
+ "cors_rule": {
+ "maxItemsOne": false,
+ "elem": {
+ "fields": {
+ "allowed_headers": {
+ "maxItemsOne": false
+ },
+ "allowed_methods": {
+ "maxItemsOne": false
+ },
+ "allowed_origins": {
+ "maxItemsOne": false
+ },
+ "exposed_headers": {
+ "maxItemsOne": false
+ }
+ }
+ }
+ },
+ "hour_metrics": {
+ "maxItemsOne": true
+ },
+ "logging": {
+ "maxItemsOne": true
+ },
+ "minute_metrics": {
+ "maxItemsOne": true
+ }
+ }
+ },
+ "azurerm_storage_account_static_website": {
+ "current": "azure:storage/accountStaticWebsite:AccountStaticWebsite",
+ "majorVersion": 6
+ },
"azurerm_storage_blob": {
"current": "azure:storage/blob:Blob",
"majorVersion": 6
diff --git a/provider/cmd/pulumi-resource-azure/schema.json b/provider/cmd/pulumi-resource-azure/schema.json
index 2f753ed2d6..887c68d3d6 100644
--- a/provider/cmd/pulumi-resource-azure/schema.json
+++ b/provider/cmd/pulumi-resource-azure/schema.json
@@ -69,6 +69,7 @@
"digitaltwins": "DigitalTwins",
"dns": "Dns",
"domainservices": "DomainServices",
+ "dynatrace": "Dynatrace",
"elasticcloud": "ElasticCloud",
"elasticsan": "ElasticSan",
"eventgrid": "EventGrid",
@@ -34851,7 +34852,7 @@
},
"minimumTlsVersion": {
"type": "string",
- "description": "TLS protocol version that will be used for Https. Possible values include `TLS10` and `TLS12`. Defaults to `TLS12`.\n"
+ "description": "TLS protocol version that will be used for Https. Possible values include `TLS10` and `TLS12`. Defaults to `TLS12`.\n\n\u003e **Note** Azure Services will require TLS 1.2+ by August 2025, please see this [announcement](https://azure.microsoft.com/en-us/updates/v2/update-retirement-tls1-0-tls1-1-versions-azure-services/) for more details.\n"
}
},
"type": "object",
@@ -36650,7 +36651,7 @@
},
"name": {
"type": "string",
- "description": "The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.\n",
+ "description": "The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.\n",
"willReplaceOnChanges": true
},
"size": {
@@ -42864,6 +42865,9 @@
"resourceGroup": {
"$ref": "#/types/azure:config/featuresResourceGroup:featuresResourceGroup"
},
+ "storage": {
+ "$ref": "#/types/azure:config/featuresStorage:featuresStorage"
+ },
"subscription": {
"$ref": "#/types/azure:config/featuresSubscription:featuresSubscription"
},
@@ -43025,6 +43029,14 @@
},
"type": "object"
},
+ "azure:config/featuresStorage:featuresStorage": {
+ "properties": {
+ "dataPlaneAvailable": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
"azure:config/featuresSubscription:featuresSubscription": {
"properties": {
"preventCancellationOnDestroy": {
@@ -59048,6 +59060,97 @@
}
}
},
+ "azure:dynatrace/MonitorIdentity:MonitorIdentity": {
+ "properties": {
+ "principalId": {
+ "type": "string"
+ },
+ "tenantId": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of identity used for the resource. Only possible value is `SystemAssigned`.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "type"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "principalId",
+ "tenantId",
+ "type"
+ ]
+ }
+ }
+ },
+ "azure:dynatrace/MonitorPlan:MonitorPlan": {
+ "properties": {
+ "billingCycle": {
+ "type": "string",
+ "description": "Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`.\n"
+ },
+ "effectiveDate": {
+ "type": "string",
+ "description": "Date when plan was applied.\n"
+ },
+ "plan": {
+ "type": "string",
+ "description": "Plan id as published by Dynatrace.\n"
+ },
+ "usageType": {
+ "type": "string",
+ "description": "Different usage type. Possible values are `PAYG` and `COMMITTED`.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "plan"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "effectiveDate",
+ "plan"
+ ]
+ }
+ }
+ },
+ "azure:dynatrace/MonitorUser:MonitorUser": {
+ "properties": {
+ "country": {
+ "type": "string",
+ "description": "Country of the user.\n"
+ },
+ "email": {
+ "type": "string",
+ "description": "Email of the user used by Dynatrace for contacting them if needed.\n"
+ },
+ "firstName": {
+ "type": "string",
+ "description": "First name of the user.\n"
+ },
+ "lastName": {
+ "type": "string",
+ "description": "Last name of the user.\n"
+ },
+ "phoneNumber": {
+ "type": "string",
+ "description": "phone number of the user by Dynatrace for contacting them if needed.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "country",
+ "email",
+ "firstName",
+ "lastName",
+ "phoneNumber"
+ ]
+ },
"azure:elasticcloud/ElasticsearchLogs:ElasticsearchLogs": {
"properties": {
"filteringTags": {
@@ -67968,6 +68071,9 @@
"resourceGroup": {
"$ref": "#/types/azure:index/ProviderFeaturesResourceGroup:ProviderFeaturesResourceGroup"
},
+ "storage": {
+ "$ref": "#/types/azure:index/ProviderFeaturesStorage:ProviderFeaturesStorage"
+ },
"subscription": {
"$ref": "#/types/azure:index/ProviderFeaturesSubscription:ProviderFeaturesSubscription"
},
@@ -68129,6 +68235,14 @@
},
"type": "object"
},
+ "azure:index/ProviderFeaturesStorage:ProviderFeaturesStorage": {
+ "properties": {
+ "dataPlaneAvailable": {
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
"azure:index/ProviderFeaturesSubscription:ProviderFeaturesSubscription": {
"properties": {
"preventCancellationOnDestroy": {
@@ -98730,7 +98844,7 @@
"items": {
"$ref": "#/types/azure:stack/HciLogicalNetworkSubnetIpPool:HciLogicalNetworkSubnetIpPool"
},
- "description": "One or more `ip_pool` block as defined above. Changing this forces a new resource to be created.\n",
+ "description": "One or more `ip_pool` block as defined above. Changing this forces a new resource to be created.\n\n\u003e **Note:** If `ip_pool` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignore_changes`.\n",
"willReplaceOnChanges": true
},
"routes": {
@@ -98820,6 +98934,41 @@
"sku"
]
},
+ "azure:stack/HciNetworkInterfaceIpConfiguration:HciNetworkInterfaceIpConfiguration": {
+ "properties": {
+ "gateway": {
+ "type": "string",
+ "description": "The IPv4 address of the gateway for the Network Interface.\n"
+ },
+ "prefixLength": {
+ "type": "string",
+ "description": "The prefix length for the address of the Network Interface.\n"
+ },
+ "privateIpAddress": {
+ "type": "string",
+ "description": "The IPv4 address of the IP configuration. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "subnetId": {
+ "type": "string",
+ "description": "The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "type": "object",
+ "required": [
+ "subnetId"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "gateway",
+ "prefixLength",
+ "subnetId"
+ ]
+ }
+ }
+ },
"azure:stack/getHciClusterIdentity:getHciClusterIdentity": {
"properties": {
"principalId": {
@@ -99308,10 +99457,6 @@
},
"azure:storage/AccountQueuePropertiesHourMetrics:AccountQueuePropertiesHourMetrics": {
"properties": {
- "enabled": {
- "type": "boolean",
- "description": "Indicates whether hour metrics are enabled for the Queue service.\n"
- },
"includeApis": {
"type": "boolean",
"description": "Indicates whether metrics should generate summary statistics for called API operations.\n"
@@ -99327,7 +99472,6 @@
},
"type": "object",
"required": [
- "enabled",
"version"
]
},
@@ -99364,10 +99508,6 @@
},
"azure:storage/AccountQueuePropertiesMinuteMetrics:AccountQueuePropertiesMinuteMetrics": {
"properties": {
- "enabled": {
- "type": "boolean",
- "description": "Indicates whether minute metrics are enabled for the Queue service.\n"
- },
"includeApis": {
"type": "boolean",
"description": "Indicates whether metrics should generate summary statistics for called API operations.\n"
@@ -99383,7 +99523,6 @@
},
"type": "object",
"required": [
- "enabled",
"version"
]
},
@@ -100008,7 +100147,7 @@
"properties": {
"expiry": {
"type": "string",
- "description": "The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n"
+ "description": "The time at which this Access Policy should be valid untilWhen using `storage_account_id` this should be in RFC3339 format. If using the deprecated `storage_account_name` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n"
},
"permissions": {
"type": "string",
@@ -100016,7 +100155,7 @@
},
"start": {
"type": "string",
- "description": "The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n"
+ "description": "The time at which this Access Policy should be valid from. When using `storage_account_id` this should be in RFC3339 format. If using the deprecated `storage_account_name` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n"
}
},
"type": "object",
@@ -100681,7 +100820,7 @@
"properties": {
"expiry": {
"type": "string",
- "description": "The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n"
+ "description": "The time at which this Access Policy is valid until.\n"
},
"permissions": {
"type": "string",
@@ -100689,7 +100828,7 @@
},
"start": {
"type": "string",
- "description": "The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format.\n"
+ "description": "The time at which this Access Policy is valid from.\n"
}
},
"type": "object",
@@ -151386,7 +151525,7 @@
},
"defaultNodePool": {
"$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePool:KubernetesClusterDefaultNodePool",
- "description": "A `default_node_pool` block as defined below.\n"
+ "description": "Specifies configuration for \"System\" mode node pool. A `default_node_pool` block as defined below.\n"
},
"diskEncryptionSetId": {
"type": "string",
@@ -151681,7 +151820,7 @@
},
"defaultNodePool": {
"$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePool:KubernetesClusterDefaultNodePool",
- "description": "A `default_node_pool` block as defined below.\n"
+ "description": "Specifies configuration for \"System\" mode node pool. A `default_node_pool` block as defined below.\n"
},
"diskEncryptionSetId": {
"type": "string",
@@ -151924,7 +152063,7 @@
},
"defaultNodePool": {
"$ref": "#/types/azure:containerservice/KubernetesClusterDefaultNodePool:KubernetesClusterDefaultNodePool",
- "description": "A `default_node_pool` block as defined below.\n"
+ "description": "Specifies configuration for \"System\" mode node pool. A `default_node_pool` block as defined below.\n"
},
"diskEncryptionSetId": {
"type": "string",
@@ -159676,6 +159815,258 @@
"type": "object"
}
},
+ "azure:cosmosdb/mongoCluster:MongoCluster": {
+ "description": "Manages a MongoDB Cluster using vCore Architecture.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-rg\",\n location: \"East US\",\n});\nconst exampleMongoCluster = new azure.cosmosdb.MongoCluster(\"example\", {\n name: \"example-mc\",\n resourceGroupName: example.name,\n location: example.location,\n administratorUsername: \"adminTerraform\",\n administratorPassword: \"QAZwsx123\",\n shardCount: 1,\n computeTier: \"Free\",\n highAvailabilityMode: \"Disabled\",\n storageSizeInGb: 32,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-rg\",\n location=\"East US\")\nexample_mongo_cluster = azure.cosmosdb.MongoCluster(\"example\",\n name=\"example-mc\",\n resource_group_name=example.name,\n location=example.location,\n administrator_username=\"adminTerraform\",\n administrator_password=\"QAZwsx123\",\n shard_count=1,\n compute_tier=\"Free\",\n high_availability_mode=\"Disabled\",\n storage_size_in_gb=32)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-rg\",\n Location = \"East US\",\n });\n\n var exampleMongoCluster = new Azure.CosmosDB.MongoCluster(\"example\", new()\n {\n Name = \"example-mc\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AdministratorUsername = \"adminTerraform\",\n AdministratorPassword = \"QAZwsx123\",\n ShardCount = 1,\n ComputeTier = \"Free\",\n HighAvailabilityMode = \"Disabled\",\n StorageSizeInGb = 32,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-rg\"),\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 = cosmosdb.NewMongoCluster(ctx, \"example\", \u0026cosmosdb.MongoClusterArgs{\n\t\t\tName: pulumi.String(\"example-mc\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tAdministratorUsername: pulumi.String(\"adminTerraform\"),\n\t\t\tAdministratorPassword: pulumi.String(\"QAZwsx123\"),\n\t\t\tShardCount: pulumi.Int(1),\n\t\t\tComputeTier: pulumi.String(\"Free\"),\n\t\t\tHighAvailabilityMode: pulumi.String(\"Disabled\"),\n\t\t\tStorageSizeInGb: pulumi.Int(32),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.cosmosdb.MongoCluster;\nimport com.pulumi.azure.cosmosdb.MongoClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-rg\")\n .location(\"East US\")\n .build());\n\n var exampleMongoCluster = new MongoCluster(\"exampleMongoCluster\", MongoClusterArgs.builder()\n .name(\"example-mc\")\n .resourceGroupName(example.name())\n .location(example.location())\n .administratorUsername(\"adminTerraform\")\n .administratorPassword(\"QAZwsx123\")\n .shardCount(\"1\")\n .computeTier(\"Free\")\n .highAvailabilityMode(\"Disabled\")\n .storageSizeInGb(\"32\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-rg\n location: East US\n exampleMongoCluster:\n type: azure:cosmosdb:MongoCluster\n name: example\n properties:\n name: example-mc\n resourceGroupName: ${example.name}\n location: ${example.location}\n administratorUsername: adminTerraform\n administratorPassword: QAZwsx123\n shardCount: '1'\n computeTier: Free\n highAvailabilityMode: Disabled\n storageSizeInGb: '32'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Preview Feature GeoReplicas)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-rg\",\n location: \"East US\",\n});\nconst exampleMongoCluster = new azure.cosmosdb.MongoCluster(\"example\", {\n name: \"example-mc\",\n resourceGroupName: example.name,\n location: example.location,\n administratorUsername: \"adminTerraform\",\n administratorPassword: \"QAZwsx123\",\n shardCount: 1,\n computeTier: \"M30\",\n highAvailabilityMode: \"ZoneRedundantPreferred\",\n storageSizeInGb: 64,\n previewFeatures: [\"GeoReplicas\"],\n});\nconst exampleGeoReplica = new azure.cosmosdb.MongoCluster(\"example_geo_replica\", {\n name: \"example-mc-geo\",\n resourceGroupName: example.name,\n location: \"Central US\",\n sourceServerId: exampleMongoCluster.id,\n sourceLocation: exampleMongoCluster.location,\n createMode: \"GeoReplica\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-rg\",\n location=\"East US\")\nexample_mongo_cluster = azure.cosmosdb.MongoCluster(\"example\",\n name=\"example-mc\",\n resource_group_name=example.name,\n location=example.location,\n administrator_username=\"adminTerraform\",\n administrator_password=\"QAZwsx123\",\n shard_count=1,\n compute_tier=\"M30\",\n high_availability_mode=\"ZoneRedundantPreferred\",\n storage_size_in_gb=64,\n preview_features=[\"GeoReplicas\"])\nexample_geo_replica = azure.cosmosdb.MongoCluster(\"example_geo_replica\",\n name=\"example-mc-geo\",\n resource_group_name=example.name,\n location=\"Central US\",\n source_server_id=example_mongo_cluster.id,\n source_location=example_mongo_cluster.location,\n create_mode=\"GeoReplica\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-rg\",\n Location = \"East US\",\n });\n\n var exampleMongoCluster = new Azure.CosmosDB.MongoCluster(\"example\", new()\n {\n Name = \"example-mc\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AdministratorUsername = \"adminTerraform\",\n AdministratorPassword = \"QAZwsx123\",\n ShardCount = 1,\n ComputeTier = \"M30\",\n HighAvailabilityMode = \"ZoneRedundantPreferred\",\n StorageSizeInGb = 64,\n PreviewFeatures = new[]\n {\n \"GeoReplicas\",\n },\n });\n\n var exampleGeoReplica = new Azure.CosmosDB.MongoCluster(\"example_geo_replica\", new()\n {\n Name = \"example-mc-geo\",\n ResourceGroupName = example.Name,\n Location = \"Central US\",\n SourceServerId = exampleMongoCluster.Id,\n SourceLocation = exampleMongoCluster.Location,\n CreateMode = \"GeoReplica\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-rg\"),\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\texampleMongoCluster, err := cosmosdb.NewMongoCluster(ctx, \"example\", \u0026cosmosdb.MongoClusterArgs{\n\t\t\tName: pulumi.String(\"example-mc\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tAdministratorUsername: pulumi.String(\"adminTerraform\"),\n\t\t\tAdministratorPassword: pulumi.String(\"QAZwsx123\"),\n\t\t\tShardCount: pulumi.Int(1),\n\t\t\tComputeTier: pulumi.String(\"M30\"),\n\t\t\tHighAvailabilityMode: pulumi.String(\"ZoneRedundantPreferred\"),\n\t\t\tStorageSizeInGb: pulumi.Int(64),\n\t\t\tPreviewFeatures: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"GeoReplicas\"),\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.NewMongoCluster(ctx, \"example_geo_replica\", \u0026cosmosdb.MongoClusterArgs{\n\t\t\tName: pulumi.String(\"example-mc-geo\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: pulumi.String(\"Central US\"),\n\t\t\tSourceServerId: exampleMongoCluster.ID(),\n\t\t\tSourceLocation: exampleMongoCluster.Location,\n\t\t\tCreateMode: pulumi.String(\"GeoReplica\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.cosmosdb.MongoCluster;\nimport com.pulumi.azure.cosmosdb.MongoClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-rg\")\n .location(\"East US\")\n .build());\n\n var exampleMongoCluster = new MongoCluster(\"exampleMongoCluster\", MongoClusterArgs.builder()\n .name(\"example-mc\")\n .resourceGroupName(example.name())\n .location(example.location())\n .administratorUsername(\"adminTerraform\")\n .administratorPassword(\"QAZwsx123\")\n .shardCount(\"1\")\n .computeTier(\"M30\")\n .highAvailabilityMode(\"ZoneRedundantPreferred\")\n .storageSizeInGb(\"64\")\n .previewFeatures(\"GeoReplicas\")\n .build());\n\n var exampleGeoReplica = new MongoCluster(\"exampleGeoReplica\", MongoClusterArgs.builder()\n .name(\"example-mc-geo\")\n .resourceGroupName(example.name())\n .location(\"Central US\")\n .sourceServerId(exampleMongoCluster.id())\n .sourceLocation(exampleMongoCluster.location())\n .createMode(\"GeoReplica\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-rg\n location: East US\n exampleMongoCluster:\n type: azure:cosmosdb:MongoCluster\n name: example\n properties:\n name: example-mc\n resourceGroupName: ${example.name}\n location: ${example.location}\n administratorUsername: adminTerraform\n administratorPassword: QAZwsx123\n shardCount: '1'\n computeTier: M30\n highAvailabilityMode: ZoneRedundantPreferred\n storageSizeInGb: '64'\n previewFeatures:\n - GeoReplicas\n exampleGeoReplica:\n type: azure:cosmosdb:MongoCluster\n name: example_geo_replica\n properties:\n name: example-mc-geo\n resourceGroupName: ${example.name}\n location: Central US\n sourceServerId: ${exampleMongoCluster.id}\n sourceLocation: ${exampleMongoCluster.location}\n createMode: GeoReplica\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nMongoDB Clusters can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:cosmosdb/mongoCluster:MongoCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/mongoClusters/myMongoCluster\n```\n\n",
+ "properties": {
+ "administratorPassword": {
+ "type": "string",
+ "description": "The Password associated with the `administrator_username` for the MongoDB Cluster.\n",
+ "secret": true
+ },
+ "administratorUsername": {
+ "type": "string",
+ "description": "The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created.\n"
+ },
+ "computeTier": {
+ "type": "string",
+ "description": "The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`.\n"
+ },
+ "createMode": {
+ "type": "string",
+ "description": "The creation mode for the MongoDB Cluster. Possibles values are `Default` and `GeoReplica`. Defaults to `Default`. Changing this forces a new resource to be created.\n\n\u003e **Note** The creation mode `GeoReplica` is currently in preview. It is only available when `preview_features` is set.\n"
+ },
+ "highAvailabilityMode": {
+ "type": "string",
+ "description": "The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created.\n"
+ },
+ "previewFeatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created.\n"
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`.\n"
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created.\n"
+ },
+ "shardCount": {
+ "type": "integer",
+ "description": "The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created.\n"
+ },
+ "sourceLocation": {
+ "type": "string",
+ "description": "The location of the source MongoDB Cluster. Changing this forces a new resource to be created.\n"
+ },
+ "sourceServerId": {
+ "type": "string",
+ "description": "The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created.\n"
+ },
+ "storageSizeInGb": {
+ "type": "integer",
+ "description": "The size of the data disk space for the MongoDB Cluster.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the MongoDB Cluster.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`.\n"
+ }
+ },
+ "required": [
+ "location",
+ "name",
+ "resourceGroupName"
+ ],
+ "inputProperties": {
+ "administratorPassword": {
+ "type": "string",
+ "description": "The Password associated with the `administrator_username` for the MongoDB Cluster.\n",
+ "secret": true
+ },
+ "administratorUsername": {
+ "type": "string",
+ "description": "The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "computeTier": {
+ "type": "string",
+ "description": "The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`.\n"
+ },
+ "createMode": {
+ "type": "string",
+ "description": "The creation mode for the MongoDB Cluster. Possibles values are `Default` and `GeoReplica`. Defaults to `Default`. Changing this forces a new resource to be created.\n\n\u003e **Note** The creation mode `GeoReplica` is currently in preview. It is only available when `preview_features` is set.\n",
+ "willReplaceOnChanges": true
+ },
+ "highAvailabilityMode": {
+ "type": "string",
+ "description": "The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "previewFeatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`.\n"
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "shardCount": {
+ "type": "integer",
+ "description": "The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "sourceLocation": {
+ "type": "string",
+ "description": "The location of the source MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "sourceServerId": {
+ "type": "string",
+ "description": "The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "storageSizeInGb": {
+ "type": "integer",
+ "description": "The size of the data disk space for the MongoDB Cluster.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the MongoDB Cluster.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`.\n"
+ }
+ },
+ "requiredInputs": [
+ "resourceGroupName"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering MongoCluster resources.\n",
+ "properties": {
+ "administratorPassword": {
+ "type": "string",
+ "description": "The Password associated with the `administrator_username` for the MongoDB Cluster.\n",
+ "secret": true
+ },
+ "administratorUsername": {
+ "type": "string",
+ "description": "The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "computeTier": {
+ "type": "string",
+ "description": "The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`.\n"
+ },
+ "createMode": {
+ "type": "string",
+ "description": "The creation mode for the MongoDB Cluster. Possibles values are `Default` and `GeoReplica`. Defaults to `Default`. Changing this forces a new resource to be created.\n\n\u003e **Note** The creation mode `GeoReplica` is currently in preview. It is only available when `preview_features` is set.\n",
+ "willReplaceOnChanges": true
+ },
+ "highAvailabilityMode": {
+ "type": "string",
+ "description": "The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "previewFeatures": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "publicNetworkAccess": {
+ "type": "string",
+ "description": "The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`.\n"
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "shardCount": {
+ "type": "integer",
+ "description": "The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "sourceLocation": {
+ "type": "string",
+ "description": "The location of the source MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "sourceServerId": {
+ "type": "string",
+ "description": "The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "storageSizeInGb": {
+ "type": "integer",
+ "description": "The size of the data disk space for the MongoDB Cluster.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the MongoDB Cluster.\n"
+ },
+ "version": {
+ "type": "string",
+ "description": "The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"azure:cosmosdb/mongoCollection:MongoCollection": {
"description": "Manages a Mongo Collection within a Cosmos DB Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\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});\nconst exampleMongoDatabase = new azure.cosmosdb.MongoDatabase(\"example\", {\n name: \"tfex-cosmos-mongo-db\",\n resourceGroupName: example.then(example =\u003e example.resourceGroupName),\n accountName: example.then(example =\u003e example.name),\n});\nconst exampleMongoCollection = new azure.cosmosdb.MongoCollection(\"example\", {\n name: \"tfex-cosmos-mongo-db\",\n resourceGroupName: example.then(example =\u003e example.resourceGroupName),\n accountName: example.then(example =\u003e example.name),\n databaseName: exampleMongoDatabase.name,\n defaultTtlSeconds: 777,\n shardKey: \"uniqueKey\",\n throughput: 400,\n indices: [{\n keys: [\"_id\"],\n unique: true,\n }],\n});\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\")\nexample_mongo_database = azure.cosmosdb.MongoDatabase(\"example\",\n name=\"tfex-cosmos-mongo-db\",\n resource_group_name=example.resource_group_name,\n account_name=example.name)\nexample_mongo_collection = azure.cosmosdb.MongoCollection(\"example\",\n name=\"tfex-cosmos-mongo-db\",\n resource_group_name=example.resource_group_name,\n account_name=example.name,\n database_name=example_mongo_database.name,\n default_ttl_seconds=777,\n shard_key=\"uniqueKey\",\n throughput=400,\n indices=[{\n \"keys\": [\"_id\"],\n \"unique\": True,\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Azure.CosmosDB.GetAccount.Invoke(new()\n {\n Name = \"tfex-cosmosdb-account\",\n ResourceGroupName = \"tfex-cosmosdb-account-rg\",\n });\n\n var exampleMongoDatabase = new Azure.CosmosDB.MongoDatabase(\"example\", new()\n {\n Name = \"tfex-cosmos-mongo-db\",\n ResourceGroupName = example.Apply(getAccountResult =\u003e getAccountResult.ResourceGroupName),\n AccountName = example.Apply(getAccountResult =\u003e getAccountResult.Name),\n });\n\n var exampleMongoCollection = new Azure.CosmosDB.MongoCollection(\"example\", new()\n {\n Name = \"tfex-cosmos-mongo-db\",\n ResourceGroupName = example.Apply(getAccountResult =\u003e getAccountResult.ResourceGroupName),\n AccountName = example.Apply(getAccountResult =\u003e getAccountResult.Name),\n DatabaseName = exampleMongoDatabase.Name,\n DefaultTtlSeconds = 777,\n ShardKey = \"uniqueKey\",\n Throughput = 400,\n Indices = new[]\n {\n new Azure.CosmosDB.Inputs.MongoCollectionIndexArgs\n {\n Keys = new[]\n {\n \"_id\",\n },\n Unique = true,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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\texampleMongoDatabase, err := cosmosdb.NewMongoDatabase(ctx, \"example\", \u0026cosmosdb.MongoDatabaseArgs{\n\t\t\tName: pulumi.String(\"tfex-cosmos-mongo-db\"),\n\t\t\tResourceGroupName: pulumi.String(example.ResourceGroupName),\n\t\t\tAccountName: pulumi.String(example.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cosmosdb.NewMongoCollection(ctx, \"example\", \u0026cosmosdb.MongoCollectionArgs{\n\t\t\tName: pulumi.String(\"tfex-cosmos-mongo-db\"),\n\t\t\tResourceGroupName: pulumi.String(example.ResourceGroupName),\n\t\t\tAccountName: pulumi.String(example.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\tIndices: cosmosdb.MongoCollectionIndexArray{\n\t\t\t\t\u0026cosmosdb.MongoCollectionIndexArgs{\n\t\t\t\t\tKeys: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"_id\"),\n\t\t\t\t\t},\n\t\t\t\t\tUnique: 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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.cosmosdb.CosmosdbFunctions;\nimport com.pulumi.azure.cosmosdb.inputs.GetAccountArgs;\nimport com.pulumi.azure.cosmosdb.MongoDatabase;\nimport com.pulumi.azure.cosmosdb.MongoDatabaseArgs;\nimport com.pulumi.azure.cosmosdb.MongoCollection;\nimport com.pulumi.azure.cosmosdb.MongoCollectionArgs;\nimport com.pulumi.azure.cosmosdb.inputs.MongoCollectionIndexArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = CosmosdbFunctions.getAccount(GetAccountArgs.builder()\n .name(\"tfex-cosmosdb-account\")\n .resourceGroupName(\"tfex-cosmosdb-account-rg\")\n .build());\n\n var exampleMongoDatabase = new MongoDatabase(\"exampleMongoDatabase\", MongoDatabaseArgs.builder()\n .name(\"tfex-cosmos-mongo-db\")\n .resourceGroupName(example.applyValue(getAccountResult -\u003e getAccountResult.resourceGroupName()))\n .accountName(example.applyValue(getAccountResult -\u003e getAccountResult.name()))\n .build());\n\n var exampleMongoCollection = new MongoCollection(\"exampleMongoCollection\", MongoCollectionArgs.builder()\n .name(\"tfex-cosmos-mongo-db\")\n .resourceGroupName(example.applyValue(getAccountResult -\u003e getAccountResult.resourceGroupName()))\n .accountName(example.applyValue(getAccountResult -\u003e getAccountResult.name()))\n .databaseName(exampleMongoDatabase.name())\n .defaultTtlSeconds(\"777\")\n .shardKey(\"uniqueKey\")\n .throughput(400)\n .indices(MongoCollectionIndexArgs.builder()\n .keys(\"_id\")\n .unique(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleMongoDatabase:\n type: azure:cosmosdb:MongoDatabase\n name: example\n properties:\n name: tfex-cosmos-mongo-db\n resourceGroupName: ${example.resourceGroupName}\n accountName: ${example.name}\n exampleMongoCollection:\n type: azure:cosmosdb:MongoCollection\n name: example\n properties:\n name: tfex-cosmos-mongo-db\n resourceGroupName: ${example.resourceGroupName}\n accountName: ${example.name}\n databaseName: ${exampleMongoDatabase.name}\n defaultTtlSeconds: '777'\n shardKey: uniqueKey\n throughput: 400\n indices:\n - keys:\n - _id\n unique: true\nvariables:\n example:\n fn::invoke:\n Function: azure:cosmosdb:getAccount\n Arguments:\n name: tfex-cosmosdb-account\n resourceGroupName: tfex-cosmosdb-account-rg\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
"properties": {
@@ -162501,6 +162892,155 @@
"type": "object"
}
},
+ "azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint": {
+ "description": "Manages a Dashboard Grafana Managed Private Endpoint.\n\n\u003e **NOTE:** This resource will _not_ approve the managed private endpoint connection on the linked resource. This will need to be done manually via Azure CLI, PowerShell, or AzAPI resources. See here for an example that uses AzAPI.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"Canada Central\",\n});\nconst exampleWorkspace = new azure.monitoring.Workspace(\"example\", {\n name: \"example-mamw\",\n resourceGroupName: example.name,\n location: example.location,\n publicNetworkAccessEnabled: false,\n});\nconst exampleGrafana = new azure.dashboard.Grafana(\"example\", {\n name: \"example-dg\",\n resourceGroupName: example.name,\n location: example.location,\n grafanaMajorVersion: \"10\",\n publicNetworkAccessEnabled: false,\n azureMonitorWorkspaceIntegrations: [{\n resourceId: exampleWorkspace.id,\n }],\n});\nconst exampleGrafanaManagedPrivateEndpoint = new azure.dashboard.GrafanaManagedPrivateEndpoint(\"example\", {\n grafanaId: exampleGrafana.id,\n name: \"example-mpe\",\n location: exampleGrafana.location,\n privateLinkResourceId: exampleWorkspace.id,\n groupIds: [\"prometheusMetrics\"],\n privateLinkResourceRegion: exampleGrafana.location,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"Canada Central\")\nexample_workspace = azure.monitoring.Workspace(\"example\",\n name=\"example-mamw\",\n resource_group_name=example.name,\n location=example.location,\n public_network_access_enabled=False)\nexample_grafana = azure.dashboard.Grafana(\"example\",\n name=\"example-dg\",\n resource_group_name=example.name,\n location=example.location,\n grafana_major_version=\"10\",\n public_network_access_enabled=False,\n azure_monitor_workspace_integrations=[{\n \"resource_id\": example_workspace.id,\n }])\nexample_grafana_managed_private_endpoint = azure.dashboard.GrafanaManagedPrivateEndpoint(\"example\",\n grafana_id=example_grafana.id,\n name=\"example-mpe\",\n location=example_grafana.location,\n private_link_resource_id=example_workspace.id,\n group_ids=[\"prometheusMetrics\"],\n private_link_resource_region=example_grafana.location)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"Canada Central\",\n });\n\n var exampleWorkspace = new Azure.Monitoring.Workspace(\"example\", new()\n {\n Name = \"example-mamw\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n PublicNetworkAccessEnabled = false,\n });\n\n var exampleGrafana = new Azure.Dashboard.Grafana(\"example\", new()\n {\n Name = \"example-dg\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n GrafanaMajorVersion = \"10\",\n PublicNetworkAccessEnabled = false,\n AzureMonitorWorkspaceIntegrations = new[]\n {\n new Azure.Dashboard.Inputs.GrafanaAzureMonitorWorkspaceIntegrationArgs\n {\n ResourceId = exampleWorkspace.Id,\n },\n },\n });\n\n var exampleGrafanaManagedPrivateEndpoint = new Azure.Dashboard.GrafanaManagedPrivateEndpoint(\"example\", new()\n {\n GrafanaId = exampleGrafana.Id,\n Name = \"example-mpe\",\n Location = exampleGrafana.Location,\n PrivateLinkResourceId = exampleWorkspace.Id,\n GroupIds = new[]\n {\n \"prometheusMetrics\",\n },\n PrivateLinkResourceRegion = exampleGrafana.Location,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/dashboard\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\t\tLocation: pulumi.String(\"Canada Central\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := monitoring.NewWorkspace(ctx, \"example\", \u0026monitoring.WorkspaceArgs{\n\t\t\tName: pulumi.String(\"example-mamw\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tPublicNetworkAccessEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGrafana, err := dashboard.NewGrafana(ctx, \"example\", \u0026dashboard.GrafanaArgs{\n\t\t\tName: pulumi.String(\"example-dg\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tGrafanaMajorVersion: pulumi.String(\"10\"),\n\t\t\tPublicNetworkAccessEnabled: pulumi.Bool(false),\n\t\t\tAzureMonitorWorkspaceIntegrations: dashboard.GrafanaAzureMonitorWorkspaceIntegrationArray{\n\t\t\t\t\u0026dashboard.GrafanaAzureMonitorWorkspaceIntegrationArgs{\n\t\t\t\t\tResourceId: exampleWorkspace.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 = dashboard.NewGrafanaManagedPrivateEndpoint(ctx, \"example\", \u0026dashboard.GrafanaManagedPrivateEndpointArgs{\n\t\t\tGrafanaId: exampleGrafana.ID(),\n\t\t\tName: pulumi.String(\"example-mpe\"),\n\t\t\tLocation: exampleGrafana.Location,\n\t\t\tPrivateLinkResourceId: exampleWorkspace.ID(),\n\t\t\tGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"prometheusMetrics\"),\n\t\t\t},\n\t\t\tPrivateLinkResourceRegion: exampleGrafana.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.monitoring.Workspace;\nimport com.pulumi.azure.monitoring.WorkspaceArgs;\nimport com.pulumi.azure.dashboard.Grafana;\nimport com.pulumi.azure.dashboard.GrafanaArgs;\nimport com.pulumi.azure.dashboard.inputs.GrafanaAzureMonitorWorkspaceIntegrationArgs;\nimport com.pulumi.azure.dashboard.GrafanaManagedPrivateEndpoint;\nimport com.pulumi.azure.dashboard.GrafanaManagedPrivateEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"Canada Central\")\n .build());\n\n var exampleWorkspace = new Workspace(\"exampleWorkspace\", WorkspaceArgs.builder()\n .name(\"example-mamw\")\n .resourceGroupName(example.name())\n .location(example.location())\n .publicNetworkAccessEnabled(false)\n .build());\n\n var exampleGrafana = new Grafana(\"exampleGrafana\", GrafanaArgs.builder()\n .name(\"example-dg\")\n .resourceGroupName(example.name())\n .location(example.location())\n .grafanaMajorVersion(10)\n .publicNetworkAccessEnabled(false)\n .azureMonitorWorkspaceIntegrations(GrafanaAzureMonitorWorkspaceIntegrationArgs.builder()\n .resourceId(exampleWorkspace.id())\n .build())\n .build());\n\n var exampleGrafanaManagedPrivateEndpoint = new GrafanaManagedPrivateEndpoint(\"exampleGrafanaManagedPrivateEndpoint\", GrafanaManagedPrivateEndpointArgs.builder()\n .grafanaId(exampleGrafana.id())\n .name(\"example-mpe\")\n .location(exampleGrafana.location())\n .privateLinkResourceId(exampleWorkspace.id())\n .groupIds(\"prometheusMetrics\")\n .privateLinkResourceRegion(exampleGrafana.location())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: Canada Central\n exampleWorkspace:\n type: azure:monitoring:Workspace\n name: example\n properties:\n name: example-mamw\n resourceGroupName: ${example.name}\n location: ${example.location}\n publicNetworkAccessEnabled: false\n exampleGrafana:\n type: azure:dashboard:Grafana\n name: example\n properties:\n name: example-dg\n resourceGroupName: ${example.name}\n location: ${example.location}\n grafanaMajorVersion: 10\n publicNetworkAccessEnabled: false\n azureMonitorWorkspaceIntegrations:\n - resourceId: ${exampleWorkspace.id}\n exampleGrafanaManagedPrivateEndpoint:\n type: azure:dashboard:GrafanaManagedPrivateEndpoint\n name: example\n properties:\n grafanaId: ${exampleGrafana.id}\n name: example-mpe\n location: ${exampleGrafana.location}\n privateLinkResourceId: ${exampleWorkspace.id}\n groupIds:\n - prometheusMetrics\n privateLinkResourceRegion: ${exampleGrafana.location}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDashboard Grafana Managed Private Endpoint Examples can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Dashboard/grafana/workspace1/managedPrivateEndpoints/endpoint1\n```\n\n",
+ "properties": {
+ "grafanaId": {
+ "type": "string",
+ "description": "The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n"
+ },
+ "groupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specifies a list of private link group IDs. The value of this will depend on the private link resource to which you are connecting. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Dashboard Grafana Managed Private Endpoint should exist. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for this Dashboard Grafana Managed Private Endpoint. Must be between 2 and 20 alphanumeric characters or dashes, must begin with letter and end with a letter or number. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n"
+ },
+ "privateLinkResourceId": {
+ "type": "string",
+ "description": "The ID of the resource to which this Dashboard Grafana Managed Private Endpoint will connect. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n"
+ },
+ "privateLinkResourceRegion": {
+ "type": "string",
+ "description": "The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n"
+ },
+ "requestMessage": {
+ "type": "string",
+ "description": "A message to provide in the request which will be seen by approvers.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint.\n"
+ }
+ },
+ "required": [
+ "grafanaId",
+ "location",
+ "name",
+ "privateLinkResourceId"
+ ],
+ "inputProperties": {
+ "grafanaId": {
+ "type": "string",
+ "description": "The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "groupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specifies a list of private link group IDs. The value of this will depend on the private link resource to which you are connecting. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Dashboard Grafana Managed Private Endpoint should exist. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for this Dashboard Grafana Managed Private Endpoint. Must be between 2 and 20 alphanumeric characters or dashes, must begin with letter and end with a letter or number. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "privateLinkResourceId": {
+ "type": "string",
+ "description": "The ID of the resource to which this Dashboard Grafana Managed Private Endpoint will connect. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "privateLinkResourceRegion": {
+ "type": "string",
+ "description": "The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "requestMessage": {
+ "type": "string",
+ "description": "A message to provide in the request which will be seen by approvers.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint.\n"
+ }
+ },
+ "requiredInputs": [
+ "grafanaId",
+ "privateLinkResourceId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering GrafanaManagedPrivateEndpoint resources.\n",
+ "properties": {
+ "grafanaId": {
+ "type": "string",
+ "description": "The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "groupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Specifies a list of private link group IDs. The value of this will depend on the private link resource to which you are connecting. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Dashboard Grafana Managed Private Endpoint should exist. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for this Dashboard Grafana Managed Private Endpoint. Must be between 2 and 20 alphanumeric characters or dashes, must begin with letter and end with a letter or number. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "privateLinkResourceId": {
+ "type": "string",
+ "description": "The ID of the resource to which this Dashboard Grafana Managed Private Endpoint will connect. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "privateLinkResourceRegion": {
+ "type": "string",
+ "description": "The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "requestMessage": {
+ "type": "string",
+ "description": "A message to provide in the request which will be seen by approvers.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint.\n"
+ }
+ },
+ "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## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-rg\",\n location: \"West Europe\",\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"example\", {\n name: \"example-vnet\",\n addressSpaces: [\"10.0.0.0/16\"],\n location: example.location,\n resourceGroupName: example.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"example\", {\n name: \"example-subnet\",\n resourceGroupName: example.name,\n virtualNetworkName: exampleVirtualNetwork.name,\n addressPrefixes: [\"10.0.1.0/24\"],\n});\nconst exampleService = new azure.databasemigration.Service(\"example\", {\n name: \"example-dbms\",\n location: example.location,\n resourceGroupName: example.name,\n subnetId: exampleSubnet.id,\n skuName: \"Standard_1vCores\",\n});\nconst exampleProject = new azure.databasemigration.Project(\"example\", {\n name: \"example-dbms-project\",\n serviceName: exampleService.name,\n resourceGroupName: example.name,\n location: example.location,\n sourcePlatform: \"SQL\",\n targetPlatform: \"SQLDB\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-rg\",\n location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"example\",\n name=\"example-vnet\",\n address_spaces=[\"10.0.0.0/16\"],\n location=example.location,\n resource_group_name=example.name)\nexample_subnet = azure.network.Subnet(\"example\",\n name=\"example-subnet\",\n resource_group_name=example.name,\n virtual_network_name=example_virtual_network.name,\n address_prefixes=[\"10.0.1.0/24\"])\nexample_service = azure.databasemigration.Service(\"example\",\n name=\"example-dbms\",\n location=example.location,\n resource_group_name=example.name,\n subnet_id=example_subnet.id,\n sku_name=\"Standard_1vCores\")\nexample_project = azure.databasemigration.Project(\"example\",\n name=\"example-dbms-project\",\n service_name=example_service.name,\n resource_group_name=example.name,\n location=example.location,\n source_platform=\"SQL\",\n target_platform=\"SQLDB\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-rg\",\n Location = \"West Europe\",\n });\n\n var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"example\", new()\n {\n Name = \"example-vnet\",\n AddressSpaces = new[]\n {\n \"10.0.0.0/16\",\n },\n Location = example.Location,\n ResourceGroupName = example.Name,\n });\n\n var exampleSubnet = new Azure.Network.Subnet(\"example\", new()\n {\n Name = \"example-subnet\",\n ResourceGroupName = example.Name,\n VirtualNetworkName = exampleVirtualNetwork.Name,\n AddressPrefixes = new[]\n {\n \"10.0.1.0/24\",\n },\n });\n\n var exampleService = new Azure.DatabaseMigration.Service(\"example\", new()\n {\n Name = \"example-dbms\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n SubnetId = exampleSubnet.Id,\n SkuName = \"Standard_1vCores\",\n });\n\n var exampleProject = new Azure.DatabaseMigration.Project(\"example\", new()\n {\n Name = \"example-dbms-project\",\n ServiceName = exampleService.Name,\n ResourceGroupName = example.Name,\n Location = example.Location,\n SourcePlatform = \"SQL\",\n TargetPlatform = \"SQLDB\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/databasemigration\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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\tName: pulumi.String(\"example-rg\"),\n\t\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, \"example\", \u0026network.VirtualNetworkArgs{\n\t\t\tName: pulumi.String(\"example-vnet\"),\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: 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\texampleSubnet, err := network.NewSubnet(ctx, \"example\", \u0026network.SubnetArgs{\n\t\t\tName: pulumi.String(\"example-subnet\"),\n\t\t\tResourceGroupName: example.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\texampleService, err := databasemigration.NewService(ctx, \"example\", \u0026databasemigration.ServiceArgs{\n\t\t\tName: pulumi.String(\"example-dbms\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.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\t_, err = databasemigration.NewProject(ctx, \"example\", \u0026databasemigration.ProjectArgs{\n\t\t\tName: pulumi.String(\"example-dbms-project\"),\n\t\t\tServiceName: exampleService.Name,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tSourcePlatform: pulumi.String(\"SQL\"),\n\t\t\tTargetPlatform: pulumi.String(\"SQLDB\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.network.VirtualNetwork;\nimport com.pulumi.azure.network.VirtualNetworkArgs;\nimport com.pulumi.azure.network.Subnet;\nimport com.pulumi.azure.network.SubnetArgs;\nimport com.pulumi.azure.databasemigration.Service;\nimport com.pulumi.azure.databasemigration.ServiceArgs;\nimport com.pulumi.azure.databasemigration.Project;\nimport com.pulumi.azure.databasemigration.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-rg\")\n .location(\"West Europe\")\n .build());\n\n var exampleVirtualNetwork = new VirtualNetwork(\"exampleVirtualNetwork\", VirtualNetworkArgs.builder()\n .name(\"example-vnet\")\n .addressSpaces(\"10.0.0.0/16\")\n .location(example.location())\n .resourceGroupName(example.name())\n .build());\n\n var exampleSubnet = new Subnet(\"exampleSubnet\", SubnetArgs.builder()\n .name(\"example-subnet\")\n .resourceGroupName(example.name())\n .virtualNetworkName(exampleVirtualNetwork.name())\n .addressPrefixes(\"10.0.1.0/24\")\n .build());\n\n var exampleService = new Service(\"exampleService\", ServiceArgs.builder()\n .name(\"example-dbms\")\n .location(example.location())\n .resourceGroupName(example.name())\n .subnetId(exampleSubnet.id())\n .skuName(\"Standard_1vCores\")\n .build());\n\n var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n .name(\"example-dbms-project\")\n .serviceName(exampleService.name())\n .resourceGroupName(example.name())\n .location(example.location())\n .sourcePlatform(\"SQL\")\n .targetPlatform(\"SQLDB\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-rg\n location: West Europe\n exampleVirtualNetwork:\n type: azure:network:VirtualNetwork\n name: example\n properties:\n name: example-vnet\n addressSpaces:\n - 10.0.0.0/16\n location: ${example.location}\n resourceGroupName: ${example.name}\n exampleSubnet:\n type: azure:network:Subnet\n name: example\n properties:\n name: example-subnet\n resourceGroupName: ${example.name}\n virtualNetworkName: ${exampleVirtualNetwork.name}\n addressPrefixes:\n - 10.0.1.0/24\n exampleService:\n type: azure:databasemigration:Service\n name: example\n properties:\n name: example-dbms\n location: ${example.location}\n resourceGroupName: ${example.name}\n subnetId: ${exampleSubnet.id}\n skuName: Standard_1vCores\n exampleProject:\n type: azure:databasemigration:Project\n name: example\n properties:\n name: example-dbms-project\n serviceName: ${exampleService.name}\n resourceGroupName: ${example.name}\n location: ${example.location}\n sourcePlatform: SQL\n targetPlatform: SQLDB\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
"properties": {
@@ -173432,6 +173972,99 @@
"type": "object"
}
},
+ "azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer": {
+ "description": "Manages a Backup Instance to back up MySQL Flexible Server.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleFlexibleServer = new azure.mysql.FlexibleServer(\"example\", {\n name: \"example-mysqlfs\",\n resourceGroupName: example.name,\n location: example.location,\n administratorLogin: \"adminTerraform\",\n administratorPassword: \"QAZwsx123\",\n version: \"8.0.21\",\n skuName: \"B_Standard_B1s\",\n zone: \"1\",\n});\nconst exampleBackupVault = new azure.dataprotection.BackupVault(\"example\", {\n name: \"example-backupvault\",\n resourceGroupName: example.name,\n location: example.location,\n datastoreType: \"VaultStore\",\n redundancy: \"LocallyRedundant\",\n softDelete: \"Off\",\n identity: {\n type: \"SystemAssigned\",\n },\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"example\", {\n scope: example.id,\n roleDefinitionName: \"Reader\",\n principalId: exampleBackupVault.identity.apply(identity =\u003e identity?.principalId),\n});\nconst example2 = new azure.authorization.Assignment(\"example2\", {\n scope: exampleFlexibleServer.id,\n roleDefinitionName: \"MySQL Backup And Export Operator\",\n principalId: exampleBackupVault.identity.apply(identity =\u003e identity?.principalId),\n});\nconst exampleBackupPolicyMysqlFlexibleServer = new azure.dataprotection.BackupPolicyMysqlFlexibleServer(\"example\", {\n name: \"example-dp\",\n vaultId: exampleBackupVault.id,\n backupRepeatingTimeIntervals: [\"R/2021-05-23T02:30:00+00:00/P1W\"],\n defaultRetentionRule: {\n lifeCycles: [{\n duration: \"P4M\",\n dataStoreType: \"VaultStore\",\n }],\n },\n}, {\n dependsOn: [\n exampleAssignment,\n example2,\n ],\n});\nconst exampleBackupInstanceMysqlFlexibleServer = new azure.dataprotection.BackupInstanceMysqlFlexibleServer(\"example\", {\n name: \"example-dbi\",\n location: example.location,\n vaultId: exampleBackupVault.id,\n serverId: exampleFlexibleServer.id,\n backupPolicyId: exampleBackupPolicyMysqlFlexibleServer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_flexible_server = azure.mysql.FlexibleServer(\"example\",\n name=\"example-mysqlfs\",\n resource_group_name=example.name,\n location=example.location,\n administrator_login=\"adminTerraform\",\n administrator_password=\"QAZwsx123\",\n version=\"8.0.21\",\n sku_name=\"B_Standard_B1s\",\n zone=\"1\")\nexample_backup_vault = azure.dataprotection.BackupVault(\"example\",\n name=\"example-backupvault\",\n resource_group_name=example.name,\n location=example.location,\n datastore_type=\"VaultStore\",\n redundancy=\"LocallyRedundant\",\n soft_delete=\"Off\",\n identity={\n \"type\": \"SystemAssigned\",\n })\nexample_assignment = azure.authorization.Assignment(\"example\",\n scope=example.id,\n role_definition_name=\"Reader\",\n principal_id=example_backup_vault.identity.principal_id)\nexample2 = azure.authorization.Assignment(\"example2\",\n scope=example_flexible_server.id,\n role_definition_name=\"MySQL Backup And Export Operator\",\n principal_id=example_backup_vault.identity.principal_id)\nexample_backup_policy_mysql_flexible_server = azure.dataprotection.BackupPolicyMysqlFlexibleServer(\"example\",\n name=\"example-dp\",\n vault_id=example_backup_vault.id,\n backup_repeating_time_intervals=[\"R/2021-05-23T02:30:00+00:00/P1W\"],\n default_retention_rule={\n \"life_cycles\": [{\n \"duration\": \"P4M\",\n \"data_store_type\": \"VaultStore\",\n }],\n },\n opts = pulumi.ResourceOptions(depends_on=[\n example_assignment,\n example2,\n ]))\nexample_backup_instance_mysql_flexible_server = azure.dataprotection.BackupInstanceMysqlFlexibleServer(\"example\",\n name=\"example-dbi\",\n location=example.location,\n vault_id=example_backup_vault.id,\n server_id=example_flexible_server.id,\n backup_policy_id=example_backup_policy_mysql_flexible_server.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleFlexibleServer = new Azure.MySql.FlexibleServer(\"example\", new()\n {\n Name = \"example-mysqlfs\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AdministratorLogin = \"adminTerraform\",\n AdministratorPassword = \"QAZwsx123\",\n Version = \"8.0.21\",\n SkuName = \"B_Standard_B1s\",\n Zone = \"1\",\n });\n\n var exampleBackupVault = new Azure.DataProtection.BackupVault(\"example\", new()\n {\n Name = \"example-backupvault\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n DatastoreType = \"VaultStore\",\n Redundancy = \"LocallyRedundant\",\n SoftDelete = \"Off\",\n Identity = new Azure.DataProtection.Inputs.BackupVaultIdentityArgs\n {\n Type = \"SystemAssigned\",\n },\n });\n\n var exampleAssignment = new Azure.Authorization.Assignment(\"example\", new()\n {\n Scope = example.Id,\n RoleDefinitionName = \"Reader\",\n PrincipalId = exampleBackupVault.Identity.Apply(identity =\u003e identity?.PrincipalId),\n });\n\n var example2 = new Azure.Authorization.Assignment(\"example2\", new()\n {\n Scope = exampleFlexibleServer.Id,\n RoleDefinitionName = \"MySQL Backup And Export Operator\",\n PrincipalId = exampleBackupVault.Identity.Apply(identity =\u003e identity?.PrincipalId),\n });\n\n var exampleBackupPolicyMysqlFlexibleServer = new Azure.DataProtection.BackupPolicyMysqlFlexibleServer(\"example\", new()\n {\n Name = \"example-dp\",\n VaultId = exampleBackupVault.Id,\n BackupRepeatingTimeIntervals = new[]\n {\n \"R/2021-05-23T02:30:00+00:00/P1W\",\n },\n DefaultRetentionRule = new Azure.DataProtection.Inputs.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs\n {\n LifeCycles = new[]\n {\n new Azure.DataProtection.Inputs.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArgs\n {\n Duration = \"P4M\",\n DataStoreType = \"VaultStore\",\n },\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn =\n {\n exampleAssignment,\n example2,\n },\n });\n\n var exampleBackupInstanceMysqlFlexibleServer = new Azure.DataProtection.BackupInstanceMysqlFlexibleServer(\"example\", new()\n {\n Name = \"example-dbi\",\n Location = example.Location,\n VaultId = exampleBackupVault.Id,\n ServerId = exampleFlexibleServer.Id,\n BackupPolicyId = exampleBackupPolicyMysqlFlexibleServer.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/dataprotection\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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 := mysql.NewFlexibleServer(ctx, \"example\", \u0026mysql.FlexibleServerArgs{\n\t\t\tName: pulumi.String(\"example-mysqlfs\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tAdministratorLogin: pulumi.String(\"adminTerraform\"),\n\t\t\tAdministratorPassword: pulumi.String(\"QAZwsx123\"),\n\t\t\tVersion: pulumi.String(\"8.0.21\"),\n\t\t\tSkuName: pulumi.String(\"B_Standard_B1s\"),\n\t\t\tZone: pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackupVault, err := dataprotection.NewBackupVault(ctx, \"example\", \u0026dataprotection.BackupVaultArgs{\n\t\t\tName: pulumi.String(\"example-backupvault\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tDatastoreType: pulumi.String(\"VaultStore\"),\n\t\t\tRedundancy: pulumi.String(\"LocallyRedundant\"),\n\t\t\tSoftDelete: pulumi.String(\"Off\"),\n\t\t\tIdentity: \u0026dataprotection.BackupVaultIdentityArgs{\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\texampleAssignment, err := authorization.NewAssignment(ctx, \"example\", \u0026authorization.AssignmentArgs{\n\t\t\tScope: example.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Reader\"),\n\t\t\tPrincipalId: pulumi.String(exampleBackupVault.Identity.ApplyT(func(identity dataprotection.BackupVaultIdentity) (*string, error) {\n\t\t\t\treturn \u0026identity.PrincipalId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample2, err := authorization.NewAssignment(ctx, \"example2\", \u0026authorization.AssignmentArgs{\n\t\t\tScope: exampleFlexibleServer.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"MySQL Backup And Export Operator\"),\n\t\t\tPrincipalId: pulumi.String(exampleBackupVault.Identity.ApplyT(func(identity dataprotection.BackupVaultIdentity) (*string, error) {\n\t\t\t\treturn \u0026identity.PrincipalId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackupPolicyMysqlFlexibleServer, err := dataprotection.NewBackupPolicyMysqlFlexibleServer(ctx, \"example\", \u0026dataprotection.BackupPolicyMysqlFlexibleServerArgs{\n\t\t\tName: pulumi.String(\"example-dp\"),\n\t\t\tVaultId: exampleBackupVault.ID(),\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\tDefaultRetentionRule: \u0026dataprotection.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs{\n\t\t\t\tLifeCycles: dataprotection.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArray{\n\t\t\t\t\t\u0026dataprotection.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArgs{\n\t\t\t\t\t\tDuration: pulumi.String(\"P4M\"),\n\t\t\t\t\t\tDataStoreType: pulumi.String(\"VaultStore\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleAssignment,\n\t\t\texample2,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataprotection.NewBackupInstanceMysqlFlexibleServer(ctx, \"example\", \u0026dataprotection.BackupInstanceMysqlFlexibleServerArgs{\n\t\t\tName: pulumi.String(\"example-dbi\"),\n\t\t\tLocation: example.Location,\n\t\t\tVaultId: exampleBackupVault.ID(),\n\t\t\tServerId: exampleFlexibleServer.ID(),\n\t\t\tBackupPolicyId: exampleBackupPolicyMysqlFlexibleServer.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.mysql.FlexibleServer;\nimport com.pulumi.azure.mysql.FlexibleServerArgs;\nimport com.pulumi.azure.dataprotection.BackupVault;\nimport com.pulumi.azure.dataprotection.BackupVaultArgs;\nimport com.pulumi.azure.dataprotection.inputs.BackupVaultIdentityArgs;\nimport com.pulumi.azure.authorization.Assignment;\nimport com.pulumi.azure.authorization.AssignmentArgs;\nimport com.pulumi.azure.dataprotection.BackupPolicyMysqlFlexibleServer;\nimport com.pulumi.azure.dataprotection.BackupPolicyMysqlFlexibleServerArgs;\nimport com.pulumi.azure.dataprotection.inputs.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs;\nimport com.pulumi.azure.dataprotection.BackupInstanceMysqlFlexibleServer;\nimport com.pulumi.azure.dataprotection.BackupInstanceMysqlFlexibleServerArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleFlexibleServer = new FlexibleServer(\"exampleFlexibleServer\", FlexibleServerArgs.builder()\n .name(\"example-mysqlfs\")\n .resourceGroupName(example.name())\n .location(example.location())\n .administratorLogin(\"adminTerraform\")\n .administratorPassword(\"QAZwsx123\")\n .version(\"8.0.21\")\n .skuName(\"B_Standard_B1s\")\n .zone(\"1\")\n .build());\n\n var exampleBackupVault = new BackupVault(\"exampleBackupVault\", BackupVaultArgs.builder()\n .name(\"example-backupvault\")\n .resourceGroupName(example.name())\n .location(example.location())\n .datastoreType(\"VaultStore\")\n .redundancy(\"LocallyRedundant\")\n .softDelete(\"Off\")\n .identity(BackupVaultIdentityArgs.builder()\n .type(\"SystemAssigned\")\n .build())\n .build());\n\n var exampleAssignment = new Assignment(\"exampleAssignment\", AssignmentArgs.builder()\n .scope(example.id())\n .roleDefinitionName(\"Reader\")\n .principalId(exampleBackupVault.identity().applyValue(identity -\u003e identity.principalId()))\n .build());\n\n var example2 = new Assignment(\"example2\", AssignmentArgs.builder()\n .scope(exampleFlexibleServer.id())\n .roleDefinitionName(\"MySQL Backup And Export Operator\")\n .principalId(exampleBackupVault.identity().applyValue(identity -\u003e identity.principalId()))\n .build());\n\n var exampleBackupPolicyMysqlFlexibleServer = new BackupPolicyMysqlFlexibleServer(\"exampleBackupPolicyMysqlFlexibleServer\", BackupPolicyMysqlFlexibleServerArgs.builder()\n .name(\"example-dp\")\n .vaultId(exampleBackupVault.id())\n .backupRepeatingTimeIntervals(\"R/2021-05-23T02:30:00+00:00/P1W\")\n .defaultRetentionRule(BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs.builder()\n .lifeCycles(BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArgs.builder()\n .duration(\"P4M\")\n .dataStoreType(\"VaultStore\")\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n exampleAssignment,\n example2)\n .build());\n\n var exampleBackupInstanceMysqlFlexibleServer = new BackupInstanceMysqlFlexibleServer(\"exampleBackupInstanceMysqlFlexibleServer\", BackupInstanceMysqlFlexibleServerArgs.builder()\n .name(\"example-dbi\")\n .location(example.location())\n .vaultId(exampleBackupVault.id())\n .serverId(exampleFlexibleServer.id())\n .backupPolicyId(exampleBackupPolicyMysqlFlexibleServer.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleFlexibleServer:\n type: azure:mysql:FlexibleServer\n name: example\n properties:\n name: example-mysqlfs\n resourceGroupName: ${example.name}\n location: ${example.location}\n administratorLogin: adminTerraform\n administratorPassword: QAZwsx123\n version: 8.0.21\n skuName: B_Standard_B1s\n zone: '1'\n exampleBackupVault:\n type: azure:dataprotection:BackupVault\n name: example\n properties:\n name: example-backupvault\n resourceGroupName: ${example.name}\n location: ${example.location}\n datastoreType: VaultStore\n redundancy: LocallyRedundant\n softDelete: Off\n identity:\n type: SystemAssigned\n exampleAssignment:\n type: azure:authorization:Assignment\n name: example\n properties:\n scope: ${example.id}\n roleDefinitionName: Reader\n principalId: ${exampleBackupVault.identity.principalId}\n example2:\n type: azure:authorization:Assignment\n properties:\n scope: ${exampleFlexibleServer.id}\n roleDefinitionName: MySQL Backup And Export Operator\n principalId: ${exampleBackupVault.identity.principalId}\n exampleBackupPolicyMysqlFlexibleServer:\n type: azure:dataprotection:BackupPolicyMysqlFlexibleServer\n name: example\n properties:\n name: example-dp\n vaultId: ${exampleBackupVault.id}\n backupRepeatingTimeIntervals:\n - R/2021-05-23T02:30:00+00:00/P1W\n defaultRetentionRule:\n lifeCycles:\n - duration: P4M\n dataStoreType: VaultStore\n options:\n dependson:\n - ${exampleAssignment}\n - ${example2}\n exampleBackupInstanceMysqlFlexibleServer:\n type: azure:dataprotection:BackupInstanceMysqlFlexibleServer\n name: example\n properties:\n name: example-dbi\n location: ${example.location}\n vaultId: ${exampleBackupVault.id}\n serverId: ${exampleFlexibleServer.id}\n backupPolicyId: ${exampleBackupPolicyMysqlFlexibleServer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBackup Instance MySQL Flexible Servers can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupInstances/backupInstance1\n```\n\n",
+ "properties": {
+ "backupPolicyId": {
+ "type": "string",
+ "description": "The ID of the Backup Policy.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The location of the source database. Changing this forces a new resource to be created.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created.\n"
+ },
+ "serverId": {
+ "type": "string",
+ "description": "The ID of the source server. Changing this forces a new resource to be created.\n"
+ },
+ "vaultId": {
+ "type": "string",
+ "description": "The ID of the Backup Vault within which the MySQL Flexible Server Backup Instance should exist. Changing this forces a new resource to be created.\n"
+ }
+ },
+ "required": [
+ "backupPolicyId",
+ "location",
+ "name",
+ "serverId",
+ "vaultId"
+ ],
+ "inputProperties": {
+ "backupPolicyId": {
+ "type": "string",
+ "description": "The ID of the Backup Policy.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The location of the source database. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "serverId": {
+ "type": "string",
+ "description": "The ID of the source server. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "vaultId": {
+ "type": "string",
+ "description": "The ID of the Backup Vault within which the MySQL Flexible Server Backup Instance should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "requiredInputs": [
+ "backupPolicyId",
+ "serverId",
+ "vaultId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering BackupInstanceMysqlFlexibleServer resources.\n",
+ "properties": {
+ "backupPolicyId": {
+ "type": "string",
+ "description": "The ID of the Backup Policy.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The location of the source database. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "serverId": {
+ "type": "string",
+ "description": "The ID of the source server. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "vaultId": {
+ "type": "string",
+ "description": "The ID of the Backup Vault within which the MySQL Flexible Server Backup Instance should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "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 \u003chttps://docs.microsoft.com/azure/backup/backup-azure-database-postgresql#prerequisite-permissions-for-configure-backup-and-restore\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst current = azure.core.getClientConfig({});\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example\",\n location: \"West Europe\",\n});\nconst exampleServer = new azure.postgresql.Server(\"example\", {\n name: \"example\",\n location: example.location,\n resourceGroupName: example.name,\n skuName: \"B_Gen5_2\",\n storageMb: 5120,\n backupRetentionDays: 7,\n geoRedundantBackupEnabled: false,\n autoGrowEnabled: true,\n administratorLogin: \"psqladmin\",\n administratorLoginPassword: \"H@Sh1CoR3!\",\n version: \"9.5\",\n sslEnforcementEnabled: true,\n});\nconst exampleFirewallRule = new azure.postgresql.FirewallRule(\"example\", {\n name: \"AllowAllWindowsAzureIps\",\n resourceGroupName: example.name,\n serverName: exampleServer.name,\n startIpAddress: \"0.0.0.0\",\n endIpAddress: \"0.0.0.0\",\n});\nconst exampleDatabase = new azure.postgresql.Database(\"example\", {\n name: \"example\",\n resourceGroupName: example.name,\n serverName: exampleServer.name,\n charset: \"UTF8\",\n collation: \"English_United States.1252\",\n});\nconst exampleBackupVault = new azure.dataprotection.BackupVault(\"example\", {\n name: \"example\",\n resourceGroupName: example.name,\n location: example.location,\n datastoreType: \"VaultStore\",\n redundancy: \"LocallyRedundant\",\n identity: {\n type: \"SystemAssigned\",\n },\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"example\", {\n name: \"example\",\n location: example.location,\n resourceGroupName: example.name,\n tenantId: current.then(current =\u003e current.tenantId),\n skuName: \"premium\",\n softDeleteRetentionDays: 7,\n accessPolicies: [\n {\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 {\n tenantId: exampleBackupVault.identity.apply(identity =\u003e identity?.tenantId),\n objectId: exampleBackupVault.identity.apply(identity =\u003e identity?.principalId),\n keyPermissions: [\n \"Create\",\n \"Get\",\n ],\n secretPermissions: [\n \"Set\",\n \"Get\",\n \"Delete\",\n \"Purge\",\n \"Recover\",\n ],\n },\n ],\n});\nconst exampleSecret = new azure.keyvault.Secret(\"example\", {\n name: \"example\",\n value: pulumi.interpolate`Server=${exampleServer.name}.postgres.database.azure.com;Database=${exampleDatabase.name};Port=5432;User Id=psqladmin@${exampleServer.name};Password=H@Sh1CoR3!;Ssl Mode=Require;`,\n keyVaultId: exampleKeyVault.id,\n});\nconst exampleBackupPolicyPostgresql = new azure.dataprotection.BackupPolicyPostgresql(\"example\", {\n name: \"example\",\n resourceGroupName: example.name,\n vaultName: exampleBackupVault.name,\n backupRepeatingTimeIntervals: [\"R/2021-05-23T02:30:00+00:00/P1W\"],\n defaultRetentionDuration: \"P4M\",\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"example\", {\n scope: exampleServer.id,\n roleDefinitionName: \"Reader\",\n principalId: exampleBackupVault.identity.apply(identity =\u003e identity?.principalId),\n});\nconst exampleBackupInstancePostgresql = new azure.dataprotection.BackupInstancePostgresql(\"example\", {\n name: \"example\",\n location: example.location,\n vaultId: exampleBackupVault.id,\n databaseId: exampleDatabase.id,\n backupPolicyId: exampleBackupPolicyPostgresql.id,\n databaseCredentialKeyVaultSecretId: exampleSecret.versionlessId,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example\",\n location=\"West Europe\")\nexample_server = azure.postgresql.Server(\"example\",\n name=\"example\",\n location=example.location,\n resource_group_name=example.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=\"psqladmin\",\n administrator_login_password=\"H@Sh1CoR3!\",\n version=\"9.5\",\n ssl_enforcement_enabled=True)\nexample_firewall_rule = azure.postgresql.FirewallRule(\"example\",\n name=\"AllowAllWindowsAzureIps\",\n resource_group_name=example.name,\n server_name=example_server.name,\n start_ip_address=\"0.0.0.0\",\n end_ip_address=\"0.0.0.0\")\nexample_database = azure.postgresql.Database(\"example\",\n name=\"example\",\n resource_group_name=example.name,\n server_name=example_server.name,\n charset=\"UTF8\",\n collation=\"English_United States.1252\")\nexample_backup_vault = azure.dataprotection.BackupVault(\"example\",\n name=\"example\",\n resource_group_name=example.name,\n location=example.location,\n datastore_type=\"VaultStore\",\n redundancy=\"LocallyRedundant\",\n identity={\n \"type\": \"SystemAssigned\",\n })\nexample_key_vault = azure.keyvault.KeyVault(\"example\",\n name=\"example\",\n location=example.location,\n resource_group_name=example.name,\n tenant_id=current.tenant_id,\n sku_name=\"premium\",\n soft_delete_retention_days=7,\n access_policies=[\n {\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 },\n {\n \"tenant_id\": example_backup_vault.identity.tenant_id,\n \"object_id\": example_backup_vault.identity.principal_id,\n \"key_permissions\": [\n \"Create\",\n \"Get\",\n ],\n \"secret_permissions\": [\n \"Set\",\n \"Get\",\n \"Delete\",\n \"Purge\",\n \"Recover\",\n ],\n },\n ])\nexample_secret = azure.keyvault.Secret(\"example\",\n name=\"example\",\n value=pulumi.Output.all(\n exampleServerName=example_server.name,\n exampleDatabaseName=example_database.name,\n exampleServerName1=example_server.name\n).apply(lambda resolved_outputs: f\"Server={resolved_outputs['exampleServerName']}.postgres.database.azure.com;Database={resolved_outputs['exampleDatabaseName']};Port=5432;User Id=psqladmin@{resolved_outputs['exampleServerName1']};Password=H@Sh1CoR3!;Ssl Mode=Require;\")\n,\n key_vault_id=example_key_vault.id)\nexample_backup_policy_postgresql = azure.dataprotection.BackupPolicyPostgresql(\"example\",\n name=\"example\",\n resource_group_name=example.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\")\nexample_assignment = azure.authorization.Assignment(\"example\",\n scope=example_server.id,\n role_definition_name=\"Reader\",\n principal_id=example_backup_vault.identity.principal_id)\nexample_backup_instance_postgresql = azure.dataprotection.BackupInstancePostgresql(\"example\",\n name=\"example\",\n location=example.location,\n vault_id=example_backup_vault.id,\n database_id=example_database.id,\n backup_policy_id=example_backup_policy_postgresql.id,\n database_credential_key_vault_secret_id=example_secret.versionless_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Azure.Core.GetClientConfig.Invoke();\n\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example\",\n Location = \"West Europe\",\n });\n\n var exampleServer = new Azure.PostgreSql.Server(\"example\", new()\n {\n Name = \"example\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n SkuName = \"B_Gen5_2\",\n StorageMb = 5120,\n BackupRetentionDays = 7,\n GeoRedundantBackupEnabled = false,\n AutoGrowEnabled = true,\n AdministratorLogin = \"psqladmin\",\n AdministratorLoginPassword = \"H@Sh1CoR3!\",\n Version = \"9.5\",\n SslEnforcementEnabled = true,\n });\n\n var exampleFirewallRule = new Azure.PostgreSql.FirewallRule(\"example\", new()\n {\n Name = \"AllowAllWindowsAzureIps\",\n ResourceGroupName = example.Name,\n ServerName = exampleServer.Name,\n StartIpAddress = \"0.0.0.0\",\n EndIpAddress = \"0.0.0.0\",\n });\n\n var exampleDatabase = new Azure.PostgreSql.Database(\"example\", new()\n {\n Name = \"example\",\n ResourceGroupName = example.Name,\n ServerName = exampleServer.Name,\n Charset = \"UTF8\",\n Collation = \"English_United States.1252\",\n });\n\n var exampleBackupVault = new Azure.DataProtection.BackupVault(\"example\", new()\n {\n Name = \"example\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n DatastoreType = \"VaultStore\",\n Redundancy = \"LocallyRedundant\",\n Identity = new Azure.DataProtection.Inputs.BackupVaultIdentityArgs\n {\n Type = \"SystemAssigned\",\n },\n });\n\n var exampleKeyVault = new Azure.KeyVault.KeyVault(\"example\", new()\n {\n Name = \"example\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n TenantId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.TenantId),\n SkuName = \"premium\",\n SoftDeleteRetentionDays = 7,\n AccessPolicies = new[]\n {\n new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n {\n TenantId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.TenantId),\n ObjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.ObjectId),\n KeyPermissions = new[]\n {\n \"Create\",\n \"Get\",\n },\n SecretPermissions = new[]\n {\n \"Set\",\n \"Get\",\n \"Delete\",\n \"Purge\",\n \"Recover\",\n },\n },\n new Azure.KeyVault.Inputs.KeyVaultAccessPolicyArgs\n {\n TenantId = exampleBackupVault.Identity.Apply(identity =\u003e identity?.TenantId),\n ObjectId = exampleBackupVault.Identity.Apply(identity =\u003e identity?.PrincipalId),\n KeyPermissions = new[]\n {\n \"Create\",\n \"Get\",\n },\n SecretPermissions = new[]\n {\n \"Set\",\n \"Get\",\n \"Delete\",\n \"Purge\",\n \"Recover\",\n },\n },\n },\n });\n\n var exampleSecret = new Azure.KeyVault.Secret(\"example\", new()\n {\n Name = \"example\",\n Value = Output.Tuple(exampleServer.Name, exampleDatabase.Name, exampleServer.Name).Apply(values =\u003e\n {\n var exampleServerName = values.Item1;\n var exampleDatabaseName = values.Item2;\n var exampleServerName1 = values.Item3;\n return $\"Server={exampleServerName}.postgres.database.azure.com;Database={exampleDatabaseName};Port=5432;User Id=psqladmin@{exampleServerName1};Password=H@Sh1CoR3!;Ssl Mode=Require;\";\n }),\n KeyVaultId = exampleKeyVault.Id,\n });\n\n var exampleBackupPolicyPostgresql = new Azure.DataProtection.BackupPolicyPostgresql(\"example\", new()\n {\n Name = \"example\",\n ResourceGroupName = example.Name,\n VaultName = exampleBackupVault.Name,\n BackupRepeatingTimeIntervals = new[]\n {\n \"R/2021-05-23T02:30:00+00:00/P1W\",\n },\n DefaultRetentionDuration = \"P4M\",\n });\n\n var exampleAssignment = new Azure.Authorization.Assignment(\"example\", new()\n {\n Scope = exampleServer.Id,\n RoleDefinitionName = \"Reader\",\n PrincipalId = exampleBackupVault.Identity.Apply(identity =\u003e identity?.PrincipalId),\n });\n\n var exampleBackupInstancePostgresql = new Azure.DataProtection.BackupInstancePostgresql(\"example\", new()\n {\n Name = \"example\",\n Location = example.Location,\n VaultId = exampleBackupVault.Id,\n DatabaseId = exampleDatabase.Id,\n BackupPolicyId = exampleBackupPolicyPostgresql.Id,\n DatabaseCredentialKeyVaultSecretId = exampleSecret.VersionlessId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/dataprotection\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\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, \"example\", \u0026postgresql.ServerArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.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(\"psqladmin\"),\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.NewFirewallRule(ctx, \"example\", \u0026postgresql.FirewallRuleArgs{\n\t\t\tName: pulumi.String(\"AllowAllWindowsAzureIps\"),\n\t\t\tResourceGroupName: example.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\texampleDatabase, err := postgresql.NewDatabase(ctx, \"example\", \u0026postgresql.DatabaseArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tResourceGroupName: example.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\texampleBackupVault, err := dataprotection.NewBackupVault(ctx, \"example\", \u0026dataprotection.BackupVaultArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tDatastoreType: pulumi.String(\"VaultStore\"),\n\t\t\tRedundancy: pulumi.String(\"LocallyRedundant\"),\n\t\t\tIdentity: \u0026dataprotection.BackupVaultIdentityArgs{\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\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"example\", \u0026keyvault.KeyVaultArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.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\t\u0026keyvault.KeyVaultAccessPolicyArgs{\n\t\t\t\t\tTenantId: exampleBackupVault.Identity.ApplyT(func(identity dataprotection.BackupVaultIdentity) (*string, error) {\n\t\t\t\t\t\treturn \u0026identity.TenantId, nil\n\t\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\t\tObjectId: exampleBackupVault.Identity.ApplyT(func(identity dataprotection.BackupVaultIdentity) (*string, error) {\n\t\t\t\t\t\treturn \u0026identity.PrincipalId, nil\n\t\t\t\t\t}).(pulumi.StringPtrOutput),\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\texampleSecret, err := keyvault.NewSecret(ctx, \"example\", \u0026keyvault.SecretArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tValue: pulumi.All(exampleServer.Name, exampleDatabase.Name, exampleServer.Name).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleServerName := _args[0].(string)\n\t\t\t\texampleDatabaseName := _args[1].(string)\n\t\t\t\texampleServerName1 := _args[2].(string)\n\t\t\t\treturn fmt.Sprintf(\"Server=%v.postgres.database.azure.com;Database=%v;Port=5432;User Id=psqladmin@%v;Password=H@Sh1CoR3!;Ssl Mode=Require;\", exampleServerName, exampleDatabaseName, exampleServerName1), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBackupPolicyPostgresql, err := dataprotection.NewBackupPolicyPostgresql(ctx, \"example\", \u0026dataprotection.BackupPolicyPostgresqlArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tResourceGroupName: example.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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"example\", \u0026authorization.AssignmentArgs{\n\t\t\tScope: exampleServer.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Reader\"),\n\t\t\tPrincipalId: pulumi.String(exampleBackupVault.Identity.ApplyT(func(identity dataprotection.BackupVaultIdentity) (*string, error) {\n\t\t\t\treturn \u0026identity.PrincipalId, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = dataprotection.NewBackupInstancePostgresql(ctx, \"example\", \u0026dataprotection.BackupInstancePostgresqlArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: example.Location,\n\t\t\tVaultId: exampleBackupVault.ID(),\n\t\t\tDatabaseId: exampleDatabase.ID(),\n\t\t\tBackupPolicyId: exampleBackupPolicyPostgresql.ID(),\n\t\t\tDatabaseCredentialKeyVaultSecretId: exampleSecret.VersionlessId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.CoreFunctions;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.postgresql.Server;\nimport com.pulumi.azure.postgresql.ServerArgs;\nimport com.pulumi.azure.postgresql.FirewallRule;\nimport com.pulumi.azure.postgresql.FirewallRuleArgs;\nimport com.pulumi.azure.postgresql.Database;\nimport com.pulumi.azure.postgresql.DatabaseArgs;\nimport com.pulumi.azure.dataprotection.BackupVault;\nimport com.pulumi.azure.dataprotection.BackupVaultArgs;\nimport com.pulumi.azure.dataprotection.inputs.BackupVaultIdentityArgs;\nimport com.pulumi.azure.keyvault.KeyVault;\nimport com.pulumi.azure.keyvault.KeyVaultArgs;\nimport com.pulumi.azure.keyvault.inputs.KeyVaultAccessPolicyArgs;\nimport com.pulumi.azure.keyvault.Secret;\nimport com.pulumi.azure.keyvault.SecretArgs;\nimport com.pulumi.azure.dataprotection.BackupPolicyPostgresql;\nimport com.pulumi.azure.dataprotection.BackupPolicyPostgresqlArgs;\nimport com.pulumi.azure.authorization.Assignment;\nimport com.pulumi.azure.authorization.AssignmentArgs;\nimport com.pulumi.azure.dataprotection.BackupInstancePostgresql;\nimport com.pulumi.azure.dataprotection.BackupInstancePostgresqlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = CoreFunctions.getClientConfig();\n\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example\")\n .location(\"West Europe\")\n .build());\n\n var exampleServer = new Server(\"exampleServer\", ServerArgs.builder()\n .name(\"example\")\n .location(example.location())\n .resourceGroupName(example.name())\n .skuName(\"B_Gen5_2\")\n .storageMb(5120)\n .backupRetentionDays(7)\n .geoRedundantBackupEnabled(false)\n .autoGrowEnabled(true)\n .administratorLogin(\"psqladmin\")\n .administratorLoginPassword(\"H@Sh1CoR3!\")\n .version(\"9.5\")\n .sslEnforcementEnabled(true)\n .build());\n\n var exampleFirewallRule = new FirewallRule(\"exampleFirewallRule\", FirewallRuleArgs.builder()\n .name(\"AllowAllWindowsAzureIps\")\n .resourceGroupName(example.name())\n .serverName(exampleServer.name())\n .startIpAddress(\"0.0.0.0\")\n .endIpAddress(\"0.0.0.0\")\n .build());\n\n var exampleDatabase = new Database(\"exampleDatabase\", DatabaseArgs.builder()\n .name(\"example\")\n .resourceGroupName(example.name())\n .serverName(exampleServer.name())\n .charset(\"UTF8\")\n .collation(\"English_United States.1252\")\n .build());\n\n var exampleBackupVault = new BackupVault(\"exampleBackupVault\", BackupVaultArgs.builder()\n .name(\"example\")\n .resourceGroupName(example.name())\n .location(example.location())\n .datastoreType(\"VaultStore\")\n .redundancy(\"LocallyRedundant\")\n .identity(BackupVaultIdentityArgs.builder()\n .type(\"SystemAssigned\")\n .build())\n .build());\n\n var exampleKeyVault = new KeyVault(\"exampleKeyVault\", KeyVaultArgs.builder()\n .name(\"example\")\n .location(example.location())\n .resourceGroupName(example.name())\n .tenantId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.tenantId()))\n .skuName(\"premium\")\n .softDeleteRetentionDays(7)\n .accessPolicies( \n KeyVaultAccessPolicyArgs.builder()\n .tenantId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.tenantId()))\n .objectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.objectId()))\n .keyPermissions( \n \"Create\",\n \"Get\")\n .secretPermissions( \n \"Set\",\n \"Get\",\n \"Delete\",\n \"Purge\",\n \"Recover\")\n .build(),\n KeyVaultAccessPolicyArgs.builder()\n .tenantId(exampleBackupVault.identity().applyValue(identity -\u003e identity.tenantId()))\n .objectId(exampleBackupVault.identity().applyValue(identity -\u003e identity.principalId()))\n .keyPermissions( \n \"Create\",\n \"Get\")\n .secretPermissions( \n \"Set\",\n \"Get\",\n \"Delete\",\n \"Purge\",\n \"Recover\")\n .build())\n .build());\n\n var exampleSecret = new Secret(\"exampleSecret\", SecretArgs.builder()\n .name(\"example\")\n .value(Output.tuple(exampleServer.name(), exampleDatabase.name(), exampleServer.name()).applyValue(values -\u003e {\n var exampleServerName = values.t1;\n var exampleDatabaseName = values.t2;\n var exampleServerName1 = values.t3;\n return String.format(\"Server=%s.postgres.database.azure.com;Database=%s;Port=5432;User Id=psqladmin@%s;Password=H@Sh1CoR3!;Ssl Mode=Require;\", exampleServerName,exampleDatabaseName,exampleServerName1);\n }))\n .keyVaultId(exampleKeyVault.id())\n .build());\n\n var exampleBackupPolicyPostgresql = new BackupPolicyPostgresql(\"exampleBackupPolicyPostgresql\", BackupPolicyPostgresqlArgs.builder()\n .name(\"example\")\n .resourceGroupName(example.name())\n .vaultName(exampleBackupVault.name())\n .backupRepeatingTimeIntervals(\"R/2021-05-23T02:30:00+00:00/P1W\")\n .defaultRetentionDuration(\"P4M\")\n .build());\n\n var exampleAssignment = new Assignment(\"exampleAssignment\", AssignmentArgs.builder()\n .scope(exampleServer.id())\n .roleDefinitionName(\"Reader\")\n .principalId(exampleBackupVault.identity().applyValue(identity -\u003e identity.principalId()))\n .build());\n\n var exampleBackupInstancePostgresql = new BackupInstancePostgresql(\"exampleBackupInstancePostgresql\", BackupInstancePostgresqlArgs.builder()\n .name(\"example\")\n .location(example.location())\n .vaultId(exampleBackupVault.id())\n .databaseId(exampleDatabase.id())\n .backupPolicyId(exampleBackupPolicyPostgresql.id())\n .databaseCredentialKeyVaultSecretId(exampleSecret.versionlessId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example\n location: West Europe\n exampleServer:\n type: azure:postgresql:Server\n name: example\n properties:\n name: example\n location: ${example.location}\n resourceGroupName: ${example.name}\n skuName: B_Gen5_2\n storageMb: 5120\n backupRetentionDays: 7\n geoRedundantBackupEnabled: false\n autoGrowEnabled: true\n administratorLogin: psqladmin\n administratorLoginPassword: H@Sh1CoR3!\n version: '9.5'\n sslEnforcementEnabled: true\n exampleFirewallRule:\n type: azure:postgresql:FirewallRule\n name: example\n properties:\n name: AllowAllWindowsAzureIps\n resourceGroupName: ${example.name}\n serverName: ${exampleServer.name}\n startIpAddress: 0.0.0.0\n endIpAddress: 0.0.0.0\n exampleDatabase:\n type: azure:postgresql:Database\n name: example\n properties:\n name: example\n resourceGroupName: ${example.name}\n serverName: ${exampleServer.name}\n charset: UTF8\n collation: English_United States.1252\n exampleBackupVault:\n type: azure:dataprotection:BackupVault\n name: example\n properties:\n name: example\n resourceGroupName: ${example.name}\n location: ${example.location}\n datastoreType: VaultStore\n redundancy: LocallyRedundant\n identity:\n type: SystemAssigned\n exampleKeyVault:\n type: azure:keyvault:KeyVault\n name: example\n properties:\n name: example\n location: ${example.location}\n resourceGroupName: ${example.name}\n tenantId: ${current.tenantId}\n skuName: premium\n softDeleteRetentionDays: 7\n accessPolicies:\n - tenantId: ${current.tenantId}\n objectId: ${current.objectId}\n keyPermissions:\n - Create\n - Get\n secretPermissions:\n - Set\n - Get\n - Delete\n - Purge\n - Recover\n - tenantId: ${exampleBackupVault.identity.tenantId}\n objectId: ${exampleBackupVault.identity.principalId}\n keyPermissions:\n - Create\n - Get\n secretPermissions:\n - Set\n - Get\n - Delete\n - Purge\n - Recover\n exampleSecret:\n type: azure:keyvault:Secret\n name: example\n properties:\n name: example\n value: Server=${exampleServer.name}.postgres.database.azure.com;Database=${exampleDatabase.name};Port=5432;User Id=psqladmin@${exampleServer.name};Password=H@Sh1CoR3!;Ssl Mode=Require;\n keyVaultId: ${exampleKeyVault.id}\n exampleBackupPolicyPostgresql:\n type: azure:dataprotection:BackupPolicyPostgresql\n name: example\n properties:\n name: example\n resourceGroupName: ${example.name}\n vaultName: ${exampleBackupVault.name}\n backupRepeatingTimeIntervals:\n - R/2021-05-23T02:30:00+00:00/P1W\n defaultRetentionDuration: P4M\n exampleAssignment:\n type: azure:authorization:Assignment\n name: example\n properties:\n scope: ${exampleServer.id}\n roleDefinitionName: Reader\n principalId: ${exampleBackupVault.identity.principalId}\n exampleBackupInstancePostgresql:\n type: azure:dataprotection:BackupInstancePostgresql\n name: example\n properties:\n name: example\n location: ${example.location}\n vaultId: ${exampleBackupVault.id}\n databaseId: ${exampleDatabase.id}\n backupPolicyId: ${exampleBackupPolicyPostgresql.id}\n databaseCredentialKeyVaultSecretId: ${exampleSecret.versionlessId}\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
"properties": {
@@ -181032,6 +181665,166 @@
"type": "object"
}
},
+ "azure:dynatrace/monitor:Monitor": {
+ "description": "Manages Dynatrace monitors.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleMonitor:\n type: azure:dynatrace:Monitor\n name: example\n properties:\n name: exmpledynatracemonitor\n resourceGroupName: ${example.name}\n location: ${test.location}\n monitoringEnabled: true\n marketplaceSubscriptionStatus: Active\n identity:\n type: SystemAssigned\n user:\n firstName: Alice\n lastName: Bobab\n email: alice@microsoft.com\n phoneNumber: '123456'\n country: westus\n plan:\n usageType: COMMITTED\n billingCycle: MONTHLY\n plan: azureportalintegration_privatepreview@TIDhjdtn7tfnxcy\n effectiveDate: 2019-08-30T15:14:33Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDynatrace monitor can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:dynatrace/monitor:Monitor example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Dynatrace.Observability/monitors/monitor1\n```\n\n",
+ "properties": {
+ "identity": {
+ "$ref": "#/types/azure:dynatrace/MonitorIdentity:MonitorIdentity",
+ "description": "The kind of managed identity assigned to this resource. A `identity` block as defined below.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created.\n"
+ },
+ "marketplaceSubscription": {
+ "type": "string",
+ "description": "Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in time, the resource will go in Suspended state. Possible values are `Active` and `Suspended`.\n"
+ },
+ "monitoringEnabled": {
+ "type": "boolean",
+ "description": "Flag specifying if the resource monitoring is enabled or disabled. Default is `true`.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the Dynatrace monitor. Changing this forces a new resource to be created.\n"
+ },
+ "plan": {
+ "$ref": "#/types/azure:dynatrace/MonitorPlan:MonitorPlan",
+ "description": "Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created.\n"
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the resource.\n"
+ },
+ "user": {
+ "$ref": "#/types/azure:dynatrace/MonitorUser:MonitorUser",
+ "description": "User's information. A `user` block as defined below. Chainging this forces a new resource to be created.\n"
+ }
+ },
+ "required": [
+ "identity",
+ "location",
+ "marketplaceSubscription",
+ "name",
+ "plan",
+ "resourceGroupName",
+ "user"
+ ],
+ "inputProperties": {
+ "identity": {
+ "$ref": "#/types/azure:dynatrace/MonitorIdentity:MonitorIdentity",
+ "description": "The kind of managed identity assigned to this resource. A `identity` block as defined below.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "marketplaceSubscription": {
+ "type": "string",
+ "description": "Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in time, the resource will go in Suspended state. Possible values are `Active` and `Suspended`.\n",
+ "willReplaceOnChanges": true
+ },
+ "monitoringEnabled": {
+ "type": "boolean",
+ "description": "Flag specifying if the resource monitoring is enabled or disabled. Default is `true`.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the Dynatrace monitor. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "plan": {
+ "$ref": "#/types/azure:dynatrace/MonitorPlan:MonitorPlan",
+ "description": "Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the resource.\n"
+ },
+ "user": {
+ "$ref": "#/types/azure:dynatrace/MonitorUser:MonitorUser",
+ "description": "User's information. A `user` block as defined below. Chainging this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "requiredInputs": [
+ "identity",
+ "marketplaceSubscription",
+ "plan",
+ "resourceGroupName",
+ "user"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering Monitor resources.\n",
+ "properties": {
+ "identity": {
+ "$ref": "#/types/azure:dynatrace/MonitorIdentity:MonitorIdentity",
+ "description": "The kind of managed identity assigned to this resource. A `identity` block as defined below.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "marketplaceSubscription": {
+ "type": "string",
+ "description": "Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in time, the resource will go in Suspended state. Possible values are `Active` and `Suspended`.\n",
+ "willReplaceOnChanges": true
+ },
+ "monitoringEnabled": {
+ "type": "boolean",
+ "description": "Flag specifying if the resource monitoring is enabled or disabled. Default is `true`.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the Dynatrace monitor. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "plan": {
+ "$ref": "#/types/azure:dynatrace/MonitorPlan:MonitorPlan",
+ "description": "Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the resource.\n"
+ },
+ "user": {
+ "$ref": "#/types/azure:dynatrace/MonitorUser:MonitorUser",
+ "description": "User's information. A `user` block as defined below. Chainging this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "type": "object"
+ }
+ },
"azure:elasticcloud/elasticsearch:Elasticsearch": {
"description": "Manages an Elasticsearch in Elastic Cloud.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst test = new azure.core.ResourceGroup(\"test\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst testElasticsearch = new azure.elasticcloud.Elasticsearch(\"test\", {\n name: \"example-elasticsearch\",\n resourceGroupName: test.name,\n location: test.location,\n skuName: \"ess-consumption-2024_Monthly\",\n elasticCloudEmailAddress: \"user@example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest = azure.core.ResourceGroup(\"test\",\n name=\"example-resources\",\n location=\"West Europe\")\ntest_elasticsearch = azure.elasticcloud.Elasticsearch(\"test\",\n name=\"example-elasticsearch\",\n resource_group_name=test.name,\n location=test.location,\n sku_name=\"ess-consumption-2024_Monthly\",\n elastic_cloud_email_address=\"user@example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Azure.Core.ResourceGroup(\"test\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var testElasticsearch = new Azure.ElasticCloud.Elasticsearch(\"test\", new()\n {\n Name = \"example-elasticsearch\",\n ResourceGroupName = test.Name,\n Location = test.Location,\n SkuName = \"ess-consumption-2024_Monthly\",\n ElasticCloudEmailAddress = \"user@example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/elasticcloud\"\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 := core.NewResourceGroup(ctx, \"test\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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 = elasticcloud.NewElasticsearch(ctx, \"test\", \u0026elasticcloud.ElasticsearchArgs{\n\t\t\tName: pulumi.String(\"example-elasticsearch\"),\n\t\t\tResourceGroupName: test.Name,\n\t\t\tLocation: test.Location,\n\t\t\tSkuName: pulumi.String(\"ess-consumption-2024_Monthly\"),\n\t\t\tElasticCloudEmailAddress: pulumi.String(\"user@example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.elasticcloud.Elasticsearch;\nimport com.pulumi.azure.elasticcloud.ElasticsearchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new ResourceGroup(\"test\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var testElasticsearch = new Elasticsearch(\"testElasticsearch\", ElasticsearchArgs.builder()\n .name(\"example-elasticsearch\")\n .resourceGroupName(test.name())\n .location(test.location())\n .skuName(\"ess-consumption-2024_Monthly\")\n .elasticCloudEmailAddress(\"user@example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n testElasticsearch:\n type: azure:elasticcloud:Elasticsearch\n name: test\n properties:\n name: example-elasticsearch\n resourceGroupName: ${test.name}\n location: ${test.location}\n skuName: ess-consumption-2024_Monthly\n elasticCloudEmailAddress: user@example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nElasticsearch's can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:elasticcloud/elasticsearch:Elasticsearch example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Elastic/monitors/monitor1\n```\n\n",
"properties": {
@@ -199718,7 +200511,7 @@
}
},
"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## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: LoadBalancerRG\n location: West Europe\n examplePublicIp:\n type: azure:network:PublicIp\n name: example\n properties:\n name: PublicIPForLB\n location: West US\n resourceGroupName: ${example.name}\n allocationMethod: Static\n exampleLoadBalancer:\n type: azure:lb:LoadBalancer\n name: example\n properties:\n name: TestLoadBalancer\n location: West US\n resourceGroupName: ${example.name}\n frontendIpConfigurations:\n - name: PublicIPAddress\n publicIpAddressId: ${examplePublicIp.id}\n exampleBackendAddressPool:\n type: azure:lb:BackendAddressPool\n name: example\n properties:\n resourceGroupName: ${example.name}\n loadbalancerId: ${exampleLoadBalancer.id}\n name: be\n exampleNatRule:\n type: azure:lb:NatRule\n name: example\n properties:\n resourceGroupName: ${example.name}\n loadbalancerId: ${exampleLoadBalancer.id}\n name: RDPAccess\n protocol: Tcp\n frontendPort: 3389\n backendPort: 3389\n frontendIpConfigurationName: PublicIPAddress\n example1:\n type: azure:lb:NatRule\n properties:\n resourceGroupName: ${example.name}\n loadbalancerId: ${exampleLoadBalancer.id}\n name: RDPAccess\n protocol: Tcp\n frontendPortStart: 3000\n frontendPortEnd: 3389\n backendPort: 3389\n backendAddressPoolId: ${exampleBackendAddressPool.id}\n frontendIpConfigurationName: PublicIPAddress\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
+ "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## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"LoadBalancerRG\",\n location: \"West Europe\",\n});\nconst examplePublicIp = new azure.network.PublicIp(\"example\", {\n name: \"PublicIPForLB\",\n location: \"West US\",\n resourceGroupName: example.name,\n allocationMethod: \"Static\",\n});\nconst exampleLoadBalancer = new azure.lb.LoadBalancer(\"example\", {\n name: \"TestLoadBalancer\",\n location: \"West US\",\n resourceGroupName: example.name,\n frontendIpConfigurations: [{\n name: \"PublicIPAddress\",\n publicIpAddressId: examplePublicIp.id,\n }],\n});\nconst exampleBackendAddressPool = new azure.lb.BackendAddressPool(\"example\", {\n loadbalancerId: exampleLoadBalancer.id,\n name: \"be\",\n});\nconst exampleNatRule = new azure.lb.NatRule(\"example\", {\n resourceGroupName: example.name,\n loadbalancerId: exampleLoadBalancer.id,\n name: \"RDPAccess\",\n protocol: \"Tcp\",\n frontendPort: 3389,\n backendPort: 3389,\n frontendIpConfigurationName: \"PublicIPAddress\",\n});\nconst example1 = new azure.lb.NatRule(\"example1\", {\n resourceGroupName: example.name,\n loadbalancerId: exampleLoadBalancer.id,\n name: \"RDPAccess\",\n protocol: \"Tcp\",\n frontendPortStart: 3000,\n frontendPortEnd: 3389,\n backendPort: 3389,\n backendAddressPoolId: exampleBackendAddressPool.id,\n frontendIpConfigurationName: \"PublicIPAddress\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"LoadBalancerRG\",\n location=\"West Europe\")\nexample_public_ip = azure.network.PublicIp(\"example\",\n name=\"PublicIPForLB\",\n location=\"West US\",\n resource_group_name=example.name,\n allocation_method=\"Static\")\nexample_load_balancer = azure.lb.LoadBalancer(\"example\",\n name=\"TestLoadBalancer\",\n location=\"West US\",\n resource_group_name=example.name,\n frontend_ip_configurations=[{\n \"name\": \"PublicIPAddress\",\n \"public_ip_address_id\": example_public_ip.id,\n }])\nexample_backend_address_pool = azure.lb.BackendAddressPool(\"example\",\n loadbalancer_id=example_load_balancer.id,\n name=\"be\")\nexample_nat_rule = azure.lb.NatRule(\"example\",\n resource_group_name=example.name,\n loadbalancer_id=example_load_balancer.id,\n name=\"RDPAccess\",\n protocol=\"Tcp\",\n frontend_port=3389,\n backend_port=3389,\n frontend_ip_configuration_name=\"PublicIPAddress\")\nexample1 = azure.lb.NatRule(\"example1\",\n resource_group_name=example.name,\n loadbalancer_id=example_load_balancer.id,\n name=\"RDPAccess\",\n protocol=\"Tcp\",\n frontend_port_start=3000,\n frontend_port_end=3389,\n backend_port=3389,\n backend_address_pool_id=example_backend_address_pool.id,\n frontend_ip_configuration_name=\"PublicIPAddress\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"LoadBalancerRG\",\n Location = \"West Europe\",\n });\n\n var examplePublicIp = new Azure.Network.PublicIp(\"example\", new()\n {\n Name = \"PublicIPForLB\",\n Location = \"West US\",\n ResourceGroupName = example.Name,\n AllocationMethod = \"Static\",\n });\n\n var exampleLoadBalancer = new Azure.Lb.LoadBalancer(\"example\", new()\n {\n Name = \"TestLoadBalancer\",\n Location = \"West US\",\n ResourceGroupName = example.Name,\n FrontendIpConfigurations = new[]\n {\n new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs\n {\n Name = \"PublicIPAddress\",\n PublicIpAddressId = examplePublicIp.Id,\n },\n },\n });\n\n var exampleBackendAddressPool = new Azure.Lb.BackendAddressPool(\"example\", new()\n {\n LoadbalancerId = exampleLoadBalancer.Id,\n Name = \"be\",\n });\n\n var exampleNatRule = new Azure.Lb.NatRule(\"example\", new()\n {\n ResourceGroupName = example.Name,\n LoadbalancerId = exampleLoadBalancer.Id,\n Name = \"RDPAccess\",\n Protocol = \"Tcp\",\n FrontendPort = 3389,\n BackendPort = 3389,\n FrontendIpConfigurationName = \"PublicIPAddress\",\n });\n\n var example1 = new Azure.Lb.NatRule(\"example1\", new()\n {\n ResourceGroupName = example.Name,\n LoadbalancerId = exampleLoadBalancer.Id,\n Name = \"RDPAccess\",\n Protocol = \"Tcp\",\n FrontendPortStart = 3000,\n FrontendPortEnd = 3389,\n BackendPort = 3389,\n BackendAddressPoolId = exampleBackendAddressPool.Id,\n FrontendIpConfigurationName = \"PublicIPAddress\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/lb\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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\tName: pulumi.String(\"LoadBalancerRG\"),\n\t\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, \"example\", \u0026network.PublicIpArgs{\n\t\t\tName: pulumi.String(\"PublicIPForLB\"),\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: example.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, \"example\", \u0026lb.LoadBalancerArgs{\n\t\t\tName: pulumi.String(\"TestLoadBalancer\"),\n\t\t\tLocation: pulumi.String(\"West US\"),\n\t\t\tResourceGroupName: example.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, \"example\", \u0026lb.BackendAddressPoolArgs{\n\t\t\tLoadbalancerId: exampleLoadBalancer.ID(),\n\t\t\tName: pulumi.String(\"be\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewNatRule(ctx, \"example\", \u0026lb.NatRuleArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLoadbalancerId: exampleLoadBalancer.ID(),\n\t\t\tName: pulumi.String(\"RDPAccess\"),\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\t_, err = lb.NewNatRule(ctx, \"example1\", \u0026lb.NatRuleArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLoadbalancerId: exampleLoadBalancer.ID(),\n\t\t\tName: pulumi.String(\"RDPAccess\"),\n\t\t\tProtocol: pulumi.String(\"Tcp\"),\n\t\t\tFrontendPortStart: pulumi.Int(3000),\n\t\t\tFrontendPortEnd: pulumi.Int(3389),\n\t\t\tBackendPort: pulumi.Int(3389),\n\t\t\tBackendAddressPoolId: exampleBackendAddressPool.ID(),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.network.PublicIp;\nimport com.pulumi.azure.network.PublicIpArgs;\nimport com.pulumi.azure.lb.LoadBalancer;\nimport com.pulumi.azure.lb.LoadBalancerArgs;\nimport com.pulumi.azure.lb.inputs.LoadBalancerFrontendIpConfigurationArgs;\nimport com.pulumi.azure.lb.BackendAddressPool;\nimport com.pulumi.azure.lb.BackendAddressPoolArgs;\nimport com.pulumi.azure.lb.NatRule;\nimport com.pulumi.azure.lb.NatRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"LoadBalancerRG\")\n .location(\"West Europe\")\n .build());\n\n var examplePublicIp = new PublicIp(\"examplePublicIp\", PublicIpArgs.builder()\n .name(\"PublicIPForLB\")\n .location(\"West US\")\n .resourceGroupName(example.name())\n .allocationMethod(\"Static\")\n .build());\n\n var exampleLoadBalancer = new LoadBalancer(\"exampleLoadBalancer\", LoadBalancerArgs.builder()\n .name(\"TestLoadBalancer\")\n .location(\"West US\")\n .resourceGroupName(example.name())\n .frontendIpConfigurations(LoadBalancerFrontendIpConfigurationArgs.builder()\n .name(\"PublicIPAddress\")\n .publicIpAddressId(examplePublicIp.id())\n .build())\n .build());\n\n var exampleBackendAddressPool = new BackendAddressPool(\"exampleBackendAddressPool\", BackendAddressPoolArgs.builder()\n .loadbalancerId(exampleLoadBalancer.id())\n .name(\"be\")\n .build());\n\n var exampleNatRule = new NatRule(\"exampleNatRule\", NatRuleArgs.builder()\n .resourceGroupName(example.name())\n .loadbalancerId(exampleLoadBalancer.id())\n .name(\"RDPAccess\")\n .protocol(\"Tcp\")\n .frontendPort(3389)\n .backendPort(3389)\n .frontendIpConfigurationName(\"PublicIPAddress\")\n .build());\n\n var example1 = new NatRule(\"example1\", NatRuleArgs.builder()\n .resourceGroupName(example.name())\n .loadbalancerId(exampleLoadBalancer.id())\n .name(\"RDPAccess\")\n .protocol(\"Tcp\")\n .frontendPortStart(3000)\n .frontendPortEnd(3389)\n .backendPort(3389)\n .backendAddressPoolId(exampleBackendAddressPool.id())\n .frontendIpConfigurationName(\"PublicIPAddress\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: LoadBalancerRG\n location: West Europe\n examplePublicIp:\n type: azure:network:PublicIp\n name: example\n properties:\n name: PublicIPForLB\n location: West US\n resourceGroupName: ${example.name}\n allocationMethod: Static\n exampleLoadBalancer:\n type: azure:lb:LoadBalancer\n name: example\n properties:\n name: TestLoadBalancer\n location: West US\n resourceGroupName: ${example.name}\n frontendIpConfigurations:\n - name: PublicIPAddress\n publicIpAddressId: ${examplePublicIp.id}\n exampleBackendAddressPool:\n type: azure:lb:BackendAddressPool\n name: example\n properties:\n loadbalancerId: ${exampleLoadBalancer.id}\n name: be\n exampleNatRule:\n type: azure:lb:NatRule\n name: example\n properties:\n resourceGroupName: ${example.name}\n loadbalancerId: ${exampleLoadBalancer.id}\n name: RDPAccess\n protocol: Tcp\n frontendPort: 3389\n backendPort: 3389\n frontendIpConfigurationName: PublicIPAddress\n example1:\n type: azure:lb:NatRule\n properties:\n resourceGroupName: ${example.name}\n loadbalancerId: ${exampleLoadBalancer.id}\n name: RDPAccess\n protocol: Tcp\n frontendPortStart: 3000\n frontendPortEnd: 3389\n backendPort: 3389\n backendAddressPoolId: ${exampleBackendAddressPool.id}\n frontendIpConfigurationName: PublicIPAddress\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
"properties": {
"backendAddressPoolId": {
"type": "string",
@@ -214841,6 +215634,13 @@
"shortTermRetentionDays": {
"type": "integer",
"description": "The backup retention period in days. This is how many days Point-in-Time Restore will be supported.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the resource.\n"
}
},
"required": [
@@ -214871,6 +215671,13 @@
"shortTermRetentionDays": {
"type": "integer",
"description": "The backup retention period in days. This is how many days Point-in-Time Restore will be supported.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the resource.\n"
}
},
"requiredInputs": [
@@ -214901,6 +215708,13 @@
"shortTermRetentionDays": {
"type": "integer",
"description": "The backup retention period in days. This is how many days Point-in-Time Restore will be supported.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags to assign to the resource.\n"
}
},
"type": "object"
@@ -225821,6 +226635,10 @@
"type": "string",
"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"
},
+ "domainNameLabelScope": {
+ "type": "string",
+ "description": "Scope for the domain name label. If a domain name label scope is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. Possible values are `NoReuse`, `ResourceGroupReuse`, `SubscriptionReuse` and `TenantReuse`. Changing this forces a new Public IP to be created.\n"
+ },
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.\n"
@@ -225916,6 +226734,10 @@
"type": "string",
"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"
},
+ "domainNameLabelScope": {
+ "type": "string",
+ "description": "Scope for the domain name label. If a domain name label scope is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. Possible values are `NoReuse`, `ResourceGroupReuse`, `SubscriptionReuse` and `TenantReuse`. Changing this forces a new Public IP to be created.\n"
+ },
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.\n",
@@ -226011,6 +226833,10 @@
"type": "string",
"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"
},
+ "domainNameLabelScope": {
+ "type": "string",
+ "description": "Scope for the domain name label. If a domain name label scope is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. Possible values are `NoReuse`, `ResourceGroupReuse`, `SubscriptionReuse` and `TenantReuse`. Changing this forces a new Public IP to be created.\n"
+ },
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.\n",
@@ -226125,6 +226951,10 @@
"type": "string",
"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\n\u003e **Note:** Public IP Prefix can only be created with Standard SKUs at this time.\n"
},
+ "skuTier": {
+ "type": "string",
+ "description": "The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.\n"
+ },
"tags": {
"type": "object",
"additionalProperties": {
@@ -226177,6 +227007,11 @@
"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\n\u003e **Note:** Public IP Prefix can only be created with Standard SKUs at this time.\n",
"willReplaceOnChanges": true
},
+ "skuTier": {
+ "type": "string",
+ "description": "The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
"tags": {
"type": "object",
"additionalProperties": {
@@ -226233,6 +227068,11 @@
"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\n\u003e **Note:** Public IP Prefix can only be created with Standard SKUs at this time.\n",
"willReplaceOnChanges": true
},
+ "skuTier": {
+ "type": "string",
+ "description": "The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
"tags": {
"type": "object",
"additionalProperties": {
@@ -227161,8 +228001,7 @@
},
"defaultOutboundAccessEnabled": {
"type": "boolean",
- "description": "Enable default outbound access to the internet for the subnet. Defaults to `true`.\n",
- "willReplaceOnChanges": true
+ "description": "Enable default outbound access to the internet for the subnet. Defaults to `true`.\n"
},
"delegations": {
"type": "array",
@@ -227226,8 +228065,7 @@
},
"defaultOutboundAccessEnabled": {
"type": "boolean",
- "description": "Enable default outbound access to the internet for the subnet. Defaults to `true`.\n",
- "willReplaceOnChanges": true
+ "description": "Enable default outbound access to the internet for the subnet. Defaults to `true`.\n"
},
"delegations": {
"type": "array",
@@ -233721,6 +234559,10 @@
"type": "string",
"description": "The user-friendly name for the Cloud VM Cluster. The name does not need to be unique..\n"
},
+ "domain": {
+ "type": "string",
+ "description": "The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.\n"
+ },
"giVersion": {
"type": "string",
"description": "A valid Oracle Grid Infrastructure (GI) software version.\n"
@@ -233761,6 +234603,14 @@
"type": "string",
"description": "The name of the Resource Group where the Cloud VM Cluster should exist.\n"
},
+ "scanListenerPortTcp": {
+ "type": "integer",
+ "description": "The TCP Single Client Access Name (SCAN) port. The default port to 1521.\n"
+ },
+ "scanListenerPortTcpSsl": {
+ "type": "integer",
+ "description": "The TCPS Single Client Access Name (SCAN) port. The default port to 2484.\n"
+ },
"sparseDiskgroupEnabled": {
"type": "boolean",
"description": "If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created.\n"
@@ -233790,6 +234640,10 @@
"virtualNetworkId": {
"type": "string",
"description": "The ID of the Virtual Network associated with the Cloud VM Cluster.\n"
+ },
+ "zoneId": {
+ "type": "string",
+ "description": "The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.\n"
}
},
"required": [
@@ -233802,6 +234656,7 @@
"dbNodeStorageSizeInGbs",
"dbServers",
"displayName",
+ "domain",
"giVersion",
"hostname",
"hostnameActual",
@@ -233816,7 +234671,8 @@
"sshPublicKeys",
"subnetId",
"timeZone",
- "virtualNetworkId"
+ "virtualNetworkId",
+ "zoneId"
],
"inputProperties": {
"backupSubnetCidr": {
@@ -233872,6 +234728,11 @@
"description": "The user-friendly name for the Cloud VM Cluster. The name does not need to be unique..\n",
"willReplaceOnChanges": true
},
+ "domain": {
+ "type": "string",
+ "description": "The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.\n",
+ "willReplaceOnChanges": true
+ },
"giVersion": {
"type": "string",
"description": "A valid Oracle Grid Infrastructure (GI) software version.\n",
@@ -233912,6 +234773,16 @@
"description": "The name of the Resource Group where the Cloud VM Cluster should exist.\n",
"willReplaceOnChanges": true
},
+ "scanListenerPortTcp": {
+ "type": "integer",
+ "description": "The TCP Single Client Access Name (SCAN) port. The default port to 1521.\n",
+ "willReplaceOnChanges": true
+ },
+ "scanListenerPortTcpSsl": {
+ "type": "integer",
+ "description": "The TCPS Single Client Access Name (SCAN) port. The default port to 2484.\n",
+ "willReplaceOnChanges": true
+ },
"sparseDiskgroupEnabled": {
"type": "boolean",
"description": "If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created.\n",
@@ -233946,6 +234817,11 @@
"type": "string",
"description": "The ID of the Virtual Network associated with the Cloud VM Cluster.\n",
"willReplaceOnChanges": true
+ },
+ "zoneId": {
+ "type": "string",
+ "description": "The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.\n",
+ "willReplaceOnChanges": true
}
},
"requiredInputs": [
@@ -234017,6 +234893,11 @@
"description": "The user-friendly name for the Cloud VM Cluster. The name does not need to be unique..\n",
"willReplaceOnChanges": true
},
+ "domain": {
+ "type": "string",
+ "description": "The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.\n",
+ "willReplaceOnChanges": true
+ },
"giVersion": {
"type": "string",
"description": "A valid Oracle Grid Infrastructure (GI) software version.\n",
@@ -234065,6 +234946,16 @@
"description": "The name of the Resource Group where the Cloud VM Cluster should exist.\n",
"willReplaceOnChanges": true
},
+ "scanListenerPortTcp": {
+ "type": "integer",
+ "description": "The TCP Single Client Access Name (SCAN) port. The default port to 1521.\n",
+ "willReplaceOnChanges": true
+ },
+ "scanListenerPortTcpSsl": {
+ "type": "integer",
+ "description": "The TCPS Single Client Access Name (SCAN) port. The default port to 2484.\n",
+ "willReplaceOnChanges": true
+ },
"sparseDiskgroupEnabled": {
"type": "boolean",
"description": "If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created.\n",
@@ -234099,6 +234990,11 @@
"type": "string",
"description": "The ID of the Virtual Network associated with the Cloud VM Cluster.\n",
"willReplaceOnChanges": true
+ },
+ "zoneId": {
+ "type": "string",
+ "description": "The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.\n",
+ "willReplaceOnChanges": true
}
},
"type": "object"
@@ -245459,7 +246355,7 @@
}
},
"azure:sentinel/alertRuleFusion:AlertRuleFusion": {
- "description": "Manages a Sentinel Fusion Alert Rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"example\", {\n name: \"example-workspace\",\n location: example.location,\n resourceGroupName: example.name,\n sku: \"PerGB2018\",\n});\nconst exampleAnalyticsSolution = new azure.operationalinsights.AnalyticsSolution(\"example\", {\n solutionName: \"SecurityInsights\",\n location: example.location,\n resourceGroupName: example.name,\n workspaceResourceId: exampleAnalyticsWorkspace.id,\n workspaceName: exampleAnalyticsWorkspace.name,\n plan: {\n publisher: \"Microsoft\",\n product: \"OMSGallery/SecurityInsights\",\n },\n});\nconst exampleAlertRuleFusion = new azure.sentinel.AlertRuleFusion(\"example\", {\n name: \"example-fusion-alert-rule\",\n logAnalyticsWorkspaceId: exampleAnalyticsSolution.workspaceResourceId,\n alertRuleTemplateGuid: \"f71aba3d-28fb-450b-b192-4e76a83015c8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"example\",\n name=\"example-workspace\",\n location=example.location,\n resource_group_name=example.name,\n sku=\"PerGB2018\")\nexample_analytics_solution = azure.operationalinsights.AnalyticsSolution(\"example\",\n solution_name=\"SecurityInsights\",\n location=example.location,\n resource_group_name=example.name,\n workspace_resource_id=example_analytics_workspace.id,\n workspace_name=example_analytics_workspace.name,\n plan={\n \"publisher\": \"Microsoft\",\n \"product\": \"OMSGallery/SecurityInsights\",\n })\nexample_alert_rule_fusion = azure.sentinel.AlertRuleFusion(\"example\",\n name=\"example-fusion-alert-rule\",\n log_analytics_workspace_id=example_analytics_solution.workspace_resource_id,\n alert_rule_template_guid=\"f71aba3d-28fb-450b-b192-4e76a83015c8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"example\", new()\n {\n Name = \"example-workspace\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n Sku = \"PerGB2018\",\n });\n\n var exampleAnalyticsSolution = new Azure.OperationalInsights.AnalyticsSolution(\"example\", new()\n {\n SolutionName = \"SecurityInsights\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n WorkspaceResourceId = exampleAnalyticsWorkspace.Id,\n WorkspaceName = exampleAnalyticsWorkspace.Name,\n Plan = new Azure.OperationalInsights.Inputs.AnalyticsSolutionPlanArgs\n {\n Publisher = \"Microsoft\",\n Product = \"OMSGallery/SecurityInsights\",\n },\n });\n\n var exampleAlertRuleFusion = new Azure.Sentinel.AlertRuleFusion(\"example\", new()\n {\n Name = \"example-fusion-alert-rule\",\n LogAnalyticsWorkspaceId = exampleAnalyticsSolution.WorkspaceResourceId,\n AlertRuleTemplateGuid = \"f71aba3d-28fb-450b-b192-4e76a83015c8\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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, \"example\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tName: pulumi.String(\"example-workspace\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.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\texampleAnalyticsSolution, err := operationalinsights.NewAnalyticsSolution(ctx, \"example\", \u0026operationalinsights.AnalyticsSolutionArgs{\n\t\t\tSolutionName: pulumi.String(\"SecurityInsights\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.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/SecurityInsights\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewAlertRuleFusion(ctx, \"example\", \u0026sentinel.AlertRuleFusionArgs{\n\t\t\tName: pulumi.String(\"example-fusion-alert-rule\"),\n\t\t\tLogAnalyticsWorkspaceId: exampleAnalyticsSolution.WorkspaceResourceId,\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.operationalinsights.AnalyticsWorkspace;\nimport com.pulumi.azure.operationalinsights.AnalyticsWorkspaceArgs;\nimport com.pulumi.azure.operationalinsights.AnalyticsSolution;\nimport com.pulumi.azure.operationalinsights.AnalyticsSolutionArgs;\nimport com.pulumi.azure.operationalinsights.inputs.AnalyticsSolutionPlanArgs;\nimport com.pulumi.azure.sentinel.AlertRuleFusion;\nimport com.pulumi.azure.sentinel.AlertRuleFusionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleAnalyticsWorkspace = new AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", AnalyticsWorkspaceArgs.builder()\n .name(\"example-workspace\")\n .location(example.location())\n .resourceGroupName(example.name())\n .sku(\"PerGB2018\")\n .build());\n\n var exampleAnalyticsSolution = new AnalyticsSolution(\"exampleAnalyticsSolution\", AnalyticsSolutionArgs.builder()\n .solutionName(\"SecurityInsights\")\n .location(example.location())\n .resourceGroupName(example.name())\n .workspaceResourceId(exampleAnalyticsWorkspace.id())\n .workspaceName(exampleAnalyticsWorkspace.name())\n .plan(AnalyticsSolutionPlanArgs.builder()\n .publisher(\"Microsoft\")\n .product(\"OMSGallery/SecurityInsights\")\n .build())\n .build());\n\n var exampleAlertRuleFusion = new AlertRuleFusion(\"exampleAlertRuleFusion\", AlertRuleFusionArgs.builder()\n .name(\"example-fusion-alert-rule\")\n .logAnalyticsWorkspaceId(exampleAnalyticsSolution.workspaceResourceId())\n .alertRuleTemplateGuid(\"f71aba3d-28fb-450b-b192-4e76a83015c8\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleAnalyticsWorkspace:\n type: azure:operationalinsights:AnalyticsWorkspace\n name: example\n properties:\n name: example-workspace\n location: ${example.location}\n resourceGroupName: ${example.name}\n sku: PerGB2018\n exampleAnalyticsSolution:\n type: azure:operationalinsights:AnalyticsSolution\n name: example\n properties:\n solutionName: SecurityInsights\n location: ${example.location}\n resourceGroupName: ${example.name}\n workspaceResourceId: ${exampleAnalyticsWorkspace.id}\n workspaceName: ${exampleAnalyticsWorkspace.name}\n plan:\n publisher: Microsoft\n product: OMSGallery/SecurityInsights\n exampleAlertRuleFusion:\n type: azure:sentinel:AlertRuleFusion\n name: example\n properties:\n name: example-fusion-alert-rule\n logAnalyticsWorkspaceId: ${exampleAnalyticsSolution.workspaceResourceId}\n alertRuleTemplateGuid: f71aba3d-28fb-450b-b192-4e76a83015c8\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
+ "description": "Manages a Sentinel Fusion Alert Rule.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleAnalyticsWorkspace = new azure.operationalinsights.AnalyticsWorkspace(\"example\", {\n name: \"example-workspace\",\n location: example.location,\n resourceGroupName: example.name,\n sku: \"PerGB2018\",\n});\nconst exampleLogAnalyticsWorkspaceOnboarding = new azure.sentinel.LogAnalyticsWorkspaceOnboarding(\"example\", {workspaceId: exampleAnalyticsWorkspace.id});\nconst exampleAlertRuleFusion = new azure.sentinel.AlertRuleFusion(\"example\", {\n logAnalyticsWorkspaceId: exampleLogAnalyticsWorkspaceOnboarding.workspaceId,\n alertRuleTemplateGuid: \"f71aba3d-28fb-450b-b192-4e76a83015c8\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_analytics_workspace = azure.operationalinsights.AnalyticsWorkspace(\"example\",\n name=\"example-workspace\",\n location=example.location,\n resource_group_name=example.name,\n sku=\"PerGB2018\")\nexample_log_analytics_workspace_onboarding = azure.sentinel.LogAnalyticsWorkspaceOnboarding(\"example\", workspace_id=example_analytics_workspace.id)\nexample_alert_rule_fusion = azure.sentinel.AlertRuleFusion(\"example\",\n log_analytics_workspace_id=example_log_analytics_workspace_onboarding.workspace_id,\n alert_rule_template_guid=\"f71aba3d-28fb-450b-b192-4e76a83015c8\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleAnalyticsWorkspace = new Azure.OperationalInsights.AnalyticsWorkspace(\"example\", new()\n {\n Name = \"example-workspace\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n Sku = \"PerGB2018\",\n });\n\n var exampleLogAnalyticsWorkspaceOnboarding = new Azure.Sentinel.LogAnalyticsWorkspaceOnboarding(\"example\", new()\n {\n WorkspaceId = exampleAnalyticsWorkspace.Id,\n });\n\n var exampleAlertRuleFusion = new Azure.Sentinel.AlertRuleFusion(\"example\", new()\n {\n LogAnalyticsWorkspaceId = exampleLogAnalyticsWorkspaceOnboarding.WorkspaceId,\n AlertRuleTemplateGuid = \"f71aba3d-28fb-450b-b192-4e76a83015c8\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/operationalinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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, \"example\", \u0026operationalinsights.AnalyticsWorkspaceArgs{\n\t\t\tName: pulumi.String(\"example-workspace\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.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\texampleLogAnalyticsWorkspaceOnboarding, err := sentinel.NewLogAnalyticsWorkspaceOnboarding(ctx, \"example\", \u0026sentinel.LogAnalyticsWorkspaceOnboardingArgs{\n\t\t\tWorkspaceId: exampleAnalyticsWorkspace.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sentinel.NewAlertRuleFusion(ctx, \"example\", \u0026sentinel.AlertRuleFusionArgs{\n\t\t\tLogAnalyticsWorkspaceId: exampleLogAnalyticsWorkspaceOnboarding.WorkspaceId,\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.operationalinsights.AnalyticsWorkspace;\nimport com.pulumi.azure.operationalinsights.AnalyticsWorkspaceArgs;\nimport com.pulumi.azure.sentinel.LogAnalyticsWorkspaceOnboarding;\nimport com.pulumi.azure.sentinel.LogAnalyticsWorkspaceOnboardingArgs;\nimport com.pulumi.azure.sentinel.AlertRuleFusion;\nimport com.pulumi.azure.sentinel.AlertRuleFusionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleAnalyticsWorkspace = new AnalyticsWorkspace(\"exampleAnalyticsWorkspace\", AnalyticsWorkspaceArgs.builder()\n .name(\"example-workspace\")\n .location(example.location())\n .resourceGroupName(example.name())\n .sku(\"PerGB2018\")\n .build());\n\n var exampleLogAnalyticsWorkspaceOnboarding = new LogAnalyticsWorkspaceOnboarding(\"exampleLogAnalyticsWorkspaceOnboarding\", LogAnalyticsWorkspaceOnboardingArgs.builder()\n .workspaceId(exampleAnalyticsWorkspace.id())\n .build());\n\n var exampleAlertRuleFusion = new AlertRuleFusion(\"exampleAlertRuleFusion\", AlertRuleFusionArgs.builder()\n .logAnalyticsWorkspaceId(exampleLogAnalyticsWorkspaceOnboarding.workspaceId())\n .alertRuleTemplateGuid(\"f71aba3d-28fb-450b-b192-4e76a83015c8\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleAnalyticsWorkspace:\n type: azure:operationalinsights:AnalyticsWorkspace\n name: example\n properties:\n name: example-workspace\n location: ${example.location}\n resourceGroupName: ${example.name}\n sku: PerGB2018\n exampleLogAnalyticsWorkspaceOnboarding:\n type: azure:sentinel:LogAnalyticsWorkspaceOnboarding\n name: example\n properties:\n workspaceId: ${exampleAnalyticsWorkspace.id}\n exampleAlertRuleFusion:\n type: azure:sentinel:AlertRuleFusion\n name: example\n properties:\n logAnalyticsWorkspaceId: ${exampleLogAnalyticsWorkspaceOnboarding.workspaceId}\n alertRuleTemplateGuid: f71aba3d-28fb-450b-b192-4e76a83015c8\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
"properties": {
"alertRuleTemplateGuid": {
"type": "string",
@@ -245475,7 +246371,7 @@
},
"name": {
"type": "string",
- "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"
+ "deprecationMessage": "the `name` is deprecated and will be removed in v5.0 version of the provider."
},
"sources": {
"type": "array",
@@ -245508,7 +246404,7 @@
},
"name": {
"type": "string",
- "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",
+ "deprecationMessage": "the `name` is deprecated and will be removed in v5.0 version of the provider.",
"willReplaceOnChanges": true
},
"sources": {
@@ -245542,7 +246438,7 @@
},
"name": {
"type": "string",
- "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",
+ "deprecationMessage": "the `name` is deprecated and will be removed in v5.0 version of the provider.",
"willReplaceOnChanges": true
},
"sources": {
@@ -254820,6 +255716,159 @@
"type": "object"
}
},
+ "azure:stack/hciNetworkInterface:HciNetworkInterface": {
+ "description": "Manages an Azure Stack HCI Network Interface.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.stack.HciLogicalNetwork;\nimport com.pulumi.azure.stack.HciLogicalNetworkArgs;\nimport com.pulumi.azure.stack.inputs.HciLogicalNetworkSubnetArgs;\nimport com.pulumi.azure.stack.HciNetworkInterface;\nimport com.pulumi.azure.stack.HciNetworkInterfaceArgs;\nimport com.pulumi.azure.stack.inputs.HciNetworkInterfaceIpConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-rg\")\n .location(\"West Europe\")\n .build());\n\n var exampleHciLogicalNetwork = new HciLogicalNetwork(\"exampleHciLogicalNetwork\", HciLogicalNetworkArgs.builder()\n .name(\"example-hci-ln\")\n .resourceGroupName(example.name())\n .location(example.location())\n .customLocationId(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\")\n .virtualSwitchName(\"ConvergedSwitch(managementcompute)\")\n .dnsServers( \n \"10.0.0.7\",\n \"10.0.0.8\")\n .subnet(HciLogicalNetworkSubnetArgs.builder()\n .ipAllocationMethod(\"Static\")\n .addressPrefix(\"10.0.0.0/24\")\n .route(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .vlanId(123)\n .build())\n .tags(Map.of(\"foo\", \"bar\"))\n .build());\n\n var exampleHciNetworkInterface = new HciNetworkInterface(\"exampleHciNetworkInterface\", HciNetworkInterfaceArgs.builder()\n .name(\"example-ni\")\n .resourceGroupName(example.name())\n .location(example.location())\n .customLocationId(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\")\n .dnsServers(\"10.0.0.8\")\n .ipConfiguration(HciNetworkInterfaceIpConfigurationArgs.builder()\n .privateIpAddress(\"10.0.0.2\")\n .subnetId(test.id())\n .build())\n .tags(Map.of(\"foo\", \"bar\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-rg\n location: West Europe\n exampleHciLogicalNetwork:\n type: azure:stack:HciLogicalNetwork\n name: example\n properties:\n name: example-hci-ln\n resourceGroupName: ${example.name}\n location: ${example.location}\n customLocationId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\n virtualSwitchName: ConvergedSwitch(managementcompute)\n dnsServers:\n - 10.0.0.7\n - 10.0.0.8\n subnet:\n ipAllocationMethod: Static\n addressPrefix: 10.0.0.0/24\n route:\n name: example-route\n addressPrefix: 0.0.0.0/0\n nextHopIpAddress: 10.0.20.1\n vlanId: 123\n tags:\n foo: bar\n exampleHciNetworkInterface:\n type: azure:stack:HciNetworkInterface\n name: example\n properties:\n name: example-ni\n resourceGroupName: ${example.name}\n location: ${example.location}\n customLocationId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\n dnsServers:\n - 10.0.0.8\n ipConfiguration:\n privateIpAddress: 10.0.0.2\n subnetId: ${test.id}\n tags:\n foo: bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure Stack HCI Network Interfaces can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:stack/hciNetworkInterface:HciNetworkInterface example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AzureStackHCI/networkInterfaces/ni1\n```\n\n",
+ "properties": {
+ "customLocationId": {
+ "type": "string",
+ "description": "The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n"
+ },
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of IPv4 addresses of DNS servers available to VMs deployed in the Network Interface. Changing this forces a new resource to be created.\n"
+ },
+ "ipConfiguration": {
+ "$ref": "#/types/azure:stack/HciNetworkInterfaceIpConfiguration:HciNetworkInterfaceIpConfiguration",
+ "description": "An `ip_configuration` block as defined below. Changing this forces a new resource to be created.\n"
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n"
+ },
+ "macAddress": {
+ "type": "string",
+ "description": "The MAC address of the Network Interface. Changing this forces a new resource to be created.\n\n\u003e **Note:** If `mac_address` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignore_changes`.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created.\n"
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags which should be assigned to the Azure Stack HCI Network Interface.\n"
+ }
+ },
+ "required": [
+ "customLocationId",
+ "ipConfiguration",
+ "location",
+ "name",
+ "resourceGroupName"
+ ],
+ "inputProperties": {
+ "customLocationId": {
+ "type": "string",
+ "description": "The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of IPv4 addresses of DNS servers available to VMs deployed in the Network Interface. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "ipConfiguration": {
+ "$ref": "#/types/azure:stack/HciNetworkInterfaceIpConfiguration:HciNetworkInterfaceIpConfiguration",
+ "description": "An `ip_configuration` block as defined below. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "macAddress": {
+ "type": "string",
+ "description": "The MAC address of the Network Interface. Changing this forces a new resource to be created.\n\n\u003e **Note:** If `mac_address` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignore_changes`.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags which should be assigned to the Azure Stack HCI Network Interface.\n"
+ }
+ },
+ "requiredInputs": [
+ "customLocationId",
+ "ipConfiguration",
+ "resourceGroupName"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering HciNetworkInterface resources.\n",
+ "properties": {
+ "customLocationId": {
+ "type": "string",
+ "description": "The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "dnsServers": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of IPv4 addresses of DNS servers available to VMs deployed in the Network Interface. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "ipConfiguration": {
+ "$ref": "#/types/azure:stack/HciNetworkInterfaceIpConfiguration:HciNetworkInterfaceIpConfiguration",
+ "description": "An `ip_configuration` block as defined below. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "location": {
+ "type": "string",
+ "description": "The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "macAddress": {
+ "type": "string",
+ "description": "The MAC address of the Network Interface. Changing this forces a new resource to be created.\n\n\u003e **Note:** If `mac_address` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignore_changes`.\n",
+ "willReplaceOnChanges": true
+ },
+ "name": {
+ "type": "string",
+ "description": "The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "resourceGroupName": {
+ "type": "string",
+ "description": "The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A mapping of tags which should be assigned to the Azure Stack HCI Network Interface.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"azure:stack/hciStoragePath:HciStoragePath": {
"description": "Manages an Azure Stack HCI Storage Path.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-rg\",\n location: \"West Europe\",\n});\nconst exampleHciStoragePath = new azure.stack.HciStoragePath(\"example\", {\n name: \"example-sp\",\n resourceGroupName: example.name,\n location: example.location,\n customLocationId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\",\n path: \"C:\\\\ClusterStorage\\\\UserStorage_2\\\\sp-example\",\n tags: {\n foo: \"bar\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-rg\",\n location=\"West Europe\")\nexample_hci_storage_path = azure.stack.HciStoragePath(\"example\",\n name=\"example-sp\",\n resource_group_name=example.name,\n location=example.location,\n custom_location_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\",\n path=\"C:\\\\ClusterStorage\\\\UserStorage_2\\\\sp-example\",\n tags={\n \"foo\": \"bar\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-rg\",\n Location = \"West Europe\",\n });\n\n var exampleHciStoragePath = new Azure.Stack.HciStoragePath(\"example\", new()\n {\n Name = \"example-sp\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n CustomLocationId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\",\n Path = \"C:\\\\ClusterStorage\\\\UserStorage_2\\\\sp-example\",\n Tags = \n {\n { \"foo\", \"bar\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/stack\"\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\tName: pulumi.String(\"example-rg\"),\n\t\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.NewHciStoragePath(ctx, \"example\", \u0026stack.HciStoragePathArgs{\n\t\t\tName: pulumi.String(\"example-sp\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tCustomLocationId: pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\"),\n\t\t\tPath: pulumi.String(\"C:\\\\ClusterStorage\\\\UserStorage_2\\\\sp-example\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.stack.HciStoragePath;\nimport com.pulumi.azure.stack.HciStoragePathArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-rg\")\n .location(\"West Europe\")\n .build());\n\n var exampleHciStoragePath = new HciStoragePath(\"exampleHciStoragePath\", HciStoragePathArgs.builder()\n .name(\"example-sp\")\n .resourceGroupName(example.name())\n .location(example.location())\n .customLocationId(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\")\n .path(\"C:\\\\ClusterStorage\\\\UserStorage_2\\\\sp-example\")\n .tags(Map.of(\"foo\", \"bar\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-rg\n location: West Europe\n exampleHciStoragePath:\n type: azure:stack:HciStoragePath\n name: example\n properties:\n name: example-sp\n resourceGroupName: ${example.name}\n location: ${example.location}\n customLocationId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1\n path: C:\\ClusterStorage\\UserStorage_2\\sp-example\n tags:\n foo: bar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure Stack HCI Storage Paths can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:stack/hciStoragePath:HciStoragePath example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AzureStackHCI/storageContainers/storage1\n```\n\n",
"properties": {
@@ -255414,7 +256463,8 @@
},
"queueProperties": {
"$ref": "#/types/azure:storage/AccountQueueProperties:AccountQueueProperties",
- "description": "A `queue_properties` block as defined below.\n\n\u003e **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`.\n"
+ "description": "A `queue_properties` block as defined below.\n\n\u003e **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`.\n",
+ "deprecationMessage": "this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider"
},
"resourceGroupName": {
"type": "string",
@@ -255588,7 +256638,8 @@
},
"staticWebsite": {
"$ref": "#/types/azure:storage/AccountStaticWebsite:AccountStaticWebsite",
- "description": "A `static_website` block as defined below.\n\n\u003e **Note:** `static_website` can only be set when the `account_kind` is set to `StorageV2` or `BlockBlobStorage`.\n\n\u003e **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`.\n"
+ "description": "A `static_website` block as defined below.\n\n\u003e **Note:** `static_website` can only be set when the `account_kind` is set to `StorageV2` or `BlockBlobStorage`.\n\n\u003e **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`.\n",
+ "deprecationMessage": "this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider"
},
"tableEncryptionKeyType": {
"type": "string",
@@ -255686,7 +256737,8 @@
"secondaryWebInternetHost",
"secondaryWebMicrosoftEndpoint",
"secondaryWebMicrosoftHost",
- "shareProperties"
+ "shareProperties",
+ "staticWebsite"
],
"inputProperties": {
"accessTier": {
@@ -255813,7 +256865,8 @@
},
"queueProperties": {
"$ref": "#/types/azure:storage/AccountQueueProperties:AccountQueueProperties",
- "description": "A `queue_properties` block as defined below.\n\n\u003e **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`.\n"
+ "description": "A `queue_properties` block as defined below.\n\n\u003e **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`.\n",
+ "deprecationMessage": "this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider"
},
"resourceGroupName": {
"type": "string",
@@ -255841,7 +256894,8 @@
},
"staticWebsite": {
"$ref": "#/types/azure:storage/AccountStaticWebsite:AccountStaticWebsite",
- "description": "A `static_website` block as defined below.\n\n\u003e **Note:** `static_website` can only be set when the `account_kind` is set to `StorageV2` or `BlockBlobStorage`.\n\n\u003e **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`.\n"
+ "description": "A `static_website` block as defined below.\n\n\u003e **Note:** `static_website` can only be set when the `account_kind` is set to `StorageV2` or `BlockBlobStorage`.\n\n\u003e **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`.\n",
+ "deprecationMessage": "this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider"
},
"tableEncryptionKeyType": {
"type": "string",
@@ -256135,7 +257189,8 @@
},
"queueProperties": {
"$ref": "#/types/azure:storage/AccountQueueProperties:AccountQueueProperties",
- "description": "A `queue_properties` block as defined below.\n\n\u003e **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`.\n"
+ "description": "A `queue_properties` block as defined below.\n\n\u003e **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`.\n",
+ "deprecationMessage": "this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider"
},
"resourceGroupName": {
"type": "string",
@@ -256310,7 +257365,8 @@
},
"staticWebsite": {
"$ref": "#/types/azure:storage/AccountStaticWebsite:AccountStaticWebsite",
- "description": "A `static_website` block as defined below.\n\n\u003e **Note:** `static_website` can only be set when the `account_kind` is set to `StorageV2` or `BlockBlobStorage`.\n\n\u003e **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`.\n"
+ "description": "A `static_website` block as defined below.\n\n\u003e **Note:** `static_website` can only be set when the `account_kind` is set to `StorageV2` or `BlockBlobStorage`.\n\n\u003e **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`.\n",
+ "deprecationMessage": "this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider"
},
"tableEncryptionKeyType": {
"type": "string",
@@ -256460,6 +257516,156 @@
"type": "object"
}
},
+ "azure:storage/accountQueueProperties:AccountQueueProperties": {
+ "description": "Manages the Queue Properties of an Azure Storage Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"storageaccountname\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"GRS\",\n tags: {\n environment: \"staging\",\n },\n});\nconst exampleAccountQueueProperties = new azure.storage.AccountQueueProperties(\"example\", {\n storageAccountId: exampleAccount.id,\n corsRules: [{\n allowedOrigins: [\"http://www.example.com\"],\n exposedHeaders: [\"x-tempo-*\"],\n allowedHeaders: [\"x-tempo-*\"],\n allowedMethods: [\n \"GET\",\n \"PUT\",\n ],\n maxAgeInSeconds: 500,\n }],\n logging: {\n version: \"1.0\",\n \"delete\": true,\n read: true,\n write: true,\n retentionPolicyDays: 7,\n },\n hourMetrics: {\n version: \"1.0\",\n retentionPolicyDays: 7,\n },\n minuteMetrics: {\n version: \"1.0\",\n retentionPolicyDays: 7,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_account = azure.storage.Account(\"example\",\n name=\"storageaccountname\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"GRS\",\n tags={\n \"environment\": \"staging\",\n })\nexample_account_queue_properties = azure.storage.AccountQueueProperties(\"example\",\n storage_account_id=example_account.id,\n cors_rules=[{\n \"allowed_origins\": [\"http://www.example.com\"],\n \"exposed_headers\": [\"x-tempo-*\"],\n \"allowed_headers\": [\"x-tempo-*\"],\n \"allowed_methods\": [\n \"GET\",\n \"PUT\",\n ],\n \"max_age_in_seconds\": 500,\n }],\n logging={\n \"version\": \"1.0\",\n \"delete\": True,\n \"read\": True,\n \"write\": True,\n \"retention_policy_days\": 7,\n },\n hour_metrics={\n \"version\": \"1.0\",\n \"retention_policy_days\": 7,\n },\n minute_metrics={\n \"version\": \"1.0\",\n \"retention_policy_days\": 7,\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"storageaccountname\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"GRS\",\n Tags = \n {\n { \"environment\", \"staging\" },\n },\n });\n\n var exampleAccountQueueProperties = new Azure.Storage.AccountQueueProperties(\"example\", new()\n {\n StorageAccountId = exampleAccount.Id,\n CorsRules = new[]\n {\n new Azure.Storage.Inputs.AccountQueuePropertiesCorsRuleArgs\n {\n AllowedOrigins = new[]\n {\n \"http://www.example.com\",\n },\n ExposedHeaders = new[]\n {\n \"x-tempo-*\",\n },\n AllowedHeaders = new[]\n {\n \"x-tempo-*\",\n },\n AllowedMethods = new[]\n {\n \"GET\",\n \"PUT\",\n },\n MaxAgeInSeconds = 500,\n },\n },\n Logging = new Azure.Storage.Inputs.AccountQueuePropertiesLoggingArgs\n {\n Version = \"1.0\",\n Delete = true,\n Read = true,\n Write = true,\n RetentionPolicyDays = 7,\n },\n HourMetrics = new Azure.Storage.Inputs.AccountQueuePropertiesHourMetricsArgs\n {\n Version = \"1.0\",\n RetentionPolicyDays = 7,\n },\n MinuteMetrics = new Azure.Storage.Inputs.AccountQueuePropertiesMinuteMetricsArgs\n {\n Version = \"1.0\",\n RetentionPolicyDays = 7,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"storageaccountname\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.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.NewAccountQueueProperties(ctx, \"example\", \u0026storage.AccountQueuePropertiesArgs{\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tCorsRules: storage.AccountQueuePropertiesCorsRuleArray{\n\t\t\t\t\u0026storage.AccountQueuePropertiesCorsRuleArgs{\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\tExposedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"x-tempo-*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"x-tempo-*\"),\n\t\t\t\t\t},\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t\t},\n\t\t\t\t\tMaxAgeInSeconds: pulumi.Int(500),\n\t\t\t\t},\n\t\t\t},\n\t\t\tLogging: \u0026storage.AccountQueuePropertiesLoggingArgs{\n\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\tDelete: pulumi.Bool(true),\n\t\t\t\tRead: pulumi.Bool(true),\n\t\t\t\tWrite: pulumi.Bool(true),\n\t\t\t\tRetentionPolicyDays: pulumi.Int(7),\n\t\t\t},\n\t\t\tHourMetrics: \u0026storage.AccountQueuePropertiesHourMetricsArgs{\n\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\tRetentionPolicyDays: pulumi.Int(7),\n\t\t\t},\n\t\t\tMinuteMetrics: \u0026storage.AccountQueuePropertiesMinuteMetricsArgs{\n\t\t\t\tVersion: pulumi.String(\"1.0\"),\n\t\t\t\tRetentionPolicyDays: 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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.AccountQueueProperties;\nimport com.pulumi.azure.storage.AccountQueuePropertiesArgs;\nimport com.pulumi.azure.storage.inputs.AccountQueuePropertiesCorsRuleArgs;\nimport com.pulumi.azure.storage.inputs.AccountQueuePropertiesLoggingArgs;\nimport com.pulumi.azure.storage.inputs.AccountQueuePropertiesHourMetricsArgs;\nimport com.pulumi.azure.storage.inputs.AccountQueuePropertiesMinuteMetricsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"storageaccountname\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"GRS\")\n .tags(Map.of(\"environment\", \"staging\"))\n .build());\n\n var exampleAccountQueueProperties = new AccountQueueProperties(\"exampleAccountQueueProperties\", AccountQueuePropertiesArgs.builder()\n .storageAccountId(exampleAccount.id())\n .corsRules(AccountQueuePropertiesCorsRuleArgs.builder()\n .allowedOrigins(\"http://www.example.com\")\n .exposedHeaders(\"x-tempo-*\")\n .allowedHeaders(\"x-tempo-*\")\n .allowedMethods( \n \"GET\",\n \"PUT\")\n .maxAgeInSeconds(\"500\")\n .build())\n .logging(AccountQueuePropertiesLoggingArgs.builder()\n .version(\"1.0\")\n .delete(true)\n .read(true)\n .write(true)\n .retentionPolicyDays(7)\n .build())\n .hourMetrics(AccountQueuePropertiesHourMetricsArgs.builder()\n .version(\"1.0\")\n .retentionPolicyDays(7)\n .build())\n .minuteMetrics(AccountQueuePropertiesMinuteMetricsArgs.builder()\n .version(\"1.0\")\n .retentionPolicyDays(7)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: storageaccountname\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: GRS\n tags:\n environment: staging\n exampleAccountQueueProperties:\n type: azure:storage:AccountQueueProperties\n name: example\n properties:\n storageAccountId: ${exampleAccount.id}\n corsRules:\n - allowedOrigins:\n - http://www.example.com\n exposedHeaders:\n - x-tempo-*\n allowedHeaders:\n - x-tempo-*\n allowedMethods:\n - GET\n - PUT\n maxAgeInSeconds: '500'\n logging:\n version: '1.0'\n delete: true\n read: true\n write: true\n retentionPolicyDays: 7\n hourMetrics:\n version: '1.0'\n retentionPolicyDays: 7\n minuteMetrics:\n version: '1.0'\n retentionPolicyDays: 7\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nStorage Account Queue Properties can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:storage/accountQueueProperties:AccountQueueProperties queueprops /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount\n```\n\n",
+ "properties": {
+ "corsRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesCorsRule:AccountQueuePropertiesCorsRule"
+ },
+ "description": "A `cors_rule` block as defined above.\n"
+ },
+ "hourMetrics": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesHourMetrics:AccountQueuePropertiesHourMetrics",
+ "description": "A `hour_metrics` block as defined below.\n\n\u003e **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified.\n"
+ },
+ "logging": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesLogging:AccountQueuePropertiesLogging",
+ "description": "A `logging` block as defined below.\n"
+ },
+ "minuteMetrics": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesMinuteMetrics:AccountQueuePropertiesMinuteMetrics",
+ "description": "A `minute_metrics` block as defined below.\n"
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created.\n"
+ }
+ },
+ "required": [
+ "hourMetrics",
+ "logging",
+ "minuteMetrics",
+ "storageAccountId"
+ ],
+ "inputProperties": {
+ "corsRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesCorsRule:AccountQueuePropertiesCorsRule"
+ },
+ "description": "A `cors_rule` block as defined above.\n"
+ },
+ "hourMetrics": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesHourMetrics:AccountQueuePropertiesHourMetrics",
+ "description": "A `hour_metrics` block as defined below.\n\n\u003e **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified.\n"
+ },
+ "logging": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesLogging:AccountQueuePropertiesLogging",
+ "description": "A `logging` block as defined below.\n"
+ },
+ "minuteMetrics": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesMinuteMetrics:AccountQueuePropertiesMinuteMetrics",
+ "description": "A `minute_metrics` block as defined below.\n"
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "requiredInputs": [
+ "storageAccountId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering AccountQueueProperties resources.\n",
+ "properties": {
+ "corsRules": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesCorsRule:AccountQueuePropertiesCorsRule"
+ },
+ "description": "A `cors_rule` block as defined above.\n"
+ },
+ "hourMetrics": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesHourMetrics:AccountQueuePropertiesHourMetrics",
+ "description": "A `hour_metrics` block as defined below.\n\n\u003e **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified.\n"
+ },
+ "logging": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesLogging:AccountQueuePropertiesLogging",
+ "description": "A `logging` block as defined below.\n"
+ },
+ "minuteMetrics": {
+ "$ref": "#/types/azure:storage/AccountQueuePropertiesMinuteMetrics:AccountQueuePropertiesMinuteMetrics",
+ "description": "A `minute_metrics` block as defined below.\n"
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "type": "object"
+ }
+ },
+ "azure:storage/accountStaticWebsite:AccountStaticWebsite": {
+ "description": "Manages the Static Website of an Azure Storage Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"storageaccountname\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"GRS\",\n tags: {\n environment: \"staging\",\n },\n});\nconst test = new azure.storage.AccountStaticWebsite(\"test\", {\n storageAccountId: testAzurermStorageAccount.id,\n error404Document: \"custom_not_found.html\",\n indexDocument: \"custom_index.html\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_account = azure.storage.Account(\"example\",\n name=\"storageaccountname\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"GRS\",\n tags={\n \"environment\": \"staging\",\n })\ntest = azure.storage.AccountStaticWebsite(\"test\",\n storage_account_id=test_azurerm_storage_account[\"id\"],\n error404_document=\"custom_not_found.html\",\n index_document=\"custom_index.html\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"storageaccountname\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"GRS\",\n Tags = \n {\n { \"environment\", \"staging\" },\n },\n });\n\n var test = new Azure.Storage.AccountStaticWebsite(\"test\", new()\n {\n StorageAccountId = testAzurermStorageAccount.Id,\n Error404Document = \"custom_not_found.html\",\n IndexDocument = \"custom_index.html\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"storageaccountname\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.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.NewAccountStaticWebsite(ctx, \"test\", \u0026storage.AccountStaticWebsiteArgs{\n\t\t\tStorageAccountId: pulumi.Any(testAzurermStorageAccount.Id),\n\t\t\tError404Document: pulumi.String(\"custom_not_found.html\"),\n\t\t\tIndexDocument: pulumi.String(\"custom_index.html\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.AccountStaticWebsite;\nimport com.pulumi.azure.storage.AccountStaticWebsiteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"storageaccountname\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"GRS\")\n .tags(Map.of(\"environment\", \"staging\"))\n .build());\n\n var test = new AccountStaticWebsite(\"test\", AccountStaticWebsiteArgs.builder()\n .storageAccountId(testAzurermStorageAccount.id())\n .error404Document(\"custom_not_found.html\")\n .indexDocument(\"custom_index.html\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: storageaccountname\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: GRS\n tags:\n environment: staging\n test:\n type: azure:storage:AccountStaticWebsite\n properties:\n storageAccountId: ${testAzurermStorageAccount.id}\n error404Document: custom_not_found.html\n indexDocument: custom_index.html\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nStorage Account Static Websites can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:storage/accountStaticWebsite:AccountStaticWebsite mysite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount\n```\n\n",
+ "properties": {
+ "error404Document": {
+ "type": "string",
+ "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"
+ },
+ "indexDocument": {
+ "type": "string",
+ "description": "The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html.\n"
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created.\n"
+ }
+ },
+ "required": [
+ "storageAccountId"
+ ],
+ "inputProperties": {
+ "error404Document": {
+ "type": "string",
+ "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"
+ },
+ "indexDocument": {
+ "type": "string",
+ "description": "The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html.\n"
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "requiredInputs": [
+ "storageAccountId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering AccountStaticWebsite resources.\n",
+ "properties": {
+ "error404Document": {
+ "type": "string",
+ "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"
+ },
+ "indexDocument": {
+ "type": "string",
+ "description": "The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html.\n"
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "type": "object"
+ }
+ },
"azure:storage/blob:Blob": {
"description": "Manages a Blob within a Storage Container.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"examplestoracc\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n});\nconst exampleContainer = new azure.storage.Container(\"example\", {\n name: \"content\",\n storageAccountName: exampleAccount.name,\n containerAccessType: \"private\",\n});\nconst exampleBlob = new azure.storage.Blob(\"example\", {\n name: \"my-awesome-content.zip\",\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 = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_account = azure.storage.Account(\"example\",\n name=\"examplestoracc\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\")\nexample_container = azure.storage.Container(\"example\",\n name=\"content\",\n storage_account_name=example_account.name,\n container_access_type=\"private\")\nexample_blob = azure.storage.Blob(\"example\",\n name=\"my-awesome-content.zip\",\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 System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"examplestoracc\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n });\n\n var exampleContainer = new Azure.Storage.Container(\"example\", new()\n {\n Name = \"content\",\n StorageAccountName = exampleAccount.Name,\n ContainerAccessType = \"private\",\n });\n\n var exampleBlob = new Azure.Storage.Blob(\"example\", new()\n {\n Name = \"my-awesome-content.zip\",\n StorageAccountName = exampleAccount.Name,\n StorageContainerName = exampleContainer.Name,\n Type = \"Block\",\n Source = new FileAsset(\"some-local-file.zip\"),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"examplestoracc\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: 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, \"example\", \u0026storage.ContainerArgs{\n\t\t\tName: pulumi.String(\"content\"),\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, \"example\", \u0026storage.BlobArgs{\n\t\t\tName: pulumi.String(\"my-awesome-content.zip\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.Container;\nimport com.pulumi.azure.storage.ContainerArgs;\nimport com.pulumi.azure.storage.Blob;\nimport com.pulumi.azure.storage.BlobArgs;\nimport com.pulumi.asset.FileAsset;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"examplestoracc\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .build());\n\n var exampleContainer = new Container(\"exampleContainer\", ContainerArgs.builder()\n .name(\"content\")\n .storageAccountName(exampleAccount.name())\n .containerAccessType(\"private\")\n .build());\n\n var exampleBlob = new Blob(\"exampleBlob\", BlobArgs.builder()\n .name(\"my-awesome-content.zip\")\n .storageAccountName(exampleAccount.name())\n .storageContainerName(exampleContainer.name())\n .type(\"Block\")\n .source(new FileAsset(\"some-local-file.zip\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: examplestoracc\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n exampleContainer:\n type: azure:storage:Container\n name: example\n properties:\n name: content\n storageAccountName: ${exampleAccount.name}\n containerAccessType: private\n exampleBlob:\n type: azure:storage:Blob\n name: example\n properties:\n name: my-awesome-content.zip\n storageAccountName: ${exampleAccount.name}\n storageContainerName: ${exampleContainer.name}\n type: Block\n source:\n fn::FileAsset: some-local-file.zip\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
"properties": {
@@ -256763,7 +257969,7 @@
}
},
"azure:storage/container:Container": {
- "description": "Manages a Container within an Azure Storage Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"examplestoraccount\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n tags: {\n environment: \"staging\",\n },\n});\nconst exampleContainer = new azure.storage.Container(\"example\", {\n name: \"vhds\",\n storageAccountName: exampleAccount.name,\n containerAccessType: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_account = azure.storage.Account(\"example\",\n name=\"examplestoraccount\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\",\n tags={\n \"environment\": \"staging\",\n })\nexample_container = azure.storage.Container(\"example\",\n name=\"vhds\",\n storage_account_name=example_account.name,\n container_access_type=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"examplestoraccount\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n Tags = \n {\n { \"environment\", \"staging\" },\n },\n });\n\n var exampleContainer = new Azure.Storage.Container(\"example\", new()\n {\n Name = \"vhds\",\n StorageAccountName = exampleAccount.Name,\n ContainerAccessType = \"private\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"examplestoraccount\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: 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(\"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, \"example\", \u0026storage.ContainerArgs{\n\t\t\tName: pulumi.String(\"vhds\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.Container;\nimport com.pulumi.azure.storage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"examplestoraccount\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .tags(Map.of(\"environment\", \"staging\"))\n .build());\n\n var exampleContainer = new Container(\"exampleContainer\", ContainerArgs.builder()\n .name(\"vhds\")\n .storageAccountName(exampleAccount.name())\n .containerAccessType(\"private\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: examplestoraccount\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n tags:\n environment: staging\n exampleContainer:\n type: azure:storage:Container\n name: example\n properties:\n name: vhds\n storageAccountName: ${exampleAccount.name}\n containerAccessType: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
+ "description": "Manages a Container within an Azure Storage Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"examplestoraccount\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n tags: {\n environment: \"staging\",\n },\n});\nconst exampleContainer = new azure.storage.Container(\"example\", {\n name: \"vhds\",\n storageAccountId: exampleAccount.id,\n containerAccessType: \"private\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_account = azure.storage.Account(\"example\",\n name=\"examplestoraccount\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\",\n tags={\n \"environment\": \"staging\",\n })\nexample_container = azure.storage.Container(\"example\",\n name=\"vhds\",\n storage_account_id=example_account.id,\n container_access_type=\"private\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"examplestoraccount\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n Tags = \n {\n { \"environment\", \"staging\" },\n },\n });\n\n var exampleContainer = new Azure.Storage.Container(\"example\", new()\n {\n Name = \"vhds\",\n StorageAccountId = exampleAccount.Id,\n ContainerAccessType = \"private\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\n\t\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, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"examplestoraccount\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: 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(\"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, \"example\", \u0026storage.ContainerArgs{\n\t\t\tName: pulumi.String(\"vhds\"),\n\t\t\tStorageAccountId: exampleAccount.ID(),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.Container;\nimport com.pulumi.azure.storage.ContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"examplestoraccount\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .tags(Map.of(\"environment\", \"staging\"))\n .build());\n\n var exampleContainer = new Container(\"exampleContainer\", ContainerArgs.builder()\n .name(\"vhds\")\n .storageAccountId(exampleAccount.id())\n .containerAccessType(\"private\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: examplestoraccount\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n tags:\n environment: staging\n exampleContainer:\n type: azure:storage:Container\n name: example\n properties:\n name: vhds\n storageAccountId: ${exampleAccount.id}\n containerAccessType: private\n```\n\u003c!--End PulumiCodeChooser --\u003e\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",
"properties": {
"containerAccessType": {
"type": "string",
@@ -256798,11 +258004,17 @@
},
"resourceManagerId": {
"type": "string",
- "description": "The Resource Manager ID of this Storage Container.\n"
+ "description": "The Resource Manager ID of this Storage Container.\n",
+ "deprecationMessage": "this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider."
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n"
},
"storageAccountName": {
"type": "string",
- "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created.\n"
+ "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. This property is deprecated in favour of `storage_account_id`.\n",
+ "deprecationMessage": "the `storage_account_name` property has been deprecated in favour of `storage_account_id` and will be removed in version 5.0 of the Provider."
}
},
"required": [
@@ -256811,8 +258023,7 @@
"hasLegalHold",
"metadata",
"name",
- "resourceManagerId",
- "storageAccountName"
+ "resourceManagerId"
],
"inputProperties": {
"containerAccessType": {
@@ -256841,15 +258052,18 @@
"description": "The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
+ "storageAccountId": {
+ "type": "string",
+ "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n",
+ "willReplaceOnChanges": true
+ },
"storageAccountName": {
"type": "string",
- "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created.\n",
+ "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. This property is deprecated in favour of `storage_account_id`.\n",
+ "deprecationMessage": "the `storage_account_name` property has been deprecated in favour of `storage_account_id` and will be removed in version 5.0 of the Provider.",
"willReplaceOnChanges": true
}
},
- "requiredInputs": [
- "storageAccountName"
- ],
"stateInputs": {
"description": "Input properties used for looking up and filtering Container resources.\n",
"properties": {
@@ -256889,11 +258103,18 @@
},
"resourceManagerId": {
"type": "string",
- "description": "The Resource Manager ID of this Storage Container.\n"
+ "description": "The Resource Manager ID of this Storage Container.\n",
+ "deprecationMessage": "this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider."
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n",
+ "willReplaceOnChanges": true
},
"storageAccountName": {
"type": "string",
- "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created.\n",
+ "description": "The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. This property is deprecated in favour of `storage_account_id`.\n",
+ "deprecationMessage": "the `storage_account_name` property has been deprecated in favour of `storage_account_id` and will be removed in version 5.0 of the Provider.",
"willReplaceOnChanges": true
}
},
@@ -258410,7 +259631,7 @@
}
},
"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/azure/storage/files/storage-files-faq#general).\n\n\u003e **Note on Authentication** Shared Key authentication will always be used for this resource, as AzureAD authentication is not supported by the Storage API for files.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"azuretest\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"azureteststorage\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n});\nconst exampleShare = new azure.storage.Share(\"example\", {\n name: \"sharename\",\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 = azure.core.ResourceGroup(\"example\",\n name=\"azuretest\",\n location=\"West Europe\")\nexample_account = azure.storage.Account(\"example\",\n name=\"azureteststorage\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\")\nexample_share = azure.storage.Share(\"example\",\n name=\"sharename\",\n storage_account_name=example_account.name,\n quota=50,\n acls=[{\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 System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"azuretest\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"azureteststorage\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n });\n\n var exampleShare = new Azure.Storage.Share(\"example\", new()\n {\n Name = \"sharename\",\n StorageAccountName = exampleAccount.Name,\n Quota = 50,\n Acls = new[]\n {\n new Azure.Storage.Inputs.ShareAclArgs\n {\n Id = \"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\",\n AccessPolicies = new[]\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```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"azuretest\"),\n\t\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, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"azureteststorage\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: 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\t_, err = storage.NewShare(ctx, \"example\", \u0026storage.ShareArgs{\n\t\t\tName: pulumi.String(\"sharename\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.Share;\nimport com.pulumi.azure.storage.ShareArgs;\nimport com.pulumi.azure.storage.inputs.ShareAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"azuretest\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"azureteststorage\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .build());\n\n var exampleShare = new Share(\"exampleShare\", ShareArgs.builder()\n .name(\"sharename\")\n .storageAccountName(exampleAccount.name())\n .quota(50)\n .acls(ShareAclArgs.builder()\n .id(\"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\")\n .accessPolicies(ShareAclAccessPolicyArgs.builder()\n .permissions(\"rwdl\")\n .start(\"2019-07-02T09:38:21.0000000Z\")\n .expiry(\"2019-07-02T10:38:21.0000000Z\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: azuretest\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: azureteststorage\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n exampleShare:\n type: azure:storage:Share\n name: example\n properties:\n name: sharename\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\u003c!--End PulumiCodeChooser --\u003e\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",
+ "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/azure/storage/files/storage-files-faq#general).\n\n\u003e **Note on Authentication** Shared Key authentication will always be used for this resource, as AzureAD authentication is not supported by the Storage API for files.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"azuretest\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"azureteststorage\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n});\nconst exampleShare = new azure.storage.Share(\"example\", {\n name: \"sharename\",\n storageAccountId: exampleAccount.id,\n quota: 50,\n acls: [{\n id: \"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\",\n accessPolicies: [{\n permissions: \"rwdl\",\n start: \"2019-07-02T09:38:21Z\",\n expiry: \"2019-07-02T10:38:21Z\",\n }],\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"azuretest\",\n location=\"West Europe\")\nexample_account = azure.storage.Account(\"example\",\n name=\"azureteststorage\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\")\nexample_share = azure.storage.Share(\"example\",\n name=\"sharename\",\n storage_account_id=example_account.id,\n quota=50,\n acls=[{\n \"id\": \"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\",\n \"access_policies\": [{\n \"permissions\": \"rwdl\",\n \"start\": \"2019-07-02T09:38:21Z\",\n \"expiry\": \"2019-07-02T10:38:21Z\",\n }],\n }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"azuretest\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"azureteststorage\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n });\n\n var exampleShare = new Azure.Storage.Share(\"example\", new()\n {\n Name = \"sharename\",\n StorageAccountId = exampleAccount.Id,\n Quota = 50,\n Acls = new[]\n {\n new Azure.Storage.Inputs.ShareAclArgs\n {\n Id = \"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\",\n AccessPolicies = new[]\n {\n new Azure.Storage.Inputs.ShareAclAccessPolicyArgs\n {\n Permissions = \"rwdl\",\n Start = \"2019-07-02T09:38:21Z\",\n Expiry = \"2019-07-02T10:38:21Z\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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 := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"azuretest\"),\n\t\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, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"azureteststorage\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: 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\t_, err = storage.NewShare(ctx, \"example\", \u0026storage.ShareArgs{\n\t\t\tName: pulumi.String(\"sharename\"),\n\t\t\tStorageAccountId: exampleAccount.ID(),\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:21Z\"),\n\t\t\t\t\t\t\tExpiry: pulumi.String(\"2019-07-02T10:38:21Z\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.Share;\nimport com.pulumi.azure.storage.ShareArgs;\nimport com.pulumi.azure.storage.inputs.ShareAclArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"azuretest\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"azureteststorage\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .build());\n\n var exampleShare = new Share(\"exampleShare\", ShareArgs.builder()\n .name(\"sharename\")\n .storageAccountId(exampleAccount.id())\n .quota(50)\n .acls(ShareAclArgs.builder()\n .id(\"MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\")\n .accessPolicies(ShareAclAccessPolicyArgs.builder()\n .permissions(\"rwdl\")\n .start(\"2019-07-02T09:38:21Z\")\n .expiry(\"2019-07-02T10:38:21Z\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: azuretest\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: azureteststorage\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n exampleShare:\n type: azure:storage:Share\n name: example\n properties:\n name: sharename\n storageAccountId: ${exampleAccount.id}\n quota: 50\n acls:\n - id: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI\n accessPolicies:\n - permissions: rwdl\n start: 2019-07-02T09:38:21Z\n expiry: 2019-07-02T10:38:21Z\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nStorage Shares can be imported using the `id`, e.g.\n\n```sh\n$ pulumi import azure:storage/share:Share exampleShare /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myAccount/fileServices/default/shares/exampleShare\n```\n\n",
"properties": {
"accessTier": {
"type": "string",
@@ -258444,11 +259665,17 @@
},
"resourceManagerId": {
"type": "string",
- "description": "The Resource Manager ID of this File Share.\n"
+ "description": "The Resource Manager ID of this File Share.\n",
+ "deprecationMessage": "this property is deprecated and will be removed 5.0 and replaced by the `id` property."
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n"
},
"storageAccountName": {
"type": "string",
- "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created.\n"
+ "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created. This property is deprecated in favour of `storage_account_id`.\n",
+ "deprecationMessage": "This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider."
},
"url": {
"type": "string",
@@ -258461,7 +259688,6 @@
"name",
"quota",
"resourceManagerId",
- "storageAccountName",
"url"
],
"inputProperties": {
@@ -258497,15 +259723,20 @@
"type": "integer",
"description": "The maximum size of the share, in gigabytes.\n\n~\u003e**NOTE:** For Standard storage accounts, by default this must be `1` GB (or higher) and at most `5120` GB (`5` TB). This can be set to a value larger than `5120` GB if `large_file_share_enabled` is set to `true` in the parent `azure.storage.Account`.\n\n~\u003e**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB).\n"
},
+ "storageAccountId": {
+ "type": "string",
+ "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n",
+ "willReplaceOnChanges": true
+ },
"storageAccountName": {
"type": "string",
- "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created.\n",
+ "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created. This property is deprecated in favour of `storage_account_id`.\n",
+ "deprecationMessage": "This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.",
"willReplaceOnChanges": true
}
},
"requiredInputs": [
- "quota",
- "storageAccountName"
+ "quota"
],
"stateInputs": {
"description": "Input properties used for looking up and filtering Share resources.\n",
@@ -258544,11 +259775,18 @@
},
"resourceManagerId": {
"type": "string",
- "description": "The Resource Manager ID of this File Share.\n"
+ "description": "The Resource Manager ID of this File Share.\n",
+ "deprecationMessage": "this property is deprecated and will be removed 5.0 and replaced by the `id` property."
+ },
+ "storageAccountId": {
+ "type": "string",
+ "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n",
+ "willReplaceOnChanges": true
},
"storageAccountName": {
"type": "string",
- "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created.\n",
+ "description": "Specifies the storage account in which to create the share. Changing this forces a new resource to be created. This property is deprecated in favour of `storage_account_id`.\n",
+ "deprecationMessage": "This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.",
"willReplaceOnChanges": true
},
"url": {
@@ -266318,7 +267556,7 @@
"deprecationMessage": "azure.trafficmanager.Profile has been deprecated in favor of azure.network.TrafficManagerProfile"
},
"azure:trustedsigning/account:Account": {
- "description": "Manages a Trusted Signing Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example\n location: West Europe\n exampleAccount:\n type: azure:trustedsigning:Account\n name: example\n properties:\n resourceGroupName: example\n location: West Europe\n sku:\n - name: Basic\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTrusted Signing Accounts can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:trustedsigning/account:Account example /subscriptions/0000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.CodeSigning/codeSigningAccounts/example-account\n```\n\n",
+ "description": "Manages a Trusted Signing Account.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example\",\n location: \"West Europe\",\n});\nconst exampleAccount = new azure.trustedsigning.Account(\"example\", {\n name: \"example-account\",\n resourceGroupName: example.name,\n location: \"West Europe\",\n skuName: \"Basic\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example\",\n location=\"West Europe\")\nexample_account = azure.trustedsigning.Account(\"example\",\n name=\"example-account\",\n resource_group_name=example.name,\n location=\"West Europe\",\n sku_name=\"Basic\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example\",\n Location = \"West Europe\",\n });\n\n var exampleAccount = new Azure.TrustedSigning.Account(\"example\", new()\n {\n Name = \"example-account\",\n ResourceGroupName = example.Name,\n Location = \"West Europe\",\n SkuName = \"Basic\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/trustedsigning\"\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\tName: pulumi.String(\"example\"),\n\t\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 = trustedsigning.NewAccount(ctx, \"example\", \u0026trustedsigning.AccountArgs{\n\t\t\tName: pulumi.String(\"example-account\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: pulumi.String(\"West Europe\"),\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\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.trustedsigning.Account;\nimport com.pulumi.azure.trustedsigning.AccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder()\n .name(\"example\")\n .location(\"West Europe\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder()\n .name(\"example-account\")\n .resourceGroupName(example.name())\n .location(\"West Europe\")\n .skuName(\"Basic\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example\n location: West Europe\n exampleAccount:\n type: azure:trustedsigning:Account\n name: example\n properties:\n name: example-account\n resourceGroupName: ${example.name}\n location: West Europe\n skuName: Basic\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nTrusted Signing Accounts can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:trustedsigning/account:Account example /subscriptions/0000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/Microsoft.CodeSigning/codeSigningAccounts/example-account\n```\n\n",
"properties": {
"accountUri": {
"type": "string",
@@ -291311,6 +292549,10 @@
"description": "The SKU of the Public IP Prefix.\n",
"type": "string"
},
+ "skuTier": {
+ "description": "The SKU Tier of the Public IP.\n",
+ "type": "string"
+ },
"tags": {
"additionalProperties": {
"type": "string"
@@ -291333,6 +292575,7 @@
"prefixLength",
"resourceGroupName",
"sku",
+ "skuTier",
"tags",
"zones",
"id"
@@ -299617,7 +300860,7 @@
}
},
"azure:storage/getShare:getShare": {
- "description": "Use this data source to access information about an existing File Share.\n\n\u003e **Note on Authentication** Shared Key authentication will always be used for this data source, as AzureAD authentication is not supported by the Storage API for files.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\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 System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Azure.Storage.GetShare.Invoke(new()\n {\n Name = \"existing\",\n StorageAccountName = \"existing\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"id\"] = example.Apply(getShareResult =\u003e getShareResult.Id),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.storage.StorageFunctions;\nimport com.pulumi.azure.storage.inputs.GetShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = StorageFunctions.getShare(GetShareArgs.builder()\n .name(\"existing\")\n .storageAccountName(\"existing\")\n .build());\n\n ctx.export(\"id\", example.applyValue(getShareResult -\u003e getShareResult.id()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: azure:storage:getShare\n Arguments:\n name: existing\n storageAccountName: existing\noutputs:\n id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
+ "description": "Use this data source to access information about an existing File Share.\n\n\u003e **Note on Authentication** Shared Key authentication will always be used for this data source, as AzureAD authentication is not supported by the Storage API for files.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.storage.getAccount({\n name: \"exampleaccount\",\n resourceGroupName: \"examples\",\n});\nconst exampleGetShare = example.then(example =\u003e azure.storage.getShare({\n name: \"existing\",\n storageAccountId: example.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_account(name=\"exampleaccount\",\n resource_group_name=\"examples\")\nexample_get_share = azure.storage.get_share(name=\"existing\",\n storage_account_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Azure.Storage.GetAccount.Invoke(new()\n {\n Name = \"exampleaccount\",\n ResourceGroupName = \"examples\",\n });\n\n var exampleGetShare = Azure.Storage.GetShare.Invoke(new()\n {\n Name = \"existing\",\n StorageAccountId = example.Apply(getAccountResult =\u003e getAccountResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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.LookupAccount(ctx, \u0026storage.LookupAccountArgs{\n\t\t\tName: \"exampleaccount\",\n\t\t\tResourceGroupName: pulumi.StringRef(\"examples\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.LookupShare(ctx, \u0026storage.LookupShareArgs{\n\t\t\tName: \"existing\",\n\t\t\tStorageAccountId: pulumi.StringRef(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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.storage.StorageFunctions;\nimport com.pulumi.azure.storage.inputs.GetAccountArgs;\nimport com.pulumi.azure.storage.inputs.GetShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = StorageFunctions.getAccount(GetAccountArgs.builder()\n .name(\"exampleaccount\")\n .resourceGroupName(\"examples\")\n .build());\n\n final var exampleGetShare = StorageFunctions.getShare(GetShareArgs.builder()\n .name(\"existing\")\n .storageAccountId(example.applyValue(getAccountResult -\u003e getAccountResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: azure:storage:getAccount\n Arguments:\n name: exampleaccount\n resourceGroupName: examples\n exampleGetShare:\n fn::invoke:\n Function: azure:storage:getShare\n Arguments:\n name: existing\n storageAccountId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
"inputs": {
"description": "A collection of arguments for invoking getShare.\n",
"properties": {
@@ -299639,15 +300882,18 @@
"type": "string",
"description": "The name of the share.\n"
},
+ "storageAccountId": {
+ "type": "string",
+ "description": "The ID of the storage account in which the share exists.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n"
+ },
"storageAccountName": {
"type": "string",
- "description": "The name of the storage account.\n"
+ "description": "The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`.\n"
}
},
"type": "object",
"required": [
- "name",
- "storageAccountName"
+ "name"
]
},
"outputs": {
@@ -299679,6 +300925,10 @@
"type": "integer"
},
"resourceManagerId": {
+ "deprecationMessage": "this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.",
+ "type": "string"
+ },
+ "storageAccountId": {
"type": "string"
},
"storageAccountName": {
@@ -299690,14 +300940,13 @@
"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## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = 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 System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Azure.Storage.GetStorageContainer.Invoke(new()\n {\n Name = \"example-container-name\",\n StorageAccountName = \"example-storage-account-name\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.storage.StorageFunctions;\nimport com.pulumi.azure.storage.inputs.GetStorageContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder()\n .name(\"example-container-name\")\n .storageAccountName(\"example-storage-account-name\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: azure:storage:getStorageContainer\n Arguments:\n name: example-container-name\n storageAccountName: example-storage-account-name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
+ "description": "Use this data source to access information about an existing Storage Container.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.storage.getAccount({\n name: \"exampleaccount\",\n resourceGroupName: \"examples\",\n});\nconst exampleGetStorageContainer = example.then(example =\u003e azure.storage.getStorageContainer({\n name: \"example-container-name\",\n storageAccountId: example.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.storage.get_account(name=\"exampleaccount\",\n resource_group_name=\"examples\")\nexample_get_storage_container = azure.storage.get_storage_container(name=\"example-container-name\",\n storage_account_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Azure.Storage.GetAccount.Invoke(new()\n {\n Name = \"exampleaccount\",\n ResourceGroupName = \"examples\",\n });\n\n var exampleGetStorageContainer = Azure.Storage.GetStorageContainer.Invoke(new()\n {\n Name = \"example-container-name\",\n StorageAccountId = example.Apply(getAccountResult =\u003e getAccountResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v6/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.LookupAccount(ctx, \u0026storage.LookupAccountArgs{\n\t\t\tName: \"exampleaccount\",\n\t\t\tResourceGroupName: pulumi.StringRef(\"examples\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storage.GetStorageContainer(ctx, \u0026storage.GetStorageContainerArgs{\n\t\t\tName: \"example-container-name\",\n\t\t\tStorageAccountId: pulumi.StringRef(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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.storage.StorageFunctions;\nimport com.pulumi.azure.storage.inputs.GetAccountArgs;\nimport com.pulumi.azure.storage.inputs.GetStorageContainerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var example = StorageFunctions.getAccount(GetAccountArgs.builder()\n .name(\"exampleaccount\")\n .resourceGroupName(\"examples\")\n .build());\n\n final var exampleGetStorageContainer = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder()\n .name(\"example-container-name\")\n .storageAccountId(example.applyValue(getAccountResult -\u003e getAccountResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: azure:storage:getAccount\n Arguments:\n name: exampleaccount\n resourceGroupName: examples\n exampleGetStorageContainer:\n fn::invoke:\n Function: azure:storage:getStorageContainer\n Arguments:\n name: example-container-name\n storageAccountId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n",
"inputs": {
"description": "A collection of arguments for invoking getStorageContainer.\n",
"properties": {
@@ -299712,15 +300961,18 @@
"type": "string",
"description": "The name of the Container.\n"
},
+ "storageAccountId": {
+ "type": "string",
+ "description": "The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider.\n\n\u003e **NOTE:** One of `storage_account_name` or `storage_account_id` must be specified. When specifying `storage_account_id` the resource will use the Resource Manager API, rather than the Data Plane API.\n"
+ },
"storageAccountName": {
"type": "string",
- "description": "The name of the Storage Account where the Container exists.\n"
+ "description": "The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`.\n"
}
},
"type": "object",
"required": [
- "name",
- "storageAccountName"
+ "name"
]
},
"outputs": {
@@ -299761,7 +301013,10 @@
"type": "string"
},
"resourceManagerId": {
- "description": "The Resource Manager ID of this Storage Container.\n",
+ "deprecationMessage": "this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.",
+ "type": "string"
+ },
+ "storageAccountId": {
"type": "string"
},
"storageAccountName": {
@@ -299777,7 +301032,6 @@
"metadata",
"name",
"resourceManagerId",
- "storageAccountName",
"id"
],
"type": "object"
diff --git a/provider/go.mod b/provider/go.mod
index ee0ba473f4..fcc0b1df3f 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -6,7 +6,7 @@ toolchain go1.22.7
require (
github.com/Azure/go-autorest/autorest/azure/cli v0.4.6
- github.com/hashicorp/go-azure-sdk/sdk v0.20241021.1074254
+ github.com/hashicorp/go-azure-sdk/sdk v0.20241104.1140654
github.com/hashicorp/terraform-plugin-sdk/v2 v2.33.0
github.com/hashicorp/terraform-provider-azurerm v1.44.1-0.20220923005104-eaa801c358ff
github.com/pulumi/providertest v0.1.3
@@ -104,7 +104,7 @@ require (
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gofrs/uuid v4.4.0+incompatible // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
+ github.com/golang-jwt/jwt/v4 v4.5.1 // indirect
github.com/golang-jwt/jwt/v5 v5.2.1 // indirect
github.com/golang/glog v1.2.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
@@ -120,8 +120,8 @@ require (
github.com/gorilla/mux v1.8.0 // indirect
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
- github.com/hashicorp/go-azure-helpers v0.70.1 // indirect
- github.com/hashicorp/go-azure-sdk/resource-manager v0.20241021.1074254 // indirect
+ github.com/hashicorp/go-azure-helpers v0.71.0 // indirect
+ github.com/hashicorp/go-azure-sdk/resource-manager v0.20241104.1140654 // indirect
github.com/hashicorp/go-checkpoint v0.5.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect
diff --git a/provider/go.sum b/provider/go.sum
index 3b6ec14de7..ca88b3d322 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -1468,8 +1468,9 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
-github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg=
github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
+github.com/golang-jwt/jwt/v4 v4.5.1 h1:JdqV9zKUdtaa9gdPlywC3aeoEsR681PlKC+4F5gQgeo=
+github.com/golang-jwt/jwt/v4 v4.5.1/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0=
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk=
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k=
@@ -1626,12 +1627,12 @@ github.com/hashicorp/cli v1.1.6/go.mod h1:MPon5QYlgjjo0BSoAiN0ESeT5fRzDjVRp+uioJ
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I=
github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-azure-helpers v0.70.1 h1:7hlnRrZobMZxpOzdlNEsayzAayj/KRG4wpDS1jgo4GM=
-github.com/hashicorp/go-azure-helpers v0.70.1/go.mod h1:BmbF4JDYXK5sEmFeU5hcn8Br21uElcqLfdQxjatwQKw=
-github.com/hashicorp/go-azure-sdk/resource-manager v0.20241021.1074254 h1:HkfUWlUIfivTGMoTH3j4KsuKN3HGBv58zhuVDizTeUQ=
-github.com/hashicorp/go-azure-sdk/resource-manager v0.20241021.1074254/go.mod h1:JILPz8H5GILFudutdlFv4BxmwK+k53/91jnd7KtPxbc=
-github.com/hashicorp/go-azure-sdk/sdk v0.20241021.1074254 h1:u9xvP60m/rlIv5p4b+sewB98UOT9CGTHoOY7BkiX27Y=
-github.com/hashicorp/go-azure-sdk/sdk v0.20241021.1074254/go.mod h1:dMKF6bXrgGmy1d3pLzkmBpG2JIHgSAV2/OMSCEgyMwE=
+github.com/hashicorp/go-azure-helpers v0.71.0 h1:ra3aIRzg01g6MLKQ+yABcb6WJtrqRUDDgyuPLmyZ9lY=
+github.com/hashicorp/go-azure-helpers v0.71.0/go.mod h1:BmbF4JDYXK5sEmFeU5hcn8Br21uElcqLfdQxjatwQKw=
+github.com/hashicorp/go-azure-sdk/resource-manager v0.20241104.1140654 h1:mJJ+LO2Xdu5S+Ccie0QTGXEupuVZfkQqCZ2/IOMeDIo=
+github.com/hashicorp/go-azure-sdk/resource-manager v0.20241104.1140654/go.mod h1:JFrQrK0Pbn0ynhgcnIsgD9lp1xq0vaRVtnxvPFiar1U=
+github.com/hashicorp/go-azure-sdk/sdk v0.20241104.1140654 h1:DxQDXVDMu2Jkli2KAWvwU2+fR9I7W5U2dKpwUAkARig=
+github.com/hashicorp/go-azure-sdk/sdk v0.20241104.1140654/go.mod h1:dMKF6bXrgGmy1d3pLzkmBpG2JIHgSAV2/OMSCEgyMwE=
github.com/hashicorp/go-checkpoint v0.5.0 h1:MFYpPZCnQqQTE18jFwSII6eUQrD/oxMFp3mlgcqk5mU=
github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg=
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
diff --git a/provider/resources.go b/provider/resources.go
index f37a6da3f0..d80a69349e 100644
--- a/provider/resources.go
+++ b/provider/resources.go
@@ -106,6 +106,7 @@ const (
azureDigitalTwins = "DigitalTwins" // Digital Twins
azureDNS = "Dns" // DNS
azureDomainServices = "DomainServices" // DomainServices
+ azureDynatrace = "Dynatrace" // Dynatrace
azureElasticCloud = "ElasticCloud" // Elastic Cloud
azureExpressRoute = "ExpressRoute" // ExpressRoute
azureExtendedLocation = "ExtendedLocation" // Extended Location
@@ -268,6 +269,7 @@ var moduleMap = map[string]string{
"digital_twins": azureDigitalTwins,
"dns": azureDNS,
"active_directory_domain": azureDomainServices,
+ "dynatrace": azureDynatrace,
"elastic_cloud": azureElasticCloud,
"elastic_san": "ElasticSan",
"fluid_relay": azureFluidRelay,
@@ -769,6 +771,14 @@ func Provider() tfbridge.ProviderInfo {
},
},
"azurerm_app_service_active_slot": {Tok: azureResource(azureAppService, "ActiveSlot")},
+
+ "azurerm_dynatrace_monitor": {
+ Tok: azureResource(azureDynatrace, "Monitor"),
+ Docs: &tfbridge.DocInfo{
+ Source: "dynatrace_monitors.html.markdown",
+ },
+ },
+
"azurerm_function_app": {
Tok: azureResource(azureAppService, "FunctionApp"),
Fields: map[string]*tfbridge.SchemaInfo{
@@ -1543,7 +1553,10 @@ func Provider() tfbridge.ProviderInfo {
return pm, nil
},
},
- "azurerm_cosmosdb_cassandra_keyspace": {Tok: azureResource(azureCosmosDB, "CassandraKeyspace")},
+ "azurerm_cosmosdb_cassandra_keyspace": {Tok: azureResource(azureCosmosDB, "CassandraKeyspace")},
+ // Despite not having "cosmosdb" in the name, this is a CosmosDB resource.
+ // https://github.com/hashicorp/terraform-provider-azurerm/pull/27636
+ "azurerm_mongo_cluster": {Tok: azureResource(azureCosmosDB, "MongoCluster")},
"azurerm_cosmosdb_mongo_collection": {Tok: azureResource(azureCosmosDB, "MongoCollection")},
"azurerm_cosmosdb_mongo_database": {Tok: azureResource(azureCosmosDB, "MongoDatabase")},
"azurerm_cosmosdb_sql_container": {Tok: azureResource(azureCosmosDB, "SqlContainer")},
diff --git a/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsArgs.cs b/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsArgs.cs
index 59e683f067..56cd8dd426 100644
--- a/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsArgs.cs
+++ b/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsArgs.cs
@@ -28,6 +28,8 @@ public sealed class FrontdoorCustomDomainTlsArgs : global::Pulumi.ResourceArgs
///
/// TLS protocol version that will be used for Https. Possible values include `TLS10` and `TLS12`. Defaults to `TLS12`.
+ ///
+ /// > **Note** Azure Services will require TLS 1.2+ by August 2025, please see this [announcement](https://azure.microsoft.com/en-us/updates/v2/update-retirement-tls1-0-tls1-1-versions-azure-services/) for more details.
///
[Input("minimumTlsVersion")]
public Input? MinimumTlsVersion { get; set; }
diff --git a/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsGetArgs.cs b/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsGetArgs.cs
index ca3b794e27..241966bef0 100644
--- a/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsGetArgs.cs
+++ b/sdk/dotnet/Cdn/Inputs/FrontdoorCustomDomainTlsGetArgs.cs
@@ -28,6 +28,8 @@ public sealed class FrontdoorCustomDomainTlsGetArgs : global::Pulumi.ResourceArg
///
/// TLS protocol version that will be used for Https. Possible values include `TLS10` and `TLS12`. Defaults to `TLS12`.
+ ///
+ /// > **Note** Azure Services will require TLS 1.2+ by August 2025, please see this [announcement](https://azure.microsoft.com/en-us/updates/v2/update-retirement-tls1-0-tls1-1-versions-azure-services/) for more details.
///
[Input("minimumTlsVersion")]
public Input? MinimumTlsVersion { get; set; }
diff --git a/sdk/dotnet/Cdn/Outputs/FrontdoorCustomDomainTls.cs b/sdk/dotnet/Cdn/Outputs/FrontdoorCustomDomainTls.cs
index 633188a2ab..8aca71b7f5 100644
--- a/sdk/dotnet/Cdn/Outputs/FrontdoorCustomDomainTls.cs
+++ b/sdk/dotnet/Cdn/Outputs/FrontdoorCustomDomainTls.cs
@@ -25,6 +25,8 @@ public sealed class FrontdoorCustomDomainTls
public readonly string? CertificateType;
///
/// TLS protocol version that will be used for Https. Possible values include `TLS10` and `TLS12`. Defaults to `TLS12`.
+ ///
+ /// > **Note** Azure Services will require TLS 1.2+ by August 2025, please see this [announcement](https://azure.microsoft.com/en-us/updates/v2/update-retirement-tls1-0-tls1-1-versions-azure-services/) for more details.
///
public readonly string? MinimumTlsVersion;
diff --git a/sdk/dotnet/Cognitive/Inputs/DeploymentSkuArgs.cs b/sdk/dotnet/Cognitive/Inputs/DeploymentSkuArgs.cs
index b6086518e4..d3566bff9d 100644
--- a/sdk/dotnet/Cognitive/Inputs/DeploymentSkuArgs.cs
+++ b/sdk/dotnet/Cognitive/Inputs/DeploymentSkuArgs.cs
@@ -25,7 +25,7 @@ public sealed class DeploymentSkuArgs : global::Pulumi.ResourceArgs
public Input? Family { get; set; }
///
- /// The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.
+ /// The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.
///
[Input("name", required: true)]
public Input Name { get; set; } = null!;
diff --git a/sdk/dotnet/Cognitive/Inputs/DeploymentSkuGetArgs.cs b/sdk/dotnet/Cognitive/Inputs/DeploymentSkuGetArgs.cs
index e780380508..ad733f8607 100644
--- a/sdk/dotnet/Cognitive/Inputs/DeploymentSkuGetArgs.cs
+++ b/sdk/dotnet/Cognitive/Inputs/DeploymentSkuGetArgs.cs
@@ -25,7 +25,7 @@ public sealed class DeploymentSkuGetArgs : global::Pulumi.ResourceArgs
public Input? Family { get; set; }
///
- /// The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.
+ /// The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.
///
[Input("name", required: true)]
public Input Name { get; set; } = null!;
diff --git a/sdk/dotnet/Cognitive/Outputs/DeploymentSku.cs b/sdk/dotnet/Cognitive/Outputs/DeploymentSku.cs
index a9e50d8e01..ea6a989c48 100644
--- a/sdk/dotnet/Cognitive/Outputs/DeploymentSku.cs
+++ b/sdk/dotnet/Cognitive/Outputs/DeploymentSku.cs
@@ -22,7 +22,7 @@ public sealed class DeploymentSku
///
public readonly string? Family;
///
- /// The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.
+ /// The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`.
///
public readonly string Name;
///
diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs
index e562f7e1ef..a37a6ed6e4 100644
--- a/sdk/dotnet/Config/Config.cs
+++ b/sdk/dotnet/Config/Config.cs
@@ -346,6 +346,7 @@ public class Features
public Pulumi.Azure.Config.Types.FeaturesRecoveryService? RecoveryService { get; set; } = null!;
public Pulumi.Azure.Config.Types.FeaturesRecoveryServicesVaults? RecoveryServicesVaults { get; set; } = null!;
public Pulumi.Azure.Config.Types.FeaturesResourceGroup? ResourceGroup { get; set; } = null!;
+ public Pulumi.Azure.Config.Types.FeaturesStorage? Storage { get; set; } = null!;
public Pulumi.Azure.Config.Types.FeaturesSubscription? Subscription { get; set; } = null!;
public Pulumi.Azure.Config.Types.FeaturesTemplateDeployment? TemplateDeployment { get; set; } = null!;
public Pulumi.Azure.Config.Types.FeaturesVirtualMachine? VirtualMachine { get; set; } = null!;
@@ -458,6 +459,11 @@ public class FeaturesResourceGroup
public bool? PreventDeletionIfContainsResources { get; set; }
}
+ public class FeaturesStorage
+ {
+ public bool? DataPlaneAvailable { get; set; }
+ }
+
public class FeaturesSubscription
{
public bool? PreventCancellationOnDestroy { get; set; }
diff --git a/sdk/dotnet/ContainerService/KubernetesCluster.cs b/sdk/dotnet/ContainerService/KubernetesCluster.cs
index 791cded54c..77d955b1c9 100644
--- a/sdk/dotnet/ContainerService/KubernetesCluster.cs
+++ b/sdk/dotnet/ContainerService/KubernetesCluster.cs
@@ -130,7 +130,7 @@ public partial class KubernetesCluster : global::Pulumi.CustomResource
public Output CurrentKubernetesVersion { get; private set; } = null!;
///
- /// A `default_node_pool` block as defined below.
+ /// Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below.
///
[Output("defaultNodePool")]
public Output DefaultNodePool { get; private set; } = null!;
@@ -656,7 +656,7 @@ public sealed class KubernetesClusterArgs : global::Pulumi.ResourceArgs
public Input? CostAnalysisEnabled { get; set; }
///
- /// A `default_node_pool` block as defined below.
+ /// Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below.
///
[Input("defaultNodePool", required: true)]
public Input DefaultNodePool { get; set; } = null!;
@@ -1089,7 +1089,7 @@ public sealed class KubernetesClusterState : global::Pulumi.ResourceArgs
public Input? CurrentKubernetesVersion { get; set; }
///
- /// A `default_node_pool` block as defined below.
+ /// Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below.
///
[Input("defaultNodePool")]
public Input? DefaultNodePool { get; set; }
diff --git a/sdk/dotnet/CosmosDB/MongoCluster.cs b/sdk/dotnet/CosmosDB/MongoCluster.cs
new file mode 100644
index 0000000000..ef819c2e57
--- /dev/null
+++ b/sdk/dotnet/CosmosDB/MongoCluster.cs
@@ -0,0 +1,505 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.CosmosDB
+{
+ ///
+ /// Manages a MongoDB Cluster using vCore Architecture.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Azure = Pulumi.Azure;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var example = new Azure.Core.ResourceGroup("example", new()
+ /// {
+ /// Name = "example-rg",
+ /// Location = "East US",
+ /// });
+ ///
+ /// var exampleMongoCluster = new Azure.CosmosDB.MongoCluster("example", new()
+ /// {
+ /// Name = "example-mc",
+ /// ResourceGroupName = example.Name,
+ /// Location = example.Location,
+ /// AdministratorUsername = "adminTerraform",
+ /// AdministratorPassword = "QAZwsx123",
+ /// ShardCount = 1,
+ /// ComputeTier = "Free",
+ /// HighAvailabilityMode = "Disabled",
+ /// StorageSizeInGb = 32,
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ### Preview Feature GeoReplicas)
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Azure = Pulumi.Azure;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var example = new Azure.Core.ResourceGroup("example", new()
+ /// {
+ /// Name = "example-rg",
+ /// Location = "East US",
+ /// });
+ ///
+ /// var exampleMongoCluster = new Azure.CosmosDB.MongoCluster("example", new()
+ /// {
+ /// Name = "example-mc",
+ /// ResourceGroupName = example.Name,
+ /// Location = example.Location,
+ /// AdministratorUsername = "adminTerraform",
+ /// AdministratorPassword = "QAZwsx123",
+ /// ShardCount = 1,
+ /// ComputeTier = "M30",
+ /// HighAvailabilityMode = "ZoneRedundantPreferred",
+ /// StorageSizeInGb = 64,
+ /// PreviewFeatures = new[]
+ /// {
+ /// "GeoReplicas",
+ /// },
+ /// });
+ ///
+ /// var exampleGeoReplica = new Azure.CosmosDB.MongoCluster("example_geo_replica", new()
+ /// {
+ /// Name = "example-mc-geo",
+ /// ResourceGroupName = example.Name,
+ /// Location = "Central US",
+ /// SourceServerId = exampleMongoCluster.Id,
+ /// SourceLocation = exampleMongoCluster.Location,
+ /// CreateMode = "GeoReplica",
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// MongoDB Clusters can be imported using the `resource id`, e.g.
+ ///
+ /// ```sh
+ /// $ pulumi import azure:cosmosdb/mongoCluster:MongoCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/mongoClusters/myMongoCluster
+ /// ```
+ ///
+ [AzureResourceType("azure:cosmosdb/mongoCluster:MongoCluster")]
+ public partial class MongoCluster : global::Pulumi.CustomResource
+ {
+ ///
+ /// The Password associated with the `administrator_username` for the MongoDB Cluster.
+ ///
+ [Output("administratorPassword")]
+ public Output AdministratorPassword { get; private set; } = null!;
+
+ ///
+ /// The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Output("administratorUsername")]
+ public Output AdministratorUsername { get; private set; } = null!;
+
+ ///
+ /// The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`.
+ ///
+ [Output("computeTier")]
+ public Output ComputeTier { get; private set; } = null!;
+
+ ///
+ /// The creation mode for the MongoDB Cluster. Possibles values are `Default` and `GeoReplica`. Defaults to `Default`. Changing this forces a new resource to be created.
+ ///
+ /// > **Note** The creation mode `GeoReplica` is currently in preview. It is only available when `preview_features` is set.
+ ///
+ [Output("createMode")]
+ public Output CreateMode { get; private set; } = null!;
+
+ ///
+ /// The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`.
+ ///
+ [Output("highAvailabilityMode")]
+ public Output HighAvailabilityMode { get; private set; } = null!;
+
+ ///
+ /// The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created.
+ ///
+ [Output("location")]
+ public Output Location { get; private set; } = null!;
+
+ ///
+ /// The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Output("previewFeatures")]
+ public Output> PreviewFeatures { get; private set; } = null!;
+
+ ///
+ /// The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`.
+ ///
+ [Output("publicNetworkAccess")]
+ public Output PublicNetworkAccess { get; private set; } = null!;
+
+ ///
+ /// The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Output("resourceGroupName")]
+ public Output ResourceGroupName { get; private set; } = null!;
+
+ ///
+ /// The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Output("shardCount")]
+ public Output ShardCount { get; private set; } = null!;
+
+ ///
+ /// The location of the source MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Output("sourceLocation")]
+ public Output SourceLocation { get; private set; } = null!;
+
+ ///
+ /// The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Output("sourceServerId")]
+ public Output SourceServerId { get; private set; } = null!;
+
+ ///
+ /// The size of the data disk space for the MongoDB Cluster.
+ ///
+ [Output("storageSizeInGb")]
+ public Output StorageSizeInGb { get; private set; } = null!;
+
+ ///
+ /// A mapping of tags to assign to the MongoDB Cluster.
+ ///
+ [Output("tags")]
+ public Output?> Tags { get; private set; } = null!;
+
+ ///
+ /// The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`.
+ ///
+ [Output("version")]
+ public Output Version { get; private set; } = null!;
+
+
+ ///
+ /// Create a MongoCluster resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public MongoCluster(string name, MongoClusterArgs args, CustomResourceOptions? options = null)
+ : base("azure:cosmosdb/mongoCluster:MongoCluster", name, args ?? new MongoClusterArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private MongoCluster(string name, Input id, MongoClusterState? state = null, CustomResourceOptions? options = null)
+ : base("azure:cosmosdb/mongoCluster:MongoCluster", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ AdditionalSecretOutputs =
+ {
+ "administratorPassword",
+ },
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing MongoCluster resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static MongoCluster Get(string name, Input id, MongoClusterState? state = null, CustomResourceOptions? options = null)
+ {
+ return new MongoCluster(name, id, state, options);
+ }
+ }
+
+ public sealed class MongoClusterArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("administratorPassword")]
+ private Input? _administratorPassword;
+
+ ///
+ /// The Password associated with the `administrator_username` for the MongoDB Cluster.
+ ///
+ public Input? AdministratorPassword
+ {
+ get => _administratorPassword;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _administratorPassword = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ ///
+ /// The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("administratorUsername")]
+ public Input? AdministratorUsername { get; set; }
+
+ ///
+ /// The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`.
+ ///
+ [Input("computeTier")]
+ public Input? ComputeTier { get; set; }
+
+ ///
+ /// The creation mode for the MongoDB Cluster. Possibles values are `Default` and `GeoReplica`. Defaults to `Default`. Changing this forces a new resource to be created.
+ ///
+ /// > **Note** The creation mode `GeoReplica` is currently in preview. It is only available when `preview_features` is set.
+ ///
+ [Input("createMode")]
+ public Input? CreateMode { get; set; }
+
+ ///
+ /// The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`.
+ ///
+ [Input("highAvailabilityMode")]
+ public Input? HighAvailabilityMode { get; set; }
+
+ ///
+ /// The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ [Input("previewFeatures")]
+ private InputList? _previewFeatures;
+
+ ///
+ /// The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ public InputList PreviewFeatures
+ {
+ get => _previewFeatures ?? (_previewFeatures = new InputList());
+ set => _previewFeatures = value;
+ }
+
+ ///
+ /// The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`.
+ ///
+ [Input("publicNetworkAccess")]
+ public Input? PublicNetworkAccess { get; set; }
+
+ ///
+ /// The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("resourceGroupName", required: true)]
+ public Input ResourceGroupName { get; set; } = null!;
+
+ ///
+ /// The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("shardCount")]
+ public Input? ShardCount { get; set; }
+
+ ///
+ /// The location of the source MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("sourceLocation")]
+ public Input? SourceLocation { get; set; }
+
+ ///
+ /// The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("sourceServerId")]
+ public Input? SourceServerId { get; set; }
+
+ ///
+ /// The size of the data disk space for the MongoDB Cluster.
+ ///
+ [Input("storageSizeInGb")]
+ public Input? StorageSizeInGb { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags to assign to the MongoDB Cluster.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ ///
+ /// The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`.
+ ///
+ [Input("version")]
+ public Input? Version { get; set; }
+
+ public MongoClusterArgs()
+ {
+ }
+ public static new MongoClusterArgs Empty => new MongoClusterArgs();
+ }
+
+ public sealed class MongoClusterState : global::Pulumi.ResourceArgs
+ {
+ [Input("administratorPassword")]
+ private Input? _administratorPassword;
+
+ ///
+ /// The Password associated with the `administrator_username` for the MongoDB Cluster.
+ ///
+ public Input? AdministratorPassword
+ {
+ get => _administratorPassword;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _administratorPassword = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
+ ///
+ /// The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("administratorUsername")]
+ public Input? AdministratorUsername { get; set; }
+
+ ///
+ /// The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`.
+ ///
+ [Input("computeTier")]
+ public Input? ComputeTier { get; set; }
+
+ ///
+ /// The creation mode for the MongoDB Cluster. Possibles values are `Default` and `GeoReplica`. Defaults to `Default`. Changing this forces a new resource to be created.
+ ///
+ /// > **Note** The creation mode `GeoReplica` is currently in preview. It is only available when `preview_features` is set.
+ ///
+ [Input("createMode")]
+ public Input? CreateMode { get; set; }
+
+ ///
+ /// The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`.
+ ///
+ [Input("highAvailabilityMode")]
+ public Input? HighAvailabilityMode { get; set; }
+
+ ///
+ /// The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ [Input("previewFeatures")]
+ private InputList? _previewFeatures;
+
+ ///
+ /// The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ public InputList PreviewFeatures
+ {
+ get => _previewFeatures ?? (_previewFeatures = new InputList());
+ set => _previewFeatures = value;
+ }
+
+ ///
+ /// The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`.
+ ///
+ [Input("publicNetworkAccess")]
+ public Input? PublicNetworkAccess { get; set; }
+
+ ///
+ /// The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("resourceGroupName")]
+ public Input? ResourceGroupName { get; set; }
+
+ ///
+ /// The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("shardCount")]
+ public Input? ShardCount { get; set; }
+
+ ///
+ /// The location of the source MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("sourceLocation")]
+ public Input? SourceLocation { get; set; }
+
+ ///
+ /// The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created.
+ ///
+ [Input("sourceServerId")]
+ public Input? SourceServerId { get; set; }
+
+ ///
+ /// The size of the data disk space for the MongoDB Cluster.
+ ///
+ [Input("storageSizeInGb")]
+ public Input? StorageSizeInGb { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags to assign to the MongoDB Cluster.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ ///
+ /// The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`.
+ ///
+ [Input("version")]
+ public Input? Version { get; set; }
+
+ public MongoClusterState()
+ {
+ }
+ public static new MongoClusterState Empty => new MongoClusterState();
+ }
+}
diff --git a/sdk/dotnet/Dashboard/GrafanaManagedPrivateEndpoint.cs b/sdk/dotnet/Dashboard/GrafanaManagedPrivateEndpoint.cs
new file mode 100644
index 0000000000..5e37b9a24a
--- /dev/null
+++ b/sdk/dotnet/Dashboard/GrafanaManagedPrivateEndpoint.cs
@@ -0,0 +1,311 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dashboard
+{
+ ///
+ /// Manages a Dashboard Grafana Managed Private Endpoint.
+ ///
+ /// > **NOTE:** This resource will _not_ approve the managed private endpoint connection on the linked resource. This will need to be done manually via Azure CLI, PowerShell, or AzAPI resources. See here for an example that uses AzAPI.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Azure = Pulumi.Azure;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var example = new Azure.Core.ResourceGroup("example", new()
+ /// {
+ /// Name = "example-resources",
+ /// Location = "Canada Central",
+ /// });
+ ///
+ /// var exampleWorkspace = new Azure.Monitoring.Workspace("example", new()
+ /// {
+ /// Name = "example-mamw",
+ /// ResourceGroupName = example.Name,
+ /// Location = example.Location,
+ /// PublicNetworkAccessEnabled = false,
+ /// });
+ ///
+ /// var exampleGrafana = new Azure.Dashboard.Grafana("example", new()
+ /// {
+ /// Name = "example-dg",
+ /// ResourceGroupName = example.Name,
+ /// Location = example.Location,
+ /// GrafanaMajorVersion = "10",
+ /// PublicNetworkAccessEnabled = false,
+ /// AzureMonitorWorkspaceIntegrations = new[]
+ /// {
+ /// new Azure.Dashboard.Inputs.GrafanaAzureMonitorWorkspaceIntegrationArgs
+ /// {
+ /// ResourceId = exampleWorkspace.Id,
+ /// },
+ /// },
+ /// });
+ ///
+ /// var exampleGrafanaManagedPrivateEndpoint = new Azure.Dashboard.GrafanaManagedPrivateEndpoint("example", new()
+ /// {
+ /// GrafanaId = exampleGrafana.Id,
+ /// Name = "example-mpe",
+ /// Location = exampleGrafana.Location,
+ /// PrivateLinkResourceId = exampleWorkspace.Id,
+ /// GroupIds = new[]
+ /// {
+ /// "prometheusMetrics",
+ /// },
+ /// PrivateLinkResourceRegion = exampleGrafana.Location,
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// Dashboard Grafana Managed Private Endpoint Examples can be imported using the `resource id`, e.g.
+ ///
+ /// ```sh
+ /// $ pulumi import azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.Dashboard/grafana/workspace1/managedPrivateEndpoints/endpoint1
+ /// ```
+ ///
+ [AzureResourceType("azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint")]
+ public partial class GrafanaManagedPrivateEndpoint : global::Pulumi.CustomResource
+ {
+ ///
+ /// The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Output("grafanaId")]
+ public Output GrafanaId { get; private set; } = null!;
+
+ ///
+ /// Specifies a list of private link group IDs. The value of this will depend on the private link resource to which you are connecting. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Output("groupIds")]
+ public Output> GroupIds { get; private set; } = null!;
+
+ ///
+ /// The Azure Region where the Dashboard Grafana Managed Private Endpoint should exist. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Output("location")]
+ public Output Location { get; private set; } = null!;
+
+ ///
+ /// The name which should be used for this Dashboard Grafana Managed Private Endpoint. Must be between 2 and 20 alphanumeric characters or dashes, must begin with letter and end with a letter or number. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The ID of the resource to which this Dashboard Grafana Managed Private Endpoint will connect. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Output("privateLinkResourceId")]
+ public Output PrivateLinkResourceId { get; private set; } = null!;
+
+ ///
+ /// The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Output("privateLinkResourceRegion")]
+ public Output PrivateLinkResourceRegion { get; private set; } = null!;
+
+ ///
+ /// A message to provide in the request which will be seen by approvers.
+ ///
+ [Output("requestMessage")]
+ public Output RequestMessage { get; private set; } = null!;
+
+ ///
+ /// A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint.
+ ///
+ [Output("tags")]
+ public Output?> Tags { get; private set; } = null!;
+
+
+ ///
+ /// Create a GrafanaManagedPrivateEndpoint resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public GrafanaManagedPrivateEndpoint(string name, GrafanaManagedPrivateEndpointArgs args, CustomResourceOptions? options = null)
+ : base("azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint", name, args ?? new GrafanaManagedPrivateEndpointArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private GrafanaManagedPrivateEndpoint(string name, Input id, GrafanaManagedPrivateEndpointState? state = null, CustomResourceOptions? options = null)
+ : base("azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing GrafanaManagedPrivateEndpoint resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static GrafanaManagedPrivateEndpoint Get(string name, Input id, GrafanaManagedPrivateEndpointState? state = null, CustomResourceOptions? options = null)
+ {
+ return new GrafanaManagedPrivateEndpoint(name, id, state, options);
+ }
+ }
+
+ public sealed class GrafanaManagedPrivateEndpointArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("grafanaId", required: true)]
+ public Input GrafanaId { get; set; } = null!;
+
+ [Input("groupIds")]
+ private InputList? _groupIds;
+
+ ///
+ /// Specifies a list of private link group IDs. The value of this will depend on the private link resource to which you are connecting. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ public InputList GroupIds
+ {
+ get => _groupIds ?? (_groupIds = new InputList());
+ set => _groupIds = value;
+ }
+
+ ///
+ /// The Azure Region where the Dashboard Grafana Managed Private Endpoint should exist. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// The name which should be used for this Dashboard Grafana Managed Private Endpoint. Must be between 2 and 20 alphanumeric characters or dashes, must begin with letter and end with a letter or number. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the resource to which this Dashboard Grafana Managed Private Endpoint will connect. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("privateLinkResourceId", required: true)]
+ public Input PrivateLinkResourceId { get; set; } = null!;
+
+ ///
+ /// The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("privateLinkResourceRegion")]
+ public Input? PrivateLinkResourceRegion { get; set; }
+
+ ///
+ /// A message to provide in the request which will be seen by approvers.
+ ///
+ [Input("requestMessage")]
+ public Input? RequestMessage { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ public GrafanaManagedPrivateEndpointArgs()
+ {
+ }
+ public static new GrafanaManagedPrivateEndpointArgs Empty => new GrafanaManagedPrivateEndpointArgs();
+ }
+
+ public sealed class GrafanaManagedPrivateEndpointState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("grafanaId")]
+ public Input? GrafanaId { get; set; }
+
+ [Input("groupIds")]
+ private InputList? _groupIds;
+
+ ///
+ /// Specifies a list of private link group IDs. The value of this will depend on the private link resource to which you are connecting. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ public InputList GroupIds
+ {
+ get => _groupIds ?? (_groupIds = new InputList());
+ set => _groupIds = value;
+ }
+
+ ///
+ /// The Azure Region where the Dashboard Grafana Managed Private Endpoint should exist. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// The name which should be used for this Dashboard Grafana Managed Private Endpoint. Must be between 2 and 20 alphanumeric characters or dashes, must begin with letter and end with a letter or number. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the resource to which this Dashboard Grafana Managed Private Endpoint will connect. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("privateLinkResourceId")]
+ public Input? PrivateLinkResourceId { get; set; }
+
+ ///
+ /// The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created.
+ ///
+ [Input("privateLinkResourceRegion")]
+ public Input? PrivateLinkResourceRegion { get; set; }
+
+ ///
+ /// A message to provide in the request which will be seen by approvers.
+ ///
+ [Input("requestMessage")]
+ public Input? RequestMessage { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ public GrafanaManagedPrivateEndpointState()
+ {
+ }
+ public static new GrafanaManagedPrivateEndpointState Empty => new GrafanaManagedPrivateEndpointState();
+ }
+}
diff --git a/sdk/dotnet/DataProtection/BackupInstanceMysqlFlexibleServer.cs b/sdk/dotnet/DataProtection/BackupInstanceMysqlFlexibleServer.cs
new file mode 100644
index 0000000000..cd89584c43
--- /dev/null
+++ b/sdk/dotnet/DataProtection/BackupInstanceMysqlFlexibleServer.cs
@@ -0,0 +1,271 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.DataProtection
+{
+ ///
+ /// Manages a Backup Instance to back up MySQL Flexible Server.
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Azure = Pulumi.Azure;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var example = new Azure.Core.ResourceGroup("example", new()
+ /// {
+ /// Name = "example-resources",
+ /// Location = "West Europe",
+ /// });
+ ///
+ /// var exampleFlexibleServer = new Azure.MySql.FlexibleServer("example", new()
+ /// {
+ /// Name = "example-mysqlfs",
+ /// ResourceGroupName = example.Name,
+ /// Location = example.Location,
+ /// AdministratorLogin = "adminTerraform",
+ /// AdministratorPassword = "QAZwsx123",
+ /// Version = "8.0.21",
+ /// SkuName = "B_Standard_B1s",
+ /// Zone = "1",
+ /// });
+ ///
+ /// var exampleBackupVault = new Azure.DataProtection.BackupVault("example", new()
+ /// {
+ /// Name = "example-backupvault",
+ /// ResourceGroupName = example.Name,
+ /// Location = example.Location,
+ /// DatastoreType = "VaultStore",
+ /// Redundancy = "LocallyRedundant",
+ /// SoftDelete = "Off",
+ /// Identity = new Azure.DataProtection.Inputs.BackupVaultIdentityArgs
+ /// {
+ /// Type = "SystemAssigned",
+ /// },
+ /// });
+ ///
+ /// var exampleAssignment = new Azure.Authorization.Assignment("example", new()
+ /// {
+ /// Scope = example.Id,
+ /// RoleDefinitionName = "Reader",
+ /// PrincipalId = exampleBackupVault.Identity.Apply(identity => identity?.PrincipalId),
+ /// });
+ ///
+ /// var example2 = new Azure.Authorization.Assignment("example2", new()
+ /// {
+ /// Scope = exampleFlexibleServer.Id,
+ /// RoleDefinitionName = "MySQL Backup And Export Operator",
+ /// PrincipalId = exampleBackupVault.Identity.Apply(identity => identity?.PrincipalId),
+ /// });
+ ///
+ /// var exampleBackupPolicyMysqlFlexibleServer = new Azure.DataProtection.BackupPolicyMysqlFlexibleServer("example", new()
+ /// {
+ /// Name = "example-dp",
+ /// VaultId = exampleBackupVault.Id,
+ /// BackupRepeatingTimeIntervals = new[]
+ /// {
+ /// "R/2021-05-23T02:30:00+00:00/P1W",
+ /// },
+ /// DefaultRetentionRule = new Azure.DataProtection.Inputs.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs
+ /// {
+ /// LifeCycles = new[]
+ /// {
+ /// new Azure.DataProtection.Inputs.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArgs
+ /// {
+ /// Duration = "P4M",
+ /// DataStoreType = "VaultStore",
+ /// },
+ /// },
+ /// },
+ /// }, new CustomResourceOptions
+ /// {
+ /// DependsOn =
+ /// {
+ /// exampleAssignment,
+ /// example2,
+ /// },
+ /// });
+ ///
+ /// var exampleBackupInstanceMysqlFlexibleServer = new Azure.DataProtection.BackupInstanceMysqlFlexibleServer("example", new()
+ /// {
+ /// Name = "example-dbi",
+ /// Location = example.Location,
+ /// VaultId = exampleBackupVault.Id,
+ /// ServerId = exampleFlexibleServer.Id,
+ /// BackupPolicyId = exampleBackupPolicyMysqlFlexibleServer.Id,
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// Backup Instance MySQL Flexible Servers can be imported using the `resource id`, e.g.
+ ///
+ /// ```sh
+ /// $ pulumi import azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataProtection/backupVaults/vault1/backupInstances/backupInstance1
+ /// ```
+ ///
+ [AzureResourceType("azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer")]
+ public partial class BackupInstanceMysqlFlexibleServer : global::Pulumi.CustomResource
+ {
+ ///
+ /// The ID of the Backup Policy.
+ ///
+ [Output("backupPolicyId")]
+ public Output BackupPolicyId { get; private set; } = null!;
+
+ ///
+ /// The location of the source database. Changing this forces a new resource to be created.
+ ///
+ [Output("location")]
+ public Output Location { get; private set; } = null!;
+
+ ///
+ /// Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The ID of the source server. Changing this forces a new resource to be created.
+ ///
+ [Output("serverId")]
+ public Output ServerId { get; private set; } = null!;
+
+ ///
+ /// The ID of the Backup Vault within which the MySQL Flexible Server Backup Instance should exist. Changing this forces a new resource to be created.
+ ///
+ [Output("vaultId")]
+ public Output VaultId { get; private set; } = null!;
+
+
+ ///
+ /// Create a BackupInstanceMysqlFlexibleServer resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public BackupInstanceMysqlFlexibleServer(string name, BackupInstanceMysqlFlexibleServerArgs args, CustomResourceOptions? options = null)
+ : base("azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer", name, args ?? new BackupInstanceMysqlFlexibleServerArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private BackupInstanceMysqlFlexibleServer(string name, Input id, BackupInstanceMysqlFlexibleServerState? state = null, CustomResourceOptions? options = null)
+ : base("azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing BackupInstanceMysqlFlexibleServer resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static BackupInstanceMysqlFlexibleServer Get(string name, Input id, BackupInstanceMysqlFlexibleServerState? state = null, CustomResourceOptions? options = null)
+ {
+ return new BackupInstanceMysqlFlexibleServer(name, id, state, options);
+ }
+ }
+
+ public sealed class BackupInstanceMysqlFlexibleServerArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ID of the Backup Policy.
+ ///
+ [Input("backupPolicyId", required: true)]
+ public Input BackupPolicyId { get; set; } = null!;
+
+ ///
+ /// The location of the source database. Changing this forces a new resource to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the source server. Changing this forces a new resource to be created.
+ ///
+ [Input("serverId", required: true)]
+ public Input ServerId { get; set; } = null!;
+
+ ///
+ /// The ID of the Backup Vault within which the MySQL Flexible Server Backup Instance should exist. Changing this forces a new resource to be created.
+ ///
+ [Input("vaultId", required: true)]
+ public Input VaultId { get; set; } = null!;
+
+ public BackupInstanceMysqlFlexibleServerArgs()
+ {
+ }
+ public static new BackupInstanceMysqlFlexibleServerArgs Empty => new BackupInstanceMysqlFlexibleServerArgs();
+ }
+
+ public sealed class BackupInstanceMysqlFlexibleServerState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ID of the Backup Policy.
+ ///
+ [Input("backupPolicyId")]
+ public Input? BackupPolicyId { get; set; }
+
+ ///
+ /// The location of the source database. Changing this forces a new resource to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the source server. Changing this forces a new resource to be created.
+ ///
+ [Input("serverId")]
+ public Input? ServerId { get; set; }
+
+ ///
+ /// The ID of the Backup Vault within which the MySQL Flexible Server Backup Instance should exist. Changing this forces a new resource to be created.
+ ///
+ [Input("vaultId")]
+ public Input? VaultId { get; set; }
+
+ public BackupInstanceMysqlFlexibleServerState()
+ {
+ }
+ public static new BackupInstanceMysqlFlexibleServerState Empty => new BackupInstanceMysqlFlexibleServerState();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Inputs/MonitorIdentityArgs.cs b/sdk/dotnet/Dynatrace/Inputs/MonitorIdentityArgs.cs
new file mode 100644
index 0000000000..5ea45a9b8d
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Inputs/MonitorIdentityArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Inputs
+{
+
+ public sealed class MonitorIdentityArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("principalId")]
+ public Input? PrincipalId { get; set; }
+
+ [Input("tenantId")]
+ public Input? TenantId { get; set; }
+
+ ///
+ /// The type of identity used for the resource. Only possible value is `SystemAssigned`.
+ ///
+ [Input("type", required: true)]
+ public Input Type { get; set; } = null!;
+
+ public MonitorIdentityArgs()
+ {
+ }
+ public static new MonitorIdentityArgs Empty => new MonitorIdentityArgs();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Inputs/MonitorIdentityGetArgs.cs b/sdk/dotnet/Dynatrace/Inputs/MonitorIdentityGetArgs.cs
new file mode 100644
index 0000000000..023523b2a9
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Inputs/MonitorIdentityGetArgs.cs
@@ -0,0 +1,32 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Inputs
+{
+
+ public sealed class MonitorIdentityGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("principalId")]
+ public Input? PrincipalId { get; set; }
+
+ [Input("tenantId")]
+ public Input? TenantId { get; set; }
+
+ ///
+ /// The type of identity used for the resource. Only possible value is `SystemAssigned`.
+ ///
+ [Input("type", required: true)]
+ public Input Type { get; set; } = null!;
+
+ public MonitorIdentityGetArgs()
+ {
+ }
+ public static new MonitorIdentityGetArgs Empty => new MonitorIdentityGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Inputs/MonitorPlanArgs.cs b/sdk/dotnet/Dynatrace/Inputs/MonitorPlanArgs.cs
new file mode 100644
index 0000000000..662923bb12
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Inputs/MonitorPlanArgs.cs
@@ -0,0 +1,44 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Inputs
+{
+
+ public sealed class MonitorPlanArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`.
+ ///
+ [Input("billingCycle")]
+ public Input? BillingCycle { get; set; }
+
+ ///
+ /// Date when plan was applied.
+ ///
+ [Input("effectiveDate")]
+ public Input? EffectiveDate { get; set; }
+
+ ///
+ /// Plan id as published by Dynatrace.
+ ///
+ [Input("plan", required: true)]
+ public Input Plan { get; set; } = null!;
+
+ ///
+ /// Different usage type. Possible values are `PAYG` and `COMMITTED`.
+ ///
+ [Input("usageType")]
+ public Input? UsageType { get; set; }
+
+ public MonitorPlanArgs()
+ {
+ }
+ public static new MonitorPlanArgs Empty => new MonitorPlanArgs();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Inputs/MonitorPlanGetArgs.cs b/sdk/dotnet/Dynatrace/Inputs/MonitorPlanGetArgs.cs
new file mode 100644
index 0000000000..492f136d48
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Inputs/MonitorPlanGetArgs.cs
@@ -0,0 +1,44 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Inputs
+{
+
+ public sealed class MonitorPlanGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`.
+ ///
+ [Input("billingCycle")]
+ public Input? BillingCycle { get; set; }
+
+ ///
+ /// Date when plan was applied.
+ ///
+ [Input("effectiveDate")]
+ public Input? EffectiveDate { get; set; }
+
+ ///
+ /// Plan id as published by Dynatrace.
+ ///
+ [Input("plan", required: true)]
+ public Input Plan { get; set; } = null!;
+
+ ///
+ /// Different usage type. Possible values are `PAYG` and `COMMITTED`.
+ ///
+ [Input("usageType")]
+ public Input? UsageType { get; set; }
+
+ public MonitorPlanGetArgs()
+ {
+ }
+ public static new MonitorPlanGetArgs Empty => new MonitorPlanGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Inputs/MonitorUserArgs.cs b/sdk/dotnet/Dynatrace/Inputs/MonitorUserArgs.cs
new file mode 100644
index 0000000000..bf00628d3a
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Inputs/MonitorUserArgs.cs
@@ -0,0 +1,50 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Inputs
+{
+
+ public sealed class MonitorUserArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Country of the user.
+ ///
+ [Input("country", required: true)]
+ public Input Country { get; set; } = null!;
+
+ ///
+ /// Email of the user used by Dynatrace for contacting them if needed.
+ ///
+ [Input("email", required: true)]
+ public Input Email { get; set; } = null!;
+
+ ///
+ /// First name of the user.
+ ///
+ [Input("firstName", required: true)]
+ public Input FirstName { get; set; } = null!;
+
+ ///
+ /// Last name of the user.
+ ///
+ [Input("lastName", required: true)]
+ public Input LastName { get; set; } = null!;
+
+ ///
+ /// phone number of the user by Dynatrace for contacting them if needed.
+ ///
+ [Input("phoneNumber", required: true)]
+ public Input PhoneNumber { get; set; } = null!;
+
+ public MonitorUserArgs()
+ {
+ }
+ public static new MonitorUserArgs Empty => new MonitorUserArgs();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Inputs/MonitorUserGetArgs.cs b/sdk/dotnet/Dynatrace/Inputs/MonitorUserGetArgs.cs
new file mode 100644
index 0000000000..e617ec3c05
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Inputs/MonitorUserGetArgs.cs
@@ -0,0 +1,50 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Inputs
+{
+
+ public sealed class MonitorUserGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Country of the user.
+ ///
+ [Input("country", required: true)]
+ public Input Country { get; set; } = null!;
+
+ ///
+ /// Email of the user used by Dynatrace for contacting them if needed.
+ ///
+ [Input("email", required: true)]
+ public Input Email { get; set; } = null!;
+
+ ///
+ /// First name of the user.
+ ///
+ [Input("firstName", required: true)]
+ public Input FirstName { get; set; } = null!;
+
+ ///
+ /// Last name of the user.
+ ///
+ [Input("lastName", required: true)]
+ public Input LastName { get; set; } = null!;
+
+ ///
+ /// phone number of the user by Dynatrace for contacting them if needed.
+ ///
+ [Input("phoneNumber", required: true)]
+ public Input PhoneNumber { get; set; } = null!;
+
+ public MonitorUserGetArgs()
+ {
+ }
+ public static new MonitorUserGetArgs Empty => new MonitorUserGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Monitor.cs b/sdk/dotnet/Dynatrace/Monitor.cs
new file mode 100644
index 0000000000..cc6336a9e1
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Monitor.cs
@@ -0,0 +1,259 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace
+{
+ ///
+ /// Manages Dynatrace monitors.
+ ///
+ /// ## Import
+ ///
+ /// Dynatrace monitor can be imported using the `resource id`, e.g.
+ ///
+ /// ```sh
+ /// $ pulumi import azure:dynatrace/monitor:Monitor example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Dynatrace.Observability/monitors/monitor1
+ /// ```
+ ///
+ [AzureResourceType("azure:dynatrace/monitor:Monitor")]
+ public partial class Monitor : global::Pulumi.CustomResource
+ {
+ ///
+ /// The kind of managed identity assigned to this resource. A `identity` block as defined below.
+ ///
+ [Output("identity")]
+ public Output Identity { get; private set; } = null!;
+
+ ///
+ /// The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created.
+ ///
+ [Output("location")]
+ public Output Location { get; private set; } = null!;
+
+ ///
+ /// Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in time, the resource will go in Suspended state. Possible values are `Active` and `Suspended`.
+ ///
+ [Output("marketplaceSubscription")]
+ public Output MarketplaceSubscription { get; private set; } = null!;
+
+ ///
+ /// Flag specifying if the resource monitoring is enabled or disabled. Default is `true`.
+ ///
+ [Output("monitoringEnabled")]
+ public Output MonitoringEnabled { get; private set; } = null!;
+
+ ///
+ /// Name of the Dynatrace monitor. Changing this forces a new resource to be created.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created.
+ ///
+ [Output("plan")]
+ public Output Plan { get; private set; } = null!;
+
+ ///
+ /// The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created.
+ ///
+ [Output("resourceGroupName")]
+ public Output ResourceGroupName { get; private set; } = null!;
+
+ ///
+ /// A mapping of tags to assign to the resource.
+ ///
+ [Output("tags")]
+ public Output?> Tags { get; private set; } = null!;
+
+ ///
+ /// User's information. A `user` block as defined below. Chainging this forces a new resource to be created.
+ ///
+ [Output("user")]
+ public Output User { get; private set; } = null!;
+
+
+ ///
+ /// Create a Monitor resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public Monitor(string name, MonitorArgs args, CustomResourceOptions? options = null)
+ : base("azure:dynatrace/monitor:Monitor", name, args ?? new MonitorArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private Monitor(string name, Input id, MonitorState? state = null, CustomResourceOptions? options = null)
+ : base("azure:dynatrace/monitor:Monitor", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing Monitor resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static Monitor Get(string name, Input id, MonitorState? state = null, CustomResourceOptions? options = null)
+ {
+ return new Monitor(name, id, state, options);
+ }
+ }
+
+ public sealed class MonitorArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The kind of managed identity assigned to this resource. A `identity` block as defined below.
+ ///
+ [Input("identity", required: true)]
+ public Input Identity { get; set; } = null!;
+
+ ///
+ /// The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in time, the resource will go in Suspended state. Possible values are `Active` and `Suspended`.
+ ///
+ [Input("marketplaceSubscription", required: true)]
+ public Input MarketplaceSubscription { get; set; } = null!;
+
+ ///
+ /// Flag specifying if the resource monitoring is enabled or disabled. Default is `true`.
+ ///
+ [Input("monitoringEnabled")]
+ public Input? MonitoringEnabled { get; set; }
+
+ ///
+ /// Name of the Dynatrace monitor. Changing this forces a new resource to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created.
+ ///
+ [Input("plan", required: true)]
+ public Input Plan { get; set; } = null!;
+
+ ///
+ /// The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created.
+ ///
+ [Input("resourceGroupName", required: true)]
+ public Input ResourceGroupName { get; set; } = null!;
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags to assign to the resource.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ ///
+ /// User's information. A `user` block as defined below. Chainging this forces a new resource to be created.
+ ///
+ [Input("user", required: true)]
+ public Input User { get; set; } = null!;
+
+ public MonitorArgs()
+ {
+ }
+ public static new MonitorArgs Empty => new MonitorArgs();
+ }
+
+ public sealed class MonitorState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The kind of managed identity assigned to this resource. A `identity` block as defined below.
+ ///
+ [Input("identity")]
+ public Input? Identity { get; set; }
+
+ ///
+ /// The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created.
+ ///
+ [Input("location")]
+ public Input? Location { get; set; }
+
+ ///
+ /// Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in time, the resource will go in Suspended state. Possible values are `Active` and `Suspended`.
+ ///
+ [Input("marketplaceSubscription")]
+ public Input? MarketplaceSubscription { get; set; }
+
+ ///
+ /// Flag specifying if the resource monitoring is enabled or disabled. Default is `true`.
+ ///
+ [Input("monitoringEnabled")]
+ public Input? MonitoringEnabled { get; set; }
+
+ ///
+ /// Name of the Dynatrace monitor. Changing this forces a new resource to be created.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created.
+ ///
+ [Input("plan")]
+ public Input? Plan { get; set; }
+
+ ///
+ /// The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created.
+ ///
+ [Input("resourceGroupName")]
+ public Input? ResourceGroupName { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags to assign to the resource.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ ///
+ /// User's information. A `user` block as defined below. Chainging this forces a new resource to be created.
+ ///
+ [Input("user")]
+ public Input? User { get; set; }
+
+ public MonitorState()
+ {
+ }
+ public static new MonitorState Empty => new MonitorState();
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Outputs/MonitorIdentity.cs b/sdk/dotnet/Dynatrace/Outputs/MonitorIdentity.cs
new file mode 100644
index 0000000000..94a1f4e302
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Outputs/MonitorIdentity.cs
@@ -0,0 +1,36 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Outputs
+{
+
+ [OutputType]
+ public sealed class MonitorIdentity
+ {
+ public readonly string? PrincipalId;
+ public readonly string? TenantId;
+ ///
+ /// The type of identity used for the resource. Only possible value is `SystemAssigned`.
+ ///
+ public readonly string Type;
+
+ [OutputConstructor]
+ private MonitorIdentity(
+ string? principalId,
+
+ string? tenantId,
+
+ string type)
+ {
+ PrincipalId = principalId;
+ TenantId = tenantId;
+ Type = type;
+ }
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Outputs/MonitorPlan.cs b/sdk/dotnet/Dynatrace/Outputs/MonitorPlan.cs
new file mode 100644
index 0000000000..c77b9210cf
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Outputs/MonitorPlan.cs
@@ -0,0 +1,49 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Outputs
+{
+
+ [OutputType]
+ public sealed class MonitorPlan
+ {
+ ///
+ /// Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`.
+ ///
+ public readonly string? BillingCycle;
+ ///
+ /// Date when plan was applied.
+ ///
+ public readonly string? EffectiveDate;
+ ///
+ /// Plan id as published by Dynatrace.
+ ///
+ public readonly string Plan;
+ ///
+ /// Different usage type. Possible values are `PAYG` and `COMMITTED`.
+ ///
+ public readonly string? UsageType;
+
+ [OutputConstructor]
+ private MonitorPlan(
+ string? billingCycle,
+
+ string? effectiveDate,
+
+ string plan,
+
+ string? usageType)
+ {
+ BillingCycle = billingCycle;
+ EffectiveDate = effectiveDate;
+ Plan = plan;
+ UsageType = usageType;
+ }
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/Outputs/MonitorUser.cs b/sdk/dotnet/Dynatrace/Outputs/MonitorUser.cs
new file mode 100644
index 0000000000..35d7979795
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/Outputs/MonitorUser.cs
@@ -0,0 +1,56 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Dynatrace.Outputs
+{
+
+ [OutputType]
+ public sealed class MonitorUser
+ {
+ ///
+ /// Country of the user.
+ ///
+ public readonly string Country;
+ ///
+ /// Email of the user used by Dynatrace for contacting them if needed.
+ ///
+ public readonly string Email;
+ ///
+ /// First name of the user.
+ ///
+ public readonly string FirstName;
+ ///
+ /// Last name of the user.
+ ///
+ public readonly string LastName;
+ ///
+ /// phone number of the user by Dynatrace for contacting them if needed.
+ ///
+ public readonly string PhoneNumber;
+
+ [OutputConstructor]
+ private MonitorUser(
+ string country,
+
+ string email,
+
+ string firstName,
+
+ string lastName,
+
+ string phoneNumber)
+ {
+ Country = country;
+ Email = email;
+ FirstName = firstName;
+ LastName = lastName;
+ PhoneNumber = phoneNumber;
+ }
+ }
+}
diff --git a/sdk/dotnet/Dynatrace/README.md b/sdk/dotnet/Dynatrace/README.md
new file mode 100644
index 0000000000..286e13b248
--- /dev/null
+++ b/sdk/dotnet/Dynatrace/README.md
@@ -0,0 +1 @@
+A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.
diff --git a/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs b/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs
index a6da607b08..f1102611e6 100644
--- a/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs
+++ b/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs
@@ -48,6 +48,9 @@ public sealed class ProviderFeaturesArgs : global::Pulumi.ResourceArgs
[Input("resourceGroup")]
public Input? ResourceGroup { get; set; }
+ [Input("storage")]
+ public Input? Storage { get; set; }
+
[Input("subscription")]
public Input? Subscription { get; set; }
diff --git a/sdk/dotnet/Inputs/ProviderFeaturesStorageArgs.cs b/sdk/dotnet/Inputs/ProviderFeaturesStorageArgs.cs
new file mode 100644
index 0000000000..cd7744151b
--- /dev/null
+++ b/sdk/dotnet/Inputs/ProviderFeaturesStorageArgs.cs
@@ -0,0 +1,23 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Inputs
+{
+
+ public sealed class ProviderFeaturesStorageArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("dataPlaneAvailable")]
+ public Input? DataPlaneAvailable { get; set; }
+
+ public ProviderFeaturesStorageArgs()
+ {
+ }
+ public static new ProviderFeaturesStorageArgs Empty => new ProviderFeaturesStorageArgs();
+ }
+}
diff --git a/sdk/dotnet/Lb/NatRule.cs b/sdk/dotnet/Lb/NatRule.cs
index d2d7cdee4e..e9e2bd798b 100644
--- a/sdk/dotnet/Lb/NatRule.cs
+++ b/sdk/dotnet/Lb/NatRule.cs
@@ -16,6 +16,78 @@ namespace Pulumi.Azure.Lb
///
/// > **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached
///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using System.Linq;
+ /// using Pulumi;
+ /// using Azure = Pulumi.Azure;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var example = new Azure.Core.ResourceGroup("example", new()
+ /// {
+ /// Name = "LoadBalancerRG",
+ /// Location = "West Europe",
+ /// });
+ ///
+ /// var examplePublicIp = new Azure.Network.PublicIp("example", new()
+ /// {
+ /// Name = "PublicIPForLB",
+ /// Location = "West US",
+ /// ResourceGroupName = example.Name,
+ /// AllocationMethod = "Static",
+ /// });
+ ///
+ /// var exampleLoadBalancer = new Azure.Lb.LoadBalancer("example", new()
+ /// {
+ /// Name = "TestLoadBalancer",
+ /// Location = "West US",
+ /// ResourceGroupName = example.Name,
+ /// FrontendIpConfigurations = new[]
+ /// {
+ /// new Azure.Lb.Inputs.LoadBalancerFrontendIpConfigurationArgs
+ /// {
+ /// Name = "PublicIPAddress",
+ /// PublicIpAddressId = examplePublicIp.Id,
+ /// },
+ /// },
+ /// });
+ ///
+ /// var exampleBackendAddressPool = new Azure.Lb.BackendAddressPool("example", new()
+ /// {
+ /// LoadbalancerId = exampleLoadBalancer.Id,
+ /// Name = "be",
+ /// });
+ ///
+ /// var exampleNatRule = new Azure.Lb.NatRule("example", new()
+ /// {
+ /// ResourceGroupName = example.Name,
+ /// LoadbalancerId = exampleLoadBalancer.Id,
+ /// Name = "RDPAccess",
+ /// Protocol = "Tcp",
+ /// FrontendPort = 3389,
+ /// BackendPort = 3389,
+ /// FrontendIpConfigurationName = "PublicIPAddress",
+ /// });
+ ///
+ /// var example1 = new Azure.Lb.NatRule("example1", new()
+ /// {
+ /// ResourceGroupName = example.Name,
+ /// LoadbalancerId = exampleLoadBalancer.Id,
+ /// Name = "RDPAccess",
+ /// Protocol = "Tcp",
+ /// FrontendPortStart = 3000,
+ /// FrontendPortEnd = 3389,
+ /// BackendPort = 3389,
+ /// BackendAddressPoolId = exampleBackendAddressPool.Id,
+ /// FrontendIpConfigurationName = "PublicIPAddress",
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
/// ## Import
///
/// Load Balancer NAT Rules can be imported using the `resource id`, e.g.
diff --git a/sdk/dotnet/MSSql/ManagedDatabase.cs b/sdk/dotnet/MSSql/ManagedDatabase.cs
index bf201c69e5..3da01b79d0 100644
--- a/sdk/dotnet/MSSql/ManagedDatabase.cs
+++ b/sdk/dotnet/MSSql/ManagedDatabase.cs
@@ -112,6 +112,12 @@ public partial class ManagedDatabase : global::Pulumi.CustomResource
[Output("shortTermRetentionDays")]
public Output ShortTermRetentionDays { get; private set; } = null!;
+ ///
+ /// A mapping of tags to assign to the resource.
+ ///
+ [Output("tags")]
+ public Output?> Tags { get; private set; } = null!;
+
///
/// Create a ManagedDatabase resource with the given unique name, arguments, and options.
@@ -192,6 +198,18 @@ public sealed class ManagedDatabaseArgs : global::Pulumi.ResourceArgs
[Input("shortTermRetentionDays")]
public Input? ShortTermRetentionDays { get; set; }
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags to assign to the resource.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
public ManagedDatabaseArgs()
{
}
@@ -230,6 +248,18 @@ public sealed class ManagedDatabaseState : global::Pulumi.ResourceArgs
[Input("shortTermRetentionDays")]
public Input? ShortTermRetentionDays { get; set; }
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A mapping of tags to assign to the resource.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
public ManagedDatabaseState()
{
}
diff --git a/sdk/dotnet/Network/GetPublicIpPrefix.cs b/sdk/dotnet/Network/GetPublicIpPrefix.cs
index b779daa8f6..8d2b113246 100644
--- a/sdk/dotnet/Network/GetPublicIpPrefix.cs
+++ b/sdk/dotnet/Network/GetPublicIpPrefix.cs
@@ -142,6 +142,10 @@ public sealed class GetPublicIpPrefixResult
///
public readonly string Sku;
///
+ /// The SKU Tier of the Public IP.
+ ///
+ public readonly string SkuTier;
+ ///
/// A mapping of tags to assigned to the resource.
///
public readonly ImmutableDictionary Tags;
@@ -166,6 +170,8 @@ private GetPublicIpPrefixResult(
string sku,
+ string skuTier,
+
ImmutableDictionary tags,
ImmutableArray zones)
@@ -177,6 +183,7 @@ private GetPublicIpPrefixResult(
PrefixLength = prefixLength;
ResourceGroupName = resourceGroupName;
Sku = sku;
+ SkuTier = skuTier;
Tags = tags;
Zones = zones;
}
diff --git a/sdk/dotnet/Network/PublicIp.cs b/sdk/dotnet/Network/PublicIp.cs
index 26e7e93ecd..05319fe9a9 100644
--- a/sdk/dotnet/Network/PublicIp.cs
+++ b/sdk/dotnet/Network/PublicIp.cs
@@ -84,6 +84,12 @@ public partial class PublicIp : global::Pulumi.CustomResource
[Output("domainNameLabel")]
public Output DomainNameLabel { get; private set; } = null!;
+ ///
+ /// Scope for the domain name label. If a domain name label scope is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. Possible values are `NoReuse`, `ResourceGroupReuse`, `SubscriptionReuse` and `TenantReuse`. Changing this forces a new Public IP to be created.
+ ///
+ [Output("domainNameLabelScope")]
+ public Output DomainNameLabelScope { get; private set; } = null!;
+
///
/// Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.
///
@@ -258,6 +264,12 @@ public sealed class PublicIpArgs : global::Pulumi.ResourceArgs
[Input("domainNameLabel")]
public Input? DomainNameLabel { get; set; }
+ ///
+ /// Scope for the domain name label. If a domain name label scope is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. Possible values are `NoReuse`, `ResourceGroupReuse`, `SubscriptionReuse` and `TenantReuse`. Changing this forces a new Public IP to be created.
+ ///
+ [Input("domainNameLabelScope")]
+ public Input? DomainNameLabelScope { get; set; }
+
///
/// Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.
///
@@ -400,6 +412,12 @@ public sealed class PublicIpState : global::Pulumi.ResourceArgs
[Input("domainNameLabel")]
public Input? DomainNameLabel { get; set; }
+ ///
+ /// Scope for the domain name label. If a domain name label scope is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system with a hashed value includes in FQDN. Possible values are `NoReuse`, `ResourceGroupReuse`, `SubscriptionReuse` and `TenantReuse`. Changing this forces a new Public IP to be created.
+ ///
+ [Input("domainNameLabelScope")]
+ public Input? DomainNameLabelScope { get; set; }
+
///
/// Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created.
///
diff --git a/sdk/dotnet/Network/PublicIpPrefix.cs b/sdk/dotnet/Network/PublicIpPrefix.cs
index 956ddb0d06..102ab583b5 100644
--- a/sdk/dotnet/Network/PublicIpPrefix.cs
+++ b/sdk/dotnet/Network/PublicIpPrefix.cs
@@ -100,6 +100,12 @@ public partial class PublicIpPrefix : global::Pulumi.CustomResource
[Output("sku")]
public Output Sku { get; private set; } = null!;
+ ///
+ /// The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.
+ ///
+ [Output("skuTier")]
+ public Output SkuTier { get; private set; } = null!;
+
///
/// A mapping of tags to assign to the resource.
///
@@ -200,6 +206,12 @@ public sealed class PublicIpPrefixArgs : global::Pulumi.ResourceArgs
[Input("sku")]
public Input? Sku { get; set; }
+ ///
+ /// The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.
+ ///
+ [Input("skuTier")]
+ public Input? SkuTier { get; set; }
+
[Input("tags")]
private InputMap? _tags;
@@ -280,6 +292,12 @@ public sealed class PublicIpPrefixState : global::Pulumi.ResourceArgs
[Input("sku")]
public Input? Sku { get; set; }
+ ///
+ /// The SKU Tier that should be used for the Public IP. Possible values are `Regional` and `Global`. Defaults to `Regional`. Changing this forces a new resource to be created.
+ ///
+ [Input("skuTier")]
+ public Input? SkuTier { get; set; }
+
[Input("tags")]
private InputMap? _tags;
diff --git a/sdk/dotnet/Oracle/CloudVmCluster.cs b/sdk/dotnet/Oracle/CloudVmCluster.cs
index ec331c6eaa..ee0eb87d26 100644
--- a/sdk/dotnet/Oracle/CloudVmCluster.cs
+++ b/sdk/dotnet/Oracle/CloudVmCluster.cs
@@ -188,6 +188,12 @@ public partial class CloudVmCluster : global::Pulumi.CustomResource
[Output("displayName")]
public Output DisplayName { get; private set; } = null!;
+ ///
+ /// The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.
+ ///
+ [Output("domain")]
+ public Output Domain { get; private set; } = null!;
+
///
/// A valid Oracle Grid Infrastructure (GI) software version.
///
@@ -248,6 +254,18 @@ public partial class CloudVmCluster : global::Pulumi.CustomResource
[Output("resourceGroupName")]
public Output ResourceGroupName { get; private set; } = null!;
+ ///
+ /// The TCP Single Client Access Name (SCAN) port. The default port to 1521.
+ ///
+ [Output("scanListenerPortTcp")]
+ public Output ScanListenerPortTcp { get; private set; } = null!;
+
+ ///
+ /// The TCPS Single Client Access Name (SCAN) port. The default port to 2484.
+ ///
+ [Output("scanListenerPortTcpSsl")]
+ public Output ScanListenerPortTcpSsl { get; private set; } = null!;
+
///
/// If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created.
///
@@ -284,6 +302,12 @@ public partial class CloudVmCluster : global::Pulumi.CustomResource
[Output("virtualNetworkId")]
public Output VirtualNetworkId { get; private set; } = null!;
+ ///
+ /// The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.
+ ///
+ [Output("zoneId")]
+ public Output ZoneId { get; private set; } = null!;
+
///
/// Create a CloudVmCluster resource with the given unique name, arguments, and options.
@@ -396,6 +420,12 @@ public InputList DbServers
[Input("displayName", required: true)]
public Input DisplayName { get; set; } = null!;
+ ///
+ /// The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.
+ ///
+ [Input("domain")]
+ public Input? Domain { get; set; }
+
///
/// A valid Oracle Grid Infrastructure (GI) software version.
///
@@ -444,6 +474,18 @@ public InputList DbServers
[Input("resourceGroupName", required: true)]
public Input ResourceGroupName { get; set; } = null!;
+ ///
+ /// The TCP Single Client Access Name (SCAN) port. The default port to 1521.
+ ///
+ [Input("scanListenerPortTcp")]
+ public Input? ScanListenerPortTcp { get; set; }
+
+ ///
+ /// The TCPS Single Client Access Name (SCAN) port. The default port to 2484.
+ ///
+ [Input("scanListenerPortTcpSsl")]
+ public Input? ScanListenerPortTcpSsl { get; set; }
+
///
/// If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created.
///
@@ -492,6 +534,12 @@ public InputMap Tags
[Input("virtualNetworkId", required: true)]
public Input VirtualNetworkId { get; set; } = null!;
+ ///
+ /// The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.
+ ///
+ [Input("zoneId")]
+ public Input? ZoneId { get; set; }
+
public CloudVmClusterArgs()
{
}
@@ -566,6 +614,12 @@ public InputList DbServers
[Input("displayName")]
public Input? DisplayName { get; set; }
+ ///
+ /// The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.
+ ///
+ [Input("domain")]
+ public Input? Domain { get; set; }
+
///
/// A valid Oracle Grid Infrastructure (GI) software version.
///
@@ -626,6 +680,18 @@ public InputList DbServers
[Input("resourceGroupName")]
public Input? ResourceGroupName { get; set; }
+ ///
+ /// The TCP Single Client Access Name (SCAN) port. The default port to 1521.
+ ///
+ [Input("scanListenerPortTcp")]
+ public Input? ScanListenerPortTcp { get; set; }
+
+ ///
+ /// The TCPS Single Client Access Name (SCAN) port. The default port to 2484.
+ ///
+ [Input("scanListenerPortTcpSsl")]
+ public Input? ScanListenerPortTcpSsl { get; set; }
+
///
/// If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created.
///
@@ -674,6 +740,12 @@ public InputMap Tags
[Input("virtualNetworkId")]
public Input? VirtualNetworkId { get; set; }
+ ///
+ /// The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name.
+ ///
+ [Input("zoneId")]
+ public Input? ZoneId { get; set; }
+
public CloudVmClusterState()
{
}
diff --git a/sdk/dotnet/Sentinel/AlertRuleFusion.cs b/sdk/dotnet/Sentinel/AlertRuleFusion.cs
index 7f3255df2d..ed82d101c8 100644
--- a/sdk/dotnet/Sentinel/AlertRuleFusion.cs
+++ b/sdk/dotnet/Sentinel/AlertRuleFusion.cs
@@ -36,24 +36,14 @@ namespace Pulumi.Azure.Sentinel
/// Sku = "PerGB2018",
/// });
///
- /// var exampleAnalyticsSolution = new Azure.OperationalInsights.AnalyticsSolution("example", new()
+ /// var exampleLogAnalyticsWorkspaceOnboarding = new Azure.Sentinel.LogAnalyticsWorkspaceOnboarding("example", new()
/// {
- /// SolutionName = "SecurityInsights",
- /// Location = example.Location,
- /// ResourceGroupName = example.Name,
- /// WorkspaceResourceId = exampleAnalyticsWorkspace.Id,
- /// WorkspaceName = exampleAnalyticsWorkspace.Name,
- /// Plan = new Azure.OperationalInsights.Inputs.AnalyticsSolutionPlanArgs
- /// {
- /// Publisher = "Microsoft",
- /// Product = "OMSGallery/SecurityInsights",
- /// },
+ /// WorkspaceId = exampleAnalyticsWorkspace.Id,
/// });
///
/// var exampleAlertRuleFusion = new Azure.Sentinel.AlertRuleFusion("example", new()
/// {
- /// Name = "example-fusion-alert-rule",
- /// LogAnalyticsWorkspaceId = exampleAnalyticsSolution.WorkspaceResourceId,
+ /// LogAnalyticsWorkspaceId = exampleLogAnalyticsWorkspaceOnboarding.WorkspaceId,
/// AlertRuleTemplateGuid = "f71aba3d-28fb-450b-b192-4e76a83015c8",
/// });
///
@@ -89,9 +79,6 @@ public partial class AlertRuleFusion : global::Pulumi.CustomResource
[Output("logAnalyticsWorkspaceId")]
public Output LogAnalyticsWorkspaceId { get; private set; } = null!;
- ///
- /// The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.
- ///
[Output("name")]
public Output Name { get; private set; } = null!;
@@ -165,9 +152,6 @@ public sealed class AlertRuleFusionArgs : global::Pulumi.ResourceArgs
[Input("logAnalyticsWorkspaceId", required: true)]
public Input LogAnalyticsWorkspaceId { get; set; } = null!;
- ///
- /// The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.
- ///
[Input("name")]
public Input? Name { get; set; }
@@ -209,9 +193,6 @@ public sealed class AlertRuleFusionState : global::Pulumi.ResourceArgs
[Input("logAnalyticsWorkspaceId")]
public Input? LogAnalyticsWorkspaceId { get; set; }
- ///
- /// The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created.
- ///
[Input("name")]
public Input? Name { get; set; }
diff --git a/sdk/dotnet/Stack/HciNetworkInterface.cs b/sdk/dotnet/Stack/HciNetworkInterface.cs
new file mode 100644
index 0000000000..c3c4a1a0ff
--- /dev/null
+++ b/sdk/dotnet/Stack/HciNetworkInterface.cs
@@ -0,0 +1,259 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+
+namespace Pulumi.Azure.Stack
+{
+ ///
+ /// Manages an Azure Stack HCI Network Interface.
+ ///
+ /// ## Import
+ ///
+ /// Azure Stack HCI Network Interfaces can be imported using the `resource id`, e.g.
+ ///
+ /// ```sh
+ /// $ pulumi import azure:stack/hciNetworkInterface:HciNetworkInterface example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.AzureStackHCI/networkInterfaces/ni1
+ /// ```
+ ///
+ [AzureResourceType("azure:stack/hciNetworkInterface:HciNetworkInterface")]
+ public partial class HciNetworkInterface : global::Pulumi.CustomResource
+ {
+ ///
+ /// The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.
+ ///
+ [Output("customLocationId")]
+ public Output CustomLocationId { get; private set; } = null!;
+
+ ///
+ /// A list of IPv4 addresses of DNS servers available to VMs deployed in the Network Interface. Changing this forces a new resource to be created.
+ ///
+ [Output("dnsServers")]
+ public Output> DnsServers { get; private set; } = null!;
+
+ ///
+ /// An `ip_configuration` block as defined below. Changing this forces a new resource to be created.
+ ///
+ [Output("ipConfiguration")]
+ public Output IpConfiguration { get; private set; } = null!;
+
+ ///
+ /// The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.
+ ///
+ [Output("location")]
+ public Output Location { get; private set; } = null!;
+
+ ///
+ /// The MAC address of the Network Interface. Changing this forces a new resource to be created.
+ ///
+ /// > **Note:** If `mac_address` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignore_changes`.
+ ///
+ [Output("macAddress")]
+ public Output MacAddress { get; private set; } = null!;
+
+ ///
+ /// The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.
+ ///
+ [Output("resourceGroupName")]
+ public Output ResourceGroupName { get; private set; } = null!;
+
+ ///
+ /// A mapping of tags which should be assigned to the Azure Stack HCI Network Interface.
+ ///
+ [Output("tags")]
+ public Output?> Tags { get; private set; } = null!;
+
+
+ ///
+ /// Create a HciNetworkInterface resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public HciNetworkInterface(string name, HciNetworkInterfaceArgs args, CustomResourceOptions? options = null)
+ : base("azure:stack/hciNetworkInterface:HciNetworkInterface", name, args ?? new HciNetworkInterfaceArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private HciNetworkInterface(string name, Input id, HciNetworkInterfaceState? state = null, CustomResourceOptions? options = null)
+ : base("azure:stack/hciNetworkInterface:HciNetworkInterface", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing HciNetworkInterface resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static HciNetworkInterface Get(string name, Input id, HciNetworkInterfaceState? state = null, CustomResourceOptions? options = null)
+ {
+ return new HciNetworkInterface(name, id, state, options);
+ }
+ }
+
+ public sealed class HciNetworkInterfaceArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created.
+ ///
+ [Input("customLocationId", required: true)]
+ public Input CustomLocationId { get; set; } = null!;
+
+ [Input("dnsServers")]
+ private InputList