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? _dnsServers; + + /// + /// 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. + /// + public InputList DnsServers + { + get => _dnsServers ?? (_dnsServers = new InputList()); + set => _dnsServers = value; + } + + /// + /// An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + /// + [Input("ipConfiguration", required: true)] + public Input IpConfiguration { get; set; } = null!; + + /// + /// The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// 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`. + /// + [Input("macAddress")] + public Input? MacAddress { get; set; } + + /// + /// The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The name of the Resource Group where the Azure Stack HCI Network Interface 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 which should be assigned to the Azure Stack HCI Network Interface. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public HciNetworkInterfaceArgs() + { + } + public static new HciNetworkInterfaceArgs Empty => new HciNetworkInterfaceArgs(); + } + + public sealed class HciNetworkInterfaceState : 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")] + public Input? CustomLocationId { get; set; } + + [Input("dnsServers")] + private InputList? _dnsServers; + + /// + /// 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. + /// + public InputList DnsServers + { + get => _dnsServers ?? (_dnsServers = new InputList()); + set => _dnsServers = value; + } + + /// + /// An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + /// + [Input("ipConfiguration")] + public Input? IpConfiguration { get; set; } + + /// + /// The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// 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`. + /// + [Input("macAddress")] + public Input? MacAddress { get; set; } + + /// + /// The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The name of the Resource Group where the Azure Stack HCI Network Interface 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 which should be assigned to the Azure Stack HCI Network Interface. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public HciNetworkInterfaceState() + { + } + public static new HciNetworkInterfaceState Empty => new HciNetworkInterfaceState(); + } +} diff --git a/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetArgs.cs b/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetArgs.cs index 764cbd5b79..f584fa0100 100644 --- a/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetArgs.cs +++ b/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetArgs.cs @@ -29,6 +29,8 @@ public sealed class HciLogicalNetworkSubnetArgs : global::Pulumi.ResourceArgs /// /// One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + /// + /// > **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`. /// public InputList IpPools { diff --git a/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetGetArgs.cs b/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetGetArgs.cs index 4f75420db1..0cde717d8c 100644 --- a/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetGetArgs.cs +++ b/sdk/dotnet/Stack/Inputs/HciLogicalNetworkSubnetGetArgs.cs @@ -29,6 +29,8 @@ public sealed class HciLogicalNetworkSubnetGetArgs : global::Pulumi.ResourceArgs /// /// One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + /// + /// > **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`. /// public InputList IpPools { diff --git a/sdk/dotnet/Stack/Inputs/HciNetworkInterfaceIpConfigurationArgs.cs b/sdk/dotnet/Stack/Inputs/HciNetworkInterfaceIpConfigurationArgs.cs new file mode 100644 index 0000000000..c0c6df722c --- /dev/null +++ b/sdk/dotnet/Stack/Inputs/HciNetworkInterfaceIpConfigurationArgs.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.Stack.Inputs +{ + + public sealed class HciNetworkInterfaceIpConfigurationArgs : global::Pulumi.ResourceArgs + { + /// + /// The IPv4 address of the gateway for the Network Interface. + /// + [Input("gateway")] + public Input? Gateway { get; set; } + + /// + /// The prefix length for the address of the Network Interface. + /// + [Input("prefixLength")] + public Input? PrefixLength { get; set; } + + /// + /// The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + /// + [Input("privateIpAddress")] + public Input? PrivateIpAddress { get; set; } + + /// + /// The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + /// + [Input("subnetId", required: true)] + public Input SubnetId { get; set; } = null!; + + public HciNetworkInterfaceIpConfigurationArgs() + { + } + public static new HciNetworkInterfaceIpConfigurationArgs Empty => new HciNetworkInterfaceIpConfigurationArgs(); + } +} diff --git a/sdk/dotnet/Stack/Inputs/HciNetworkInterfaceIpConfigurationGetArgs.cs b/sdk/dotnet/Stack/Inputs/HciNetworkInterfaceIpConfigurationGetArgs.cs new file mode 100644 index 0000000000..105d1a16cb --- /dev/null +++ b/sdk/dotnet/Stack/Inputs/HciNetworkInterfaceIpConfigurationGetArgs.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.Stack.Inputs +{ + + public sealed class HciNetworkInterfaceIpConfigurationGetArgs : global::Pulumi.ResourceArgs + { + /// + /// The IPv4 address of the gateway for the Network Interface. + /// + [Input("gateway")] + public Input? Gateway { get; set; } + + /// + /// The prefix length for the address of the Network Interface. + /// + [Input("prefixLength")] + public Input? PrefixLength { get; set; } + + /// + /// The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + /// + [Input("privateIpAddress")] + public Input? PrivateIpAddress { get; set; } + + /// + /// The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + /// + [Input("subnetId", required: true)] + public Input SubnetId { get; set; } = null!; + + public HciNetworkInterfaceIpConfigurationGetArgs() + { + } + public static new HciNetworkInterfaceIpConfigurationGetArgs Empty => new HciNetworkInterfaceIpConfigurationGetArgs(); + } +} diff --git a/sdk/dotnet/Stack/Outputs/HciLogicalNetworkSubnet.cs b/sdk/dotnet/Stack/Outputs/HciLogicalNetworkSubnet.cs index afd7780281..46cf3d39ba 100644 --- a/sdk/dotnet/Stack/Outputs/HciLogicalNetworkSubnet.cs +++ b/sdk/dotnet/Stack/Outputs/HciLogicalNetworkSubnet.cs @@ -23,6 +23,8 @@ public sealed class HciLogicalNetworkSubnet public readonly string IpAllocationMethod; /// /// One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + /// + /// > **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`. /// public readonly ImmutableArray IpPools; /// diff --git a/sdk/dotnet/Stack/Outputs/HciNetworkInterfaceIpConfiguration.cs b/sdk/dotnet/Stack/Outputs/HciNetworkInterfaceIpConfiguration.cs new file mode 100644 index 0000000000..b9298c6792 --- /dev/null +++ b/sdk/dotnet/Stack/Outputs/HciNetworkInterfaceIpConfiguration.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.Stack.Outputs +{ + + [OutputType] + public sealed class HciNetworkInterfaceIpConfiguration + { + /// + /// The IPv4 address of the gateway for the Network Interface. + /// + public readonly string? Gateway; + /// + /// The prefix length for the address of the Network Interface. + /// + public readonly string? PrefixLength; + /// + /// The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + /// + public readonly string? PrivateIpAddress; + /// + /// The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + /// + public readonly string SubnetId; + + [OutputConstructor] + private HciNetworkInterfaceIpConfiguration( + string? gateway, + + string? prefixLength, + + string? privateIpAddress, + + string subnetId) + { + Gateway = gateway; + PrefixLength = prefixLength; + PrivateIpAddress = privateIpAddress; + SubnetId = subnetId; + } + } +} diff --git a/sdk/dotnet/Storage/Account.cs b/sdk/dotnet/Storage/Account.cs index 004242d455..f3ecd93566 100644 --- a/sdk/dotnet/Storage/Account.cs +++ b/sdk/dotnet/Storage/Account.cs @@ -799,7 +799,7 @@ public partial class Account : global::Pulumi.CustomResource /// > **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`. /// [Output("staticWebsite")] - public Output StaticWebsite { get; private set; } = null!; + public Output StaticWebsite { get; private set; } = null!; /// /// The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. diff --git a/sdk/dotnet/Storage/AccountQueueProperties.cs b/sdk/dotnet/Storage/AccountQueueProperties.cs new file mode 100644 index 0000000000..2ea7d2c533 --- /dev/null +++ b/sdk/dotnet/Storage/AccountQueueProperties.cs @@ -0,0 +1,272 @@ +// *** 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.Storage +{ + /// + /// Manages the Queue Properties of an Azure Storage Account. + /// + /// ## 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 exampleAccount = new Azure.Storage.Account("example", new() + /// { + /// Name = "storageaccountname", + /// ResourceGroupName = example.Name, + /// Location = example.Location, + /// AccountTier = "Standard", + /// AccountReplicationType = "GRS", + /// Tags = + /// { + /// { "environment", "staging" }, + /// }, + /// }); + /// + /// var exampleAccountQueueProperties = new Azure.Storage.AccountQueueProperties("example", new() + /// { + /// StorageAccountId = exampleAccount.Id, + /// CorsRules = new[] + /// { + /// new Azure.Storage.Inputs.AccountQueuePropertiesCorsRuleArgs + /// { + /// AllowedOrigins = new[] + /// { + /// "http://www.example.com", + /// }, + /// ExposedHeaders = new[] + /// { + /// "x-tempo-*", + /// }, + /// AllowedHeaders = new[] + /// { + /// "x-tempo-*", + /// }, + /// AllowedMethods = new[] + /// { + /// "GET", + /// "PUT", + /// }, + /// MaxAgeInSeconds = 500, + /// }, + /// }, + /// Logging = new Azure.Storage.Inputs.AccountQueuePropertiesLoggingArgs + /// { + /// Version = "1.0", + /// Delete = true, + /// Read = true, + /// Write = true, + /// RetentionPolicyDays = 7, + /// }, + /// HourMetrics = new Azure.Storage.Inputs.AccountQueuePropertiesHourMetricsArgs + /// { + /// Version = "1.0", + /// RetentionPolicyDays = 7, + /// }, + /// MinuteMetrics = new Azure.Storage.Inputs.AccountQueuePropertiesMinuteMetricsArgs + /// { + /// Version = "1.0", + /// RetentionPolicyDays = 7, + /// }, + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Storage Account Queue Properties can be imported using the `resource id`, e.g. + /// + /// ```sh + /// $ pulumi import azure:storage/accountQueueProperties:AccountQueueProperties queueprops /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + /// ``` + /// + [AzureResourceType("azure:storage/accountQueueProperties:AccountQueueProperties")] + public partial class AccountQueueProperties : global::Pulumi.CustomResource + { + /// + /// A `cors_rule` block as defined above. + /// + [Output("corsRules")] + public Output> CorsRules { get; private set; } = null!; + + /// + /// A `hour_metrics` block as defined below. + /// + /// > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + /// + [Output("hourMetrics")] + public Output HourMetrics { get; private set; } = null!; + + /// + /// A `logging` block as defined below. + /// + [Output("logging")] + public Output Logging { get; private set; } = null!; + + /// + /// A `minute_metrics` block as defined below. + /// + [Output("minuteMetrics")] + public Output MinuteMetrics { get; private set; } = null!; + + /// + /// The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + /// + [Output("storageAccountId")] + public Output StorageAccountId { get; private set; } = null!; + + + /// + /// Create a AccountQueueProperties 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 AccountQueueProperties(string name, AccountQueuePropertiesArgs args, CustomResourceOptions? options = null) + : base("azure:storage/accountQueueProperties:AccountQueueProperties", name, args ?? new AccountQueuePropertiesArgs(), MakeResourceOptions(options, "")) + { + } + + private AccountQueueProperties(string name, Input id, AccountQueuePropertiesState? state = null, CustomResourceOptions? options = null) + : base("azure:storage/accountQueueProperties:AccountQueueProperties", 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 AccountQueueProperties 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 AccountQueueProperties Get(string name, Input id, AccountQueuePropertiesState? state = null, CustomResourceOptions? options = null) + { + return new AccountQueueProperties(name, id, state, options); + } + } + + public sealed class AccountQueuePropertiesArgs : global::Pulumi.ResourceArgs + { + [Input("corsRules")] + private InputList? _corsRules; + + /// + /// A `cors_rule` block as defined above. + /// + public InputList CorsRules + { + get => _corsRules ?? (_corsRules = new InputList()); + set => _corsRules = value; + } + + /// + /// A `hour_metrics` block as defined below. + /// + /// > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + /// + [Input("hourMetrics")] + public Input? HourMetrics { get; set; } + + /// + /// A `logging` block as defined below. + /// + [Input("logging")] + public Input? Logging { get; set; } + + /// + /// A `minute_metrics` block as defined below. + /// + [Input("minuteMetrics")] + public Input? MinuteMetrics { get; set; } + + /// + /// The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + /// + [Input("storageAccountId", required: true)] + public Input StorageAccountId { get; set; } = null!; + + public AccountQueuePropertiesArgs() + { + } + public static new AccountQueuePropertiesArgs Empty => new AccountQueuePropertiesArgs(); + } + + public sealed class AccountQueuePropertiesState : global::Pulumi.ResourceArgs + { + [Input("corsRules")] + private InputList? _corsRules; + + /// + /// A `cors_rule` block as defined above. + /// + public InputList CorsRules + { + get => _corsRules ?? (_corsRules = new InputList()); + set => _corsRules = value; + } + + /// + /// A `hour_metrics` block as defined below. + /// + /// > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + /// + [Input("hourMetrics")] + public Input? HourMetrics { get; set; } + + /// + /// A `logging` block as defined below. + /// + [Input("logging")] + public Input? Logging { get; set; } + + /// + /// A `minute_metrics` block as defined below. + /// + [Input("minuteMetrics")] + public Input? MinuteMetrics { get; set; } + + /// + /// The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + public AccountQueuePropertiesState() + { + } + public static new AccountQueuePropertiesState Empty => new AccountQueuePropertiesState(); + } +} diff --git a/sdk/dotnet/Storage/AccountStaticWebsite.cs b/sdk/dotnet/Storage/AccountStaticWebsite.cs new file mode 100644 index 0000000000..913fcd98a0 --- /dev/null +++ b/sdk/dotnet/Storage/AccountStaticWebsite.cs @@ -0,0 +1,178 @@ +// *** 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.Storage +{ + /// + /// Manages the Static Website of an Azure Storage Account. + /// + /// ## 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 exampleAccount = new Azure.Storage.Account("example", new() + /// { + /// Name = "storageaccountname", + /// ResourceGroupName = example.Name, + /// Location = example.Location, + /// AccountTier = "Standard", + /// AccountReplicationType = "GRS", + /// Tags = + /// { + /// { "environment", "staging" }, + /// }, + /// }); + /// + /// var test = new Azure.Storage.AccountStaticWebsite("test", new() + /// { + /// StorageAccountId = testAzurermStorageAccount.Id, + /// Error404Document = "custom_not_found.html", + /// IndexDocument = "custom_index.html", + /// }); + /// + /// }); + /// ``` + /// + /// ## Import + /// + /// Storage Account Static Websites can be imported using the `resource id`, e.g. + /// + /// ```sh + /// $ pulumi import azure:storage/accountStaticWebsite:AccountStaticWebsite mysite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + /// ``` + /// + [AzureResourceType("azure:storage/accountStaticWebsite:AccountStaticWebsite")] + public partial class AccountStaticWebsite : global::Pulumi.CustomResource + { + /// + /// The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + /// + [Output("error404Document")] + public Output Error404Document { get; private set; } = null!; + + /// + /// The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + /// + [Output("indexDocument")] + public Output IndexDocument { get; private set; } = null!; + + /// + /// The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + /// + [Output("storageAccountId")] + public Output StorageAccountId { get; private set; } = null!; + + + /// + /// Create a AccountStaticWebsite 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 AccountStaticWebsite(string name, AccountStaticWebsiteArgs args, CustomResourceOptions? options = null) + : base("azure:storage/accountStaticWebsite:AccountStaticWebsite", name, args ?? new AccountStaticWebsiteArgs(), MakeResourceOptions(options, "")) + { + } + + private AccountStaticWebsite(string name, Input id, AccountStaticWebsiteState? state = null, CustomResourceOptions? options = null) + : base("azure:storage/accountStaticWebsite:AccountStaticWebsite", 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 AccountStaticWebsite 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 AccountStaticWebsite Get(string name, Input id, AccountStaticWebsiteState? state = null, CustomResourceOptions? options = null) + { + return new AccountStaticWebsite(name, id, state, options); + } + } + + public sealed class AccountStaticWebsiteArgs : global::Pulumi.ResourceArgs + { + /// + /// The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + /// + [Input("error404Document")] + public Input? Error404Document { get; set; } + + /// + /// The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + /// + [Input("indexDocument")] + public Input? IndexDocument { get; set; } + + /// + /// The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + /// + [Input("storageAccountId", required: true)] + public Input StorageAccountId { get; set; } = null!; + + public AccountStaticWebsiteArgs() + { + } + public static new AccountStaticWebsiteArgs Empty => new AccountStaticWebsiteArgs(); + } + + public sealed class AccountStaticWebsiteState : global::Pulumi.ResourceArgs + { + /// + /// The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + /// + [Input("error404Document")] + public Input? Error404Document { get; set; } + + /// + /// The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + /// + [Input("indexDocument")] + public Input? IndexDocument { get; set; } + + /// + /// The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + public AccountStaticWebsiteState() + { + } + public static new AccountStaticWebsiteState Empty => new AccountStaticWebsiteState(); + } +} diff --git a/sdk/dotnet/Storage/Container.cs b/sdk/dotnet/Storage/Container.cs index 41dd250582..3abe4e1b70 100644 --- a/sdk/dotnet/Storage/Container.cs +++ b/sdk/dotnet/Storage/Container.cs @@ -44,7 +44,7 @@ namespace Pulumi.Azure.Storage /// var exampleContainer = new Azure.Storage.Container("example", new() /// { /// Name = "vhds", - /// StorageAccountName = exampleAccount.Name, + /// StorageAccountId = exampleAccount.Id, /// ContainerAccessType = "private", /// }); /// @@ -114,9 +114,17 @@ public partial class Container : global::Pulumi.CustomResource /// /// The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + /// + /// > **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. + /// + [Output("storageAccountId")] + public Output StorageAccountId { get; private set; } = null!; + + /// + /// 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`. /// [Output("storageAccountName")] - public Output StorageAccountName { get; private set; } = null!; + public Output StorageAccountName { get; private set; } = null!; /// @@ -126,7 +134,7 @@ public partial class Container : global::Pulumi.CustomResource /// 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 Container(string name, ContainerArgs args, CustomResourceOptions? options = null) + public Container(string name, ContainerArgs? args = null, CustomResourceOptions? options = null) : base("azure:storage/container:Container", name, args ?? new ContainerArgs(), MakeResourceOptions(options, "")) { } @@ -204,9 +212,17 @@ public InputMap Metadata /// /// The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + /// + /// > **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. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + /// + /// 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`. /// - [Input("storageAccountName", required: true)] - public Input StorageAccountName { get; set; } = null!; + [Input("storageAccountName")] + public Input? StorageAccountName { get; set; } public ContainerArgs() { @@ -274,6 +290,14 @@ public InputMap Metadata /// /// The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + /// + /// > **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. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + /// + /// 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`. /// [Input("storageAccountName")] public Input? StorageAccountName { get; set; } diff --git a/sdk/dotnet/Storage/GetShare.cs b/sdk/dotnet/Storage/GetShare.cs index 211c0c1c05..579e3603ba 100644 --- a/sdk/dotnet/Storage/GetShare.cs +++ b/sdk/dotnet/Storage/GetShare.cs @@ -26,16 +26,18 @@ public static class GetShare /// /// return await Deployment.RunAsync(() => /// { - /// var example = Azure.Storage.GetShare.Invoke(new() + /// var example = Azure.Storage.GetAccount.Invoke(new() /// { - /// Name = "existing", - /// StorageAccountName = "existing", + /// Name = "exampleaccount", + /// ResourceGroupName = "examples", /// }); /// - /// return new Dictionary<string, object?> + /// var exampleGetShare = Azure.Storage.GetShare.Invoke(new() /// { - /// ["id"] = example.Apply(getShareResult => getShareResult.Id), - /// }; + /// Name = "existing", + /// StorageAccountId = example.Apply(getAccountResult => getAccountResult.Id), + /// }); + /// /// }); /// ``` /// @@ -57,16 +59,18 @@ public static Task InvokeAsync(GetShareArgs args, InvokeOptions? /// /// return await Deployment.RunAsync(() => /// { - /// var example = Azure.Storage.GetShare.Invoke(new() + /// var example = Azure.Storage.GetAccount.Invoke(new() /// { - /// Name = "existing", - /// StorageAccountName = "existing", + /// Name = "exampleaccount", + /// ResourceGroupName = "examples", /// }); /// - /// return new Dictionary<string, object?> + /// var exampleGetShare = Azure.Storage.GetShare.Invoke(new() /// { - /// ["id"] = example.Apply(getShareResult => getShareResult.Id), - /// }; + /// Name = "existing", + /// StorageAccountId = example.Apply(getAccountResult => getAccountResult.Id), + /// }); + /// /// }); /// ``` /// @@ -108,10 +112,18 @@ public Dictionary Metadata public string Name { get; set; } = null!; /// - /// The name of the storage account. + /// The ID of the storage account in which the share exists. + /// + /// > **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. /// - [Input("storageAccountName", required: true)] - public string StorageAccountName { get; set; } = null!; + [Input("storageAccountId")] + public string? StorageAccountId { get; set; } + + /// + /// The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. + /// + [Input("storageAccountName")] + public string? StorageAccountName { get; set; } public GetShareArgs() { @@ -152,10 +164,18 @@ public InputMap Metadata public Input Name { get; set; } = null!; /// - /// The name of the storage account. + /// The ID of the storage account in which the share exists. + /// + /// > **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. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + /// + /// The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. /// - [Input("storageAccountName", required: true)] - public Input StorageAccountName { get; set; } = null!; + [Input("storageAccountName")] + public Input? StorageAccountName { get; set; } public GetShareInvokeArgs() { @@ -185,7 +205,8 @@ public sealed class GetShareResult /// public readonly int Quota; public readonly string ResourceManagerId; - public readonly string StorageAccountName; + public readonly string? StorageAccountId; + public readonly string? StorageAccountName; [OutputConstructor] private GetShareResult( @@ -201,7 +222,9 @@ private GetShareResult( string resourceManagerId, - string storageAccountName) + string? storageAccountId, + + string? storageAccountName) { Acls = acls; Id = id; @@ -209,6 +232,7 @@ private GetShareResult( Name = name; Quota = quota; ResourceManagerId = resourceManagerId; + StorageAccountId = storageAccountId; StorageAccountName = storageAccountName; } } diff --git a/sdk/dotnet/Storage/GetStorageContainer.cs b/sdk/dotnet/Storage/GetStorageContainer.cs index 4bd70fc206..6ff645e9c5 100644 --- a/sdk/dotnet/Storage/GetStorageContainer.cs +++ b/sdk/dotnet/Storage/GetStorageContainer.cs @@ -24,10 +24,16 @@ public static class GetStorageContainer /// /// return await Deployment.RunAsync(() => /// { - /// var example = Azure.Storage.GetStorageContainer.Invoke(new() + /// var example = Azure.Storage.GetAccount.Invoke(new() + /// { + /// Name = "exampleaccount", + /// ResourceGroupName = "examples", + /// }); + /// + /// var exampleGetStorageContainer = Azure.Storage.GetStorageContainer.Invoke(new() /// { /// Name = "example-container-name", - /// StorageAccountName = "example-storage-account-name", + /// StorageAccountId = example.Apply(getAccountResult => getAccountResult.Id), /// }); /// /// }); @@ -49,10 +55,16 @@ public static Task InvokeAsync(GetStorageContainerArg /// /// return await Deployment.RunAsync(() => /// { - /// var example = Azure.Storage.GetStorageContainer.Invoke(new() + /// var example = Azure.Storage.GetAccount.Invoke(new() + /// { + /// Name = "exampleaccount", + /// ResourceGroupName = "examples", + /// }); + /// + /// var exampleGetStorageContainer = Azure.Storage.GetStorageContainer.Invoke(new() /// { /// Name = "example-container-name", - /// StorageAccountName = "example-storage-account-name", + /// StorageAccountId = example.Apply(getAccountResult => getAccountResult.Id), /// }); /// /// }); @@ -84,10 +96,18 @@ public Dictionary Metadata public string Name { get; set; } = null!; /// - /// The name of the Storage Account where the Container exists. + /// The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + /// + /// > **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. /// - [Input("storageAccountName", required: true)] - public string StorageAccountName { get; set; } = null!; + [Input("storageAccountId")] + public string? StorageAccountId { get; set; } + + /// + /// The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. + /// + [Input("storageAccountName")] + public string? StorageAccountName { get; set; } public GetStorageContainerArgs() { @@ -116,10 +136,18 @@ public InputMap Metadata public Input Name { get; set; } = null!; /// - /// The name of the Storage Account where the Container exists. + /// The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + /// + /// > **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. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + /// + /// The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. /// - [Input("storageAccountName", required: true)] - public Input StorageAccountName { get; set; } = null!; + [Input("storageAccountName")] + public Input? StorageAccountName { get; set; } public GetStorageContainerInvokeArgs() { @@ -160,11 +188,9 @@ public sealed class GetStorageContainerResult /// public readonly ImmutableDictionary Metadata; public readonly string Name; - /// - /// The Resource Manager ID of this Storage Container. - /// public readonly string ResourceManagerId; - public readonly string StorageAccountName; + public readonly string? StorageAccountId; + public readonly string? StorageAccountName; [OutputConstructor] private GetStorageContainerResult( @@ -186,7 +212,9 @@ private GetStorageContainerResult( string resourceManagerId, - string storageAccountName) + string? storageAccountId, + + string? storageAccountName) { ContainerAccessType = containerAccessType; DefaultEncryptionScope = defaultEncryptionScope; @@ -197,6 +225,7 @@ private GetStorageContainerResult( Metadata = metadata; Name = name; ResourceManagerId = resourceManagerId; + StorageAccountId = storageAccountId; StorageAccountName = storageAccountName; } } diff --git a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsArgs.cs b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsArgs.cs index 0c7c133b84..4dc2f6f438 100644 --- a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsArgs.cs +++ b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsArgs.cs @@ -12,12 +12,6 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class AccountQueuePropertiesHourMetricsArgs : global::Pulumi.ResourceArgs { - /// - /// Indicates whether hour metrics are enabled for the Queue service. - /// - [Input("enabled", required: true)] - public Input Enabled { get; set; } = null!; - /// /// Indicates whether metrics should generate summary statistics for called API operations. /// diff --git a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsGetArgs.cs b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsGetArgs.cs index 246b628348..0a9c0a889b 100644 --- a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsGetArgs.cs +++ b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesHourMetricsGetArgs.cs @@ -12,12 +12,6 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class AccountQueuePropertiesHourMetricsGetArgs : global::Pulumi.ResourceArgs { - /// - /// Indicates whether hour metrics are enabled for the Queue service. - /// - [Input("enabled", required: true)] - public Input Enabled { get; set; } = null!; - /// /// Indicates whether metrics should generate summary statistics for called API operations. /// diff --git a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsArgs.cs b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsArgs.cs index 66d3dec5a0..25edd3822b 100644 --- a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsArgs.cs +++ b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsArgs.cs @@ -12,12 +12,6 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class AccountQueuePropertiesMinuteMetricsArgs : global::Pulumi.ResourceArgs { - /// - /// Indicates whether minute metrics are enabled for the Queue service. - /// - [Input("enabled", required: true)] - public Input Enabled { get; set; } = null!; - /// /// Indicates whether metrics should generate summary statistics for called API operations. /// diff --git a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsGetArgs.cs b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsGetArgs.cs index 1eb8c69b41..0239b9893b 100644 --- a/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsGetArgs.cs +++ b/sdk/dotnet/Storage/Inputs/AccountQueuePropertiesMinuteMetricsGetArgs.cs @@ -12,12 +12,6 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class AccountQueuePropertiesMinuteMetricsGetArgs : global::Pulumi.ResourceArgs { - /// - /// Indicates whether minute metrics are enabled for the Queue service. - /// - [Input("enabled", required: true)] - public Input Enabled { get; set; } = null!; - /// /// Indicates whether metrics should generate summary statistics for called API operations. /// diff --git a/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicy.cs b/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicy.cs index b4d0d5d88e..db4b5761a1 100644 --- a/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicy.cs +++ b/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicy.cs @@ -13,7 +13,7 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class GetShareAclAccessPolicyArgs : global::Pulumi.InvokeArgs { /// - /// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// The time at which this Access Policy is valid until. /// [Input("expiry", required: true)] public string Expiry { get; set; } = null!; @@ -25,7 +25,7 @@ public sealed class GetShareAclAccessPolicyArgs : global::Pulumi.InvokeArgs public string Permissions { get; set; } = null!; /// - /// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// The time at which this Access Policy is valid from. /// [Input("start", required: true)] public string Start { get; set; } = null!; diff --git a/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicyArgs.cs b/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicyArgs.cs index a61f4d8556..e14264732d 100644 --- a/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicyArgs.cs +++ b/sdk/dotnet/Storage/Inputs/GetShareAclAccessPolicyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class GetShareAclAccessPolicyInputArgs : global::Pulumi.ResourceArgs { /// - /// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// The time at which this Access Policy is valid until. /// [Input("expiry", required: true)] public Input Expiry { get; set; } = null!; @@ -25,7 +25,7 @@ public sealed class GetShareAclAccessPolicyInputArgs : global::Pulumi.ResourceAr public Input Permissions { get; set; } = null!; /// - /// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// The time at which this Access Policy is valid from. /// [Input("start", required: true)] public Input Start { get; set; } = null!; diff --git a/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyArgs.cs b/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyArgs.cs index ea1cc0a905..6b01523f16 100644 --- a/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyArgs.cs +++ b/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class ShareAclAccessPolicyArgs : global::Pulumi.ResourceArgs { /// - /// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// 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. /// [Input("expiry")] public Input? Expiry { get; set; } @@ -27,7 +27,7 @@ public sealed class ShareAclAccessPolicyArgs : global::Pulumi.ResourceArgs public Input Permissions { get; set; } = null!; /// - /// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// 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. /// [Input("start")] public Input? Start { get; set; } diff --git a/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyGetArgs.cs b/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyGetArgs.cs index ce88d2222b..894bc0ea45 100644 --- a/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyGetArgs.cs +++ b/sdk/dotnet/Storage/Inputs/ShareAclAccessPolicyGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Azure.Storage.Inputs public sealed class ShareAclAccessPolicyGetArgs : global::Pulumi.ResourceArgs { /// - /// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// 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. /// [Input("expiry")] public Input? Expiry { get; set; } @@ -27,7 +27,7 @@ public sealed class ShareAclAccessPolicyGetArgs : global::Pulumi.ResourceArgs public Input Permissions { get; set; } = null!; /// - /// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// 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. /// [Input("start")] public Input? Start { get; set; } diff --git a/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesHourMetrics.cs b/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesHourMetrics.cs index 22bf315fef..2f9c656e43 100644 --- a/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesHourMetrics.cs +++ b/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesHourMetrics.cs @@ -13,10 +13,6 @@ namespace Pulumi.Azure.Storage.Outputs [OutputType] public sealed class AccountQueuePropertiesHourMetrics { - /// - /// Indicates whether hour metrics are enabled for the Queue service. - /// - public readonly bool Enabled; /// /// Indicates whether metrics should generate summary statistics for called API operations. /// @@ -32,15 +28,12 @@ public sealed class AccountQueuePropertiesHourMetrics [OutputConstructor] private AccountQueuePropertiesHourMetrics( - bool enabled, - bool? includeApis, int? retentionPolicyDays, string version) { - Enabled = enabled; IncludeApis = includeApis; RetentionPolicyDays = retentionPolicyDays; Version = version; diff --git a/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesMinuteMetrics.cs b/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesMinuteMetrics.cs index 25423944c3..2babc8a28d 100644 --- a/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesMinuteMetrics.cs +++ b/sdk/dotnet/Storage/Outputs/AccountQueuePropertiesMinuteMetrics.cs @@ -13,10 +13,6 @@ namespace Pulumi.Azure.Storage.Outputs [OutputType] public sealed class AccountQueuePropertiesMinuteMetrics { - /// - /// Indicates whether minute metrics are enabled for the Queue service. - /// - public readonly bool Enabled; /// /// Indicates whether metrics should generate summary statistics for called API operations. /// @@ -32,15 +28,12 @@ public sealed class AccountQueuePropertiesMinuteMetrics [OutputConstructor] private AccountQueuePropertiesMinuteMetrics( - bool enabled, - bool? includeApis, int? retentionPolicyDays, string version) { - Enabled = enabled; IncludeApis = includeApis; RetentionPolicyDays = retentionPolicyDays; Version = version; diff --git a/sdk/dotnet/Storage/Outputs/GetShareAclAccessPolicyResult.cs b/sdk/dotnet/Storage/Outputs/GetShareAclAccessPolicyResult.cs index d278f2ada0..b21d03cf1c 100644 --- a/sdk/dotnet/Storage/Outputs/GetShareAclAccessPolicyResult.cs +++ b/sdk/dotnet/Storage/Outputs/GetShareAclAccessPolicyResult.cs @@ -14,7 +14,7 @@ namespace Pulumi.Azure.Storage.Outputs public sealed class GetShareAclAccessPolicyResult { /// - /// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// The time at which this Access Policy is valid until. /// public readonly string Expiry; /// @@ -22,7 +22,7 @@ public sealed class GetShareAclAccessPolicyResult /// public readonly string Permissions; /// - /// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// The time at which this Access Policy is valid from. /// public readonly string Start; diff --git a/sdk/dotnet/Storage/Outputs/ShareAclAccessPolicy.cs b/sdk/dotnet/Storage/Outputs/ShareAclAccessPolicy.cs index da3d1f92a0..0cfba20bfd 100644 --- a/sdk/dotnet/Storage/Outputs/ShareAclAccessPolicy.cs +++ b/sdk/dotnet/Storage/Outputs/ShareAclAccessPolicy.cs @@ -14,7 +14,7 @@ namespace Pulumi.Azure.Storage.Outputs public sealed class ShareAclAccessPolicy { /// - /// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// 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. /// public readonly string? Expiry; /// @@ -24,7 +24,7 @@ public sealed class ShareAclAccessPolicy /// public readonly string Permissions; /// - /// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + /// 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. /// public readonly string? Start; diff --git a/sdk/dotnet/Storage/Share.cs b/sdk/dotnet/Storage/Share.cs index f82cb60355..591ffd126a 100644 --- a/sdk/dotnet/Storage/Share.cs +++ b/sdk/dotnet/Storage/Share.cs @@ -44,7 +44,7 @@ namespace Pulumi.Azure.Storage /// var exampleShare = new Azure.Storage.Share("example", new() /// { /// Name = "sharename", - /// StorageAccountName = exampleAccount.Name, + /// StorageAccountId = exampleAccount.Id, /// Quota = 50, /// Acls = new[] /// { @@ -56,8 +56,8 @@ namespace Pulumi.Azure.Storage /// new Azure.Storage.Inputs.ShareAclAccessPolicyArgs /// { /// Permissions = "rwdl", - /// Start = "2019-07-02T09:38:21.0000000Z", - /// Expiry = "2019-07-02T10:38:21.0000000Z", + /// Start = "2019-07-02T09:38:21Z", + /// Expiry = "2019-07-02T10:38:21Z", /// }, /// }, /// }, @@ -69,10 +69,10 @@ namespace Pulumi.Azure.Storage /// /// ## Import /// - /// Storage Shares can be imported using the `resource id`, e.g. + /// Storage Shares can be imported using the `id`, e.g. /// /// ```sh - /// $ pulumi import azure:storage/share:Share exampleShare https://account1.file.core.windows.net/share1 + /// $ pulumi import azure:storage/share:Share exampleShare /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myAccount/fileServices/default/shares/exampleShare /// ``` /// [AzureResourceType("azure:storage/share:Share")] @@ -130,9 +130,17 @@ public partial class Share : global::Pulumi.CustomResource /// /// Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + /// + /// > **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. + /// + [Output("storageAccountId")] + public Output StorageAccountId { get; private set; } = null!; + + /// + /// 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`. /// [Output("storageAccountName")] - public Output StorageAccountName { get; private set; } = null!; + public Output StorageAccountName { get; private set; } = null!; /// /// The URL of the File Share @@ -244,9 +252,17 @@ public InputMap Metadata /// /// Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + /// + /// > **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. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + /// + /// 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`. /// - [Input("storageAccountName", required: true)] - public Input StorageAccountName { get; set; } = null!; + [Input("storageAccountName")] + public Input? StorageAccountName { get; set; } public ShareArgs() { @@ -320,6 +336,14 @@ public InputMap Metadata /// /// Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + /// + /// > **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. + /// + [Input("storageAccountId")] + public Input? StorageAccountId { get; set; } + + /// + /// 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`. /// [Input("storageAccountName")] public Input? StorageAccountName { get; set; } diff --git a/sdk/dotnet/TrustedSigning/Account.cs b/sdk/dotnet/TrustedSigning/Account.cs index 006167cace..80144a5416 100644 --- a/sdk/dotnet/TrustedSigning/Account.cs +++ b/sdk/dotnet/TrustedSigning/Account.cs @@ -12,6 +12,33 @@ namespace Pulumi.Azure.TrustedSigning /// /// Manages a Trusted Signing Account. /// + /// ## 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", + /// Location = "West Europe", + /// }); + /// + /// var exampleAccount = new Azure.TrustedSigning.Account("example", new() + /// { + /// Name = "example-account", + /// ResourceGroupName = example.Name, + /// Location = "West Europe", + /// SkuName = "Basic", + /// }); + /// + /// }); + /// ``` + /// /// ## Import /// /// Trusted Signing Accounts can be imported using the `resource id`, e.g. diff --git a/sdk/go/azure/cdn/pulumiTypes.go b/sdk/go/azure/cdn/pulumiTypes.go index 60777446f3..5663c7bba2 100644 --- a/sdk/go/azure/cdn/pulumiTypes.go +++ b/sdk/go/azure/cdn/pulumiTypes.go @@ -4943,6 +4943,8 @@ type FrontdoorCustomDomainTls struct { // ->**NOTE:** It may take up to 15 minutes for the Front Door Service to validate the state and Domain ownership of the Custom Domain. CertificateType *string `pulumi:"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. MinimumTlsVersion *string `pulumi:"minimumTlsVersion"` } @@ -4965,6 +4967,8 @@ type FrontdoorCustomDomainTlsArgs struct { // ->**NOTE:** It may take up to 15 minutes for the Front Door Service to validate the state and Domain ownership of the Custom Domain. CertificateType pulumi.StringPtrInput `pulumi:"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. MinimumTlsVersion pulumi.StringPtrInput `pulumi:"minimumTlsVersion"` } @@ -5058,6 +5062,8 @@ func (o FrontdoorCustomDomainTlsOutput) CertificateType() pulumi.StringPtrOutput } // 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. func (o FrontdoorCustomDomainTlsOutput) MinimumTlsVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v FrontdoorCustomDomainTls) *string { return v.MinimumTlsVersion }).(pulumi.StringPtrOutput) } @@ -5109,6 +5115,8 @@ func (o FrontdoorCustomDomainTlsPtrOutput) CertificateType() pulumi.StringPtrOut } // 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. func (o FrontdoorCustomDomainTlsPtrOutput) MinimumTlsVersion() pulumi.StringPtrOutput { return o.ApplyT(func(v *FrontdoorCustomDomainTls) *string { if v == nil { diff --git a/sdk/go/azure/cognitive/pulumiTypes.go b/sdk/go/azure/cognitive/pulumiTypes.go index bb197a26cf..55d5c5a097 100644 --- a/sdk/go/azure/cognitive/pulumiTypes.go +++ b/sdk/go/azure/cognitive/pulumiTypes.go @@ -1708,7 +1708,7 @@ type DeploymentSku struct { Capacity *int `pulumi:"capacity"` // If the service has different generations of hardware, for the same SKU, then that can be captured here. Changing this forces a new resource to be created. Family *string `pulumi:"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`. Name string `pulumi:"name"` // The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. Changing this forces a new resource to be created. Size *string `pulumi:"size"` @@ -1732,7 +1732,7 @@ type DeploymentSkuArgs struct { Capacity pulumi.IntPtrInput `pulumi:"capacity"` // If the service has different generations of hardware, for the same SKU, then that can be captured here. Changing this forces a new resource to be created. Family pulumi.StringPtrInput `pulumi:"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`. Name pulumi.StringInput `pulumi:"name"` // The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. Changing this forces a new resource to be created. Size pulumi.StringPtrInput `pulumi:"size"` @@ -1827,7 +1827,7 @@ func (o DeploymentSkuOutput) Family() pulumi.StringPtrOutput { return o.ApplyT(func(v DeploymentSku) *string { return v.Family }).(pulumi.StringPtrOutput) } -// 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`. func (o DeploymentSkuOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v DeploymentSku) string { return v.Name }).(pulumi.StringOutput) } @@ -1886,7 +1886,7 @@ func (o DeploymentSkuPtrOutput) Family() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// 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`. func (o DeploymentSkuPtrOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v *DeploymentSku) *string { if v == nil { diff --git a/sdk/go/azure/config/pulumiTypes.go b/sdk/go/azure/config/pulumiTypes.go index b5d76413b3..eae9b9d2f4 100644 --- a/sdk/go/azure/config/pulumiTypes.go +++ b/sdk/go/azure/config/pulumiTypes.go @@ -26,6 +26,7 @@ type Features struct { RecoveryService *FeaturesRecoveryService `pulumi:"recoveryService"` RecoveryServicesVaults *FeaturesRecoveryServicesVaults `pulumi:"recoveryServicesVaults"` ResourceGroup *FeaturesResourceGroup `pulumi:"resourceGroup"` + Storage *FeaturesStorage `pulumi:"storage"` Subscription *FeaturesSubscription `pulumi:"subscription"` TemplateDeployment *FeaturesTemplateDeployment `pulumi:"templateDeployment"` VirtualMachine *FeaturesVirtualMachine `pulumi:"virtualMachine"` @@ -56,6 +57,7 @@ type FeaturesArgs struct { RecoveryService FeaturesRecoveryServicePtrInput `pulumi:"recoveryService"` RecoveryServicesVaults FeaturesRecoveryServicesVaultsPtrInput `pulumi:"recoveryServicesVaults"` ResourceGroup FeaturesResourceGroupPtrInput `pulumi:"resourceGroup"` + Storage FeaturesStoragePtrInput `pulumi:"storage"` Subscription FeaturesSubscriptionPtrInput `pulumi:"subscription"` TemplateDeployment FeaturesTemplateDeploymentPtrInput `pulumi:"templateDeployment"` VirtualMachine FeaturesVirtualMachinePtrInput `pulumi:"virtualMachine"` @@ -136,6 +138,10 @@ func (o FeaturesOutput) ResourceGroup() FeaturesResourceGroupPtrOutput { return o.ApplyT(func(v Features) *FeaturesResourceGroup { return v.ResourceGroup }).(FeaturesResourceGroupPtrOutput) } +func (o FeaturesOutput) Storage() FeaturesStoragePtrOutput { + return o.ApplyT(func(v Features) *FeaturesStorage { return v.Storage }).(FeaturesStoragePtrOutput) +} + func (o FeaturesOutput) Subscription() FeaturesSubscriptionPtrOutput { return o.ApplyT(func(v Features) *FeaturesSubscription { return v.Subscription }).(FeaturesSubscriptionPtrOutput) } @@ -1987,6 +1993,139 @@ func (o FeaturesResourceGroupPtrOutput) PreventDeletionIfContainsResources() pul }).(pulumi.BoolPtrOutput) } +type FeaturesStorage struct { + DataPlaneAvailable *bool `pulumi:"dataPlaneAvailable"` +} + +// FeaturesStorageInput is an input type that accepts FeaturesStorageArgs and FeaturesStorageOutput values. +// You can construct a concrete instance of `FeaturesStorageInput` via: +// +// FeaturesStorageArgs{...} +type FeaturesStorageInput interface { + pulumi.Input + + ToFeaturesStorageOutput() FeaturesStorageOutput + ToFeaturesStorageOutputWithContext(context.Context) FeaturesStorageOutput +} + +type FeaturesStorageArgs struct { + DataPlaneAvailable pulumi.BoolPtrInput `pulumi:"dataPlaneAvailable"` +} + +func (FeaturesStorageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FeaturesStorage)(nil)).Elem() +} + +func (i FeaturesStorageArgs) ToFeaturesStorageOutput() FeaturesStorageOutput { + return i.ToFeaturesStorageOutputWithContext(context.Background()) +} + +func (i FeaturesStorageArgs) ToFeaturesStorageOutputWithContext(ctx context.Context) FeaturesStorageOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeaturesStorageOutput) +} + +func (i FeaturesStorageArgs) ToFeaturesStoragePtrOutput() FeaturesStoragePtrOutput { + return i.ToFeaturesStoragePtrOutputWithContext(context.Background()) +} + +func (i FeaturesStorageArgs) ToFeaturesStoragePtrOutputWithContext(ctx context.Context) FeaturesStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeaturesStorageOutput).ToFeaturesStoragePtrOutputWithContext(ctx) +} + +// FeaturesStoragePtrInput is an input type that accepts FeaturesStorageArgs, FeaturesStoragePtr and FeaturesStoragePtrOutput values. +// You can construct a concrete instance of `FeaturesStoragePtrInput` via: +// +// FeaturesStorageArgs{...} +// +// or: +// +// nil +type FeaturesStoragePtrInput interface { + pulumi.Input + + ToFeaturesStoragePtrOutput() FeaturesStoragePtrOutput + ToFeaturesStoragePtrOutputWithContext(context.Context) FeaturesStoragePtrOutput +} + +type featuresStoragePtrType FeaturesStorageArgs + +func FeaturesStoragePtr(v *FeaturesStorageArgs) FeaturesStoragePtrInput { + return (*featuresStoragePtrType)(v) +} + +func (*featuresStoragePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FeaturesStorage)(nil)).Elem() +} + +func (i *featuresStoragePtrType) ToFeaturesStoragePtrOutput() FeaturesStoragePtrOutput { + return i.ToFeaturesStoragePtrOutputWithContext(context.Background()) +} + +func (i *featuresStoragePtrType) ToFeaturesStoragePtrOutputWithContext(ctx context.Context) FeaturesStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeaturesStoragePtrOutput) +} + +type FeaturesStorageOutput struct{ *pulumi.OutputState } + +func (FeaturesStorageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FeaturesStorage)(nil)).Elem() +} + +func (o FeaturesStorageOutput) ToFeaturesStorageOutput() FeaturesStorageOutput { + return o +} + +func (o FeaturesStorageOutput) ToFeaturesStorageOutputWithContext(ctx context.Context) FeaturesStorageOutput { + return o +} + +func (o FeaturesStorageOutput) ToFeaturesStoragePtrOutput() FeaturesStoragePtrOutput { + return o.ToFeaturesStoragePtrOutputWithContext(context.Background()) +} + +func (o FeaturesStorageOutput) ToFeaturesStoragePtrOutputWithContext(ctx context.Context) FeaturesStoragePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FeaturesStorage) *FeaturesStorage { + return &v + }).(FeaturesStoragePtrOutput) +} + +func (o FeaturesStorageOutput) DataPlaneAvailable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FeaturesStorage) *bool { return v.DataPlaneAvailable }).(pulumi.BoolPtrOutput) +} + +type FeaturesStoragePtrOutput struct{ *pulumi.OutputState } + +func (FeaturesStoragePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FeaturesStorage)(nil)).Elem() +} + +func (o FeaturesStoragePtrOutput) ToFeaturesStoragePtrOutput() FeaturesStoragePtrOutput { + return o +} + +func (o FeaturesStoragePtrOutput) ToFeaturesStoragePtrOutputWithContext(ctx context.Context) FeaturesStoragePtrOutput { + return o +} + +func (o FeaturesStoragePtrOutput) Elem() FeaturesStorageOutput { + return o.ApplyT(func(v *FeaturesStorage) FeaturesStorage { + if v != nil { + return *v + } + var ret FeaturesStorage + return ret + }).(FeaturesStorageOutput) +} + +func (o FeaturesStoragePtrOutput) DataPlaneAvailable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FeaturesStorage) *bool { + if v == nil { + return nil + } + return v.DataPlaneAvailable + }).(pulumi.BoolPtrOutput) +} + type FeaturesSubscription struct { PreventCancellationOnDestroy *bool `pulumi:"preventCancellationOnDestroy"` } @@ -2635,6 +2774,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FeaturesRecoveryServicesVaultsPtrInput)(nil)).Elem(), FeaturesRecoveryServicesVaultsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesResourceGroupInput)(nil)).Elem(), FeaturesResourceGroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesResourceGroupPtrInput)(nil)).Elem(), FeaturesResourceGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeaturesStorageInput)(nil)).Elem(), FeaturesStorageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeaturesStoragePtrInput)(nil)).Elem(), FeaturesStorageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesSubscriptionInput)(nil)).Elem(), FeaturesSubscriptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesSubscriptionPtrInput)(nil)).Elem(), FeaturesSubscriptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesTemplateDeploymentInput)(nil)).Elem(), FeaturesTemplateDeploymentArgs{}) @@ -2668,6 +2809,8 @@ func init() { pulumi.RegisterOutputType(FeaturesRecoveryServicesVaultsPtrOutput{}) pulumi.RegisterOutputType(FeaturesResourceGroupOutput{}) pulumi.RegisterOutputType(FeaturesResourceGroupPtrOutput{}) + pulumi.RegisterOutputType(FeaturesStorageOutput{}) + pulumi.RegisterOutputType(FeaturesStoragePtrOutput{}) pulumi.RegisterOutputType(FeaturesSubscriptionOutput{}) pulumi.RegisterOutputType(FeaturesSubscriptionPtrOutput{}) pulumi.RegisterOutputType(FeaturesTemplateDeploymentOutput{}) diff --git a/sdk/go/azure/containerservice/kubernetesCluster.go b/sdk/go/azure/containerservice/kubernetesCluster.go index 2d16b30ea3..7a88de9352 100644 --- a/sdk/go/azure/containerservice/kubernetesCluster.go +++ b/sdk/go/azure/containerservice/kubernetesCluster.go @@ -100,7 +100,7 @@ type KubernetesCluster struct { CostAnalysisEnabled pulumi.BoolPtrOutput `pulumi:"costAnalysisEnabled"` // The current version running on the Azure Kubernetes Managed Cluster. CurrentKubernetesVersion pulumi.StringOutput `pulumi:"currentKubernetesVersion"` - // A `defaultNodePool` block as defined below. + // Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. DefaultNodePool KubernetesClusterDefaultNodePoolOutput `pulumi:"defaultNodePool"` // The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. DiskEncryptionSetId pulumi.StringPtrOutput `pulumi:"diskEncryptionSetId"` @@ -372,7 +372,7 @@ type kubernetesClusterState struct { CostAnalysisEnabled *bool `pulumi:"costAnalysisEnabled"` // The current version running on the Azure Kubernetes Managed Cluster. CurrentKubernetesVersion *string `pulumi:"currentKubernetesVersion"` - // A `defaultNodePool` block as defined below. + // Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. DefaultNodePool *KubernetesClusterDefaultNodePool `pulumi:"defaultNodePool"` // The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. DiskEncryptionSetId *string `pulumi:"diskEncryptionSetId"` @@ -602,7 +602,7 @@ type KubernetesClusterState struct { CostAnalysisEnabled pulumi.BoolPtrInput // The current version running on the Azure Kubernetes Managed Cluster. CurrentKubernetesVersion pulumi.StringPtrInput - // A `defaultNodePool` block as defined below. + // Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. DefaultNodePool KubernetesClusterDefaultNodePoolPtrInput // The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. DiskEncryptionSetId pulumi.StringPtrInput @@ -834,7 +834,7 @@ type kubernetesClusterArgs struct { ConfidentialComputing *KubernetesClusterConfidentialComputing `pulumi:"confidentialComputing"` // Should cost analysis be enabled for this Kubernetes Cluster? Defaults to `false`. The `skuTier` must be set to `Standard` or `Premium` to enable this feature. Enabling this will add Kubernetes Namespace and Deployment details to the Cost Analysis views in the Azure portal. CostAnalysisEnabled *bool `pulumi:"costAnalysisEnabled"` - // A `defaultNodePool` block as defined below. + // Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. DefaultNodePool KubernetesClusterDefaultNodePool `pulumi:"defaultNodePool"` // The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. DiskEncryptionSetId *string `pulumi:"diskEncryptionSetId"` @@ -1043,7 +1043,7 @@ type KubernetesClusterArgs struct { ConfidentialComputing KubernetesClusterConfidentialComputingPtrInput // Should cost analysis be enabled for this Kubernetes Cluster? Defaults to `false`. The `skuTier` must be set to `Standard` or `Premium` to enable this feature. Enabling this will add Kubernetes Namespace and Deployment details to the Cost Analysis views in the Azure portal. CostAnalysisEnabled pulumi.BoolPtrInput - // A `defaultNodePool` block as defined below. + // Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. DefaultNodePool KubernetesClusterDefaultNodePoolInput // The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. DiskEncryptionSetId pulumi.StringPtrInput @@ -1372,7 +1372,7 @@ func (o KubernetesClusterOutput) CurrentKubernetesVersion() pulumi.StringOutput return o.ApplyT(func(v *KubernetesCluster) pulumi.StringOutput { return v.CurrentKubernetesVersion }).(pulumi.StringOutput) } -// A `defaultNodePool` block as defined below. +// Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. func (o KubernetesClusterOutput) DefaultNodePool() KubernetesClusterDefaultNodePoolOutput { return o.ApplyT(func(v *KubernetesCluster) KubernetesClusterDefaultNodePoolOutput { return v.DefaultNodePool }).(KubernetesClusterDefaultNodePoolOutput) } diff --git a/sdk/go/azure/cosmosdb/init.go b/sdk/go/azure/cosmosdb/init.go index d64fd7f39e..471a21538f 100644 --- a/sdk/go/azure/cosmosdb/init.go +++ b/sdk/go/azure/cosmosdb/init.go @@ -35,6 +35,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &GremlinDatabase{} case "azure:cosmosdb/gremlinGraph:GremlinGraph": r = &GremlinGraph{} + case "azure:cosmosdb/mongoCluster:MongoCluster": + r = &MongoCluster{} case "azure:cosmosdb/mongoCollection:MongoCollection": r = &MongoCollection{} case "azure:cosmosdb/mongoDatabase:MongoDatabase": @@ -119,6 +121,11 @@ func init() { "cosmosdb/gremlinGraph", &module{version}, ) + pulumi.RegisterResourceModule( + "azure", + "cosmosdb/mongoCluster", + &module{version}, + ) pulumi.RegisterResourceModule( "azure", "cosmosdb/mongoCollection", diff --git a/sdk/go/azure/cosmosdb/mongoCluster.go b/sdk/go/azure/cosmosdb/mongoCluster.go new file mode 100644 index 0000000000..73a161418f --- /dev/null +++ b/sdk/go/azure/cosmosdb/mongoCluster.go @@ -0,0 +1,569 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cosmosdb + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages a MongoDB Cluster using vCore Architecture. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/cosmosdb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example-rg"), +// Location: pulumi.String("East US"), +// }) +// if err != nil { +// return err +// } +// _, err = cosmosdb.NewMongoCluster(ctx, "example", &cosmosdb.MongoClusterArgs{ +// Name: pulumi.String("example-mc"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// AdministratorUsername: pulumi.String("adminTerraform"), +// AdministratorPassword: pulumi.String("QAZwsx123"), +// ShardCount: pulumi.Int(1), +// ComputeTier: pulumi.String("Free"), +// HighAvailabilityMode: pulumi.String("Disabled"), +// StorageSizeInGb: pulumi.Int(32), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Preview Feature GeoReplicas) +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/cosmosdb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example-rg"), +// Location: pulumi.String("East US"), +// }) +// if err != nil { +// return err +// } +// exampleMongoCluster, err := cosmosdb.NewMongoCluster(ctx, "example", &cosmosdb.MongoClusterArgs{ +// Name: pulumi.String("example-mc"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// AdministratorUsername: pulumi.String("adminTerraform"), +// AdministratorPassword: pulumi.String("QAZwsx123"), +// ShardCount: pulumi.Int(1), +// ComputeTier: pulumi.String("M30"), +// HighAvailabilityMode: pulumi.String("ZoneRedundantPreferred"), +// StorageSizeInGb: pulumi.Int(64), +// PreviewFeatures: pulumi.StringArray{ +// pulumi.String("GeoReplicas"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = cosmosdb.NewMongoCluster(ctx, "example_geo_replica", &cosmosdb.MongoClusterArgs{ +// Name: pulumi.String("example-mc-geo"), +// ResourceGroupName: example.Name, +// Location: pulumi.String("Central US"), +// SourceServerId: exampleMongoCluster.ID(), +// SourceLocation: exampleMongoCluster.Location, +// CreateMode: pulumi.String("GeoReplica"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## 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 +// ``` +type MongoCluster struct { + pulumi.CustomResourceState + + // The Password associated with the `administratorUsername` for the MongoDB Cluster. + AdministratorPassword pulumi.StringPtrOutput `pulumi:"administratorPassword"` + // The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + AdministratorUsername pulumi.StringPtrOutput `pulumi:"administratorUsername"` + // The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + ComputeTier pulumi.StringPtrOutput `pulumi:"computeTier"` + // 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 `previewFeatures` is set. + CreateMode pulumi.StringPtrOutput `pulumi:"createMode"` + // The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + HighAvailabilityMode pulumi.StringPtrOutput `pulumi:"highAvailabilityMode"` + // The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + Location pulumi.StringOutput `pulumi:"location"` + // The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + Name pulumi.StringOutput `pulumi:"name"` + // The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + PreviewFeatures pulumi.StringArrayOutput `pulumi:"previewFeatures"` + // The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + PublicNetworkAccess pulumi.StringPtrOutput `pulumi:"publicNetworkAccess"` + // The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` + // The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + ShardCount pulumi.IntPtrOutput `pulumi:"shardCount"` + // The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + SourceLocation pulumi.StringPtrOutput `pulumi:"sourceLocation"` + // The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + SourceServerId pulumi.StringPtrOutput `pulumi:"sourceServerId"` + // The size of the data disk space for the MongoDB Cluster. + StorageSizeInGb pulumi.IntPtrOutput `pulumi:"storageSizeInGb"` + // A mapping of tags to assign to the MongoDB Cluster. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + Version pulumi.StringPtrOutput `pulumi:"version"` +} + +// NewMongoCluster registers a new resource with the given unique name, arguments, and options. +func NewMongoCluster(ctx *pulumi.Context, + name string, args *MongoClusterArgs, opts ...pulumi.ResourceOption) (*MongoCluster, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + if args.AdministratorPassword != nil { + args.AdministratorPassword = pulumi.ToSecret(args.AdministratorPassword).(pulumi.StringPtrInput) + } + secrets := pulumi.AdditionalSecretOutputs([]string{ + "administratorPassword", + }) + opts = append(opts, secrets) + opts = internal.PkgResourceDefaultOpts(opts) + var resource MongoCluster + err := ctx.RegisterResource("azure:cosmosdb/mongoCluster:MongoCluster", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMongoCluster gets an existing MongoCluster resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMongoCluster(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MongoClusterState, opts ...pulumi.ResourceOption) (*MongoCluster, error) { + var resource MongoCluster + err := ctx.ReadResource("azure:cosmosdb/mongoCluster:MongoCluster", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MongoCluster resources. +type mongoClusterState struct { + // The Password associated with the `administratorUsername` for the MongoDB Cluster. + AdministratorPassword *string `pulumi:"administratorPassword"` + // The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + AdministratorUsername *string `pulumi:"administratorUsername"` + // The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + ComputeTier *string `pulumi:"computeTier"` + // 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 `previewFeatures` is set. + CreateMode *string `pulumi:"createMode"` + // The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + HighAvailabilityMode *string `pulumi:"highAvailabilityMode"` + // The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + PreviewFeatures []string `pulumi:"previewFeatures"` + // The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` + // The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + ResourceGroupName *string `pulumi:"resourceGroupName"` + // The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + ShardCount *int `pulumi:"shardCount"` + // The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + SourceLocation *string `pulumi:"sourceLocation"` + // The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + SourceServerId *string `pulumi:"sourceServerId"` + // The size of the data disk space for the MongoDB Cluster. + StorageSizeInGb *int `pulumi:"storageSizeInGb"` + // A mapping of tags to assign to the MongoDB Cluster. + Tags map[string]string `pulumi:"tags"` + // The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + Version *string `pulumi:"version"` +} + +type MongoClusterState struct { + // The Password associated with the `administratorUsername` for the MongoDB Cluster. + AdministratorPassword pulumi.StringPtrInput + // The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + AdministratorUsername pulumi.StringPtrInput + // The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + ComputeTier pulumi.StringPtrInput + // 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 `previewFeatures` is set. + CreateMode pulumi.StringPtrInput + // The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + HighAvailabilityMode pulumi.StringPtrInput + // The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + PreviewFeatures pulumi.StringArrayInput + // The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + PublicNetworkAccess pulumi.StringPtrInput + // The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringPtrInput + // The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + ShardCount pulumi.IntPtrInput + // The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + SourceLocation pulumi.StringPtrInput + // The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + SourceServerId pulumi.StringPtrInput + // The size of the data disk space for the MongoDB Cluster. + StorageSizeInGb pulumi.IntPtrInput + // A mapping of tags to assign to the MongoDB Cluster. + Tags pulumi.StringMapInput + // The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + Version pulumi.StringPtrInput +} + +func (MongoClusterState) ElementType() reflect.Type { + return reflect.TypeOf((*mongoClusterState)(nil)).Elem() +} + +type mongoClusterArgs struct { + // The Password associated with the `administratorUsername` for the MongoDB Cluster. + AdministratorPassword *string `pulumi:"administratorPassword"` + // The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + AdministratorUsername *string `pulumi:"administratorUsername"` + // The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + ComputeTier *string `pulumi:"computeTier"` + // 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 `previewFeatures` is set. + CreateMode *string `pulumi:"createMode"` + // The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + HighAvailabilityMode *string `pulumi:"highAvailabilityMode"` + // The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + PreviewFeatures []string `pulumi:"previewFeatures"` + // The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + PublicNetworkAccess *string `pulumi:"publicNetworkAccess"` + // The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + ShardCount *int `pulumi:"shardCount"` + // The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + SourceLocation *string `pulumi:"sourceLocation"` + // The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + SourceServerId *string `pulumi:"sourceServerId"` + // The size of the data disk space for the MongoDB Cluster. + StorageSizeInGb *int `pulumi:"storageSizeInGb"` + // A mapping of tags to assign to the MongoDB Cluster. + Tags map[string]string `pulumi:"tags"` + // The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + Version *string `pulumi:"version"` +} + +// The set of arguments for constructing a MongoCluster resource. +type MongoClusterArgs struct { + // The Password associated with the `administratorUsername` for the MongoDB Cluster. + AdministratorPassword pulumi.StringPtrInput + // The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + AdministratorUsername pulumi.StringPtrInput + // The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + ComputeTier pulumi.StringPtrInput + // 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 `previewFeatures` is set. + CreateMode pulumi.StringPtrInput + // The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + HighAvailabilityMode pulumi.StringPtrInput + // The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + PreviewFeatures pulumi.StringArrayInput + // The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + PublicNetworkAccess pulumi.StringPtrInput + // The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringInput + // The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + ShardCount pulumi.IntPtrInput + // The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + SourceLocation pulumi.StringPtrInput + // The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + SourceServerId pulumi.StringPtrInput + // The size of the data disk space for the MongoDB Cluster. + StorageSizeInGb pulumi.IntPtrInput + // A mapping of tags to assign to the MongoDB Cluster. + Tags pulumi.StringMapInput + // The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + Version pulumi.StringPtrInput +} + +func (MongoClusterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mongoClusterArgs)(nil)).Elem() +} + +type MongoClusterInput interface { + pulumi.Input + + ToMongoClusterOutput() MongoClusterOutput + ToMongoClusterOutputWithContext(ctx context.Context) MongoClusterOutput +} + +func (*MongoCluster) ElementType() reflect.Type { + return reflect.TypeOf((**MongoCluster)(nil)).Elem() +} + +func (i *MongoCluster) ToMongoClusterOutput() MongoClusterOutput { + return i.ToMongoClusterOutputWithContext(context.Background()) +} + +func (i *MongoCluster) ToMongoClusterOutputWithContext(ctx context.Context) MongoClusterOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongoClusterOutput) +} + +// MongoClusterArrayInput is an input type that accepts MongoClusterArray and MongoClusterArrayOutput values. +// You can construct a concrete instance of `MongoClusterArrayInput` via: +// +// MongoClusterArray{ MongoClusterArgs{...} } +type MongoClusterArrayInput interface { + pulumi.Input + + ToMongoClusterArrayOutput() MongoClusterArrayOutput + ToMongoClusterArrayOutputWithContext(context.Context) MongoClusterArrayOutput +} + +type MongoClusterArray []MongoClusterInput + +func (MongoClusterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MongoCluster)(nil)).Elem() +} + +func (i MongoClusterArray) ToMongoClusterArrayOutput() MongoClusterArrayOutput { + return i.ToMongoClusterArrayOutputWithContext(context.Background()) +} + +func (i MongoClusterArray) ToMongoClusterArrayOutputWithContext(ctx context.Context) MongoClusterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongoClusterArrayOutput) +} + +// MongoClusterMapInput is an input type that accepts MongoClusterMap and MongoClusterMapOutput values. +// You can construct a concrete instance of `MongoClusterMapInput` via: +// +// MongoClusterMap{ "key": MongoClusterArgs{...} } +type MongoClusterMapInput interface { + pulumi.Input + + ToMongoClusterMapOutput() MongoClusterMapOutput + ToMongoClusterMapOutputWithContext(context.Context) MongoClusterMapOutput +} + +type MongoClusterMap map[string]MongoClusterInput + +func (MongoClusterMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MongoCluster)(nil)).Elem() +} + +func (i MongoClusterMap) ToMongoClusterMapOutput() MongoClusterMapOutput { + return i.ToMongoClusterMapOutputWithContext(context.Background()) +} + +func (i MongoClusterMap) ToMongoClusterMapOutputWithContext(ctx context.Context) MongoClusterMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MongoClusterMapOutput) +} + +type MongoClusterOutput struct{ *pulumi.OutputState } + +func (MongoClusterOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MongoCluster)(nil)).Elem() +} + +func (o MongoClusterOutput) ToMongoClusterOutput() MongoClusterOutput { + return o +} + +func (o MongoClusterOutput) ToMongoClusterOutputWithContext(ctx context.Context) MongoClusterOutput { + return o +} + +// The Password associated with the `administratorUsername` for the MongoDB Cluster. +func (o MongoClusterOutput) AdministratorPassword() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.AdministratorPassword }).(pulumi.StringPtrOutput) +} + +// The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. +func (o MongoClusterOutput) AdministratorUsername() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.AdministratorUsername }).(pulumi.StringPtrOutput) +} + +// The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. +func (o MongoClusterOutput) ComputeTier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.ComputeTier }).(pulumi.StringPtrOutput) +} + +// 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 `previewFeatures` is set. +func (o MongoClusterOutput) CreateMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.CreateMode }).(pulumi.StringPtrOutput) +} + +// The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. +func (o MongoClusterOutput) HighAvailabilityMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.HighAvailabilityMode }).(pulumi.StringPtrOutput) +} + +// The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. +func (o MongoClusterOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. +func (o MongoClusterOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. +func (o MongoClusterOutput) PreviewFeatures() pulumi.StringArrayOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringArrayOutput { return v.PreviewFeatures }).(pulumi.StringArrayOutput) +} + +// The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. +func (o MongoClusterOutput) PublicNetworkAccess() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.PublicNetworkAccess }).(pulumi.StringPtrOutput) +} + +// The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. +func (o MongoClusterOutput) ResourceGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringOutput { return v.ResourceGroupName }).(pulumi.StringOutput) +} + +// The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. +func (o MongoClusterOutput) ShardCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.IntPtrOutput { return v.ShardCount }).(pulumi.IntPtrOutput) +} + +// The location of the source MongoDB Cluster. Changing this forces a new resource to be created. +func (o MongoClusterOutput) SourceLocation() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.SourceLocation }).(pulumi.StringPtrOutput) +} + +// The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. +func (o MongoClusterOutput) SourceServerId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.SourceServerId }).(pulumi.StringPtrOutput) +} + +// The size of the data disk space for the MongoDB Cluster. +func (o MongoClusterOutput) StorageSizeInGb() pulumi.IntPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.IntPtrOutput { return v.StorageSizeInGb }).(pulumi.IntPtrOutput) +} + +// A mapping of tags to assign to the MongoDB Cluster. +func (o MongoClusterOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. +func (o MongoClusterOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MongoCluster) pulumi.StringPtrOutput { return v.Version }).(pulumi.StringPtrOutput) +} + +type MongoClusterArrayOutput struct{ *pulumi.OutputState } + +func (MongoClusterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MongoCluster)(nil)).Elem() +} + +func (o MongoClusterArrayOutput) ToMongoClusterArrayOutput() MongoClusterArrayOutput { + return o +} + +func (o MongoClusterArrayOutput) ToMongoClusterArrayOutputWithContext(ctx context.Context) MongoClusterArrayOutput { + return o +} + +func (o MongoClusterArrayOutput) Index(i pulumi.IntInput) MongoClusterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MongoCluster { + return vs[0].([]*MongoCluster)[vs[1].(int)] + }).(MongoClusterOutput) +} + +type MongoClusterMapOutput struct{ *pulumi.OutputState } + +func (MongoClusterMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MongoCluster)(nil)).Elem() +} + +func (o MongoClusterMapOutput) ToMongoClusterMapOutput() MongoClusterMapOutput { + return o +} + +func (o MongoClusterMapOutput) ToMongoClusterMapOutputWithContext(ctx context.Context) MongoClusterMapOutput { + return o +} + +func (o MongoClusterMapOutput) MapIndex(k pulumi.StringInput) MongoClusterOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MongoCluster { + return vs[0].(map[string]*MongoCluster)[vs[1].(string)] + }).(MongoClusterOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MongoClusterInput)(nil)).Elem(), &MongoCluster{}) + pulumi.RegisterInputType(reflect.TypeOf((*MongoClusterArrayInput)(nil)).Elem(), MongoClusterArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MongoClusterMapInput)(nil)).Elem(), MongoClusterMap{}) + pulumi.RegisterOutputType(MongoClusterOutput{}) + pulumi.RegisterOutputType(MongoClusterArrayOutput{}) + pulumi.RegisterOutputType(MongoClusterMapOutput{}) +} diff --git a/sdk/go/azure/dashboard/grafanaManagedPrivateEndpoint.go b/sdk/go/azure/dashboard/grafanaManagedPrivateEndpoint.go new file mode 100644 index 0000000000..526951f717 --- /dev/null +++ b/sdk/go/azure/dashboard/grafanaManagedPrivateEndpoint.go @@ -0,0 +1,403 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dashboard + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// 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 +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/dashboard" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/monitoring" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example-resources"), +// Location: pulumi.String("Canada Central"), +// }) +// if err != nil { +// return err +// } +// exampleWorkspace, err := monitoring.NewWorkspace(ctx, "example", &monitoring.WorkspaceArgs{ +// Name: pulumi.String("example-mamw"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// PublicNetworkAccessEnabled: pulumi.Bool(false), +// }) +// if err != nil { +// return err +// } +// exampleGrafana, err := dashboard.NewGrafana(ctx, "example", &dashboard.GrafanaArgs{ +// Name: pulumi.String("example-dg"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// GrafanaMajorVersion: pulumi.String("10"), +// PublicNetworkAccessEnabled: pulumi.Bool(false), +// AzureMonitorWorkspaceIntegrations: dashboard.GrafanaAzureMonitorWorkspaceIntegrationArray{ +// &dashboard.GrafanaAzureMonitorWorkspaceIntegrationArgs{ +// ResourceId: exampleWorkspace.ID(), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = dashboard.NewGrafanaManagedPrivateEndpoint(ctx, "example", &dashboard.GrafanaManagedPrivateEndpointArgs{ +// GrafanaId: exampleGrafana.ID(), +// Name: pulumi.String("example-mpe"), +// Location: exampleGrafana.Location, +// PrivateLinkResourceId: exampleWorkspace.ID(), +// GroupIds: pulumi.StringArray{ +// pulumi.String("prometheusMetrics"), +// }, +// PrivateLinkResourceRegion: exampleGrafana.Location, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## 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 +// ``` +type GrafanaManagedPrivateEndpoint struct { + pulumi.CustomResourceState + + // The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + GrafanaId pulumi.StringOutput `pulumi:"grafanaId"` + // 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. + GroupIds pulumi.StringArrayOutput `pulumi:"groupIds"` + // 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. + Location pulumi.StringOutput `pulumi:"location"` + // 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. + Name pulumi.StringOutput `pulumi:"name"` + // 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. + PrivateLinkResourceId pulumi.StringOutput `pulumi:"privateLinkResourceId"` + // The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + PrivateLinkResourceRegion pulumi.StringPtrOutput `pulumi:"privateLinkResourceRegion"` + // A message to provide in the request which will be seen by approvers. + RequestMessage pulumi.StringPtrOutput `pulumi:"requestMessage"` + // A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + Tags pulumi.StringMapOutput `pulumi:"tags"` +} + +// NewGrafanaManagedPrivateEndpoint registers a new resource with the given unique name, arguments, and options. +func NewGrafanaManagedPrivateEndpoint(ctx *pulumi.Context, + name string, args *GrafanaManagedPrivateEndpointArgs, opts ...pulumi.ResourceOption) (*GrafanaManagedPrivateEndpoint, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.GrafanaId == nil { + return nil, errors.New("invalid value for required argument 'GrafanaId'") + } + if args.PrivateLinkResourceId == nil { + return nil, errors.New("invalid value for required argument 'PrivateLinkResourceId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource GrafanaManagedPrivateEndpoint + err := ctx.RegisterResource("azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGrafanaManagedPrivateEndpoint gets an existing GrafanaManagedPrivateEndpoint resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetGrafanaManagedPrivateEndpoint(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GrafanaManagedPrivateEndpointState, opts ...pulumi.ResourceOption) (*GrafanaManagedPrivateEndpoint, error) { + var resource GrafanaManagedPrivateEndpoint + err := ctx.ReadResource("azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GrafanaManagedPrivateEndpoint resources. +type grafanaManagedPrivateEndpointState struct { + // The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + GrafanaId *string `pulumi:"grafanaId"` + // 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. + GroupIds []string `pulumi:"groupIds"` + // 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. + Location *string `pulumi:"location"` + // 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. + Name *string `pulumi:"name"` + // 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. + PrivateLinkResourceId *string `pulumi:"privateLinkResourceId"` + // The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + PrivateLinkResourceRegion *string `pulumi:"privateLinkResourceRegion"` + // A message to provide in the request which will be seen by approvers. + RequestMessage *string `pulumi:"requestMessage"` + // A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + Tags map[string]string `pulumi:"tags"` +} + +type GrafanaManagedPrivateEndpointState struct { + // The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + GrafanaId pulumi.StringPtrInput + // 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. + GroupIds pulumi.StringArrayInput + // 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. + Location pulumi.StringPtrInput + // 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. + Name pulumi.StringPtrInput + // 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. + PrivateLinkResourceId pulumi.StringPtrInput + // The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + PrivateLinkResourceRegion pulumi.StringPtrInput + // A message to provide in the request which will be seen by approvers. + RequestMessage pulumi.StringPtrInput + // A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + Tags pulumi.StringMapInput +} + +func (GrafanaManagedPrivateEndpointState) ElementType() reflect.Type { + return reflect.TypeOf((*grafanaManagedPrivateEndpointState)(nil)).Elem() +} + +type grafanaManagedPrivateEndpointArgs struct { + // The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + GrafanaId string `pulumi:"grafanaId"` + // 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. + GroupIds []string `pulumi:"groupIds"` + // 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. + Location *string `pulumi:"location"` + // 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. + Name *string `pulumi:"name"` + // 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. + PrivateLinkResourceId string `pulumi:"privateLinkResourceId"` + // The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + PrivateLinkResourceRegion *string `pulumi:"privateLinkResourceRegion"` + // A message to provide in the request which will be seen by approvers. + RequestMessage *string `pulumi:"requestMessage"` + // A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a GrafanaManagedPrivateEndpoint resource. +type GrafanaManagedPrivateEndpointArgs struct { + // The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + GrafanaId pulumi.StringInput + // 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. + GroupIds pulumi.StringArrayInput + // 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. + Location pulumi.StringPtrInput + // 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. + Name pulumi.StringPtrInput + // 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. + PrivateLinkResourceId pulumi.StringInput + // The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + PrivateLinkResourceRegion pulumi.StringPtrInput + // A message to provide in the request which will be seen by approvers. + RequestMessage pulumi.StringPtrInput + // A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + Tags pulumi.StringMapInput +} + +func (GrafanaManagedPrivateEndpointArgs) ElementType() reflect.Type { + return reflect.TypeOf((*grafanaManagedPrivateEndpointArgs)(nil)).Elem() +} + +type GrafanaManagedPrivateEndpointInput interface { + pulumi.Input + + ToGrafanaManagedPrivateEndpointOutput() GrafanaManagedPrivateEndpointOutput + ToGrafanaManagedPrivateEndpointOutputWithContext(ctx context.Context) GrafanaManagedPrivateEndpointOutput +} + +func (*GrafanaManagedPrivateEndpoint) ElementType() reflect.Type { + return reflect.TypeOf((**GrafanaManagedPrivateEndpoint)(nil)).Elem() +} + +func (i *GrafanaManagedPrivateEndpoint) ToGrafanaManagedPrivateEndpointOutput() GrafanaManagedPrivateEndpointOutput { + return i.ToGrafanaManagedPrivateEndpointOutputWithContext(context.Background()) +} + +func (i *GrafanaManagedPrivateEndpoint) ToGrafanaManagedPrivateEndpointOutputWithContext(ctx context.Context) GrafanaManagedPrivateEndpointOutput { + return pulumi.ToOutputWithContext(ctx, i).(GrafanaManagedPrivateEndpointOutput) +} + +// GrafanaManagedPrivateEndpointArrayInput is an input type that accepts GrafanaManagedPrivateEndpointArray and GrafanaManagedPrivateEndpointArrayOutput values. +// You can construct a concrete instance of `GrafanaManagedPrivateEndpointArrayInput` via: +// +// GrafanaManagedPrivateEndpointArray{ GrafanaManagedPrivateEndpointArgs{...} } +type GrafanaManagedPrivateEndpointArrayInput interface { + pulumi.Input + + ToGrafanaManagedPrivateEndpointArrayOutput() GrafanaManagedPrivateEndpointArrayOutput + ToGrafanaManagedPrivateEndpointArrayOutputWithContext(context.Context) GrafanaManagedPrivateEndpointArrayOutput +} + +type GrafanaManagedPrivateEndpointArray []GrafanaManagedPrivateEndpointInput + +func (GrafanaManagedPrivateEndpointArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GrafanaManagedPrivateEndpoint)(nil)).Elem() +} + +func (i GrafanaManagedPrivateEndpointArray) ToGrafanaManagedPrivateEndpointArrayOutput() GrafanaManagedPrivateEndpointArrayOutput { + return i.ToGrafanaManagedPrivateEndpointArrayOutputWithContext(context.Background()) +} + +func (i GrafanaManagedPrivateEndpointArray) ToGrafanaManagedPrivateEndpointArrayOutputWithContext(ctx context.Context) GrafanaManagedPrivateEndpointArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GrafanaManagedPrivateEndpointArrayOutput) +} + +// GrafanaManagedPrivateEndpointMapInput is an input type that accepts GrafanaManagedPrivateEndpointMap and GrafanaManagedPrivateEndpointMapOutput values. +// You can construct a concrete instance of `GrafanaManagedPrivateEndpointMapInput` via: +// +// GrafanaManagedPrivateEndpointMap{ "key": GrafanaManagedPrivateEndpointArgs{...} } +type GrafanaManagedPrivateEndpointMapInput interface { + pulumi.Input + + ToGrafanaManagedPrivateEndpointMapOutput() GrafanaManagedPrivateEndpointMapOutput + ToGrafanaManagedPrivateEndpointMapOutputWithContext(context.Context) GrafanaManagedPrivateEndpointMapOutput +} + +type GrafanaManagedPrivateEndpointMap map[string]GrafanaManagedPrivateEndpointInput + +func (GrafanaManagedPrivateEndpointMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GrafanaManagedPrivateEndpoint)(nil)).Elem() +} + +func (i GrafanaManagedPrivateEndpointMap) ToGrafanaManagedPrivateEndpointMapOutput() GrafanaManagedPrivateEndpointMapOutput { + return i.ToGrafanaManagedPrivateEndpointMapOutputWithContext(context.Background()) +} + +func (i GrafanaManagedPrivateEndpointMap) ToGrafanaManagedPrivateEndpointMapOutputWithContext(ctx context.Context) GrafanaManagedPrivateEndpointMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(GrafanaManagedPrivateEndpointMapOutput) +} + +type GrafanaManagedPrivateEndpointOutput struct{ *pulumi.OutputState } + +func (GrafanaManagedPrivateEndpointOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GrafanaManagedPrivateEndpoint)(nil)).Elem() +} + +func (o GrafanaManagedPrivateEndpointOutput) ToGrafanaManagedPrivateEndpointOutput() GrafanaManagedPrivateEndpointOutput { + return o +} + +func (o GrafanaManagedPrivateEndpointOutput) ToGrafanaManagedPrivateEndpointOutputWithContext(ctx context.Context) GrafanaManagedPrivateEndpointOutput { + return o +} + +// The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. +func (o GrafanaManagedPrivateEndpointOutput) GrafanaId() pulumi.StringOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringOutput { return v.GrafanaId }).(pulumi.StringOutput) +} + +// 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. +func (o GrafanaManagedPrivateEndpointOutput) GroupIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringArrayOutput { return v.GroupIds }).(pulumi.StringArrayOutput) +} + +// 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. +func (o GrafanaManagedPrivateEndpointOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// 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. +func (o GrafanaManagedPrivateEndpointOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// 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. +func (o GrafanaManagedPrivateEndpointOutput) PrivateLinkResourceId() pulumi.StringOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringOutput { return v.PrivateLinkResourceId }).(pulumi.StringOutput) +} + +// The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. +func (o GrafanaManagedPrivateEndpointOutput) PrivateLinkResourceRegion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringPtrOutput { return v.PrivateLinkResourceRegion }).(pulumi.StringPtrOutput) +} + +// A message to provide in the request which will be seen by approvers. +func (o GrafanaManagedPrivateEndpointOutput) RequestMessage() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringPtrOutput { return v.RequestMessage }).(pulumi.StringPtrOutput) +} + +// A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. +func (o GrafanaManagedPrivateEndpointOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *GrafanaManagedPrivateEndpoint) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +type GrafanaManagedPrivateEndpointArrayOutput struct{ *pulumi.OutputState } + +func (GrafanaManagedPrivateEndpointArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*GrafanaManagedPrivateEndpoint)(nil)).Elem() +} + +func (o GrafanaManagedPrivateEndpointArrayOutput) ToGrafanaManagedPrivateEndpointArrayOutput() GrafanaManagedPrivateEndpointArrayOutput { + return o +} + +func (o GrafanaManagedPrivateEndpointArrayOutput) ToGrafanaManagedPrivateEndpointArrayOutputWithContext(ctx context.Context) GrafanaManagedPrivateEndpointArrayOutput { + return o +} + +func (o GrafanaManagedPrivateEndpointArrayOutput) Index(i pulumi.IntInput) GrafanaManagedPrivateEndpointOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *GrafanaManagedPrivateEndpoint { + return vs[0].([]*GrafanaManagedPrivateEndpoint)[vs[1].(int)] + }).(GrafanaManagedPrivateEndpointOutput) +} + +type GrafanaManagedPrivateEndpointMapOutput struct{ *pulumi.OutputState } + +func (GrafanaManagedPrivateEndpointMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*GrafanaManagedPrivateEndpoint)(nil)).Elem() +} + +func (o GrafanaManagedPrivateEndpointMapOutput) ToGrafanaManagedPrivateEndpointMapOutput() GrafanaManagedPrivateEndpointMapOutput { + return o +} + +func (o GrafanaManagedPrivateEndpointMapOutput) ToGrafanaManagedPrivateEndpointMapOutputWithContext(ctx context.Context) GrafanaManagedPrivateEndpointMapOutput { + return o +} + +func (o GrafanaManagedPrivateEndpointMapOutput) MapIndex(k pulumi.StringInput) GrafanaManagedPrivateEndpointOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *GrafanaManagedPrivateEndpoint { + return vs[0].(map[string]*GrafanaManagedPrivateEndpoint)[vs[1].(string)] + }).(GrafanaManagedPrivateEndpointOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GrafanaManagedPrivateEndpointInput)(nil)).Elem(), &GrafanaManagedPrivateEndpoint{}) + pulumi.RegisterInputType(reflect.TypeOf((*GrafanaManagedPrivateEndpointArrayInput)(nil)).Elem(), GrafanaManagedPrivateEndpointArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GrafanaManagedPrivateEndpointMapInput)(nil)).Elem(), GrafanaManagedPrivateEndpointMap{}) + pulumi.RegisterOutputType(GrafanaManagedPrivateEndpointOutput{}) + pulumi.RegisterOutputType(GrafanaManagedPrivateEndpointArrayOutput{}) + pulumi.RegisterOutputType(GrafanaManagedPrivateEndpointMapOutput{}) +} diff --git a/sdk/go/azure/dashboard/init.go b/sdk/go/azure/dashboard/init.go index 1653d1c502..51fcba6f87 100644 --- a/sdk/go/azure/dashboard/init.go +++ b/sdk/go/azure/dashboard/init.go @@ -23,6 +23,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "azure:dashboard/grafana:Grafana": r = &Grafana{} + case "azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint": + r = &GrafanaManagedPrivateEndpoint{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } @@ -41,4 +43,9 @@ func init() { "dashboard/grafana", &module{version}, ) + pulumi.RegisterResourceModule( + "azure", + "dashboard/grafanaManagedPrivateEndpoint", + &module{version}, + ) } diff --git a/sdk/go/azure/dataprotection/backupInstanceMysqlFlexibleServer.go b/sdk/go/azure/dataprotection/backupInstanceMysqlFlexibleServer.go new file mode 100644 index 0000000000..1a74e2b089 --- /dev/null +++ b/sdk/go/azure/dataprotection/backupInstanceMysqlFlexibleServer.go @@ -0,0 +1,401 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dataprotection + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages a Backup Instance to back up MySQL Flexible Server. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/dataprotection" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/mysql" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example-resources"), +// Location: pulumi.String("West Europe"), +// }) +// if err != nil { +// return err +// } +// exampleFlexibleServer, err := mysql.NewFlexibleServer(ctx, "example", &mysql.FlexibleServerArgs{ +// Name: pulumi.String("example-mysqlfs"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// AdministratorLogin: pulumi.String("adminTerraform"), +// AdministratorPassword: pulumi.String("QAZwsx123"), +// Version: pulumi.String("8.0.21"), +// SkuName: pulumi.String("B_Standard_B1s"), +// Zone: pulumi.String("1"), +// }) +// if err != nil { +// return err +// } +// exampleBackupVault, err := dataprotection.NewBackupVault(ctx, "example", &dataprotection.BackupVaultArgs{ +// Name: pulumi.String("example-backupvault"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// DatastoreType: pulumi.String("VaultStore"), +// Redundancy: pulumi.String("LocallyRedundant"), +// SoftDelete: pulumi.String("Off"), +// Identity: &dataprotection.BackupVaultIdentityArgs{ +// Type: pulumi.String("SystemAssigned"), +// }, +// }) +// if err != nil { +// return err +// } +// exampleAssignment, err := authorization.NewAssignment(ctx, "example", &authorization.AssignmentArgs{ +// Scope: example.ID(), +// RoleDefinitionName: pulumi.String("Reader"), +// PrincipalId: pulumi.String(exampleBackupVault.Identity.ApplyT(func(identity dataprotection.BackupVaultIdentity) (*string, error) { +// return &identity.PrincipalId, nil +// }).(pulumi.StringPtrOutput)), +// }) +// if err != nil { +// return err +// } +// example2, err := authorization.NewAssignment(ctx, "example2", &authorization.AssignmentArgs{ +// Scope: exampleFlexibleServer.ID(), +// RoleDefinitionName: pulumi.String("MySQL Backup And Export Operator"), +// PrincipalId: pulumi.String(exampleBackupVault.Identity.ApplyT(func(identity dataprotection.BackupVaultIdentity) (*string, error) { +// return &identity.PrincipalId, nil +// }).(pulumi.StringPtrOutput)), +// }) +// if err != nil { +// return err +// } +// exampleBackupPolicyMysqlFlexibleServer, err := dataprotection.NewBackupPolicyMysqlFlexibleServer(ctx, "example", &dataprotection.BackupPolicyMysqlFlexibleServerArgs{ +// Name: pulumi.String("example-dp"), +// VaultId: exampleBackupVault.ID(), +// BackupRepeatingTimeIntervals: pulumi.StringArray{ +// pulumi.String("R/2021-05-23T02:30:00+00:00/P1W"), +// }, +// DefaultRetentionRule: &dataprotection.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs{ +// LifeCycles: dataprotection.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArray{ +// &dataprotection.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArgs{ +// Duration: pulumi.String("P4M"), +// DataStoreType: pulumi.String("VaultStore"), +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleAssignment, +// example2, +// })) +// if err != nil { +// return err +// } +// _, err = dataprotection.NewBackupInstanceMysqlFlexibleServer(ctx, "example", &dataprotection.BackupInstanceMysqlFlexibleServerArgs{ +// Name: pulumi.String("example-dbi"), +// Location: example.Location, +// VaultId: exampleBackupVault.ID(), +// ServerId: exampleFlexibleServer.ID(), +// BackupPolicyId: exampleBackupPolicyMysqlFlexibleServer.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## 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 +// ``` +type BackupInstanceMysqlFlexibleServer struct { + pulumi.CustomResourceState + + // The ID of the Backup Policy. + BackupPolicyId pulumi.StringOutput `pulumi:"backupPolicyId"` + // The location of the source database. Changing this forces a new resource to be created. + Location pulumi.StringOutput `pulumi:"location"` + // Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + Name pulumi.StringOutput `pulumi:"name"` + // The ID of the source server. Changing this forces a new resource to be created. + ServerId pulumi.StringOutput `pulumi:"serverId"` + // 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. + VaultId pulumi.StringOutput `pulumi:"vaultId"` +} + +// NewBackupInstanceMysqlFlexibleServer registers a new resource with the given unique name, arguments, and options. +func NewBackupInstanceMysqlFlexibleServer(ctx *pulumi.Context, + name string, args *BackupInstanceMysqlFlexibleServerArgs, opts ...pulumi.ResourceOption) (*BackupInstanceMysqlFlexibleServer, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.BackupPolicyId == nil { + return nil, errors.New("invalid value for required argument 'BackupPolicyId'") + } + if args.ServerId == nil { + return nil, errors.New("invalid value for required argument 'ServerId'") + } + if args.VaultId == nil { + return nil, errors.New("invalid value for required argument 'VaultId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource BackupInstanceMysqlFlexibleServer + err := ctx.RegisterResource("azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetBackupInstanceMysqlFlexibleServer gets an existing BackupInstanceMysqlFlexibleServer resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetBackupInstanceMysqlFlexibleServer(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *BackupInstanceMysqlFlexibleServerState, opts ...pulumi.ResourceOption) (*BackupInstanceMysqlFlexibleServer, error) { + var resource BackupInstanceMysqlFlexibleServer + err := ctx.ReadResource("azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering BackupInstanceMysqlFlexibleServer resources. +type backupInstanceMysqlFlexibleServerState struct { + // The ID of the Backup Policy. + BackupPolicyId *string `pulumi:"backupPolicyId"` + // The location of the source database. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The ID of the source server. Changing this forces a new resource to be created. + ServerId *string `pulumi:"serverId"` + // 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. + VaultId *string `pulumi:"vaultId"` +} + +type BackupInstanceMysqlFlexibleServerState struct { + // The ID of the Backup Policy. + BackupPolicyId pulumi.StringPtrInput + // The location of the source database. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The ID of the source server. Changing this forces a new resource to be created. + ServerId pulumi.StringPtrInput + // 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. + VaultId pulumi.StringPtrInput +} + +func (BackupInstanceMysqlFlexibleServerState) ElementType() reflect.Type { + return reflect.TypeOf((*backupInstanceMysqlFlexibleServerState)(nil)).Elem() +} + +type backupInstanceMysqlFlexibleServerArgs struct { + // The ID of the Backup Policy. + BackupPolicyId string `pulumi:"backupPolicyId"` + // The location of the source database. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The ID of the source server. Changing this forces a new resource to be created. + ServerId string `pulumi:"serverId"` + // 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. + VaultId string `pulumi:"vaultId"` +} + +// The set of arguments for constructing a BackupInstanceMysqlFlexibleServer resource. +type BackupInstanceMysqlFlexibleServerArgs struct { + // The ID of the Backup Policy. + BackupPolicyId pulumi.StringInput + // The location of the source database. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The ID of the source server. Changing this forces a new resource to be created. + ServerId pulumi.StringInput + // 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. + VaultId pulumi.StringInput +} + +func (BackupInstanceMysqlFlexibleServerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*backupInstanceMysqlFlexibleServerArgs)(nil)).Elem() +} + +type BackupInstanceMysqlFlexibleServerInput interface { + pulumi.Input + + ToBackupInstanceMysqlFlexibleServerOutput() BackupInstanceMysqlFlexibleServerOutput + ToBackupInstanceMysqlFlexibleServerOutputWithContext(ctx context.Context) BackupInstanceMysqlFlexibleServerOutput +} + +func (*BackupInstanceMysqlFlexibleServer) ElementType() reflect.Type { + return reflect.TypeOf((**BackupInstanceMysqlFlexibleServer)(nil)).Elem() +} + +func (i *BackupInstanceMysqlFlexibleServer) ToBackupInstanceMysqlFlexibleServerOutput() BackupInstanceMysqlFlexibleServerOutput { + return i.ToBackupInstanceMysqlFlexibleServerOutputWithContext(context.Background()) +} + +func (i *BackupInstanceMysqlFlexibleServer) ToBackupInstanceMysqlFlexibleServerOutputWithContext(ctx context.Context) BackupInstanceMysqlFlexibleServerOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupInstanceMysqlFlexibleServerOutput) +} + +// BackupInstanceMysqlFlexibleServerArrayInput is an input type that accepts BackupInstanceMysqlFlexibleServerArray and BackupInstanceMysqlFlexibleServerArrayOutput values. +// You can construct a concrete instance of `BackupInstanceMysqlFlexibleServerArrayInput` via: +// +// BackupInstanceMysqlFlexibleServerArray{ BackupInstanceMysqlFlexibleServerArgs{...} } +type BackupInstanceMysqlFlexibleServerArrayInput interface { + pulumi.Input + + ToBackupInstanceMysqlFlexibleServerArrayOutput() BackupInstanceMysqlFlexibleServerArrayOutput + ToBackupInstanceMysqlFlexibleServerArrayOutputWithContext(context.Context) BackupInstanceMysqlFlexibleServerArrayOutput +} + +type BackupInstanceMysqlFlexibleServerArray []BackupInstanceMysqlFlexibleServerInput + +func (BackupInstanceMysqlFlexibleServerArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupInstanceMysqlFlexibleServer)(nil)).Elem() +} + +func (i BackupInstanceMysqlFlexibleServerArray) ToBackupInstanceMysqlFlexibleServerArrayOutput() BackupInstanceMysqlFlexibleServerArrayOutput { + return i.ToBackupInstanceMysqlFlexibleServerArrayOutputWithContext(context.Background()) +} + +func (i BackupInstanceMysqlFlexibleServerArray) ToBackupInstanceMysqlFlexibleServerArrayOutputWithContext(ctx context.Context) BackupInstanceMysqlFlexibleServerArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupInstanceMysqlFlexibleServerArrayOutput) +} + +// BackupInstanceMysqlFlexibleServerMapInput is an input type that accepts BackupInstanceMysqlFlexibleServerMap and BackupInstanceMysqlFlexibleServerMapOutput values. +// You can construct a concrete instance of `BackupInstanceMysqlFlexibleServerMapInput` via: +// +// BackupInstanceMysqlFlexibleServerMap{ "key": BackupInstanceMysqlFlexibleServerArgs{...} } +type BackupInstanceMysqlFlexibleServerMapInput interface { + pulumi.Input + + ToBackupInstanceMysqlFlexibleServerMapOutput() BackupInstanceMysqlFlexibleServerMapOutput + ToBackupInstanceMysqlFlexibleServerMapOutputWithContext(context.Context) BackupInstanceMysqlFlexibleServerMapOutput +} + +type BackupInstanceMysqlFlexibleServerMap map[string]BackupInstanceMysqlFlexibleServerInput + +func (BackupInstanceMysqlFlexibleServerMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupInstanceMysqlFlexibleServer)(nil)).Elem() +} + +func (i BackupInstanceMysqlFlexibleServerMap) ToBackupInstanceMysqlFlexibleServerMapOutput() BackupInstanceMysqlFlexibleServerMapOutput { + return i.ToBackupInstanceMysqlFlexibleServerMapOutputWithContext(context.Background()) +} + +func (i BackupInstanceMysqlFlexibleServerMap) ToBackupInstanceMysqlFlexibleServerMapOutputWithContext(ctx context.Context) BackupInstanceMysqlFlexibleServerMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(BackupInstanceMysqlFlexibleServerMapOutput) +} + +type BackupInstanceMysqlFlexibleServerOutput struct{ *pulumi.OutputState } + +func (BackupInstanceMysqlFlexibleServerOutput) ElementType() reflect.Type { + return reflect.TypeOf((**BackupInstanceMysqlFlexibleServer)(nil)).Elem() +} + +func (o BackupInstanceMysqlFlexibleServerOutput) ToBackupInstanceMysqlFlexibleServerOutput() BackupInstanceMysqlFlexibleServerOutput { + return o +} + +func (o BackupInstanceMysqlFlexibleServerOutput) ToBackupInstanceMysqlFlexibleServerOutputWithContext(ctx context.Context) BackupInstanceMysqlFlexibleServerOutput { + return o +} + +// The ID of the Backup Policy. +func (o BackupInstanceMysqlFlexibleServerOutput) BackupPolicyId() pulumi.StringOutput { + return o.ApplyT(func(v *BackupInstanceMysqlFlexibleServer) pulumi.StringOutput { return v.BackupPolicyId }).(pulumi.StringOutput) +} + +// The location of the source database. Changing this forces a new resource to be created. +func (o BackupInstanceMysqlFlexibleServerOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *BackupInstanceMysqlFlexibleServer) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. +func (o BackupInstanceMysqlFlexibleServerOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *BackupInstanceMysqlFlexibleServer) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The ID of the source server. Changing this forces a new resource to be created. +func (o BackupInstanceMysqlFlexibleServerOutput) ServerId() pulumi.StringOutput { + return o.ApplyT(func(v *BackupInstanceMysqlFlexibleServer) pulumi.StringOutput { return v.ServerId }).(pulumi.StringOutput) +} + +// 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. +func (o BackupInstanceMysqlFlexibleServerOutput) VaultId() pulumi.StringOutput { + return o.ApplyT(func(v *BackupInstanceMysqlFlexibleServer) pulumi.StringOutput { return v.VaultId }).(pulumi.StringOutput) +} + +type BackupInstanceMysqlFlexibleServerArrayOutput struct{ *pulumi.OutputState } + +func (BackupInstanceMysqlFlexibleServerArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*BackupInstanceMysqlFlexibleServer)(nil)).Elem() +} + +func (o BackupInstanceMysqlFlexibleServerArrayOutput) ToBackupInstanceMysqlFlexibleServerArrayOutput() BackupInstanceMysqlFlexibleServerArrayOutput { + return o +} + +func (o BackupInstanceMysqlFlexibleServerArrayOutput) ToBackupInstanceMysqlFlexibleServerArrayOutputWithContext(ctx context.Context) BackupInstanceMysqlFlexibleServerArrayOutput { + return o +} + +func (o BackupInstanceMysqlFlexibleServerArrayOutput) Index(i pulumi.IntInput) BackupInstanceMysqlFlexibleServerOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *BackupInstanceMysqlFlexibleServer { + return vs[0].([]*BackupInstanceMysqlFlexibleServer)[vs[1].(int)] + }).(BackupInstanceMysqlFlexibleServerOutput) +} + +type BackupInstanceMysqlFlexibleServerMapOutput struct{ *pulumi.OutputState } + +func (BackupInstanceMysqlFlexibleServerMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*BackupInstanceMysqlFlexibleServer)(nil)).Elem() +} + +func (o BackupInstanceMysqlFlexibleServerMapOutput) ToBackupInstanceMysqlFlexibleServerMapOutput() BackupInstanceMysqlFlexibleServerMapOutput { + return o +} + +func (o BackupInstanceMysqlFlexibleServerMapOutput) ToBackupInstanceMysqlFlexibleServerMapOutputWithContext(ctx context.Context) BackupInstanceMysqlFlexibleServerMapOutput { + return o +} + +func (o BackupInstanceMysqlFlexibleServerMapOutput) MapIndex(k pulumi.StringInput) BackupInstanceMysqlFlexibleServerOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *BackupInstanceMysqlFlexibleServer { + return vs[0].(map[string]*BackupInstanceMysqlFlexibleServer)[vs[1].(string)] + }).(BackupInstanceMysqlFlexibleServerOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*BackupInstanceMysqlFlexibleServerInput)(nil)).Elem(), &BackupInstanceMysqlFlexibleServer{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupInstanceMysqlFlexibleServerArrayInput)(nil)).Elem(), BackupInstanceMysqlFlexibleServerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*BackupInstanceMysqlFlexibleServerMapInput)(nil)).Elem(), BackupInstanceMysqlFlexibleServerMap{}) + pulumi.RegisterOutputType(BackupInstanceMysqlFlexibleServerOutput{}) + pulumi.RegisterOutputType(BackupInstanceMysqlFlexibleServerArrayOutput{}) + pulumi.RegisterOutputType(BackupInstanceMysqlFlexibleServerMapOutput{}) +} diff --git a/sdk/go/azure/dataprotection/init.go b/sdk/go/azure/dataprotection/init.go index 8066af67f9..49db5a193e 100644 --- a/sdk/go/azure/dataprotection/init.go +++ b/sdk/go/azure/dataprotection/init.go @@ -27,6 +27,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &BackupInstanceDisk{} case "azure:dataprotection/backupInstanceKubernetesCluster:BackupInstanceKubernetesCluster": r = &BackupInstanceKubernetesCluster{} + case "azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer": + r = &BackupInstanceMysqlFlexibleServer{} case "azure:dataprotection/backupInstancePostgresql:BackupInstancePostgresql": r = &BackupInstancePostgresql{} case "azure:dataprotection/backupInstancePostgresqlFlexibleServer:BackupInstancePostgresqlFlexibleServer": @@ -75,6 +77,11 @@ func init() { "dataprotection/backupInstanceKubernetesCluster", &module{version}, ) + pulumi.RegisterResourceModule( + "azure", + "dataprotection/backupInstanceMysqlFlexibleServer", + &module{version}, + ) pulumi.RegisterResourceModule( "azure", "dataprotection/backupInstancePostgresql", diff --git a/sdk/go/azure/dynatrace/init.go b/sdk/go/azure/dynatrace/init.go new file mode 100644 index 0000000000..aba3ab8365 --- /dev/null +++ b/sdk/go/azure/dynatrace/init.go @@ -0,0 +1,44 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dynatrace + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "azure:dynatrace/monitor:Monitor": + r = &Monitor{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := internal.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "azure", + "dynatrace/monitor", + &module{version}, + ) +} diff --git a/sdk/go/azure/dynatrace/monitor.go b/sdk/go/azure/dynatrace/monitor.go new file mode 100644 index 0000000000..2b9fc13a6d --- /dev/null +++ b/sdk/go/azure/dynatrace/monitor.go @@ -0,0 +1,359 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dynatrace + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// 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 +// ``` +type Monitor struct { + pulumi.CustomResourceState + + // The kind of managed identity assigned to this resource. A `identity` block as defined below. + Identity MonitorIdentityOutput `pulumi:"identity"` + // The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + Location pulumi.StringOutput `pulumi:"location"` + // 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`. + MarketplaceSubscription pulumi.StringOutput `pulumi:"marketplaceSubscription"` + // Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + MonitoringEnabled pulumi.BoolPtrOutput `pulumi:"monitoringEnabled"` + // Name of the Dynatrace monitor. Changing this forces a new resource to be created. + Name pulumi.StringOutput `pulumi:"name"` + // Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + Plan MonitorPlanOutput `pulumi:"plan"` + // The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` + // A mapping of tags to assign to the resource. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + User MonitorUserOutput `pulumi:"user"` +} + +// NewMonitor registers a new resource with the given unique name, arguments, and options. +func NewMonitor(ctx *pulumi.Context, + name string, args *MonitorArgs, opts ...pulumi.ResourceOption) (*Monitor, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Identity == nil { + return nil, errors.New("invalid value for required argument 'Identity'") + } + if args.MarketplaceSubscription == nil { + return nil, errors.New("invalid value for required argument 'MarketplaceSubscription'") + } + if args.Plan == nil { + return nil, errors.New("invalid value for required argument 'Plan'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + if args.User == nil { + return nil, errors.New("invalid value for required argument 'User'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource Monitor + err := ctx.RegisterResource("azure:dynatrace/monitor:Monitor", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMonitor gets an existing Monitor resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMonitor(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MonitorState, opts ...pulumi.ResourceOption) (*Monitor, error) { + var resource Monitor + err := ctx.ReadResource("azure:dynatrace/monitor:Monitor", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Monitor resources. +type monitorState struct { + // The kind of managed identity assigned to this resource. A `identity` block as defined below. + Identity *MonitorIdentity `pulumi:"identity"` + // The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // 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`. + MarketplaceSubscription *string `pulumi:"marketplaceSubscription"` + // Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + MonitoringEnabled *bool `pulumi:"monitoringEnabled"` + // Name of the Dynatrace monitor. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + Plan *MonitorPlan `pulumi:"plan"` + // The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + ResourceGroupName *string `pulumi:"resourceGroupName"` + // A mapping of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` + // User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + User *MonitorUser `pulumi:"user"` +} + +type MonitorState struct { + // The kind of managed identity assigned to this resource. A `identity` block as defined below. + Identity MonitorIdentityPtrInput + // The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // 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`. + MarketplaceSubscription pulumi.StringPtrInput + // Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + MonitoringEnabled pulumi.BoolPtrInput + // Name of the Dynatrace monitor. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + Plan MonitorPlanPtrInput + // The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringPtrInput + // A mapping of tags to assign to the resource. + Tags pulumi.StringMapInput + // User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + User MonitorUserPtrInput +} + +func (MonitorState) ElementType() reflect.Type { + return reflect.TypeOf((*monitorState)(nil)).Elem() +} + +type monitorArgs struct { + // The kind of managed identity assigned to this resource. A `identity` block as defined below. + Identity MonitorIdentity `pulumi:"identity"` + // The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // 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`. + MarketplaceSubscription string `pulumi:"marketplaceSubscription"` + // Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + MonitoringEnabled *bool `pulumi:"monitoringEnabled"` + // Name of the Dynatrace monitor. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + Plan MonitorPlan `pulumi:"plan"` + // The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + ResourceGroupName string `pulumi:"resourceGroupName"` + // A mapping of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` + // User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + User MonitorUser `pulumi:"user"` +} + +// The set of arguments for constructing a Monitor resource. +type MonitorArgs struct { + // The kind of managed identity assigned to this resource. A `identity` block as defined below. + Identity MonitorIdentityInput + // The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // 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`. + MarketplaceSubscription pulumi.StringInput + // Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + MonitoringEnabled pulumi.BoolPtrInput + // Name of the Dynatrace monitor. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + Plan MonitorPlanInput + // The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringInput + // A mapping of tags to assign to the resource. + Tags pulumi.StringMapInput + // User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + User MonitorUserInput +} + +func (MonitorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*monitorArgs)(nil)).Elem() +} + +type MonitorInput interface { + pulumi.Input + + ToMonitorOutput() MonitorOutput + ToMonitorOutputWithContext(ctx context.Context) MonitorOutput +} + +func (*Monitor) ElementType() reflect.Type { + return reflect.TypeOf((**Monitor)(nil)).Elem() +} + +func (i *Monitor) ToMonitorOutput() MonitorOutput { + return i.ToMonitorOutputWithContext(context.Background()) +} + +func (i *Monitor) ToMonitorOutputWithContext(ctx context.Context) MonitorOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorOutput) +} + +// MonitorArrayInput is an input type that accepts MonitorArray and MonitorArrayOutput values. +// You can construct a concrete instance of `MonitorArrayInput` via: +// +// MonitorArray{ MonitorArgs{...} } +type MonitorArrayInput interface { + pulumi.Input + + ToMonitorArrayOutput() MonitorArrayOutput + ToMonitorArrayOutputWithContext(context.Context) MonitorArrayOutput +} + +type MonitorArray []MonitorInput + +func (MonitorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Monitor)(nil)).Elem() +} + +func (i MonitorArray) ToMonitorArrayOutput() MonitorArrayOutput { + return i.ToMonitorArrayOutputWithContext(context.Background()) +} + +func (i MonitorArray) ToMonitorArrayOutputWithContext(ctx context.Context) MonitorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorArrayOutput) +} + +// MonitorMapInput is an input type that accepts MonitorMap and MonitorMapOutput values. +// You can construct a concrete instance of `MonitorMapInput` via: +// +// MonitorMap{ "key": MonitorArgs{...} } +type MonitorMapInput interface { + pulumi.Input + + ToMonitorMapOutput() MonitorMapOutput + ToMonitorMapOutputWithContext(context.Context) MonitorMapOutput +} + +type MonitorMap map[string]MonitorInput + +func (MonitorMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Monitor)(nil)).Elem() +} + +func (i MonitorMap) ToMonitorMapOutput() MonitorMapOutput { + return i.ToMonitorMapOutputWithContext(context.Background()) +} + +func (i MonitorMap) ToMonitorMapOutputWithContext(ctx context.Context) MonitorMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorMapOutput) +} + +type MonitorOutput struct{ *pulumi.OutputState } + +func (MonitorOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Monitor)(nil)).Elem() +} + +func (o MonitorOutput) ToMonitorOutput() MonitorOutput { + return o +} + +func (o MonitorOutput) ToMonitorOutputWithContext(ctx context.Context) MonitorOutput { + return o +} + +// The kind of managed identity assigned to this resource. A `identity` block as defined below. +func (o MonitorOutput) Identity() MonitorIdentityOutput { + return o.ApplyT(func(v *Monitor) MonitorIdentityOutput { return v.Identity }).(MonitorIdentityOutput) +} + +// The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. +func (o MonitorOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *Monitor) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// 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`. +func (o MonitorOutput) MarketplaceSubscription() pulumi.StringOutput { + return o.ApplyT(func(v *Monitor) pulumi.StringOutput { return v.MarketplaceSubscription }).(pulumi.StringOutput) +} + +// Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. +func (o MonitorOutput) MonitoringEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *Monitor) pulumi.BoolPtrOutput { return v.MonitoringEnabled }).(pulumi.BoolPtrOutput) +} + +// Name of the Dynatrace monitor. Changing this forces a new resource to be created. +func (o MonitorOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *Monitor) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. +func (o MonitorOutput) Plan() MonitorPlanOutput { + return o.ApplyT(func(v *Monitor) MonitorPlanOutput { return v.Plan }).(MonitorPlanOutput) +} + +// The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. +func (o MonitorOutput) ResourceGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *Monitor) pulumi.StringOutput { return v.ResourceGroupName }).(pulumi.StringOutput) +} + +// A mapping of tags to assign to the resource. +func (o MonitorOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *Monitor) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// User's information. A `user` block as defined below. Chainging this forces a new resource to be created. +func (o MonitorOutput) User() MonitorUserOutput { + return o.ApplyT(func(v *Monitor) MonitorUserOutput { return v.User }).(MonitorUserOutput) +} + +type MonitorArrayOutput struct{ *pulumi.OutputState } + +func (MonitorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*Monitor)(nil)).Elem() +} + +func (o MonitorArrayOutput) ToMonitorArrayOutput() MonitorArrayOutput { + return o +} + +func (o MonitorArrayOutput) ToMonitorArrayOutputWithContext(ctx context.Context) MonitorArrayOutput { + return o +} + +func (o MonitorArrayOutput) Index(i pulumi.IntInput) MonitorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Monitor { + return vs[0].([]*Monitor)[vs[1].(int)] + }).(MonitorOutput) +} + +type MonitorMapOutput struct{ *pulumi.OutputState } + +func (MonitorMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*Monitor)(nil)).Elem() +} + +func (o MonitorMapOutput) ToMonitorMapOutput() MonitorMapOutput { + return o +} + +func (o MonitorMapOutput) ToMonitorMapOutputWithContext(ctx context.Context) MonitorMapOutput { + return o +} + +func (o MonitorMapOutput) MapIndex(k pulumi.StringInput) MonitorOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Monitor { + return vs[0].(map[string]*Monitor)[vs[1].(string)] + }).(MonitorOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MonitorInput)(nil)).Elem(), &Monitor{}) + pulumi.RegisterInputType(reflect.TypeOf((*MonitorArrayInput)(nil)).Elem(), MonitorArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MonitorMapInput)(nil)).Elem(), MonitorMap{}) + pulumi.RegisterOutputType(MonitorOutput{}) + pulumi.RegisterOutputType(MonitorArrayOutput{}) + pulumi.RegisterOutputType(MonitorMapOutput{}) +} diff --git a/sdk/go/azure/dynatrace/pulumiTypes.go b/sdk/go/azure/dynatrace/pulumiTypes.go new file mode 100644 index 0000000000..f4dbbe565b --- /dev/null +++ b/sdk/go/azure/dynatrace/pulumiTypes.go @@ -0,0 +1,603 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package dynatrace + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type MonitorIdentity struct { + PrincipalId *string `pulumi:"principalId"` + TenantId *string `pulumi:"tenantId"` + // The type of identity used for the resource. Only possible value is `SystemAssigned`. + Type string `pulumi:"type"` +} + +// MonitorIdentityInput is an input type that accepts MonitorIdentityArgs and MonitorIdentityOutput values. +// You can construct a concrete instance of `MonitorIdentityInput` via: +// +// MonitorIdentityArgs{...} +type MonitorIdentityInput interface { + pulumi.Input + + ToMonitorIdentityOutput() MonitorIdentityOutput + ToMonitorIdentityOutputWithContext(context.Context) MonitorIdentityOutput +} + +type MonitorIdentityArgs struct { + PrincipalId pulumi.StringPtrInput `pulumi:"principalId"` + TenantId pulumi.StringPtrInput `pulumi:"tenantId"` + // The type of identity used for the resource. Only possible value is `SystemAssigned`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (MonitorIdentityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorIdentity)(nil)).Elem() +} + +func (i MonitorIdentityArgs) ToMonitorIdentityOutput() MonitorIdentityOutput { + return i.ToMonitorIdentityOutputWithContext(context.Background()) +} + +func (i MonitorIdentityArgs) ToMonitorIdentityOutputWithContext(ctx context.Context) MonitorIdentityOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorIdentityOutput) +} + +func (i MonitorIdentityArgs) ToMonitorIdentityPtrOutput() MonitorIdentityPtrOutput { + return i.ToMonitorIdentityPtrOutputWithContext(context.Background()) +} + +func (i MonitorIdentityArgs) ToMonitorIdentityPtrOutputWithContext(ctx context.Context) MonitorIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorIdentityOutput).ToMonitorIdentityPtrOutputWithContext(ctx) +} + +// MonitorIdentityPtrInput is an input type that accepts MonitorIdentityArgs, MonitorIdentityPtr and MonitorIdentityPtrOutput values. +// You can construct a concrete instance of `MonitorIdentityPtrInput` via: +// +// MonitorIdentityArgs{...} +// +// or: +// +// nil +type MonitorIdentityPtrInput interface { + pulumi.Input + + ToMonitorIdentityPtrOutput() MonitorIdentityPtrOutput + ToMonitorIdentityPtrOutputWithContext(context.Context) MonitorIdentityPtrOutput +} + +type monitorIdentityPtrType MonitorIdentityArgs + +func MonitorIdentityPtr(v *MonitorIdentityArgs) MonitorIdentityPtrInput { + return (*monitorIdentityPtrType)(v) +} + +func (*monitorIdentityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorIdentity)(nil)).Elem() +} + +func (i *monitorIdentityPtrType) ToMonitorIdentityPtrOutput() MonitorIdentityPtrOutput { + return i.ToMonitorIdentityPtrOutputWithContext(context.Background()) +} + +func (i *monitorIdentityPtrType) ToMonitorIdentityPtrOutputWithContext(ctx context.Context) MonitorIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorIdentityPtrOutput) +} + +type MonitorIdentityOutput struct{ *pulumi.OutputState } + +func (MonitorIdentityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorIdentity)(nil)).Elem() +} + +func (o MonitorIdentityOutput) ToMonitorIdentityOutput() MonitorIdentityOutput { + return o +} + +func (o MonitorIdentityOutput) ToMonitorIdentityOutputWithContext(ctx context.Context) MonitorIdentityOutput { + return o +} + +func (o MonitorIdentityOutput) ToMonitorIdentityPtrOutput() MonitorIdentityPtrOutput { + return o.ToMonitorIdentityPtrOutputWithContext(context.Background()) +} + +func (o MonitorIdentityOutput) ToMonitorIdentityPtrOutputWithContext(ctx context.Context) MonitorIdentityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MonitorIdentity) *MonitorIdentity { + return &v + }).(MonitorIdentityPtrOutput) +} + +func (o MonitorIdentityOutput) PrincipalId() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorIdentity) *string { return v.PrincipalId }).(pulumi.StringPtrOutput) +} + +func (o MonitorIdentityOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorIdentity) *string { return v.TenantId }).(pulumi.StringPtrOutput) +} + +// The type of identity used for the resource. Only possible value is `SystemAssigned`. +func (o MonitorIdentityOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v MonitorIdentity) string { return v.Type }).(pulumi.StringOutput) +} + +type MonitorIdentityPtrOutput struct{ *pulumi.OutputState } + +func (MonitorIdentityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorIdentity)(nil)).Elem() +} + +func (o MonitorIdentityPtrOutput) ToMonitorIdentityPtrOutput() MonitorIdentityPtrOutput { + return o +} + +func (o MonitorIdentityPtrOutput) ToMonitorIdentityPtrOutputWithContext(ctx context.Context) MonitorIdentityPtrOutput { + return o +} + +func (o MonitorIdentityPtrOutput) Elem() MonitorIdentityOutput { + return o.ApplyT(func(v *MonitorIdentity) MonitorIdentity { + if v != nil { + return *v + } + var ret MonitorIdentity + return ret + }).(MonitorIdentityOutput) +} + +func (o MonitorIdentityPtrOutput) PrincipalId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorIdentity) *string { + if v == nil { + return nil + } + return v.PrincipalId + }).(pulumi.StringPtrOutput) +} + +func (o MonitorIdentityPtrOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorIdentity) *string { + if v == nil { + return nil + } + return v.TenantId + }).(pulumi.StringPtrOutput) +} + +// The type of identity used for the resource. Only possible value is `SystemAssigned`. +func (o MonitorIdentityPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorIdentity) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +type MonitorPlan struct { + // Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + BillingCycle *string `pulumi:"billingCycle"` + // Date when plan was applied. + EffectiveDate *string `pulumi:"effectiveDate"` + // Plan id as published by Dynatrace. + Plan string `pulumi:"plan"` + // Different usage type. Possible values are `PAYG` and `COMMITTED`. + UsageType *string `pulumi:"usageType"` +} + +// MonitorPlanInput is an input type that accepts MonitorPlanArgs and MonitorPlanOutput values. +// You can construct a concrete instance of `MonitorPlanInput` via: +// +// MonitorPlanArgs{...} +type MonitorPlanInput interface { + pulumi.Input + + ToMonitorPlanOutput() MonitorPlanOutput + ToMonitorPlanOutputWithContext(context.Context) MonitorPlanOutput +} + +type MonitorPlanArgs struct { + // Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + BillingCycle pulumi.StringPtrInput `pulumi:"billingCycle"` + // Date when plan was applied. + EffectiveDate pulumi.StringPtrInput `pulumi:"effectiveDate"` + // Plan id as published by Dynatrace. + Plan pulumi.StringInput `pulumi:"plan"` + // Different usage type. Possible values are `PAYG` and `COMMITTED`. + UsageType pulumi.StringPtrInput `pulumi:"usageType"` +} + +func (MonitorPlanArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorPlan)(nil)).Elem() +} + +func (i MonitorPlanArgs) ToMonitorPlanOutput() MonitorPlanOutput { + return i.ToMonitorPlanOutputWithContext(context.Background()) +} + +func (i MonitorPlanArgs) ToMonitorPlanOutputWithContext(ctx context.Context) MonitorPlanOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorPlanOutput) +} + +func (i MonitorPlanArgs) ToMonitorPlanPtrOutput() MonitorPlanPtrOutput { + return i.ToMonitorPlanPtrOutputWithContext(context.Background()) +} + +func (i MonitorPlanArgs) ToMonitorPlanPtrOutputWithContext(ctx context.Context) MonitorPlanPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorPlanOutput).ToMonitorPlanPtrOutputWithContext(ctx) +} + +// MonitorPlanPtrInput is an input type that accepts MonitorPlanArgs, MonitorPlanPtr and MonitorPlanPtrOutput values. +// You can construct a concrete instance of `MonitorPlanPtrInput` via: +// +// MonitorPlanArgs{...} +// +// or: +// +// nil +type MonitorPlanPtrInput interface { + pulumi.Input + + ToMonitorPlanPtrOutput() MonitorPlanPtrOutput + ToMonitorPlanPtrOutputWithContext(context.Context) MonitorPlanPtrOutput +} + +type monitorPlanPtrType MonitorPlanArgs + +func MonitorPlanPtr(v *MonitorPlanArgs) MonitorPlanPtrInput { + return (*monitorPlanPtrType)(v) +} + +func (*monitorPlanPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorPlan)(nil)).Elem() +} + +func (i *monitorPlanPtrType) ToMonitorPlanPtrOutput() MonitorPlanPtrOutput { + return i.ToMonitorPlanPtrOutputWithContext(context.Background()) +} + +func (i *monitorPlanPtrType) ToMonitorPlanPtrOutputWithContext(ctx context.Context) MonitorPlanPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorPlanPtrOutput) +} + +type MonitorPlanOutput struct{ *pulumi.OutputState } + +func (MonitorPlanOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorPlan)(nil)).Elem() +} + +func (o MonitorPlanOutput) ToMonitorPlanOutput() MonitorPlanOutput { + return o +} + +func (o MonitorPlanOutput) ToMonitorPlanOutputWithContext(ctx context.Context) MonitorPlanOutput { + return o +} + +func (o MonitorPlanOutput) ToMonitorPlanPtrOutput() MonitorPlanPtrOutput { + return o.ToMonitorPlanPtrOutputWithContext(context.Background()) +} + +func (o MonitorPlanOutput) ToMonitorPlanPtrOutputWithContext(ctx context.Context) MonitorPlanPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MonitorPlan) *MonitorPlan { + return &v + }).(MonitorPlanPtrOutput) +} + +// Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. +func (o MonitorPlanOutput) BillingCycle() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorPlan) *string { return v.BillingCycle }).(pulumi.StringPtrOutput) +} + +// Date when plan was applied. +func (o MonitorPlanOutput) EffectiveDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorPlan) *string { return v.EffectiveDate }).(pulumi.StringPtrOutput) +} + +// Plan id as published by Dynatrace. +func (o MonitorPlanOutput) Plan() pulumi.StringOutput { + return o.ApplyT(func(v MonitorPlan) string { return v.Plan }).(pulumi.StringOutput) +} + +// Different usage type. Possible values are `PAYG` and `COMMITTED`. +func (o MonitorPlanOutput) UsageType() pulumi.StringPtrOutput { + return o.ApplyT(func(v MonitorPlan) *string { return v.UsageType }).(pulumi.StringPtrOutput) +} + +type MonitorPlanPtrOutput struct{ *pulumi.OutputState } + +func (MonitorPlanPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorPlan)(nil)).Elem() +} + +func (o MonitorPlanPtrOutput) ToMonitorPlanPtrOutput() MonitorPlanPtrOutput { + return o +} + +func (o MonitorPlanPtrOutput) ToMonitorPlanPtrOutputWithContext(ctx context.Context) MonitorPlanPtrOutput { + return o +} + +func (o MonitorPlanPtrOutput) Elem() MonitorPlanOutput { + return o.ApplyT(func(v *MonitorPlan) MonitorPlan { + if v != nil { + return *v + } + var ret MonitorPlan + return ret + }).(MonitorPlanOutput) +} + +// Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. +func (o MonitorPlanPtrOutput) BillingCycle() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorPlan) *string { + if v == nil { + return nil + } + return v.BillingCycle + }).(pulumi.StringPtrOutput) +} + +// Date when plan was applied. +func (o MonitorPlanPtrOutput) EffectiveDate() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorPlan) *string { + if v == nil { + return nil + } + return v.EffectiveDate + }).(pulumi.StringPtrOutput) +} + +// Plan id as published by Dynatrace. +func (o MonitorPlanPtrOutput) Plan() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorPlan) *string { + if v == nil { + return nil + } + return &v.Plan + }).(pulumi.StringPtrOutput) +} + +// Different usage type. Possible values are `PAYG` and `COMMITTED`. +func (o MonitorPlanPtrOutput) UsageType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorPlan) *string { + if v == nil { + return nil + } + return v.UsageType + }).(pulumi.StringPtrOutput) +} + +type MonitorUser struct { + // Country of the user. + Country string `pulumi:"country"` + // Email of the user used by Dynatrace for contacting them if needed. + Email string `pulumi:"email"` + // First name of the user. + FirstName string `pulumi:"firstName"` + // Last name of the user. + LastName string `pulumi:"lastName"` + // phone number of the user by Dynatrace for contacting them if needed. + PhoneNumber string `pulumi:"phoneNumber"` +} + +// MonitorUserInput is an input type that accepts MonitorUserArgs and MonitorUserOutput values. +// You can construct a concrete instance of `MonitorUserInput` via: +// +// MonitorUserArgs{...} +type MonitorUserInput interface { + pulumi.Input + + ToMonitorUserOutput() MonitorUserOutput + ToMonitorUserOutputWithContext(context.Context) MonitorUserOutput +} + +type MonitorUserArgs struct { + // Country of the user. + Country pulumi.StringInput `pulumi:"country"` + // Email of the user used by Dynatrace for contacting them if needed. + Email pulumi.StringInput `pulumi:"email"` + // First name of the user. + FirstName pulumi.StringInput `pulumi:"firstName"` + // Last name of the user. + LastName pulumi.StringInput `pulumi:"lastName"` + // phone number of the user by Dynatrace for contacting them if needed. + PhoneNumber pulumi.StringInput `pulumi:"phoneNumber"` +} + +func (MonitorUserArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorUser)(nil)).Elem() +} + +func (i MonitorUserArgs) ToMonitorUserOutput() MonitorUserOutput { + return i.ToMonitorUserOutputWithContext(context.Background()) +} + +func (i MonitorUserArgs) ToMonitorUserOutputWithContext(ctx context.Context) MonitorUserOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorUserOutput) +} + +func (i MonitorUserArgs) ToMonitorUserPtrOutput() MonitorUserPtrOutput { + return i.ToMonitorUserPtrOutputWithContext(context.Background()) +} + +func (i MonitorUserArgs) ToMonitorUserPtrOutputWithContext(ctx context.Context) MonitorUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorUserOutput).ToMonitorUserPtrOutputWithContext(ctx) +} + +// MonitorUserPtrInput is an input type that accepts MonitorUserArgs, MonitorUserPtr and MonitorUserPtrOutput values. +// You can construct a concrete instance of `MonitorUserPtrInput` via: +// +// MonitorUserArgs{...} +// +// or: +// +// nil +type MonitorUserPtrInput interface { + pulumi.Input + + ToMonitorUserPtrOutput() MonitorUserPtrOutput + ToMonitorUserPtrOutputWithContext(context.Context) MonitorUserPtrOutput +} + +type monitorUserPtrType MonitorUserArgs + +func MonitorUserPtr(v *MonitorUserArgs) MonitorUserPtrInput { + return (*monitorUserPtrType)(v) +} + +func (*monitorUserPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorUser)(nil)).Elem() +} + +func (i *monitorUserPtrType) ToMonitorUserPtrOutput() MonitorUserPtrOutput { + return i.ToMonitorUserPtrOutputWithContext(context.Background()) +} + +func (i *monitorUserPtrType) ToMonitorUserPtrOutputWithContext(ctx context.Context) MonitorUserPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MonitorUserPtrOutput) +} + +type MonitorUserOutput struct{ *pulumi.OutputState } + +func (MonitorUserOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MonitorUser)(nil)).Elem() +} + +func (o MonitorUserOutput) ToMonitorUserOutput() MonitorUserOutput { + return o +} + +func (o MonitorUserOutput) ToMonitorUserOutputWithContext(ctx context.Context) MonitorUserOutput { + return o +} + +func (o MonitorUserOutput) ToMonitorUserPtrOutput() MonitorUserPtrOutput { + return o.ToMonitorUserPtrOutputWithContext(context.Background()) +} + +func (o MonitorUserOutput) ToMonitorUserPtrOutputWithContext(ctx context.Context) MonitorUserPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MonitorUser) *MonitorUser { + return &v + }).(MonitorUserPtrOutput) +} + +// Country of the user. +func (o MonitorUserOutput) Country() pulumi.StringOutput { + return o.ApplyT(func(v MonitorUser) string { return v.Country }).(pulumi.StringOutput) +} + +// Email of the user used by Dynatrace for contacting them if needed. +func (o MonitorUserOutput) Email() pulumi.StringOutput { + return o.ApplyT(func(v MonitorUser) string { return v.Email }).(pulumi.StringOutput) +} + +// First name of the user. +func (o MonitorUserOutput) FirstName() pulumi.StringOutput { + return o.ApplyT(func(v MonitorUser) string { return v.FirstName }).(pulumi.StringOutput) +} + +// Last name of the user. +func (o MonitorUserOutput) LastName() pulumi.StringOutput { + return o.ApplyT(func(v MonitorUser) string { return v.LastName }).(pulumi.StringOutput) +} + +// phone number of the user by Dynatrace for contacting them if needed. +func (o MonitorUserOutput) PhoneNumber() pulumi.StringOutput { + return o.ApplyT(func(v MonitorUser) string { return v.PhoneNumber }).(pulumi.StringOutput) +} + +type MonitorUserPtrOutput struct{ *pulumi.OutputState } + +func (MonitorUserPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MonitorUser)(nil)).Elem() +} + +func (o MonitorUserPtrOutput) ToMonitorUserPtrOutput() MonitorUserPtrOutput { + return o +} + +func (o MonitorUserPtrOutput) ToMonitorUserPtrOutputWithContext(ctx context.Context) MonitorUserPtrOutput { + return o +} + +func (o MonitorUserPtrOutput) Elem() MonitorUserOutput { + return o.ApplyT(func(v *MonitorUser) MonitorUser { + if v != nil { + return *v + } + var ret MonitorUser + return ret + }).(MonitorUserOutput) +} + +// Country of the user. +func (o MonitorUserPtrOutput) Country() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorUser) *string { + if v == nil { + return nil + } + return &v.Country + }).(pulumi.StringPtrOutput) +} + +// Email of the user used by Dynatrace for contacting them if needed. +func (o MonitorUserPtrOutput) Email() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorUser) *string { + if v == nil { + return nil + } + return &v.Email + }).(pulumi.StringPtrOutput) +} + +// First name of the user. +func (o MonitorUserPtrOutput) FirstName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorUser) *string { + if v == nil { + return nil + } + return &v.FirstName + }).(pulumi.StringPtrOutput) +} + +// Last name of the user. +func (o MonitorUserPtrOutput) LastName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorUser) *string { + if v == nil { + return nil + } + return &v.LastName + }).(pulumi.StringPtrOutput) +} + +// phone number of the user by Dynatrace for contacting them if needed. +func (o MonitorUserPtrOutput) PhoneNumber() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MonitorUser) *string { + if v == nil { + return nil + } + return &v.PhoneNumber + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MonitorIdentityInput)(nil)).Elem(), MonitorIdentityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MonitorIdentityPtrInput)(nil)).Elem(), MonitorIdentityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MonitorPlanInput)(nil)).Elem(), MonitorPlanArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MonitorPlanPtrInput)(nil)).Elem(), MonitorPlanArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MonitorUserInput)(nil)).Elem(), MonitorUserArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MonitorUserPtrInput)(nil)).Elem(), MonitorUserArgs{}) + pulumi.RegisterOutputType(MonitorIdentityOutput{}) + pulumi.RegisterOutputType(MonitorIdentityPtrOutput{}) + pulumi.RegisterOutputType(MonitorPlanOutput{}) + pulumi.RegisterOutputType(MonitorPlanPtrOutput{}) + pulumi.RegisterOutputType(MonitorUserOutput{}) + pulumi.RegisterOutputType(MonitorUserPtrOutput{}) +} diff --git a/sdk/go/azure/lb/natRule.go b/sdk/go/azure/lb/natRule.go index ab71c6902f..e53b156ef7 100644 --- a/sdk/go/azure/lb/natRule.go +++ b/sdk/go/azure/lb/natRule.go @@ -18,6 +18,91 @@ import ( // // > **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached // +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/lb" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("LoadBalancerRG"), +// Location: pulumi.String("West Europe"), +// }) +// if err != nil { +// return err +// } +// examplePublicIp, err := network.NewPublicIp(ctx, "example", &network.PublicIpArgs{ +// Name: pulumi.String("PublicIPForLB"), +// Location: pulumi.String("West US"), +// ResourceGroupName: example.Name, +// AllocationMethod: pulumi.String("Static"), +// }) +// if err != nil { +// return err +// } +// exampleLoadBalancer, err := lb.NewLoadBalancer(ctx, "example", &lb.LoadBalancerArgs{ +// Name: pulumi.String("TestLoadBalancer"), +// Location: pulumi.String("West US"), +// ResourceGroupName: example.Name, +// FrontendIpConfigurations: lb.LoadBalancerFrontendIpConfigurationArray{ +// &lb.LoadBalancerFrontendIpConfigurationArgs{ +// Name: pulumi.String("PublicIPAddress"), +// PublicIpAddressId: examplePublicIp.ID(), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// exampleBackendAddressPool, err := lb.NewBackendAddressPool(ctx, "example", &lb.BackendAddressPoolArgs{ +// LoadbalancerId: exampleLoadBalancer.ID(), +// Name: pulumi.String("be"), +// }) +// if err != nil { +// return err +// } +// _, err = lb.NewNatRule(ctx, "example", &lb.NatRuleArgs{ +// ResourceGroupName: example.Name, +// LoadbalancerId: exampleLoadBalancer.ID(), +// Name: pulumi.String("RDPAccess"), +// Protocol: pulumi.String("Tcp"), +// FrontendPort: pulumi.Int(3389), +// BackendPort: pulumi.Int(3389), +// FrontendIpConfigurationName: pulumi.String("PublicIPAddress"), +// }) +// if err != nil { +// return err +// } +// _, err = lb.NewNatRule(ctx, "example1", &lb.NatRuleArgs{ +// ResourceGroupName: example.Name, +// LoadbalancerId: exampleLoadBalancer.ID(), +// Name: pulumi.String("RDPAccess"), +// Protocol: pulumi.String("Tcp"), +// FrontendPortStart: pulumi.Int(3000), +// FrontendPortEnd: pulumi.Int(3389), +// BackendPort: pulumi.Int(3389), +// BackendAddressPoolId: exampleBackendAddressPool.ID(), +// FrontendIpConfigurationName: pulumi.String("PublicIPAddress"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Load Balancer NAT Rules can be imported using the `resource id`, e.g. diff --git a/sdk/go/azure/mssql/managedDatabase.go b/sdk/go/azure/mssql/managedDatabase.go index 45ebc38b70..106b3caa55 100644 --- a/sdk/go/azure/mssql/managedDatabase.go +++ b/sdk/go/azure/mssql/managedDatabase.go @@ -105,6 +105,8 @@ type ManagedDatabase struct { PointInTimeRestore ManagedDatabasePointInTimeRestorePtrOutput `pulumi:"pointInTimeRestore"` // The backup retention period in days. This is how many days Point-in-Time Restore will be supported. ShortTermRetentionDays pulumi.IntPtrOutput `pulumi:"shortTermRetentionDays"` + // A mapping of tags to assign to the resource. + Tags pulumi.StringMapOutput `pulumi:"tags"` } // NewManagedDatabase registers a new resource with the given unique name, arguments, and options. @@ -156,6 +158,8 @@ type managedDatabaseState struct { PointInTimeRestore *ManagedDatabasePointInTimeRestore `pulumi:"pointInTimeRestore"` // The backup retention period in days. This is how many days Point-in-Time Restore will be supported. ShortTermRetentionDays *int `pulumi:"shortTermRetentionDays"` + // A mapping of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` } type ManagedDatabaseState struct { @@ -169,6 +173,8 @@ type ManagedDatabaseState struct { PointInTimeRestore ManagedDatabasePointInTimeRestorePtrInput // The backup retention period in days. This is how many days Point-in-Time Restore will be supported. ShortTermRetentionDays pulumi.IntPtrInput + // A mapping of tags to assign to the resource. + Tags pulumi.StringMapInput } func (ManagedDatabaseState) ElementType() reflect.Type { @@ -186,6 +192,8 @@ type managedDatabaseArgs struct { PointInTimeRestore *ManagedDatabasePointInTimeRestore `pulumi:"pointInTimeRestore"` // The backup retention period in days. This is how many days Point-in-Time Restore will be supported. ShortTermRetentionDays *int `pulumi:"shortTermRetentionDays"` + // A mapping of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` } // The set of arguments for constructing a ManagedDatabase resource. @@ -200,6 +208,8 @@ type ManagedDatabaseArgs struct { PointInTimeRestore ManagedDatabasePointInTimeRestorePtrInput // The backup retention period in days. This is how many days Point-in-Time Restore will be supported. ShortTermRetentionDays pulumi.IntPtrInput + // A mapping of tags to assign to the resource. + Tags pulumi.StringMapInput } func (ManagedDatabaseArgs) ElementType() reflect.Type { @@ -316,6 +326,11 @@ func (o ManagedDatabaseOutput) ShortTermRetentionDays() pulumi.IntPtrOutput { return o.ApplyT(func(v *ManagedDatabase) pulumi.IntPtrOutput { return v.ShortTermRetentionDays }).(pulumi.IntPtrOutput) } +// A mapping of tags to assign to the resource. +func (o ManagedDatabaseOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *ManagedDatabase) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + type ManagedDatabaseArrayOutput struct{ *pulumi.OutputState } func (ManagedDatabaseArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/azure/network/getPublicIpPrefix.go b/sdk/go/azure/network/getPublicIpPrefix.go index 921e6d8d70..097aa9740b 100644 --- a/sdk/go/azure/network/getPublicIpPrefix.go +++ b/sdk/go/azure/network/getPublicIpPrefix.go @@ -74,6 +74,8 @@ type LookupPublicIpPrefixResult struct { ResourceGroupName string `pulumi:"resourceGroupName"` // The SKU of the Public IP Prefix. Sku string `pulumi:"sku"` + // The SKU Tier of the Public IP. + SkuTier string `pulumi:"skuTier"` // A mapping of tags to assigned to the resource. Tags map[string]string `pulumi:"tags"` // A list of Availability Zones in which this Public IP Prefix is located. @@ -159,6 +161,11 @@ func (o LookupPublicIpPrefixResultOutput) Sku() pulumi.StringOutput { return o.ApplyT(func(v LookupPublicIpPrefixResult) string { return v.Sku }).(pulumi.StringOutput) } +// The SKU Tier of the Public IP. +func (o LookupPublicIpPrefixResultOutput) SkuTier() pulumi.StringOutput { + return o.ApplyT(func(v LookupPublicIpPrefixResult) string { return v.SkuTier }).(pulumi.StringOutput) +} + // A mapping of tags to assigned to the resource. func (o LookupPublicIpPrefixResultOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v LookupPublicIpPrefixResult) map[string]string { return v.Tags }).(pulumi.StringMapOutput) diff --git a/sdk/go/azure/network/publicIp.go b/sdk/go/azure/network/publicIp.go index 9943e32941..cbcdfbbb7d 100644 --- a/sdk/go/azure/network/publicIp.go +++ b/sdk/go/azure/network/publicIp.go @@ -78,6 +78,8 @@ type PublicIp struct { DdosProtectionPlanId pulumi.StringPtrOutput `pulumi:"ddosProtectionPlanId"` // 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. DomainNameLabel pulumi.StringPtrOutput `pulumi:"domainNameLabel"` + // 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. + DomainNameLabelScope pulumi.StringPtrOutput `pulumi:"domainNameLabelScope"` // Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. EdgeZone pulumi.StringPtrOutput `pulumi:"edgeZone"` // Fully qualified domain name of the A DNS record associated with the public IP. `domainNameLabel` must be specified to get the `fqdn`. This is the concatenation of the `domainNameLabel` and the regionalized DNS zone @@ -168,6 +170,8 @@ type publicIpState struct { DdosProtectionPlanId *string `pulumi:"ddosProtectionPlanId"` // 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. DomainNameLabel *string `pulumi:"domainNameLabel"` + // 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. + DomainNameLabelScope *string `pulumi:"domainNameLabelScope"` // Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. EdgeZone *string `pulumi:"edgeZone"` // Fully qualified domain name of the A DNS record associated with the public IP. `domainNameLabel` must be specified to get the `fqdn`. This is the concatenation of the `domainNameLabel` and the regionalized DNS zone @@ -223,6 +227,8 @@ type PublicIpState struct { DdosProtectionPlanId pulumi.StringPtrInput // 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. DomainNameLabel pulumi.StringPtrInput + // 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. + DomainNameLabelScope pulumi.StringPtrInput // Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. EdgeZone pulumi.StringPtrInput // Fully qualified domain name of the A DNS record associated with the public IP. `domainNameLabel` must be specified to get the `fqdn`. This is the concatenation of the `domainNameLabel` and the regionalized DNS zone @@ -282,6 +288,8 @@ type publicIpArgs struct { DdosProtectionPlanId *string `pulumi:"ddosProtectionPlanId"` // 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. DomainNameLabel *string `pulumi:"domainNameLabel"` + // 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. + DomainNameLabelScope *string `pulumi:"domainNameLabelScope"` // Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. EdgeZone *string `pulumi:"edgeZone"` // Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. @@ -334,6 +342,8 @@ type PublicIpArgs struct { DdosProtectionPlanId pulumi.StringPtrInput // 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. DomainNameLabel pulumi.StringPtrInput + // 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. + DomainNameLabelScope pulumi.StringPtrInput // Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. EdgeZone pulumi.StringPtrInput // Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. @@ -483,6 +493,11 @@ func (o PublicIpOutput) DomainNameLabel() pulumi.StringPtrOutput { return o.ApplyT(func(v *PublicIp) pulumi.StringPtrOutput { return v.DomainNameLabel }).(pulumi.StringPtrOutput) } +// 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. +func (o PublicIpOutput) DomainNameLabelScope() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIp) pulumi.StringPtrOutput { return v.DomainNameLabelScope }).(pulumi.StringPtrOutput) +} + // Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. func (o PublicIpOutput) EdgeZone() pulumi.StringPtrOutput { return o.ApplyT(func(v *PublicIp) pulumi.StringPtrOutput { return v.EdgeZone }).(pulumi.StringPtrOutput) diff --git a/sdk/go/azure/network/publicIpPrefix.go b/sdk/go/azure/network/publicIpPrefix.go index 3cd821c96c..2553c0cd5a 100644 --- a/sdk/go/azure/network/publicIpPrefix.go +++ b/sdk/go/azure/network/publicIpPrefix.go @@ -82,6 +82,8 @@ type PublicIpPrefix struct { // // > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. Sku pulumi.StringPtrOutput `pulumi:"sku"` + // 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. + SkuTier pulumi.StringPtrOutput `pulumi:"skuTier"` // A mapping of tags to assign to the resource. Tags pulumi.StringMapOutput `pulumi:"tags"` // Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -141,6 +143,8 @@ type publicIpPrefixState struct { // // > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. Sku *string `pulumi:"sku"` + // 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. + SkuTier *string `pulumi:"skuTier"` // A mapping of tags to assign to the resource. Tags map[string]string `pulumi:"tags"` // Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -168,6 +172,8 @@ type PublicIpPrefixState struct { // // > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. Sku pulumi.StringPtrInput + // 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. + SkuTier pulumi.StringPtrInput // A mapping of tags to assign to the resource. Tags pulumi.StringMapInput // Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -197,6 +203,8 @@ type publicIpPrefixArgs struct { // // > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. Sku *string `pulumi:"sku"` + // 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. + SkuTier *string `pulumi:"skuTier"` // A mapping of tags to assign to the resource. Tags map[string]string `pulumi:"tags"` // Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -223,6 +231,8 @@ type PublicIpPrefixArgs struct { // // > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. Sku pulumi.StringPtrInput + // 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. + SkuTier pulumi.StringPtrInput // A mapping of tags to assign to the resource. Tags pulumi.StringMapInput // Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -357,6 +367,11 @@ func (o PublicIpPrefixOutput) Sku() pulumi.StringPtrOutput { return o.ApplyT(func(v *PublicIpPrefix) pulumi.StringPtrOutput { return v.Sku }).(pulumi.StringPtrOutput) } +// 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. +func (o PublicIpPrefixOutput) SkuTier() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PublicIpPrefix) pulumi.StringPtrOutput { return v.SkuTier }).(pulumi.StringPtrOutput) +} + // A mapping of tags to assign to the resource. func (o PublicIpPrefixOutput) Tags() pulumi.StringMapOutput { return o.ApplyT(func(v *PublicIpPrefix) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) diff --git a/sdk/go/azure/oracle/cloudVmCluster.go b/sdk/go/azure/oracle/cloudVmCluster.go index 4cb81bbd06..16ec86f958 100644 --- a/sdk/go/azure/oracle/cloudVmCluster.go +++ b/sdk/go/azure/oracle/cloudVmCluster.go @@ -44,6 +44,8 @@ type CloudVmCluster struct { DbServers pulumi.StringArrayOutput `pulumi:"dbServers"` // The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. DisplayName pulumi.StringOutput `pulumi:"displayName"` + // 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. + Domain pulumi.StringOutput `pulumi:"domain"` // A valid Oracle Grid Infrastructure (GI) software version. GiVersion pulumi.StringOutput `pulumi:"giVersion"` // The hostname for the Cloud VM Cluster without suffix. @@ -64,6 +66,10 @@ type CloudVmCluster struct { Ocid pulumi.StringOutput `pulumi:"ocid"` // The name of the Resource Group where the Cloud VM Cluster should exist. ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` + // The TCP Single Client Access Name (SCAN) port. The default port to 1521. + ScanListenerPortTcp pulumi.IntPtrOutput `pulumi:"scanListenerPortTcp"` + // The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + ScanListenerPortTcpSsl pulumi.IntPtrOutput `pulumi:"scanListenerPortTcpSsl"` // If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. SparseDiskgroupEnabled pulumi.BoolOutput `pulumi:"sparseDiskgroupEnabled"` // The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. @@ -76,6 +82,8 @@ type CloudVmCluster struct { TimeZone pulumi.StringOutput `pulumi:"timeZone"` // The ID of the Virtual Network associated with the Cloud VM Cluster. VirtualNetworkId pulumi.StringOutput `pulumi:"virtualNetworkId"` + // 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. + ZoneId pulumi.StringOutput `pulumi:"zoneId"` } // NewCloudVmCluster registers a new resource with the given unique name, arguments, and options. @@ -161,6 +169,8 @@ type cloudVmClusterState struct { DbServers []string `pulumi:"dbServers"` // The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. DisplayName *string `pulumi:"displayName"` + // 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. + Domain *string `pulumi:"domain"` // A valid Oracle Grid Infrastructure (GI) software version. GiVersion *string `pulumi:"giVersion"` // The hostname for the Cloud VM Cluster without suffix. @@ -181,6 +191,10 @@ type cloudVmClusterState struct { Ocid *string `pulumi:"ocid"` // The name of the Resource Group where the Cloud VM Cluster should exist. ResourceGroupName *string `pulumi:"resourceGroupName"` + // The TCP Single Client Access Name (SCAN) port. The default port to 1521. + ScanListenerPortTcp *int `pulumi:"scanListenerPortTcp"` + // The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + ScanListenerPortTcpSsl *int `pulumi:"scanListenerPortTcpSsl"` // If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. SparseDiskgroupEnabled *bool `pulumi:"sparseDiskgroupEnabled"` // The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. @@ -193,6 +207,8 @@ type cloudVmClusterState struct { TimeZone *string `pulumi:"timeZone"` // The ID of the Virtual Network associated with the Cloud VM Cluster. VirtualNetworkId *string `pulumi:"virtualNetworkId"` + // 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. + ZoneId *string `pulumi:"zoneId"` } type CloudVmClusterState struct { @@ -216,6 +232,8 @@ type CloudVmClusterState struct { DbServers pulumi.StringArrayInput // The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. DisplayName pulumi.StringPtrInput + // 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. + Domain pulumi.StringPtrInput // A valid Oracle Grid Infrastructure (GI) software version. GiVersion pulumi.StringPtrInput // The hostname for the Cloud VM Cluster without suffix. @@ -236,6 +254,10 @@ type CloudVmClusterState struct { Ocid pulumi.StringPtrInput // The name of the Resource Group where the Cloud VM Cluster should exist. ResourceGroupName pulumi.StringPtrInput + // The TCP Single Client Access Name (SCAN) port. The default port to 1521. + ScanListenerPortTcp pulumi.IntPtrInput + // The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + ScanListenerPortTcpSsl pulumi.IntPtrInput // If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. SparseDiskgroupEnabled pulumi.BoolPtrInput // The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. @@ -248,6 +270,8 @@ type CloudVmClusterState struct { TimeZone pulumi.StringPtrInput // The ID of the Virtual Network associated with the Cloud VM Cluster. VirtualNetworkId pulumi.StringPtrInput + // 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. + ZoneId pulumi.StringPtrInput } func (CloudVmClusterState) ElementType() reflect.Type { @@ -275,6 +299,8 @@ type cloudVmClusterArgs struct { DbServers []string `pulumi:"dbServers"` // The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. DisplayName string `pulumi:"displayName"` + // 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. + Domain *string `pulumi:"domain"` // A valid Oracle Grid Infrastructure (GI) software version. GiVersion string `pulumi:"giVersion"` // The hostname for the Cloud VM Cluster without suffix. @@ -291,6 +317,10 @@ type cloudVmClusterArgs struct { Name *string `pulumi:"name"` // The name of the Resource Group where the Cloud VM Cluster should exist. ResourceGroupName string `pulumi:"resourceGroupName"` + // The TCP Single Client Access Name (SCAN) port. The default port to 1521. + ScanListenerPortTcp *int `pulumi:"scanListenerPortTcp"` + // The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + ScanListenerPortTcpSsl *int `pulumi:"scanListenerPortTcpSsl"` // If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. SparseDiskgroupEnabled *bool `pulumi:"sparseDiskgroupEnabled"` // The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. @@ -303,6 +333,8 @@ type cloudVmClusterArgs struct { TimeZone *string `pulumi:"timeZone"` // The ID of the Virtual Network associated with the Cloud VM Cluster. VirtualNetworkId string `pulumi:"virtualNetworkId"` + // 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. + ZoneId *string `pulumi:"zoneId"` } // The set of arguments for constructing a CloudVmCluster resource. @@ -327,6 +359,8 @@ type CloudVmClusterArgs struct { DbServers pulumi.StringArrayInput // The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. DisplayName pulumi.StringInput + // 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. + Domain pulumi.StringPtrInput // A valid Oracle Grid Infrastructure (GI) software version. GiVersion pulumi.StringInput // The hostname for the Cloud VM Cluster without suffix. @@ -343,6 +377,10 @@ type CloudVmClusterArgs struct { Name pulumi.StringPtrInput // The name of the Resource Group where the Cloud VM Cluster should exist. ResourceGroupName pulumi.StringInput + // The TCP Single Client Access Name (SCAN) port. The default port to 1521. + ScanListenerPortTcp pulumi.IntPtrInput + // The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + ScanListenerPortTcpSsl pulumi.IntPtrInput // If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. SparseDiskgroupEnabled pulumi.BoolPtrInput // The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. @@ -355,6 +393,8 @@ type CloudVmClusterArgs struct { TimeZone pulumi.StringPtrInput // The ID of the Virtual Network associated with the Cloud VM Cluster. VirtualNetworkId pulumi.StringInput + // 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. + ZoneId pulumi.StringPtrInput } func (CloudVmClusterArgs) ElementType() reflect.Type { @@ -494,6 +534,11 @@ func (o CloudVmClusterOutput) DisplayName() pulumi.StringOutput { return o.ApplyT(func(v *CloudVmCluster) pulumi.StringOutput { return v.DisplayName }).(pulumi.StringOutput) } +// 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. +func (o CloudVmClusterOutput) Domain() pulumi.StringOutput { + return o.ApplyT(func(v *CloudVmCluster) pulumi.StringOutput { return v.Domain }).(pulumi.StringOutput) +} + // A valid Oracle Grid Infrastructure (GI) software version. func (o CloudVmClusterOutput) GiVersion() pulumi.StringOutput { return o.ApplyT(func(v *CloudVmCluster) pulumi.StringOutput { return v.GiVersion }).(pulumi.StringOutput) @@ -544,6 +589,16 @@ func (o CloudVmClusterOutput) ResourceGroupName() pulumi.StringOutput { return o.ApplyT(func(v *CloudVmCluster) pulumi.StringOutput { return v.ResourceGroupName }).(pulumi.StringOutput) } +// The TCP Single Client Access Name (SCAN) port. The default port to 1521. +func (o CloudVmClusterOutput) ScanListenerPortTcp() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CloudVmCluster) pulumi.IntPtrOutput { return v.ScanListenerPortTcp }).(pulumi.IntPtrOutput) +} + +// The TCPS Single Client Access Name (SCAN) port. The default port to 2484. +func (o CloudVmClusterOutput) ScanListenerPortTcpSsl() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CloudVmCluster) pulumi.IntPtrOutput { return v.ScanListenerPortTcpSsl }).(pulumi.IntPtrOutput) +} + // If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. func (o CloudVmClusterOutput) SparseDiskgroupEnabled() pulumi.BoolOutput { return o.ApplyT(func(v *CloudVmCluster) pulumi.BoolOutput { return v.SparseDiskgroupEnabled }).(pulumi.BoolOutput) @@ -574,6 +629,11 @@ func (o CloudVmClusterOutput) VirtualNetworkId() pulumi.StringOutput { return o.ApplyT(func(v *CloudVmCluster) pulumi.StringOutput { return v.VirtualNetworkId }).(pulumi.StringOutput) } +// 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. +func (o CloudVmClusterOutput) ZoneId() pulumi.StringOutput { + return o.ApplyT(func(v *CloudVmCluster) pulumi.StringOutput { return v.ZoneId }).(pulumi.StringOutput) +} + type CloudVmClusterArrayOutput struct{ *pulumi.OutputState } func (CloudVmClusterArrayOutput) ElementType() reflect.Type { diff --git a/sdk/go/azure/pulumiTypes.go b/sdk/go/azure/pulumiTypes.go index 3cbaf9edb0..6d8bac575b 100644 --- a/sdk/go/azure/pulumiTypes.go +++ b/sdk/go/azure/pulumiTypes.go @@ -26,6 +26,7 @@ type ProviderFeatures struct { RecoveryService *ProviderFeaturesRecoveryService `pulumi:"recoveryService"` RecoveryServicesVaults *ProviderFeaturesRecoveryServicesVaults `pulumi:"recoveryServicesVaults"` ResourceGroup *ProviderFeaturesResourceGroup `pulumi:"resourceGroup"` + Storage *ProviderFeaturesStorage `pulumi:"storage"` Subscription *ProviderFeaturesSubscription `pulumi:"subscription"` TemplateDeployment *ProviderFeaturesTemplateDeployment `pulumi:"templateDeployment"` VirtualMachine *ProviderFeaturesVirtualMachine `pulumi:"virtualMachine"` @@ -56,6 +57,7 @@ type ProviderFeaturesArgs struct { RecoveryService ProviderFeaturesRecoveryServicePtrInput `pulumi:"recoveryService"` RecoveryServicesVaults ProviderFeaturesRecoveryServicesVaultsPtrInput `pulumi:"recoveryServicesVaults"` ResourceGroup ProviderFeaturesResourceGroupPtrInput `pulumi:"resourceGroup"` + Storage ProviderFeaturesStoragePtrInput `pulumi:"storage"` Subscription ProviderFeaturesSubscriptionPtrInput `pulumi:"subscription"` TemplateDeployment ProviderFeaturesTemplateDeploymentPtrInput `pulumi:"templateDeployment"` VirtualMachine ProviderFeaturesVirtualMachinePtrInput `pulumi:"virtualMachine"` @@ -187,6 +189,10 @@ func (o ProviderFeaturesOutput) ResourceGroup() ProviderFeaturesResourceGroupPtr return o.ApplyT(func(v ProviderFeatures) *ProviderFeaturesResourceGroup { return v.ResourceGroup }).(ProviderFeaturesResourceGroupPtrOutput) } +func (o ProviderFeaturesOutput) Storage() ProviderFeaturesStoragePtrOutput { + return o.ApplyT(func(v ProviderFeatures) *ProviderFeaturesStorage { return v.Storage }).(ProviderFeaturesStoragePtrOutput) +} + func (o ProviderFeaturesOutput) Subscription() ProviderFeaturesSubscriptionPtrOutput { return o.ApplyT(func(v ProviderFeatures) *ProviderFeaturesSubscription { return v.Subscription }).(ProviderFeaturesSubscriptionPtrOutput) } @@ -335,6 +341,15 @@ func (o ProviderFeaturesPtrOutput) ResourceGroup() ProviderFeaturesResourceGroup }).(ProviderFeaturesResourceGroupPtrOutput) } +func (o ProviderFeaturesPtrOutput) Storage() ProviderFeaturesStoragePtrOutput { + return o.ApplyT(func(v *ProviderFeatures) *ProviderFeaturesStorage { + if v == nil { + return nil + } + return v.Storage + }).(ProviderFeaturesStoragePtrOutput) +} + func (o ProviderFeaturesPtrOutput) Subscription() ProviderFeaturesSubscriptionPtrOutput { return o.ApplyT(func(v *ProviderFeatures) *ProviderFeaturesSubscription { if v == nil { @@ -2208,6 +2223,139 @@ func (o ProviderFeaturesResourceGroupPtrOutput) PreventDeletionIfContainsResourc }).(pulumi.BoolPtrOutput) } +type ProviderFeaturesStorage struct { + DataPlaneAvailable *bool `pulumi:"dataPlaneAvailable"` +} + +// ProviderFeaturesStorageInput is an input type that accepts ProviderFeaturesStorageArgs and ProviderFeaturesStorageOutput values. +// You can construct a concrete instance of `ProviderFeaturesStorageInput` via: +// +// ProviderFeaturesStorageArgs{...} +type ProviderFeaturesStorageInput interface { + pulumi.Input + + ToProviderFeaturesStorageOutput() ProviderFeaturesStorageOutput + ToProviderFeaturesStorageOutputWithContext(context.Context) ProviderFeaturesStorageOutput +} + +type ProviderFeaturesStorageArgs struct { + DataPlaneAvailable pulumi.BoolPtrInput `pulumi:"dataPlaneAvailable"` +} + +func (ProviderFeaturesStorageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ProviderFeaturesStorage)(nil)).Elem() +} + +func (i ProviderFeaturesStorageArgs) ToProviderFeaturesStorageOutput() ProviderFeaturesStorageOutput { + return i.ToProviderFeaturesStorageOutputWithContext(context.Background()) +} + +func (i ProviderFeaturesStorageArgs) ToProviderFeaturesStorageOutputWithContext(ctx context.Context) ProviderFeaturesStorageOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderFeaturesStorageOutput) +} + +func (i ProviderFeaturesStorageArgs) ToProviderFeaturesStoragePtrOutput() ProviderFeaturesStoragePtrOutput { + return i.ToProviderFeaturesStoragePtrOutputWithContext(context.Background()) +} + +func (i ProviderFeaturesStorageArgs) ToProviderFeaturesStoragePtrOutputWithContext(ctx context.Context) ProviderFeaturesStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderFeaturesStorageOutput).ToProviderFeaturesStoragePtrOutputWithContext(ctx) +} + +// ProviderFeaturesStoragePtrInput is an input type that accepts ProviderFeaturesStorageArgs, ProviderFeaturesStoragePtr and ProviderFeaturesStoragePtrOutput values. +// You can construct a concrete instance of `ProviderFeaturesStoragePtrInput` via: +// +// ProviderFeaturesStorageArgs{...} +// +// or: +// +// nil +type ProviderFeaturesStoragePtrInput interface { + pulumi.Input + + ToProviderFeaturesStoragePtrOutput() ProviderFeaturesStoragePtrOutput + ToProviderFeaturesStoragePtrOutputWithContext(context.Context) ProviderFeaturesStoragePtrOutput +} + +type providerFeaturesStoragePtrType ProviderFeaturesStorageArgs + +func ProviderFeaturesStoragePtr(v *ProviderFeaturesStorageArgs) ProviderFeaturesStoragePtrInput { + return (*providerFeaturesStoragePtrType)(v) +} + +func (*providerFeaturesStoragePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ProviderFeaturesStorage)(nil)).Elem() +} + +func (i *providerFeaturesStoragePtrType) ToProviderFeaturesStoragePtrOutput() ProviderFeaturesStoragePtrOutput { + return i.ToProviderFeaturesStoragePtrOutputWithContext(context.Background()) +} + +func (i *providerFeaturesStoragePtrType) ToProviderFeaturesStoragePtrOutputWithContext(ctx context.Context) ProviderFeaturesStoragePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ProviderFeaturesStoragePtrOutput) +} + +type ProviderFeaturesStorageOutput struct{ *pulumi.OutputState } + +func (ProviderFeaturesStorageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ProviderFeaturesStorage)(nil)).Elem() +} + +func (o ProviderFeaturesStorageOutput) ToProviderFeaturesStorageOutput() ProviderFeaturesStorageOutput { + return o +} + +func (o ProviderFeaturesStorageOutput) ToProviderFeaturesStorageOutputWithContext(ctx context.Context) ProviderFeaturesStorageOutput { + return o +} + +func (o ProviderFeaturesStorageOutput) ToProviderFeaturesStoragePtrOutput() ProviderFeaturesStoragePtrOutput { + return o.ToProviderFeaturesStoragePtrOutputWithContext(context.Background()) +} + +func (o ProviderFeaturesStorageOutput) ToProviderFeaturesStoragePtrOutputWithContext(ctx context.Context) ProviderFeaturesStoragePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ProviderFeaturesStorage) *ProviderFeaturesStorage { + return &v + }).(ProviderFeaturesStoragePtrOutput) +} + +func (o ProviderFeaturesStorageOutput) DataPlaneAvailable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ProviderFeaturesStorage) *bool { return v.DataPlaneAvailable }).(pulumi.BoolPtrOutput) +} + +type ProviderFeaturesStoragePtrOutput struct{ *pulumi.OutputState } + +func (ProviderFeaturesStoragePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ProviderFeaturesStorage)(nil)).Elem() +} + +func (o ProviderFeaturesStoragePtrOutput) ToProviderFeaturesStoragePtrOutput() ProviderFeaturesStoragePtrOutput { + return o +} + +func (o ProviderFeaturesStoragePtrOutput) ToProviderFeaturesStoragePtrOutputWithContext(ctx context.Context) ProviderFeaturesStoragePtrOutput { + return o +} + +func (o ProviderFeaturesStoragePtrOutput) Elem() ProviderFeaturesStorageOutput { + return o.ApplyT(func(v *ProviderFeaturesStorage) ProviderFeaturesStorage { + if v != nil { + return *v + } + var ret ProviderFeaturesStorage + return ret + }).(ProviderFeaturesStorageOutput) +} + +func (o ProviderFeaturesStoragePtrOutput) DataPlaneAvailable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ProviderFeaturesStorage) *bool { + if v == nil { + return nil + } + return v.DataPlaneAvailable + }).(pulumi.BoolPtrOutput) +} + type ProviderFeaturesSubscription struct { PreventCancellationOnDestroy *bool `pulumi:"preventCancellationOnDestroy"` } @@ -2857,6 +3005,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesRecoveryServicesVaultsPtrInput)(nil)).Elem(), ProviderFeaturesRecoveryServicesVaultsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesResourceGroupInput)(nil)).Elem(), ProviderFeaturesResourceGroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesResourceGroupPtrInput)(nil)).Elem(), ProviderFeaturesResourceGroupArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesStorageInput)(nil)).Elem(), ProviderFeaturesStorageArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesStoragePtrInput)(nil)).Elem(), ProviderFeaturesStorageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesSubscriptionInput)(nil)).Elem(), ProviderFeaturesSubscriptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesSubscriptionPtrInput)(nil)).Elem(), ProviderFeaturesSubscriptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ProviderFeaturesTemplateDeploymentInput)(nil)).Elem(), ProviderFeaturesTemplateDeploymentArgs{}) @@ -2891,6 +3041,8 @@ func init() { pulumi.RegisterOutputType(ProviderFeaturesRecoveryServicesVaultsPtrOutput{}) pulumi.RegisterOutputType(ProviderFeaturesResourceGroupOutput{}) pulumi.RegisterOutputType(ProviderFeaturesResourceGroupPtrOutput{}) + pulumi.RegisterOutputType(ProviderFeaturesStorageOutput{}) + pulumi.RegisterOutputType(ProviderFeaturesStoragePtrOutput{}) pulumi.RegisterOutputType(ProviderFeaturesSubscriptionOutput{}) pulumi.RegisterOutputType(ProviderFeaturesSubscriptionPtrOutput{}) pulumi.RegisterOutputType(ProviderFeaturesTemplateDeploymentOutput{}) diff --git a/sdk/go/azure/sentinel/alertRuleFusion.go b/sdk/go/azure/sentinel/alertRuleFusion.go index 909794289a..0333d30a96 100644 --- a/sdk/go/azure/sentinel/alertRuleFusion.go +++ b/sdk/go/azure/sentinel/alertRuleFusion.go @@ -46,23 +46,14 @@ import ( // if err != nil { // return err // } -// exampleAnalyticsSolution, err := operationalinsights.NewAnalyticsSolution(ctx, "example", &operationalinsights.AnalyticsSolutionArgs{ -// SolutionName: pulumi.String("SecurityInsights"), -// Location: example.Location, -// ResourceGroupName: example.Name, -// WorkspaceResourceId: exampleAnalyticsWorkspace.ID(), -// WorkspaceName: exampleAnalyticsWorkspace.Name, -// Plan: &operationalinsights.AnalyticsSolutionPlanArgs{ -// Publisher: pulumi.String("Microsoft"), -// Product: pulumi.String("OMSGallery/SecurityInsights"), -// }, +// exampleLogAnalyticsWorkspaceOnboarding, err := sentinel.NewLogAnalyticsWorkspaceOnboarding(ctx, "example", &sentinel.LogAnalyticsWorkspaceOnboardingArgs{ +// WorkspaceId: exampleAnalyticsWorkspace.ID(), // }) // if err != nil { // return err // } // _, err = sentinel.NewAlertRuleFusion(ctx, "example", &sentinel.AlertRuleFusionArgs{ -// Name: pulumi.String("example-fusion-alert-rule"), -// LogAnalyticsWorkspaceId: exampleAnalyticsSolution.WorkspaceResourceId, +// LogAnalyticsWorkspaceId: exampleLogAnalyticsWorkspaceOnboarding.WorkspaceId, // AlertRuleTemplateGuid: pulumi.String("f71aba3d-28fb-450b-b192-4e76a83015c8"), // }) // if err != nil { @@ -90,7 +81,7 @@ type AlertRuleFusion struct { Enabled pulumi.BoolPtrOutput `pulumi:"enabled"` // The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. LogAnalyticsWorkspaceId pulumi.StringOutput `pulumi:"logAnalyticsWorkspaceId"` - // The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + // Deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider. Name pulumi.StringOutput `pulumi:"name"` // One or more `source` blocks as defined below. Sources AlertRuleFusionSourceArrayOutput `pulumi:"sources"` @@ -138,7 +129,7 @@ type alertRuleFusionState struct { Enabled *bool `pulumi:"enabled"` // The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. LogAnalyticsWorkspaceId *string `pulumi:"logAnalyticsWorkspaceId"` - // The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + // Deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider. Name *string `pulumi:"name"` // One or more `source` blocks as defined below. Sources []AlertRuleFusionSource `pulumi:"sources"` @@ -151,7 +142,7 @@ type AlertRuleFusionState struct { Enabled pulumi.BoolPtrInput // The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. LogAnalyticsWorkspaceId pulumi.StringPtrInput - // The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + // Deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider. Name pulumi.StringPtrInput // One or more `source` blocks as defined below. Sources AlertRuleFusionSourceArrayInput @@ -168,7 +159,7 @@ type alertRuleFusionArgs struct { Enabled *bool `pulumi:"enabled"` // The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. LogAnalyticsWorkspaceId string `pulumi:"logAnalyticsWorkspaceId"` - // The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + // Deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider. Name *string `pulumi:"name"` // One or more `source` blocks as defined below. Sources []AlertRuleFusionSource `pulumi:"sources"` @@ -182,7 +173,7 @@ type AlertRuleFusionArgs struct { Enabled pulumi.BoolPtrInput // The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. LogAnalyticsWorkspaceId pulumi.StringInput - // The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + // Deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider. Name pulumi.StringPtrInput // One or more `source` blocks as defined below. Sources AlertRuleFusionSourceArrayInput @@ -290,7 +281,7 @@ func (o AlertRuleFusionOutput) LogAnalyticsWorkspaceId() pulumi.StringOutput { return o.ApplyT(func(v *AlertRuleFusion) pulumi.StringOutput { return v.LogAnalyticsWorkspaceId }).(pulumi.StringOutput) } -// The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. +// Deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider. func (o AlertRuleFusionOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *AlertRuleFusion) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/azure/stack/hciNetworkInterface.go b/sdk/go/azure/stack/hciNetworkInterface.go new file mode 100644 index 0000000000..d2cbe50814 --- /dev/null +++ b/sdk/go/azure/stack/hciNetworkInterface.go @@ -0,0 +1,350 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package stack + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// 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 +// ``` +type HciNetworkInterface struct { + pulumi.CustomResourceState + + // The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + CustomLocationId pulumi.StringOutput `pulumi:"customLocationId"` + // 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. + DnsServers pulumi.StringArrayOutput `pulumi:"dnsServers"` + // An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + IpConfiguration HciNetworkInterfaceIpConfigurationOutput `pulumi:"ipConfiguration"` + // The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + Location pulumi.StringOutput `pulumi:"location"` + // The MAC address of the Network Interface. Changing this forces a new resource to be created. + // + // > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + MacAddress pulumi.StringPtrOutput `pulumi:"macAddress"` + // The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + Name pulumi.StringOutput `pulumi:"name"` + // The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` + // A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + Tags pulumi.StringMapOutput `pulumi:"tags"` +} + +// NewHciNetworkInterface registers a new resource with the given unique name, arguments, and options. +func NewHciNetworkInterface(ctx *pulumi.Context, + name string, args *HciNetworkInterfaceArgs, opts ...pulumi.ResourceOption) (*HciNetworkInterface, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CustomLocationId == nil { + return nil, errors.New("invalid value for required argument 'CustomLocationId'") + } + if args.IpConfiguration == nil { + return nil, errors.New("invalid value for required argument 'IpConfiguration'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource HciNetworkInterface + err := ctx.RegisterResource("azure:stack/hciNetworkInterface:HciNetworkInterface", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetHciNetworkInterface gets an existing HciNetworkInterface resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetHciNetworkInterface(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *HciNetworkInterfaceState, opts ...pulumi.ResourceOption) (*HciNetworkInterface, error) { + var resource HciNetworkInterface + err := ctx.ReadResource("azure:stack/hciNetworkInterface:HciNetworkInterface", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering HciNetworkInterface resources. +type hciNetworkInterfaceState struct { + // The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + CustomLocationId *string `pulumi:"customLocationId"` + // 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. + DnsServers []string `pulumi:"dnsServers"` + // An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + IpConfiguration *HciNetworkInterfaceIpConfiguration `pulumi:"ipConfiguration"` + // The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // The MAC address of the Network Interface. Changing this forces a new resource to be created. + // + // > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + MacAddress *string `pulumi:"macAddress"` + // The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + ResourceGroupName *string `pulumi:"resourceGroupName"` + // A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + Tags map[string]string `pulumi:"tags"` +} + +type HciNetworkInterfaceState struct { + // The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + CustomLocationId pulumi.StringPtrInput + // 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. + DnsServers pulumi.StringArrayInput + // An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + IpConfiguration HciNetworkInterfaceIpConfigurationPtrInput + // The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // The MAC address of the Network Interface. Changing this forces a new resource to be created. + // + // > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + MacAddress pulumi.StringPtrInput + // The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringPtrInput + // A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + Tags pulumi.StringMapInput +} + +func (HciNetworkInterfaceState) ElementType() reflect.Type { + return reflect.TypeOf((*hciNetworkInterfaceState)(nil)).Elem() +} + +type hciNetworkInterfaceArgs struct { + // The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + CustomLocationId string `pulumi:"customLocationId"` + // 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. + DnsServers []string `pulumi:"dnsServers"` + // An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + IpConfiguration HciNetworkInterfaceIpConfiguration `pulumi:"ipConfiguration"` + // The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // The MAC address of the Network Interface. Changing this forces a new resource to be created. + // + // > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + MacAddress *string `pulumi:"macAddress"` + // The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + ResourceGroupName string `pulumi:"resourceGroupName"` + // A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a HciNetworkInterface resource. +type HciNetworkInterfaceArgs struct { + // The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + CustomLocationId pulumi.StringInput + // 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. + DnsServers pulumi.StringArrayInput + // An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + IpConfiguration HciNetworkInterfaceIpConfigurationInput + // The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // The MAC address of the Network Interface. Changing this forces a new resource to be created. + // + // > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + MacAddress pulumi.StringPtrInput + // The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringInput + // A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + Tags pulumi.StringMapInput +} + +func (HciNetworkInterfaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*hciNetworkInterfaceArgs)(nil)).Elem() +} + +type HciNetworkInterfaceInput interface { + pulumi.Input + + ToHciNetworkInterfaceOutput() HciNetworkInterfaceOutput + ToHciNetworkInterfaceOutputWithContext(ctx context.Context) HciNetworkInterfaceOutput +} + +func (*HciNetworkInterface) ElementType() reflect.Type { + return reflect.TypeOf((**HciNetworkInterface)(nil)).Elem() +} + +func (i *HciNetworkInterface) ToHciNetworkInterfaceOutput() HciNetworkInterfaceOutput { + return i.ToHciNetworkInterfaceOutputWithContext(context.Background()) +} + +func (i *HciNetworkInterface) ToHciNetworkInterfaceOutputWithContext(ctx context.Context) HciNetworkInterfaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(HciNetworkInterfaceOutput) +} + +// HciNetworkInterfaceArrayInput is an input type that accepts HciNetworkInterfaceArray and HciNetworkInterfaceArrayOutput values. +// You can construct a concrete instance of `HciNetworkInterfaceArrayInput` via: +// +// HciNetworkInterfaceArray{ HciNetworkInterfaceArgs{...} } +type HciNetworkInterfaceArrayInput interface { + pulumi.Input + + ToHciNetworkInterfaceArrayOutput() HciNetworkInterfaceArrayOutput + ToHciNetworkInterfaceArrayOutputWithContext(context.Context) HciNetworkInterfaceArrayOutput +} + +type HciNetworkInterfaceArray []HciNetworkInterfaceInput + +func (HciNetworkInterfaceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*HciNetworkInterface)(nil)).Elem() +} + +func (i HciNetworkInterfaceArray) ToHciNetworkInterfaceArrayOutput() HciNetworkInterfaceArrayOutput { + return i.ToHciNetworkInterfaceArrayOutputWithContext(context.Background()) +} + +func (i HciNetworkInterfaceArray) ToHciNetworkInterfaceArrayOutputWithContext(ctx context.Context) HciNetworkInterfaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(HciNetworkInterfaceArrayOutput) +} + +// HciNetworkInterfaceMapInput is an input type that accepts HciNetworkInterfaceMap and HciNetworkInterfaceMapOutput values. +// You can construct a concrete instance of `HciNetworkInterfaceMapInput` via: +// +// HciNetworkInterfaceMap{ "key": HciNetworkInterfaceArgs{...} } +type HciNetworkInterfaceMapInput interface { + pulumi.Input + + ToHciNetworkInterfaceMapOutput() HciNetworkInterfaceMapOutput + ToHciNetworkInterfaceMapOutputWithContext(context.Context) HciNetworkInterfaceMapOutput +} + +type HciNetworkInterfaceMap map[string]HciNetworkInterfaceInput + +func (HciNetworkInterfaceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*HciNetworkInterface)(nil)).Elem() +} + +func (i HciNetworkInterfaceMap) ToHciNetworkInterfaceMapOutput() HciNetworkInterfaceMapOutput { + return i.ToHciNetworkInterfaceMapOutputWithContext(context.Background()) +} + +func (i HciNetworkInterfaceMap) ToHciNetworkInterfaceMapOutputWithContext(ctx context.Context) HciNetworkInterfaceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(HciNetworkInterfaceMapOutput) +} + +type HciNetworkInterfaceOutput struct{ *pulumi.OutputState } + +func (HciNetworkInterfaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**HciNetworkInterface)(nil)).Elem() +} + +func (o HciNetworkInterfaceOutput) ToHciNetworkInterfaceOutput() HciNetworkInterfaceOutput { + return o +} + +func (o HciNetworkInterfaceOutput) ToHciNetworkInterfaceOutputWithContext(ctx context.Context) HciNetworkInterfaceOutput { + return o +} + +// The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceOutput) CustomLocationId() pulumi.StringOutput { + return o.ApplyT(func(v *HciNetworkInterface) pulumi.StringOutput { return v.CustomLocationId }).(pulumi.StringOutput) +} + +// 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. +func (o HciNetworkInterfaceOutput) DnsServers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *HciNetworkInterface) pulumi.StringArrayOutput { return v.DnsServers }).(pulumi.StringArrayOutput) +} + +// An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceOutput) IpConfiguration() HciNetworkInterfaceIpConfigurationOutput { + return o.ApplyT(func(v *HciNetworkInterface) HciNetworkInterfaceIpConfigurationOutput { return v.IpConfiguration }).(HciNetworkInterfaceIpConfigurationOutput) +} + +// The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *HciNetworkInterface) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// The MAC address of the Network Interface. Changing this forces a new resource to be created. +// +// > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. +func (o HciNetworkInterfaceOutput) MacAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *HciNetworkInterface) pulumi.StringPtrOutput { return v.MacAddress }).(pulumi.StringPtrOutput) +} + +// The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *HciNetworkInterface) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceOutput) ResourceGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *HciNetworkInterface) pulumi.StringOutput { return v.ResourceGroupName }).(pulumi.StringOutput) +} + +// A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. +func (o HciNetworkInterfaceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *HciNetworkInterface) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +type HciNetworkInterfaceArrayOutput struct{ *pulumi.OutputState } + +func (HciNetworkInterfaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*HciNetworkInterface)(nil)).Elem() +} + +func (o HciNetworkInterfaceArrayOutput) ToHciNetworkInterfaceArrayOutput() HciNetworkInterfaceArrayOutput { + return o +} + +func (o HciNetworkInterfaceArrayOutput) ToHciNetworkInterfaceArrayOutputWithContext(ctx context.Context) HciNetworkInterfaceArrayOutput { + return o +} + +func (o HciNetworkInterfaceArrayOutput) Index(i pulumi.IntInput) HciNetworkInterfaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *HciNetworkInterface { + return vs[0].([]*HciNetworkInterface)[vs[1].(int)] + }).(HciNetworkInterfaceOutput) +} + +type HciNetworkInterfaceMapOutput struct{ *pulumi.OutputState } + +func (HciNetworkInterfaceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*HciNetworkInterface)(nil)).Elem() +} + +func (o HciNetworkInterfaceMapOutput) ToHciNetworkInterfaceMapOutput() HciNetworkInterfaceMapOutput { + return o +} + +func (o HciNetworkInterfaceMapOutput) ToHciNetworkInterfaceMapOutputWithContext(ctx context.Context) HciNetworkInterfaceMapOutput { + return o +} + +func (o HciNetworkInterfaceMapOutput) MapIndex(k pulumi.StringInput) HciNetworkInterfaceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *HciNetworkInterface { + return vs[0].(map[string]*HciNetworkInterface)[vs[1].(string)] + }).(HciNetworkInterfaceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*HciNetworkInterfaceInput)(nil)).Elem(), &HciNetworkInterface{}) + pulumi.RegisterInputType(reflect.TypeOf((*HciNetworkInterfaceArrayInput)(nil)).Elem(), HciNetworkInterfaceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*HciNetworkInterfaceMapInput)(nil)).Elem(), HciNetworkInterfaceMap{}) + pulumi.RegisterOutputType(HciNetworkInterfaceOutput{}) + pulumi.RegisterOutputType(HciNetworkInterfaceArrayOutput{}) + pulumi.RegisterOutputType(HciNetworkInterfaceMapOutput{}) +} diff --git a/sdk/go/azure/stack/init.go b/sdk/go/azure/stack/init.go index d43a3119a9..fe2d757cc2 100644 --- a/sdk/go/azure/stack/init.go +++ b/sdk/go/azure/stack/init.go @@ -31,6 +31,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &HciLogicalNetwork{} case "azure:stack/hciMarketplaceGalleryImage:HciMarketplaceGalleryImage": r = &HciMarketplaceGalleryImage{} + case "azure:stack/hciNetworkInterface:HciNetworkInterface": + r = &HciNetworkInterface{} case "azure:stack/hciStoragePath:HciStoragePath": r = &HciStoragePath{} case "azure:stack/hciVirtualHardDisk:HciVirtualHardDisk": @@ -73,6 +75,11 @@ func init() { "stack/hciMarketplaceGalleryImage", &module{version}, ) + pulumi.RegisterResourceModule( + "azure", + "stack/hciNetworkInterface", + &module{version}, + ) pulumi.RegisterResourceModule( "azure", "stack/hciStoragePath", diff --git a/sdk/go/azure/stack/pulumiTypes.go b/sdk/go/azure/stack/pulumiTypes.go index c65da52442..960629c594 100644 --- a/sdk/go/azure/stack/pulumiTypes.go +++ b/sdk/go/azure/stack/pulumiTypes.go @@ -1945,6 +1945,8 @@ type HciLogicalNetworkSubnet struct { // The IP address allocation method for the subnet. Possible values are `Dynamic` and `Static`. Changing this forces a new resource to be created. IpAllocationMethod string `pulumi:"ipAllocationMethod"` // One or more `ipPool` block as defined above. Changing this forces a new resource to be created. + // + // > **Note:** If `ipPool` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. IpPools []HciLogicalNetworkSubnetIpPool `pulumi:"ipPools"` // A `route` block as defined above. Changing this forces a new resource to be created. Routes []HciLogicalNetworkSubnetRoute `pulumi:"routes"` @@ -1969,6 +1971,8 @@ type HciLogicalNetworkSubnetArgs struct { // The IP address allocation method for the subnet. Possible values are `Dynamic` and `Static`. Changing this forces a new resource to be created. IpAllocationMethod pulumi.StringInput `pulumi:"ipAllocationMethod"` // One or more `ipPool` block as defined above. Changing this forces a new resource to be created. + // + // > **Note:** If `ipPool` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. IpPools HciLogicalNetworkSubnetIpPoolArrayInput `pulumi:"ipPools"` // A `route` block as defined above. Changing this forces a new resource to be created. Routes HciLogicalNetworkSubnetRouteArrayInput `pulumi:"routes"` @@ -2064,6 +2068,8 @@ func (o HciLogicalNetworkSubnetOutput) IpAllocationMethod() pulumi.StringOutput } // One or more `ipPool` block as defined above. Changing this forces a new resource to be created. +// +// > **Note:** If `ipPool` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. func (o HciLogicalNetworkSubnetOutput) IpPools() HciLogicalNetworkSubnetIpPoolArrayOutput { return o.ApplyT(func(v HciLogicalNetworkSubnet) []HciLogicalNetworkSubnetIpPool { return v.IpPools }).(HciLogicalNetworkSubnetIpPoolArrayOutput) } @@ -2123,6 +2129,8 @@ func (o HciLogicalNetworkSubnetPtrOutput) IpAllocationMethod() pulumi.StringPtrO } // One or more `ipPool` block as defined above. Changing this forces a new resource to be created. +// +// > **Note:** If `ipPool` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. func (o HciLogicalNetworkSubnetPtrOutput) IpPools() HciLogicalNetworkSubnetIpPoolArrayOutput { return o.ApplyT(func(v *HciLogicalNetworkSubnet) []HciLogicalNetworkSubnetIpPool { if v == nil { @@ -2548,6 +2556,200 @@ func (o HciMarketplaceGalleryImageIdentifierPtrOutput) Sku() pulumi.StringPtrOut }).(pulumi.StringPtrOutput) } +type HciNetworkInterfaceIpConfiguration struct { + // The IPv4 address of the gateway for the Network Interface. + Gateway *string `pulumi:"gateway"` + // The prefix length for the address of the Network Interface. + PrefixLength *string `pulumi:"prefixLength"` + // The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + PrivateIpAddress *string `pulumi:"privateIpAddress"` + // The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + SubnetId string `pulumi:"subnetId"` +} + +// HciNetworkInterfaceIpConfigurationInput is an input type that accepts HciNetworkInterfaceIpConfigurationArgs and HciNetworkInterfaceIpConfigurationOutput values. +// You can construct a concrete instance of `HciNetworkInterfaceIpConfigurationInput` via: +// +// HciNetworkInterfaceIpConfigurationArgs{...} +type HciNetworkInterfaceIpConfigurationInput interface { + pulumi.Input + + ToHciNetworkInterfaceIpConfigurationOutput() HciNetworkInterfaceIpConfigurationOutput + ToHciNetworkInterfaceIpConfigurationOutputWithContext(context.Context) HciNetworkInterfaceIpConfigurationOutput +} + +type HciNetworkInterfaceIpConfigurationArgs struct { + // The IPv4 address of the gateway for the Network Interface. + Gateway pulumi.StringPtrInput `pulumi:"gateway"` + // The prefix length for the address of the Network Interface. + PrefixLength pulumi.StringPtrInput `pulumi:"prefixLength"` + // The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + PrivateIpAddress pulumi.StringPtrInput `pulumi:"privateIpAddress"` + // The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + SubnetId pulumi.StringInput `pulumi:"subnetId"` +} + +func (HciNetworkInterfaceIpConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*HciNetworkInterfaceIpConfiguration)(nil)).Elem() +} + +func (i HciNetworkInterfaceIpConfigurationArgs) ToHciNetworkInterfaceIpConfigurationOutput() HciNetworkInterfaceIpConfigurationOutput { + return i.ToHciNetworkInterfaceIpConfigurationOutputWithContext(context.Background()) +} + +func (i HciNetworkInterfaceIpConfigurationArgs) ToHciNetworkInterfaceIpConfigurationOutputWithContext(ctx context.Context) HciNetworkInterfaceIpConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(HciNetworkInterfaceIpConfigurationOutput) +} + +func (i HciNetworkInterfaceIpConfigurationArgs) ToHciNetworkInterfaceIpConfigurationPtrOutput() HciNetworkInterfaceIpConfigurationPtrOutput { + return i.ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(context.Background()) +} + +func (i HciNetworkInterfaceIpConfigurationArgs) ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(ctx context.Context) HciNetworkInterfaceIpConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(HciNetworkInterfaceIpConfigurationOutput).ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(ctx) +} + +// HciNetworkInterfaceIpConfigurationPtrInput is an input type that accepts HciNetworkInterfaceIpConfigurationArgs, HciNetworkInterfaceIpConfigurationPtr and HciNetworkInterfaceIpConfigurationPtrOutput values. +// You can construct a concrete instance of `HciNetworkInterfaceIpConfigurationPtrInput` via: +// +// HciNetworkInterfaceIpConfigurationArgs{...} +// +// or: +// +// nil +type HciNetworkInterfaceIpConfigurationPtrInput interface { + pulumi.Input + + ToHciNetworkInterfaceIpConfigurationPtrOutput() HciNetworkInterfaceIpConfigurationPtrOutput + ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(context.Context) HciNetworkInterfaceIpConfigurationPtrOutput +} + +type hciNetworkInterfaceIpConfigurationPtrType HciNetworkInterfaceIpConfigurationArgs + +func HciNetworkInterfaceIpConfigurationPtr(v *HciNetworkInterfaceIpConfigurationArgs) HciNetworkInterfaceIpConfigurationPtrInput { + return (*hciNetworkInterfaceIpConfigurationPtrType)(v) +} + +func (*hciNetworkInterfaceIpConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**HciNetworkInterfaceIpConfiguration)(nil)).Elem() +} + +func (i *hciNetworkInterfaceIpConfigurationPtrType) ToHciNetworkInterfaceIpConfigurationPtrOutput() HciNetworkInterfaceIpConfigurationPtrOutput { + return i.ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *hciNetworkInterfaceIpConfigurationPtrType) ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(ctx context.Context) HciNetworkInterfaceIpConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(HciNetworkInterfaceIpConfigurationPtrOutput) +} + +type HciNetworkInterfaceIpConfigurationOutput struct{ *pulumi.OutputState } + +func (HciNetworkInterfaceIpConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*HciNetworkInterfaceIpConfiguration)(nil)).Elem() +} + +func (o HciNetworkInterfaceIpConfigurationOutput) ToHciNetworkInterfaceIpConfigurationOutput() HciNetworkInterfaceIpConfigurationOutput { + return o +} + +func (o HciNetworkInterfaceIpConfigurationOutput) ToHciNetworkInterfaceIpConfigurationOutputWithContext(ctx context.Context) HciNetworkInterfaceIpConfigurationOutput { + return o +} + +func (o HciNetworkInterfaceIpConfigurationOutput) ToHciNetworkInterfaceIpConfigurationPtrOutput() HciNetworkInterfaceIpConfigurationPtrOutput { + return o.ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(context.Background()) +} + +func (o HciNetworkInterfaceIpConfigurationOutput) ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(ctx context.Context) HciNetworkInterfaceIpConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v HciNetworkInterfaceIpConfiguration) *HciNetworkInterfaceIpConfiguration { + return &v + }).(HciNetworkInterfaceIpConfigurationPtrOutput) +} + +// The IPv4 address of the gateway for the Network Interface. +func (o HciNetworkInterfaceIpConfigurationOutput) Gateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v HciNetworkInterfaceIpConfiguration) *string { return v.Gateway }).(pulumi.StringPtrOutput) +} + +// The prefix length for the address of the Network Interface. +func (o HciNetworkInterfaceIpConfigurationOutput) PrefixLength() pulumi.StringPtrOutput { + return o.ApplyT(func(v HciNetworkInterfaceIpConfiguration) *string { return v.PrefixLength }).(pulumi.StringPtrOutput) +} + +// The IPv4 address of the IP configuration. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceIpConfigurationOutput) PrivateIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v HciNetworkInterfaceIpConfiguration) *string { return v.PrivateIpAddress }).(pulumi.StringPtrOutput) +} + +// The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceIpConfigurationOutput) SubnetId() pulumi.StringOutput { + return o.ApplyT(func(v HciNetworkInterfaceIpConfiguration) string { return v.SubnetId }).(pulumi.StringOutput) +} + +type HciNetworkInterfaceIpConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (HciNetworkInterfaceIpConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**HciNetworkInterfaceIpConfiguration)(nil)).Elem() +} + +func (o HciNetworkInterfaceIpConfigurationPtrOutput) ToHciNetworkInterfaceIpConfigurationPtrOutput() HciNetworkInterfaceIpConfigurationPtrOutput { + return o +} + +func (o HciNetworkInterfaceIpConfigurationPtrOutput) ToHciNetworkInterfaceIpConfigurationPtrOutputWithContext(ctx context.Context) HciNetworkInterfaceIpConfigurationPtrOutput { + return o +} + +func (o HciNetworkInterfaceIpConfigurationPtrOutput) Elem() HciNetworkInterfaceIpConfigurationOutput { + return o.ApplyT(func(v *HciNetworkInterfaceIpConfiguration) HciNetworkInterfaceIpConfiguration { + if v != nil { + return *v + } + var ret HciNetworkInterfaceIpConfiguration + return ret + }).(HciNetworkInterfaceIpConfigurationOutput) +} + +// The IPv4 address of the gateway for the Network Interface. +func (o HciNetworkInterfaceIpConfigurationPtrOutput) Gateway() pulumi.StringPtrOutput { + return o.ApplyT(func(v *HciNetworkInterfaceIpConfiguration) *string { + if v == nil { + return nil + } + return v.Gateway + }).(pulumi.StringPtrOutput) +} + +// The prefix length for the address of the Network Interface. +func (o HciNetworkInterfaceIpConfigurationPtrOutput) PrefixLength() pulumi.StringPtrOutput { + return o.ApplyT(func(v *HciNetworkInterfaceIpConfiguration) *string { + if v == nil { + return nil + } + return v.PrefixLength + }).(pulumi.StringPtrOutput) +} + +// The IPv4 address of the IP configuration. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceIpConfigurationPtrOutput) PrivateIpAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v *HciNetworkInterfaceIpConfiguration) *string { + if v == nil { + return nil + } + return v.PrivateIpAddress + }).(pulumi.StringPtrOutput) +} + +// The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. +func (o HciNetworkInterfaceIpConfigurationPtrOutput) SubnetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *HciNetworkInterfaceIpConfiguration) *string { + if v == nil { + return nil + } + return &v.SubnetId + }).(pulumi.StringPtrOutput) +} + type GetHciClusterIdentity struct { // The Principal ID associated with this Managed Service Identity. PrincipalId string `pulumi:"principalId"` @@ -2696,6 +2898,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*HciLogicalNetworkSubnetRouteArrayInput)(nil)).Elem(), HciLogicalNetworkSubnetRouteArray{}) pulumi.RegisterInputType(reflect.TypeOf((*HciMarketplaceGalleryImageIdentifierInput)(nil)).Elem(), HciMarketplaceGalleryImageIdentifierArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*HciMarketplaceGalleryImageIdentifierPtrInput)(nil)).Elem(), HciMarketplaceGalleryImageIdentifierArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*HciNetworkInterfaceIpConfigurationInput)(nil)).Elem(), HciNetworkInterfaceIpConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*HciNetworkInterfaceIpConfigurationPtrInput)(nil)).Elem(), HciNetworkInterfaceIpConfigurationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHciClusterIdentityInput)(nil)).Elem(), GetHciClusterIdentityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetHciClusterIdentityArrayInput)(nil)).Elem(), GetHciClusterIdentityArray{}) pulumi.RegisterOutputType(HciClusterIdentityOutput{}) @@ -2730,6 +2934,8 @@ func init() { pulumi.RegisterOutputType(HciLogicalNetworkSubnetRouteArrayOutput{}) pulumi.RegisterOutputType(HciMarketplaceGalleryImageIdentifierOutput{}) pulumi.RegisterOutputType(HciMarketplaceGalleryImageIdentifierPtrOutput{}) + pulumi.RegisterOutputType(HciNetworkInterfaceIpConfigurationOutput{}) + pulumi.RegisterOutputType(HciNetworkInterfaceIpConfigurationPtrOutput{}) pulumi.RegisterOutputType(GetHciClusterIdentityOutput{}) pulumi.RegisterOutputType(GetHciClusterIdentityArrayOutput{}) } diff --git a/sdk/go/azure/storage/account.go b/sdk/go/azure/storage/account.go index e92ffa5fd0..867063ad49 100644 --- a/sdk/go/azure/storage/account.go +++ b/sdk/go/azure/storage/account.go @@ -293,7 +293,9 @@ type Account struct { // A `queueProperties` block as defined below. // // > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. - QueueProperties AccountQueuePropertiesOutput `pulumi:"queueProperties"` + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + QueueProperties AccountQueuePropertiesTypeOutput `pulumi:"queueProperties"` // The name of the resource group in which to create the storage account. Changing this forces a new resource to be created. ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` // A `routing` block as defined below. @@ -386,7 +388,9 @@ type Account struct { // > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. // // > **Note:** If `staticWebsite` is specified, the service will automatically create a `storage.Container` named `$web`. - StaticWebsite AccountStaticWebsitePtrOutput `pulumi:"staticWebsite"` + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + StaticWebsite AccountStaticWebsiteTypeOutput `pulumi:"staticWebsite"` // The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. // // > **Note:** `queueEncryptionKeyType` and `tableEncryptionKeyType` cannot be set to `Account` when `accountKind` is set `Storage` @@ -594,7 +598,9 @@ type accountState struct { // A `queueProperties` block as defined below. // // > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. - QueueProperties *AccountQueueProperties `pulumi:"queueProperties"` + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + QueueProperties *AccountQueuePropertiesType `pulumi:"queueProperties"` // The name of the resource group in which to create the storage account. Changing this forces a new resource to be created. ResourceGroupName *string `pulumi:"resourceGroupName"` // A `routing` block as defined below. @@ -687,7 +693,9 @@ type accountState struct { // > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. // // > **Note:** If `staticWebsite` is specified, the service will automatically create a `storage.Container` named `$web`. - StaticWebsite *AccountStaticWebsite `pulumi:"staticWebsite"` + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + StaticWebsite *AccountStaticWebsiteType `pulumi:"staticWebsite"` // The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. // // > **Note:** `queueEncryptionKeyType` and `tableEncryptionKeyType` cannot be set to `Account` when `accountKind` is set `Storage` @@ -848,7 +856,9 @@ type AccountState struct { // A `queueProperties` block as defined below. // // > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. - QueueProperties AccountQueuePropertiesPtrInput + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + QueueProperties AccountQueuePropertiesTypePtrInput // The name of the resource group in which to create the storage account. Changing this forces a new resource to be created. ResourceGroupName pulumi.StringPtrInput // A `routing` block as defined below. @@ -941,7 +951,9 @@ type AccountState struct { // > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. // // > **Note:** If `staticWebsite` is specified, the service will automatically create a `storage.Container` named `$web`. - StaticWebsite AccountStaticWebsitePtrInput + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + StaticWebsite AccountStaticWebsiteTypePtrInput // The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. // // > **Note:** `queueEncryptionKeyType` and `tableEncryptionKeyType` cannot be set to `Account` when `accountKind` is set `Storage` @@ -1034,7 +1046,9 @@ type accountArgs struct { // A `queueProperties` block as defined below. // // > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. - QueueProperties *AccountQueueProperties `pulumi:"queueProperties"` + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + QueueProperties *AccountQueuePropertiesType `pulumi:"queueProperties"` // The name of the resource group in which to create the storage account. Changing this forces a new resource to be created. ResourceGroupName string `pulumi:"resourceGroupName"` // A `routing` block as defined below. @@ -1055,7 +1069,9 @@ type accountArgs struct { // > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. // // > **Note:** If `staticWebsite` is specified, the service will automatically create a `storage.Container` named `$web`. - StaticWebsite *AccountStaticWebsite `pulumi:"staticWebsite"` + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + StaticWebsite *AccountStaticWebsiteType `pulumi:"staticWebsite"` // The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. // // > **Note:** `queueEncryptionKeyType` and `tableEncryptionKeyType` cannot be set to `Account` when `accountKind` is set `Storage` @@ -1145,7 +1161,9 @@ type AccountArgs struct { // A `queueProperties` block as defined below. // // > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. - QueueProperties AccountQueuePropertiesPtrInput + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + QueueProperties AccountQueuePropertiesTypePtrInput // The name of the resource group in which to create the storage account. Changing this forces a new resource to be created. ResourceGroupName pulumi.StringInput // A `routing` block as defined below. @@ -1166,7 +1184,9 @@ type AccountArgs struct { // > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. // // > **Note:** If `staticWebsite` is specified, the service will automatically create a `storage.Container` named `$web`. - StaticWebsite AccountStaticWebsitePtrInput + // + // Deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + StaticWebsite AccountStaticWebsiteTypePtrInput // The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. // // > **Note:** `queueEncryptionKeyType` and `tableEncryptionKeyType` cannot be set to `Account` when `accountKind` is set `Storage` @@ -1605,8 +1625,10 @@ func (o AccountOutput) QueueEncryptionKeyType() pulumi.StringPtrOutput { // A `queueProperties` block as defined below. // // > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. -func (o AccountOutput) QueueProperties() AccountQueuePropertiesOutput { - return o.ApplyT(func(v *Account) AccountQueuePropertiesOutput { return v.QueueProperties }).(AccountQueuePropertiesOutput) +// +// Deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider +func (o AccountOutput) QueueProperties() AccountQueuePropertiesTypeOutput { + return o.ApplyT(func(v *Account) AccountQueuePropertiesTypeOutput { return v.QueueProperties }).(AccountQueuePropertiesTypeOutput) } // The name of the resource group in which to create the storage account. Changing this forces a new resource to be created. @@ -1827,8 +1849,10 @@ func (o AccountOutput) SharedAccessKeyEnabled() pulumi.BoolPtrOutput { // > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. // // > **Note:** If `staticWebsite` is specified, the service will automatically create a `storage.Container` named `$web`. -func (o AccountOutput) StaticWebsite() AccountStaticWebsitePtrOutput { - return o.ApplyT(func(v *Account) AccountStaticWebsitePtrOutput { return v.StaticWebsite }).(AccountStaticWebsitePtrOutput) +// +// Deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider +func (o AccountOutput) StaticWebsite() AccountStaticWebsiteTypeOutput { + return o.ApplyT(func(v *Account) AccountStaticWebsiteTypeOutput { return v.StaticWebsite }).(AccountStaticWebsiteTypeOutput) } // The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. diff --git a/sdk/go/azure/storage/accountQueueProperties.go b/sdk/go/azure/storage/accountQueueProperties.go new file mode 100644 index 0000000000..81d9fc321b --- /dev/null +++ b/sdk/go/azure/storage/accountQueueProperties.go @@ -0,0 +1,379 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package storage + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages the Queue Properties of an Azure Storage Account. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/storage" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example-resources"), +// Location: pulumi.String("West Europe"), +// }) +// if err != nil { +// return err +// } +// exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{ +// Name: pulumi.String("storageaccountname"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// AccountTier: pulumi.String("Standard"), +// AccountReplicationType: pulumi.String("GRS"), +// Tags: pulumi.StringMap{ +// "environment": pulumi.String("staging"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = storage.NewAccountQueueProperties(ctx, "example", &storage.AccountQueuePropertiesArgs{ +// StorageAccountId: exampleAccount.ID(), +// CorsRules: storage.AccountQueuePropertiesCorsRuleArray{ +// &storage.AccountQueuePropertiesCorsRuleArgs{ +// AllowedOrigins: pulumi.StringArray{ +// pulumi.String("http://www.example.com"), +// }, +// ExposedHeaders: pulumi.StringArray{ +// pulumi.String("x-tempo-*"), +// }, +// AllowedHeaders: pulumi.StringArray{ +// pulumi.String("x-tempo-*"), +// }, +// AllowedMethods: pulumi.StringArray{ +// pulumi.String("GET"), +// pulumi.String("PUT"), +// }, +// MaxAgeInSeconds: pulumi.Int(500), +// }, +// }, +// Logging: &storage.AccountQueuePropertiesLoggingArgs{ +// Version: pulumi.String("1.0"), +// Delete: pulumi.Bool(true), +// Read: pulumi.Bool(true), +// Write: pulumi.Bool(true), +// RetentionPolicyDays: pulumi.Int(7), +// }, +// HourMetrics: &storage.AccountQueuePropertiesHourMetricsArgs{ +// Version: pulumi.String("1.0"), +// RetentionPolicyDays: pulumi.Int(7), +// }, +// MinuteMetrics: &storage.AccountQueuePropertiesMinuteMetricsArgs{ +// Version: pulumi.String("1.0"), +// RetentionPolicyDays: pulumi.Int(7), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Storage Account Queue Properties can be imported using the `resource id`, e.g. +// +// ```sh +// $ pulumi import azure:storage/accountQueueProperties:AccountQueueProperties queueprops /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount +// ``` +type AccountQueueProperties struct { + pulumi.CustomResourceState + + // A `corsRule` block as defined above. + CorsRules AccountQueuePropertiesCorsRuleArrayOutput `pulumi:"corsRules"` + // A `hourMetrics` block as defined below. + // + // > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + HourMetrics AccountQueuePropertiesHourMetricsOutput `pulumi:"hourMetrics"` + // A `logging` block as defined below. + Logging AccountQueuePropertiesLoggingOutput `pulumi:"logging"` + // A `minuteMetrics` block as defined below. + MinuteMetrics AccountQueuePropertiesMinuteMetricsOutput `pulumi:"minuteMetrics"` + // The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + StorageAccountId pulumi.StringOutput `pulumi:"storageAccountId"` +} + +// NewAccountQueueProperties registers a new resource with the given unique name, arguments, and options. +func NewAccountQueueProperties(ctx *pulumi.Context, + name string, args *AccountQueuePropertiesArgs, opts ...pulumi.ResourceOption) (*AccountQueueProperties, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.StorageAccountId == nil { + return nil, errors.New("invalid value for required argument 'StorageAccountId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccountQueueProperties + err := ctx.RegisterResource("azure:storage/accountQueueProperties:AccountQueueProperties", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountQueueProperties gets an existing AccountQueueProperties resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccountQueueProperties(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountQueuePropertiesState, opts ...pulumi.ResourceOption) (*AccountQueueProperties, error) { + var resource AccountQueueProperties + err := ctx.ReadResource("azure:storage/accountQueueProperties:AccountQueueProperties", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountQueueProperties resources. +type accountQueuePropertiesState struct { + // A `corsRule` block as defined above. + CorsRules []AccountQueuePropertiesCorsRule `pulumi:"corsRules"` + // A `hourMetrics` block as defined below. + // + // > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + HourMetrics *AccountQueuePropertiesHourMetrics `pulumi:"hourMetrics"` + // A `logging` block as defined below. + Logging *AccountQueuePropertiesLogging `pulumi:"logging"` + // A `minuteMetrics` block as defined below. + MinuteMetrics *AccountQueuePropertiesMinuteMetrics `pulumi:"minuteMetrics"` + // The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + StorageAccountId *string `pulumi:"storageAccountId"` +} + +type AccountQueuePropertiesState struct { + // A `corsRule` block as defined above. + CorsRules AccountQueuePropertiesCorsRuleArrayInput + // A `hourMetrics` block as defined below. + // + // > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + HourMetrics AccountQueuePropertiesHourMetricsPtrInput + // A `logging` block as defined below. + Logging AccountQueuePropertiesLoggingPtrInput + // A `minuteMetrics` block as defined below. + MinuteMetrics AccountQueuePropertiesMinuteMetricsPtrInput + // The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + StorageAccountId pulumi.StringPtrInput +} + +func (AccountQueuePropertiesState) ElementType() reflect.Type { + return reflect.TypeOf((*accountQueuePropertiesState)(nil)).Elem() +} + +type accountQueuePropertiesArgs struct { + // A `corsRule` block as defined above. + CorsRules []AccountQueuePropertiesCorsRule `pulumi:"corsRules"` + // A `hourMetrics` block as defined below. + // + // > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + HourMetrics *AccountQueuePropertiesHourMetrics `pulumi:"hourMetrics"` + // A `logging` block as defined below. + Logging *AccountQueuePropertiesLogging `pulumi:"logging"` + // A `minuteMetrics` block as defined below. + MinuteMetrics *AccountQueuePropertiesMinuteMetrics `pulumi:"minuteMetrics"` + // The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + StorageAccountId string `pulumi:"storageAccountId"` +} + +// The set of arguments for constructing a AccountQueueProperties resource. +type AccountQueuePropertiesArgs struct { + // A `corsRule` block as defined above. + CorsRules AccountQueuePropertiesCorsRuleArrayInput + // A `hourMetrics` block as defined below. + // + // > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + HourMetrics AccountQueuePropertiesHourMetricsPtrInput + // A `logging` block as defined below. + Logging AccountQueuePropertiesLoggingPtrInput + // A `minuteMetrics` block as defined below. + MinuteMetrics AccountQueuePropertiesMinuteMetricsPtrInput + // The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + StorageAccountId pulumi.StringInput +} + +func (AccountQueuePropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountQueuePropertiesArgs)(nil)).Elem() +} + +type AccountQueuePropertiesInput interface { + pulumi.Input + + ToAccountQueuePropertiesOutput() AccountQueuePropertiesOutput + ToAccountQueuePropertiesOutputWithContext(ctx context.Context) AccountQueuePropertiesOutput +} + +func (*AccountQueueProperties) ElementType() reflect.Type { + return reflect.TypeOf((**AccountQueueProperties)(nil)).Elem() +} + +func (i *AccountQueueProperties) ToAccountQueuePropertiesOutput() AccountQueuePropertiesOutput { + return i.ToAccountQueuePropertiesOutputWithContext(context.Background()) +} + +func (i *AccountQueueProperties) ToAccountQueuePropertiesOutputWithContext(ctx context.Context) AccountQueuePropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesOutput) +} + +// AccountQueuePropertiesArrayInput is an input type that accepts AccountQueuePropertiesArray and AccountQueuePropertiesArrayOutput values. +// You can construct a concrete instance of `AccountQueuePropertiesArrayInput` via: +// +// AccountQueuePropertiesArray{ AccountQueuePropertiesArgs{...} } +type AccountQueuePropertiesArrayInput interface { + pulumi.Input + + ToAccountQueuePropertiesArrayOutput() AccountQueuePropertiesArrayOutput + ToAccountQueuePropertiesArrayOutputWithContext(context.Context) AccountQueuePropertiesArrayOutput +} + +type AccountQueuePropertiesArray []AccountQueuePropertiesInput + +func (AccountQueuePropertiesArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountQueueProperties)(nil)).Elem() +} + +func (i AccountQueuePropertiesArray) ToAccountQueuePropertiesArrayOutput() AccountQueuePropertiesArrayOutput { + return i.ToAccountQueuePropertiesArrayOutputWithContext(context.Background()) +} + +func (i AccountQueuePropertiesArray) ToAccountQueuePropertiesArrayOutputWithContext(ctx context.Context) AccountQueuePropertiesArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesArrayOutput) +} + +// AccountQueuePropertiesMapInput is an input type that accepts AccountQueuePropertiesMap and AccountQueuePropertiesMapOutput values. +// You can construct a concrete instance of `AccountQueuePropertiesMapInput` via: +// +// AccountQueuePropertiesMap{ "key": AccountQueuePropertiesArgs{...} } +type AccountQueuePropertiesMapInput interface { + pulumi.Input + + ToAccountQueuePropertiesMapOutput() AccountQueuePropertiesMapOutput + ToAccountQueuePropertiesMapOutputWithContext(context.Context) AccountQueuePropertiesMapOutput +} + +type AccountQueuePropertiesMap map[string]AccountQueuePropertiesInput + +func (AccountQueuePropertiesMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountQueueProperties)(nil)).Elem() +} + +func (i AccountQueuePropertiesMap) ToAccountQueuePropertiesMapOutput() AccountQueuePropertiesMapOutput { + return i.ToAccountQueuePropertiesMapOutputWithContext(context.Background()) +} + +func (i AccountQueuePropertiesMap) ToAccountQueuePropertiesMapOutputWithContext(ctx context.Context) AccountQueuePropertiesMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesMapOutput) +} + +type AccountQueuePropertiesOutput struct{ *pulumi.OutputState } + +func (AccountQueuePropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountQueueProperties)(nil)).Elem() +} + +func (o AccountQueuePropertiesOutput) ToAccountQueuePropertiesOutput() AccountQueuePropertiesOutput { + return o +} + +func (o AccountQueuePropertiesOutput) ToAccountQueuePropertiesOutputWithContext(ctx context.Context) AccountQueuePropertiesOutput { + return o +} + +// A `corsRule` block as defined above. +func (o AccountQueuePropertiesOutput) CorsRules() AccountQueuePropertiesCorsRuleArrayOutput { + return o.ApplyT(func(v *AccountQueueProperties) AccountQueuePropertiesCorsRuleArrayOutput { return v.CorsRules }).(AccountQueuePropertiesCorsRuleArrayOutput) +} + +// A `hourMetrics` block as defined below. +// +// > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. +func (o AccountQueuePropertiesOutput) HourMetrics() AccountQueuePropertiesHourMetricsOutput { + return o.ApplyT(func(v *AccountQueueProperties) AccountQueuePropertiesHourMetricsOutput { return v.HourMetrics }).(AccountQueuePropertiesHourMetricsOutput) +} + +// A `logging` block as defined below. +func (o AccountQueuePropertiesOutput) Logging() AccountQueuePropertiesLoggingOutput { + return o.ApplyT(func(v *AccountQueueProperties) AccountQueuePropertiesLoggingOutput { return v.Logging }).(AccountQueuePropertiesLoggingOutput) +} + +// A `minuteMetrics` block as defined below. +func (o AccountQueuePropertiesOutput) MinuteMetrics() AccountQueuePropertiesMinuteMetricsOutput { + return o.ApplyT(func(v *AccountQueueProperties) AccountQueuePropertiesMinuteMetricsOutput { return v.MinuteMetrics }).(AccountQueuePropertiesMinuteMetricsOutput) +} + +// The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. +func (o AccountQueuePropertiesOutput) StorageAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *AccountQueueProperties) pulumi.StringOutput { return v.StorageAccountId }).(pulumi.StringOutput) +} + +type AccountQueuePropertiesArrayOutput struct{ *pulumi.OutputState } + +func (AccountQueuePropertiesArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountQueueProperties)(nil)).Elem() +} + +func (o AccountQueuePropertiesArrayOutput) ToAccountQueuePropertiesArrayOutput() AccountQueuePropertiesArrayOutput { + return o +} + +func (o AccountQueuePropertiesArrayOutput) ToAccountQueuePropertiesArrayOutputWithContext(ctx context.Context) AccountQueuePropertiesArrayOutput { + return o +} + +func (o AccountQueuePropertiesArrayOutput) Index(i pulumi.IntInput) AccountQueuePropertiesOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccountQueueProperties { + return vs[0].([]*AccountQueueProperties)[vs[1].(int)] + }).(AccountQueuePropertiesOutput) +} + +type AccountQueuePropertiesMapOutput struct{ *pulumi.OutputState } + +func (AccountQueuePropertiesMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountQueueProperties)(nil)).Elem() +} + +func (o AccountQueuePropertiesMapOutput) ToAccountQueuePropertiesMapOutput() AccountQueuePropertiesMapOutput { + return o +} + +func (o AccountQueuePropertiesMapOutput) ToAccountQueuePropertiesMapOutputWithContext(ctx context.Context) AccountQueuePropertiesMapOutput { + return o +} + +func (o AccountQueuePropertiesMapOutput) MapIndex(k pulumi.StringInput) AccountQueuePropertiesOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccountQueueProperties { + return vs[0].(map[string]*AccountQueueProperties)[vs[1].(string)] + }).(AccountQueuePropertiesOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesInput)(nil)).Elem(), &AccountQueueProperties{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesArrayInput)(nil)).Elem(), AccountQueuePropertiesArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesMapInput)(nil)).Elem(), AccountQueuePropertiesMap{}) + pulumi.RegisterOutputType(AccountQueuePropertiesOutput{}) + pulumi.RegisterOutputType(AccountQueuePropertiesArrayOutput{}) + pulumi.RegisterOutputType(AccountQueuePropertiesMapOutput{}) +} diff --git a/sdk/go/azure/storage/accountStaticWebsite.go b/sdk/go/azure/storage/accountStaticWebsite.go new file mode 100644 index 0000000000..f334e35d4c --- /dev/null +++ b/sdk/go/azure/storage/accountStaticWebsite.go @@ -0,0 +1,306 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package storage + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages the Static Website of an Azure Storage Account. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/storage" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example-resources"), +// Location: pulumi.String("West Europe"), +// }) +// if err != nil { +// return err +// } +// _, err = storage.NewAccount(ctx, "example", &storage.AccountArgs{ +// Name: pulumi.String("storageaccountname"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// AccountTier: pulumi.String("Standard"), +// AccountReplicationType: pulumi.String("GRS"), +// Tags: pulumi.StringMap{ +// "environment": pulumi.String("staging"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = storage.NewAccountStaticWebsite(ctx, "test", &storage.AccountStaticWebsiteArgs{ +// StorageAccountId: pulumi.Any(testAzurermStorageAccount.Id), +// Error404Document: pulumi.String("custom_not_found.html"), +// IndexDocument: pulumi.String("custom_index.html"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// Storage Account Static Websites can be imported using the `resource id`, e.g. +// +// ```sh +// $ pulumi import azure:storage/accountStaticWebsite:AccountStaticWebsite mysite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount +// ``` +type AccountStaticWebsite struct { + pulumi.CustomResourceState + + // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + Error404Document pulumi.StringPtrOutput `pulumi:"error404Document"` + // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + IndexDocument pulumi.StringPtrOutput `pulumi:"indexDocument"` + // The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + StorageAccountId pulumi.StringOutput `pulumi:"storageAccountId"` +} + +// NewAccountStaticWebsite registers a new resource with the given unique name, arguments, and options. +func NewAccountStaticWebsite(ctx *pulumi.Context, + name string, args *AccountStaticWebsiteArgs, opts ...pulumi.ResourceOption) (*AccountStaticWebsite, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.StorageAccountId == nil { + return nil, errors.New("invalid value for required argument 'StorageAccountId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource AccountStaticWebsite + err := ctx.RegisterResource("azure:storage/accountStaticWebsite:AccountStaticWebsite", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountStaticWebsite gets an existing AccountStaticWebsite resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccountStaticWebsite(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountStaticWebsiteState, opts ...pulumi.ResourceOption) (*AccountStaticWebsite, error) { + var resource AccountStaticWebsite + err := ctx.ReadResource("azure:storage/accountStaticWebsite:AccountStaticWebsite", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountStaticWebsite resources. +type accountStaticWebsiteState struct { + // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + Error404Document *string `pulumi:"error404Document"` + // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + IndexDocument *string `pulumi:"indexDocument"` + // The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + StorageAccountId *string `pulumi:"storageAccountId"` +} + +type AccountStaticWebsiteState struct { + // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + Error404Document pulumi.StringPtrInput + // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + IndexDocument pulumi.StringPtrInput + // The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + StorageAccountId pulumi.StringPtrInput +} + +func (AccountStaticWebsiteState) ElementType() reflect.Type { + return reflect.TypeOf((*accountStaticWebsiteState)(nil)).Elem() +} + +type accountStaticWebsiteArgs struct { + // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + Error404Document *string `pulumi:"error404Document"` + // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + IndexDocument *string `pulumi:"indexDocument"` + // The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + StorageAccountId string `pulumi:"storageAccountId"` +} + +// The set of arguments for constructing a AccountStaticWebsite resource. +type AccountStaticWebsiteArgs struct { + // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + Error404Document pulumi.StringPtrInput + // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + IndexDocument pulumi.StringPtrInput + // The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + StorageAccountId pulumi.StringInput +} + +func (AccountStaticWebsiteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountStaticWebsiteArgs)(nil)).Elem() +} + +type AccountStaticWebsiteInput interface { + pulumi.Input + + ToAccountStaticWebsiteOutput() AccountStaticWebsiteOutput + ToAccountStaticWebsiteOutputWithContext(ctx context.Context) AccountStaticWebsiteOutput +} + +func (*AccountStaticWebsite) ElementType() reflect.Type { + return reflect.TypeOf((**AccountStaticWebsite)(nil)).Elem() +} + +func (i *AccountStaticWebsite) ToAccountStaticWebsiteOutput() AccountStaticWebsiteOutput { + return i.ToAccountStaticWebsiteOutputWithContext(context.Background()) +} + +func (i *AccountStaticWebsite) ToAccountStaticWebsiteOutputWithContext(ctx context.Context) AccountStaticWebsiteOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteOutput) +} + +// AccountStaticWebsiteArrayInput is an input type that accepts AccountStaticWebsiteArray and AccountStaticWebsiteArrayOutput values. +// You can construct a concrete instance of `AccountStaticWebsiteArrayInput` via: +// +// AccountStaticWebsiteArray{ AccountStaticWebsiteArgs{...} } +type AccountStaticWebsiteArrayInput interface { + pulumi.Input + + ToAccountStaticWebsiteArrayOutput() AccountStaticWebsiteArrayOutput + ToAccountStaticWebsiteArrayOutputWithContext(context.Context) AccountStaticWebsiteArrayOutput +} + +type AccountStaticWebsiteArray []AccountStaticWebsiteInput + +func (AccountStaticWebsiteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountStaticWebsite)(nil)).Elem() +} + +func (i AccountStaticWebsiteArray) ToAccountStaticWebsiteArrayOutput() AccountStaticWebsiteArrayOutput { + return i.ToAccountStaticWebsiteArrayOutputWithContext(context.Background()) +} + +func (i AccountStaticWebsiteArray) ToAccountStaticWebsiteArrayOutputWithContext(ctx context.Context) AccountStaticWebsiteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteArrayOutput) +} + +// AccountStaticWebsiteMapInput is an input type that accepts AccountStaticWebsiteMap and AccountStaticWebsiteMapOutput values. +// You can construct a concrete instance of `AccountStaticWebsiteMapInput` via: +// +// AccountStaticWebsiteMap{ "key": AccountStaticWebsiteArgs{...} } +type AccountStaticWebsiteMapInput interface { + pulumi.Input + + ToAccountStaticWebsiteMapOutput() AccountStaticWebsiteMapOutput + ToAccountStaticWebsiteMapOutputWithContext(context.Context) AccountStaticWebsiteMapOutput +} + +type AccountStaticWebsiteMap map[string]AccountStaticWebsiteInput + +func (AccountStaticWebsiteMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountStaticWebsite)(nil)).Elem() +} + +func (i AccountStaticWebsiteMap) ToAccountStaticWebsiteMapOutput() AccountStaticWebsiteMapOutput { + return i.ToAccountStaticWebsiteMapOutputWithContext(context.Background()) +} + +func (i AccountStaticWebsiteMap) ToAccountStaticWebsiteMapOutputWithContext(ctx context.Context) AccountStaticWebsiteMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteMapOutput) +} + +type AccountStaticWebsiteOutput struct{ *pulumi.OutputState } + +func (AccountStaticWebsiteOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountStaticWebsite)(nil)).Elem() +} + +func (o AccountStaticWebsiteOutput) ToAccountStaticWebsiteOutput() AccountStaticWebsiteOutput { + return o +} + +func (o AccountStaticWebsiteOutput) ToAccountStaticWebsiteOutputWithContext(ctx context.Context) AccountStaticWebsiteOutput { + return o +} + +// The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. +func (o AccountStaticWebsiteOutput) Error404Document() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountStaticWebsite) pulumi.StringPtrOutput { return v.Error404Document }).(pulumi.StringPtrOutput) +} + +// The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. +func (o AccountStaticWebsiteOutput) IndexDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountStaticWebsite) pulumi.StringPtrOutput { return v.IndexDocument }).(pulumi.StringPtrOutput) +} + +// The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. +func (o AccountStaticWebsiteOutput) StorageAccountId() pulumi.StringOutput { + return o.ApplyT(func(v *AccountStaticWebsite) pulumi.StringOutput { return v.StorageAccountId }).(pulumi.StringOutput) +} + +type AccountStaticWebsiteArrayOutput struct{ *pulumi.OutputState } + +func (AccountStaticWebsiteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*AccountStaticWebsite)(nil)).Elem() +} + +func (o AccountStaticWebsiteArrayOutput) ToAccountStaticWebsiteArrayOutput() AccountStaticWebsiteArrayOutput { + return o +} + +func (o AccountStaticWebsiteArrayOutput) ToAccountStaticWebsiteArrayOutputWithContext(ctx context.Context) AccountStaticWebsiteArrayOutput { + return o +} + +func (o AccountStaticWebsiteArrayOutput) Index(i pulumi.IntInput) AccountStaticWebsiteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccountStaticWebsite { + return vs[0].([]*AccountStaticWebsite)[vs[1].(int)] + }).(AccountStaticWebsiteOutput) +} + +type AccountStaticWebsiteMapOutput struct{ *pulumi.OutputState } + +func (AccountStaticWebsiteMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*AccountStaticWebsite)(nil)).Elem() +} + +func (o AccountStaticWebsiteMapOutput) ToAccountStaticWebsiteMapOutput() AccountStaticWebsiteMapOutput { + return o +} + +func (o AccountStaticWebsiteMapOutput) ToAccountStaticWebsiteMapOutputWithContext(ctx context.Context) AccountStaticWebsiteMapOutput { + return o +} + +func (o AccountStaticWebsiteMapOutput) MapIndex(k pulumi.StringInput) AccountStaticWebsiteOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccountStaticWebsite { + return vs[0].(map[string]*AccountStaticWebsite)[vs[1].(string)] + }).(AccountStaticWebsiteOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*AccountStaticWebsiteInput)(nil)).Elem(), &AccountStaticWebsite{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountStaticWebsiteArrayInput)(nil)).Elem(), AccountStaticWebsiteArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountStaticWebsiteMapInput)(nil)).Elem(), AccountStaticWebsiteMap{}) + pulumi.RegisterOutputType(AccountStaticWebsiteOutput{}) + pulumi.RegisterOutputType(AccountStaticWebsiteArrayOutput{}) + pulumi.RegisterOutputType(AccountStaticWebsiteMapOutput{}) +} diff --git a/sdk/go/azure/storage/container.go b/sdk/go/azure/storage/container.go index 728e5471b7..020e753ca8 100644 --- a/sdk/go/azure/storage/container.go +++ b/sdk/go/azure/storage/container.go @@ -7,7 +7,6 @@ import ( "context" "reflect" - "errors" "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) @@ -51,7 +50,7 @@ import ( // } // _, err = storage.NewContainer(ctx, "example", &storage.ContainerArgs{ // Name: pulumi.String("vhds"), -// StorageAccountName: exampleAccount.Name, +// StorageAccountId: exampleAccount.ID(), // ContainerAccessType: pulumi.String("private"), // }) // if err != nil { @@ -90,21 +89,26 @@ type Container struct { // The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. Name pulumi.StringOutput `pulumi:"name"` // The Resource Manager ID of this Storage Container. + // + // Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. ResourceManagerId pulumi.StringOutput `pulumi:"resourceManagerId"` // The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. - StorageAccountName pulumi.StringOutput `pulumi:"storageAccountName"` + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrOutput `pulumi:"storageAccountId"` + // 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 `storageAccountId`. + // + // Deprecated: the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. + StorageAccountName pulumi.StringPtrOutput `pulumi:"storageAccountName"` } // NewContainer registers a new resource with the given unique name, arguments, and options. func NewContainer(ctx *pulumi.Context, name string, args *ContainerArgs, opts ...pulumi.ResourceOption) (*Container, error) { if args == nil { - return nil, errors.New("missing one or more required arguments") + args = &ContainerArgs{} } - if args.StorageAccountName == nil { - return nil, errors.New("invalid value for required argument 'StorageAccountName'") - } opts = internal.PkgResourceDefaultOpts(opts) var resource Container err := ctx.RegisterResource("azure:storage/container:Container", name, args, &resource, opts...) @@ -145,8 +149,16 @@ type containerState struct { // The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. Name *string `pulumi:"name"` // The Resource Manager ID of this Storage Container. + // + // Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. ResourceManagerId *string `pulumi:"resourceManagerId"` // The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId *string `pulumi:"storageAccountId"` + // 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 `storageAccountId`. + // + // Deprecated: the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. StorageAccountName *string `pulumi:"storageAccountName"` } @@ -168,8 +180,16 @@ type ContainerState struct { // The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. Name pulumi.StringPtrInput // The Resource Manager ID of this Storage Container. + // + // Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. ResourceManagerId pulumi.StringPtrInput // The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrInput + // 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 `storageAccountId`. + // + // Deprecated: the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. StorageAccountName pulumi.StringPtrInput } @@ -191,7 +211,13 @@ type containerArgs struct { // The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. Name *string `pulumi:"name"` // The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. - StorageAccountName string `pulumi:"storageAccountName"` + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId *string `pulumi:"storageAccountId"` + // 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 `storageAccountId`. + // + // Deprecated: the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. + StorageAccountName *string `pulumi:"storageAccountName"` } // The set of arguments for constructing a Container resource. @@ -209,7 +235,13 @@ type ContainerArgs struct { // The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. Name pulumi.StringPtrInput // The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. - StorageAccountName pulumi.StringInput + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrInput + // 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 `storageAccountId`. + // + // Deprecated: the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. + StorageAccountName pulumi.StringPtrInput } func (ContainerArgs) ElementType() reflect.Type { @@ -337,13 +369,24 @@ func (o ContainerOutput) Name() pulumi.StringOutput { } // The Resource Manager ID of this Storage Container. +// +// Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. func (o ContainerOutput) ResourceManagerId() pulumi.StringOutput { return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.ResourceManagerId }).(pulumi.StringOutput) } // The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. -func (o ContainerOutput) StorageAccountName() pulumi.StringOutput { - return o.ApplyT(func(v *Container) pulumi.StringOutput { return v.StorageAccountName }).(pulumi.StringOutput) +// +// > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. +func (o ContainerOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.StorageAccountId }).(pulumi.StringPtrOutput) +} + +// 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 `storageAccountId`. +// +// Deprecated: the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. +func (o ContainerOutput) StorageAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Container) pulumi.StringPtrOutput { return v.StorageAccountName }).(pulumi.StringPtrOutput) } type ContainerArrayOutput struct{ *pulumi.OutputState } diff --git a/sdk/go/azure/storage/getShare.go b/sdk/go/azure/storage/getShare.go index 7c6474617e..0c2d0d5c1e 100644 --- a/sdk/go/azure/storage/getShare.go +++ b/sdk/go/azure/storage/getShare.go @@ -29,14 +29,20 @@ import ( // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// example, err := storage.LookupShare(ctx, &storage.LookupShareArgs{ -// Name: "existing", -// StorageAccountName: "existing", +// example, err := storage.LookupAccount(ctx, &storage.LookupAccountArgs{ +// Name: "exampleaccount", +// ResourceGroupName: pulumi.StringRef("examples"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = storage.LookupShare(ctx, &storage.LookupShareArgs{ +// Name: "existing", +// StorageAccountId: pulumi.StringRef(example.Id), // }, nil) // if err != nil { // return err // } -// ctx.Export("id", example.Id) // return nil // }) // } @@ -60,8 +66,12 @@ type LookupShareArgs struct { Metadata map[string]string `pulumi:"metadata"` // The name of the share. Name string `pulumi:"name"` - // The name of the storage account. - StorageAccountName string `pulumi:"storageAccountName"` + // The ID of the storage account in which the share exists. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId *string `pulumi:"storageAccountId"` + // The name of the storage account in which the share exists. This property is deprecated in favour of `storageAccountId`. + StorageAccountName *string `pulumi:"storageAccountName"` } // A collection of values returned by getShare. @@ -74,9 +84,11 @@ type LookupShareResult struct { Metadata map[string]string `pulumi:"metadata"` Name string `pulumi:"name"` // The quota of the File Share in GB. - Quota int `pulumi:"quota"` - ResourceManagerId string `pulumi:"resourceManagerId"` - StorageAccountName string `pulumi:"storageAccountName"` + Quota int `pulumi:"quota"` + // Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + ResourceManagerId string `pulumi:"resourceManagerId"` + StorageAccountId *string `pulumi:"storageAccountId"` + StorageAccountName *string `pulumi:"storageAccountName"` } func LookupShareOutput(ctx *pulumi.Context, args LookupShareOutputArgs, opts ...pulumi.InvokeOption) LookupShareResultOutput { @@ -106,8 +118,12 @@ type LookupShareOutputArgs struct { Metadata pulumi.StringMapInput `pulumi:"metadata"` // The name of the share. Name pulumi.StringInput `pulumi:"name"` - // The name of the storage account. - StorageAccountName pulumi.StringInput `pulumi:"storageAccountName"` + // The ID of the storage account in which the share exists. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrInput `pulumi:"storageAccountId"` + // The name of the storage account in which the share exists. This property is deprecated in favour of `storageAccountId`. + StorageAccountName pulumi.StringPtrInput `pulumi:"storageAccountName"` } func (LookupShareOutputArgs) ElementType() reflect.Type { @@ -153,12 +169,17 @@ func (o LookupShareResultOutput) Quota() pulumi.IntOutput { return o.ApplyT(func(v LookupShareResult) int { return v.Quota }).(pulumi.IntOutput) } +// Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. func (o LookupShareResultOutput) ResourceManagerId() pulumi.StringOutput { return o.ApplyT(func(v LookupShareResult) string { return v.ResourceManagerId }).(pulumi.StringOutput) } -func (o LookupShareResultOutput) StorageAccountName() pulumi.StringOutput { - return o.ApplyT(func(v LookupShareResult) string { return v.StorageAccountName }).(pulumi.StringOutput) +func (o LookupShareResultOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupShareResult) *string { return v.StorageAccountId }).(pulumi.StringPtrOutput) +} + +func (o LookupShareResultOutput) StorageAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v LookupShareResult) *string { return v.StorageAccountName }).(pulumi.StringPtrOutput) } func init() { diff --git a/sdk/go/azure/storage/getStorageContainer.go b/sdk/go/azure/storage/getStorageContainer.go index 8d57fe2dda..7119b94fb9 100644 --- a/sdk/go/azure/storage/getStorageContainer.go +++ b/sdk/go/azure/storage/getStorageContainer.go @@ -27,9 +27,16 @@ import ( // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := storage.GetStorageContainer(ctx, &storage.GetStorageContainerArgs{ -// Name: "example-container-name", -// StorageAccountName: "example-storage-account-name", +// example, err := storage.LookupAccount(ctx, &storage.LookupAccountArgs{ +// Name: "exampleaccount", +// ResourceGroupName: pulumi.StringRef("examples"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = storage.GetStorageContainer(ctx, &storage.GetStorageContainerArgs{ +// Name: "example-container-name", +// StorageAccountId: pulumi.StringRef(example.Id), // }, nil) // if err != nil { // return err @@ -55,8 +62,12 @@ type GetStorageContainerArgs struct { Metadata map[string]string `pulumi:"metadata"` // The name of the Container. Name string `pulumi:"name"` - // The name of the Storage Account where the Container exists. - StorageAccountName string `pulumi:"storageAccountName"` + // The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId *string `pulumi:"storageAccountId"` + // The name of the Storage Account where the Container exists. This property is deprecated in favour of `storageAccountId`. + StorageAccountName *string `pulumi:"storageAccountName"` } // A collection of values returned by getStorageContainer. @@ -76,9 +87,10 @@ type GetStorageContainerResult struct { // A mapping of MetaData for this Container. Metadata map[string]string `pulumi:"metadata"` Name string `pulumi:"name"` - // The Resource Manager ID of this Storage Container. - ResourceManagerId string `pulumi:"resourceManagerId"` - StorageAccountName string `pulumi:"storageAccountName"` + // Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + ResourceManagerId string `pulumi:"resourceManagerId"` + StorageAccountId *string `pulumi:"storageAccountId"` + StorageAccountName *string `pulumi:"storageAccountName"` } func GetStorageContainerOutput(ctx *pulumi.Context, args GetStorageContainerOutputArgs, opts ...pulumi.InvokeOption) GetStorageContainerResultOutput { @@ -106,8 +118,12 @@ type GetStorageContainerOutputArgs struct { Metadata pulumi.StringMapInput `pulumi:"metadata"` // The name of the Container. Name pulumi.StringInput `pulumi:"name"` - // The name of the Storage Account where the Container exists. - StorageAccountName pulumi.StringInput `pulumi:"storageAccountName"` + // The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrInput `pulumi:"storageAccountId"` + // The name of the Storage Account where the Container exists. This property is deprecated in favour of `storageAccountId`. + StorageAccountName pulumi.StringPtrInput `pulumi:"storageAccountName"` } func (GetStorageContainerOutputArgs) ElementType() reflect.Type { @@ -168,13 +184,17 @@ func (o GetStorageContainerResultOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetStorageContainerResult) string { return v.Name }).(pulumi.StringOutput) } -// The Resource Manager ID of this Storage Container. +// Deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. func (o GetStorageContainerResultOutput) ResourceManagerId() pulumi.StringOutput { return o.ApplyT(func(v GetStorageContainerResult) string { return v.ResourceManagerId }).(pulumi.StringOutput) } -func (o GetStorageContainerResultOutput) StorageAccountName() pulumi.StringOutput { - return o.ApplyT(func(v GetStorageContainerResult) string { return v.StorageAccountName }).(pulumi.StringOutput) +func (o GetStorageContainerResultOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetStorageContainerResult) *string { return v.StorageAccountId }).(pulumi.StringPtrOutput) +} + +func (o GetStorageContainerResultOutput) StorageAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetStorageContainerResult) *string { return v.StorageAccountName }).(pulumi.StringPtrOutput) } func init() { diff --git a/sdk/go/azure/storage/init.go b/sdk/go/azure/storage/init.go index a7718dbdbb..f4783b0b18 100644 --- a/sdk/go/azure/storage/init.go +++ b/sdk/go/azure/storage/init.go @@ -25,6 +25,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Account{} case "azure:storage/accountNetworkRules:AccountNetworkRules": r = &AccountNetworkRules{} + case "azure:storage/accountQueueProperties:AccountQueueProperties": + r = &AccountQueueProperties{} + case "azure:storage/accountStaticWebsite:AccountStaticWebsite": + r = &AccountStaticWebsite{} case "azure:storage/blob:Blob": r = &Blob{} case "azure:storage/blobInventoryPolicy:BlobInventoryPolicy": @@ -104,6 +108,16 @@ func init() { "storage/accountNetworkRules", &module{version}, ) + pulumi.RegisterResourceModule( + "azure", + "storage/accountQueueProperties", + &module{version}, + ) + pulumi.RegisterResourceModule( + "azure", + "storage/accountStaticWebsite", + &module{version}, + ) pulumi.RegisterResourceModule( "azure", "storage/blob", diff --git a/sdk/go/azure/storage/pulumiTypes.go b/sdk/go/azure/storage/pulumiTypes.go index f91205471d..80a417452f 100644 --- a/sdk/go/azure/storage/pulumiTypes.go +++ b/sdk/go/azure/storage/pulumiTypes.go @@ -2518,7 +2518,7 @@ func (o AccountNetworkRulesPrivateLinkAccessRuleArrayOutput) Index(i pulumi.IntI }).(AccountNetworkRulesPrivateLinkAccessRuleOutput) } -type AccountQueueProperties struct { +type AccountQueuePropertiesType struct { // A `corsRule` block as defined above. CorsRules []AccountQueuePropertiesCorsRule `pulumi:"corsRules"` // A `hourMetrics` block as defined below. @@ -2529,18 +2529,18 @@ type AccountQueueProperties struct { MinuteMetrics *AccountQueuePropertiesMinuteMetrics `pulumi:"minuteMetrics"` } -// AccountQueuePropertiesInput is an input type that accepts AccountQueuePropertiesArgs and AccountQueuePropertiesOutput values. -// You can construct a concrete instance of `AccountQueuePropertiesInput` via: +// AccountQueuePropertiesTypeInput is an input type that accepts AccountQueuePropertiesTypeArgs and AccountQueuePropertiesTypeOutput values. +// You can construct a concrete instance of `AccountQueuePropertiesTypeInput` via: // -// AccountQueuePropertiesArgs{...} -type AccountQueuePropertiesInput interface { +// AccountQueuePropertiesTypeArgs{...} +type AccountQueuePropertiesTypeInput interface { pulumi.Input - ToAccountQueuePropertiesOutput() AccountQueuePropertiesOutput - ToAccountQueuePropertiesOutputWithContext(context.Context) AccountQueuePropertiesOutput + ToAccountQueuePropertiesTypeOutput() AccountQueuePropertiesTypeOutput + ToAccountQueuePropertiesTypeOutputWithContext(context.Context) AccountQueuePropertiesTypeOutput } -type AccountQueuePropertiesArgs struct { +type AccountQueuePropertiesTypeArgs struct { // A `corsRule` block as defined above. CorsRules AccountQueuePropertiesCorsRuleArrayInput `pulumi:"corsRules"` // A `hourMetrics` block as defined below. @@ -2551,130 +2551,130 @@ type AccountQueuePropertiesArgs struct { MinuteMetrics AccountQueuePropertiesMinuteMetricsPtrInput `pulumi:"minuteMetrics"` } -func (AccountQueuePropertiesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AccountQueueProperties)(nil)).Elem() +func (AccountQueuePropertiesTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccountQueuePropertiesType)(nil)).Elem() } -func (i AccountQueuePropertiesArgs) ToAccountQueuePropertiesOutput() AccountQueuePropertiesOutput { - return i.ToAccountQueuePropertiesOutputWithContext(context.Background()) +func (i AccountQueuePropertiesTypeArgs) ToAccountQueuePropertiesTypeOutput() AccountQueuePropertiesTypeOutput { + return i.ToAccountQueuePropertiesTypeOutputWithContext(context.Background()) } -func (i AccountQueuePropertiesArgs) ToAccountQueuePropertiesOutputWithContext(ctx context.Context) AccountQueuePropertiesOutput { - return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesOutput) +func (i AccountQueuePropertiesTypeArgs) ToAccountQueuePropertiesTypeOutputWithContext(ctx context.Context) AccountQueuePropertiesTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesTypeOutput) } -func (i AccountQueuePropertiesArgs) ToAccountQueuePropertiesPtrOutput() AccountQueuePropertiesPtrOutput { - return i.ToAccountQueuePropertiesPtrOutputWithContext(context.Background()) +func (i AccountQueuePropertiesTypeArgs) ToAccountQueuePropertiesTypePtrOutput() AccountQueuePropertiesTypePtrOutput { + return i.ToAccountQueuePropertiesTypePtrOutputWithContext(context.Background()) } -func (i AccountQueuePropertiesArgs) ToAccountQueuePropertiesPtrOutputWithContext(ctx context.Context) AccountQueuePropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesOutput).ToAccountQueuePropertiesPtrOutputWithContext(ctx) +func (i AccountQueuePropertiesTypeArgs) ToAccountQueuePropertiesTypePtrOutputWithContext(ctx context.Context) AccountQueuePropertiesTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesTypeOutput).ToAccountQueuePropertiesTypePtrOutputWithContext(ctx) } -// AccountQueuePropertiesPtrInput is an input type that accepts AccountQueuePropertiesArgs, AccountQueuePropertiesPtr and AccountQueuePropertiesPtrOutput values. -// You can construct a concrete instance of `AccountQueuePropertiesPtrInput` via: +// AccountQueuePropertiesTypePtrInput is an input type that accepts AccountQueuePropertiesTypeArgs, AccountQueuePropertiesTypePtr and AccountQueuePropertiesTypePtrOutput values. +// You can construct a concrete instance of `AccountQueuePropertiesTypePtrInput` via: // -// AccountQueuePropertiesArgs{...} +// AccountQueuePropertiesTypeArgs{...} // // or: // // nil -type AccountQueuePropertiesPtrInput interface { +type AccountQueuePropertiesTypePtrInput interface { pulumi.Input - ToAccountQueuePropertiesPtrOutput() AccountQueuePropertiesPtrOutput - ToAccountQueuePropertiesPtrOutputWithContext(context.Context) AccountQueuePropertiesPtrOutput + ToAccountQueuePropertiesTypePtrOutput() AccountQueuePropertiesTypePtrOutput + ToAccountQueuePropertiesTypePtrOutputWithContext(context.Context) AccountQueuePropertiesTypePtrOutput } -type accountQueuePropertiesPtrType AccountQueuePropertiesArgs +type accountQueuePropertiesTypePtrType AccountQueuePropertiesTypeArgs -func AccountQueuePropertiesPtr(v *AccountQueuePropertiesArgs) AccountQueuePropertiesPtrInput { - return (*accountQueuePropertiesPtrType)(v) +func AccountQueuePropertiesTypePtr(v *AccountQueuePropertiesTypeArgs) AccountQueuePropertiesTypePtrInput { + return (*accountQueuePropertiesTypePtrType)(v) } -func (*accountQueuePropertiesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**AccountQueueProperties)(nil)).Elem() +func (*accountQueuePropertiesTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccountQueuePropertiesType)(nil)).Elem() } -func (i *accountQueuePropertiesPtrType) ToAccountQueuePropertiesPtrOutput() AccountQueuePropertiesPtrOutput { - return i.ToAccountQueuePropertiesPtrOutputWithContext(context.Background()) +func (i *accountQueuePropertiesTypePtrType) ToAccountQueuePropertiesTypePtrOutput() AccountQueuePropertiesTypePtrOutput { + return i.ToAccountQueuePropertiesTypePtrOutputWithContext(context.Background()) } -func (i *accountQueuePropertiesPtrType) ToAccountQueuePropertiesPtrOutputWithContext(ctx context.Context) AccountQueuePropertiesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesPtrOutput) +func (i *accountQueuePropertiesTypePtrType) ToAccountQueuePropertiesTypePtrOutputWithContext(ctx context.Context) AccountQueuePropertiesTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountQueuePropertiesTypePtrOutput) } -type AccountQueuePropertiesOutput struct{ *pulumi.OutputState } +type AccountQueuePropertiesTypeOutput struct{ *pulumi.OutputState } -func (AccountQueuePropertiesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AccountQueueProperties)(nil)).Elem() +func (AccountQueuePropertiesTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccountQueuePropertiesType)(nil)).Elem() } -func (o AccountQueuePropertiesOutput) ToAccountQueuePropertiesOutput() AccountQueuePropertiesOutput { +func (o AccountQueuePropertiesTypeOutput) ToAccountQueuePropertiesTypeOutput() AccountQueuePropertiesTypeOutput { return o } -func (o AccountQueuePropertiesOutput) ToAccountQueuePropertiesOutputWithContext(ctx context.Context) AccountQueuePropertiesOutput { +func (o AccountQueuePropertiesTypeOutput) ToAccountQueuePropertiesTypeOutputWithContext(ctx context.Context) AccountQueuePropertiesTypeOutput { return o } -func (o AccountQueuePropertiesOutput) ToAccountQueuePropertiesPtrOutput() AccountQueuePropertiesPtrOutput { - return o.ToAccountQueuePropertiesPtrOutputWithContext(context.Background()) +func (o AccountQueuePropertiesTypeOutput) ToAccountQueuePropertiesTypePtrOutput() AccountQueuePropertiesTypePtrOutput { + return o.ToAccountQueuePropertiesTypePtrOutputWithContext(context.Background()) } -func (o AccountQueuePropertiesOutput) ToAccountQueuePropertiesPtrOutputWithContext(ctx context.Context) AccountQueuePropertiesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v AccountQueueProperties) *AccountQueueProperties { +func (o AccountQueuePropertiesTypeOutput) ToAccountQueuePropertiesTypePtrOutputWithContext(ctx context.Context) AccountQueuePropertiesTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccountQueuePropertiesType) *AccountQueuePropertiesType { return &v - }).(AccountQueuePropertiesPtrOutput) + }).(AccountQueuePropertiesTypePtrOutput) } // A `corsRule` block as defined above. -func (o AccountQueuePropertiesOutput) CorsRules() AccountQueuePropertiesCorsRuleArrayOutput { - return o.ApplyT(func(v AccountQueueProperties) []AccountQueuePropertiesCorsRule { return v.CorsRules }).(AccountQueuePropertiesCorsRuleArrayOutput) +func (o AccountQueuePropertiesTypeOutput) CorsRules() AccountQueuePropertiesCorsRuleArrayOutput { + return o.ApplyT(func(v AccountQueuePropertiesType) []AccountQueuePropertiesCorsRule { return v.CorsRules }).(AccountQueuePropertiesCorsRuleArrayOutput) } // A `hourMetrics` block as defined below. -func (o AccountQueuePropertiesOutput) HourMetrics() AccountQueuePropertiesHourMetricsPtrOutput { - return o.ApplyT(func(v AccountQueueProperties) *AccountQueuePropertiesHourMetrics { return v.HourMetrics }).(AccountQueuePropertiesHourMetricsPtrOutput) +func (o AccountQueuePropertiesTypeOutput) HourMetrics() AccountQueuePropertiesHourMetricsPtrOutput { + return o.ApplyT(func(v AccountQueuePropertiesType) *AccountQueuePropertiesHourMetrics { return v.HourMetrics }).(AccountQueuePropertiesHourMetricsPtrOutput) } // A `logging` block as defined below. -func (o AccountQueuePropertiesOutput) Logging() AccountQueuePropertiesLoggingPtrOutput { - return o.ApplyT(func(v AccountQueueProperties) *AccountQueuePropertiesLogging { return v.Logging }).(AccountQueuePropertiesLoggingPtrOutput) +func (o AccountQueuePropertiesTypeOutput) Logging() AccountQueuePropertiesLoggingPtrOutput { + return o.ApplyT(func(v AccountQueuePropertiesType) *AccountQueuePropertiesLogging { return v.Logging }).(AccountQueuePropertiesLoggingPtrOutput) } // A `minuteMetrics` block as defined below. -func (o AccountQueuePropertiesOutput) MinuteMetrics() AccountQueuePropertiesMinuteMetricsPtrOutput { - return o.ApplyT(func(v AccountQueueProperties) *AccountQueuePropertiesMinuteMetrics { return v.MinuteMetrics }).(AccountQueuePropertiesMinuteMetricsPtrOutput) +func (o AccountQueuePropertiesTypeOutput) MinuteMetrics() AccountQueuePropertiesMinuteMetricsPtrOutput { + return o.ApplyT(func(v AccountQueuePropertiesType) *AccountQueuePropertiesMinuteMetrics { return v.MinuteMetrics }).(AccountQueuePropertiesMinuteMetricsPtrOutput) } -type AccountQueuePropertiesPtrOutput struct{ *pulumi.OutputState } +type AccountQueuePropertiesTypePtrOutput struct{ *pulumi.OutputState } -func (AccountQueuePropertiesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**AccountQueueProperties)(nil)).Elem() +func (AccountQueuePropertiesTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountQueuePropertiesType)(nil)).Elem() } -func (o AccountQueuePropertiesPtrOutput) ToAccountQueuePropertiesPtrOutput() AccountQueuePropertiesPtrOutput { +func (o AccountQueuePropertiesTypePtrOutput) ToAccountQueuePropertiesTypePtrOutput() AccountQueuePropertiesTypePtrOutput { return o } -func (o AccountQueuePropertiesPtrOutput) ToAccountQueuePropertiesPtrOutputWithContext(ctx context.Context) AccountQueuePropertiesPtrOutput { +func (o AccountQueuePropertiesTypePtrOutput) ToAccountQueuePropertiesTypePtrOutputWithContext(ctx context.Context) AccountQueuePropertiesTypePtrOutput { return o } -func (o AccountQueuePropertiesPtrOutput) Elem() AccountQueuePropertiesOutput { - return o.ApplyT(func(v *AccountQueueProperties) AccountQueueProperties { +func (o AccountQueuePropertiesTypePtrOutput) Elem() AccountQueuePropertiesTypeOutput { + return o.ApplyT(func(v *AccountQueuePropertiesType) AccountQueuePropertiesType { if v != nil { return *v } - var ret AccountQueueProperties + var ret AccountQueuePropertiesType return ret - }).(AccountQueuePropertiesOutput) + }).(AccountQueuePropertiesTypeOutput) } // A `corsRule` block as defined above. -func (o AccountQueuePropertiesPtrOutput) CorsRules() AccountQueuePropertiesCorsRuleArrayOutput { - return o.ApplyT(func(v *AccountQueueProperties) []AccountQueuePropertiesCorsRule { +func (o AccountQueuePropertiesTypePtrOutput) CorsRules() AccountQueuePropertiesCorsRuleArrayOutput { + return o.ApplyT(func(v *AccountQueuePropertiesType) []AccountQueuePropertiesCorsRule { if v == nil { return nil } @@ -2683,8 +2683,8 @@ func (o AccountQueuePropertiesPtrOutput) CorsRules() AccountQueuePropertiesCorsR } // A `hourMetrics` block as defined below. -func (o AccountQueuePropertiesPtrOutput) HourMetrics() AccountQueuePropertiesHourMetricsPtrOutput { - return o.ApplyT(func(v *AccountQueueProperties) *AccountQueuePropertiesHourMetrics { +func (o AccountQueuePropertiesTypePtrOutput) HourMetrics() AccountQueuePropertiesHourMetricsPtrOutput { + return o.ApplyT(func(v *AccountQueuePropertiesType) *AccountQueuePropertiesHourMetrics { if v == nil { return nil } @@ -2693,8 +2693,8 @@ func (o AccountQueuePropertiesPtrOutput) HourMetrics() AccountQueuePropertiesHou } // A `logging` block as defined below. -func (o AccountQueuePropertiesPtrOutput) Logging() AccountQueuePropertiesLoggingPtrOutput { - return o.ApplyT(func(v *AccountQueueProperties) *AccountQueuePropertiesLogging { +func (o AccountQueuePropertiesTypePtrOutput) Logging() AccountQueuePropertiesLoggingPtrOutput { + return o.ApplyT(func(v *AccountQueuePropertiesType) *AccountQueuePropertiesLogging { if v == nil { return nil } @@ -2703,8 +2703,8 @@ func (o AccountQueuePropertiesPtrOutput) Logging() AccountQueuePropertiesLogging } // A `minuteMetrics` block as defined below. -func (o AccountQueuePropertiesPtrOutput) MinuteMetrics() AccountQueuePropertiesMinuteMetricsPtrOutput { - return o.ApplyT(func(v *AccountQueueProperties) *AccountQueuePropertiesMinuteMetrics { +func (o AccountQueuePropertiesTypePtrOutput) MinuteMetrics() AccountQueuePropertiesMinuteMetricsPtrOutput { + return o.ApplyT(func(v *AccountQueuePropertiesType) *AccountQueuePropertiesMinuteMetrics { if v == nil { return nil } @@ -2849,8 +2849,6 @@ func (o AccountQueuePropertiesCorsRuleArrayOutput) Index(i pulumi.IntInput) Acco } type AccountQueuePropertiesHourMetrics struct { - // Indicates whether hour metrics are enabled for the Queue service. - Enabled bool `pulumi:"enabled"` // Indicates whether metrics should generate summary statistics for called API operations. IncludeApis *bool `pulumi:"includeApis"` // Specifies the number of days that logs will be retained. @@ -2871,8 +2869,6 @@ type AccountQueuePropertiesHourMetricsInput interface { } type AccountQueuePropertiesHourMetricsArgs struct { - // Indicates whether hour metrics are enabled for the Queue service. - Enabled pulumi.BoolInput `pulumi:"enabled"` // Indicates whether metrics should generate summary statistics for called API operations. IncludeApis pulumi.BoolPtrInput `pulumi:"includeApis"` // Specifies the number of days that logs will be retained. @@ -2958,11 +2954,6 @@ func (o AccountQueuePropertiesHourMetricsOutput) ToAccountQueuePropertiesHourMet }).(AccountQueuePropertiesHourMetricsPtrOutput) } -// Indicates whether hour metrics are enabled for the Queue service. -func (o AccountQueuePropertiesHourMetricsOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v AccountQueuePropertiesHourMetrics) bool { return v.Enabled }).(pulumi.BoolOutput) -} - // Indicates whether metrics should generate summary statistics for called API operations. func (o AccountQueuePropertiesHourMetricsOutput) IncludeApis() pulumi.BoolPtrOutput { return o.ApplyT(func(v AccountQueuePropertiesHourMetrics) *bool { return v.IncludeApis }).(pulumi.BoolPtrOutput) @@ -3002,16 +2993,6 @@ func (o AccountQueuePropertiesHourMetricsPtrOutput) Elem() AccountQueuePropertie }).(AccountQueuePropertiesHourMetricsOutput) } -// Indicates whether hour metrics are enabled for the Queue service. -func (o AccountQueuePropertiesHourMetricsPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *AccountQueuePropertiesHourMetrics) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) -} - // Indicates whether metrics should generate summary statistics for called API operations. func (o AccountQueuePropertiesHourMetricsPtrOutput) IncludeApis() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AccountQueuePropertiesHourMetrics) *bool { @@ -3256,8 +3237,6 @@ func (o AccountQueuePropertiesLoggingPtrOutput) Write() pulumi.BoolPtrOutput { } type AccountQueuePropertiesMinuteMetrics struct { - // Indicates whether minute metrics are enabled for the Queue service. - Enabled bool `pulumi:"enabled"` // Indicates whether metrics should generate summary statistics for called API operations. IncludeApis *bool `pulumi:"includeApis"` // Specifies the number of days that logs will be retained. @@ -3278,8 +3257,6 @@ type AccountQueuePropertiesMinuteMetricsInput interface { } type AccountQueuePropertiesMinuteMetricsArgs struct { - // Indicates whether minute metrics are enabled for the Queue service. - Enabled pulumi.BoolInput `pulumi:"enabled"` // Indicates whether metrics should generate summary statistics for called API operations. IncludeApis pulumi.BoolPtrInput `pulumi:"includeApis"` // Specifies the number of days that logs will be retained. @@ -3365,11 +3342,6 @@ func (o AccountQueuePropertiesMinuteMetricsOutput) ToAccountQueuePropertiesMinut }).(AccountQueuePropertiesMinuteMetricsPtrOutput) } -// Indicates whether minute metrics are enabled for the Queue service. -func (o AccountQueuePropertiesMinuteMetricsOutput) Enabled() pulumi.BoolOutput { - return o.ApplyT(func(v AccountQueuePropertiesMinuteMetrics) bool { return v.Enabled }).(pulumi.BoolOutput) -} - // Indicates whether metrics should generate summary statistics for called API operations. func (o AccountQueuePropertiesMinuteMetricsOutput) IncludeApis() pulumi.BoolPtrOutput { return o.ApplyT(func(v AccountQueuePropertiesMinuteMetrics) *bool { return v.IncludeApis }).(pulumi.BoolPtrOutput) @@ -3409,16 +3381,6 @@ func (o AccountQueuePropertiesMinuteMetricsPtrOutput) Elem() AccountQueuePropert }).(AccountQueuePropertiesMinuteMetricsOutput) } -// Indicates whether minute metrics are enabled for the Queue service. -func (o AccountQueuePropertiesMinuteMetricsPtrOutput) Enabled() pulumi.BoolPtrOutput { - return o.ApplyT(func(v *AccountQueuePropertiesMinuteMetrics) *bool { - if v == nil { - return nil - } - return &v.Enabled - }).(pulumi.BoolPtrOutput) -} - // Indicates whether metrics should generate summary statistics for called API operations. func (o AccountQueuePropertiesMinuteMetricsPtrOutput) IncludeApis() pulumi.BoolPtrOutput { return o.ApplyT(func(v *AccountQueuePropertiesMinuteMetrics) *bool { @@ -4441,145 +4403,145 @@ func (o AccountSharePropertiesSmbPtrOutput) Versions() pulumi.StringArrayOutput }).(pulumi.StringArrayOutput) } -type AccountStaticWebsite struct { +type AccountStaticWebsiteType struct { // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. Error404Document *string `pulumi:"error404Document"` // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. The value is case-sensitive. IndexDocument *string `pulumi:"indexDocument"` } -// AccountStaticWebsiteInput is an input type that accepts AccountStaticWebsiteArgs and AccountStaticWebsiteOutput values. -// You can construct a concrete instance of `AccountStaticWebsiteInput` via: +// AccountStaticWebsiteTypeInput is an input type that accepts AccountStaticWebsiteTypeArgs and AccountStaticWebsiteTypeOutput values. +// You can construct a concrete instance of `AccountStaticWebsiteTypeInput` via: // -// AccountStaticWebsiteArgs{...} -type AccountStaticWebsiteInput interface { +// AccountStaticWebsiteTypeArgs{...} +type AccountStaticWebsiteTypeInput interface { pulumi.Input - ToAccountStaticWebsiteOutput() AccountStaticWebsiteOutput - ToAccountStaticWebsiteOutputWithContext(context.Context) AccountStaticWebsiteOutput + ToAccountStaticWebsiteTypeOutput() AccountStaticWebsiteTypeOutput + ToAccountStaticWebsiteTypeOutputWithContext(context.Context) AccountStaticWebsiteTypeOutput } -type AccountStaticWebsiteArgs struct { +type AccountStaticWebsiteTypeArgs struct { // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. Error404Document pulumi.StringPtrInput `pulumi:"error404Document"` // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. The value is case-sensitive. IndexDocument pulumi.StringPtrInput `pulumi:"indexDocument"` } -func (AccountStaticWebsiteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AccountStaticWebsite)(nil)).Elem() +func (AccountStaticWebsiteTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AccountStaticWebsiteType)(nil)).Elem() } -func (i AccountStaticWebsiteArgs) ToAccountStaticWebsiteOutput() AccountStaticWebsiteOutput { - return i.ToAccountStaticWebsiteOutputWithContext(context.Background()) +func (i AccountStaticWebsiteTypeArgs) ToAccountStaticWebsiteTypeOutput() AccountStaticWebsiteTypeOutput { + return i.ToAccountStaticWebsiteTypeOutputWithContext(context.Background()) } -func (i AccountStaticWebsiteArgs) ToAccountStaticWebsiteOutputWithContext(ctx context.Context) AccountStaticWebsiteOutput { - return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteOutput) +func (i AccountStaticWebsiteTypeArgs) ToAccountStaticWebsiteTypeOutputWithContext(ctx context.Context) AccountStaticWebsiteTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteTypeOutput) } -func (i AccountStaticWebsiteArgs) ToAccountStaticWebsitePtrOutput() AccountStaticWebsitePtrOutput { - return i.ToAccountStaticWebsitePtrOutputWithContext(context.Background()) +func (i AccountStaticWebsiteTypeArgs) ToAccountStaticWebsiteTypePtrOutput() AccountStaticWebsiteTypePtrOutput { + return i.ToAccountStaticWebsiteTypePtrOutputWithContext(context.Background()) } -func (i AccountStaticWebsiteArgs) ToAccountStaticWebsitePtrOutputWithContext(ctx context.Context) AccountStaticWebsitePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteOutput).ToAccountStaticWebsitePtrOutputWithContext(ctx) +func (i AccountStaticWebsiteTypeArgs) ToAccountStaticWebsiteTypePtrOutputWithContext(ctx context.Context) AccountStaticWebsiteTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteTypeOutput).ToAccountStaticWebsiteTypePtrOutputWithContext(ctx) } -// AccountStaticWebsitePtrInput is an input type that accepts AccountStaticWebsiteArgs, AccountStaticWebsitePtr and AccountStaticWebsitePtrOutput values. -// You can construct a concrete instance of `AccountStaticWebsitePtrInput` via: +// AccountStaticWebsiteTypePtrInput is an input type that accepts AccountStaticWebsiteTypeArgs, AccountStaticWebsiteTypePtr and AccountStaticWebsiteTypePtrOutput values. +// You can construct a concrete instance of `AccountStaticWebsiteTypePtrInput` via: // -// AccountStaticWebsiteArgs{...} +// AccountStaticWebsiteTypeArgs{...} // // or: // // nil -type AccountStaticWebsitePtrInput interface { +type AccountStaticWebsiteTypePtrInput interface { pulumi.Input - ToAccountStaticWebsitePtrOutput() AccountStaticWebsitePtrOutput - ToAccountStaticWebsitePtrOutputWithContext(context.Context) AccountStaticWebsitePtrOutput + ToAccountStaticWebsiteTypePtrOutput() AccountStaticWebsiteTypePtrOutput + ToAccountStaticWebsiteTypePtrOutputWithContext(context.Context) AccountStaticWebsiteTypePtrOutput } -type accountStaticWebsitePtrType AccountStaticWebsiteArgs +type accountStaticWebsiteTypePtrType AccountStaticWebsiteTypeArgs -func AccountStaticWebsitePtr(v *AccountStaticWebsiteArgs) AccountStaticWebsitePtrInput { - return (*accountStaticWebsitePtrType)(v) +func AccountStaticWebsiteTypePtr(v *AccountStaticWebsiteTypeArgs) AccountStaticWebsiteTypePtrInput { + return (*accountStaticWebsiteTypePtrType)(v) } -func (*accountStaticWebsitePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**AccountStaticWebsite)(nil)).Elem() +func (*accountStaticWebsiteTypePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AccountStaticWebsiteType)(nil)).Elem() } -func (i *accountStaticWebsitePtrType) ToAccountStaticWebsitePtrOutput() AccountStaticWebsitePtrOutput { - return i.ToAccountStaticWebsitePtrOutputWithContext(context.Background()) +func (i *accountStaticWebsiteTypePtrType) ToAccountStaticWebsiteTypePtrOutput() AccountStaticWebsiteTypePtrOutput { + return i.ToAccountStaticWebsiteTypePtrOutputWithContext(context.Background()) } -func (i *accountStaticWebsitePtrType) ToAccountStaticWebsitePtrOutputWithContext(ctx context.Context) AccountStaticWebsitePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsitePtrOutput) +func (i *accountStaticWebsiteTypePtrType) ToAccountStaticWebsiteTypePtrOutputWithContext(ctx context.Context) AccountStaticWebsiteTypePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountStaticWebsiteTypePtrOutput) } -type AccountStaticWebsiteOutput struct{ *pulumi.OutputState } +type AccountStaticWebsiteTypeOutput struct{ *pulumi.OutputState } -func (AccountStaticWebsiteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AccountStaticWebsite)(nil)).Elem() +func (AccountStaticWebsiteTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccountStaticWebsiteType)(nil)).Elem() } -func (o AccountStaticWebsiteOutput) ToAccountStaticWebsiteOutput() AccountStaticWebsiteOutput { +func (o AccountStaticWebsiteTypeOutput) ToAccountStaticWebsiteTypeOutput() AccountStaticWebsiteTypeOutput { return o } -func (o AccountStaticWebsiteOutput) ToAccountStaticWebsiteOutputWithContext(ctx context.Context) AccountStaticWebsiteOutput { +func (o AccountStaticWebsiteTypeOutput) ToAccountStaticWebsiteTypeOutputWithContext(ctx context.Context) AccountStaticWebsiteTypeOutput { return o } -func (o AccountStaticWebsiteOutput) ToAccountStaticWebsitePtrOutput() AccountStaticWebsitePtrOutput { - return o.ToAccountStaticWebsitePtrOutputWithContext(context.Background()) +func (o AccountStaticWebsiteTypeOutput) ToAccountStaticWebsiteTypePtrOutput() AccountStaticWebsiteTypePtrOutput { + return o.ToAccountStaticWebsiteTypePtrOutputWithContext(context.Background()) } -func (o AccountStaticWebsiteOutput) ToAccountStaticWebsitePtrOutputWithContext(ctx context.Context) AccountStaticWebsitePtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v AccountStaticWebsite) *AccountStaticWebsite { +func (o AccountStaticWebsiteTypeOutput) ToAccountStaticWebsiteTypePtrOutputWithContext(ctx context.Context) AccountStaticWebsiteTypePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AccountStaticWebsiteType) *AccountStaticWebsiteType { return &v - }).(AccountStaticWebsitePtrOutput) + }).(AccountStaticWebsiteTypePtrOutput) } // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. -func (o AccountStaticWebsiteOutput) Error404Document() pulumi.StringPtrOutput { - return o.ApplyT(func(v AccountStaticWebsite) *string { return v.Error404Document }).(pulumi.StringPtrOutput) +func (o AccountStaticWebsiteTypeOutput) Error404Document() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccountStaticWebsiteType) *string { return v.Error404Document }).(pulumi.StringPtrOutput) } // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. The value is case-sensitive. -func (o AccountStaticWebsiteOutput) IndexDocument() pulumi.StringPtrOutput { - return o.ApplyT(func(v AccountStaticWebsite) *string { return v.IndexDocument }).(pulumi.StringPtrOutput) +func (o AccountStaticWebsiteTypeOutput) IndexDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v AccountStaticWebsiteType) *string { return v.IndexDocument }).(pulumi.StringPtrOutput) } -type AccountStaticWebsitePtrOutput struct{ *pulumi.OutputState } +type AccountStaticWebsiteTypePtrOutput struct{ *pulumi.OutputState } -func (AccountStaticWebsitePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**AccountStaticWebsite)(nil)).Elem() +func (AccountStaticWebsiteTypePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AccountStaticWebsiteType)(nil)).Elem() } -func (o AccountStaticWebsitePtrOutput) ToAccountStaticWebsitePtrOutput() AccountStaticWebsitePtrOutput { +func (o AccountStaticWebsiteTypePtrOutput) ToAccountStaticWebsiteTypePtrOutput() AccountStaticWebsiteTypePtrOutput { return o } -func (o AccountStaticWebsitePtrOutput) ToAccountStaticWebsitePtrOutputWithContext(ctx context.Context) AccountStaticWebsitePtrOutput { +func (o AccountStaticWebsiteTypePtrOutput) ToAccountStaticWebsiteTypePtrOutputWithContext(ctx context.Context) AccountStaticWebsiteTypePtrOutput { return o } -func (o AccountStaticWebsitePtrOutput) Elem() AccountStaticWebsiteOutput { - return o.ApplyT(func(v *AccountStaticWebsite) AccountStaticWebsite { +func (o AccountStaticWebsiteTypePtrOutput) Elem() AccountStaticWebsiteTypeOutput { + return o.ApplyT(func(v *AccountStaticWebsiteType) AccountStaticWebsiteType { if v != nil { return *v } - var ret AccountStaticWebsite + var ret AccountStaticWebsiteType return ret - }).(AccountStaticWebsiteOutput) + }).(AccountStaticWebsiteTypeOutput) } // The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. -func (o AccountStaticWebsitePtrOutput) Error404Document() pulumi.StringPtrOutput { - return o.ApplyT(func(v *AccountStaticWebsite) *string { +func (o AccountStaticWebsiteTypePtrOutput) Error404Document() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountStaticWebsiteType) *string { if v == nil { return nil } @@ -4588,8 +4550,8 @@ func (o AccountStaticWebsitePtrOutput) Error404Document() pulumi.StringPtrOutput } // The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. The value is case-sensitive. -func (o AccountStaticWebsitePtrOutput) IndexDocument() pulumi.StringPtrOutput { - return o.ApplyT(func(v *AccountStaticWebsite) *string { +func (o AccountStaticWebsiteTypePtrOutput) IndexDocument() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AccountStaticWebsiteType) *string { if v == nil { return nil } @@ -7076,13 +7038,13 @@ func (o ShareAclArrayOutput) Index(i pulumi.IntInput) ShareAclOutput { } type ShareAclAccessPolicy struct { - // The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy should be valid untilWhen using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. Expiry *string `pulumi:"expiry"` // The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). // // > **Note:** Permission order is strict at the service side, and permissions need to be listed in the order above. Permissions string `pulumi:"permissions"` - // The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy should be valid from. When using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. Start *string `pulumi:"start"` } @@ -7098,13 +7060,13 @@ type ShareAclAccessPolicyInput interface { } type ShareAclAccessPolicyArgs struct { - // The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy should be valid untilWhen using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. Expiry pulumi.StringPtrInput `pulumi:"expiry"` // The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). // // > **Note:** Permission order is strict at the service side, and permissions need to be listed in the order above. Permissions pulumi.StringInput `pulumi:"permissions"` - // The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy should be valid from. When using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. Start pulumi.StringPtrInput `pulumi:"start"` } @@ -7159,7 +7121,7 @@ func (o ShareAclAccessPolicyOutput) ToShareAclAccessPolicyOutputWithContext(ctx return o } -// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. +// The time at which this Access Policy should be valid untilWhen using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. func (o ShareAclAccessPolicyOutput) Expiry() pulumi.StringPtrOutput { return o.ApplyT(func(v ShareAclAccessPolicy) *string { return v.Expiry }).(pulumi.StringPtrOutput) } @@ -7171,7 +7133,7 @@ func (o ShareAclAccessPolicyOutput) Permissions() pulumi.StringOutput { return o.ApplyT(func(v ShareAclAccessPolicy) string { return v.Permissions }).(pulumi.StringOutput) } -// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. +// The time at which this Access Policy should be valid from. When using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. func (o ShareAclAccessPolicyOutput) Start() pulumi.StringPtrOutput { return o.ApplyT(func(v ShareAclAccessPolicy) *string { return v.Start }).(pulumi.StringPtrOutput) } @@ -9465,11 +9427,11 @@ func (o GetShareAclArrayOutput) Index(i pulumi.IntInput) GetShareAclOutput { } type GetShareAclAccessPolicy struct { - // The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy is valid until. Expiry string `pulumi:"expiry"` // The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). Permissions string `pulumi:"permissions"` - // The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy is valid from. Start string `pulumi:"start"` } @@ -9485,11 +9447,11 @@ type GetShareAclAccessPolicyInput interface { } type GetShareAclAccessPolicyArgs struct { - // The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy is valid until. Expiry pulumi.StringInput `pulumi:"expiry"` // The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). Permissions pulumi.StringInput `pulumi:"permissions"` - // The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + // The time at which this Access Policy is valid from. Start pulumi.StringInput `pulumi:"start"` } @@ -9544,7 +9506,7 @@ func (o GetShareAclAccessPolicyOutput) ToGetShareAclAccessPolicyOutputWithContex return o } -// The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. +// The time at which this Access Policy is valid until. func (o GetShareAclAccessPolicyOutput) Expiry() pulumi.StringOutput { return o.ApplyT(func(v GetShareAclAccessPolicy) string { return v.Expiry }).(pulumi.StringOutput) } @@ -9554,7 +9516,7 @@ func (o GetShareAclAccessPolicyOutput) Permissions() pulumi.StringOutput { return o.ApplyT(func(v GetShareAclAccessPolicy) string { return v.Permissions }).(pulumi.StringOutput) } -// The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. +// The time at which this Access Policy is valid from. func (o GetShareAclAccessPolicyOutput) Start() pulumi.StringOutput { return o.ApplyT(func(v GetShareAclAccessPolicy) string { return v.Start }).(pulumi.StringOutput) } @@ -9932,8 +9894,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AccountNetworkRulesPrivateLinkAccessArrayInput)(nil)).Elem(), AccountNetworkRulesPrivateLinkAccessArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AccountNetworkRulesPrivateLinkAccessRuleInput)(nil)).Elem(), AccountNetworkRulesPrivateLinkAccessRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AccountNetworkRulesPrivateLinkAccessRuleArrayInput)(nil)).Elem(), AccountNetworkRulesPrivateLinkAccessRuleArray{}) - pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesInput)(nil)).Elem(), AccountQueuePropertiesArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesPtrInput)(nil)).Elem(), AccountQueuePropertiesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesTypeInput)(nil)).Elem(), AccountQueuePropertiesTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesTypePtrInput)(nil)).Elem(), AccountQueuePropertiesTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesCorsRuleInput)(nil)).Elem(), AccountQueuePropertiesCorsRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesCorsRuleArrayInput)(nil)).Elem(), AccountQueuePropertiesCorsRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AccountQueuePropertiesHourMetricsInput)(nil)).Elem(), AccountQueuePropertiesHourMetricsArgs{}) @@ -9954,8 +9916,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*AccountSharePropertiesRetentionPolicyPtrInput)(nil)).Elem(), AccountSharePropertiesRetentionPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AccountSharePropertiesSmbInput)(nil)).Elem(), AccountSharePropertiesSmbArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AccountSharePropertiesSmbPtrInput)(nil)).Elem(), AccountSharePropertiesSmbArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*AccountStaticWebsiteInput)(nil)).Elem(), AccountStaticWebsiteArgs{}) - pulumi.RegisterInputType(reflect.TypeOf((*AccountStaticWebsitePtrInput)(nil)).Elem(), AccountStaticWebsiteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountStaticWebsiteTypeInput)(nil)).Elem(), AccountStaticWebsiteTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*AccountStaticWebsiteTypePtrInput)(nil)).Elem(), AccountStaticWebsiteTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BlobInventoryPolicyRuleInput)(nil)).Elem(), BlobInventoryPolicyRuleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*BlobInventoryPolicyRuleArrayInput)(nil)).Elem(), BlobInventoryPolicyRuleArray{}) pulumi.RegisterInputType(reflect.TypeOf((*BlobInventoryPolicyRuleFilterInput)(nil)).Elem(), BlobInventoryPolicyRuleFilterArgs{}) @@ -10057,8 +10019,8 @@ func init() { pulumi.RegisterOutputType(AccountNetworkRulesPrivateLinkAccessArrayOutput{}) pulumi.RegisterOutputType(AccountNetworkRulesPrivateLinkAccessRuleOutput{}) pulumi.RegisterOutputType(AccountNetworkRulesPrivateLinkAccessRuleArrayOutput{}) - pulumi.RegisterOutputType(AccountQueuePropertiesOutput{}) - pulumi.RegisterOutputType(AccountQueuePropertiesPtrOutput{}) + pulumi.RegisterOutputType(AccountQueuePropertiesTypeOutput{}) + pulumi.RegisterOutputType(AccountQueuePropertiesTypePtrOutput{}) pulumi.RegisterOutputType(AccountQueuePropertiesCorsRuleOutput{}) pulumi.RegisterOutputType(AccountQueuePropertiesCorsRuleArrayOutput{}) pulumi.RegisterOutputType(AccountQueuePropertiesHourMetricsOutput{}) @@ -10079,8 +10041,8 @@ func init() { pulumi.RegisterOutputType(AccountSharePropertiesRetentionPolicyPtrOutput{}) pulumi.RegisterOutputType(AccountSharePropertiesSmbOutput{}) pulumi.RegisterOutputType(AccountSharePropertiesSmbPtrOutput{}) - pulumi.RegisterOutputType(AccountStaticWebsiteOutput{}) - pulumi.RegisterOutputType(AccountStaticWebsitePtrOutput{}) + pulumi.RegisterOutputType(AccountStaticWebsiteTypeOutput{}) + pulumi.RegisterOutputType(AccountStaticWebsiteTypePtrOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyRuleOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyRuleArrayOutput{}) pulumi.RegisterOutputType(BlobInventoryPolicyRuleFilterOutput{}) diff --git a/sdk/go/azure/storage/share.go b/sdk/go/azure/storage/share.go index 153abecbf5..4b635e491d 100644 --- a/sdk/go/azure/storage/share.go +++ b/sdk/go/azure/storage/share.go @@ -51,17 +51,17 @@ import ( // return err // } // _, err = storage.NewShare(ctx, "example", &storage.ShareArgs{ -// Name: pulumi.String("sharename"), -// StorageAccountName: exampleAccount.Name, -// Quota: pulumi.Int(50), +// Name: pulumi.String("sharename"), +// StorageAccountId: exampleAccount.ID(), +// Quota: pulumi.Int(50), // Acls: storage.ShareAclArray{ // &storage.ShareAclArgs{ // Id: pulumi.String("MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI"), // AccessPolicies: storage.ShareAclAccessPolicyArray{ // &storage.ShareAclAccessPolicyArgs{ // Permissions: pulumi.String("rwdl"), -// Start: pulumi.String("2019-07-02T09:38:21.0000000Z"), -// Expiry: pulumi.String("2019-07-02T10:38:21.0000000Z"), +// Start: pulumi.String("2019-07-02T09:38:21Z"), +// Expiry: pulumi.String("2019-07-02T10:38:21Z"), // }, // }, // }, @@ -78,10 +78,10 @@ import ( // // ## Import // -// Storage Shares can be imported using the `resource id`, e.g. +// Storage Shares can be imported using the `id`, e.g. // // ```sh -// $ pulumi import azure:storage/share:Share exampleShare https://account1.file.core.windows.net/share1 +// $ pulumi import azure:storage/share:Share exampleShare /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myAccount/fileServices/default/shares/exampleShare // ``` type Share struct { pulumi.CustomResourceState @@ -107,9 +107,17 @@ type Share struct { // ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). Quota pulumi.IntOutput `pulumi:"quota"` // The Resource Manager ID of this File Share. + // + // Deprecated: this property is deprecated and will be removed 5.0 and replaced by the `id` property. ResourceManagerId pulumi.StringOutput `pulumi:"resourceManagerId"` // Specifies the storage account in which to create the share. Changing this forces a new resource to be created. - StorageAccountName pulumi.StringOutput `pulumi:"storageAccountName"` + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrOutput `pulumi:"storageAccountId"` + // 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 `storageAccountId`. + // + // Deprecated: This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. + StorageAccountName pulumi.StringPtrOutput `pulumi:"storageAccountName"` // The URL of the File Share Url pulumi.StringOutput `pulumi:"url"` } @@ -124,9 +132,6 @@ func NewShare(ctx *pulumi.Context, if args.Quota == nil { return nil, errors.New("invalid value for required argument 'Quota'") } - if args.StorageAccountName == nil { - return nil, errors.New("invalid value for required argument 'StorageAccountName'") - } opts = internal.PkgResourceDefaultOpts(opts) var resource Share err := ctx.RegisterResource("azure:storage/share:Share", name, args, &resource, opts...) @@ -171,8 +176,16 @@ type shareState struct { // ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). Quota *int `pulumi:"quota"` // The Resource Manager ID of this File Share. + // + // Deprecated: this property is deprecated and will be removed 5.0 and replaced by the `id` property. ResourceManagerId *string `pulumi:"resourceManagerId"` // Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId *string `pulumi:"storageAccountId"` + // 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 `storageAccountId`. + // + // Deprecated: This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. StorageAccountName *string `pulumi:"storageAccountName"` // The URL of the File Share Url *string `pulumi:"url"` @@ -200,8 +213,16 @@ type ShareState struct { // ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). Quota pulumi.IntPtrInput // The Resource Manager ID of this File Share. + // + // Deprecated: this property is deprecated and will be removed 5.0 and replaced by the `id` property. ResourceManagerId pulumi.StringPtrInput // Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrInput + // 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 `storageAccountId`. + // + // Deprecated: This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. StorageAccountName pulumi.StringPtrInput // The URL of the File Share Url pulumi.StringPtrInput @@ -233,7 +254,13 @@ type shareArgs struct { // ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). Quota int `pulumi:"quota"` // Specifies the storage account in which to create the share. Changing this forces a new resource to be created. - StorageAccountName string `pulumi:"storageAccountName"` + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId *string `pulumi:"storageAccountId"` + // 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 `storageAccountId`. + // + // Deprecated: This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. + StorageAccountName *string `pulumi:"storageAccountName"` } // The set of arguments for constructing a Share resource. @@ -259,7 +286,13 @@ type ShareArgs struct { // ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). Quota pulumi.IntInput // Specifies the storage account in which to create the share. Changing this forces a new resource to be created. - StorageAccountName pulumi.StringInput + // + // > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + StorageAccountId pulumi.StringPtrInput + // 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 `storageAccountId`. + // + // Deprecated: This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. + StorageAccountName pulumi.StringPtrInput } func (ShareArgs) ElementType() reflect.Type { @@ -388,13 +421,24 @@ func (o ShareOutput) Quota() pulumi.IntOutput { } // The Resource Manager ID of this File Share. +// +// Deprecated: this property is deprecated and will be removed 5.0 and replaced by the `id` property. func (o ShareOutput) ResourceManagerId() pulumi.StringOutput { return o.ApplyT(func(v *Share) pulumi.StringOutput { return v.ResourceManagerId }).(pulumi.StringOutput) } // Specifies the storage account in which to create the share. Changing this forces a new resource to be created. -func (o ShareOutput) StorageAccountName() pulumi.StringOutput { - return o.ApplyT(func(v *Share) pulumi.StringOutput { return v.StorageAccountName }).(pulumi.StringOutput) +// +// > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. +func (o ShareOutput) StorageAccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Share) pulumi.StringPtrOutput { return v.StorageAccountId }).(pulumi.StringPtrOutput) +} + +// 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 `storageAccountId`. +// +// Deprecated: This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. +func (o ShareOutput) StorageAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Share) pulumi.StringPtrOutput { return v.StorageAccountName }).(pulumi.StringPtrOutput) } // The URL of the File Share diff --git a/sdk/go/azure/trustedsigning/account.go b/sdk/go/azure/trustedsigning/account.go index 8c46d59f75..ad40c675d3 100644 --- a/sdk/go/azure/trustedsigning/account.go +++ b/sdk/go/azure/trustedsigning/account.go @@ -14,6 +14,43 @@ import ( // Manages a Trusted Signing Account. // +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v6/go/azure/trustedsigning" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example"), +// Location: pulumi.String("West Europe"), +// }) +// if err != nil { +// return err +// } +// _, err = trustedsigning.NewAccount(ctx, "example", &trustedsigning.AccountArgs{ +// Name: pulumi.String("example-account"), +// ResourceGroupName: example.Name, +// Location: pulumi.String("West Europe"), +// SkuName: pulumi.String("Basic"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Trusted Signing Accounts can be imported using the `resource id`, e.g. diff --git a/sdk/java/src/main/java/com/pulumi/azure/cdn/inputs/FrontdoorCustomDomainTlsArgs.java b/sdk/java/src/main/java/com/pulumi/azure/cdn/inputs/FrontdoorCustomDomainTlsArgs.java index bd459f7f20..1bed29986d 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/cdn/inputs/FrontdoorCustomDomainTlsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/cdn/inputs/FrontdoorCustomDomainTlsArgs.java @@ -52,6 +52,8 @@ public Optional> 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. + * */ @Import(name="minimumTlsVersion") private @Nullable Output minimumTlsVersion; @@ -59,6 +61,8 @@ public Optional> certificateType() { /** * @return 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 Optional> minimumTlsVersion() { return Optional.ofNullable(this.minimumTlsVersion); @@ -139,6 +143,8 @@ public Builder certificateType(String certificateType) { /** * @param minimumTlsVersion 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. + * * @return builder * */ @@ -150,6 +156,8 @@ public Builder minimumTlsVersion(@Nullable Output minimumTlsVersion) { /** * @param minimumTlsVersion 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. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/azure/cdn/outputs/FrontdoorCustomDomainTls.java b/sdk/java/src/main/java/com/pulumi/azure/cdn/outputs/FrontdoorCustomDomainTls.java index dbcc81d07b..1857e9bafd 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/cdn/outputs/FrontdoorCustomDomainTls.java +++ b/sdk/java/src/main/java/com/pulumi/azure/cdn/outputs/FrontdoorCustomDomainTls.java @@ -26,6 +26,8 @@ public final class FrontdoorCustomDomainTls { /** * @return 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. + * */ private @Nullable String minimumTlsVersion; @@ -49,6 +51,8 @@ public Optional certificateType() { /** * @return 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 Optional minimumTlsVersion() { return Optional.ofNullable(this.minimumTlsVersion); diff --git a/sdk/java/src/main/java/com/pulumi/azure/cognitive/inputs/DeploymentSkuArgs.java b/sdk/java/src/main/java/com/pulumi/azure/cognitive/inputs/DeploymentSkuArgs.java index 36d0a27a9e..460be3d0f3 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/cognitive/inputs/DeploymentSkuArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/cognitive/inputs/DeploymentSkuArgs.java @@ -48,14 +48,14 @@ public Optional> 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`. * */ @Import(name="name", required=true) private Output name; /** - * @return The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. + * @return The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. * */ public Output name() { @@ -163,7 +163,7 @@ public Builder family(String family) { } /** - * @param name The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. + * @param name The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. * * @return builder * @@ -174,7 +174,7 @@ public Builder name(Output name) { } /** - * @param name The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. + * @param name The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/cognitive/outputs/DeploymentSku.java b/sdk/java/src/main/java/com/pulumi/azure/cognitive/outputs/DeploymentSku.java index 1cc06e8dce..1ad868c665 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/cognitive/outputs/DeploymentSku.java +++ b/sdk/java/src/main/java/com/pulumi/azure/cognitive/outputs/DeploymentSku.java @@ -24,7 +24,7 @@ public final class DeploymentSku { */ private @Nullable String family; /** - * @return The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. + * @return The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. * */ private String name; @@ -55,7 +55,7 @@ public Optional family() { return Optional.ofNullable(this.family); } /** - * @return The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. + * @return The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. * */ public String name() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/config/inputs/Features.java b/sdk/java/src/main/java/com/pulumi/azure/config/inputs/Features.java index 3a2bb8c44c..b6e53417c7 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/config/inputs/Features.java +++ b/sdk/java/src/main/java/com/pulumi/azure/config/inputs/Features.java @@ -15,6 +15,7 @@ import com.pulumi.azure.config.outputs.FeaturesRecoveryService; import com.pulumi.azure.config.outputs.FeaturesRecoveryServicesVaults; import com.pulumi.azure.config.outputs.FeaturesResourceGroup; +import com.pulumi.azure.config.outputs.FeaturesStorage; import com.pulumi.azure.config.outputs.FeaturesSubscription; import com.pulumi.azure.config.outputs.FeaturesTemplateDeployment; import com.pulumi.azure.config.outputs.FeaturesVirtualMachine; @@ -38,6 +39,7 @@ public final class Features { private @Nullable FeaturesRecoveryService recoveryService; private @Nullable FeaturesRecoveryServicesVaults recoveryServicesVaults; private @Nullable FeaturesResourceGroup resourceGroup; + private @Nullable FeaturesStorage storage; private @Nullable FeaturesSubscription subscription; private @Nullable FeaturesTemplateDeployment templateDeployment; private @Nullable FeaturesVirtualMachine virtualMachine; @@ -80,6 +82,9 @@ public Optional recoveryServicesVaults() { public Optional resourceGroup() { return Optional.ofNullable(this.resourceGroup); } + public Optional storage() { + return Optional.ofNullable(this.storage); + } public Optional subscription() { return Optional.ofNullable(this.subscription); } @@ -114,6 +119,7 @@ public static final class Builder { private @Nullable FeaturesRecoveryService recoveryService; private @Nullable FeaturesRecoveryServicesVaults recoveryServicesVaults; private @Nullable FeaturesResourceGroup resourceGroup; + private @Nullable FeaturesStorage storage; private @Nullable FeaturesSubscription subscription; private @Nullable FeaturesTemplateDeployment templateDeployment; private @Nullable FeaturesVirtualMachine virtualMachine; @@ -133,6 +139,7 @@ public Builder(Features defaults) { this.recoveryService = defaults.recoveryService; this.recoveryServicesVaults = defaults.recoveryServicesVaults; this.resourceGroup = defaults.resourceGroup; + this.storage = defaults.storage; this.subscription = defaults.subscription; this.templateDeployment = defaults.templateDeployment; this.virtualMachine = defaults.virtualMachine; @@ -212,6 +219,12 @@ public Builder resourceGroup(@Nullable FeaturesResourceGroup resourceGroup) { return this; } @CustomType.Setter + public Builder storage(@Nullable FeaturesStorage storage) { + + this.storage = storage; + return this; + } + @CustomType.Setter public Builder subscription(@Nullable FeaturesSubscription subscription) { this.subscription = subscription; @@ -249,6 +262,7 @@ public Features build() { _resultValue.recoveryService = recoveryService; _resultValue.recoveryServicesVaults = recoveryServicesVaults; _resultValue.resourceGroup = resourceGroup; + _resultValue.storage = storage; _resultValue.subscription = subscription; _resultValue.templateDeployment = templateDeployment; _resultValue.virtualMachine = virtualMachine; diff --git a/sdk/java/src/main/java/com/pulumi/azure/config/outputs/FeaturesStorage.java b/sdk/java/src/main/java/com/pulumi/azure/config/outputs/FeaturesStorage.java new file mode 100644 index 0000000000..c152995c9d --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/config/outputs/FeaturesStorage.java @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.config.outputs; + +import com.pulumi.core.annotations.CustomType; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class FeaturesStorage { + private @Nullable Boolean dataPlaneAvailable; + + private FeaturesStorage() {} + public Optional dataPlaneAvailable() { + return Optional.ofNullable(this.dataPlaneAvailable); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FeaturesStorage defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean dataPlaneAvailable; + public Builder() {} + public Builder(FeaturesStorage defaults) { + Objects.requireNonNull(defaults); + this.dataPlaneAvailable = defaults.dataPlaneAvailable; + } + + @CustomType.Setter + public Builder dataPlaneAvailable(@Nullable Boolean dataPlaneAvailable) { + + this.dataPlaneAvailable = dataPlaneAvailable; + return this; + } + public FeaturesStorage build() { + final var _resultValue = new FeaturesStorage(); + _resultValue.dataPlaneAvailable = dataPlaneAvailable; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesCluster.java b/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesCluster.java index 232e5995f8..e44f0b9243 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesCluster.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesCluster.java @@ -255,14 +255,14 @@ public Output currentKubernetesVersion() { return this.currentKubernetesVersion; } /** - * A `default_node_pool` block as defined below. + * Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * */ @Export(name="defaultNodePool", refs={KubernetesClusterDefaultNodePool.class}, tree="[0]") private Output defaultNodePool; /** - * @return A `default_node_pool` block as defined below. + * @return Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * */ public Output defaultNodePool() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesClusterArgs.java b/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesClusterArgs.java index b07a73fb63..7d94199238 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerservice/KubernetesClusterArgs.java @@ -174,14 +174,14 @@ public Optional> costAnalysisEnabled() { } /** - * A `default_node_pool` block as defined below. + * Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * */ @Import(name="defaultNodePool", required=true) private Output defaultNodePool; /** - * @return A `default_node_pool` block as defined below. + * @return Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * */ public Output defaultNodePool() { @@ -1323,7 +1323,7 @@ public Builder costAnalysisEnabled(Boolean costAnalysisEnabled) { } /** - * @param defaultNodePool A `default_node_pool` block as defined below. + * @param defaultNodePool Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * * @return builder * @@ -1334,7 +1334,7 @@ public Builder defaultNodePool(Output defa } /** - * @param defaultNodePool A `default_node_pool` block as defined below. + * @param defaultNodePool Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerservice/inputs/KubernetesClusterState.java b/sdk/java/src/main/java/com/pulumi/azure/containerservice/inputs/KubernetesClusterState.java index bec9808927..9ff20cb746 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerservice/inputs/KubernetesClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerservice/inputs/KubernetesClusterState.java @@ -191,14 +191,14 @@ public Optional> currentKubernetesVersion() { } /** - * A `default_node_pool` block as defined below. + * Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * */ @Import(name="defaultNodePool") private @Nullable Output defaultNodePool; /** - * @return A `default_node_pool` block as defined below. + * @return Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * */ public Optional> defaultNodePool() { @@ -1522,7 +1522,7 @@ public Builder currentKubernetesVersion(String currentKubernetesVersion) { } /** - * @param defaultNodePool A `default_node_pool` block as defined below. + * @param defaultNodePool Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. * * @return builder * @@ -1533,7 +1533,7 @@ public Builder defaultNodePool(@Nullable Output + * {@code + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.azure.core.ResourceGroup; + * import com.pulumi.azure.core.ResourceGroupArgs; + * import com.pulumi.azure.cosmosdb.MongoCluster; + * import com.pulumi.azure.cosmosdb.MongoClusterArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var example = new ResourceGroup("example", ResourceGroupArgs.builder() + * .name("example-rg") + * .location("East US") + * .build()); + * + * var exampleMongoCluster = new MongoCluster("exampleMongoCluster", MongoClusterArgs.builder() + * .name("example-mc") + * .resourceGroupName(example.name()) + * .location(example.location()) + * .administratorUsername("adminTerraform") + * .administratorPassword("QAZwsx123") + * .shardCount("1") + * .computeTier("Free") + * .highAvailabilityMode("Disabled") + * .storageSizeInGb("32") + * .build()); + * + * } + * } + * } + * + * <!--End PulumiCodeChooser --> + * + * ### Preview Feature GeoReplicas) + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.cosmosdb.MongoCluster;
+ * import com.pulumi.azure.cosmosdb.MongoClusterArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("example-rg")
+ *             .location("East US")
+ *             .build());
+ * 
+ *         var exampleMongoCluster = new MongoCluster("exampleMongoCluster", MongoClusterArgs.builder()
+ *             .name("example-mc")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .administratorUsername("adminTerraform")
+ *             .administratorPassword("QAZwsx123")
+ *             .shardCount("1")
+ *             .computeTier("M30")
+ *             .highAvailabilityMode("ZoneRedundantPreferred")
+ *             .storageSizeInGb("64")
+ *             .previewFeatures("GeoReplicas")
+ *             .build());
+ * 
+ *         var exampleGeoReplica = new MongoCluster("exampleGeoReplica", MongoClusterArgs.builder()
+ *             .name("example-mc-geo")
+ *             .resourceGroupName(example.name())
+ *             .location("Central US")
+ *             .sourceServerId(exampleMongoCluster.id())
+ *             .sourceLocation(exampleMongoCluster.location())
+ *             .createMode("GeoReplica")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## 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 + * ``` + * + */ +@ResourceType(type="azure:cosmosdb/mongoCluster:MongoCluster") +public class MongoCluster extends com.pulumi.resources.CustomResource { + /** + * The Password associated with the `administrator_username` for the MongoDB Cluster. + * + */ + @Export(name="administratorPassword", refs={String.class}, tree="[0]") + private Output administratorPassword; + + /** + * @return The Password associated with the `administrator_username` for the MongoDB Cluster. + * + */ + public Output> administratorPassword() { + return Codegen.optional(this.administratorPassword); + } + /** + * The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Export(name="administratorUsername", refs={String.class}, tree="[0]") + private Output administratorUsername; + + /** + * @return The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output> administratorUsername() { + return Codegen.optional(this.administratorUsername); + } + /** + * The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + */ + @Export(name="computeTier", refs={String.class}, tree="[0]") + private Output computeTier; + + /** + * @return The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + */ + public Output> computeTier() { + return Codegen.optional(this.computeTier); + } + /** + * 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. + * + */ + @Export(name="createMode", refs={String.class}, tree="[0]") + private Output createMode; + + /** + * @return 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. + * + */ + public Output> createMode() { + return Codegen.optional(this.createMode); + } + /** + * The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + */ + @Export(name="highAvailabilityMode", refs={String.class}, tree="[0]") + private Output highAvailabilityMode; + + /** + * @return The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + */ + public Output> highAvailabilityMode() { + return Codegen.optional(this.highAvailabilityMode); + } + /** + * The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + */ + public Output location() { + return this.location; + } + /** + * The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output name() { + return this.name; + } + /** + * The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Export(name="previewFeatures", refs={List.class,String.class}, tree="[0,1]") + private Output> previewFeatures; + + /** + * @return The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output>> previewFeatures() { + return Codegen.optional(this.previewFeatures); + } + /** + * The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + */ + @Export(name="publicNetworkAccess", refs={String.class}, tree="[0]") + private Output publicNetworkAccess; + + /** + * @return The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + */ + public Output> publicNetworkAccess() { + return Codegen.optional(this.publicNetworkAccess); + } + /** + * The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Export(name="resourceGroupName", refs={String.class}, tree="[0]") + private Output resourceGroupName; + + /** + * @return The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + /** + * The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Export(name="shardCount", refs={Integer.class}, tree="[0]") + private Output shardCount; + + /** + * @return The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output> shardCount() { + return Codegen.optional(this.shardCount); + } + /** + * The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Export(name="sourceLocation", refs={String.class}, tree="[0]") + private Output sourceLocation; + + /** + * @return The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output> sourceLocation() { + return Codegen.optional(this.sourceLocation); + } + /** + * The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Export(name="sourceServerId", refs={String.class}, tree="[0]") + private Output sourceServerId; + + /** + * @return The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output> sourceServerId() { + return Codegen.optional(this.sourceServerId); + } + /** + * The size of the data disk space for the MongoDB Cluster. + * + */ + @Export(name="storageSizeInGb", refs={Integer.class}, tree="[0]") + private Output storageSizeInGb; + + /** + * @return The size of the data disk space for the MongoDB Cluster. + * + */ + public Output> storageSizeInGb() { + return Codegen.optional(this.storageSizeInGb); + } + /** + * A mapping of tags to assign to the MongoDB Cluster. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A mapping of tags to assign to the MongoDB Cluster. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + */ + @Export(name="version", refs={String.class}, tree="[0]") + private Output version; + + /** + * @return The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + */ + public Output> version() { + return Codegen.optional(this.version); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public MongoCluster(java.lang.String name) { + this(name, MongoClusterArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public MongoCluster(java.lang.String name, MongoClusterArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public MongoCluster(java.lang.String name, MongoClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:cosmosdb/mongoCluster:MongoCluster", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private MongoCluster(java.lang.String name, Output id, @Nullable MongoClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:cosmosdb/mongoCluster:MongoCluster", name, state, makeResourceOptions(options, id), false); + } + + private static MongoClusterArgs makeArgs(MongoClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MongoClusterArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .additionalSecretOutputs(List.of( + "administratorPassword" + )) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static MongoCluster get(java.lang.String name, Output id, @Nullable MongoClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new MongoCluster(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/cosmosdb/MongoClusterArgs.java b/sdk/java/src/main/java/com/pulumi/azure/cosmosdb/MongoClusterArgs.java new file mode 100644 index 0000000000..c275a95402 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/cosmosdb/MongoClusterArgs.java @@ -0,0 +1,663 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.cosmosdb; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MongoClusterArgs extends com.pulumi.resources.ResourceArgs { + + public static final MongoClusterArgs Empty = new MongoClusterArgs(); + + /** + * The Password associated with the `administrator_username` for the MongoDB Cluster. + * + */ + @Import(name="administratorPassword") + private @Nullable Output administratorPassword; + + /** + * @return The Password associated with the `administrator_username` for the MongoDB Cluster. + * + */ + public Optional> administratorPassword() { + return Optional.ofNullable(this.administratorPassword); + } + + /** + * The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="administratorUsername") + private @Nullable Output administratorUsername; + + /** + * @return The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> administratorUsername() { + return Optional.ofNullable(this.administratorUsername); + } + + /** + * The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + */ + @Import(name="computeTier") + private @Nullable Output computeTier; + + /** + * @return The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + */ + public Optional> computeTier() { + return Optional.ofNullable(this.computeTier); + } + + /** + * 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. + * + */ + @Import(name="createMode") + private @Nullable Output createMode; + + /** + * @return 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. + * + */ + public Optional> createMode() { + return Optional.ofNullable(this.createMode); + } + + /** + * The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + */ + @Import(name="highAvailabilityMode") + private @Nullable Output highAvailabilityMode; + + /** + * @return The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + */ + public Optional> highAvailabilityMode() { + return Optional.ofNullable(this.highAvailabilityMode); + } + + /** + * The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="previewFeatures") + private @Nullable Output> previewFeatures; + + /** + * @return The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional>> previewFeatures() { + return Optional.ofNullable(this.previewFeatures); + } + + /** + * The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + */ + @Import(name="publicNetworkAccess") + private @Nullable Output publicNetworkAccess; + + /** + * @return The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + */ + public Optional> publicNetworkAccess() { + return Optional.ofNullable(this.publicNetworkAccess); + } + + /** + * The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="resourceGroupName", required=true) + private Output resourceGroupName; + + /** + * @return The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + + /** + * The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="shardCount") + private @Nullable Output shardCount; + + /** + * @return The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> shardCount() { + return Optional.ofNullable(this.shardCount); + } + + /** + * The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="sourceLocation") + private @Nullable Output sourceLocation; + + /** + * @return The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> sourceLocation() { + return Optional.ofNullable(this.sourceLocation); + } + + /** + * The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="sourceServerId") + private @Nullable Output sourceServerId; + + /** + * @return The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> sourceServerId() { + return Optional.ofNullable(this.sourceServerId); + } + + /** + * The size of the data disk space for the MongoDB Cluster. + * + */ + @Import(name="storageSizeInGb") + private @Nullable Output storageSizeInGb; + + /** + * @return The size of the data disk space for the MongoDB Cluster. + * + */ + public Optional> storageSizeInGb() { + return Optional.ofNullable(this.storageSizeInGb); + } + + /** + * A mapping of tags to assign to the MongoDB Cluster. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags to assign to the MongoDB Cluster. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + */ + @Import(name="version") + private @Nullable Output version; + + /** + * @return The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + */ + public Optional> version() { + return Optional.ofNullable(this.version); + } + + private MongoClusterArgs() {} + + private MongoClusterArgs(MongoClusterArgs $) { + this.administratorPassword = $.administratorPassword; + this.administratorUsername = $.administratorUsername; + this.computeTier = $.computeTier; + this.createMode = $.createMode; + this.highAvailabilityMode = $.highAvailabilityMode; + this.location = $.location; + this.name = $.name; + this.previewFeatures = $.previewFeatures; + this.publicNetworkAccess = $.publicNetworkAccess; + this.resourceGroupName = $.resourceGroupName; + this.shardCount = $.shardCount; + this.sourceLocation = $.sourceLocation; + this.sourceServerId = $.sourceServerId; + this.storageSizeInGb = $.storageSizeInGb; + this.tags = $.tags; + this.version = $.version; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MongoClusterArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MongoClusterArgs $; + + public Builder() { + $ = new MongoClusterArgs(); + } + + public Builder(MongoClusterArgs defaults) { + $ = new MongoClusterArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param administratorPassword The Password associated with the `administrator_username` for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder administratorPassword(@Nullable Output administratorPassword) { + $.administratorPassword = administratorPassword; + return this; + } + + /** + * @param administratorPassword The Password associated with the `administrator_username` for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder administratorPassword(String administratorPassword) { + return administratorPassword(Output.of(administratorPassword)); + } + + /** + * @param administratorUsername The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder administratorUsername(@Nullable Output administratorUsername) { + $.administratorUsername = administratorUsername; + return this; + } + + /** + * @param administratorUsername The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder administratorUsername(String administratorUsername) { + return administratorUsername(Output.of(administratorUsername)); + } + + /** + * @param computeTier The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + * @return builder + * + */ + public Builder computeTier(@Nullable Output computeTier) { + $.computeTier = computeTier; + return this; + } + + /** + * @param computeTier The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + * @return builder + * + */ + public Builder computeTier(String computeTier) { + return computeTier(Output.of(computeTier)); + } + + /** + * @param createMode 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. + * + * @return builder + * + */ + public Builder createMode(@Nullable Output createMode) { + $.createMode = createMode; + return this; + } + + /** + * @param createMode 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. + * + * @return builder + * + */ + public Builder createMode(String createMode) { + return createMode(Output.of(createMode)); + } + + /** + * @param highAvailabilityMode The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + * @return builder + * + */ + public Builder highAvailabilityMode(@Nullable Output highAvailabilityMode) { + $.highAvailabilityMode = highAvailabilityMode; + return this; + } + + /** + * @param highAvailabilityMode The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + * @return builder + * + */ + public Builder highAvailabilityMode(String highAvailabilityMode) { + return highAvailabilityMode(Output.of(highAvailabilityMode)); + } + + /** + * @param location The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param previewFeatures The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder previewFeatures(@Nullable Output> previewFeatures) { + $.previewFeatures = previewFeatures; + return this; + } + + /** + * @param previewFeatures The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder previewFeatures(List previewFeatures) { + return previewFeatures(Output.of(previewFeatures)); + } + + /** + * @param previewFeatures The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder previewFeatures(String... previewFeatures) { + return previewFeatures(List.of(previewFeatures)); + } + + /** + * @param publicNetworkAccess The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + * @return builder + * + */ + public Builder publicNetworkAccess(@Nullable Output publicNetworkAccess) { + $.publicNetworkAccess = publicNetworkAccess; + return this; + } + + /** + * @param publicNetworkAccess The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + * @return builder + * + */ + public Builder publicNetworkAccess(String publicNetworkAccess) { + return publicNetworkAccess(Output.of(publicNetworkAccess)); + } + + /** + * @param resourceGroupName The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(Output resourceGroupName) { + $.resourceGroupName = resourceGroupName; + return this; + } + + /** + * @param resourceGroupName The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param shardCount The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder shardCount(@Nullable Output shardCount) { + $.shardCount = shardCount; + return this; + } + + /** + * @param shardCount The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder shardCount(Integer shardCount) { + return shardCount(Output.of(shardCount)); + } + + /** + * @param sourceLocation The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceLocation(@Nullable Output sourceLocation) { + $.sourceLocation = sourceLocation; + return this; + } + + /** + * @param sourceLocation The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceLocation(String sourceLocation) { + return sourceLocation(Output.of(sourceLocation)); + } + + /** + * @param sourceServerId The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceServerId(@Nullable Output sourceServerId) { + $.sourceServerId = sourceServerId; + return this; + } + + /** + * @param sourceServerId The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceServerId(String sourceServerId) { + return sourceServerId(Output.of(sourceServerId)); + } + + /** + * @param storageSizeInGb The size of the data disk space for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder storageSizeInGb(@Nullable Output storageSizeInGb) { + $.storageSizeInGb = storageSizeInGb; + return this; + } + + /** + * @param storageSizeInGb The size of the data disk space for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder storageSizeInGb(Integer storageSizeInGb) { + return storageSizeInGb(Output.of(storageSizeInGb)); + } + + /** + * @param tags A mapping of tags to assign to the MongoDB Cluster. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags to assign to the MongoDB Cluster. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param version The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + * @return builder + * + */ + public Builder version(@Nullable Output version) { + $.version = version; + return this; + } + + /** + * @param version The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + * @return builder + * + */ + public Builder version(String version) { + return version(Output.of(version)); + } + + public MongoClusterArgs build() { + if ($.resourceGroupName == null) { + throw new MissingRequiredPropertyException("MongoClusterArgs", "resourceGroupName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/cosmosdb/inputs/MongoClusterState.java b/sdk/java/src/main/java/com/pulumi/azure/cosmosdb/inputs/MongoClusterState.java new file mode 100644 index 0000000000..9f2c008ac2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/cosmosdb/inputs/MongoClusterState.java @@ -0,0 +1,659 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.cosmosdb.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MongoClusterState extends com.pulumi.resources.ResourceArgs { + + public static final MongoClusterState Empty = new MongoClusterState(); + + /** + * The Password associated with the `administrator_username` for the MongoDB Cluster. + * + */ + @Import(name="administratorPassword") + private @Nullable Output administratorPassword; + + /** + * @return The Password associated with the `administrator_username` for the MongoDB Cluster. + * + */ + public Optional> administratorPassword() { + return Optional.ofNullable(this.administratorPassword); + } + + /** + * The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="administratorUsername") + private @Nullable Output administratorUsername; + + /** + * @return The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> administratorUsername() { + return Optional.ofNullable(this.administratorUsername); + } + + /** + * The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + */ + @Import(name="computeTier") + private @Nullable Output computeTier; + + /** + * @return The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + */ + public Optional> computeTier() { + return Optional.ofNullable(this.computeTier); + } + + /** + * 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. + * + */ + @Import(name="createMode") + private @Nullable Output createMode; + + /** + * @return 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. + * + */ + public Optional> createMode() { + return Optional.ofNullable(this.createMode); + } + + /** + * The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + */ + @Import(name="highAvailabilityMode") + private @Nullable Output highAvailabilityMode; + + /** + * @return The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + */ + public Optional> highAvailabilityMode() { + return Optional.ofNullable(this.highAvailabilityMode); + } + + /** + * The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="previewFeatures") + private @Nullable Output> previewFeatures; + + /** + * @return The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional>> previewFeatures() { + return Optional.ofNullable(this.previewFeatures); + } + + /** + * The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + */ + @Import(name="publicNetworkAccess") + private @Nullable Output publicNetworkAccess; + + /** + * @return The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + */ + public Optional> publicNetworkAccess() { + return Optional.ofNullable(this.publicNetworkAccess); + } + + /** + * The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="resourceGroupName") + private @Nullable Output resourceGroupName; + + /** + * @return The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> resourceGroupName() { + return Optional.ofNullable(this.resourceGroupName); + } + + /** + * The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="shardCount") + private @Nullable Output shardCount; + + /** + * @return The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> shardCount() { + return Optional.ofNullable(this.shardCount); + } + + /** + * The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="sourceLocation") + private @Nullable Output sourceLocation; + + /** + * @return The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> sourceLocation() { + return Optional.ofNullable(this.sourceLocation); + } + + /** + * The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + @Import(name="sourceServerId") + private @Nullable Output sourceServerId; + + /** + * @return The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + */ + public Optional> sourceServerId() { + return Optional.ofNullable(this.sourceServerId); + } + + /** + * The size of the data disk space for the MongoDB Cluster. + * + */ + @Import(name="storageSizeInGb") + private @Nullable Output storageSizeInGb; + + /** + * @return The size of the data disk space for the MongoDB Cluster. + * + */ + public Optional> storageSizeInGb() { + return Optional.ofNullable(this.storageSizeInGb); + } + + /** + * A mapping of tags to assign to the MongoDB Cluster. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags to assign to the MongoDB Cluster. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + */ + @Import(name="version") + private @Nullable Output version; + + /** + * @return The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + */ + public Optional> version() { + return Optional.ofNullable(this.version); + } + + private MongoClusterState() {} + + private MongoClusterState(MongoClusterState $) { + this.administratorPassword = $.administratorPassword; + this.administratorUsername = $.administratorUsername; + this.computeTier = $.computeTier; + this.createMode = $.createMode; + this.highAvailabilityMode = $.highAvailabilityMode; + this.location = $.location; + this.name = $.name; + this.previewFeatures = $.previewFeatures; + this.publicNetworkAccess = $.publicNetworkAccess; + this.resourceGroupName = $.resourceGroupName; + this.shardCount = $.shardCount; + this.sourceLocation = $.sourceLocation; + this.sourceServerId = $.sourceServerId; + this.storageSizeInGb = $.storageSizeInGb; + this.tags = $.tags; + this.version = $.version; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MongoClusterState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MongoClusterState $; + + public Builder() { + $ = new MongoClusterState(); + } + + public Builder(MongoClusterState defaults) { + $ = new MongoClusterState(Objects.requireNonNull(defaults)); + } + + /** + * @param administratorPassword The Password associated with the `administrator_username` for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder administratorPassword(@Nullable Output administratorPassword) { + $.administratorPassword = administratorPassword; + return this; + } + + /** + * @param administratorPassword The Password associated with the `administrator_username` for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder administratorPassword(String administratorPassword) { + return administratorPassword(Output.of(administratorPassword)); + } + + /** + * @param administratorUsername The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder administratorUsername(@Nullable Output administratorUsername) { + $.administratorUsername = administratorUsername; + return this; + } + + /** + * @param administratorUsername The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder administratorUsername(String administratorUsername) { + return administratorUsername(Output.of(administratorUsername)); + } + + /** + * @param computeTier The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + * @return builder + * + */ + public Builder computeTier(@Nullable Output computeTier) { + $.computeTier = computeTier; + return this; + } + + /** + * @param computeTier The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + * + * @return builder + * + */ + public Builder computeTier(String computeTier) { + return computeTier(Output.of(computeTier)); + } + + /** + * @param createMode 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. + * + * @return builder + * + */ + public Builder createMode(@Nullable Output createMode) { + $.createMode = createMode; + return this; + } + + /** + * @param createMode 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. + * + * @return builder + * + */ + public Builder createMode(String createMode) { + return createMode(Output.of(createMode)); + } + + /** + * @param highAvailabilityMode The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + * @return builder + * + */ + public Builder highAvailabilityMode(@Nullable Output highAvailabilityMode) { + $.highAvailabilityMode = highAvailabilityMode; + return this; + } + + /** + * @param highAvailabilityMode The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + * + * @return builder + * + */ + public Builder highAvailabilityMode(String highAvailabilityMode) { + return highAvailabilityMode(Output.of(highAvailabilityMode)); + } + + /** + * @param location The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param previewFeatures The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder previewFeatures(@Nullable Output> previewFeatures) { + $.previewFeatures = previewFeatures; + return this; + } + + /** + * @param previewFeatures The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder previewFeatures(List previewFeatures) { + return previewFeatures(Output.of(previewFeatures)); + } + + /** + * @param previewFeatures The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder previewFeatures(String... previewFeatures) { + return previewFeatures(List.of(previewFeatures)); + } + + /** + * @param publicNetworkAccess The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + * @return builder + * + */ + public Builder publicNetworkAccess(@Nullable Output publicNetworkAccess) { + $.publicNetworkAccess = publicNetworkAccess; + return this; + } + + /** + * @param publicNetworkAccess The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + * + * @return builder + * + */ + public Builder publicNetworkAccess(String publicNetworkAccess) { + return publicNetworkAccess(Output.of(publicNetworkAccess)); + } + + /** + * @param resourceGroupName The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(@Nullable Output resourceGroupName) { + $.resourceGroupName = resourceGroupName; + return this; + } + + /** + * @param resourceGroupName The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param shardCount The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder shardCount(@Nullable Output shardCount) { + $.shardCount = shardCount; + return this; + } + + /** + * @param shardCount The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder shardCount(Integer shardCount) { + return shardCount(Output.of(shardCount)); + } + + /** + * @param sourceLocation The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceLocation(@Nullable Output sourceLocation) { + $.sourceLocation = sourceLocation; + return this; + } + + /** + * @param sourceLocation The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceLocation(String sourceLocation) { + return sourceLocation(Output.of(sourceLocation)); + } + + /** + * @param sourceServerId The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceServerId(@Nullable Output sourceServerId) { + $.sourceServerId = sourceServerId; + return this; + } + + /** + * @param sourceServerId The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sourceServerId(String sourceServerId) { + return sourceServerId(Output.of(sourceServerId)); + } + + /** + * @param storageSizeInGb The size of the data disk space for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder storageSizeInGb(@Nullable Output storageSizeInGb) { + $.storageSizeInGb = storageSizeInGb; + return this; + } + + /** + * @param storageSizeInGb The size of the data disk space for the MongoDB Cluster. + * + * @return builder + * + */ + public Builder storageSizeInGb(Integer storageSizeInGb) { + return storageSizeInGb(Output.of(storageSizeInGb)); + } + + /** + * @param tags A mapping of tags to assign to the MongoDB Cluster. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags to assign to the MongoDB Cluster. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param version The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + * @return builder + * + */ + public Builder version(@Nullable Output version) { + $.version = version; + return this; + } + + /** + * @param version The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + * + * @return builder + * + */ + public Builder version(String version) { + return version(Output.of(version)); + } + + public MongoClusterState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dashboard/GrafanaManagedPrivateEndpoint.java b/sdk/java/src/main/java/com/pulumi/azure/dashboard/GrafanaManagedPrivateEndpoint.java new file mode 100644 index 0000000000..d77ccd9e20 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dashboard/GrafanaManagedPrivateEndpoint.java @@ -0,0 +1,273 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dashboard; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.dashboard.GrafanaManagedPrivateEndpointArgs; +import com.pulumi.azure.dashboard.inputs.GrafanaManagedPrivateEndpointState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * 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 + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.monitoring.Workspace;
+ * import com.pulumi.azure.monitoring.WorkspaceArgs;
+ * import com.pulumi.azure.dashboard.Grafana;
+ * import com.pulumi.azure.dashboard.GrafanaArgs;
+ * import com.pulumi.azure.dashboard.inputs.GrafanaAzureMonitorWorkspaceIntegrationArgs;
+ * import com.pulumi.azure.dashboard.GrafanaManagedPrivateEndpoint;
+ * import com.pulumi.azure.dashboard.GrafanaManagedPrivateEndpointArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("example-resources")
+ *             .location("Canada Central")
+ *             .build());
+ * 
+ *         var exampleWorkspace = new Workspace("exampleWorkspace", WorkspaceArgs.builder()
+ *             .name("example-mamw")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .publicNetworkAccessEnabled(false)
+ *             .build());
+ * 
+ *         var exampleGrafana = new Grafana("exampleGrafana", GrafanaArgs.builder()
+ *             .name("example-dg")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .grafanaMajorVersion(10)
+ *             .publicNetworkAccessEnabled(false)
+ *             .azureMonitorWorkspaceIntegrations(GrafanaAzureMonitorWorkspaceIntegrationArgs.builder()
+ *                 .resourceId(exampleWorkspace.id())
+ *                 .build())
+ *             .build());
+ * 
+ *         var exampleGrafanaManagedPrivateEndpoint = new GrafanaManagedPrivateEndpoint("exampleGrafanaManagedPrivateEndpoint", GrafanaManagedPrivateEndpointArgs.builder()
+ *             .grafanaId(exampleGrafana.id())
+ *             .name("example-mpe")
+ *             .location(exampleGrafana.location())
+ *             .privateLinkResourceId(exampleWorkspace.id())
+ *             .groupIds("prometheusMetrics")
+ *             .privateLinkResourceRegion(exampleGrafana.location())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## 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 + * ``` + * + */ +@ResourceType(type="azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint") +public class GrafanaManagedPrivateEndpoint extends com.pulumi.resources.CustomResource { + /** + * The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + @Export(name="grafanaId", refs={String.class}, tree="[0]") + private Output grafanaId; + + /** + * @return The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + public Output grafanaId() { + return this.grafanaId; + } + /** + * 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. + * + */ + @Export(name="groupIds", refs={List.class,String.class}, tree="[0,1]") + private Output> groupIds; + + /** + * @return 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 Output>> groupIds() { + return Codegen.optional(this.groupIds); + } + /** + * 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. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return 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. + * + */ + public Output location() { + return this.location; + } + /** + * 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. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return 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. + * + */ + public Output name() { + return this.name; + } + /** + * 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. + * + */ + @Export(name="privateLinkResourceId", refs={String.class}, tree="[0]") + private Output privateLinkResourceId; + + /** + * @return 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. + * + */ + public Output privateLinkResourceId() { + return this.privateLinkResourceId; + } + /** + * The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + @Export(name="privateLinkResourceRegion", refs={String.class}, tree="[0]") + private Output privateLinkResourceRegion; + + /** + * @return The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + public Output> privateLinkResourceRegion() { + return Codegen.optional(this.privateLinkResourceRegion); + } + /** + * A message to provide in the request which will be seen by approvers. + * + */ + @Export(name="requestMessage", refs={String.class}, tree="[0]") + private Output requestMessage; + + /** + * @return A message to provide in the request which will be seen by approvers. + * + */ + public Output> requestMessage() { + return Codegen.optional(this.requestMessage); + } + /** + * A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public GrafanaManagedPrivateEndpoint(java.lang.String name) { + this(name, GrafanaManagedPrivateEndpointArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public GrafanaManagedPrivateEndpoint(java.lang.String name, GrafanaManagedPrivateEndpointArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public GrafanaManagedPrivateEndpoint(java.lang.String name, GrafanaManagedPrivateEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private GrafanaManagedPrivateEndpoint(java.lang.String name, Output id, @Nullable GrafanaManagedPrivateEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint", name, state, makeResourceOptions(options, id), false); + } + + private static GrafanaManagedPrivateEndpointArgs makeArgs(GrafanaManagedPrivateEndpointArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? GrafanaManagedPrivateEndpointArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static GrafanaManagedPrivateEndpoint get(java.lang.String name, Output id, @Nullable GrafanaManagedPrivateEndpointState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new GrafanaManagedPrivateEndpoint(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dashboard/GrafanaManagedPrivateEndpointArgs.java b/sdk/java/src/main/java/com/pulumi/azure/dashboard/GrafanaManagedPrivateEndpointArgs.java new file mode 100644 index 0000000000..4ed5205a83 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dashboard/GrafanaManagedPrivateEndpointArgs.java @@ -0,0 +1,361 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dashboard; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GrafanaManagedPrivateEndpointArgs extends com.pulumi.resources.ResourceArgs { + + public static final GrafanaManagedPrivateEndpointArgs Empty = new GrafanaManagedPrivateEndpointArgs(); + + /** + * The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + @Import(name="grafanaId", required=true) + private Output grafanaId; + + /** + * @return The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + public Output grafanaId() { + return this.grafanaId; + } + + /** + * 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. + * + */ + @Import(name="groupIds") + private @Nullable Output> groupIds; + + /** + * @return 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 Optional>> groupIds() { + return Optional.ofNullable(this.groupIds); + } + + /** + * 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. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return 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. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * 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. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return 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. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * 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. + * + */ + @Import(name="privateLinkResourceId", required=true) + private Output privateLinkResourceId; + + /** + * @return 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. + * + */ + public Output privateLinkResourceId() { + return this.privateLinkResourceId; + } + + /** + * The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + @Import(name="privateLinkResourceRegion") + private @Nullable Output privateLinkResourceRegion; + + /** + * @return The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + public Optional> privateLinkResourceRegion() { + return Optional.ofNullable(this.privateLinkResourceRegion); + } + + /** + * A message to provide in the request which will be seen by approvers. + * + */ + @Import(name="requestMessage") + private @Nullable Output requestMessage; + + /** + * @return A message to provide in the request which will be seen by approvers. + * + */ + public Optional> requestMessage() { + return Optional.ofNullable(this.requestMessage); + } + + /** + * A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private GrafanaManagedPrivateEndpointArgs() {} + + private GrafanaManagedPrivateEndpointArgs(GrafanaManagedPrivateEndpointArgs $) { + this.grafanaId = $.grafanaId; + this.groupIds = $.groupIds; + this.location = $.location; + this.name = $.name; + this.privateLinkResourceId = $.privateLinkResourceId; + this.privateLinkResourceRegion = $.privateLinkResourceRegion; + this.requestMessage = $.requestMessage; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GrafanaManagedPrivateEndpointArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GrafanaManagedPrivateEndpointArgs $; + + public Builder() { + $ = new GrafanaManagedPrivateEndpointArgs(); + } + + public Builder(GrafanaManagedPrivateEndpointArgs defaults) { + $ = new GrafanaManagedPrivateEndpointArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param grafanaId The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder grafanaId(Output grafanaId) { + $.grafanaId = grafanaId; + return this; + } + + /** + * @param grafanaId The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder grafanaId(String grafanaId) { + return grafanaId(Output.of(grafanaId)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder groupIds(@Nullable Output> groupIds) { + $.groupIds = groupIds; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder groupIds(List groupIds) { + return groupIds(Output.of(groupIds)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder groupIds(String... groupIds) { + return groupIds(List.of(groupIds)); + } + + /** + * @param location 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. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location 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. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name 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. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name 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. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param privateLinkResourceId 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. + * + * @return builder + * + */ + public Builder privateLinkResourceId(Output privateLinkResourceId) { + $.privateLinkResourceId = privateLinkResourceId; + return this; + } + + /** + * @param privateLinkResourceId 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. + * + * @return builder + * + */ + public Builder privateLinkResourceId(String privateLinkResourceId) { + return privateLinkResourceId(Output.of(privateLinkResourceId)); + } + + /** + * @param privateLinkResourceRegion The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder privateLinkResourceRegion(@Nullable Output privateLinkResourceRegion) { + $.privateLinkResourceRegion = privateLinkResourceRegion; + return this; + } + + /** + * @param privateLinkResourceRegion The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder privateLinkResourceRegion(String privateLinkResourceRegion) { + return privateLinkResourceRegion(Output.of(privateLinkResourceRegion)); + } + + /** + * @param requestMessage A message to provide in the request which will be seen by approvers. + * + * @return builder + * + */ + public Builder requestMessage(@Nullable Output requestMessage) { + $.requestMessage = requestMessage; + return this; + } + + /** + * @param requestMessage A message to provide in the request which will be seen by approvers. + * + * @return builder + * + */ + public Builder requestMessage(String requestMessage) { + return requestMessage(Output.of(requestMessage)); + } + + /** + * @param tags A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public GrafanaManagedPrivateEndpointArgs build() { + if ($.grafanaId == null) { + throw new MissingRequiredPropertyException("GrafanaManagedPrivateEndpointArgs", "grafanaId"); + } + if ($.privateLinkResourceId == null) { + throw new MissingRequiredPropertyException("GrafanaManagedPrivateEndpointArgs", "privateLinkResourceId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dashboard/inputs/GrafanaManagedPrivateEndpointState.java b/sdk/java/src/main/java/com/pulumi/azure/dashboard/inputs/GrafanaManagedPrivateEndpointState.java new file mode 100644 index 0000000000..61e9054565 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dashboard/inputs/GrafanaManagedPrivateEndpointState.java @@ -0,0 +1,354 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dashboard.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class GrafanaManagedPrivateEndpointState extends com.pulumi.resources.ResourceArgs { + + public static final GrafanaManagedPrivateEndpointState Empty = new GrafanaManagedPrivateEndpointState(); + + /** + * The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + @Import(name="grafanaId") + private @Nullable Output grafanaId; + + /** + * @return The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + public Optional> grafanaId() { + return Optional.ofNullable(this.grafanaId); + } + + /** + * 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. + * + */ + @Import(name="groupIds") + private @Nullable Output> groupIds; + + /** + * @return 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 Optional>> groupIds() { + return Optional.ofNullable(this.groupIds); + } + + /** + * 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. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return 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. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * 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. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return 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. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * 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. + * + */ + @Import(name="privateLinkResourceId") + private @Nullable Output privateLinkResourceId; + + /** + * @return 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. + * + */ + public Optional> privateLinkResourceId() { + return Optional.ofNullable(this.privateLinkResourceId); + } + + /** + * The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + @Import(name="privateLinkResourceRegion") + private @Nullable Output privateLinkResourceRegion; + + /** + * @return The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + */ + public Optional> privateLinkResourceRegion() { + return Optional.ofNullable(this.privateLinkResourceRegion); + } + + /** + * A message to provide in the request which will be seen by approvers. + * + */ + @Import(name="requestMessage") + private @Nullable Output requestMessage; + + /** + * @return A message to provide in the request which will be seen by approvers. + * + */ + public Optional> requestMessage() { + return Optional.ofNullable(this.requestMessage); + } + + /** + * A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private GrafanaManagedPrivateEndpointState() {} + + private GrafanaManagedPrivateEndpointState(GrafanaManagedPrivateEndpointState $) { + this.grafanaId = $.grafanaId; + this.groupIds = $.groupIds; + this.location = $.location; + this.name = $.name; + this.privateLinkResourceId = $.privateLinkResourceId; + this.privateLinkResourceRegion = $.privateLinkResourceRegion; + this.requestMessage = $.requestMessage; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GrafanaManagedPrivateEndpointState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GrafanaManagedPrivateEndpointState $; + + public Builder() { + $ = new GrafanaManagedPrivateEndpointState(); + } + + public Builder(GrafanaManagedPrivateEndpointState defaults) { + $ = new GrafanaManagedPrivateEndpointState(Objects.requireNonNull(defaults)); + } + + /** + * @param grafanaId The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder grafanaId(@Nullable Output grafanaId) { + $.grafanaId = grafanaId; + return this; + } + + /** + * @param grafanaId The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder grafanaId(String grafanaId) { + return grafanaId(Output.of(grafanaId)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder groupIds(@Nullable Output> groupIds) { + $.groupIds = groupIds; + return this; + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder groupIds(List groupIds) { + return groupIds(Output.of(groupIds)); + } + + /** + * @param 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. + * + * @return builder + * + */ + public Builder groupIds(String... groupIds) { + return groupIds(List.of(groupIds)); + } + + /** + * @param location 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. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location 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. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name 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. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name 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. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param privateLinkResourceId 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. + * + * @return builder + * + */ + public Builder privateLinkResourceId(@Nullable Output privateLinkResourceId) { + $.privateLinkResourceId = privateLinkResourceId; + return this; + } + + /** + * @param privateLinkResourceId 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. + * + * @return builder + * + */ + public Builder privateLinkResourceId(String privateLinkResourceId) { + return privateLinkResourceId(Output.of(privateLinkResourceId)); + } + + /** + * @param privateLinkResourceRegion The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder privateLinkResourceRegion(@Nullable Output privateLinkResourceRegion) { + $.privateLinkResourceRegion = privateLinkResourceRegion; + return this; + } + + /** + * @param privateLinkResourceRegion The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + * + * @return builder + * + */ + public Builder privateLinkResourceRegion(String privateLinkResourceRegion) { + return privateLinkResourceRegion(Output.of(privateLinkResourceRegion)); + } + + /** + * @param requestMessage A message to provide in the request which will be seen by approvers. + * + * @return builder + * + */ + public Builder requestMessage(@Nullable Output requestMessage) { + $.requestMessage = requestMessage; + return this; + } + + /** + * @param requestMessage A message to provide in the request which will be seen by approvers. + * + * @return builder + * + */ + public Builder requestMessage(String requestMessage) { + return requestMessage(Output.of(requestMessage)); + } + + /** + * @param tags A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public GrafanaManagedPrivateEndpointState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dataprotection/BackupInstanceMysqlFlexibleServer.java b/sdk/java/src/main/java/com/pulumi/azure/dataprotection/BackupInstanceMysqlFlexibleServer.java new file mode 100644 index 0000000000..200f486229 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dataprotection/BackupInstanceMysqlFlexibleServer.java @@ -0,0 +1,264 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dataprotection; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.dataprotection.BackupInstanceMysqlFlexibleServerArgs; +import com.pulumi.azure.dataprotection.inputs.BackupInstanceMysqlFlexibleServerState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import javax.annotation.Nullable; + +/** + * Manages a Backup Instance to back up MySQL Flexible Server. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.mysql.FlexibleServer;
+ * import com.pulumi.azure.mysql.FlexibleServerArgs;
+ * import com.pulumi.azure.dataprotection.BackupVault;
+ * import com.pulumi.azure.dataprotection.BackupVaultArgs;
+ * import com.pulumi.azure.dataprotection.inputs.BackupVaultIdentityArgs;
+ * import com.pulumi.azure.authorization.Assignment;
+ * import com.pulumi.azure.authorization.AssignmentArgs;
+ * import com.pulumi.azure.dataprotection.BackupPolicyMysqlFlexibleServer;
+ * import com.pulumi.azure.dataprotection.BackupPolicyMysqlFlexibleServerArgs;
+ * import com.pulumi.azure.dataprotection.inputs.BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs;
+ * import com.pulumi.azure.dataprotection.BackupInstanceMysqlFlexibleServer;
+ * import com.pulumi.azure.dataprotection.BackupInstanceMysqlFlexibleServerArgs;
+ * import com.pulumi.resources.CustomResourceOptions;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("example-resources")
+ *             .location("West Europe")
+ *             .build());
+ * 
+ *         var exampleFlexibleServer = new FlexibleServer("exampleFlexibleServer", FlexibleServerArgs.builder()
+ *             .name("example-mysqlfs")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .administratorLogin("adminTerraform")
+ *             .administratorPassword("QAZwsx123")
+ *             .version("8.0.21")
+ *             .skuName("B_Standard_B1s")
+ *             .zone("1")
+ *             .build());
+ * 
+ *         var exampleBackupVault = new BackupVault("exampleBackupVault", BackupVaultArgs.builder()
+ *             .name("example-backupvault")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .datastoreType("VaultStore")
+ *             .redundancy("LocallyRedundant")
+ *             .softDelete("Off")
+ *             .identity(BackupVaultIdentityArgs.builder()
+ *                 .type("SystemAssigned")
+ *                 .build())
+ *             .build());
+ * 
+ *         var exampleAssignment = new Assignment("exampleAssignment", AssignmentArgs.builder()
+ *             .scope(example.id())
+ *             .roleDefinitionName("Reader")
+ *             .principalId(exampleBackupVault.identity().applyValue(identity -> identity.principalId()))
+ *             .build());
+ * 
+ *         var example2 = new Assignment("example2", AssignmentArgs.builder()
+ *             .scope(exampleFlexibleServer.id())
+ *             .roleDefinitionName("MySQL Backup And Export Operator")
+ *             .principalId(exampleBackupVault.identity().applyValue(identity -> identity.principalId()))
+ *             .build());
+ * 
+ *         var exampleBackupPolicyMysqlFlexibleServer = new BackupPolicyMysqlFlexibleServer("exampleBackupPolicyMysqlFlexibleServer", BackupPolicyMysqlFlexibleServerArgs.builder()
+ *             .name("example-dp")
+ *             .vaultId(exampleBackupVault.id())
+ *             .backupRepeatingTimeIntervals("R/2021-05-23T02:30:00+00:00/P1W")
+ *             .defaultRetentionRule(BackupPolicyMysqlFlexibleServerDefaultRetentionRuleArgs.builder()
+ *                 .lifeCycles(BackupPolicyMysqlFlexibleServerDefaultRetentionRuleLifeCycleArgs.builder()
+ *                     .duration("P4M")
+ *                     .dataStoreType("VaultStore")
+ *                     .build())
+ *                 .build())
+ *             .build(), CustomResourceOptions.builder()
+ *                 .dependsOn(                
+ *                     exampleAssignment,
+ *                     example2)
+ *                 .build());
+ * 
+ *         var exampleBackupInstanceMysqlFlexibleServer = new BackupInstanceMysqlFlexibleServer("exampleBackupInstanceMysqlFlexibleServer", BackupInstanceMysqlFlexibleServerArgs.builder()
+ *             .name("example-dbi")
+ *             .location(example.location())
+ *             .vaultId(exampleBackupVault.id())
+ *             .serverId(exampleFlexibleServer.id())
+ *             .backupPolicyId(exampleBackupPolicyMysqlFlexibleServer.id())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## 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 + * ``` + * + */ +@ResourceType(type="azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer") +public class BackupInstanceMysqlFlexibleServer extends com.pulumi.resources.CustomResource { + /** + * The ID of the Backup Policy. + * + */ + @Export(name="backupPolicyId", refs={String.class}, tree="[0]") + private Output backupPolicyId; + + /** + * @return The ID of the Backup Policy. + * + */ + public Output backupPolicyId() { + return this.backupPolicyId; + } + /** + * The location of the source database. Changing this forces a new resource to be created. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The location of the source database. Changing this forces a new resource to be created. + * + */ + public Output location() { + return this.location; + } + /** + * Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + */ + public Output name() { + return this.name; + } + /** + * The ID of the source server. Changing this forces a new resource to be created. + * + */ + @Export(name="serverId", refs={String.class}, tree="[0]") + private Output serverId; + + /** + * @return The ID of the source server. Changing this forces a new resource to be created. + * + */ + public Output serverId() { + return this.serverId; + } + /** + * 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. + * + */ + @Export(name="vaultId", refs={String.class}, tree="[0]") + private Output vaultId; + + /** + * @return 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. + * + */ + public Output vaultId() { + return this.vaultId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public BackupInstanceMysqlFlexibleServer(java.lang.String name) { + this(name, BackupInstanceMysqlFlexibleServerArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public BackupInstanceMysqlFlexibleServer(java.lang.String name, BackupInstanceMysqlFlexibleServerArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public BackupInstanceMysqlFlexibleServer(java.lang.String name, BackupInstanceMysqlFlexibleServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private BackupInstanceMysqlFlexibleServer(java.lang.String name, Output id, @Nullable BackupInstanceMysqlFlexibleServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer", name, state, makeResourceOptions(options, id), false); + } + + private static BackupInstanceMysqlFlexibleServerArgs makeArgs(BackupInstanceMysqlFlexibleServerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? BackupInstanceMysqlFlexibleServerArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static BackupInstanceMysqlFlexibleServer get(java.lang.String name, Output id, @Nullable BackupInstanceMysqlFlexibleServerState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new BackupInstanceMysqlFlexibleServer(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dataprotection/BackupInstanceMysqlFlexibleServerArgs.java b/sdk/java/src/main/java/com/pulumi/azure/dataprotection/BackupInstanceMysqlFlexibleServerArgs.java new file mode 100644 index 0000000000..d2a3c56c23 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dataprotection/BackupInstanceMysqlFlexibleServerArgs.java @@ -0,0 +1,241 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dataprotection; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupInstanceMysqlFlexibleServerArgs extends com.pulumi.resources.ResourceArgs { + + public static final BackupInstanceMysqlFlexibleServerArgs Empty = new BackupInstanceMysqlFlexibleServerArgs(); + + /** + * The ID of the Backup Policy. + * + */ + @Import(name="backupPolicyId", required=true) + private Output backupPolicyId; + + /** + * @return The ID of the Backup Policy. + * + */ + public Output backupPolicyId() { + return this.backupPolicyId; + } + + /** + * The location of the source database. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The location of the source database. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the source server. Changing this forces a new resource to be created. + * + */ + @Import(name="serverId", required=true) + private Output serverId; + + /** + * @return The ID of the source server. Changing this forces a new resource to be created. + * + */ + public Output serverId() { + return this.serverId; + } + + /** + * 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. + * + */ + @Import(name="vaultId", required=true) + private Output vaultId; + + /** + * @return 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. + * + */ + public Output vaultId() { + return this.vaultId; + } + + private BackupInstanceMysqlFlexibleServerArgs() {} + + private BackupInstanceMysqlFlexibleServerArgs(BackupInstanceMysqlFlexibleServerArgs $) { + this.backupPolicyId = $.backupPolicyId; + this.location = $.location; + this.name = $.name; + this.serverId = $.serverId; + this.vaultId = $.vaultId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupInstanceMysqlFlexibleServerArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupInstanceMysqlFlexibleServerArgs $; + + public Builder() { + $ = new BackupInstanceMysqlFlexibleServerArgs(); + } + + public Builder(BackupInstanceMysqlFlexibleServerArgs defaults) { + $ = new BackupInstanceMysqlFlexibleServerArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPolicyId The ID of the Backup Policy. + * + * @return builder + * + */ + public Builder backupPolicyId(Output backupPolicyId) { + $.backupPolicyId = backupPolicyId; + return this; + } + + /** + * @param backupPolicyId The ID of the Backup Policy. + * + * @return builder + * + */ + public Builder backupPolicyId(String backupPolicyId) { + return backupPolicyId(Output.of(backupPolicyId)); + } + + /** + * @param location The location of the source database. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The location of the source database. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param serverId The ID of the source server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder serverId(Output serverId) { + $.serverId = serverId; + return this; + } + + /** + * @param serverId The ID of the source server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder serverId(String serverId) { + return serverId(Output.of(serverId)); + } + + /** + * @param vaultId 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. + * + * @return builder + * + */ + public Builder vaultId(Output vaultId) { + $.vaultId = vaultId; + return this; + } + + /** + * @param vaultId 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. + * + * @return builder + * + */ + public Builder vaultId(String vaultId) { + return vaultId(Output.of(vaultId)); + } + + public BackupInstanceMysqlFlexibleServerArgs build() { + if ($.backupPolicyId == null) { + throw new MissingRequiredPropertyException("BackupInstanceMysqlFlexibleServerArgs", "backupPolicyId"); + } + if ($.serverId == null) { + throw new MissingRequiredPropertyException("BackupInstanceMysqlFlexibleServerArgs", "serverId"); + } + if ($.vaultId == null) { + throw new MissingRequiredPropertyException("BackupInstanceMysqlFlexibleServerArgs", "vaultId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dataprotection/inputs/BackupInstanceMysqlFlexibleServerState.java b/sdk/java/src/main/java/com/pulumi/azure/dataprotection/inputs/BackupInstanceMysqlFlexibleServerState.java new file mode 100644 index 0000000000..bad476576e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dataprotection/inputs/BackupInstanceMysqlFlexibleServerState.java @@ -0,0 +1,231 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dataprotection.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class BackupInstanceMysqlFlexibleServerState extends com.pulumi.resources.ResourceArgs { + + public static final BackupInstanceMysqlFlexibleServerState Empty = new BackupInstanceMysqlFlexibleServerState(); + + /** + * The ID of the Backup Policy. + * + */ + @Import(name="backupPolicyId") + private @Nullable Output backupPolicyId; + + /** + * @return The ID of the Backup Policy. + * + */ + public Optional> backupPolicyId() { + return Optional.ofNullable(this.backupPolicyId); + } + + /** + * The location of the source database. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The location of the source database. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The ID of the source server. Changing this forces a new resource to be created. + * + */ + @Import(name="serverId") + private @Nullable Output serverId; + + /** + * @return The ID of the source server. Changing this forces a new resource to be created. + * + */ + public Optional> serverId() { + return Optional.ofNullable(this.serverId); + } + + /** + * 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. + * + */ + @Import(name="vaultId") + private @Nullable Output vaultId; + + /** + * @return 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. + * + */ + public Optional> vaultId() { + return Optional.ofNullable(this.vaultId); + } + + private BackupInstanceMysqlFlexibleServerState() {} + + private BackupInstanceMysqlFlexibleServerState(BackupInstanceMysqlFlexibleServerState $) { + this.backupPolicyId = $.backupPolicyId; + this.location = $.location; + this.name = $.name; + this.serverId = $.serverId; + this.vaultId = $.vaultId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(BackupInstanceMysqlFlexibleServerState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private BackupInstanceMysqlFlexibleServerState $; + + public Builder() { + $ = new BackupInstanceMysqlFlexibleServerState(); + } + + public Builder(BackupInstanceMysqlFlexibleServerState defaults) { + $ = new BackupInstanceMysqlFlexibleServerState(Objects.requireNonNull(defaults)); + } + + /** + * @param backupPolicyId The ID of the Backup Policy. + * + * @return builder + * + */ + public Builder backupPolicyId(@Nullable Output backupPolicyId) { + $.backupPolicyId = backupPolicyId; + return this; + } + + /** + * @param backupPolicyId The ID of the Backup Policy. + * + * @return builder + * + */ + public Builder backupPolicyId(String backupPolicyId) { + return backupPolicyId(Output.of(backupPolicyId)); + } + + /** + * @param location The location of the source database. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The location of the source database. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param name Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param serverId The ID of the source server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder serverId(@Nullable Output serverId) { + $.serverId = serverId; + return this; + } + + /** + * @param serverId The ID of the source server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder serverId(String serverId) { + return serverId(Output.of(serverId)); + } + + /** + * @param vaultId 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. + * + * @return builder + * + */ + public Builder vaultId(@Nullable Output vaultId) { + $.vaultId = vaultId; + return this; + } + + /** + * @param vaultId 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. + * + * @return builder + * + */ + public Builder vaultId(String vaultId) { + return vaultId(Output.of(vaultId)); + } + + public BackupInstanceMysqlFlexibleServerState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/Monitor.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/Monitor.java new file mode 100644 index 0000000000..099f6d7584 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/Monitor.java @@ -0,0 +1,223 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.dynatrace.MonitorArgs; +import com.pulumi.azure.dynatrace.inputs.MonitorState; +import com.pulumi.azure.dynatrace.outputs.MonitorIdentity; +import com.pulumi.azure.dynatrace.outputs.MonitorPlan; +import com.pulumi.azure.dynatrace.outputs.MonitorUser; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.Boolean; +import java.lang.String; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Manages Dynatrace monitors. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * <!--End PulumiCodeChooser --> + * + * ## 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 + * ``` + * + */ +@ResourceType(type="azure:dynatrace/monitor:Monitor") +public class Monitor extends com.pulumi.resources.CustomResource { + /** + * The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + */ + @Export(name="identity", refs={MonitorIdentity.class}, tree="[0]") + private Output identity; + + /** + * @return The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + */ + public Output identity() { + return this.identity; + } + /** + * The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + public Output location() { + return this.location; + } + /** + * 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`. + * + */ + @Export(name="marketplaceSubscription", refs={String.class}, tree="[0]") + private Output marketplaceSubscription; + + /** + * @return 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`. + * + */ + public Output marketplaceSubscription() { + return this.marketplaceSubscription; + } + /** + * Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + */ + @Export(name="monitoringEnabled", refs={Boolean.class}, tree="[0]") + private Output monitoringEnabled; + + /** + * @return Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + */ + public Output> monitoringEnabled() { + return Codegen.optional(this.monitoringEnabled); + } + /** + * Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + */ + public Output name() { + return this.name; + } + /** + * Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + */ + @Export(name="plan", refs={MonitorPlan.class}, tree="[0]") + private Output plan; + + /** + * @return Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + */ + public Output plan() { + return this.plan; + } + /** + * The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + @Export(name="resourceGroupName", refs={String.class}, tree="[0]") + private Output resourceGroupName; + + /** + * @return The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + /** + * A mapping of tags to assign to the resource. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A mapping of tags to assign to the resource. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + /** + * User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + */ + @Export(name="user", refs={MonitorUser.class}, tree="[0]") + private Output user; + + /** + * @return User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + */ + public Output user() { + return this.user; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Monitor(java.lang.String name) { + this(name, MonitorArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Monitor(java.lang.String name, MonitorArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public Monitor(java.lang.String name, MonitorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:dynatrace/monitor:Monitor", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private Monitor(java.lang.String name, Output id, @Nullable MonitorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:dynatrace/monitor:Monitor", name, state, makeResourceOptions(options, id), false); + } + + private static MonitorArgs makeArgs(MonitorArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? MonitorArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static Monitor get(java.lang.String name, Output id, @Nullable MonitorState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new Monitor(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/MonitorArgs.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/MonitorArgs.java new file mode 100644 index 0000000000..ba6f6e2840 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/MonitorArgs.java @@ -0,0 +1,400 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace; + +import com.pulumi.azure.dynatrace.inputs.MonitorIdentityArgs; +import com.pulumi.azure.dynatrace.inputs.MonitorPlanArgs; +import com.pulumi.azure.dynatrace.inputs.MonitorUserArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Boolean; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MonitorArgs extends com.pulumi.resources.ResourceArgs { + + public static final MonitorArgs Empty = new MonitorArgs(); + + /** + * The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + */ + @Import(name="identity", required=true) + private Output identity; + + /** + * @return The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + */ + public Output identity() { + return this.identity; + } + + /** + * The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * 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`. + * + */ + @Import(name="marketplaceSubscription", required=true) + private Output marketplaceSubscription; + + /** + * @return 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`. + * + */ + public Output marketplaceSubscription() { + return this.marketplaceSubscription; + } + + /** + * Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + */ + @Import(name="monitoringEnabled") + private @Nullable Output monitoringEnabled; + + /** + * @return Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + */ + public Optional> monitoringEnabled() { + return Optional.ofNullable(this.monitoringEnabled); + } + + /** + * Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + */ + @Import(name="plan", required=true) + private Output plan; + + /** + * @return Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + */ + public Output plan() { + return this.plan; + } + + /** + * The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="resourceGroupName", required=true) + private Output resourceGroupName; + + /** + * @return The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + + /** + * A mapping of tags to assign to the resource. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags to assign to the resource. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + */ + @Import(name="user", required=true) + private Output user; + + /** + * @return User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + */ + public Output user() { + return this.user; + } + + private MonitorArgs() {} + + private MonitorArgs(MonitorArgs $) { + this.identity = $.identity; + this.location = $.location; + this.marketplaceSubscription = $.marketplaceSubscription; + this.monitoringEnabled = $.monitoringEnabled; + this.name = $.name; + this.plan = $.plan; + this.resourceGroupName = $.resourceGroupName; + this.tags = $.tags; + this.user = $.user; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MonitorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MonitorArgs $; + + public Builder() { + $ = new MonitorArgs(); + } + + public Builder(MonitorArgs defaults) { + $ = new MonitorArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param identity The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(MonitorIdentityArgs identity) { + return identity(Output.of(identity)); + } + + /** + * @param location The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param marketplaceSubscription 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`. + * + * @return builder + * + */ + public Builder marketplaceSubscription(Output marketplaceSubscription) { + $.marketplaceSubscription = marketplaceSubscription; + return this; + } + + /** + * @param marketplaceSubscription 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`. + * + * @return builder + * + */ + public Builder marketplaceSubscription(String marketplaceSubscription) { + return marketplaceSubscription(Output.of(marketplaceSubscription)); + } + + /** + * @param monitoringEnabled Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + * @return builder + * + */ + public Builder monitoringEnabled(@Nullable Output monitoringEnabled) { + $.monitoringEnabled = monitoringEnabled; + return this; + } + + /** + * @param monitoringEnabled Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + * @return builder + * + */ + public Builder monitoringEnabled(Boolean monitoringEnabled) { + return monitoringEnabled(Output.of(monitoringEnabled)); + } + + /** + * @param name Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param plan Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder plan(Output plan) { + $.plan = plan; + return this; + } + + /** + * @param plan Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder plan(MonitorPlanArgs plan) { + return plan(Output.of(plan)); + } + + /** + * @param resourceGroupName The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(Output resourceGroupName) { + $.resourceGroupName = resourceGroupName; + return this; + } + + /** + * @param resourceGroupName The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param user User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + * @return builder + * + */ + public Builder user(Output user) { + $.user = user; + return this; + } + + /** + * @param user User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + * @return builder + * + */ + public Builder user(MonitorUserArgs user) { + return user(Output.of(user)); + } + + public MonitorArgs build() { + if ($.identity == null) { + throw new MissingRequiredPropertyException("MonitorArgs", "identity"); + } + if ($.marketplaceSubscription == null) { + throw new MissingRequiredPropertyException("MonitorArgs", "marketplaceSubscription"); + } + if ($.plan == null) { + throw new MissingRequiredPropertyException("MonitorArgs", "plan"); + } + if ($.resourceGroupName == null) { + throw new MissingRequiredPropertyException("MonitorArgs", "resourceGroupName"); + } + if ($.user == null) { + throw new MissingRequiredPropertyException("MonitorArgs", "user"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorIdentityArgs.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorIdentityArgs.java new file mode 100644 index 0000000000..615efc1b1e --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorIdentityArgs.java @@ -0,0 +1,121 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MonitorIdentityArgs extends com.pulumi.resources.ResourceArgs { + + public static final MonitorIdentityArgs Empty = new MonitorIdentityArgs(); + + @Import(name="principalId") + private @Nullable Output principalId; + + public Optional> principalId() { + return Optional.ofNullable(this.principalId); + } + + @Import(name="tenantId") + private @Nullable Output tenantId; + + public Optional> tenantId() { + return Optional.ofNullable(this.tenantId); + } + + /** + * The type of identity used for the resource. Only possible value is `SystemAssigned`. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return The type of identity used for the resource. Only possible value is `SystemAssigned`. + * + */ + public Output type() { + return this.type; + } + + private MonitorIdentityArgs() {} + + private MonitorIdentityArgs(MonitorIdentityArgs $) { + this.principalId = $.principalId; + this.tenantId = $.tenantId; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MonitorIdentityArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MonitorIdentityArgs $; + + public Builder() { + $ = new MonitorIdentityArgs(); + } + + public Builder(MonitorIdentityArgs defaults) { + $ = new MonitorIdentityArgs(Objects.requireNonNull(defaults)); + } + + public Builder principalId(@Nullable Output principalId) { + $.principalId = principalId; + return this; + } + + public Builder principalId(String principalId) { + return principalId(Output.of(principalId)); + } + + public Builder tenantId(@Nullable Output tenantId) { + $.tenantId = tenantId; + return this; + } + + public Builder tenantId(String tenantId) { + return tenantId(Output.of(tenantId)); + } + + /** + * @param type The type of identity used for the resource. Only possible value is `SystemAssigned`. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of identity used for the resource. Only possible value is `SystemAssigned`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public MonitorIdentityArgs build() { + if ($.type == null) { + throw new MissingRequiredPropertyException("MonitorIdentityArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorPlanArgs.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorPlanArgs.java new file mode 100644 index 0000000000..15ea235ef6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorPlanArgs.java @@ -0,0 +1,198 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MonitorPlanArgs extends com.pulumi.resources.ResourceArgs { + + public static final MonitorPlanArgs Empty = new MonitorPlanArgs(); + + /** + * Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + * + */ + @Import(name="billingCycle") + private @Nullable Output billingCycle; + + /** + * @return Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + * + */ + public Optional> billingCycle() { + return Optional.ofNullable(this.billingCycle); + } + + /** + * Date when plan was applied. + * + */ + @Import(name="effectiveDate") + private @Nullable Output effectiveDate; + + /** + * @return Date when plan was applied. + * + */ + public Optional> effectiveDate() { + return Optional.ofNullable(this.effectiveDate); + } + + /** + * Plan id as published by Dynatrace. + * + */ + @Import(name="plan", required=true) + private Output plan; + + /** + * @return Plan id as published by Dynatrace. + * + */ + public Output plan() { + return this.plan; + } + + /** + * Different usage type. Possible values are `PAYG` and `COMMITTED`. + * + */ + @Import(name="usageType") + private @Nullable Output usageType; + + /** + * @return Different usage type. Possible values are `PAYG` and `COMMITTED`. + * + */ + public Optional> usageType() { + return Optional.ofNullable(this.usageType); + } + + private MonitorPlanArgs() {} + + private MonitorPlanArgs(MonitorPlanArgs $) { + this.billingCycle = $.billingCycle; + this.effectiveDate = $.effectiveDate; + this.plan = $.plan; + this.usageType = $.usageType; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MonitorPlanArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MonitorPlanArgs $; + + public Builder() { + $ = new MonitorPlanArgs(); + } + + public Builder(MonitorPlanArgs defaults) { + $ = new MonitorPlanArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param billingCycle Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + * + * @return builder + * + */ + public Builder billingCycle(@Nullable Output billingCycle) { + $.billingCycle = billingCycle; + return this; + } + + /** + * @param billingCycle Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + * + * @return builder + * + */ + public Builder billingCycle(String billingCycle) { + return billingCycle(Output.of(billingCycle)); + } + + /** + * @param effectiveDate Date when plan was applied. + * + * @return builder + * + */ + public Builder effectiveDate(@Nullable Output effectiveDate) { + $.effectiveDate = effectiveDate; + return this; + } + + /** + * @param effectiveDate Date when plan was applied. + * + * @return builder + * + */ + public Builder effectiveDate(String effectiveDate) { + return effectiveDate(Output.of(effectiveDate)); + } + + /** + * @param plan Plan id as published by Dynatrace. + * + * @return builder + * + */ + public Builder plan(Output plan) { + $.plan = plan; + return this; + } + + /** + * @param plan Plan id as published by Dynatrace. + * + * @return builder + * + */ + public Builder plan(String plan) { + return plan(Output.of(plan)); + } + + /** + * @param usageType Different usage type. Possible values are `PAYG` and `COMMITTED`. + * + * @return builder + * + */ + public Builder usageType(@Nullable Output usageType) { + $.usageType = usageType; + return this; + } + + /** + * @param usageType Different usage type. Possible values are `PAYG` and `COMMITTED`. + * + * @return builder + * + */ + public Builder usageType(String usageType) { + return usageType(Output.of(usageType)); + } + + public MonitorPlanArgs build() { + if ($.plan == null) { + throw new MissingRequiredPropertyException("MonitorPlanArgs", "plan"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorState.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorState.java new file mode 100644 index 0000000000..95496ced60 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorState.java @@ -0,0 +1,384 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace.inputs; + +import com.pulumi.azure.dynatrace.inputs.MonitorIdentityArgs; +import com.pulumi.azure.dynatrace.inputs.MonitorPlanArgs; +import com.pulumi.azure.dynatrace.inputs.MonitorUserArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class MonitorState extends com.pulumi.resources.ResourceArgs { + + public static final MonitorState Empty = new MonitorState(); + + /** + * The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + */ + @Import(name="identity") + private @Nullable Output identity; + + /** + * @return The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + */ + public Optional> identity() { + return Optional.ofNullable(this.identity); + } + + /** + * The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * 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`. + * + */ + @Import(name="marketplaceSubscription") + private @Nullable Output marketplaceSubscription; + + /** + * @return 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`. + * + */ + public Optional> marketplaceSubscription() { + return Optional.ofNullable(this.marketplaceSubscription); + } + + /** + * Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + */ + @Import(name="monitoringEnabled") + private @Nullable Output monitoringEnabled; + + /** + * @return Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + */ + public Optional> monitoringEnabled() { + return Optional.ofNullable(this.monitoringEnabled); + } + + /** + * Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + */ + @Import(name="plan") + private @Nullable Output plan; + + /** + * @return Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + */ + public Optional> plan() { + return Optional.ofNullable(this.plan); + } + + /** + * The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="resourceGroupName") + private @Nullable Output resourceGroupName; + + /** + * @return The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + */ + public Optional> resourceGroupName() { + return Optional.ofNullable(this.resourceGroupName); + } + + /** + * A mapping of tags to assign to the resource. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags to assign to the resource. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + /** + * User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + */ + @Import(name="user") + private @Nullable Output user; + + /** + * @return User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + */ + public Optional> user() { + return Optional.ofNullable(this.user); + } + + private MonitorState() {} + + private MonitorState(MonitorState $) { + this.identity = $.identity; + this.location = $.location; + this.marketplaceSubscription = $.marketplaceSubscription; + this.monitoringEnabled = $.monitoringEnabled; + this.name = $.name; + this.plan = $.plan; + this.resourceGroupName = $.resourceGroupName; + this.tags = $.tags; + this.user = $.user; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MonitorState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MonitorState $; + + public Builder() { + $ = new MonitorState(); + } + + public Builder(MonitorState defaults) { + $ = new MonitorState(Objects.requireNonNull(defaults)); + } + + /** + * @param identity The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(@Nullable Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity The kind of managed identity assigned to this resource. A `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(MonitorIdentityArgs identity) { + return identity(Output.of(identity)); + } + + /** + * @param location The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param marketplaceSubscription 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`. + * + * @return builder + * + */ + public Builder marketplaceSubscription(@Nullable Output marketplaceSubscription) { + $.marketplaceSubscription = marketplaceSubscription; + return this; + } + + /** + * @param marketplaceSubscription 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`. + * + * @return builder + * + */ + public Builder marketplaceSubscription(String marketplaceSubscription) { + return marketplaceSubscription(Output.of(marketplaceSubscription)); + } + + /** + * @param monitoringEnabled Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + * @return builder + * + */ + public Builder monitoringEnabled(@Nullable Output monitoringEnabled) { + $.monitoringEnabled = monitoringEnabled; + return this; + } + + /** + * @param monitoringEnabled Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + * + * @return builder + * + */ + public Builder monitoringEnabled(Boolean monitoringEnabled) { + return monitoringEnabled(Output.of(monitoringEnabled)); + } + + /** + * @param name Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Name of the Dynatrace monitor. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param plan Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder plan(@Nullable Output plan) { + $.plan = plan; + return this; + } + + /** + * @param plan Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder plan(MonitorPlanArgs plan) { + return plan(Output.of(plan)); + } + + /** + * @param resourceGroupName The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(@Nullable Output resourceGroupName) { + $.resourceGroupName = resourceGroupName; + return this; + } + + /** + * @param resourceGroupName The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + /** + * @param user User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + * @return builder + * + */ + public Builder user(@Nullable Output user) { + $.user = user; + return this; + } + + /** + * @param user User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + * + * @return builder + * + */ + public Builder user(MonitorUserArgs user) { + return user(Output.of(user)); + } + + public MonitorState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorUserArgs.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorUserArgs.java new file mode 100644 index 0000000000..ac736fc6ec --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/inputs/MonitorUserArgs.java @@ -0,0 +1,245 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class MonitorUserArgs extends com.pulumi.resources.ResourceArgs { + + public static final MonitorUserArgs Empty = new MonitorUserArgs(); + + /** + * Country of the user. + * + */ + @Import(name="country", required=true) + private Output country; + + /** + * @return Country of the user. + * + */ + public Output country() { + return this.country; + } + + /** + * Email of the user used by Dynatrace for contacting them if needed. + * + */ + @Import(name="email", required=true) + private Output email; + + /** + * @return Email of the user used by Dynatrace for contacting them if needed. + * + */ + public Output email() { + return this.email; + } + + /** + * First name of the user. + * + */ + @Import(name="firstName", required=true) + private Output firstName; + + /** + * @return First name of the user. + * + */ + public Output firstName() { + return this.firstName; + } + + /** + * Last name of the user. + * + */ + @Import(name="lastName", required=true) + private Output lastName; + + /** + * @return Last name of the user. + * + */ + public Output lastName() { + return this.lastName; + } + + /** + * phone number of the user by Dynatrace for contacting them if needed. + * + */ + @Import(name="phoneNumber", required=true) + private Output phoneNumber; + + /** + * @return phone number of the user by Dynatrace for contacting them if needed. + * + */ + public Output phoneNumber() { + return this.phoneNumber; + } + + private MonitorUserArgs() {} + + private MonitorUserArgs(MonitorUserArgs $) { + this.country = $.country; + this.email = $.email; + this.firstName = $.firstName; + this.lastName = $.lastName; + this.phoneNumber = $.phoneNumber; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(MonitorUserArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private MonitorUserArgs $; + + public Builder() { + $ = new MonitorUserArgs(); + } + + public Builder(MonitorUserArgs defaults) { + $ = new MonitorUserArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param country Country of the user. + * + * @return builder + * + */ + public Builder country(Output country) { + $.country = country; + return this; + } + + /** + * @param country Country of the user. + * + * @return builder + * + */ + public Builder country(String country) { + return country(Output.of(country)); + } + + /** + * @param email Email of the user used by Dynatrace for contacting them if needed. + * + * @return builder + * + */ + public Builder email(Output email) { + $.email = email; + return this; + } + + /** + * @param email Email of the user used by Dynatrace for contacting them if needed. + * + * @return builder + * + */ + public Builder email(String email) { + return email(Output.of(email)); + } + + /** + * @param firstName First name of the user. + * + * @return builder + * + */ + public Builder firstName(Output firstName) { + $.firstName = firstName; + return this; + } + + /** + * @param firstName First name of the user. + * + * @return builder + * + */ + public Builder firstName(String firstName) { + return firstName(Output.of(firstName)); + } + + /** + * @param lastName Last name of the user. + * + * @return builder + * + */ + public Builder lastName(Output lastName) { + $.lastName = lastName; + return this; + } + + /** + * @param lastName Last name of the user. + * + * @return builder + * + */ + public Builder lastName(String lastName) { + return lastName(Output.of(lastName)); + } + + /** + * @param phoneNumber phone number of the user by Dynatrace for contacting them if needed. + * + * @return builder + * + */ + public Builder phoneNumber(Output phoneNumber) { + $.phoneNumber = phoneNumber; + return this; + } + + /** + * @param phoneNumber phone number of the user by Dynatrace for contacting them if needed. + * + * @return builder + * + */ + public Builder phoneNumber(String phoneNumber) { + return phoneNumber(Output.of(phoneNumber)); + } + + public MonitorUserArgs build() { + if ($.country == null) { + throw new MissingRequiredPropertyException("MonitorUserArgs", "country"); + } + if ($.email == null) { + throw new MissingRequiredPropertyException("MonitorUserArgs", "email"); + } + if ($.firstName == null) { + throw new MissingRequiredPropertyException("MonitorUserArgs", "firstName"); + } + if ($.lastName == null) { + throw new MissingRequiredPropertyException("MonitorUserArgs", "lastName"); + } + if ($.phoneNumber == null) { + throw new MissingRequiredPropertyException("MonitorUserArgs", "phoneNumber"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorIdentity.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorIdentity.java new file mode 100644 index 0000000000..8d3c235f20 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorIdentity.java @@ -0,0 +1,86 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MonitorIdentity { + private @Nullable String principalId; + private @Nullable String tenantId; + /** + * @return The type of identity used for the resource. Only possible value is `SystemAssigned`. + * + */ + private String type; + + private MonitorIdentity() {} + public Optional principalId() { + return Optional.ofNullable(this.principalId); + } + public Optional tenantId() { + return Optional.ofNullable(this.tenantId); + } + /** + * @return The type of identity used for the resource. Only possible value is `SystemAssigned`. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MonitorIdentity defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String principalId; + private @Nullable String tenantId; + private String type; + public Builder() {} + public Builder(MonitorIdentity defaults) { + Objects.requireNonNull(defaults); + this.principalId = defaults.principalId; + this.tenantId = defaults.tenantId; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder principalId(@Nullable String principalId) { + + this.principalId = principalId; + return this; + } + @CustomType.Setter + public Builder tenantId(@Nullable String tenantId) { + + this.tenantId = tenantId; + return this; + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("MonitorIdentity", "type"); + } + this.type = type; + return this; + } + public MonitorIdentity build() { + final var _resultValue = new MonitorIdentity(); + _resultValue.principalId = principalId; + _resultValue.tenantId = tenantId; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorPlan.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorPlan.java new file mode 100644 index 0000000000..1283de19be --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorPlan.java @@ -0,0 +1,123 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class MonitorPlan { + /** + * @return Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + * + */ + private @Nullable String billingCycle; + /** + * @return Date when plan was applied. + * + */ + private @Nullable String effectiveDate; + /** + * @return Plan id as published by Dynatrace. + * + */ + private String plan; + /** + * @return Different usage type. Possible values are `PAYG` and `COMMITTED`. + * + */ + private @Nullable String usageType; + + private MonitorPlan() {} + /** + * @return Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + * + */ + public Optional billingCycle() { + return Optional.ofNullable(this.billingCycle); + } + /** + * @return Date when plan was applied. + * + */ + public Optional effectiveDate() { + return Optional.ofNullable(this.effectiveDate); + } + /** + * @return Plan id as published by Dynatrace. + * + */ + public String plan() { + return this.plan; + } + /** + * @return Different usage type. Possible values are `PAYG` and `COMMITTED`. + * + */ + public Optional usageType() { + return Optional.ofNullable(this.usageType); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MonitorPlan defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String billingCycle; + private @Nullable String effectiveDate; + private String plan; + private @Nullable String usageType; + public Builder() {} + public Builder(MonitorPlan defaults) { + Objects.requireNonNull(defaults); + this.billingCycle = defaults.billingCycle; + this.effectiveDate = defaults.effectiveDate; + this.plan = defaults.plan; + this.usageType = defaults.usageType; + } + + @CustomType.Setter + public Builder billingCycle(@Nullable String billingCycle) { + + this.billingCycle = billingCycle; + return this; + } + @CustomType.Setter + public Builder effectiveDate(@Nullable String effectiveDate) { + + this.effectiveDate = effectiveDate; + return this; + } + @CustomType.Setter + public Builder plan(String plan) { + if (plan == null) { + throw new MissingRequiredPropertyException("MonitorPlan", "plan"); + } + this.plan = plan; + return this; + } + @CustomType.Setter + public Builder usageType(@Nullable String usageType) { + + this.usageType = usageType; + return this; + } + public MonitorPlan build() { + final var _resultValue = new MonitorPlan(); + _resultValue.billingCycle = billingCycle; + _resultValue.effectiveDate = effectiveDate; + _resultValue.plan = plan; + _resultValue.usageType = usageType; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorUser.java b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorUser.java new file mode 100644 index 0000000000..b6049f5be3 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/dynatrace/outputs/MonitorUser.java @@ -0,0 +1,150 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.dynatrace.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class MonitorUser { + /** + * @return Country of the user. + * + */ + private String country; + /** + * @return Email of the user used by Dynatrace for contacting them if needed. + * + */ + private String email; + /** + * @return First name of the user. + * + */ + private String firstName; + /** + * @return Last name of the user. + * + */ + private String lastName; + /** + * @return phone number of the user by Dynatrace for contacting them if needed. + * + */ + private String phoneNumber; + + private MonitorUser() {} + /** + * @return Country of the user. + * + */ + public String country() { + return this.country; + } + /** + * @return Email of the user used by Dynatrace for contacting them if needed. + * + */ + public String email() { + return this.email; + } + /** + * @return First name of the user. + * + */ + public String firstName() { + return this.firstName; + } + /** + * @return Last name of the user. + * + */ + public String lastName() { + return this.lastName; + } + /** + * @return phone number of the user by Dynatrace for contacting them if needed. + * + */ + public String phoneNumber() { + return this.phoneNumber; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(MonitorUser defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String country; + private String email; + private String firstName; + private String lastName; + private String phoneNumber; + public Builder() {} + public Builder(MonitorUser defaults) { + Objects.requireNonNull(defaults); + this.country = defaults.country; + this.email = defaults.email; + this.firstName = defaults.firstName; + this.lastName = defaults.lastName; + this.phoneNumber = defaults.phoneNumber; + } + + @CustomType.Setter + public Builder country(String country) { + if (country == null) { + throw new MissingRequiredPropertyException("MonitorUser", "country"); + } + this.country = country; + return this; + } + @CustomType.Setter + public Builder email(String email) { + if (email == null) { + throw new MissingRequiredPropertyException("MonitorUser", "email"); + } + this.email = email; + return this; + } + @CustomType.Setter + public Builder firstName(String firstName) { + if (firstName == null) { + throw new MissingRequiredPropertyException("MonitorUser", "firstName"); + } + this.firstName = firstName; + return this; + } + @CustomType.Setter + public Builder lastName(String lastName) { + if (lastName == null) { + throw new MissingRequiredPropertyException("MonitorUser", "lastName"); + } + this.lastName = lastName; + return this; + } + @CustomType.Setter + public Builder phoneNumber(String phoneNumber) { + if (phoneNumber == null) { + throw new MissingRequiredPropertyException("MonitorUser", "phoneNumber"); + } + this.phoneNumber = phoneNumber; + return this; + } + public MonitorUser build() { + final var _resultValue = new MonitorUser(); + _resultValue.country = country; + _resultValue.email = email; + _resultValue.firstName = firstName; + _resultValue.lastName = lastName; + _resultValue.phoneNumber = phoneNumber; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesArgs.java b/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesArgs.java index 1a54e171c6..81d98467d2 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesArgs.java @@ -15,6 +15,7 @@ import com.pulumi.azure.inputs.ProviderFeaturesRecoveryServiceArgs; import com.pulumi.azure.inputs.ProviderFeaturesRecoveryServicesVaultsArgs; import com.pulumi.azure.inputs.ProviderFeaturesResourceGroupArgs; +import com.pulumi.azure.inputs.ProviderFeaturesStorageArgs; import com.pulumi.azure.inputs.ProviderFeaturesSubscriptionArgs; import com.pulumi.azure.inputs.ProviderFeaturesTemplateDeploymentArgs; import com.pulumi.azure.inputs.ProviderFeaturesVirtualMachineArgs; @@ -114,6 +115,13 @@ public Optional> resourceGroup() { return Optional.ofNullable(this.resourceGroup); } + @Import(name="storage") + private @Nullable Output storage; + + public Optional> storage() { + return Optional.ofNullable(this.storage); + } + @Import(name="subscription") private @Nullable Output subscription; @@ -157,6 +165,7 @@ private ProviderFeaturesArgs(ProviderFeaturesArgs $) { this.recoveryService = $.recoveryService; this.recoveryServicesVaults = $.recoveryServicesVaults; this.resourceGroup = $.resourceGroup; + this.storage = $.storage; this.subscription = $.subscription; this.templateDeployment = $.templateDeployment; this.virtualMachine = $.virtualMachine; @@ -289,6 +298,15 @@ public Builder resourceGroup(ProviderFeaturesResourceGroupArgs resourceGroup) { return resourceGroup(Output.of(resourceGroup)); } + public Builder storage(@Nullable Output storage) { + $.storage = storage; + return this; + } + + public Builder storage(ProviderFeaturesStorageArgs storage) { + return storage(Output.of(storage)); + } + public Builder subscription(@Nullable Output subscription) { $.subscription = subscription; return this; diff --git a/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesStorageArgs.java b/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesStorageArgs.java new file mode 100644 index 0000000000..01056cc2df --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesStorageArgs.java @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class ProviderFeaturesStorageArgs extends com.pulumi.resources.ResourceArgs { + + public static final ProviderFeaturesStorageArgs Empty = new ProviderFeaturesStorageArgs(); + + @Import(name="dataPlaneAvailable") + private @Nullable Output dataPlaneAvailable; + + public Optional> dataPlaneAvailable() { + return Optional.ofNullable(this.dataPlaneAvailable); + } + + private ProviderFeaturesStorageArgs() {} + + private ProviderFeaturesStorageArgs(ProviderFeaturesStorageArgs $) { + this.dataPlaneAvailable = $.dataPlaneAvailable; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ProviderFeaturesStorageArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ProviderFeaturesStorageArgs $; + + public Builder() { + $ = new ProviderFeaturesStorageArgs(); + } + + public Builder(ProviderFeaturesStorageArgs defaults) { + $ = new ProviderFeaturesStorageArgs(Objects.requireNonNull(defaults)); + } + + public Builder dataPlaneAvailable(@Nullable Output dataPlaneAvailable) { + $.dataPlaneAvailable = dataPlaneAvailable; + return this; + } + + public Builder dataPlaneAvailable(Boolean dataPlaneAvailable) { + return dataPlaneAvailable(Output.of(dataPlaneAvailable)); + } + + public ProviderFeaturesStorageArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/lb/NatRule.java b/sdk/java/src/main/java/com/pulumi/azure/lb/NatRule.java index 932d026e94..76a06bd9b9 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/lb/NatRule.java +++ b/sdk/java/src/main/java/com/pulumi/azure/lb/NatRule.java @@ -26,6 +26,90 @@ * ## Example Usage * * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.network.PublicIp;
+ * import com.pulumi.azure.network.PublicIpArgs;
+ * import com.pulumi.azure.lb.LoadBalancer;
+ * import com.pulumi.azure.lb.LoadBalancerArgs;
+ * import com.pulumi.azure.lb.inputs.LoadBalancerFrontendIpConfigurationArgs;
+ * import com.pulumi.azure.lb.BackendAddressPool;
+ * import com.pulumi.azure.lb.BackendAddressPoolArgs;
+ * import com.pulumi.azure.lb.NatRule;
+ * import com.pulumi.azure.lb.NatRuleArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("LoadBalancerRG")
+ *             .location("West Europe")
+ *             .build());
+ * 
+ *         var examplePublicIp = new PublicIp("examplePublicIp", PublicIpArgs.builder()
+ *             .name("PublicIPForLB")
+ *             .location("West US")
+ *             .resourceGroupName(example.name())
+ *             .allocationMethod("Static")
+ *             .build());
+ * 
+ *         var exampleLoadBalancer = new LoadBalancer("exampleLoadBalancer", LoadBalancerArgs.builder()
+ *             .name("TestLoadBalancer")
+ *             .location("West US")
+ *             .resourceGroupName(example.name())
+ *             .frontendIpConfigurations(LoadBalancerFrontendIpConfigurationArgs.builder()
+ *                 .name("PublicIPAddress")
+ *                 .publicIpAddressId(examplePublicIp.id())
+ *                 .build())
+ *             .build());
+ * 
+ *         var exampleBackendAddressPool = new BackendAddressPool("exampleBackendAddressPool", BackendAddressPoolArgs.builder()
+ *             .loadbalancerId(exampleLoadBalancer.id())
+ *             .name("be")
+ *             .build());
+ * 
+ *         var exampleNatRule = new NatRule("exampleNatRule", NatRuleArgs.builder()
+ *             .resourceGroupName(example.name())
+ *             .loadbalancerId(exampleLoadBalancer.id())
+ *             .name("RDPAccess")
+ *             .protocol("Tcp")
+ *             .frontendPort(3389)
+ *             .backendPort(3389)
+ *             .frontendIpConfigurationName("PublicIPAddress")
+ *             .build());
+ * 
+ *         var example1 = new NatRule("example1", NatRuleArgs.builder()
+ *             .resourceGroupName(example.name())
+ *             .loadbalancerId(exampleLoadBalancer.id())
+ *             .name("RDPAccess")
+ *             .protocol("Tcp")
+ *             .frontendPortStart(3000)
+ *             .frontendPortEnd(3389)
+ *             .backendPort(3389)
+ *             .backendAddressPoolId(exampleBackendAddressPool.id())
+ *             .frontendIpConfigurationName("PublicIPAddress")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
* <!--End PulumiCodeChooser --> * * ## Import diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabase.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabase.java index b241b2283a..4b4d8b692b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabase.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabase.java @@ -16,6 +16,7 @@ import java.lang.Integer; import java.lang.String; import java.util.List; +import java.util.Map; import java.util.Optional; import javax.annotation.Nullable; @@ -177,6 +178,20 @@ public Output> pointInTimeRestore() public Output> shortTermRetentionDays() { return Codegen.optional(this.shortTermRetentionDays); } + /** + * A mapping of tags to assign to the resource. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A mapping of tags to assign to the resource. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabaseArgs.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabaseArgs.java index 209c942c61..a78ac3a765 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabaseArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/ManagedDatabaseArgs.java @@ -10,6 +10,7 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Integer; import java.lang.String; +import java.util.Map; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -94,6 +95,21 @@ public Optional> shortTermRetentionDays() { return Optional.ofNullable(this.shortTermRetentionDays); } + /** + * A mapping of tags to assign to the resource. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags to assign to the resource. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + private ManagedDatabaseArgs() {} private ManagedDatabaseArgs(ManagedDatabaseArgs $) { @@ -102,6 +118,7 @@ private ManagedDatabaseArgs(ManagedDatabaseArgs $) { this.name = $.name; this.pointInTimeRestore = $.pointInTimeRestore; this.shortTermRetentionDays = $.shortTermRetentionDays; + this.tags = $.tags; } public static Builder builder() { @@ -227,6 +244,27 @@ public Builder shortTermRetentionDays(Integer shortTermRetentionDays) { return shortTermRetentionDays(Output.of(shortTermRetentionDays)); } + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + public ManagedDatabaseArgs build() { if ($.managedInstanceId == null) { throw new MissingRequiredPropertyException("ManagedDatabaseArgs", "managedInstanceId"); diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ManagedDatabaseState.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ManagedDatabaseState.java index c49cfe2c57..7e5a48e6a3 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ManagedDatabaseState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ManagedDatabaseState.java @@ -9,6 +9,7 @@ import com.pulumi.core.annotations.Import; import java.lang.Integer; import java.lang.String; +import java.util.Map; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -93,6 +94,21 @@ public Optional> shortTermRetentionDays() { return Optional.ofNullable(this.shortTermRetentionDays); } + /** + * A mapping of tags to assign to the resource. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags to assign to the resource. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + private ManagedDatabaseState() {} private ManagedDatabaseState(ManagedDatabaseState $) { @@ -101,6 +117,7 @@ private ManagedDatabaseState(ManagedDatabaseState $) { this.name = $.name; this.pointInTimeRestore = $.pointInTimeRestore; this.shortTermRetentionDays = $.shortTermRetentionDays; + this.tags = $.tags; } public static Builder builder() { @@ -226,6 +243,27 @@ public Builder shortTermRetentionDays(Integer shortTermRetentionDays) { return shortTermRetentionDays(Output.of(shortTermRetentionDays)); } + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags to assign to the resource. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + public ManagedDatabaseState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/azure/network/PublicIp.java b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIp.java index 113ddb8279..f353f97d48 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/network/PublicIp.java +++ b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIp.java @@ -143,6 +143,20 @@ public Output> ddosProtectionPlanId() { public Output> domainNameLabel() { return Codegen.optional(this.domainNameLabel); } + /** + * 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. + * + */ + @Export(name="domainNameLabelScope", refs={String.class}, tree="[0]") + private Output domainNameLabelScope; + + /** + * @return 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. + * + */ + public Output> domainNameLabelScope() { + return Codegen.optional(this.domainNameLabelScope); + } /** * 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/java/src/main/java/com/pulumi/azure/network/PublicIpArgs.java b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpArgs.java index 5824a81d29..6e9426d5ee 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpArgs.java @@ -87,6 +87,21 @@ public Optional> domainNameLabel() { return Optional.ofNullable(this.domainNameLabel); } + /** + * 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. + * + */ + @Import(name="domainNameLabelScope") + private @Nullable Output domainNameLabelScope; + + /** + * @return 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. + * + */ + public Optional> domainNameLabelScope() { + return Optional.ofNullable(this.domainNameLabelScope); + } + /** * Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. * @@ -309,6 +324,7 @@ private PublicIpArgs(PublicIpArgs $) { this.ddosProtectionMode = $.ddosProtectionMode; this.ddosProtectionPlanId = $.ddosProtectionPlanId; this.domainNameLabel = $.domainNameLabel; + this.domainNameLabelScope = $.domainNameLabelScope; this.edgeZone = $.edgeZone; this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; this.ipTags = $.ipTags; @@ -434,6 +450,27 @@ public Builder domainNameLabel(String domainNameLabel) { return domainNameLabel(Output.of(domainNameLabel)); } + /** + * @param domainNameLabelScope 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. + * + * @return builder + * + */ + public Builder domainNameLabelScope(@Nullable Output domainNameLabelScope) { + $.domainNameLabelScope = domainNameLabelScope; + return this; + } + + /** + * @param domainNameLabelScope 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. + * + * @return builder + * + */ + public Builder domainNameLabelScope(String domainNameLabelScope) { + return domainNameLabelScope(Output.of(domainNameLabelScope)); + } + /** * @param edgeZone 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/java/src/main/java/com/pulumi/azure/network/PublicIpPrefix.java b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpPrefix.java index 96c59a56ad..e8f3a55227 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpPrefix.java +++ b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpPrefix.java @@ -183,6 +183,20 @@ public Output resourceGroupName() { public Output> sku() { return Codegen.optional(this.sku); } + /** + * 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. + * + */ + @Export(name="skuTier", refs={String.class}, tree="[0]") + private Output skuTier; + + /** + * @return 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. + * + */ + public Output> skuTier() { + return Codegen.optional(this.skuTier); + } /** * A mapping of tags to assign to the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpPrefixArgs.java b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpPrefixArgs.java index 1b1f125350..eb8cd8285e 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpPrefixArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/network/PublicIpPrefixArgs.java @@ -117,6 +117,21 @@ public Optional> sku() { return Optional.ofNullable(this.sku); } + /** + * 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. + * + */ + @Import(name="skuTier") + private @Nullable Output skuTier; + + /** + * @return 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. + * + */ + public Optional> skuTier() { + return Optional.ofNullable(this.skuTier); + } + /** * A mapping of tags to assign to the resource. * @@ -160,6 +175,7 @@ private PublicIpPrefixArgs(PublicIpPrefixArgs $) { this.prefixLength = $.prefixLength; this.resourceGroupName = $.resourceGroupName; this.sku = $.sku; + this.skuTier = $.skuTier; this.tags = $.tags; this.zones = $.zones; } @@ -316,6 +332,27 @@ public Builder sku(String sku) { return sku(Output.of(sku)); } + /** + * @param skuTier 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. + * + * @return builder + * + */ + public Builder skuTier(@Nullable Output skuTier) { + $.skuTier = skuTier; + return this; + } + + /** + * @param skuTier 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. + * + * @return builder + * + */ + public Builder skuTier(String skuTier) { + return skuTier(Output.of(skuTier)); + } + /** * @param tags A mapping of tags to assign to the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpPrefixState.java b/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpPrefixState.java index df9b48fa15..e844d58d58 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpPrefixState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpPrefixState.java @@ -131,6 +131,21 @@ public Optional> sku() { return Optional.ofNullable(this.sku); } + /** + * 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. + * + */ + @Import(name="skuTier") + private @Nullable Output skuTier; + + /** + * @return 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. + * + */ + public Optional> skuTier() { + return Optional.ofNullable(this.skuTier); + } + /** * A mapping of tags to assign to the resource. * @@ -175,6 +190,7 @@ private PublicIpPrefixState(PublicIpPrefixState $) { this.prefixLength = $.prefixLength; this.resourceGroupName = $.resourceGroupName; this.sku = $.sku; + this.skuTier = $.skuTier; this.tags = $.tags; this.zones = $.zones; } @@ -352,6 +368,27 @@ public Builder sku(String sku) { return sku(Output.of(sku)); } + /** + * @param skuTier 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. + * + * @return builder + * + */ + public Builder skuTier(@Nullable Output skuTier) { + $.skuTier = skuTier; + return this; + } + + /** + * @param skuTier 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. + * + * @return builder + * + */ + public Builder skuTier(String skuTier) { + return skuTier(Output.of(skuTier)); + } + /** * @param tags A mapping of tags to assign to the resource. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpState.java b/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpState.java index 85e19075e4..365ea69a60 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/network/inputs/PublicIpState.java @@ -86,6 +86,21 @@ public Optional> domainNameLabel() { return Optional.ofNullable(this.domainNameLabel); } + /** + * 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. + * + */ + @Import(name="domainNameLabelScope") + private @Nullable Output domainNameLabelScope; + + /** + * @return 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. + * + */ + public Optional> domainNameLabelScope() { + return Optional.ofNullable(this.domainNameLabelScope); + } + /** * Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. * @@ -338,6 +353,7 @@ private PublicIpState(PublicIpState $) { this.ddosProtectionMode = $.ddosProtectionMode; this.ddosProtectionPlanId = $.ddosProtectionPlanId; this.domainNameLabel = $.domainNameLabel; + this.domainNameLabelScope = $.domainNameLabelScope; this.edgeZone = $.edgeZone; this.fqdn = $.fqdn; this.idleTimeoutInMinutes = $.idleTimeoutInMinutes; @@ -465,6 +481,27 @@ public Builder domainNameLabel(String domainNameLabel) { return domainNameLabel(Output.of(domainNameLabel)); } + /** + * @param domainNameLabelScope 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. + * + * @return builder + * + */ + public Builder domainNameLabelScope(@Nullable Output domainNameLabelScope) { + $.domainNameLabelScope = domainNameLabelScope; + return this; + } + + /** + * @param domainNameLabelScope 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. + * + * @return builder + * + */ + public Builder domainNameLabelScope(String domainNameLabelScope) { + return domainNameLabelScope(Output.of(domainNameLabelScope)); + } + /** * @param edgeZone 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/java/src/main/java/com/pulumi/azure/network/outputs/GetPublicIpPrefixResult.java b/sdk/java/src/main/java/com/pulumi/azure/network/outputs/GetPublicIpPrefixResult.java index e4a13ee8e2..2a71302c94 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/network/outputs/GetPublicIpPrefixResult.java +++ b/sdk/java/src/main/java/com/pulumi/azure/network/outputs/GetPublicIpPrefixResult.java @@ -40,6 +40,11 @@ public final class GetPublicIpPrefixResult { * */ private String sku; + /** + * @return The SKU Tier of the Public IP. + * + */ + private String skuTier; /** * @return A mapping of tags to assigned to the resource. * @@ -93,6 +98,13 @@ public String resourceGroupName() { public String sku() { return this.sku; } + /** + * @return The SKU Tier of the Public IP. + * + */ + public String skuTier() { + return this.skuTier; + } /** * @return A mapping of tags to assigned to the resource. * @@ -124,6 +136,7 @@ public static final class Builder { private Integer prefixLength; private String resourceGroupName; private String sku; + private String skuTier; private Map tags; private List zones; public Builder() {} @@ -136,6 +149,7 @@ public Builder(GetPublicIpPrefixResult defaults) { this.prefixLength = defaults.prefixLength; this.resourceGroupName = defaults.resourceGroupName; this.sku = defaults.sku; + this.skuTier = defaults.skuTier; this.tags = defaults.tags; this.zones = defaults.zones; } @@ -197,6 +211,14 @@ public Builder sku(String sku) { return this; } @CustomType.Setter + public Builder skuTier(String skuTier) { + if (skuTier == null) { + throw new MissingRequiredPropertyException("GetPublicIpPrefixResult", "skuTier"); + } + this.skuTier = skuTier; + return this; + } + @CustomType.Setter public Builder tags(Map tags) { if (tags == null) { throw new MissingRequiredPropertyException("GetPublicIpPrefixResult", "tags"); @@ -224,6 +246,7 @@ public GetPublicIpPrefixResult build() { _resultValue.prefixLength = prefixLength; _resultValue.resourceGroupName = resourceGroupName; _resultValue.sku = sku; + _resultValue.skuTier = skuTier; _resultValue.tags = tags; _resultValue.zones = zones; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmCluster.java b/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmCluster.java index 00c9cc5d1b..f8d8502594 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmCluster.java +++ b/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmCluster.java @@ -179,6 +179,20 @@ public Output> dbServers() { public Output displayName() { return this.displayName; } + /** + * 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. + * + */ + @Export(name="domain", refs={String.class}, tree="[0]") + private Output domain; + + /** + * @return 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. + * + */ + public Output domain() { + return this.domain; + } /** * A valid Oracle Grid Infrastructure (GI) software version. * @@ -319,6 +333,34 @@ public Output ocid() { public Output resourceGroupName() { return this.resourceGroupName; } + /** + * The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + */ + @Export(name="scanListenerPortTcp", refs={Integer.class}, tree="[0]") + private Output scanListenerPortTcp; + + /** + * @return The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + */ + public Output> scanListenerPortTcp() { + return Codegen.optional(this.scanListenerPortTcp); + } + /** + * The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + */ + @Export(name="scanListenerPortTcpSsl", refs={Integer.class}, tree="[0]") + private Output scanListenerPortTcpSsl; + + /** + * @return The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + */ + public Output> scanListenerPortTcpSsl() { + return Codegen.optional(this.scanListenerPortTcpSsl); + } /** * If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. * @@ -403,6 +445,20 @@ public Output timeZone() { public Output virtualNetworkId() { return this.virtualNetworkId; } + /** + * 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. + * + */ + @Export(name="zoneId", refs={String.class}, tree="[0]") + private Output zoneId; + + /** + * @return 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. + * + */ + public Output zoneId() { + return this.zoneId; + } /** * diff --git a/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmClusterArgs.java b/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmClusterArgs.java index 0650344484..1cb79e501b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/oracle/CloudVmClusterArgs.java @@ -172,6 +172,21 @@ public Output displayName() { return this.displayName; } + /** + * 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. + * + */ + @Import(name="domain") + private @Nullable Output domain; + + /** + * @return 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. + * + */ + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + /** * A valid Oracle Grid Infrastructure (GI) software version. * @@ -292,6 +307,36 @@ public Output resourceGroupName() { return this.resourceGroupName; } + /** + * The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + */ + @Import(name="scanListenerPortTcp") + private @Nullable Output scanListenerPortTcp; + + /** + * @return The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + */ + public Optional> scanListenerPortTcp() { + return Optional.ofNullable(this.scanListenerPortTcp); + } + + /** + * The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + */ + @Import(name="scanListenerPortTcpSsl") + private @Nullable Output scanListenerPortTcpSsl; + + /** + * @return The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + */ + public Optional> scanListenerPortTcpSsl() { + return Optional.ofNullable(this.scanListenerPortTcpSsl); + } + /** * If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. * @@ -382,6 +427,21 @@ public Output virtualNetworkId() { return this.virtualNetworkId; } + /** + * 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. + * + */ + @Import(name="zoneId") + private @Nullable Output zoneId; + + /** + * @return 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. + * + */ + public Optional> zoneId() { + return Optional.ofNullable(this.zoneId); + } + private CloudVmClusterArgs() {} private CloudVmClusterArgs(CloudVmClusterArgs $) { @@ -395,6 +455,7 @@ private CloudVmClusterArgs(CloudVmClusterArgs $) { this.dbNodeStorageSizeInGbs = $.dbNodeStorageSizeInGbs; this.dbServers = $.dbServers; this.displayName = $.displayName; + this.domain = $.domain; this.giVersion = $.giVersion; this.hostname = $.hostname; this.licenseModel = $.licenseModel; @@ -403,12 +464,15 @@ private CloudVmClusterArgs(CloudVmClusterArgs $) { this.memorySizeInGbs = $.memorySizeInGbs; this.name = $.name; this.resourceGroupName = $.resourceGroupName; + this.scanListenerPortTcp = $.scanListenerPortTcp; + this.scanListenerPortTcpSsl = $.scanListenerPortTcpSsl; this.sparseDiskgroupEnabled = $.sparseDiskgroupEnabled; this.sshPublicKeys = $.sshPublicKeys; this.subnetId = $.subnetId; this.tags = $.tags; this.timeZone = $.timeZone; this.virtualNetworkId = $.virtualNetworkId; + this.zoneId = $.zoneId; } public static Builder builder() { @@ -649,6 +713,27 @@ public Builder displayName(String displayName) { return displayName(Output.of(displayName)); } + /** + * @param domain 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. + * + * @return builder + * + */ + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + /** + * @param domain 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. + * + * @return builder + * + */ + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + /** * @param giVersion A valid Oracle Grid Infrastructure (GI) software version. * @@ -817,6 +902,48 @@ public Builder resourceGroupName(String resourceGroupName) { return resourceGroupName(Output.of(resourceGroupName)); } + /** + * @param scanListenerPortTcp The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + * @return builder + * + */ + public Builder scanListenerPortTcp(@Nullable Output scanListenerPortTcp) { + $.scanListenerPortTcp = scanListenerPortTcp; + return this; + } + + /** + * @param scanListenerPortTcp The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + * @return builder + * + */ + public Builder scanListenerPortTcp(Integer scanListenerPortTcp) { + return scanListenerPortTcp(Output.of(scanListenerPortTcp)); + } + + /** + * @param scanListenerPortTcpSsl The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + * @return builder + * + */ + public Builder scanListenerPortTcpSsl(@Nullable Output scanListenerPortTcpSsl) { + $.scanListenerPortTcpSsl = scanListenerPortTcpSsl; + return this; + } + + /** + * @param scanListenerPortTcpSsl The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + * @return builder + * + */ + public Builder scanListenerPortTcpSsl(Integer scanListenerPortTcpSsl) { + return scanListenerPortTcpSsl(Output.of(scanListenerPortTcpSsl)); + } + /** * @param sparseDiskgroupEnabled If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. * @@ -953,6 +1080,27 @@ public Builder virtualNetworkId(String virtualNetworkId) { return virtualNetworkId(Output.of(virtualNetworkId)); } + /** + * @param zoneId 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. + * + * @return builder + * + */ + public Builder zoneId(@Nullable Output zoneId) { + $.zoneId = zoneId; + return this; + } + + /** + * @param zoneId 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. + * + * @return builder + * + */ + public Builder zoneId(String zoneId) { + return zoneId(Output.of(zoneId)); + } + public CloudVmClusterArgs build() { if ($.cloudExadataInfrastructureId == null) { throw new MissingRequiredPropertyException("CloudVmClusterArgs", "cloudExadataInfrastructureId"); diff --git a/sdk/java/src/main/java/com/pulumi/azure/oracle/inputs/CloudVmClusterState.java b/sdk/java/src/main/java/com/pulumi/azure/oracle/inputs/CloudVmClusterState.java index 5f81437bec..7aa75f418a 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/oracle/inputs/CloudVmClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/oracle/inputs/CloudVmClusterState.java @@ -171,6 +171,21 @@ public Optional> displayName() { return Optional.ofNullable(this.displayName); } + /** + * 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. + * + */ + @Import(name="domain") + private @Nullable Output domain; + + /** + * @return 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. + * + */ + public Optional> domain() { + return Optional.ofNullable(this.domain); + } + /** * A valid Oracle Grid Infrastructure (GI) software version. * @@ -321,6 +336,36 @@ public Optional> resourceGroupName() { return Optional.ofNullable(this.resourceGroupName); } + /** + * The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + */ + @Import(name="scanListenerPortTcp") + private @Nullable Output scanListenerPortTcp; + + /** + * @return The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + */ + public Optional> scanListenerPortTcp() { + return Optional.ofNullable(this.scanListenerPortTcp); + } + + /** + * The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + */ + @Import(name="scanListenerPortTcpSsl") + private @Nullable Output scanListenerPortTcpSsl; + + /** + * @return The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + */ + public Optional> scanListenerPortTcpSsl() { + return Optional.ofNullable(this.scanListenerPortTcpSsl); + } + /** * If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. * @@ -411,6 +456,21 @@ public Optional> virtualNetworkId() { return Optional.ofNullable(this.virtualNetworkId); } + /** + * 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. + * + */ + @Import(name="zoneId") + private @Nullable Output zoneId; + + /** + * @return 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. + * + */ + public Optional> zoneId() { + return Optional.ofNullable(this.zoneId); + } + private CloudVmClusterState() {} private CloudVmClusterState(CloudVmClusterState $) { @@ -424,6 +484,7 @@ private CloudVmClusterState(CloudVmClusterState $) { this.dbNodeStorageSizeInGbs = $.dbNodeStorageSizeInGbs; this.dbServers = $.dbServers; this.displayName = $.displayName; + this.domain = $.domain; this.giVersion = $.giVersion; this.hostname = $.hostname; this.hostnameActual = $.hostnameActual; @@ -434,12 +495,15 @@ private CloudVmClusterState(CloudVmClusterState $) { this.name = $.name; this.ocid = $.ocid; this.resourceGroupName = $.resourceGroupName; + this.scanListenerPortTcp = $.scanListenerPortTcp; + this.scanListenerPortTcpSsl = $.scanListenerPortTcpSsl; this.sparseDiskgroupEnabled = $.sparseDiskgroupEnabled; this.sshPublicKeys = $.sshPublicKeys; this.subnetId = $.subnetId; this.tags = $.tags; this.timeZone = $.timeZone; this.virtualNetworkId = $.virtualNetworkId; + this.zoneId = $.zoneId; } public static Builder builder() { @@ -680,6 +744,27 @@ public Builder displayName(String displayName) { return displayName(Output.of(displayName)); } + /** + * @param domain 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. + * + * @return builder + * + */ + public Builder domain(@Nullable Output domain) { + $.domain = domain; + return this; + } + + /** + * @param domain 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. + * + * @return builder + * + */ + public Builder domain(String domain) { + return domain(Output.of(domain)); + } + /** * @param giVersion A valid Oracle Grid Infrastructure (GI) software version. * @@ -890,6 +975,48 @@ public Builder resourceGroupName(String resourceGroupName) { return resourceGroupName(Output.of(resourceGroupName)); } + /** + * @param scanListenerPortTcp The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + * @return builder + * + */ + public Builder scanListenerPortTcp(@Nullable Output scanListenerPortTcp) { + $.scanListenerPortTcp = scanListenerPortTcp; + return this; + } + + /** + * @param scanListenerPortTcp The TCP Single Client Access Name (SCAN) port. The default port to 1521. + * + * @return builder + * + */ + public Builder scanListenerPortTcp(Integer scanListenerPortTcp) { + return scanListenerPortTcp(Output.of(scanListenerPortTcp)); + } + + /** + * @param scanListenerPortTcpSsl The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + * @return builder + * + */ + public Builder scanListenerPortTcpSsl(@Nullable Output scanListenerPortTcpSsl) { + $.scanListenerPortTcpSsl = scanListenerPortTcpSsl; + return this; + } + + /** + * @param scanListenerPortTcpSsl The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + * + * @return builder + * + */ + public Builder scanListenerPortTcpSsl(Integer scanListenerPortTcpSsl) { + return scanListenerPortTcpSsl(Output.of(scanListenerPortTcpSsl)); + } + /** * @param sparseDiskgroupEnabled If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. * @@ -1026,6 +1153,27 @@ public Builder virtualNetworkId(String virtualNetworkId) { return virtualNetworkId(Output.of(virtualNetworkId)); } + /** + * @param zoneId 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. + * + * @return builder + * + */ + public Builder zoneId(@Nullable Output zoneId) { + $.zoneId = zoneId; + return this; + } + + /** + * @param zoneId 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. + * + * @return builder + * + */ + public Builder zoneId(String zoneId) { + return zoneId(Output.of(zoneId)); + } + public CloudVmClusterState build() { return $; } diff --git a/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusion.java b/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusion.java index 18e16913ee..80be420099 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusion.java +++ b/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusion.java @@ -34,9 +34,8 @@ * import com.pulumi.azure.core.ResourceGroupArgs; * import com.pulumi.azure.operationalinsights.AnalyticsWorkspace; * import com.pulumi.azure.operationalinsights.AnalyticsWorkspaceArgs; - * import com.pulumi.azure.operationalinsights.AnalyticsSolution; - * import com.pulumi.azure.operationalinsights.AnalyticsSolutionArgs; - * import com.pulumi.azure.operationalinsights.inputs.AnalyticsSolutionPlanArgs; + * import com.pulumi.azure.sentinel.LogAnalyticsWorkspaceOnboarding; + * import com.pulumi.azure.sentinel.LogAnalyticsWorkspaceOnboardingArgs; * import com.pulumi.azure.sentinel.AlertRuleFusion; * import com.pulumi.azure.sentinel.AlertRuleFusionArgs; * import java.util.List; @@ -64,21 +63,12 @@ * .sku("PerGB2018") * .build()); * - * var exampleAnalyticsSolution = new AnalyticsSolution("exampleAnalyticsSolution", AnalyticsSolutionArgs.builder() - * .solutionName("SecurityInsights") - * .location(example.location()) - * .resourceGroupName(example.name()) - * .workspaceResourceId(exampleAnalyticsWorkspace.id()) - * .workspaceName(exampleAnalyticsWorkspace.name()) - * .plan(AnalyticsSolutionPlanArgs.builder() - * .publisher("Microsoft") - * .product("OMSGallery/SecurityInsights") - * .build()) + * var exampleLogAnalyticsWorkspaceOnboarding = new LogAnalyticsWorkspaceOnboarding("exampleLogAnalyticsWorkspaceOnboarding", LogAnalyticsWorkspaceOnboardingArgs.builder() + * .workspaceId(exampleAnalyticsWorkspace.id()) * .build()); * * var exampleAlertRuleFusion = new AlertRuleFusion("exampleAlertRuleFusion", AlertRuleFusionArgs.builder() - * .name("example-fusion-alert-rule") - * .logAnalyticsWorkspaceId(exampleAnalyticsSolution.workspaceResourceId()) + * .logAnalyticsWorkspaceId(exampleLogAnalyticsWorkspaceOnboarding.workspaceId()) * .alertRuleTemplateGuid("f71aba3d-28fb-450b-b192-4e76a83015c8") * .build()); * @@ -142,16 +132,14 @@ public Output logAnalyticsWorkspaceId() { return this.logAnalyticsWorkspaceId; } /** - * The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; - /** - * @return The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - * - */ public Output name() { return this.name; } diff --git a/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusionArgs.java b/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusionArgs.java index 65bed4bcca..94bf880af1 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/sentinel/AlertRuleFusionArgs.java @@ -65,16 +65,20 @@ public Output logAnalyticsWorkspaceId() { } /** - * The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ @Import(name="name") private @Nullable Output name; /** - * @return The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ public Optional> name() { return Optional.ofNullable(this.name); } @@ -186,22 +190,26 @@ public Builder logAnalyticsWorkspaceId(String logAnalyticsWorkspaceId) { } /** - * @param name The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - * * @return builder * + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. + * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ public Builder name(@Nullable Output name) { $.name = name; return this; } /** - * @param name The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - * * @return builder * + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. + * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ public Builder name(String name) { return name(Output.of(name)); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/sentinel/inputs/AlertRuleFusionState.java b/sdk/java/src/main/java/com/pulumi/azure/sentinel/inputs/AlertRuleFusionState.java index f5edb6a89e..9c74c3a93b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/sentinel/inputs/AlertRuleFusionState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/sentinel/inputs/AlertRuleFusionState.java @@ -64,16 +64,20 @@ public Optional> logAnalyticsWorkspaceId() { } /** - * The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ @Import(name="name") private @Nullable Output name; /** - * @return The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ public Optional> name() { return Optional.ofNullable(this.name); } @@ -185,22 +189,26 @@ public Builder logAnalyticsWorkspaceId(String logAnalyticsWorkspaceId) { } /** - * @param name The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - * * @return builder * + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. + * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ public Builder name(@Nullable Output name) { $.name = name; return this; } /** - * @param name The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - * * @return builder * + * @deprecated + * the `name` is deprecated and will be removed in v5.0 version of the provider. + * */ + @Deprecated /* the `name` is deprecated and will be removed in v5.0 version of the provider. */ public Builder name(String name) { return name(Output.of(name)); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/HciNetworkInterface.java b/sdk/java/src/main/java/com/pulumi/azure/stack/HciNetworkInterface.java new file mode 100644 index 0000000000..e251df5772 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/HciNetworkInterface.java @@ -0,0 +1,279 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.stack; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.stack.HciNetworkInterfaceArgs; +import com.pulumi.azure.stack.inputs.HciNetworkInterfaceState; +import com.pulumi.azure.stack.outputs.HciNetworkInterfaceIpConfiguration; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Manages an Azure Stack HCI Network Interface. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.stack.HciLogicalNetwork;
+ * import com.pulumi.azure.stack.HciLogicalNetworkArgs;
+ * import com.pulumi.azure.stack.inputs.HciLogicalNetworkSubnetArgs;
+ * import com.pulumi.azure.stack.HciNetworkInterface;
+ * import com.pulumi.azure.stack.HciNetworkInterfaceArgs;
+ * import com.pulumi.azure.stack.inputs.HciNetworkInterfaceIpConfigurationArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("example-rg")
+ *             .location("West Europe")
+ *             .build());
+ * 
+ *         var exampleHciLogicalNetwork = new HciLogicalNetwork("exampleHciLogicalNetwork", HciLogicalNetworkArgs.builder()
+ *             .name("example-hci-ln")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .customLocationId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1")
+ *             .virtualSwitchName("ConvergedSwitch(managementcompute)")
+ *             .dnsServers(            
+ *                 "10.0.0.7",
+ *                 "10.0.0.8")
+ *             .subnet(HciLogicalNetworkSubnetArgs.builder()
+ *                 .ipAllocationMethod("Static")
+ *                 .addressPrefix("10.0.0.0/24")
+ *                 .route(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
+ *                 .vlanId(123)
+ *                 .build())
+ *             .tags(Map.of("foo", "bar"))
+ *             .build());
+ * 
+ *         var exampleHciNetworkInterface = new HciNetworkInterface("exampleHciNetworkInterface", HciNetworkInterfaceArgs.builder()
+ *             .name("example-ni")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .customLocationId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.ExtendedLocation/customLocations/cl1")
+ *             .dnsServers("10.0.0.8")
+ *             .ipConfiguration(HciNetworkInterfaceIpConfigurationArgs.builder()
+ *                 .privateIpAddress("10.0.0.2")
+ *                 .subnetId(test.id())
+ *                 .build())
+ *             .tags(Map.of("foo", "bar"))
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## 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 + * ``` + * + */ +@ResourceType(type="azure:stack/hciNetworkInterface:HciNetworkInterface") +public class HciNetworkInterface extends com.pulumi.resources.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. + * + */ + @Export(name="customLocationId", refs={String.class}, tree="[0]") + private Output customLocationId; + + /** + * @return The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Output customLocationId() { + return this.customLocationId; + } + /** + * 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. + * + */ + @Export(name="dnsServers", refs={List.class,String.class}, tree="[0,1]") + private Output> dnsServers; + + /** + * @return 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. + * + */ + public Output>> dnsServers() { + return Codegen.optional(this.dnsServers); + } + /** + * An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + */ + @Export(name="ipConfiguration", refs={HciNetworkInterfaceIpConfiguration.class}, tree="[0]") + private Output ipConfiguration; + + /** + * @return An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + */ + public Output ipConfiguration() { + return this.ipConfiguration; + } + /** + * The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Export(name="location", refs={String.class}, tree="[0]") + private Output location; + + /** + * @return The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Output location() { + return this.location; + } + /** + * 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`. + * + */ + @Export(name="macAddress", refs={String.class}, tree="[0]") + private Output macAddress; + + /** + * @return 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`. + * + */ + public Output> macAddress() { + return Codegen.optional(this.macAddress); + } + /** + * The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + */ + public Output name() { + return this.name; + } + /** + * The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Export(name="resourceGroupName", refs={String.class}, tree="[0]") + private Output resourceGroupName; + + /** + * @return The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + /** + * A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + */ + @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") + private Output> tags; + + /** + * @return A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public HciNetworkInterface(java.lang.String name) { + this(name, HciNetworkInterfaceArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public HciNetworkInterface(java.lang.String name, HciNetworkInterfaceArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public HciNetworkInterface(java.lang.String name, HciNetworkInterfaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:stack/hciNetworkInterface:HciNetworkInterface", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private HciNetworkInterface(java.lang.String name, Output id, @Nullable HciNetworkInterfaceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:stack/hciNetworkInterface:HciNetworkInterface", name, state, makeResourceOptions(options, id), false); + } + + private static HciNetworkInterfaceArgs makeArgs(HciNetworkInterfaceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? HciNetworkInterfaceArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static HciNetworkInterface get(java.lang.String name, Output id, @Nullable HciNetworkInterfaceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new HciNetworkInterface(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/HciNetworkInterfaceArgs.java b/sdk/java/src/main/java/com/pulumi/azure/stack/HciNetworkInterfaceArgs.java new file mode 100644 index 0000000000..a3fa8f8349 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/HciNetworkInterfaceArgs.java @@ -0,0 +1,373 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.stack; + +import com.pulumi.azure.stack.inputs.HciNetworkInterfaceIpConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class HciNetworkInterfaceArgs extends com.pulumi.resources.ResourceArgs { + + public static final HciNetworkInterfaceArgs Empty = new HciNetworkInterfaceArgs(); + + /** + * The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="customLocationId", required=true) + private Output customLocationId; + + /** + * @return The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Output customLocationId() { + return this.customLocationId; + } + + /** + * 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. + * + */ + @Import(name="dnsServers") + private @Nullable Output> dnsServers; + + /** + * @return 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. + * + */ + public Optional>> dnsServers() { + return Optional.ofNullable(this.dnsServers); + } + + /** + * An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + */ + @Import(name="ipConfiguration", required=true) + private Output ipConfiguration; + + /** + * @return An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + */ + public Output ipConfiguration() { + return this.ipConfiguration; + } + + /** + * The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * 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`. + * + */ + @Import(name="macAddress") + private @Nullable Output macAddress; + + /** + * @return 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`. + * + */ + public Optional> macAddress() { + return Optional.ofNullable(this.macAddress); + } + + /** + * The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="resourceGroupName", required=true) + private Output resourceGroupName; + + /** + * @return The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + + /** + * A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private HciNetworkInterfaceArgs() {} + + private HciNetworkInterfaceArgs(HciNetworkInterfaceArgs $) { + this.customLocationId = $.customLocationId; + this.dnsServers = $.dnsServers; + this.ipConfiguration = $.ipConfiguration; + this.location = $.location; + this.macAddress = $.macAddress; + this.name = $.name; + this.resourceGroupName = $.resourceGroupName; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(HciNetworkInterfaceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private HciNetworkInterfaceArgs $; + + public Builder() { + $ = new HciNetworkInterfaceArgs(); + } + + public Builder(HciNetworkInterfaceArgs defaults) { + $ = new HciNetworkInterfaceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param customLocationId The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder customLocationId(Output customLocationId) { + $.customLocationId = customLocationId; + return this; + } + + /** + * @param customLocationId The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder customLocationId(String customLocationId) { + return customLocationId(Output.of(customLocationId)); + } + + /** + * @param dnsServers 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. + * + * @return builder + * + */ + public Builder dnsServers(@Nullable Output> dnsServers) { + $.dnsServers = dnsServers; + return this; + } + + /** + * @param dnsServers 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. + * + * @return builder + * + */ + public Builder dnsServers(List dnsServers) { + return dnsServers(Output.of(dnsServers)); + } + + /** + * @param dnsServers 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. + * + * @return builder + * + */ + public Builder dnsServers(String... dnsServers) { + return dnsServers(List.of(dnsServers)); + } + + /** + * @param ipConfiguration An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder ipConfiguration(Output ipConfiguration) { + $.ipConfiguration = ipConfiguration; + return this; + } + + /** + * @param ipConfiguration An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder ipConfiguration(HciNetworkInterfaceIpConfigurationArgs ipConfiguration) { + return ipConfiguration(Output.of(ipConfiguration)); + } + + /** + * @param location The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param macAddress 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`. + * + * @return builder + * + */ + public Builder macAddress(@Nullable Output macAddress) { + $.macAddress = macAddress; + return this; + } + + /** + * @param macAddress 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`. + * + * @return builder + * + */ + public Builder macAddress(String macAddress) { + return macAddress(Output.of(macAddress)); + } + + /** + * @param name The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param resourceGroupName The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(Output resourceGroupName) { + $.resourceGroupName = resourceGroupName; + return this; + } + + /** + * @param resourceGroupName The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param tags A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public HciNetworkInterfaceArgs build() { + if ($.customLocationId == null) { + throw new MissingRequiredPropertyException("HciNetworkInterfaceArgs", "customLocationId"); + } + if ($.ipConfiguration == null) { + throw new MissingRequiredPropertyException("HciNetworkInterfaceArgs", "ipConfiguration"); + } + if ($.resourceGroupName == null) { + throw new MissingRequiredPropertyException("HciNetworkInterfaceArgs", "resourceGroupName"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciLogicalNetworkSubnetArgs.java b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciLogicalNetworkSubnetArgs.java index fe3f12e3ea..126383f1e7 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciLogicalNetworkSubnetArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciLogicalNetworkSubnetArgs.java @@ -53,6 +53,8 @@ public Output ipAllocationMethod() { /** * One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. * + * > **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`. + * */ @Import(name="ipPools") private @Nullable Output> ipPools; @@ -60,6 +62,8 @@ public Output ipAllocationMethod() { /** * @return One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. * + * > **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`. + * */ public Optional>> ipPools() { return Optional.ofNullable(this.ipPools); @@ -168,6 +172,8 @@ public Builder ipAllocationMethod(String ipAllocationMethod) { /** * @param ipPools One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. * + * > **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`. + * * @return builder * */ @@ -179,6 +185,8 @@ public Builder ipPools(@Nullable Output> /** * @param ipPools One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. * + * > **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`. + * * @return builder * */ @@ -189,6 +197,8 @@ public Builder ipPools(List ipPools) { /** * @param ipPools One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. * + * > **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`. + * * @return builder * */ diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciNetworkInterfaceIpConfigurationArgs.java b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciNetworkInterfaceIpConfigurationArgs.java new file mode 100644 index 0000000000..afe8a37549 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciNetworkInterfaceIpConfigurationArgs.java @@ -0,0 +1,198 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.stack.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class HciNetworkInterfaceIpConfigurationArgs extends com.pulumi.resources.ResourceArgs { + + public static final HciNetworkInterfaceIpConfigurationArgs Empty = new HciNetworkInterfaceIpConfigurationArgs(); + + /** + * The IPv4 address of the gateway for the Network Interface. + * + */ + @Import(name="gateway") + private @Nullable Output gateway; + + /** + * @return The IPv4 address of the gateway for the Network Interface. + * + */ + public Optional> gateway() { + return Optional.ofNullable(this.gateway); + } + + /** + * The prefix length for the address of the Network Interface. + * + */ + @Import(name="prefixLength") + private @Nullable Output prefixLength; + + /** + * @return The prefix length for the address of the Network Interface. + * + */ + public Optional> prefixLength() { + return Optional.ofNullable(this.prefixLength); + } + + /** + * The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + * + */ + @Import(name="privateIpAddress") + private @Nullable Output privateIpAddress; + + /** + * @return The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + * + */ + public Optional> privateIpAddress() { + return Optional.ofNullable(this.privateIpAddress); + } + + /** + * The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + * + */ + @Import(name="subnetId", required=true) + private Output subnetId; + + /** + * @return The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + * + */ + public Output subnetId() { + return this.subnetId; + } + + private HciNetworkInterfaceIpConfigurationArgs() {} + + private HciNetworkInterfaceIpConfigurationArgs(HciNetworkInterfaceIpConfigurationArgs $) { + this.gateway = $.gateway; + this.prefixLength = $.prefixLength; + this.privateIpAddress = $.privateIpAddress; + this.subnetId = $.subnetId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(HciNetworkInterfaceIpConfigurationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private HciNetworkInterfaceIpConfigurationArgs $; + + public Builder() { + $ = new HciNetworkInterfaceIpConfigurationArgs(); + } + + public Builder(HciNetworkInterfaceIpConfigurationArgs defaults) { + $ = new HciNetworkInterfaceIpConfigurationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param gateway The IPv4 address of the gateway for the Network Interface. + * + * @return builder + * + */ + public Builder gateway(@Nullable Output gateway) { + $.gateway = gateway; + return this; + } + + /** + * @param gateway The IPv4 address of the gateway for the Network Interface. + * + * @return builder + * + */ + public Builder gateway(String gateway) { + return gateway(Output.of(gateway)); + } + + /** + * @param prefixLength The prefix length for the address of the Network Interface. + * + * @return builder + * + */ + public Builder prefixLength(@Nullable Output prefixLength) { + $.prefixLength = prefixLength; + return this; + } + + /** + * @param prefixLength The prefix length for the address of the Network Interface. + * + * @return builder + * + */ + public Builder prefixLength(String prefixLength) { + return prefixLength(Output.of(prefixLength)); + } + + /** + * @param privateIpAddress The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder privateIpAddress(@Nullable Output privateIpAddress) { + $.privateIpAddress = privateIpAddress; + return this; + } + + /** + * @param privateIpAddress The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder privateIpAddress(String privateIpAddress) { + return privateIpAddress(Output.of(privateIpAddress)); + } + + /** + * @param subnetId The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder subnetId(Output subnetId) { + $.subnetId = subnetId; + return this; + } + + /** + * @param subnetId The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder subnetId(String subnetId) { + return subnetId(Output.of(subnetId)); + } + + public HciNetworkInterfaceIpConfigurationArgs build() { + if ($.subnetId == null) { + throw new MissingRequiredPropertyException("HciNetworkInterfaceIpConfigurationArgs", "subnetId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciNetworkInterfaceState.java b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciNetworkInterfaceState.java new file mode 100644 index 0000000000..5312d5a96c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciNetworkInterfaceState.java @@ -0,0 +1,363 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.stack.inputs; + +import com.pulumi.azure.stack.inputs.HciNetworkInterfaceIpConfigurationArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class HciNetworkInterfaceState extends com.pulumi.resources.ResourceArgs { + + public static final HciNetworkInterfaceState Empty = new HciNetworkInterfaceState(); + + /** + * The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="customLocationId") + private @Nullable Output customLocationId; + + /** + * @return The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Optional> customLocationId() { + return Optional.ofNullable(this.customLocationId); + } + + /** + * 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. + * + */ + @Import(name="dnsServers") + private @Nullable Output> dnsServers; + + /** + * @return 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. + * + */ + public Optional>> dnsServers() { + return Optional.ofNullable(this.dnsServers); + } + + /** + * An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + */ + @Import(name="ipConfiguration") + private @Nullable Output ipConfiguration; + + /** + * @return An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + */ + public Optional> ipConfiguration() { + return Optional.ofNullable(this.ipConfiguration); + } + + /** + * The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * 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`. + * + */ + @Import(name="macAddress") + private @Nullable Output macAddress; + + /** + * @return 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`. + * + */ + public Optional> macAddress() { + return Optional.ofNullable(this.macAddress); + } + + /** + * The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="resourceGroupName") + private @Nullable Output resourceGroupName; + + /** + * @return The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + */ + public Optional> resourceGroupName() { + return Optional.ofNullable(this.resourceGroupName); + } + + /** + * A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private HciNetworkInterfaceState() {} + + private HciNetworkInterfaceState(HciNetworkInterfaceState $) { + this.customLocationId = $.customLocationId; + this.dnsServers = $.dnsServers; + this.ipConfiguration = $.ipConfiguration; + this.location = $.location; + this.macAddress = $.macAddress; + this.name = $.name; + this.resourceGroupName = $.resourceGroupName; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(HciNetworkInterfaceState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private HciNetworkInterfaceState $; + + public Builder() { + $ = new HciNetworkInterfaceState(); + } + + public Builder(HciNetworkInterfaceState defaults) { + $ = new HciNetworkInterfaceState(Objects.requireNonNull(defaults)); + } + + /** + * @param customLocationId The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder customLocationId(@Nullable Output customLocationId) { + $.customLocationId = customLocationId; + return this; + } + + /** + * @param customLocationId The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder customLocationId(String customLocationId) { + return customLocationId(Output.of(customLocationId)); + } + + /** + * @param dnsServers 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. + * + * @return builder + * + */ + public Builder dnsServers(@Nullable Output> dnsServers) { + $.dnsServers = dnsServers; + return this; + } + + /** + * @param dnsServers 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. + * + * @return builder + * + */ + public Builder dnsServers(List dnsServers) { + return dnsServers(Output.of(dnsServers)); + } + + /** + * @param dnsServers 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. + * + * @return builder + * + */ + public Builder dnsServers(String... dnsServers) { + return dnsServers(List.of(dnsServers)); + } + + /** + * @param ipConfiguration An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder ipConfiguration(@Nullable Output ipConfiguration) { + $.ipConfiguration = ipConfiguration; + return this; + } + + /** + * @param ipConfiguration An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder ipConfiguration(HciNetworkInterfaceIpConfigurationArgs ipConfiguration) { + return ipConfiguration(Output.of(ipConfiguration)); + } + + /** + * @param location The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(@Nullable Output location) { + $.location = location; + return this; + } + + /** + * @param location The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param macAddress 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`. + * + * @return builder + * + */ + public Builder macAddress(@Nullable Output macAddress) { + $.macAddress = macAddress; + return this; + } + + /** + * @param macAddress 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`. + * + * @return builder + * + */ + public Builder macAddress(String macAddress) { + return macAddress(Output.of(macAddress)); + } + + /** + * @param name The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param resourceGroupName The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(@Nullable Output resourceGroupName) { + $.resourceGroupName = resourceGroupName; + return this; + } + + /** + * @param resourceGroupName The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param tags A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public HciNetworkInterfaceState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/outputs/HciLogicalNetworkSubnet.java b/sdk/java/src/main/java/com/pulumi/azure/stack/outputs/HciLogicalNetworkSubnet.java index 23f0bed3f0..d56c3bd0ad 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/stack/outputs/HciLogicalNetworkSubnet.java +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/outputs/HciLogicalNetworkSubnet.java @@ -29,6 +29,8 @@ public final class HciLogicalNetworkSubnet { /** * @return One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. * + * > **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`. + * */ private @Nullable List ipPools; /** @@ -60,6 +62,8 @@ public String ipAllocationMethod() { /** * @return One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. * + * > **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`. + * */ public List ipPools() { return this.ipPools == null ? List.of() : this.ipPools; diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/outputs/HciNetworkInterfaceIpConfiguration.java b/sdk/java/src/main/java/com/pulumi/azure/stack/outputs/HciNetworkInterfaceIpConfiguration.java new file mode 100644 index 0000000000..6f365d49b4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/outputs/HciNetworkInterfaceIpConfiguration.java @@ -0,0 +1,123 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.stack.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + +@CustomType +public final class HciNetworkInterfaceIpConfiguration { + /** + * @return The IPv4 address of the gateway for the Network Interface. + * + */ + private @Nullable String gateway; + /** + * @return The prefix length for the address of the Network Interface. + * + */ + private @Nullable String prefixLength; + /** + * @return The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + * + */ + private @Nullable String privateIpAddress; + /** + * @return The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + * + */ + private String subnetId; + + private HciNetworkInterfaceIpConfiguration() {} + /** + * @return The IPv4 address of the gateway for the Network Interface. + * + */ + public Optional gateway() { + return Optional.ofNullable(this.gateway); + } + /** + * @return The prefix length for the address of the Network Interface. + * + */ + public Optional prefixLength() { + return Optional.ofNullable(this.prefixLength); + } + /** + * @return The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + * + */ + public Optional privateIpAddress() { + return Optional.ofNullable(this.privateIpAddress); + } + /** + * @return The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + * + */ + public String subnetId() { + return this.subnetId; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(HciNetworkInterfaceIpConfiguration defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable String gateway; + private @Nullable String prefixLength; + private @Nullable String privateIpAddress; + private String subnetId; + public Builder() {} + public Builder(HciNetworkInterfaceIpConfiguration defaults) { + Objects.requireNonNull(defaults); + this.gateway = defaults.gateway; + this.prefixLength = defaults.prefixLength; + this.privateIpAddress = defaults.privateIpAddress; + this.subnetId = defaults.subnetId; + } + + @CustomType.Setter + public Builder gateway(@Nullable String gateway) { + + this.gateway = gateway; + return this; + } + @CustomType.Setter + public Builder prefixLength(@Nullable String prefixLength) { + + this.prefixLength = prefixLength; + return this; + } + @CustomType.Setter + public Builder privateIpAddress(@Nullable String privateIpAddress) { + + this.privateIpAddress = privateIpAddress; + return this; + } + @CustomType.Setter + public Builder subnetId(String subnetId) { + if (subnetId == null) { + throw new MissingRequiredPropertyException("HciNetworkInterfaceIpConfiguration", "subnetId"); + } + this.subnetId = subnetId; + return this; + } + public HciNetworkInterfaceIpConfiguration build() { + final var _resultValue = new HciNetworkInterfaceIpConfiguration(); + _resultValue.gateway = gateway; + _resultValue.prefixLength = prefixLength; + _resultValue.privateIpAddress = privateIpAddress; + _resultValue.subnetId = subnetId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/Account.java b/sdk/java/src/main/java/com/pulumi/azure/storage/Account.java index 920b8f018f..4545c7d0b8 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/Account.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/Account.java @@ -1105,7 +1105,11 @@ public Output> queueEncryptionKeyType() { * * > **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ @Export(name="queueProperties", refs={AccountQueueProperties.class}, tree="[0]") private Output queueProperties; @@ -1713,9 +1717,13 @@ public Output> sharedAccessKeyEnabled() { * * > **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ @Export(name="staticWebsite", refs={AccountStaticWebsite.class}, tree="[0]") - private Output staticWebsite; + private Output staticWebsite; /** * @return A `static_website` block as defined below. @@ -1725,8 +1733,8 @@ public Output> sharedAccessKeyEnabled() { * > **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`. * */ - public Output> staticWebsite() { - return Codegen.optional(this.staticWebsite); + public Output staticWebsite() { + return this.staticWebsite; } /** * The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/AccountArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountArgs.java index f8850e9586..d431f022d5 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/AccountArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountArgs.java @@ -495,7 +495,11 @@ public Optional> queueEncryptionKeyType() { * * > **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ @Import(name="queueProperties") private @Nullable Output queueProperties; @@ -504,7 +508,11 @@ public Optional> queueEncryptionKeyType() { * * > **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ public Optional> queueProperties() { return Optional.ofNullable(this.queueProperties); } @@ -606,7 +614,11 @@ public Optional> sharedAccessKeyEnabled() { * * > **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ @Import(name="staticWebsite") private @Nullable Output staticWebsite; @@ -617,7 +629,11 @@ public Optional> sharedAccessKeyEnabled() { * * > **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ public Optional> staticWebsite() { return Optional.ofNullable(this.staticWebsite); } @@ -1352,7 +1368,11 @@ public Builder queueEncryptionKeyType(String queueEncryptionKeyType) { * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ public Builder queueProperties(@Nullable Output queueProperties) { $.queueProperties = queueProperties; return this; @@ -1365,7 +1385,11 @@ public Builder queueProperties(@Nullable Output queu * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ public Builder queueProperties(AccountQueuePropertiesArgs queueProperties) { return queueProperties(Output.of(queueProperties)); } @@ -1501,7 +1525,11 @@ public Builder sharedAccessKeyEnabled(Boolean sharedAccessKeyEnabled) { * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ public Builder staticWebsite(@Nullable Output staticWebsite) { $.staticWebsite = staticWebsite; return this; @@ -1516,7 +1544,11 @@ public Builder staticWebsite(@Nullable Output staticWe * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ public Builder staticWebsite(AccountStaticWebsiteArgs staticWebsite) { return staticWebsite(Output.of(staticWebsite)); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/AccountQueueProperties.java b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountQueueProperties.java new file mode 100644 index 0000000000..1131d20374 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountQueueProperties.java @@ -0,0 +1,247 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.storage; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.storage.AccountQueuePropertiesArgs; +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesState; +import com.pulumi.azure.storage.outputs.AccountQueuePropertiesCorsRule; +import com.pulumi.azure.storage.outputs.AccountQueuePropertiesHourMetrics; +import com.pulumi.azure.storage.outputs.AccountQueuePropertiesLogging; +import com.pulumi.azure.storage.outputs.AccountQueuePropertiesMinuteMetrics; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.List; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Manages the Queue Properties of an Azure Storage Account. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.storage.Account;
+ * import com.pulumi.azure.storage.AccountArgs;
+ * import com.pulumi.azure.storage.AccountQueueProperties;
+ * import com.pulumi.azure.storage.AccountQueuePropertiesArgs;
+ * import com.pulumi.azure.storage.inputs.AccountQueuePropertiesCorsRuleArgs;
+ * import com.pulumi.azure.storage.inputs.AccountQueuePropertiesLoggingArgs;
+ * import com.pulumi.azure.storage.inputs.AccountQueuePropertiesHourMetricsArgs;
+ * import com.pulumi.azure.storage.inputs.AccountQueuePropertiesMinuteMetricsArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("example-resources")
+ *             .location("West Europe")
+ *             .build());
+ * 
+ *         var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
+ *             .name("storageaccountname")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .accountTier("Standard")
+ *             .accountReplicationType("GRS")
+ *             .tags(Map.of("environment", "staging"))
+ *             .build());
+ * 
+ *         var exampleAccountQueueProperties = new AccountQueueProperties("exampleAccountQueueProperties", AccountQueuePropertiesArgs.builder()
+ *             .storageAccountId(exampleAccount.id())
+ *             .corsRules(AccountQueuePropertiesCorsRuleArgs.builder()
+ *                 .allowedOrigins("http://www.example.com")
+ *                 .exposedHeaders("x-tempo-*")
+ *                 .allowedHeaders("x-tempo-*")
+ *                 .allowedMethods(                
+ *                     "GET",
+ *                     "PUT")
+ *                 .maxAgeInSeconds("500")
+ *                 .build())
+ *             .logging(AccountQueuePropertiesLoggingArgs.builder()
+ *                 .version("1.0")
+ *                 .delete(true)
+ *                 .read(true)
+ *                 .write(true)
+ *                 .retentionPolicyDays(7)
+ *                 .build())
+ *             .hourMetrics(AccountQueuePropertiesHourMetricsArgs.builder()
+ *                 .version("1.0")
+ *                 .retentionPolicyDays(7)
+ *                 .build())
+ *             .minuteMetrics(AccountQueuePropertiesMinuteMetricsArgs.builder()
+ *                 .version("1.0")
+ *                 .retentionPolicyDays(7)
+ *                 .build())
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Storage Account Queue Properties can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:storage/accountQueueProperties:AccountQueueProperties queueprops /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + * ``` + * + */ +@ResourceType(type="azure:storage/accountQueueProperties:AccountQueueProperties") +public class AccountQueueProperties extends com.pulumi.resources.CustomResource { + /** + * A `cors_rule` block as defined above. + * + */ + @Export(name="corsRules", refs={List.class,AccountQueuePropertiesCorsRule.class}, tree="[0,1]") + private Output> corsRules; + + /** + * @return A `cors_rule` block as defined above. + * + */ + public Output>> corsRules() { + return Codegen.optional(this.corsRules); + } + /** + * A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + */ + @Export(name="hourMetrics", refs={AccountQueuePropertiesHourMetrics.class}, tree="[0]") + private Output hourMetrics; + + /** + * @return A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + */ + public Output hourMetrics() { + return this.hourMetrics; + } + /** + * A `logging` block as defined below. + * + */ + @Export(name="logging", refs={AccountQueuePropertiesLogging.class}, tree="[0]") + private Output logging; + + /** + * @return A `logging` block as defined below. + * + */ + public Output logging() { + return this.logging; + } + /** + * A `minute_metrics` block as defined below. + * + */ + @Export(name="minuteMetrics", refs={AccountQueuePropertiesMinuteMetrics.class}, tree="[0]") + private Output minuteMetrics; + + /** + * @return A `minute_metrics` block as defined below. + * + */ + public Output minuteMetrics() { + return this.minuteMetrics; + } + /** + * The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + */ + @Export(name="storageAccountId", refs={String.class}, tree="[0]") + private Output storageAccountId; + + /** + * @return The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + */ + public Output storageAccountId() { + return this.storageAccountId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public AccountQueueProperties(java.lang.String name) { + this(name, AccountQueuePropertiesArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public AccountQueueProperties(java.lang.String name, AccountQueuePropertiesArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public AccountQueueProperties(java.lang.String name, AccountQueuePropertiesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:storage/accountQueueProperties:AccountQueueProperties", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private AccountQueueProperties(java.lang.String name, Output id, @Nullable AccountQueuePropertiesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:storage/accountQueueProperties:AccountQueueProperties", name, state, makeResourceOptions(options, id), false); + } + + private static AccountQueuePropertiesArgs makeArgs(AccountQueuePropertiesArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccountQueuePropertiesArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static AccountQueueProperties get(java.lang.String name, Output id, @Nullable AccountQueuePropertiesState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new AccountQueueProperties(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/AccountQueuePropertiesArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountQueuePropertiesArgs.java new file mode 100644 index 0000000000..8d89f23d55 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountQueuePropertiesArgs.java @@ -0,0 +1,258 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.storage; + +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesCorsRuleArgs; +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesHourMetricsArgs; +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesLoggingArgs; +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesMinuteMetricsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AccountQueuePropertiesArgs extends com.pulumi.resources.ResourceArgs { + + public static final AccountQueuePropertiesArgs Empty = new AccountQueuePropertiesArgs(); + + /** + * A `cors_rule` block as defined above. + * + */ + @Import(name="corsRules") + private @Nullable Output> corsRules; + + /** + * @return A `cors_rule` block as defined above. + * + */ + public Optional>> corsRules() { + return Optional.ofNullable(this.corsRules); + } + + /** + * A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + */ + @Import(name="hourMetrics") + private @Nullable Output hourMetrics; + + /** + * @return A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + */ + public Optional> hourMetrics() { + return Optional.ofNullable(this.hourMetrics); + } + + /** + * A `logging` block as defined below. + * + */ + @Import(name="logging") + private @Nullable Output logging; + + /** + * @return A `logging` block as defined below. + * + */ + public Optional> logging() { + return Optional.ofNullable(this.logging); + } + + /** + * A `minute_metrics` block as defined below. + * + */ + @Import(name="minuteMetrics") + private @Nullable Output minuteMetrics; + + /** + * @return A `minute_metrics` block as defined below. + * + */ + public Optional> minuteMetrics() { + return Optional.ofNullable(this.minuteMetrics); + } + + /** + * The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + */ + @Import(name="storageAccountId", required=true) + private Output storageAccountId; + + /** + * @return The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + */ + public Output storageAccountId() { + return this.storageAccountId; + } + + private AccountQueuePropertiesArgs() {} + + private AccountQueuePropertiesArgs(AccountQueuePropertiesArgs $) { + this.corsRules = $.corsRules; + this.hourMetrics = $.hourMetrics; + this.logging = $.logging; + this.minuteMetrics = $.minuteMetrics; + this.storageAccountId = $.storageAccountId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountQueuePropertiesArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountQueuePropertiesArgs $; + + public Builder() { + $ = new AccountQueuePropertiesArgs(); + } + + public Builder(AccountQueuePropertiesArgs defaults) { + $ = new AccountQueuePropertiesArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param corsRules A `cors_rule` block as defined above. + * + * @return builder + * + */ + public Builder corsRules(@Nullable Output> corsRules) { + $.corsRules = corsRules; + return this; + } + + /** + * @param corsRules A `cors_rule` block as defined above. + * + * @return builder + * + */ + public Builder corsRules(List corsRules) { + return corsRules(Output.of(corsRules)); + } + + /** + * @param corsRules A `cors_rule` block as defined above. + * + * @return builder + * + */ + public Builder corsRules(AccountQueuePropertiesCorsRuleArgs... corsRules) { + return corsRules(List.of(corsRules)); + } + + /** + * @param hourMetrics A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + * @return builder + * + */ + public Builder hourMetrics(@Nullable Output hourMetrics) { + $.hourMetrics = hourMetrics; + return this; + } + + /** + * @param hourMetrics A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + * @return builder + * + */ + public Builder hourMetrics(AccountQueuePropertiesHourMetricsArgs hourMetrics) { + return hourMetrics(Output.of(hourMetrics)); + } + + /** + * @param logging A `logging` block as defined below. + * + * @return builder + * + */ + public Builder logging(@Nullable Output logging) { + $.logging = logging; + return this; + } + + /** + * @param logging A `logging` block as defined below. + * + * @return builder + * + */ + public Builder logging(AccountQueuePropertiesLoggingArgs logging) { + return logging(Output.of(logging)); + } + + /** + * @param minuteMetrics A `minute_metrics` block as defined below. + * + * @return builder + * + */ + public Builder minuteMetrics(@Nullable Output minuteMetrics) { + $.minuteMetrics = minuteMetrics; + return this; + } + + /** + * @param minuteMetrics A `minute_metrics` block as defined below. + * + * @return builder + * + */ + public Builder minuteMetrics(AccountQueuePropertiesMinuteMetricsArgs minuteMetrics) { + return minuteMetrics(Output.of(minuteMetrics)); + } + + /** + * @param storageAccountId The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + public AccountQueuePropertiesArgs build() { + if ($.storageAccountId == null) { + throw new MissingRequiredPropertyException("AccountQueuePropertiesArgs", "storageAccountId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/AccountStaticWebsite.java b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountStaticWebsite.java new file mode 100644 index 0000000000..ec7484bd11 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountStaticWebsite.java @@ -0,0 +1,184 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.storage; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.storage.AccountStaticWebsiteArgs; +import com.pulumi.azure.storage.inputs.AccountStaticWebsiteState; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import java.lang.String; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Manages the Static Website of an Azure Storage Account. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.storage.Account;
+ * import com.pulumi.azure.storage.AccountArgs;
+ * import com.pulumi.azure.storage.AccountStaticWebsite;
+ * import com.pulumi.azure.storage.AccountStaticWebsiteArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("example-resources")
+ *             .location("West Europe")
+ *             .build());
+ * 
+ *         var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
+ *             .name("storageaccountname")
+ *             .resourceGroupName(example.name())
+ *             .location(example.location())
+ *             .accountTier("Standard")
+ *             .accountReplicationType("GRS")
+ *             .tags(Map.of("environment", "staging"))
+ *             .build());
+ * 
+ *         var test = new AccountStaticWebsite("test", AccountStaticWebsiteArgs.builder()
+ *             .storageAccountId(testAzurermStorageAccount.id())
+ *             .error404Document("custom_not_found.html")
+ *             .indexDocument("custom_index.html")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
+ * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Storage Account Static Websites can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:storage/accountStaticWebsite:AccountStaticWebsite mysite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + * ``` + * + */ +@ResourceType(type="azure:storage/accountStaticWebsite:AccountStaticWebsite") +public class AccountStaticWebsite extends com.pulumi.resources.CustomResource { + /** + * The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + */ + @Export(name="error404Document", refs={String.class}, tree="[0]") + private Output error404Document; + + /** + * @return The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + */ + public Output> error404Document() { + return Codegen.optional(this.error404Document); + } + /** + * The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + */ + @Export(name="indexDocument", refs={String.class}, tree="[0]") + private Output indexDocument; + + /** + * @return The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + */ + public Output> indexDocument() { + return Codegen.optional(this.indexDocument); + } + /** + * The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + */ + @Export(name="storageAccountId", refs={String.class}, tree="[0]") + private Output storageAccountId; + + /** + * @return The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + */ + public Output storageAccountId() { + return this.storageAccountId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public AccountStaticWebsite(java.lang.String name) { + this(name, AccountStaticWebsiteArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public AccountStaticWebsite(java.lang.String name, AccountStaticWebsiteArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public AccountStaticWebsite(java.lang.String name, AccountStaticWebsiteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:storage/accountStaticWebsite:AccountStaticWebsite", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); + } + + private AccountStaticWebsite(java.lang.String name, Output id, @Nullable AccountStaticWebsiteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:storage/accountStaticWebsite:AccountStaticWebsite", name, state, makeResourceOptions(options, id), false); + } + + private static AccountStaticWebsiteArgs makeArgs(AccountStaticWebsiteArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + if (options != null && options.getUrn().isPresent()) { + return null; + } + return args == null ? AccountStaticWebsiteArgs.Empty : args; + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + + /** + * Get an existing Host resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state + * @param options Optional settings to control the behavior of the CustomResource. + */ + public static AccountStaticWebsite get(java.lang.String name, Output id, @Nullable AccountStaticWebsiteState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new AccountStaticWebsite(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/AccountStaticWebsiteArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountStaticWebsiteArgs.java new file mode 100644 index 0000000000..d8716f5553 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/AccountStaticWebsiteArgs.java @@ -0,0 +1,161 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.storage; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AccountStaticWebsiteArgs extends com.pulumi.resources.ResourceArgs { + + public static final AccountStaticWebsiteArgs Empty = new AccountStaticWebsiteArgs(); + + /** + * The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + */ + @Import(name="error404Document") + private @Nullable Output error404Document; + + /** + * @return The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + */ + public Optional> error404Document() { + return Optional.ofNullable(this.error404Document); + } + + /** + * The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + */ + @Import(name="indexDocument") + private @Nullable Output indexDocument; + + /** + * @return The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + */ + public Optional> indexDocument() { + return Optional.ofNullable(this.indexDocument); + } + + /** + * The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + */ + @Import(name="storageAccountId", required=true) + private Output storageAccountId; + + /** + * @return The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + */ + public Output storageAccountId() { + return this.storageAccountId; + } + + private AccountStaticWebsiteArgs() {} + + private AccountStaticWebsiteArgs(AccountStaticWebsiteArgs $) { + this.error404Document = $.error404Document; + this.indexDocument = $.indexDocument; + this.storageAccountId = $.storageAccountId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountStaticWebsiteArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountStaticWebsiteArgs $; + + public Builder() { + $ = new AccountStaticWebsiteArgs(); + } + + public Builder(AccountStaticWebsiteArgs defaults) { + $ = new AccountStaticWebsiteArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param error404Document The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + * @return builder + * + */ + public Builder error404Document(@Nullable Output error404Document) { + $.error404Document = error404Document; + return this; + } + + /** + * @param error404Document The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + * @return builder + * + */ + public Builder error404Document(String error404Document) { + return error404Document(Output.of(error404Document)); + } + + /** + * @param indexDocument The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + * @return builder + * + */ + public Builder indexDocument(@Nullable Output indexDocument) { + $.indexDocument = indexDocument; + return this; + } + + /** + * @param indexDocument The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + * @return builder + * + */ + public Builder indexDocument(String indexDocument) { + return indexDocument(Output.of(indexDocument)); + } + + /** + * @param storageAccountId The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + public AccountStaticWebsiteArgs build() { + if ($.storageAccountId == null) { + throw new MissingRequiredPropertyException("AccountStaticWebsiteArgs", "storageAccountId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/Container.java b/sdk/java/src/main/java/com/pulumi/azure/storage/Container.java index 8c033e8c55..62b63aadb6 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/Container.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/Container.java @@ -64,7 +64,7 @@ * * var exampleContainer = new Container("exampleContainer", ContainerArgs.builder() * .name("vhds") - * .storageAccountName(exampleAccount.name()) + * .storageAccountId(exampleAccount.id()) * .containerAccessType("private") * .build()); * @@ -190,7 +190,11 @@ public Output name() { /** * The Resource Manager ID of this Storage Container. * + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + * */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ @Export(name="resourceManagerId", refs={String.class}, tree="[0]") private Output resourceManagerId; @@ -204,16 +208,38 @@ public Output resourceManagerId() { /** * The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. * + * > **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. + * */ - @Export(name="storageAccountName", refs={String.class}, tree="[0]") - private Output storageAccountName; + @Export(name="storageAccountId", refs={String.class}, tree="[0]") + private Output storageAccountId; /** * @return The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. * + * > **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. + * + */ + public Output> storageAccountId() { + return Codegen.optional(this.storageAccountId); + } + /** + * 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`. + * + * @deprecated + * 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. + * + */ + @Deprecated /* 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. */ + @Export(name="storageAccountName", refs={String.class}, tree="[0]") + private Output storageAccountName; + + /** + * @return 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`. + * */ - public Output storageAccountName() { - return this.storageAccountName; + public Output> storageAccountName() { + return Codegen.optional(this.storageAccountName); } /** @@ -228,7 +254,7 @@ public Container(java.lang.String name) { * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. */ - public Container(java.lang.String name, ContainerArgs args) { + public Container(java.lang.String name, @Nullable ContainerArgs args) { this(name, args, null); } /** @@ -237,7 +263,7 @@ public Container(java.lang.String name, ContainerArgs args) { * @param args The arguments to use to populate this resource's properties. * @param options A bag of options that control this resource's behavior. */ - public Container(java.lang.String name, ContainerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + public Container(java.lang.String name, @Nullable ContainerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("azure:storage/container:Container", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); } @@ -245,7 +271,7 @@ private Container(java.lang.String name, Output id, @Nullable super("azure:storage/container:Container", name, state, makeResourceOptions(options, id), false); } - private static ContainerArgs makeArgs(ContainerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + private static ContainerArgs makeArgs(@Nullable ContainerArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { if (options != null && options.getUrn().isPresent()) { return null; } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/ContainerArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/ContainerArgs.java index d2aa01faf0..4789873866 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/ContainerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/ContainerArgs.java @@ -5,7 +5,6 @@ import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; -import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.Boolean; import java.lang.String; import java.util.Map; @@ -100,16 +99,43 @@ public Optional> name() { /** * The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. * + * > **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. + * */ - @Import(name="storageAccountName", required=true) - private Output storageAccountName; + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; /** * @return The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. * + * > **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. + * + */ + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * 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`. + * + * @deprecated + * 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. + * */ - public Output storageAccountName() { - return this.storageAccountName; + @Deprecated /* 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. */ + @Import(name="storageAccountName") + private @Nullable Output storageAccountName; + + /** + * @return 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`. + * + * @deprecated + * 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. + * + */ + @Deprecated /* 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. */ + public Optional> storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } private ContainerArgs() {} @@ -120,6 +146,7 @@ private ContainerArgs(ContainerArgs $) { this.encryptionScopeOverrideEnabled = $.encryptionScopeOverrideEnabled; this.metadata = $.metadata; this.name = $.name; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; } @@ -251,30 +278,60 @@ public Builder name(String name) { } /** - * @param storageAccountName The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * @param storageAccountId The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + /** + * @param storageAccountName 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`. * * @return builder * + * @deprecated + * 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. + * */ - public Builder storageAccountName(Output storageAccountName) { + @Deprecated /* 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. */ + public Builder storageAccountName(@Nullable Output storageAccountName) { $.storageAccountName = storageAccountName; return this; } /** - * @param storageAccountName The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * @param storageAccountName 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`. * * @return builder * + * @deprecated + * 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. + * */ + @Deprecated /* 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. */ public Builder storageAccountName(String storageAccountName) { return storageAccountName(Output.of(storageAccountName)); } public ContainerArgs build() { - if ($.storageAccountName == null) { - throw new MissingRequiredPropertyException("ContainerArgs", "storageAccountName"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/Share.java b/sdk/java/src/main/java/com/pulumi/azure/storage/Share.java index 614b829cf6..0b6c5d26e1 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/Share.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/Share.java @@ -70,14 +70,14 @@ * * var exampleShare = new Share("exampleShare", ShareArgs.builder() * .name("sharename") - * .storageAccountName(exampleAccount.name()) + * .storageAccountId(exampleAccount.id()) * .quota(50) * .acls(ShareAclArgs.builder() * .id("MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI") * .accessPolicies(ShareAclAccessPolicyArgs.builder() * .permissions("rwdl") - * .start("2019-07-02T09:38:21.0000000Z") - * .expiry("2019-07-02T10:38:21.0000000Z") + * .start("2019-07-02T09:38:21Z") + * .expiry("2019-07-02T10:38:21Z") * .build()) * .build()) * .build()); @@ -90,10 +90,10 @@ * * ## Import * - * Storage Shares can be imported using the `resource id`, e.g. + * Storage Shares can be imported using the `id`, e.g. * * ```sh - * $ pulumi import azure:storage/share:Share exampleShare https://account1.file.core.windows.net/share1 + * $ pulumi import azure:storage/share:Share exampleShare /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myAccount/fileServices/default/shares/exampleShare * ``` * */ @@ -202,7 +202,11 @@ public Output quota() { /** * The Resource Manager ID of this File Share. * + * @deprecated + * this property is deprecated and will be removed 5.0 and replaced by the `id` property. + * */ + @Deprecated /* this property is deprecated and will be removed 5.0 and replaced by the `id` property. */ @Export(name="resourceManagerId", refs={String.class}, tree="[0]") private Output resourceManagerId; @@ -216,16 +220,38 @@ public Output resourceManagerId() { /** * Specifies the storage account in which to create the share. Changing this forces a new resource to be created. * + * > **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. + * */ - @Export(name="storageAccountName", refs={String.class}, tree="[0]") - private Output storageAccountName; + @Export(name="storageAccountId", refs={String.class}, tree="[0]") + private Output storageAccountId; /** * @return Specifies the storage account in which to create the share. Changing this forces a new resource to be created. * + * > **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. + * + */ + public Output> storageAccountId() { + return Codegen.optional(this.storageAccountId); + } + /** + * 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`. + * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * + */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ + @Export(name="storageAccountName", refs={String.class}, tree="[0]") + private Output storageAccountName; + + /** + * @return 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`. + * */ - public Output storageAccountName() { - return this.storageAccountName; + public Output> storageAccountName() { + return Codegen.optional(this.storageAccountName); } /** * The URL of the File Share diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/ShareArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/ShareArgs.java index 49f43c0814..58b26c959b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/ShareArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/ShareArgs.java @@ -129,16 +129,43 @@ public Output quota() { /** * Specifies the storage account in which to create the share. Changing this forces a new resource to be created. * + * > **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. + * */ - @Import(name="storageAccountName", required=true) - private Output storageAccountName; + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; /** * @return Specifies the storage account in which to create the share. Changing this forces a new resource to be created. * + * > **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. + * */ - public Output storageAccountName() { - return this.storageAccountName; + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * 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`. + * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * + */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ + @Import(name="storageAccountName") + private @Nullable Output storageAccountName; + + /** + * @return 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`. + * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * + */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ + public Optional> storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } private ShareArgs() {} @@ -150,6 +177,7 @@ private ShareArgs(ShareArgs $) { this.metadata = $.metadata; this.name = $.name; this.quota = $.quota; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; } @@ -324,22 +352,55 @@ public Builder quota(Integer quota) { } /** - * @param storageAccountName Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * @param storageAccountId Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **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. * * @return builder * */ - public Builder storageAccountName(Output storageAccountName) { + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + /** + * @param storageAccountName 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`. + * + * @return builder + * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * + */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ + public Builder storageAccountName(@Nullable Output storageAccountName) { $.storageAccountName = storageAccountName; return this; } /** - * @param storageAccountName Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * @param storageAccountName 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`. * * @return builder * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ public Builder storageAccountName(String storageAccountName) { return storageAccountName(Output.of(storageAccountName)); } @@ -348,9 +409,6 @@ public ShareArgs build() { if ($.quota == null) { throw new MissingRequiredPropertyException("ShareArgs", "quota"); } - if ($.storageAccountName == null) { - throw new MissingRequiredPropertyException("ShareArgs", "storageAccountName"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/StorageFunctions.java b/sdk/java/src/main/java/com/pulumi/azure/storage/StorageFunctions.java index 32a13f721e..8dd510a12d 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/StorageFunctions.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/StorageFunctions.java @@ -1900,6 +1900,7 @@ public static CompletableFuture getQueuePlain(GetQueuePlainArgs * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetShareArgs; * import java.util.List; * import java.util.ArrayList; @@ -1914,12 +1915,16 @@ public static CompletableFuture getQueuePlain(GetQueuePlainArgs * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getShare(GetShareArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetShare = StorageFunctions.getShare(GetShareArgs.builder() * .name("existing") - * .storageAccountName("existing") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * - * ctx.export("id", example.applyValue(getShareResult -> getShareResult.id())); * } * } * } @@ -1946,6 +1951,7 @@ public static Output getShare(GetShareArgs args) { * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetShareArgs; * import java.util.List; * import java.util.ArrayList; @@ -1960,12 +1966,16 @@ public static Output getShare(GetShareArgs args) { * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getShare(GetShareArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetShare = StorageFunctions.getShare(GetShareArgs.builder() * .name("existing") - * .storageAccountName("existing") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * - * ctx.export("id", example.applyValue(getShareResult -> getShareResult.id())); * } * } * } @@ -1992,6 +2002,7 @@ public static CompletableFuture getSharePlain(GetSharePlainArgs * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetShareArgs; * import java.util.List; * import java.util.ArrayList; @@ -2006,12 +2017,16 @@ public static CompletableFuture getSharePlain(GetSharePlainArgs * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getShare(GetShareArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetShare = StorageFunctions.getShare(GetShareArgs.builder() * .name("existing") - * .storageAccountName("existing") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * - * ctx.export("id", example.applyValue(getShareResult -> getShareResult.id())); * } * } * } @@ -2038,6 +2053,7 @@ public static Output getShare(GetShareArgs args, InvokeOptions o * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetShareArgs; * import java.util.List; * import java.util.ArrayList; @@ -2052,12 +2068,16 @@ public static Output getShare(GetShareArgs args, InvokeOptions o * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getShare(GetShareArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetShare = StorageFunctions.getShare(GetShareArgs.builder() * .name("existing") - * .storageAccountName("existing") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * - * ctx.export("id", example.applyValue(getShareResult -> getShareResult.id())); * } * } * } @@ -2082,6 +2102,7 @@ public static CompletableFuture getSharePlain(GetSharePlainArgs * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetStorageContainerArgs; * import java.util.List; * import java.util.ArrayList; @@ -2096,9 +2117,14 @@ public static CompletableFuture getSharePlain(GetSharePlainArgs * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetStorageContainer = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() * .name("example-container-name") - * .storageAccountName("example-storage-account-name") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * * } @@ -2125,6 +2151,7 @@ public static Output getStorageContainer(GetStorageCo * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetStorageContainerArgs; * import java.util.List; * import java.util.ArrayList; @@ -2139,9 +2166,14 @@ public static Output getStorageContainer(GetStorageCo * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetStorageContainer = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() * .name("example-container-name") - * .storageAccountName("example-storage-account-name") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * * } @@ -2168,6 +2200,7 @@ public static CompletableFuture getStorageContainerPl * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetStorageContainerArgs; * import java.util.List; * import java.util.ArrayList; @@ -2182,9 +2215,14 @@ public static CompletableFuture getStorageContainerPl * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetStorageContainer = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() * .name("example-container-name") - * .storageAccountName("example-storage-account-name") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * * } @@ -2211,6 +2249,7 @@ public static Output getStorageContainer(GetStorageCo * import com.pulumi.Pulumi; * import com.pulumi.core.Output; * import com.pulumi.azure.storage.StorageFunctions; + * import com.pulumi.azure.storage.inputs.GetAccountArgs; * import com.pulumi.azure.storage.inputs.GetStorageContainerArgs; * import java.util.List; * import java.util.ArrayList; @@ -2225,9 +2264,14 @@ public static Output getStorageContainer(GetStorageCo * } * * public static void stack(Context ctx) { - * final var example = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() + * final var example = StorageFunctions.getAccount(GetAccountArgs.builder() + * .name("exampleaccount") + * .resourceGroupName("examples") + * .build()); + * + * final var exampleGetStorageContainer = StorageFunctions.getStorageContainer(GetStorageContainerArgs.builder() * .name("example-container-name") - * .storageAccountName("example-storage-account-name") + * .storageAccountId(example.applyValue(getAccountResult -> getAccountResult.id())) * .build()); * * } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesHourMetricsArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesHourMetricsArgs.java index 724ad139cb..6bd9c68bca 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesHourMetricsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesHourMetricsArgs.java @@ -18,21 +18,6 @@ public final class AccountQueuePropertiesHourMetricsArgs extends com.pulumi.reso public static final AccountQueuePropertiesHourMetricsArgs Empty = new AccountQueuePropertiesHourMetricsArgs(); - /** - * Indicates whether hour metrics are enabled for the Queue service. - * - */ - @Import(name="enabled", required=true) - private Output enabled; - - /** - * @return Indicates whether hour metrics are enabled for the Queue service. - * - */ - public Output enabled() { - return this.enabled; - } - /** * Indicates whether metrics should generate summary statistics for called API operations. * @@ -81,7 +66,6 @@ public Output version() { private AccountQueuePropertiesHourMetricsArgs() {} private AccountQueuePropertiesHourMetricsArgs(AccountQueuePropertiesHourMetricsArgs $) { - this.enabled = $.enabled; this.includeApis = $.includeApis; this.retentionPolicyDays = $.retentionPolicyDays; this.version = $.version; @@ -105,27 +89,6 @@ public Builder(AccountQueuePropertiesHourMetricsArgs defaults) { $ = new AccountQueuePropertiesHourMetricsArgs(Objects.requireNonNull(defaults)); } - /** - * @param enabled Indicates whether hour metrics are enabled for the Queue service. - * - * @return builder - * - */ - public Builder enabled(Output enabled) { - $.enabled = enabled; - return this; - } - - /** - * @param enabled Indicates whether hour metrics are enabled for the Queue service. - * - * @return builder - * - */ - public Builder enabled(Boolean enabled) { - return enabled(Output.of(enabled)); - } - /** * @param includeApis Indicates whether metrics should generate summary statistics for called API operations. * @@ -190,9 +153,6 @@ public Builder version(String version) { } public AccountQueuePropertiesHourMetricsArgs build() { - if ($.enabled == null) { - throw new MissingRequiredPropertyException("AccountQueuePropertiesHourMetricsArgs", "enabled"); - } if ($.version == null) { throw new MissingRequiredPropertyException("AccountQueuePropertiesHourMetricsArgs", "version"); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesMinuteMetricsArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesMinuteMetricsArgs.java index 0b266541d0..640694d607 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesMinuteMetricsArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesMinuteMetricsArgs.java @@ -18,21 +18,6 @@ public final class AccountQueuePropertiesMinuteMetricsArgs extends com.pulumi.re public static final AccountQueuePropertiesMinuteMetricsArgs Empty = new AccountQueuePropertiesMinuteMetricsArgs(); - /** - * Indicates whether minute metrics are enabled for the Queue service. - * - */ - @Import(name="enabled", required=true) - private Output enabled; - - /** - * @return Indicates whether minute metrics are enabled for the Queue service. - * - */ - public Output enabled() { - return this.enabled; - } - /** * Indicates whether metrics should generate summary statistics for called API operations. * @@ -81,7 +66,6 @@ public Output version() { private AccountQueuePropertiesMinuteMetricsArgs() {} private AccountQueuePropertiesMinuteMetricsArgs(AccountQueuePropertiesMinuteMetricsArgs $) { - this.enabled = $.enabled; this.includeApis = $.includeApis; this.retentionPolicyDays = $.retentionPolicyDays; this.version = $.version; @@ -105,27 +89,6 @@ public Builder(AccountQueuePropertiesMinuteMetricsArgs defaults) { $ = new AccountQueuePropertiesMinuteMetricsArgs(Objects.requireNonNull(defaults)); } - /** - * @param enabled Indicates whether minute metrics are enabled for the Queue service. - * - * @return builder - * - */ - public Builder enabled(Output enabled) { - $.enabled = enabled; - return this; - } - - /** - * @param enabled Indicates whether minute metrics are enabled for the Queue service. - * - * @return builder - * - */ - public Builder enabled(Boolean enabled) { - return enabled(Output.of(enabled)); - } - /** * @param includeApis Indicates whether metrics should generate summary statistics for called API operations. * @@ -190,9 +153,6 @@ public Builder version(String version) { } public AccountQueuePropertiesMinuteMetricsArgs build() { - if ($.enabled == null) { - throw new MissingRequiredPropertyException("AccountQueuePropertiesMinuteMetricsArgs", "enabled"); - } if ($.version == null) { throw new MissingRequiredPropertyException("AccountQueuePropertiesMinuteMetricsArgs", "version"); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesState.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesState.java new file mode 100644 index 0000000000..100b2cca90 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountQueuePropertiesState.java @@ -0,0 +1,254 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.storage.inputs; + +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesCorsRuleArgs; +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesHourMetricsArgs; +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesLoggingArgs; +import com.pulumi.azure.storage.inputs.AccountQueuePropertiesMinuteMetricsArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AccountQueuePropertiesState extends com.pulumi.resources.ResourceArgs { + + public static final AccountQueuePropertiesState Empty = new AccountQueuePropertiesState(); + + /** + * A `cors_rule` block as defined above. + * + */ + @Import(name="corsRules") + private @Nullable Output> corsRules; + + /** + * @return A `cors_rule` block as defined above. + * + */ + public Optional>> corsRules() { + return Optional.ofNullable(this.corsRules); + } + + /** + * A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + */ + @Import(name="hourMetrics") + private @Nullable Output hourMetrics; + + /** + * @return A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + */ + public Optional> hourMetrics() { + return Optional.ofNullable(this.hourMetrics); + } + + /** + * A `logging` block as defined below. + * + */ + @Import(name="logging") + private @Nullable Output logging; + + /** + * @return A `logging` block as defined below. + * + */ + public Optional> logging() { + return Optional.ofNullable(this.logging); + } + + /** + * A `minute_metrics` block as defined below. + * + */ + @Import(name="minuteMetrics") + private @Nullable Output minuteMetrics; + + /** + * @return A `minute_metrics` block as defined below. + * + */ + public Optional> minuteMetrics() { + return Optional.ofNullable(this.minuteMetrics); + } + + /** + * The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + */ + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; + + /** + * @return The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + */ + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + private AccountQueuePropertiesState() {} + + private AccountQueuePropertiesState(AccountQueuePropertiesState $) { + this.corsRules = $.corsRules; + this.hourMetrics = $.hourMetrics; + this.logging = $.logging; + this.minuteMetrics = $.minuteMetrics; + this.storageAccountId = $.storageAccountId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountQueuePropertiesState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountQueuePropertiesState $; + + public Builder() { + $ = new AccountQueuePropertiesState(); + } + + public Builder(AccountQueuePropertiesState defaults) { + $ = new AccountQueuePropertiesState(Objects.requireNonNull(defaults)); + } + + /** + * @param corsRules A `cors_rule` block as defined above. + * + * @return builder + * + */ + public Builder corsRules(@Nullable Output> corsRules) { + $.corsRules = corsRules; + return this; + } + + /** + * @param corsRules A `cors_rule` block as defined above. + * + * @return builder + * + */ + public Builder corsRules(List corsRules) { + return corsRules(Output.of(corsRules)); + } + + /** + * @param corsRules A `cors_rule` block as defined above. + * + * @return builder + * + */ + public Builder corsRules(AccountQueuePropertiesCorsRuleArgs... corsRules) { + return corsRules(List.of(corsRules)); + } + + /** + * @param hourMetrics A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + * @return builder + * + */ + public Builder hourMetrics(@Nullable Output hourMetrics) { + $.hourMetrics = hourMetrics; + return this; + } + + /** + * @param hourMetrics A `hour_metrics` block as defined below. + * + * > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + * + * @return builder + * + */ + public Builder hourMetrics(AccountQueuePropertiesHourMetricsArgs hourMetrics) { + return hourMetrics(Output.of(hourMetrics)); + } + + /** + * @param logging A `logging` block as defined below. + * + * @return builder + * + */ + public Builder logging(@Nullable Output logging) { + $.logging = logging; + return this; + } + + /** + * @param logging A `logging` block as defined below. + * + * @return builder + * + */ + public Builder logging(AccountQueuePropertiesLoggingArgs logging) { + return logging(Output.of(logging)); + } + + /** + * @param minuteMetrics A `minute_metrics` block as defined below. + * + * @return builder + * + */ + public Builder minuteMetrics(@Nullable Output minuteMetrics) { + $.minuteMetrics = minuteMetrics; + return this; + } + + /** + * @param minuteMetrics A `minute_metrics` block as defined below. + * + * @return builder + * + */ + public Builder minuteMetrics(AccountQueuePropertiesMinuteMetricsArgs minuteMetrics) { + return minuteMetrics(Output.of(minuteMetrics)); + } + + /** + * @param storageAccountId The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + public AccountQueuePropertiesState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountState.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountState.java index 76215d67b9..81bc829eec 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountState.java @@ -1034,7 +1034,11 @@ public Optional> queueEncryptionKeyType() { * * > **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ @Import(name="queueProperties") private @Nullable Output queueProperties; @@ -1043,7 +1047,11 @@ public Optional> queueEncryptionKeyType() { * * > **Note:** `queue_properties` can only be configured when `account_tier` is set to `Standard` and `account_kind` is set to either `Storage` or `StorageV2`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ public Optional> queueProperties() { return Optional.ofNullable(this.queueProperties); } @@ -1685,7 +1693,11 @@ public Optional> sharedAccessKeyEnabled() { * * > **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ @Import(name="staticWebsite") private @Nullable Output staticWebsite; @@ -1696,7 +1708,11 @@ public Optional> sharedAccessKeyEnabled() { * * > **Note:** If `static_website` is specified, the service will automatically create a `azure.storage.Container` named `$web`. * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ public Optional> staticWebsite() { return Optional.ofNullable(this.staticWebsite); } @@ -3259,7 +3275,11 @@ public Builder queueEncryptionKeyType(String queueEncryptionKeyType) { * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ public Builder queueProperties(@Nullable Output queueProperties) { $.queueProperties = queueProperties; return this; @@ -3272,7 +3292,11 @@ public Builder queueProperties(@Nullable Output queu * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ public Builder queueProperties(AccountQueuePropertiesArgs queueProperties) { return queueProperties(Output.of(queueProperties)); } @@ -4164,7 +4188,11 @@ public Builder sharedAccessKeyEnabled(Boolean sharedAccessKeyEnabled) { * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ public Builder staticWebsite(@Nullable Output staticWebsite) { $.staticWebsite = staticWebsite; return this; @@ -4179,7 +4207,11 @@ public Builder staticWebsite(@Nullable Output staticWe * * @return builder * + * @deprecated + * this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider + * */ + @Deprecated /* this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ public Builder staticWebsite(AccountStaticWebsiteArgs staticWebsite) { return staticWebsite(Output.of(staticWebsite)); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountStaticWebsiteState.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountStaticWebsiteState.java new file mode 100644 index 0000000000..cb381e6826 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/AccountStaticWebsiteState.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.azure.storage.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class AccountStaticWebsiteState extends com.pulumi.resources.ResourceArgs { + + public static final AccountStaticWebsiteState Empty = new AccountStaticWebsiteState(); + + /** + * The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + */ + @Import(name="error404Document") + private @Nullable Output error404Document; + + /** + * @return The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + */ + public Optional> error404Document() { + return Optional.ofNullable(this.error404Document); + } + + /** + * The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + */ + @Import(name="indexDocument") + private @Nullable Output indexDocument; + + /** + * @return The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + */ + public Optional> indexDocument() { + return Optional.ofNullable(this.indexDocument); + } + + /** + * The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + */ + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; + + /** + * @return The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + */ + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + private AccountStaticWebsiteState() {} + + private AccountStaticWebsiteState(AccountStaticWebsiteState $) { + this.error404Document = $.error404Document; + this.indexDocument = $.indexDocument; + this.storageAccountId = $.storageAccountId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(AccountStaticWebsiteState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private AccountStaticWebsiteState $; + + public Builder() { + $ = new AccountStaticWebsiteState(); + } + + public Builder(AccountStaticWebsiteState defaults) { + $ = new AccountStaticWebsiteState(Objects.requireNonNull(defaults)); + } + + /** + * @param error404Document The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + * @return builder + * + */ + public Builder error404Document(@Nullable Output error404Document) { + $.error404Document = error404Document; + return this; + } + + /** + * @param error404Document The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + * + * @return builder + * + */ + public Builder error404Document(String error404Document) { + return error404Document(Output.of(error404Document)); + } + + /** + * @param indexDocument The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + * @return builder + * + */ + public Builder indexDocument(@Nullable Output indexDocument) { + $.indexDocument = indexDocument; + return this; + } + + /** + * @param indexDocument The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + * + * @return builder + * + */ + public Builder indexDocument(String indexDocument) { + return indexDocument(Output.of(indexDocument)); + } + + /** + * @param storageAccountId The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + public AccountStaticWebsiteState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ContainerState.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ContainerState.java index c116765a28..34bbb662a7 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ContainerState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ContainerState.java @@ -129,14 +129,22 @@ public Optional> name() { /** * The Resource Manager ID of this Storage Container. * + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + * */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ @Import(name="resourceManagerId") private @Nullable Output resourceManagerId; /** * @return The Resource Manager ID of this Storage Container. * + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + * */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ public Optional> resourceManagerId() { return Optional.ofNullable(this.resourceManagerId); } @@ -144,14 +152,41 @@ public Optional> resourceManagerId() { /** * The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. * + * > **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. + * + */ + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; + + /** + * @return The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **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. + * */ + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * 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`. + * + * @deprecated + * 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. + * + */ + @Deprecated /* 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. */ @Import(name="storageAccountName") private @Nullable Output storageAccountName; /** - * @return The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * @return 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`. + * + * @deprecated + * 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. * */ + @Deprecated /* 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. */ public Optional> storageAccountName() { return Optional.ofNullable(this.storageAccountName); } @@ -167,6 +202,7 @@ private ContainerState(ContainerState $) { this.metadata = $.metadata; this.name = $.name; this.resourceManagerId = $.resourceManagerId; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; } @@ -344,7 +380,11 @@ public Builder name(String name) { * * @return builder * + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + * */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ public Builder resourceManagerId(@Nullable Output resourceManagerId) { $.resourceManagerId = resourceManagerId; return this; @@ -355,28 +395,65 @@ public Builder resourceManagerId(@Nullable Output resourceManagerId) { * * @return builder * + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + * */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ public Builder resourceManagerId(String resourceManagerId) { return resourceManagerId(Output.of(resourceManagerId)); } /** - * @param storageAccountName The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * @param storageAccountId The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **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. * * @return builder * */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + /** + * @param storageAccountName 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`. + * + * @return builder + * + * @deprecated + * 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. + * + */ + @Deprecated /* 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. */ public Builder storageAccountName(@Nullable Output storageAccountName) { $.storageAccountName = storageAccountName; return this; } /** - * @param storageAccountName The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * @param storageAccountName 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`. * * @return builder * + * @deprecated + * 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. + * */ + @Deprecated /* 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. */ public Builder storageAccountName(String storageAccountName) { return storageAccountName(Output.of(storageAccountName)); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicy.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicy.java index 36772a3f73..bddb099c7d 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicy.java @@ -14,14 +14,14 @@ public final class GetShareAclAccessPolicy extends com.pulumi.resources.InvokeAr public static final GetShareAclAccessPolicy Empty = new GetShareAclAccessPolicy(); /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid until. * */ @Import(name="expiry", required=true) private String expiry; /** - * @return The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid until. * */ public String expiry() { @@ -44,14 +44,14 @@ public String permissions() { } /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid from. * */ @Import(name="start", required=true) private String start; /** - * @return The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid from. * */ public String start() { @@ -85,7 +85,7 @@ public Builder(GetShareAclAccessPolicy defaults) { } /** - * @param expiry The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param expiry The time at which this Access Policy is valid until. * * @return builder * @@ -107,7 +107,7 @@ public Builder permissions(String permissions) { } /** - * @param start The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param start The time at which this Access Policy is valid from. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicyArgs.java index fd3810385e..f4d0dec36b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareAclAccessPolicyArgs.java @@ -15,14 +15,14 @@ public final class GetShareAclAccessPolicyArgs extends com.pulumi.resources.Reso public static final GetShareAclAccessPolicyArgs Empty = new GetShareAclAccessPolicyArgs(); /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid until. * */ @Import(name="expiry", required=true) private Output expiry; /** - * @return The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid until. * */ public Output expiry() { @@ -45,14 +45,14 @@ public Output permissions() { } /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid from. * */ @Import(name="start", required=true) private Output start; /** - * @return The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid from. * */ public Output start() { @@ -86,7 +86,7 @@ public Builder(GetShareAclAccessPolicyArgs defaults) { } /** - * @param expiry The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param expiry The time at which this Access Policy is valid until. * * @return builder * @@ -97,7 +97,7 @@ public Builder expiry(Output expiry) { } /** - * @param expiry The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param expiry The time at which this Access Policy is valid until. * * @return builder * @@ -128,7 +128,7 @@ public Builder permissions(String permissions) { } /** - * @param start The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param start The time at which this Access Policy is valid from. * * @return builder * @@ -139,7 +139,7 @@ public Builder start(Output start) { } /** - * @param start The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param start The time at which this Access Policy is valid from. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareArgs.java index 0e94a145f5..28f91c19fe 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetShareArgs.java @@ -65,18 +65,37 @@ public Output name() { } /** - * The name of the storage account. + * The ID of the storage account in which the share exists. + * + * > **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. * */ - @Import(name="storageAccountName", required=true) - private Output storageAccountName; + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; /** - * @return The name of the storage account. + * @return The ID of the storage account in which the share exists. + * + * > **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. * */ - public Output storageAccountName() { - return this.storageAccountName; + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. + * + */ + @Import(name="storageAccountName") + private @Nullable Output storageAccountName; + + /** + * @return The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. + * + */ + public Optional> storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } private GetShareArgs() {} @@ -85,6 +104,7 @@ private GetShareArgs(GetShareArgs $) { this.acls = $.acls; this.metadata = $.metadata; this.name = $.name; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; } @@ -180,18 +200,43 @@ public Builder name(String name) { } /** - * @param storageAccountName The name of the storage account. + * @param storageAccountId The ID of the storage account in which the share exists. + * + * > **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. * * @return builder * */ - public Builder storageAccountName(Output storageAccountName) { + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The ID of the storage account in which the share exists. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + /** + * @param storageAccountName The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. + * + * @return builder + * + */ + public Builder storageAccountName(@Nullable Output storageAccountName) { $.storageAccountName = storageAccountName; return this; } /** - * @param storageAccountName The name of the storage account. + * @param storageAccountName The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. * * @return builder * @@ -204,9 +249,6 @@ public GetShareArgs build() { if ($.name == null) { throw new MissingRequiredPropertyException("GetShareArgs", "name"); } - if ($.storageAccountName == null) { - throw new MissingRequiredPropertyException("GetShareArgs", "storageAccountName"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetSharePlainArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetSharePlainArgs.java index d9abc6f755..330bb65180 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetSharePlainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetSharePlainArgs.java @@ -64,18 +64,37 @@ public String name() { } /** - * The name of the storage account. + * The ID of the storage account in which the share exists. + * + * > **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. + * + */ + @Import(name="storageAccountId") + private @Nullable String storageAccountId; + + /** + * @return The ID of the storage account in which the share exists. + * + * > **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. + * + */ + public Optional storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. * */ - @Import(name="storageAccountName", required=true) - private String storageAccountName; + @Import(name="storageAccountName") + private @Nullable String storageAccountName; /** - * @return The name of the storage account. + * @return The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. * */ - public String storageAccountName() { - return this.storageAccountName; + public Optional storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } private GetSharePlainArgs() {} @@ -84,6 +103,7 @@ private GetSharePlainArgs(GetSharePlainArgs $) { this.acls = $.acls; this.metadata = $.metadata; this.name = $.name; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; } @@ -149,12 +169,25 @@ public Builder name(String name) { } /** - * @param storageAccountName The name of the storage account. + * @param storageAccountId The ID of the storage account in which the share exists. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(@Nullable String storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountName The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. * * @return builder * */ - public Builder storageAccountName(String storageAccountName) { + public Builder storageAccountName(@Nullable String storageAccountName) { $.storageAccountName = storageAccountName; return this; } @@ -163,9 +196,6 @@ public GetSharePlainArgs build() { if ($.name == null) { throw new MissingRequiredPropertyException("GetSharePlainArgs", "name"); } - if ($.storageAccountName == null) { - throw new MissingRequiredPropertyException("GetSharePlainArgs", "storageAccountName"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerArgs.java index ff390b66e2..d5b79f69dd 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerArgs.java @@ -48,18 +48,37 @@ public Output name() { } /** - * The name of the Storage Account where the Container exists. + * The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **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. * */ - @Import(name="storageAccountName", required=true) - private Output storageAccountName; + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; /** - * @return The name of the Storage Account where the Container exists. + * @return The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **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. * */ - public Output storageAccountName() { - return this.storageAccountName; + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. + * + */ + @Import(name="storageAccountName") + private @Nullable Output storageAccountName; + + /** + * @return The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. + * + */ + public Optional> storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } private GetStorageContainerArgs() {} @@ -67,6 +86,7 @@ private GetStorageContainerArgs() {} private GetStorageContainerArgs(GetStorageContainerArgs $) { this.metadata = $.metadata; this.name = $.name; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; } @@ -131,18 +151,43 @@ public Builder name(String name) { } /** - * @param storageAccountName The name of the Storage Account where the Container exists. + * @param storageAccountId The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **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. * * @return builder * */ - public Builder storageAccountName(Output storageAccountName) { + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + /** + * @param storageAccountName The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. + * + * @return builder + * + */ + public Builder storageAccountName(@Nullable Output storageAccountName) { $.storageAccountName = storageAccountName; return this; } /** - * @param storageAccountName The name of the Storage Account where the Container exists. + * @param storageAccountName The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. * * @return builder * @@ -155,9 +200,6 @@ public GetStorageContainerArgs build() { if ($.name == null) { throw new MissingRequiredPropertyException("GetStorageContainerArgs", "name"); } - if ($.storageAccountName == null) { - throw new MissingRequiredPropertyException("GetStorageContainerArgs", "storageAccountName"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerPlainArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerPlainArgs.java index 751f0f383c..0704332575 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerPlainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/GetStorageContainerPlainArgs.java @@ -47,18 +47,37 @@ public String name() { } /** - * The name of the Storage Account where the Container exists. + * The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **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. + * + */ + @Import(name="storageAccountId") + private @Nullable String storageAccountId; + + /** + * @return The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **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. + * + */ + public Optional storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. * */ - @Import(name="storageAccountName", required=true) - private String storageAccountName; + @Import(name="storageAccountName") + private @Nullable String storageAccountName; /** - * @return The name of the Storage Account where the Container exists. + * @return The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. * */ - public String storageAccountName() { - return this.storageAccountName; + public Optional storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } private GetStorageContainerPlainArgs() {} @@ -66,6 +85,7 @@ private GetStorageContainerPlainArgs() {} private GetStorageContainerPlainArgs(GetStorageContainerPlainArgs $) { this.metadata = $.metadata; this.name = $.name; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; } @@ -110,12 +130,25 @@ public Builder name(String name) { } /** - * @param storageAccountName The name of the Storage Account where the Container exists. + * @param storageAccountId The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(@Nullable String storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountName The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. * * @return builder * */ - public Builder storageAccountName(String storageAccountName) { + public Builder storageAccountName(@Nullable String storageAccountName) { $.storageAccountName = storageAccountName; return this; } @@ -124,9 +157,6 @@ public GetStorageContainerPlainArgs build() { if ($.name == null) { throw new MissingRequiredPropertyException("GetStorageContainerPlainArgs", "name"); } - if ($.storageAccountName == null) { - throw new MissingRequiredPropertyException("GetStorageContainerPlainArgs", "storageAccountName"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareAclAccessPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareAclAccessPolicyArgs.java index 012105d278..f7c21a6ecf 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareAclAccessPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareAclAccessPolicyArgs.java @@ -17,14 +17,14 @@ public final class ShareAclAccessPolicyArgs extends com.pulumi.resources.Resourc public static final ShareAclAccessPolicyArgs Empty = new ShareAclAccessPolicyArgs(); /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * 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. * */ @Import(name="expiry") private @Nullable Output expiry; /** - * @return The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return 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. * */ public Optional> expiry() { @@ -51,14 +51,14 @@ public Output permissions() { } /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * 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. * */ @Import(name="start") private @Nullable Output start; /** - * @return The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return 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. * */ public Optional> start() { @@ -92,7 +92,7 @@ public Builder(ShareAclAccessPolicyArgs defaults) { } /** - * @param expiry The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param expiry 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. * * @return builder * @@ -103,7 +103,7 @@ public Builder expiry(@Nullable Output expiry) { } /** - * @param expiry The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param expiry 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. * * @return builder * @@ -138,7 +138,7 @@ public Builder permissions(String permissions) { } /** - * @param start The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param start 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. * * @return builder * @@ -149,7 +149,7 @@ public Builder start(@Nullable Output start) { } /** - * @param start The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @param start 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. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareState.java b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareState.java index 5142ca4535..3fc40206c8 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/inputs/ShareState.java @@ -128,14 +128,22 @@ public Optional> quota() { /** * The Resource Manager ID of this File Share. * + * @deprecated + * this property is deprecated and will be removed 5.0 and replaced by the `id` property. + * */ + @Deprecated /* this property is deprecated and will be removed 5.0 and replaced by the `id` property. */ @Import(name="resourceManagerId") private @Nullable Output resourceManagerId; /** * @return The Resource Manager ID of this File Share. * + * @deprecated + * this property is deprecated and will be removed 5.0 and replaced by the `id` property. + * */ + @Deprecated /* this property is deprecated and will be removed 5.0 and replaced by the `id` property. */ public Optional> resourceManagerId() { return Optional.ofNullable(this.resourceManagerId); } @@ -143,14 +151,41 @@ public Optional> resourceManagerId() { /** * Specifies the storage account in which to create the share. Changing this forces a new resource to be created. * + * > **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. + * + */ + @Import(name="storageAccountId") + private @Nullable Output storageAccountId; + + /** + * @return Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **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. + * */ + public Optional> storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + + /** + * 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`. + * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * + */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ @Import(name="storageAccountName") private @Nullable Output storageAccountName; /** - * @return Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * @return 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`. + * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. * */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ public Optional> storageAccountName() { return Optional.ofNullable(this.storageAccountName); } @@ -180,6 +215,7 @@ private ShareState(ShareState $) { this.name = $.name; this.quota = $.quota; this.resourceManagerId = $.resourceManagerId; + this.storageAccountId = $.storageAccountId; this.storageAccountName = $.storageAccountName; this.url = $.url; } @@ -359,7 +395,11 @@ public Builder quota(Integer quota) { * * @return builder * + * @deprecated + * this property is deprecated and will be removed 5.0 and replaced by the `id` property. + * */ + @Deprecated /* this property is deprecated and will be removed 5.0 and replaced by the `id` property. */ public Builder resourceManagerId(@Nullable Output resourceManagerId) { $.resourceManagerId = resourceManagerId; return this; @@ -370,28 +410,65 @@ public Builder resourceManagerId(@Nullable Output resourceManagerId) { * * @return builder * + * @deprecated + * this property is deprecated and will be removed 5.0 and replaced by the `id` property. + * */ + @Deprecated /* this property is deprecated and will be removed 5.0 and replaced by the `id` property. */ public Builder resourceManagerId(String resourceManagerId) { return resourceManagerId(Output.of(resourceManagerId)); } /** - * @param storageAccountName Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * @param storageAccountId Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **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. + * + * @return builder + * + */ + public Builder storageAccountId(@Nullable Output storageAccountId) { + $.storageAccountId = storageAccountId; + return this; + } + + /** + * @param storageAccountId Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **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. * * @return builder * */ + public Builder storageAccountId(String storageAccountId) { + return storageAccountId(Output.of(storageAccountId)); + } + + /** + * @param storageAccountName 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`. + * + * @return builder + * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * + */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ public Builder storageAccountName(@Nullable Output storageAccountName) { $.storageAccountName = storageAccountName; return this; } /** - * @param storageAccountName Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * @param storageAccountName 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`. * * @return builder * + * @deprecated + * This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. + * */ + @Deprecated /* This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider. */ public Builder storageAccountName(String storageAccountName) { return storageAccountName(Output.of(storageAccountName)); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesHourMetrics.java b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesHourMetrics.java index b3030e45f2..2a06b1f52b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesHourMetrics.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesHourMetrics.java @@ -14,11 +14,6 @@ @CustomType public final class AccountQueuePropertiesHourMetrics { - /** - * @return Indicates whether hour metrics are enabled for the Queue service. - * - */ - private Boolean enabled; /** * @return Indicates whether metrics should generate summary statistics for called API operations. * @@ -36,13 +31,6 @@ public final class AccountQueuePropertiesHourMetrics { private String version; private AccountQueuePropertiesHourMetrics() {} - /** - * @return Indicates whether hour metrics are enabled for the Queue service. - * - */ - public Boolean enabled() { - return this.enabled; - } /** * @return Indicates whether metrics should generate summary statistics for called API operations. * @@ -74,27 +62,17 @@ public static Builder builder(AccountQueuePropertiesHourMetrics defaults) { } @CustomType.Builder public static final class Builder { - private Boolean enabled; private @Nullable Boolean includeApis; private @Nullable Integer retentionPolicyDays; private String version; public Builder() {} public Builder(AccountQueuePropertiesHourMetrics defaults) { Objects.requireNonNull(defaults); - this.enabled = defaults.enabled; this.includeApis = defaults.includeApis; this.retentionPolicyDays = defaults.retentionPolicyDays; this.version = defaults.version; } - @CustomType.Setter - public Builder enabled(Boolean enabled) { - if (enabled == null) { - throw new MissingRequiredPropertyException("AccountQueuePropertiesHourMetrics", "enabled"); - } - this.enabled = enabled; - return this; - } @CustomType.Setter public Builder includeApis(@Nullable Boolean includeApis) { @@ -117,7 +95,6 @@ public Builder version(String version) { } public AccountQueuePropertiesHourMetrics build() { final var _resultValue = new AccountQueuePropertiesHourMetrics(); - _resultValue.enabled = enabled; _resultValue.includeApis = includeApis; _resultValue.retentionPolicyDays = retentionPolicyDays; _resultValue.version = version; diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesMinuteMetrics.java b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesMinuteMetrics.java index 949ea85a8e..8f9c754392 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesMinuteMetrics.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/AccountQueuePropertiesMinuteMetrics.java @@ -14,11 +14,6 @@ @CustomType public final class AccountQueuePropertiesMinuteMetrics { - /** - * @return Indicates whether minute metrics are enabled for the Queue service. - * - */ - private Boolean enabled; /** * @return Indicates whether metrics should generate summary statistics for called API operations. * @@ -36,13 +31,6 @@ public final class AccountQueuePropertiesMinuteMetrics { private String version; private AccountQueuePropertiesMinuteMetrics() {} - /** - * @return Indicates whether minute metrics are enabled for the Queue service. - * - */ - public Boolean enabled() { - return this.enabled; - } /** * @return Indicates whether metrics should generate summary statistics for called API operations. * @@ -74,27 +62,17 @@ public static Builder builder(AccountQueuePropertiesMinuteMetrics defaults) { } @CustomType.Builder public static final class Builder { - private Boolean enabled; private @Nullable Boolean includeApis; private @Nullable Integer retentionPolicyDays; private String version; public Builder() {} public Builder(AccountQueuePropertiesMinuteMetrics defaults) { Objects.requireNonNull(defaults); - this.enabled = defaults.enabled; this.includeApis = defaults.includeApis; this.retentionPolicyDays = defaults.retentionPolicyDays; this.version = defaults.version; } - @CustomType.Setter - public Builder enabled(Boolean enabled) { - if (enabled == null) { - throw new MissingRequiredPropertyException("AccountQueuePropertiesMinuteMetrics", "enabled"); - } - this.enabled = enabled; - return this; - } @CustomType.Setter public Builder includeApis(@Nullable Boolean includeApis) { @@ -117,7 +95,6 @@ public Builder version(String version) { } public AccountQueuePropertiesMinuteMetrics build() { final var _resultValue = new AccountQueuePropertiesMinuteMetrics(); - _resultValue.enabled = enabled; _resultValue.includeApis = includeApis; _resultValue.retentionPolicyDays = retentionPolicyDays; _resultValue.version = version; diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareAclAccessPolicy.java b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareAclAccessPolicy.java index dcc7079afa..4e94a0d61c 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareAclAccessPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareAclAccessPolicy.java @@ -11,7 +11,7 @@ @CustomType public final class GetShareAclAccessPolicy { /** - * @return The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid until. * */ private String expiry; @@ -21,14 +21,14 @@ public final class GetShareAclAccessPolicy { */ private String permissions; /** - * @return The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid from. * */ private String start; private GetShareAclAccessPolicy() {} /** - * @return The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid until. * */ public String expiry() { @@ -42,7 +42,7 @@ public String permissions() { return this.permissions; } /** - * @return The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return The time at which this Access Policy is valid from. * */ public String start() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareResult.java b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareResult.java index 8430139696..5fe89d668a 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareResult.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetShareResult.java @@ -11,6 +11,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import javax.annotation.Nullable; @CustomType @@ -36,8 +37,15 @@ public final class GetShareResult { * */ private Integer quota; + /** + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + * + */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ private String resourceManagerId; - private String storageAccountName; + private @Nullable String storageAccountId; + private @Nullable String storageAccountName; private GetShareResult() {} /** @@ -71,11 +79,20 @@ public String name() { public Integer quota() { return this.quota; } + /** + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + * + */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ public String resourceManagerId() { return this.resourceManagerId; } - public String storageAccountName() { - return this.storageAccountName; + public Optional storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + public Optional storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } public static Builder builder() { @@ -93,7 +110,8 @@ public static final class Builder { private String name; private Integer quota; private String resourceManagerId; - private String storageAccountName; + private @Nullable String storageAccountId; + private @Nullable String storageAccountName; public Builder() {} public Builder(GetShareResult defaults) { Objects.requireNonNull(defaults); @@ -103,6 +121,7 @@ public Builder(GetShareResult defaults) { this.name = defaults.name; this.quota = defaults.quota; this.resourceManagerId = defaults.resourceManagerId; + this.storageAccountId = defaults.storageAccountId; this.storageAccountName = defaults.storageAccountName; } @@ -156,10 +175,14 @@ public Builder resourceManagerId(String resourceManagerId) { return this; } @CustomType.Setter - public Builder storageAccountName(String storageAccountName) { - if (storageAccountName == null) { - throw new MissingRequiredPropertyException("GetShareResult", "storageAccountName"); - } + public Builder storageAccountId(@Nullable String storageAccountId) { + + this.storageAccountId = storageAccountId; + return this; + } + @CustomType.Setter + public Builder storageAccountName(@Nullable String storageAccountName) { + this.storageAccountName = storageAccountName; return this; } @@ -171,6 +194,7 @@ public GetShareResult build() { _resultValue.name = name; _resultValue.quota = quota; _resultValue.resourceManagerId = resourceManagerId; + _resultValue.storageAccountId = storageAccountId; _resultValue.storageAccountName = storageAccountName; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetStorageContainerResult.java b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetStorageContainerResult.java index f96bf25027..cb25c20e71 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetStorageContainerResult.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/GetStorageContainerResult.java @@ -9,6 +9,8 @@ import java.lang.String; import java.util.Map; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; @CustomType public final class GetStorageContainerResult { @@ -49,11 +51,14 @@ public final class GetStorageContainerResult { private Map metadata; private String name; /** - * @return The Resource Manager ID of this Storage Container. + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. * */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ private String resourceManagerId; - private String storageAccountName; + private @Nullable String storageAccountId; + private @Nullable String storageAccountName; private GetStorageContainerResult() {} /** @@ -109,14 +114,19 @@ public String name() { return this.name; } /** - * @return The Resource Manager ID of this Storage Container. + * @deprecated + * this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. * */ + @Deprecated /* this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ public String resourceManagerId() { return this.resourceManagerId; } - public String storageAccountName() { - return this.storageAccountName; + public Optional storageAccountId() { + return Optional.ofNullable(this.storageAccountId); + } + public Optional storageAccountName() { + return Optional.ofNullable(this.storageAccountName); } public static Builder builder() { @@ -137,7 +147,8 @@ public static final class Builder { private Map metadata; private String name; private String resourceManagerId; - private String storageAccountName; + private @Nullable String storageAccountId; + private @Nullable String storageAccountName; public Builder() {} public Builder(GetStorageContainerResult defaults) { Objects.requireNonNull(defaults); @@ -150,6 +161,7 @@ public Builder(GetStorageContainerResult defaults) { this.metadata = defaults.metadata; this.name = defaults.name; this.resourceManagerId = defaults.resourceManagerId; + this.storageAccountId = defaults.storageAccountId; this.storageAccountName = defaults.storageAccountName; } @@ -226,10 +238,14 @@ public Builder resourceManagerId(String resourceManagerId) { return this; } @CustomType.Setter - public Builder storageAccountName(String storageAccountName) { - if (storageAccountName == null) { - throw new MissingRequiredPropertyException("GetStorageContainerResult", "storageAccountName"); - } + public Builder storageAccountId(@Nullable String storageAccountId) { + + this.storageAccountId = storageAccountId; + return this; + } + @CustomType.Setter + public Builder storageAccountName(@Nullable String storageAccountName) { + this.storageAccountName = storageAccountName; return this; } @@ -244,6 +260,7 @@ public GetStorageContainerResult build() { _resultValue.metadata = metadata; _resultValue.name = name; _resultValue.resourceManagerId = resourceManagerId; + _resultValue.storageAccountId = storageAccountId; _resultValue.storageAccountName = storageAccountName; return _resultValue; } diff --git a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/ShareAclAccessPolicy.java b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/ShareAclAccessPolicy.java index ff585f420f..24e314bef3 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/ShareAclAccessPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/azure/storage/outputs/ShareAclAccessPolicy.java @@ -13,7 +13,7 @@ @CustomType public final class ShareAclAccessPolicy { /** - * @return The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return 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. * */ private @Nullable String expiry; @@ -25,14 +25,14 @@ public final class ShareAclAccessPolicy { */ private String permissions; /** - * @return The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return 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. * */ private @Nullable String start; private ShareAclAccessPolicy() {} /** - * @return The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return 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. * */ public Optional expiry() { @@ -48,7 +48,7 @@ public String permissions() { return this.permissions; } /** - * @return The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * @return 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. * */ public Optional start() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/trustedsigning/Account.java b/sdk/java/src/main/java/com/pulumi/azure/trustedsigning/Account.java index c80f22f544..2e16fab977 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/trustedsigning/Account.java +++ b/sdk/java/src/main/java/com/pulumi/azure/trustedsigning/Account.java @@ -21,6 +21,46 @@ * ## Example Usage * * <!--Start PulumiCodeChooser --> + *
+ * {@code
+ * package generated_program;
+ * 
+ * import com.pulumi.Context;
+ * import com.pulumi.Pulumi;
+ * import com.pulumi.core.Output;
+ * import com.pulumi.azure.core.ResourceGroup;
+ * import com.pulumi.azure.core.ResourceGroupArgs;
+ * import com.pulumi.azure.trustedsigning.Account;
+ * import com.pulumi.azure.trustedsigning.AccountArgs;
+ * import java.util.List;
+ * import java.util.ArrayList;
+ * import java.util.Map;
+ * import java.io.File;
+ * import java.nio.file.Files;
+ * import java.nio.file.Paths;
+ * 
+ * public class App {
+ *     public static void main(String[] args) {
+ *         Pulumi.run(App::stack);
+ *     }
+ * 
+ *     public static void stack(Context ctx) {
+ *         var example = new ResourceGroup("example", ResourceGroupArgs.builder()
+ *             .name("example")
+ *             .location("West Europe")
+ *             .build());
+ * 
+ *         var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
+ *             .name("example-account")
+ *             .resourceGroupName(example.name())
+ *             .location("West Europe")
+ *             .skuName("Basic")
+ *             .build());
+ * 
+ *     }
+ * }
+ * }
+ * 
* <!--End PulumiCodeChooser --> * * ## Import diff --git a/sdk/nodejs/containerservice/kubernetesCluster.ts b/sdk/nodejs/containerservice/kubernetesCluster.ts index 640994f64a..0c36f5afff 100644 --- a/sdk/nodejs/containerservice/kubernetesCluster.ts +++ b/sdk/nodejs/containerservice/kubernetesCluster.ts @@ -119,7 +119,7 @@ export class KubernetesCluster extends pulumi.CustomResource { */ public /*out*/ readonly currentKubernetesVersion!: pulumi.Output; /** - * A `defaultNodePool` block as defined below. + * Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. */ public readonly defaultNodePool!: pulumi.Output; /** @@ -613,7 +613,7 @@ export interface KubernetesClusterState { */ currentKubernetesVersion?: pulumi.Input; /** - * A `defaultNodePool` block as defined below. + * Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. */ defaultNodePool?: pulumi.Input; /** @@ -945,7 +945,7 @@ export interface KubernetesClusterArgs { */ costAnalysisEnabled?: pulumi.Input; /** - * A `defaultNodePool` block as defined below. + * Specifies configuration for "System" mode node pool. A `defaultNodePool` block as defined below. */ defaultNodePool: pulumi.Input; /** diff --git a/sdk/nodejs/cosmosdb/index.ts b/sdk/nodejs/cosmosdb/index.ts index d98b04fdc0..27e2e30434 100644 --- a/sdk/nodejs/cosmosdb/index.ts +++ b/sdk/nodejs/cosmosdb/index.ts @@ -65,6 +65,11 @@ export type GremlinGraph = import("./gremlinGraph").GremlinGraph; export const GremlinGraph: typeof import("./gremlinGraph").GremlinGraph = null as any; utilities.lazyLoad(exports, ["GremlinGraph"], () => require("./gremlinGraph")); +export { MongoClusterArgs, MongoClusterState } from "./mongoCluster"; +export type MongoCluster = import("./mongoCluster").MongoCluster; +export const MongoCluster: typeof import("./mongoCluster").MongoCluster = null as any; +utilities.lazyLoad(exports, ["MongoCluster"], () => require("./mongoCluster")); + export { MongoCollectionArgs, MongoCollectionState } from "./mongoCollection"; export type MongoCollection = import("./mongoCollection").MongoCollection; export const MongoCollection: typeof import("./mongoCollection").MongoCollection = null as any; @@ -175,6 +180,8 @@ const _module = { return new GremlinDatabase(name, undefined, { urn }) case "azure:cosmosdb/gremlinGraph:GremlinGraph": return new GremlinGraph(name, undefined, { urn }) + case "azure:cosmosdb/mongoCluster:MongoCluster": + return new MongoCluster(name, undefined, { urn }) case "azure:cosmosdb/mongoCollection:MongoCollection": return new MongoCollection(name, undefined, { urn }) case "azure:cosmosdb/mongoDatabase:MongoDatabase": @@ -223,6 +230,7 @@ pulumi.runtime.registerResourceModule("azure", "cosmosdb/cassandraKeyspace", _mo pulumi.runtime.registerResourceModule("azure", "cosmosdb/cassandraTable", _module) pulumi.runtime.registerResourceModule("azure", "cosmosdb/gremlinDatabase", _module) pulumi.runtime.registerResourceModule("azure", "cosmosdb/gremlinGraph", _module) +pulumi.runtime.registerResourceModule("azure", "cosmosdb/mongoCluster", _module) pulumi.runtime.registerResourceModule("azure", "cosmosdb/mongoCollection", _module) pulumi.runtime.registerResourceModule("azure", "cosmosdb/mongoDatabase", _module) pulumi.runtime.registerResourceModule("azure", "cosmosdb/mongoRoleDefinition", _module) diff --git a/sdk/nodejs/cosmosdb/mongoCluster.ts b/sdk/nodejs/cosmosdb/mongoCluster.ts new file mode 100644 index 0000000000..7b299491dc --- /dev/null +++ b/sdk/nodejs/cosmosdb/mongoCluster.ts @@ -0,0 +1,368 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Manages a MongoDB Cluster using vCore Architecture. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-rg", + * location: "East US", + * }); + * const exampleMongoCluster = new azure.cosmosdb.MongoCluster("example", { + * name: "example-mc", + * resourceGroupName: example.name, + * location: example.location, + * administratorUsername: "adminTerraform", + * administratorPassword: "QAZwsx123", + * shardCount: 1, + * computeTier: "Free", + * highAvailabilityMode: "Disabled", + * storageSizeInGb: 32, + * }); + * ``` + * + * ### Preview Feature GeoReplicas) + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-rg", + * location: "East US", + * }); + * const exampleMongoCluster = new azure.cosmosdb.MongoCluster("example", { + * name: "example-mc", + * resourceGroupName: example.name, + * location: example.location, + * administratorUsername: "adminTerraform", + * administratorPassword: "QAZwsx123", + * shardCount: 1, + * computeTier: "M30", + * highAvailabilityMode: "ZoneRedundantPreferred", + * storageSizeInGb: 64, + * previewFeatures: ["GeoReplicas"], + * }); + * const exampleGeoReplica = new azure.cosmosdb.MongoCluster("example_geo_replica", { + * 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 + * ``` + */ +export class MongoCluster extends pulumi.CustomResource { + /** + * Get an existing MongoCluster resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: MongoClusterState, opts?: pulumi.CustomResourceOptions): MongoCluster { + return new MongoCluster(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:cosmosdb/mongoCluster:MongoCluster'; + + /** + * Returns true if the given object is an instance of MongoCluster. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is MongoCluster { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === MongoCluster.__pulumiType; + } + + /** + * The Password associated with the `administratorUsername` for the MongoDB Cluster. + */ + public readonly administratorPassword!: pulumi.Output; + /** + * The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + */ + public readonly administratorUsername!: pulumi.Output; + /** + * The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + */ + public readonly computeTier!: pulumi.Output; + /** + * 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 `previewFeatures` is set. + */ + public readonly createMode!: pulumi.Output; + /** + * The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + */ + public readonly highAvailabilityMode!: pulumi.Output; + /** + * The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + */ + public readonly location!: pulumi.Output; + /** + * The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + */ + public readonly name!: pulumi.Output; + /** + * The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + */ + public readonly previewFeatures!: pulumi.Output; + /** + * The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + */ + public readonly publicNetworkAccess!: pulumi.Output; + /** + * The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + */ + public readonly resourceGroupName!: pulumi.Output; + /** + * The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + */ + public readonly shardCount!: pulumi.Output; + /** + * The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + */ + public readonly sourceLocation!: pulumi.Output; + /** + * The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + */ + public readonly sourceServerId!: pulumi.Output; + /** + * The size of the data disk space for the MongoDB Cluster. + */ + public readonly storageSizeInGb!: pulumi.Output; + /** + * A mapping of tags to assign to the MongoDB Cluster. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + */ + public readonly version!: pulumi.Output; + + /** + * Create a MongoCluster resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: MongoClusterArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MongoClusterArgs | MongoClusterState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as MongoClusterState | undefined; + resourceInputs["administratorPassword"] = state ? state.administratorPassword : undefined; + resourceInputs["administratorUsername"] = state ? state.administratorUsername : undefined; + resourceInputs["computeTier"] = state ? state.computeTier : undefined; + resourceInputs["createMode"] = state ? state.createMode : undefined; + resourceInputs["highAvailabilityMode"] = state ? state.highAvailabilityMode : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["previewFeatures"] = state ? state.previewFeatures : undefined; + resourceInputs["publicNetworkAccess"] = state ? state.publicNetworkAccess : undefined; + resourceInputs["resourceGroupName"] = state ? state.resourceGroupName : undefined; + resourceInputs["shardCount"] = state ? state.shardCount : undefined; + resourceInputs["sourceLocation"] = state ? state.sourceLocation : undefined; + resourceInputs["sourceServerId"] = state ? state.sourceServerId : undefined; + resourceInputs["storageSizeInGb"] = state ? state.storageSizeInGb : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["version"] = state ? state.version : undefined; + } else { + const args = argsOrState as MongoClusterArgs | undefined; + if ((!args || args.resourceGroupName === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceGroupName'"); + } + resourceInputs["administratorPassword"] = args?.administratorPassword ? pulumi.secret(args.administratorPassword) : undefined; + resourceInputs["administratorUsername"] = args ? args.administratorUsername : undefined; + resourceInputs["computeTier"] = args ? args.computeTier : undefined; + resourceInputs["createMode"] = args ? args.createMode : undefined; + resourceInputs["highAvailabilityMode"] = args ? args.highAvailabilityMode : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["previewFeatures"] = args ? args.previewFeatures : undefined; + resourceInputs["publicNetworkAccess"] = args ? args.publicNetworkAccess : undefined; + resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined; + resourceInputs["shardCount"] = args ? args.shardCount : undefined; + resourceInputs["sourceLocation"] = args ? args.sourceLocation : undefined; + resourceInputs["sourceServerId"] = args ? args.sourceServerId : undefined; + resourceInputs["storageSizeInGb"] = args ? args.storageSizeInGb : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["version"] = args ? args.version : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["administratorPassword"] }; + opts = pulumi.mergeOptions(opts, secretOpts); + super(MongoCluster.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering MongoCluster resources. + */ +export interface MongoClusterState { + /** + * The Password associated with the `administratorUsername` for the MongoDB Cluster. + */ + administratorPassword?: pulumi.Input; + /** + * The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + */ + administratorUsername?: pulumi.Input; + /** + * The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + */ + computeTier?: pulumi.Input; + /** + * 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 `previewFeatures` is set. + */ + createMode?: pulumi.Input; + /** + * The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + */ + highAvailabilityMode?: pulumi.Input; + /** + * The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + */ + previewFeatures?: pulumi.Input[]>; + /** + * The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + */ + publicNetworkAccess?: pulumi.Input; + /** + * The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + */ + resourceGroupName?: pulumi.Input; + /** + * The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + */ + shardCount?: pulumi.Input; + /** + * The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + */ + sourceLocation?: pulumi.Input; + /** + * The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + */ + sourceServerId?: pulumi.Input; + /** + * The size of the data disk space for the MongoDB Cluster. + */ + storageSizeInGb?: pulumi.Input; + /** + * A mapping of tags to assign to the MongoDB Cluster. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + */ + version?: pulumi.Input; +} + +/** + * The set of arguments for constructing a MongoCluster resource. + */ +export interface MongoClusterArgs { + /** + * The Password associated with the `administratorUsername` for the MongoDB Cluster. + */ + administratorPassword?: pulumi.Input; + /** + * The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + */ + administratorUsername?: pulumi.Input; + /** + * The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + */ + computeTier?: pulumi.Input; + /** + * 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 `previewFeatures` is set. + */ + createMode?: pulumi.Input; + /** + * The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + */ + highAvailabilityMode?: pulumi.Input; + /** + * The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + */ + previewFeatures?: pulumi.Input[]>; + /** + * The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + */ + publicNetworkAccess?: pulumi.Input; + /** + * The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + */ + resourceGroupName: pulumi.Input; + /** + * The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + */ + shardCount?: pulumi.Input; + /** + * The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + */ + sourceLocation?: pulumi.Input; + /** + * The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + */ + sourceServerId?: pulumi.Input; + /** + * The size of the data disk space for the MongoDB Cluster. + */ + storageSizeInGb?: pulumi.Input; + /** + * A mapping of tags to assign to the MongoDB Cluster. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + */ + version?: pulumi.Input; +} diff --git a/sdk/nodejs/dashboard/grafanaManagedPrivateEndpoint.ts b/sdk/nodejs/dashboard/grafanaManagedPrivateEndpoint.ts new file mode 100644 index 0000000000..7ec6cb92c3 --- /dev/null +++ b/sdk/nodejs/dashboard/grafanaManagedPrivateEndpoint.ts @@ -0,0 +1,234 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * 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 + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-resources", + * location: "Canada Central", + * }); + * const exampleWorkspace = new azure.monitoring.Workspace("example", { + * name: "example-mamw", + * resourceGroupName: example.name, + * location: example.location, + * publicNetworkAccessEnabled: false, + * }); + * const exampleGrafana = new azure.dashboard.Grafana("example", { + * name: "example-dg", + * resourceGroupName: example.name, + * location: example.location, + * grafanaMajorVersion: "10", + * publicNetworkAccessEnabled: false, + * azureMonitorWorkspaceIntegrations: [{ + * resourceId: exampleWorkspace.id, + * }], + * }); + * const exampleGrafanaManagedPrivateEndpoint = new azure.dashboard.GrafanaManagedPrivateEndpoint("example", { + * grafanaId: exampleGrafana.id, + * name: "example-mpe", + * location: exampleGrafana.location, + * privateLinkResourceId: exampleWorkspace.id, + * groupIds: ["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 + * ``` + */ +export class GrafanaManagedPrivateEndpoint extends pulumi.CustomResource { + /** + * Get an existing GrafanaManagedPrivateEndpoint resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: GrafanaManagedPrivateEndpointState, opts?: pulumi.CustomResourceOptions): GrafanaManagedPrivateEndpoint { + return new GrafanaManagedPrivateEndpoint(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint'; + + /** + * Returns true if the given object is an instance of GrafanaManagedPrivateEndpoint. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is GrafanaManagedPrivateEndpoint { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GrafanaManagedPrivateEndpoint.__pulumiType; + } + + /** + * The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + */ + public readonly grafanaId!: pulumi.Output; + /** + * 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 readonly groupIds!: pulumi.Output; + /** + * 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. + */ + public readonly location!: pulumi.Output; + /** + * 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. + */ + public readonly name!: pulumi.Output; + /** + * 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. + */ + public readonly privateLinkResourceId!: pulumi.Output; + /** + * The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + */ + public readonly privateLinkResourceRegion!: pulumi.Output; + /** + * A message to provide in the request which will be seen by approvers. + */ + public readonly requestMessage!: pulumi.Output; + /** + * A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + + /** + * Create a GrafanaManagedPrivateEndpoint resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: GrafanaManagedPrivateEndpointArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GrafanaManagedPrivateEndpointArgs | GrafanaManagedPrivateEndpointState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as GrafanaManagedPrivateEndpointState | undefined; + resourceInputs["grafanaId"] = state ? state.grafanaId : undefined; + resourceInputs["groupIds"] = state ? state.groupIds : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["privateLinkResourceId"] = state ? state.privateLinkResourceId : undefined; + resourceInputs["privateLinkResourceRegion"] = state ? state.privateLinkResourceRegion : undefined; + resourceInputs["requestMessage"] = state ? state.requestMessage : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + } else { + const args = argsOrState as GrafanaManagedPrivateEndpointArgs | undefined; + if ((!args || args.grafanaId === undefined) && !opts.urn) { + throw new Error("Missing required property 'grafanaId'"); + } + if ((!args || args.privateLinkResourceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'privateLinkResourceId'"); + } + resourceInputs["grafanaId"] = args ? args.grafanaId : undefined; + resourceInputs["groupIds"] = args ? args.groupIds : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["privateLinkResourceId"] = args ? args.privateLinkResourceId : undefined; + resourceInputs["privateLinkResourceRegion"] = args ? args.privateLinkResourceRegion : undefined; + resourceInputs["requestMessage"] = args ? args.requestMessage : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(GrafanaManagedPrivateEndpoint.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GrafanaManagedPrivateEndpoint resources. + */ +export interface GrafanaManagedPrivateEndpointState { + /** + * The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + */ + grafanaId?: pulumi.Input; + /** + * 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. + */ + groupIds?: pulumi.Input[]>; + /** + * 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. + */ + location?: pulumi.Input; + /** + * 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. + */ + name?: pulumi.Input; + /** + * 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. + */ + privateLinkResourceId?: pulumi.Input; + /** + * The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + */ + privateLinkResourceRegion?: pulumi.Input; + /** + * A message to provide in the request which will be seen by approvers. + */ + requestMessage?: pulumi.Input; + /** + * A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a GrafanaManagedPrivateEndpoint resource. + */ +export interface GrafanaManagedPrivateEndpointArgs { + /** + * The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + */ + grafanaId: pulumi.Input; + /** + * 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. + */ + groupIds?: pulumi.Input[]>; + /** + * 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. + */ + location?: pulumi.Input; + /** + * 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. + */ + name?: pulumi.Input; + /** + * 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. + */ + privateLinkResourceId: pulumi.Input; + /** + * The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + */ + privateLinkResourceRegion?: pulumi.Input; + /** + * A message to provide in the request which will be seen by approvers. + */ + requestMessage?: pulumi.Input; + /** + * A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/dashboard/index.ts b/sdk/nodejs/dashboard/index.ts index 5f05d60a89..c1c2e92bc7 100644 --- a/sdk/nodejs/dashboard/index.ts +++ b/sdk/nodejs/dashboard/index.ts @@ -20,6 +20,11 @@ export type Grafana = import("./grafana").Grafana; export const Grafana: typeof import("./grafana").Grafana = null as any; utilities.lazyLoad(exports, ["Grafana"], () => require("./grafana")); +export { GrafanaManagedPrivateEndpointArgs, GrafanaManagedPrivateEndpointState } from "./grafanaManagedPrivateEndpoint"; +export type GrafanaManagedPrivateEndpoint = import("./grafanaManagedPrivateEndpoint").GrafanaManagedPrivateEndpoint; +export const GrafanaManagedPrivateEndpoint: typeof import("./grafanaManagedPrivateEndpoint").GrafanaManagedPrivateEndpoint = null as any; +utilities.lazyLoad(exports, ["GrafanaManagedPrivateEndpoint"], () => require("./grafanaManagedPrivateEndpoint")); + const _module = { version: utilities.getVersion(), @@ -27,9 +32,12 @@ const _module = { switch (type) { case "azure:dashboard/grafana:Grafana": return new Grafana(name, undefined, { urn }) + case "azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint": + return new GrafanaManagedPrivateEndpoint(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } }, }; pulumi.runtime.registerResourceModule("azure", "dashboard/grafana", _module) +pulumi.runtime.registerResourceModule("azure", "dashboard/grafanaManagedPrivateEndpoint", _module) diff --git a/sdk/nodejs/dataprotection/backupInstanceMysqlFlexibleServer.ts b/sdk/nodejs/dataprotection/backupInstanceMysqlFlexibleServer.ts new file mode 100644 index 0000000000..1e77cff8fa --- /dev/null +++ b/sdk/nodejs/dataprotection/backupInstanceMysqlFlexibleServer.ts @@ -0,0 +1,223 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Manages a Backup Instance to back up MySQL Flexible Server. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-resources", + * location: "West Europe", + * }); + * const exampleFlexibleServer = new azure.mysql.FlexibleServer("example", { + * name: "example-mysqlfs", + * resourceGroupName: example.name, + * location: example.location, + * administratorLogin: "adminTerraform", + * administratorPassword: "QAZwsx123", + * version: "8.0.21", + * skuName: "B_Standard_B1s", + * zone: "1", + * }); + * const exampleBackupVault = new azure.dataprotection.BackupVault("example", { + * name: "example-backupvault", + * resourceGroupName: example.name, + * location: example.location, + * datastoreType: "VaultStore", + * redundancy: "LocallyRedundant", + * softDelete: "Off", + * identity: { + * type: "SystemAssigned", + * }, + * }); + * const exampleAssignment = new azure.authorization.Assignment("example", { + * scope: example.id, + * roleDefinitionName: "Reader", + * principalId: exampleBackupVault.identity.apply(identity => identity?.principalId), + * }); + * const example2 = new azure.authorization.Assignment("example2", { + * scope: exampleFlexibleServer.id, + * roleDefinitionName: "MySQL Backup And Export Operator", + * principalId: exampleBackupVault.identity.apply(identity => identity?.principalId), + * }); + * const exampleBackupPolicyMysqlFlexibleServer = new azure.dataprotection.BackupPolicyMysqlFlexibleServer("example", { + * name: "example-dp", + * vaultId: exampleBackupVault.id, + * backupRepeatingTimeIntervals: ["R/2021-05-23T02:30:00+00:00/P1W"], + * defaultRetentionRule: { + * lifeCycles: [{ + * duration: "P4M", + * dataStoreType: "VaultStore", + * }], + * }, + * }, { + * dependsOn: [ + * exampleAssignment, + * example2, + * ], + * }); + * const exampleBackupInstanceMysqlFlexibleServer = new azure.dataprotection.BackupInstanceMysqlFlexibleServer("example", { + * 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 + * ``` + */ +export class BackupInstanceMysqlFlexibleServer extends pulumi.CustomResource { + /** + * Get an existing BackupInstanceMysqlFlexibleServer resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: BackupInstanceMysqlFlexibleServerState, opts?: pulumi.CustomResourceOptions): BackupInstanceMysqlFlexibleServer { + return new BackupInstanceMysqlFlexibleServer(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer'; + + /** + * Returns true if the given object is an instance of BackupInstanceMysqlFlexibleServer. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is BackupInstanceMysqlFlexibleServer { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === BackupInstanceMysqlFlexibleServer.__pulumiType; + } + + /** + * The ID of the Backup Policy. + */ + public readonly backupPolicyId!: pulumi.Output; + /** + * The location of the source database. Changing this forces a new resource to be created. + */ + public readonly location!: pulumi.Output; + /** + * Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + */ + public readonly name!: pulumi.Output; + /** + * The ID of the source server. Changing this forces a new resource to be created. + */ + public readonly serverId!: pulumi.Output; + /** + * 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. + */ + public readonly vaultId!: pulumi.Output; + + /** + * Create a BackupInstanceMysqlFlexibleServer resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: BackupInstanceMysqlFlexibleServerArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: BackupInstanceMysqlFlexibleServerArgs | BackupInstanceMysqlFlexibleServerState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as BackupInstanceMysqlFlexibleServerState | undefined; + resourceInputs["backupPolicyId"] = state ? state.backupPolicyId : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["serverId"] = state ? state.serverId : undefined; + resourceInputs["vaultId"] = state ? state.vaultId : undefined; + } else { + const args = argsOrState as BackupInstanceMysqlFlexibleServerArgs | undefined; + if ((!args || args.backupPolicyId === undefined) && !opts.urn) { + throw new Error("Missing required property 'backupPolicyId'"); + } + if ((!args || args.serverId === undefined) && !opts.urn) { + throw new Error("Missing required property 'serverId'"); + } + if ((!args || args.vaultId === undefined) && !opts.urn) { + throw new Error("Missing required property 'vaultId'"); + } + resourceInputs["backupPolicyId"] = args ? args.backupPolicyId : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["serverId"] = args ? args.serverId : undefined; + resourceInputs["vaultId"] = args ? args.vaultId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(BackupInstanceMysqlFlexibleServer.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering BackupInstanceMysqlFlexibleServer resources. + */ +export interface BackupInstanceMysqlFlexibleServerState { + /** + * The ID of the Backup Policy. + */ + backupPolicyId?: pulumi.Input; + /** + * The location of the source database. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The ID of the source server. Changing this forces a new resource to be created. + */ + serverId?: pulumi.Input; + /** + * 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. + */ + vaultId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a BackupInstanceMysqlFlexibleServer resource. + */ +export interface BackupInstanceMysqlFlexibleServerArgs { + /** + * The ID of the Backup Policy. + */ + backupPolicyId: pulumi.Input; + /** + * The location of the source database. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The ID of the source server. Changing this forces a new resource to be created. + */ + serverId: pulumi.Input; + /** + * 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. + */ + vaultId: pulumi.Input; +} diff --git a/sdk/nodejs/dataprotection/index.ts b/sdk/nodejs/dataprotection/index.ts index 611d2bd445..32d8303336 100644 --- a/sdk/nodejs/dataprotection/index.ts +++ b/sdk/nodejs/dataprotection/index.ts @@ -20,6 +20,11 @@ export type BackupInstanceKubernetesCluster = import("./backupInstanceKubernetes export const BackupInstanceKubernetesCluster: typeof import("./backupInstanceKubernetesCluster").BackupInstanceKubernetesCluster = null as any; utilities.lazyLoad(exports, ["BackupInstanceKubernetesCluster"], () => require("./backupInstanceKubernetesCluster")); +export { BackupInstanceMysqlFlexibleServerArgs, BackupInstanceMysqlFlexibleServerState } from "./backupInstanceMysqlFlexibleServer"; +export type BackupInstanceMysqlFlexibleServer = import("./backupInstanceMysqlFlexibleServer").BackupInstanceMysqlFlexibleServer; +export const BackupInstanceMysqlFlexibleServer: typeof import("./backupInstanceMysqlFlexibleServer").BackupInstanceMysqlFlexibleServer = null as any; +utilities.lazyLoad(exports, ["BackupInstanceMysqlFlexibleServer"], () => require("./backupInstanceMysqlFlexibleServer")); + export { BackupInstancePostgresqlArgs, BackupInstancePostgresqlState } from "./backupInstancePostgresql"; export type BackupInstancePostgresql = import("./backupInstancePostgresql").BackupInstancePostgresql; export const BackupInstancePostgresql: typeof import("./backupInstancePostgresql").BackupInstancePostgresql = null as any; @@ -86,6 +91,8 @@ const _module = { return new BackupInstanceDisk(name, undefined, { urn }) case "azure:dataprotection/backupInstanceKubernetesCluster:BackupInstanceKubernetesCluster": return new BackupInstanceKubernetesCluster(name, undefined, { urn }) + case "azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer": + return new BackupInstanceMysqlFlexibleServer(name, undefined, { urn }) case "azure:dataprotection/backupInstancePostgresql:BackupInstancePostgresql": return new BackupInstancePostgresql(name, undefined, { urn }) case "azure:dataprotection/backupInstancePostgresqlFlexibleServer:BackupInstancePostgresqlFlexibleServer": @@ -114,6 +121,7 @@ const _module = { pulumi.runtime.registerResourceModule("azure", "dataprotection/backupInstanceBlogStorage", _module) pulumi.runtime.registerResourceModule("azure", "dataprotection/backupInstanceDisk", _module) pulumi.runtime.registerResourceModule("azure", "dataprotection/backupInstanceKubernetesCluster", _module) +pulumi.runtime.registerResourceModule("azure", "dataprotection/backupInstanceMysqlFlexibleServer", _module) pulumi.runtime.registerResourceModule("azure", "dataprotection/backupInstancePostgresql", _module) pulumi.runtime.registerResourceModule("azure", "dataprotection/backupInstancePostgresqlFlexibleServer", _module) pulumi.runtime.registerResourceModule("azure", "dataprotection/backupPolicyBlobStorage", _module) diff --git a/sdk/nodejs/dynatrace/index.ts b/sdk/nodejs/dynatrace/index.ts new file mode 100644 index 0000000000..94ad4418c6 --- /dev/null +++ b/sdk/nodejs/dynatrace/index.ts @@ -0,0 +1,25 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +// Export members: +export { MonitorArgs, MonitorState } from "./monitor"; +export type Monitor = import("./monitor").Monitor; +export const Monitor: typeof import("./monitor").Monitor = null as any; +utilities.lazyLoad(exports, ["Monitor"], () => require("./monitor")); + + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "azure:dynatrace/monitor:Monitor": + return new Monitor(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("azure", "dynatrace/monitor", _module) diff --git a/sdk/nodejs/dynatrace/monitor.ts b/sdk/nodejs/dynatrace/monitor.ts new file mode 100644 index 0000000000..b483f0ea92 --- /dev/null +++ b/sdk/nodejs/dynatrace/monitor.ts @@ -0,0 +1,221 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * 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 + * ``` + */ +export class Monitor extends pulumi.CustomResource { + /** + * Get an existing Monitor resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: MonitorState, opts?: pulumi.CustomResourceOptions): Monitor { + return new Monitor(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:dynatrace/monitor:Monitor'; + + /** + * Returns true if the given object is an instance of Monitor. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Monitor { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Monitor.__pulumiType; + } + + /** + * The kind of managed identity assigned to this resource. A `identity` block as defined below. + */ + public readonly identity!: pulumi.Output; + /** + * The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + */ + public readonly location!: pulumi.Output; + /** + * 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`. + */ + public readonly marketplaceSubscription!: pulumi.Output; + /** + * Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + */ + public readonly monitoringEnabled!: pulumi.Output; + /** + * Name of the Dynatrace monitor. Changing this forces a new resource to be created. + */ + public readonly name!: pulumi.Output; + /** + * Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + */ + public readonly plan!: pulumi.Output; + /** + * The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + */ + public readonly resourceGroupName!: pulumi.Output; + /** + * A mapping of tags to assign to the resource. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + */ + public readonly user!: pulumi.Output; + + /** + * Create a Monitor resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: MonitorArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: MonitorArgs | MonitorState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as MonitorState | undefined; + resourceInputs["identity"] = state ? state.identity : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["marketplaceSubscription"] = state ? state.marketplaceSubscription : undefined; + resourceInputs["monitoringEnabled"] = state ? state.monitoringEnabled : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["plan"] = state ? state.plan : undefined; + resourceInputs["resourceGroupName"] = state ? state.resourceGroupName : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + resourceInputs["user"] = state ? state.user : undefined; + } else { + const args = argsOrState as MonitorArgs | undefined; + if ((!args || args.identity === undefined) && !opts.urn) { + throw new Error("Missing required property 'identity'"); + } + if ((!args || args.marketplaceSubscription === undefined) && !opts.urn) { + throw new Error("Missing required property 'marketplaceSubscription'"); + } + if ((!args || args.plan === undefined) && !opts.urn) { + throw new Error("Missing required property 'plan'"); + } + if ((!args || args.resourceGroupName === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceGroupName'"); + } + if ((!args || args.user === undefined) && !opts.urn) { + throw new Error("Missing required property 'user'"); + } + resourceInputs["identity"] = args ? args.identity : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["marketplaceSubscription"] = args ? args.marketplaceSubscription : undefined; + resourceInputs["monitoringEnabled"] = args ? args.monitoringEnabled : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["plan"] = args ? args.plan : undefined; + resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + resourceInputs["user"] = args ? args.user : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(Monitor.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Monitor resources. + */ +export interface MonitorState { + /** + * The kind of managed identity assigned to this resource. A `identity` block as defined below. + */ + identity?: pulumi.Input; + /** + * The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * 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`. + */ + marketplaceSubscription?: pulumi.Input; + /** + * Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + */ + monitoringEnabled?: pulumi.Input; + /** + * Name of the Dynatrace monitor. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + */ + plan?: pulumi.Input; + /** + * The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + */ + resourceGroupName?: pulumi.Input; + /** + * A mapping of tags to assign to the resource. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + */ + user?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Monitor resource. + */ +export interface MonitorArgs { + /** + * The kind of managed identity assigned to this resource. A `identity` block as defined below. + */ + identity: pulumi.Input; + /** + * The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * 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`. + */ + marketplaceSubscription: pulumi.Input; + /** + * Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + */ + monitoringEnabled?: pulumi.Input; + /** + * Name of the Dynatrace monitor. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + */ + plan: pulumi.Input; + /** + * The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + */ + resourceGroupName: pulumi.Input; + /** + * A mapping of tags to assign to the resource. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + */ + user: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 8f371473ea..10e23c867e 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -65,6 +65,7 @@ import * as devtest from "./devtest"; import * as digitaltwins from "./digitaltwins"; import * as dns from "./dns"; import * as domainservices from "./domainservices"; +import * as dynatrace from "./dynatrace"; import * as elasticcloud from "./elasticcloud"; import * as elasticsan from "./elasticsan"; import * as eventgrid from "./eventgrid"; @@ -199,6 +200,7 @@ export { digitaltwins, dns, domainservices, + dynatrace, elasticcloud, elasticsan, eventgrid, diff --git a/sdk/nodejs/lb/natRule.ts b/sdk/nodejs/lb/natRule.ts index 316264df1e..c78e74265b 100644 --- a/sdk/nodejs/lb/natRule.ts +++ b/sdk/nodejs/lb/natRule.ts @@ -11,6 +11,57 @@ import * as utilities from "../utilities"; * * > **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "LoadBalancerRG", + * location: "West Europe", + * }); + * const examplePublicIp = new azure.network.PublicIp("example", { + * name: "PublicIPForLB", + * location: "West US", + * resourceGroupName: example.name, + * allocationMethod: "Static", + * }); + * const exampleLoadBalancer = new azure.lb.LoadBalancer("example", { + * name: "TestLoadBalancer", + * location: "West US", + * resourceGroupName: example.name, + * frontendIpConfigurations: [{ + * name: "PublicIPAddress", + * publicIpAddressId: examplePublicIp.id, + * }], + * }); + * const exampleBackendAddressPool = new azure.lb.BackendAddressPool("example", { + * loadbalancerId: exampleLoadBalancer.id, + * name: "be", + * }); + * const exampleNatRule = new azure.lb.NatRule("example", { + * resourceGroupName: example.name, + * loadbalancerId: exampleLoadBalancer.id, + * name: "RDPAccess", + * protocol: "Tcp", + * frontendPort: 3389, + * backendPort: 3389, + * frontendIpConfigurationName: "PublicIPAddress", + * }); + * const example1 = new azure.lb.NatRule("example1", { + * 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/nodejs/mssql/managedDatabase.ts b/sdk/nodejs/mssql/managedDatabase.ts index d7113fadd9..cd235bba78 100644 --- a/sdk/nodejs/mssql/managedDatabase.ts +++ b/sdk/nodejs/mssql/managedDatabase.ts @@ -103,6 +103,10 @@ export class ManagedDatabase extends pulumi.CustomResource { * The backup retention period in days. This is how many days Point-in-Time Restore will be supported. */ public readonly shortTermRetentionDays!: pulumi.Output; + /** + * A mapping of tags to assign to the resource. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; /** * Create a ManagedDatabase resource with the given unique name, arguments, and options. @@ -122,6 +126,7 @@ export class ManagedDatabase extends pulumi.CustomResource { resourceInputs["name"] = state ? state.name : undefined; resourceInputs["pointInTimeRestore"] = state ? state.pointInTimeRestore : undefined; resourceInputs["shortTermRetentionDays"] = state ? state.shortTermRetentionDays : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; } else { const args = argsOrState as ManagedDatabaseArgs | undefined; if ((!args || args.managedInstanceId === undefined) && !opts.urn) { @@ -132,6 +137,7 @@ export class ManagedDatabase extends pulumi.CustomResource { resourceInputs["name"] = args ? args.name : undefined; resourceInputs["pointInTimeRestore"] = args ? args.pointInTimeRestore : undefined; resourceInputs["shortTermRetentionDays"] = args ? args.shortTermRetentionDays : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); const aliasOpts = { aliases: [{ type: "azure:sql/managedDatabase:ManagedDatabase" }] }; @@ -164,6 +170,10 @@ export interface ManagedDatabaseState { * The backup retention period in days. This is how many days Point-in-Time Restore will be supported. */ shortTermRetentionDays?: pulumi.Input; + /** + * A mapping of tags to assign to the resource. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; } /** @@ -190,4 +200,8 @@ export interface ManagedDatabaseArgs { * The backup retention period in days. This is how many days Point-in-Time Restore will be supported. */ shortTermRetentionDays?: pulumi.Input; + /** + * A mapping of tags to assign to the resource. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; } diff --git a/sdk/nodejs/network/getPublicIpPrefix.ts b/sdk/nodejs/network/getPublicIpPrefix.ts index 670da0631a..f1a0c61df8 100644 --- a/sdk/nodejs/network/getPublicIpPrefix.ts +++ b/sdk/nodejs/network/getPublicIpPrefix.ts @@ -70,6 +70,10 @@ export interface GetPublicIpPrefixResult { * The SKU of the Public IP Prefix. */ readonly sku: string; + /** + * The SKU Tier of the Public IP. + */ + readonly skuTier: string; /** * A mapping of tags to assigned to the resource. */ diff --git a/sdk/nodejs/network/publicIp.ts b/sdk/nodejs/network/publicIp.ts index 0df1fc21b1..cb82e438bb 100644 --- a/sdk/nodejs/network/publicIp.ts +++ b/sdk/nodejs/network/publicIp.ts @@ -86,6 +86,10 @@ export class PublicIp extends pulumi.CustomResource { * 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. */ public readonly domainNameLabel!: pulumi.Output; + /** + * 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. + */ + public readonly domainNameLabelScope!: pulumi.Output; /** * Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. */ @@ -174,6 +178,7 @@ export class PublicIp extends pulumi.CustomResource { resourceInputs["ddosProtectionMode"] = state ? state.ddosProtectionMode : undefined; resourceInputs["ddosProtectionPlanId"] = state ? state.ddosProtectionPlanId : undefined; resourceInputs["domainNameLabel"] = state ? state.domainNameLabel : undefined; + resourceInputs["domainNameLabelScope"] = state ? state.domainNameLabelScope : undefined; resourceInputs["edgeZone"] = state ? state.edgeZone : undefined; resourceInputs["fqdn"] = state ? state.fqdn : undefined; resourceInputs["idleTimeoutInMinutes"] = state ? state.idleTimeoutInMinutes : undefined; @@ -201,6 +206,7 @@ export class PublicIp extends pulumi.CustomResource { resourceInputs["ddosProtectionMode"] = args ? args.ddosProtectionMode : undefined; resourceInputs["ddosProtectionPlanId"] = args ? args.ddosProtectionPlanId : undefined; resourceInputs["domainNameLabel"] = args ? args.domainNameLabel : undefined; + resourceInputs["domainNameLabelScope"] = args ? args.domainNameLabelScope : undefined; resourceInputs["edgeZone"] = args ? args.edgeZone : undefined; resourceInputs["idleTimeoutInMinutes"] = args ? args.idleTimeoutInMinutes : undefined; resourceInputs["ipTags"] = args ? args.ipTags : undefined; @@ -246,6 +252,10 @@ export interface PublicIpState { * 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. */ domainNameLabel?: pulumi.Input; + /** + * 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. + */ + domainNameLabelScope?: pulumi.Input; /** * Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. */ @@ -342,6 +352,10 @@ export interface PublicIpArgs { * 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. */ domainNameLabel?: pulumi.Input; + /** + * 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. + */ + domainNameLabelScope?: pulumi.Input; /** * 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/nodejs/network/publicIpPrefix.ts b/sdk/nodejs/network/publicIpPrefix.ts index 1a7ff5c7a9..437c881f12 100644 --- a/sdk/nodejs/network/publicIpPrefix.ts +++ b/sdk/nodejs/network/publicIpPrefix.ts @@ -96,6 +96,10 @@ export class PublicIpPrefix extends pulumi.CustomResource { * > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. */ public readonly sku!: pulumi.Output; + /** + * 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. + */ + public readonly skuTier!: pulumi.Output; /** * A mapping of tags to assign to the resource. */ @@ -127,6 +131,7 @@ export class PublicIpPrefix extends pulumi.CustomResource { resourceInputs["prefixLength"] = state ? state.prefixLength : undefined; resourceInputs["resourceGroupName"] = state ? state.resourceGroupName : undefined; resourceInputs["sku"] = state ? state.sku : undefined; + resourceInputs["skuTier"] = state ? state.skuTier : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["zones"] = state ? state.zones : undefined; } else { @@ -140,6 +145,7 @@ export class PublicIpPrefix extends pulumi.CustomResource { resourceInputs["prefixLength"] = args ? args.prefixLength : undefined; resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined; resourceInputs["sku"] = args ? args.sku : undefined; + resourceInputs["skuTier"] = args ? args.skuTier : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["zones"] = args ? args.zones : undefined; resourceInputs["ipPrefix"] = undefined /*out*/; @@ -185,6 +191,10 @@ export interface PublicIpPrefixState { * > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. */ sku?: pulumi.Input; + /** + * 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. + */ + skuTier?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ @@ -229,6 +239,10 @@ export interface PublicIpPrefixArgs { * > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. */ sku?: pulumi.Input; + /** + * 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. + */ + skuTier?: pulumi.Input; /** * A mapping of tags to assign to the resource. */ diff --git a/sdk/nodejs/oracle/cloudVmCluster.ts b/sdk/nodejs/oracle/cloudVmCluster.ts index 72eaf63af6..09146e8aaf 100644 --- a/sdk/nodejs/oracle/cloudVmCluster.ts +++ b/sdk/nodejs/oracle/cloudVmCluster.ts @@ -151,6 +151,10 @@ export class CloudVmCluster extends pulumi.CustomResource { * The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. */ public readonly displayName!: pulumi.Output; + /** + * 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. + */ + public readonly domain!: pulumi.Output; /** * A valid Oracle Grid Infrastructure (GI) software version. */ @@ -191,6 +195,14 @@ export class CloudVmCluster extends pulumi.CustomResource { * The name of the Resource Group where the Cloud VM Cluster should exist. */ public readonly resourceGroupName!: pulumi.Output; + /** + * The TCP Single Client Access Name (SCAN) port. The default port to 1521. + */ + public readonly scanListenerPortTcp!: pulumi.Output; + /** + * The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + */ + public readonly scanListenerPortTcpSsl!: pulumi.Output; /** * If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. */ @@ -215,6 +227,10 @@ export class CloudVmCluster extends pulumi.CustomResource { * The ID of the Virtual Network associated with the Cloud VM Cluster. */ public readonly virtualNetworkId!: pulumi.Output; + /** + * 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. + */ + public readonly zoneId!: pulumi.Output; /** * Create a CloudVmCluster resource with the given unique name, arguments, and options. @@ -239,6 +255,7 @@ export class CloudVmCluster extends pulumi.CustomResource { resourceInputs["dbNodeStorageSizeInGbs"] = state ? state.dbNodeStorageSizeInGbs : undefined; resourceInputs["dbServers"] = state ? state.dbServers : undefined; resourceInputs["displayName"] = state ? state.displayName : undefined; + resourceInputs["domain"] = state ? state.domain : undefined; resourceInputs["giVersion"] = state ? state.giVersion : undefined; resourceInputs["hostname"] = state ? state.hostname : undefined; resourceInputs["hostnameActual"] = state ? state.hostnameActual : undefined; @@ -249,12 +266,15 @@ export class CloudVmCluster extends pulumi.CustomResource { resourceInputs["name"] = state ? state.name : undefined; resourceInputs["ocid"] = state ? state.ocid : undefined; resourceInputs["resourceGroupName"] = state ? state.resourceGroupName : undefined; + resourceInputs["scanListenerPortTcp"] = state ? state.scanListenerPortTcp : undefined; + resourceInputs["scanListenerPortTcpSsl"] = state ? state.scanListenerPortTcpSsl : undefined; resourceInputs["sparseDiskgroupEnabled"] = state ? state.sparseDiskgroupEnabled : undefined; resourceInputs["sshPublicKeys"] = state ? state.sshPublicKeys : undefined; resourceInputs["subnetId"] = state ? state.subnetId : undefined; resourceInputs["tags"] = state ? state.tags : undefined; resourceInputs["timeZone"] = state ? state.timeZone : undefined; resourceInputs["virtualNetworkId"] = state ? state.virtualNetworkId : undefined; + resourceInputs["zoneId"] = state ? state.zoneId : undefined; } else { const args = argsOrState as CloudVmClusterArgs | undefined; if ((!args || args.cloudExadataInfrastructureId === undefined) && !opts.urn) { @@ -300,6 +320,7 @@ export class CloudVmCluster extends pulumi.CustomResource { resourceInputs["dbNodeStorageSizeInGbs"] = args ? args.dbNodeStorageSizeInGbs : undefined; resourceInputs["dbServers"] = args ? args.dbServers : undefined; resourceInputs["displayName"] = args ? args.displayName : undefined; + resourceInputs["domain"] = args ? args.domain : undefined; resourceInputs["giVersion"] = args ? args.giVersion : undefined; resourceInputs["hostname"] = args ? args.hostname : undefined; resourceInputs["licenseModel"] = args ? args.licenseModel : undefined; @@ -308,12 +329,15 @@ export class CloudVmCluster extends pulumi.CustomResource { resourceInputs["memorySizeInGbs"] = args ? args.memorySizeInGbs : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined; + resourceInputs["scanListenerPortTcp"] = args ? args.scanListenerPortTcp : undefined; + resourceInputs["scanListenerPortTcpSsl"] = args ? args.scanListenerPortTcpSsl : undefined; resourceInputs["sparseDiskgroupEnabled"] = args ? args.sparseDiskgroupEnabled : undefined; resourceInputs["sshPublicKeys"] = args ? args.sshPublicKeys : undefined; resourceInputs["subnetId"] = args ? args.subnetId : undefined; resourceInputs["tags"] = args ? args.tags : undefined; resourceInputs["timeZone"] = args ? args.timeZone : undefined; resourceInputs["virtualNetworkId"] = args ? args.virtualNetworkId : undefined; + resourceInputs["zoneId"] = args ? args.zoneId : undefined; resourceInputs["hostnameActual"] = undefined /*out*/; resourceInputs["ocid"] = undefined /*out*/; } @@ -366,6 +390,10 @@ export interface CloudVmClusterState { * The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. */ displayName?: pulumi.Input; + /** + * 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. + */ + domain?: pulumi.Input; /** * A valid Oracle Grid Infrastructure (GI) software version. */ @@ -406,6 +434,14 @@ export interface CloudVmClusterState { * The name of the Resource Group where the Cloud VM Cluster should exist. */ resourceGroupName?: pulumi.Input; + /** + * The TCP Single Client Access Name (SCAN) port. The default port to 1521. + */ + scanListenerPortTcp?: pulumi.Input; + /** + * The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + */ + scanListenerPortTcpSsl?: pulumi.Input; /** * If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. */ @@ -430,6 +466,10 @@ export interface CloudVmClusterState { * The ID of the Virtual Network associated with the Cloud VM Cluster. */ virtualNetworkId?: pulumi.Input; + /** + * 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. + */ + zoneId?: pulumi.Input; } /** @@ -476,6 +516,10 @@ export interface CloudVmClusterArgs { * The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. */ displayName: pulumi.Input; + /** + * 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. + */ + domain?: pulumi.Input; /** * A valid Oracle Grid Infrastructure (GI) software version. */ @@ -508,6 +552,14 @@ export interface CloudVmClusterArgs { * The name of the Resource Group where the Cloud VM Cluster should exist. */ resourceGroupName: pulumi.Input; + /** + * The TCP Single Client Access Name (SCAN) port. The default port to 1521. + */ + scanListenerPortTcp?: pulumi.Input; + /** + * The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + */ + scanListenerPortTcpSsl?: pulumi.Input; /** * If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. */ @@ -532,4 +584,8 @@ export interface CloudVmClusterArgs { * The ID of the Virtual Network associated with the Cloud VM Cluster. */ virtualNetworkId: pulumi.Input; + /** + * 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. + */ + zoneId?: pulumi.Input; } diff --git a/sdk/nodejs/sentinel/alertRuleFusion.ts b/sdk/nodejs/sentinel/alertRuleFusion.ts index 9dde0a145e..0e87ccece0 100644 --- a/sdk/nodejs/sentinel/alertRuleFusion.ts +++ b/sdk/nodejs/sentinel/alertRuleFusion.ts @@ -25,20 +25,9 @@ import * as utilities from "../utilities"; * resourceGroupName: example.name, * sku: "PerGB2018", * }); - * const exampleAnalyticsSolution = new azure.operationalinsights.AnalyticsSolution("example", { - * solutionName: "SecurityInsights", - * location: example.location, - * resourceGroupName: example.name, - * workspaceResourceId: exampleAnalyticsWorkspace.id, - * workspaceName: exampleAnalyticsWorkspace.name, - * plan: { - * publisher: "Microsoft", - * product: "OMSGallery/SecurityInsights", - * }, - * }); + * const exampleLogAnalyticsWorkspaceOnboarding = new azure.sentinel.LogAnalyticsWorkspaceOnboarding("example", {workspaceId: exampleAnalyticsWorkspace.id}); * const exampleAlertRuleFusion = new azure.sentinel.AlertRuleFusion("example", { - * name: "example-fusion-alert-rule", - * logAnalyticsWorkspaceId: exampleAnalyticsSolution.workspaceResourceId, + * logAnalyticsWorkspaceId: exampleLogAnalyticsWorkspaceOnboarding.workspaceId, * alertRuleTemplateGuid: "f71aba3d-28fb-450b-b192-4e76a83015c8", * }); * ``` @@ -92,7 +81,7 @@ export class AlertRuleFusion extends pulumi.CustomResource { */ public readonly logAnalyticsWorkspaceId!: pulumi.Output; /** - * The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated the `name` is deprecated and will be removed in v5.0 version of the provider. */ public readonly name!: pulumi.Output; /** @@ -154,7 +143,7 @@ export interface AlertRuleFusionState { */ logAnalyticsWorkspaceId?: pulumi.Input; /** - * The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated the `name` is deprecated and will be removed in v5.0 version of the provider. */ name?: pulumi.Input; /** @@ -180,7 +169,7 @@ export interface AlertRuleFusionArgs { */ logAnalyticsWorkspaceId: pulumi.Input; /** - * The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. + * @deprecated the `name` is deprecated and will be removed in v5.0 version of the provider. */ name?: pulumi.Input; /** diff --git a/sdk/nodejs/stack/hciNetworkInterface.ts b/sdk/nodejs/stack/hciNetworkInterface.ts new file mode 100644 index 0000000000..a6a3bbf0f0 --- /dev/null +++ b/sdk/nodejs/stack/hciNetworkInterface.ts @@ -0,0 +1,207 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * 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 + * ``` + */ +export class HciNetworkInterface extends pulumi.CustomResource { + /** + * Get an existing HciNetworkInterface resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: HciNetworkInterfaceState, opts?: pulumi.CustomResourceOptions): HciNetworkInterface { + return new HciNetworkInterface(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:stack/hciNetworkInterface:HciNetworkInterface'; + + /** + * Returns true if the given object is an instance of HciNetworkInterface. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is HciNetworkInterface { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === HciNetworkInterface.__pulumiType; + } + + /** + * The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + public readonly customLocationId!: pulumi.Output; + /** + * 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. + */ + public readonly dnsServers!: pulumi.Output; + /** + * An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + */ + public readonly ipConfiguration!: pulumi.Output; + /** + * The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + public readonly location!: pulumi.Output; + /** + * The MAC address of the Network Interface. Changing this forces a new resource to be created. + * + * > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + */ + public readonly macAddress!: pulumi.Output; + /** + * The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + */ + public readonly name!: pulumi.Output; + /** + * The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + public readonly resourceGroupName!: pulumi.Output; + /** + * A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + + /** + * Create a HciNetworkInterface resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: HciNetworkInterfaceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: HciNetworkInterfaceArgs | HciNetworkInterfaceState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as HciNetworkInterfaceState | undefined; + resourceInputs["customLocationId"] = state ? state.customLocationId : undefined; + resourceInputs["dnsServers"] = state ? state.dnsServers : undefined; + resourceInputs["ipConfiguration"] = state ? state.ipConfiguration : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["macAddress"] = state ? state.macAddress : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["resourceGroupName"] = state ? state.resourceGroupName : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + } else { + const args = argsOrState as HciNetworkInterfaceArgs | undefined; + if ((!args || args.customLocationId === undefined) && !opts.urn) { + throw new Error("Missing required property 'customLocationId'"); + } + if ((!args || args.ipConfiguration === undefined) && !opts.urn) { + throw new Error("Missing required property 'ipConfiguration'"); + } + if ((!args || args.resourceGroupName === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceGroupName'"); + } + resourceInputs["customLocationId"] = args ? args.customLocationId : undefined; + resourceInputs["dnsServers"] = args ? args.dnsServers : undefined; + resourceInputs["ipConfiguration"] = args ? args.ipConfiguration : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["macAddress"] = args ? args.macAddress : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(HciNetworkInterface.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering HciNetworkInterface resources. + */ +export interface HciNetworkInterfaceState { + /** + * The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + customLocationId?: pulumi.Input; + /** + * 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. + */ + dnsServers?: pulumi.Input[]>; + /** + * An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + */ + ipConfiguration?: pulumi.Input; + /** + * The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * The MAC address of the Network Interface. Changing this forces a new resource to be created. + * + * > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + */ + macAddress?: pulumi.Input; + /** + * The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + resourceGroupName?: pulumi.Input; + /** + * A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a HciNetworkInterface resource. + */ +export interface HciNetworkInterfaceArgs { + /** + * The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + customLocationId: pulumi.Input; + /** + * 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. + */ + dnsServers?: pulumi.Input[]>; + /** + * An `ipConfiguration` block as defined below. Changing this forces a new resource to be created. + */ + ipConfiguration: pulumi.Input; + /** + * The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * The MAC address of the Network Interface. Changing this forces a new resource to be created. + * + * > **Note:** If `macAddress` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. + */ + macAddress?: pulumi.Input; + /** + * The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + */ + resourceGroupName: pulumi.Input; + /** + * A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/stack/index.ts b/sdk/nodejs/stack/index.ts index 2af705335f..fc7d87f7f4 100644 --- a/sdk/nodejs/stack/index.ts +++ b/sdk/nodejs/stack/index.ts @@ -35,6 +35,11 @@ export type HciMarketplaceGalleryImage = import("./hciMarketplaceGalleryImage"). export const HciMarketplaceGalleryImage: typeof import("./hciMarketplaceGalleryImage").HciMarketplaceGalleryImage = null as any; utilities.lazyLoad(exports, ["HciMarketplaceGalleryImage"], () => require("./hciMarketplaceGalleryImage")); +export { HciNetworkInterfaceArgs, HciNetworkInterfaceState } from "./hciNetworkInterface"; +export type HciNetworkInterface = import("./hciNetworkInterface").HciNetworkInterface; +export const HciNetworkInterface: typeof import("./hciNetworkInterface").HciNetworkInterface = null as any; +utilities.lazyLoad(exports, ["HciNetworkInterface"], () => require("./hciNetworkInterface")); + export { HciStoragePathArgs, HciStoragePathState } from "./hciStoragePath"; export type HciStoragePath = import("./hciStoragePath").HciStoragePath; export const HciStoragePath: typeof import("./hciStoragePath").HciStoragePath = null as any; @@ -60,6 +65,8 @@ const _module = { return new HciLogicalNetwork(name, undefined, { urn }) case "azure:stack/hciMarketplaceGalleryImage:HciMarketplaceGalleryImage": return new HciMarketplaceGalleryImage(name, undefined, { urn }) + case "azure:stack/hciNetworkInterface:HciNetworkInterface": + return new HciNetworkInterface(name, undefined, { urn }) case "azure:stack/hciStoragePath:HciStoragePath": return new HciStoragePath(name, undefined, { urn }) case "azure:stack/hciVirtualHardDisk:HciVirtualHardDisk": @@ -74,5 +81,6 @@ pulumi.runtime.registerResourceModule("azure", "stack/hciDeploymentSetting", _mo pulumi.runtime.registerResourceModule("azure", "stack/hciExtension", _module) pulumi.runtime.registerResourceModule("azure", "stack/hciLogicalNetwork", _module) pulumi.runtime.registerResourceModule("azure", "stack/hciMarketplaceGalleryImage", _module) +pulumi.runtime.registerResourceModule("azure", "stack/hciNetworkInterface", _module) pulumi.runtime.registerResourceModule("azure", "stack/hciStoragePath", _module) pulumi.runtime.registerResourceModule("azure", "stack/hciVirtualHardDisk", _module) diff --git a/sdk/nodejs/storage/account.ts b/sdk/nodejs/storage/account.ts index 6591da53bb..7b9e126b9b 100644 --- a/sdk/nodejs/storage/account.ts +++ b/sdk/nodejs/storage/account.ts @@ -390,6 +390,8 @@ export class Account extends pulumi.CustomResource { * A `queueProperties` block as defined below. * * > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. + * + * @deprecated this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ public readonly queueProperties!: pulumi.Output; /** @@ -567,8 +569,10 @@ export class Account extends pulumi.CustomResource { * > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. * * > **Note:** If `staticWebsite` is specified, the service will automatically create a `azure.storage.Container` named `$web`. + * + * @deprecated this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ - public readonly staticWebsite!: pulumi.Output; + public readonly staticWebsite!: pulumi.Output; /** * The encryption type of the table service. Possible values are `Service` and `Account`. Changing this forces a new resource to be created. Default value is `Service`. * @@ -1116,6 +1120,8 @@ export interface AccountState { * A `queueProperties` block as defined below. * * > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. + * + * @deprecated this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ queueProperties?: pulumi.Input; /** @@ -1293,6 +1299,8 @@ export interface AccountState { * > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. * * > **Note:** If `staticWebsite` is specified, the service will automatically create a `azure.storage.Container` named `$web`. + * + * @deprecated this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ staticWebsite?: pulumi.Input; /** @@ -1447,6 +1455,8 @@ export interface AccountArgs { * A `queueProperties` block as defined below. * * > **Note:** `queueProperties` can only be configured when `accountTier` is set to `Standard` and `accountKind` is set to either `Storage` or `StorageV2`. + * + * @deprecated this block has been deprecated and superseded by the `azure.storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider */ queueProperties?: pulumi.Input; /** @@ -1480,6 +1490,8 @@ export interface AccountArgs { * > **Note:** `staticWebsite` can only be set when the `accountKind` is set to `StorageV2` or `BlockBlobStorage`. * * > **Note:** If `staticWebsite` is specified, the service will automatically create a `azure.storage.Container` named `$web`. + * + * @deprecated this block has been deprecated and superseded by the `azure.storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider */ staticWebsite?: pulumi.Input; /** diff --git a/sdk/nodejs/storage/accountQueueProperties.ts b/sdk/nodejs/storage/accountQueueProperties.ts new file mode 100644 index 0000000000..67ded0ffd3 --- /dev/null +++ b/sdk/nodejs/storage/accountQueueProperties.ts @@ -0,0 +1,209 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Manages the Queue Properties of an Azure Storage Account. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-resources", + * location: "West Europe", + * }); + * const exampleAccount = new azure.storage.Account("example", { + * name: "storageaccountname", + * resourceGroupName: example.name, + * location: example.location, + * accountTier: "Standard", + * accountReplicationType: "GRS", + * tags: { + * environment: "staging", + * }, + * }); + * const exampleAccountQueueProperties = new azure.storage.AccountQueueProperties("example", { + * storageAccountId: exampleAccount.id, + * corsRules: [{ + * allowedOrigins: ["http://www.example.com"], + * exposedHeaders: ["x-tempo-*"], + * allowedHeaders: ["x-tempo-*"], + * allowedMethods: [ + * "GET", + * "PUT", + * ], + * maxAgeInSeconds: 500, + * }], + * logging: { + * version: "1.0", + * "delete": true, + * read: true, + * write: true, + * retentionPolicyDays: 7, + * }, + * hourMetrics: { + * version: "1.0", + * retentionPolicyDays: 7, + * }, + * minuteMetrics: { + * version: "1.0", + * retentionPolicyDays: 7, + * }, + * }); + * ``` + * + * ## Import + * + * Storage Account Queue Properties can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:storage/accountQueueProperties:AccountQueueProperties queueprops /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + * ``` + */ +export class AccountQueueProperties extends pulumi.CustomResource { + /** + * Get an existing AccountQueueProperties resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AccountQueuePropertiesState, opts?: pulumi.CustomResourceOptions): AccountQueueProperties { + return new AccountQueueProperties(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:storage/accountQueueProperties:AccountQueueProperties'; + + /** + * Returns true if the given object is an instance of AccountQueueProperties. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is AccountQueueProperties { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AccountQueueProperties.__pulumiType; + } + + /** + * A `corsRule` block as defined above. + */ + public readonly corsRules!: pulumi.Output; + /** + * A `hourMetrics` block as defined below. + * + * > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + */ + public readonly hourMetrics!: pulumi.Output; + /** + * A `logging` block as defined below. + */ + public readonly logging!: pulumi.Output; + /** + * A `minuteMetrics` block as defined below. + */ + public readonly minuteMetrics!: pulumi.Output; + /** + * The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + */ + public readonly storageAccountId!: pulumi.Output; + + /** + * Create a AccountQueueProperties resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AccountQueuePropertiesArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AccountQueuePropertiesArgs | AccountQueuePropertiesState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AccountQueuePropertiesState | undefined; + resourceInputs["corsRules"] = state ? state.corsRules : undefined; + resourceInputs["hourMetrics"] = state ? state.hourMetrics : undefined; + resourceInputs["logging"] = state ? state.logging : undefined; + resourceInputs["minuteMetrics"] = state ? state.minuteMetrics : undefined; + resourceInputs["storageAccountId"] = state ? state.storageAccountId : undefined; + } else { + const args = argsOrState as AccountQueuePropertiesArgs | undefined; + if ((!args || args.storageAccountId === undefined) && !opts.urn) { + throw new Error("Missing required property 'storageAccountId'"); + } + resourceInputs["corsRules"] = args ? args.corsRules : undefined; + resourceInputs["hourMetrics"] = args ? args.hourMetrics : undefined; + resourceInputs["logging"] = args ? args.logging : undefined; + resourceInputs["minuteMetrics"] = args ? args.minuteMetrics : undefined; + resourceInputs["storageAccountId"] = args ? args.storageAccountId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(AccountQueueProperties.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AccountQueueProperties resources. + */ +export interface AccountQueuePropertiesState { + /** + * A `corsRule` block as defined above. + */ + corsRules?: pulumi.Input[]>; + /** + * A `hourMetrics` block as defined below. + * + * > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + */ + hourMetrics?: pulumi.Input; + /** + * A `logging` block as defined below. + */ + logging?: pulumi.Input; + /** + * A `minuteMetrics` block as defined below. + */ + minuteMetrics?: pulumi.Input; + /** + * The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + */ + storageAccountId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AccountQueueProperties resource. + */ +export interface AccountQueuePropertiesArgs { + /** + * A `corsRule` block as defined above. + */ + corsRules?: pulumi.Input[]>; + /** + * A `hourMetrics` block as defined below. + * + * > **NOTE:** At least one of `corsRule`, `logging`, `minuteMetrics`, or `hourMetrics` must be specified. + */ + hourMetrics?: pulumi.Input; + /** + * A `logging` block as defined below. + */ + logging?: pulumi.Input; + /** + * A `minuteMetrics` block as defined below. + */ + minuteMetrics?: pulumi.Input; + /** + * The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + */ + storageAccountId: pulumi.Input; +} diff --git a/sdk/nodejs/storage/accountStaticWebsite.ts b/sdk/nodejs/storage/accountStaticWebsite.ts new file mode 100644 index 0000000000..3953d44afa --- /dev/null +++ b/sdk/nodejs/storage/accountStaticWebsite.ts @@ -0,0 +1,150 @@ +// *** 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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Manages the Static Website of an Azure Storage Account. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-resources", + * location: "West Europe", + * }); + * const exampleAccount = new azure.storage.Account("example", { + * name: "storageaccountname", + * resourceGroupName: example.name, + * location: example.location, + * accountTier: "Standard", + * accountReplicationType: "GRS", + * tags: { + * environment: "staging", + * }, + * }); + * const test = new azure.storage.AccountStaticWebsite("test", { + * storageAccountId: testAzurermStorageAccount.id, + * error404Document: "custom_not_found.html", + * indexDocument: "custom_index.html", + * }); + * ``` + * + * ## Import + * + * Storage Account Static Websites can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:storage/accountStaticWebsite:AccountStaticWebsite mysite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + * ``` + */ +export class AccountStaticWebsite extends pulumi.CustomResource { + /** + * Get an existing AccountStaticWebsite resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AccountStaticWebsiteState, opts?: pulumi.CustomResourceOptions): AccountStaticWebsite { + return new AccountStaticWebsite(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:storage/accountStaticWebsite:AccountStaticWebsite'; + + /** + * Returns true if the given object is an instance of AccountStaticWebsite. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is AccountStaticWebsite { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AccountStaticWebsite.__pulumiType; + } + + /** + * The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + */ + public readonly error404Document!: pulumi.Output; + /** + * The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + */ + public readonly indexDocument!: pulumi.Output; + /** + * The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + */ + public readonly storageAccountId!: pulumi.Output; + + /** + * Create a AccountStaticWebsite resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AccountStaticWebsiteArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AccountStaticWebsiteArgs | AccountStaticWebsiteState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as AccountStaticWebsiteState | undefined; + resourceInputs["error404Document"] = state ? state.error404Document : undefined; + resourceInputs["indexDocument"] = state ? state.indexDocument : undefined; + resourceInputs["storageAccountId"] = state ? state.storageAccountId : undefined; + } else { + const args = argsOrState as AccountStaticWebsiteArgs | undefined; + if ((!args || args.storageAccountId === undefined) && !opts.urn) { + throw new Error("Missing required property 'storageAccountId'"); + } + resourceInputs["error404Document"] = args ? args.error404Document : undefined; + resourceInputs["indexDocument"] = args ? args.indexDocument : undefined; + resourceInputs["storageAccountId"] = args ? args.storageAccountId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(AccountStaticWebsite.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AccountStaticWebsite resources. + */ +export interface AccountStaticWebsiteState { + /** + * The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + */ + error404Document?: pulumi.Input; + /** + * The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + */ + indexDocument?: pulumi.Input; + /** + * The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + */ + storageAccountId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AccountStaticWebsite resource. + */ +export interface AccountStaticWebsiteArgs { + /** + * The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + */ + error404Document?: pulumi.Input; + /** + * The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + */ + indexDocument?: pulumi.Input; + /** + * The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + */ + storageAccountId: pulumi.Input; +} diff --git a/sdk/nodejs/storage/container.ts b/sdk/nodejs/storage/container.ts index fac34e471c..1aa6826731 100644 --- a/sdk/nodejs/storage/container.ts +++ b/sdk/nodejs/storage/container.ts @@ -29,7 +29,7 @@ import * as utilities from "../utilities"; * }); * const exampleContainer = new azure.storage.Container("example", { * name: "vhds", - * storageAccountName: exampleAccount.name, + * storageAccountId: exampleAccount.id, * containerAccessType: "private", * }); * ``` @@ -102,12 +102,22 @@ export class Container extends pulumi.CustomResource { public readonly name!: pulumi.Output; /** * The Resource Manager ID of this Storage Container. + * + * @deprecated this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ public /*out*/ readonly resourceManagerId!: pulumi.Output; /** * The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + */ + public readonly storageAccountId!: pulumi.Output; + /** + * 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 `storageAccountId`. + * + * @deprecated the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. */ - public readonly storageAccountName!: pulumi.Output; + public readonly storageAccountName!: pulumi.Output; /** * Create a Container resource with the given unique name, arguments, and options. @@ -116,7 +126,7 @@ export class Container extends pulumi.CustomResource { * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ - constructor(name: string, args: ContainerArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, args?: ContainerArgs, opts?: pulumi.CustomResourceOptions) constructor(name: string, argsOrState?: ContainerArgs | ContainerState, opts?: pulumi.CustomResourceOptions) { let resourceInputs: pulumi.Inputs = {}; opts = opts || {}; @@ -130,17 +140,16 @@ export class Container extends pulumi.CustomResource { resourceInputs["metadata"] = state ? state.metadata : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["resourceManagerId"] = state ? state.resourceManagerId : undefined; + resourceInputs["storageAccountId"] = state ? state.storageAccountId : undefined; resourceInputs["storageAccountName"] = state ? state.storageAccountName : undefined; } else { const args = argsOrState as ContainerArgs | undefined; - if ((!args || args.storageAccountName === undefined) && !opts.urn) { - throw new Error("Missing required property 'storageAccountName'"); - } resourceInputs["containerAccessType"] = args ? args.containerAccessType : undefined; resourceInputs["defaultEncryptionScope"] = args ? args.defaultEncryptionScope : undefined; resourceInputs["encryptionScopeOverrideEnabled"] = args ? args.encryptionScopeOverrideEnabled : undefined; resourceInputs["metadata"] = args ? args.metadata : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["storageAccountId"] = args ? args.storageAccountId : undefined; resourceInputs["storageAccountName"] = args ? args.storageAccountName : undefined; resourceInputs["hasImmutabilityPolicy"] = undefined /*out*/; resourceInputs["hasLegalHold"] = undefined /*out*/; @@ -187,10 +196,20 @@ export interface ContainerState { name?: pulumi.Input; /** * The Resource Manager ID of this Storage Container. + * + * @deprecated this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ resourceManagerId?: pulumi.Input; /** * The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + */ + storageAccountId?: pulumi.Input; + /** + * 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 `storageAccountId`. + * + * @deprecated the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. */ storageAccountName?: pulumi.Input; } @@ -223,6 +242,14 @@ export interface ContainerArgs { name?: pulumi.Input; /** * The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. */ - storageAccountName: pulumi.Input; + storageAccountId?: pulumi.Input; + /** + * 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 `storageAccountId`. + * + * @deprecated the `storageAccountName` property has been deprecated in favour of `storageAccountId` and will be removed in version 5.0 of the Provider. + */ + storageAccountName?: pulumi.Input; } diff --git a/sdk/nodejs/storage/getShare.ts b/sdk/nodejs/storage/getShare.ts index 46d620048e..4ac359406f 100644 --- a/sdk/nodejs/storage/getShare.ts +++ b/sdk/nodejs/storage/getShare.ts @@ -17,11 +17,14 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * - * const example = azure.storage.getShare({ - * name: "existing", - * storageAccountName: "existing", + * const example = azure.storage.getAccount({ + * name: "exampleaccount", + * resourceGroupName: "examples", * }); - * export const id = example.then(example => example.id); + * const exampleGetShare = example.then(example => azure.storage.getShare({ + * name: "existing", + * storageAccountId: example.id, + * })); * ``` */ export function getShare(args: GetShareArgs, opts?: pulumi.InvokeOptions): Promise { @@ -30,6 +33,7 @@ export function getShare(args: GetShareArgs, opts?: pulumi.InvokeOptions): Promi "acls": args.acls, "metadata": args.metadata, "name": args.name, + "storageAccountId": args.storageAccountId, "storageAccountName": args.storageAccountName, }, opts); } @@ -51,9 +55,15 @@ export interface GetShareArgs { */ name: string; /** - * The name of the storage account. + * The ID of the storage account in which the share exists. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. */ - storageAccountName: string; + storageAccountId?: string; + /** + * The name of the storage account in which the share exists. This property is deprecated in favour of `storageAccountId`. + */ + storageAccountName?: string; } /** @@ -77,8 +87,12 @@ export interface GetShareResult { * The quota of the File Share in GB. */ readonly quota: number; + /** + * @deprecated this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. + */ readonly resourceManagerId: string; - readonly storageAccountName: string; + readonly storageAccountId?: string; + readonly storageAccountName?: string; } /** * Use this data source to access information about an existing File Share. @@ -91,11 +105,14 @@ export interface GetShareResult { * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * - * const example = azure.storage.getShare({ - * name: "existing", - * storageAccountName: "existing", + * const example = azure.storage.getAccount({ + * name: "exampleaccount", + * resourceGroupName: "examples", * }); - * export const id = example.then(example => example.id); + * const exampleGetShare = example.then(example => azure.storage.getShare({ + * name: "existing", + * storageAccountId: example.id, + * })); * ``` */ export function getShareOutput(args: GetShareOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { @@ -104,6 +121,7 @@ export function getShareOutput(args: GetShareOutputArgs, opts?: pulumi.InvokeOpt "acls": args.acls, "metadata": args.metadata, "name": args.name, + "storageAccountId": args.storageAccountId, "storageAccountName": args.storageAccountName, }, opts); } @@ -125,7 +143,13 @@ export interface GetShareOutputArgs { */ name: pulumi.Input; /** - * The name of the storage account. + * The ID of the storage account in which the share exists. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + */ + storageAccountId?: pulumi.Input; + /** + * The name of the storage account in which the share exists. This property is deprecated in favour of `storageAccountId`. */ - storageAccountName: pulumi.Input; + storageAccountName?: pulumi.Input; } diff --git a/sdk/nodejs/storage/getStorageContainer.ts b/sdk/nodejs/storage/getStorageContainer.ts index 8008c818be..5cfe2d7465 100644 --- a/sdk/nodejs/storage/getStorageContainer.ts +++ b/sdk/nodejs/storage/getStorageContainer.ts @@ -13,10 +13,14 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * - * const example = azure.storage.getStorageContainer({ - * name: "example-container-name", - * storageAccountName: "example-storage-account-name", + * const example = azure.storage.getAccount({ + * name: "exampleaccount", + * resourceGroupName: "examples", * }); + * const exampleGetStorageContainer = example.then(example => azure.storage.getStorageContainer({ + * name: "example-container-name", + * storageAccountId: example.id, + * })); * ``` */ export function getStorageContainer(args: GetStorageContainerArgs, opts?: pulumi.InvokeOptions): Promise { @@ -24,6 +28,7 @@ export function getStorageContainer(args: GetStorageContainerArgs, opts?: pulumi return pulumi.runtime.invoke("azure:storage/getStorageContainer:getStorageContainer", { "metadata": args.metadata, "name": args.name, + "storageAccountId": args.storageAccountId, "storageAccountName": args.storageAccountName, }, opts); } @@ -41,9 +46,15 @@ export interface GetStorageContainerArgs { */ name: string; /** - * The name of the Storage Account where the Container exists. + * The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + */ + storageAccountId?: string; + /** + * The name of the Storage Account where the Container exists. This property is deprecated in favour of `storageAccountId`. */ - storageAccountName: string; + storageAccountName?: string; } /** @@ -80,10 +91,11 @@ export interface GetStorageContainerResult { readonly metadata: {[key: string]: string}; readonly name: string; /** - * The Resource Manager ID of this Storage Container. + * @deprecated this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider. */ readonly resourceManagerId: string; - readonly storageAccountName: string; + readonly storageAccountId?: string; + readonly storageAccountName?: string; } /** * Use this data source to access information about an existing Storage Container. @@ -94,10 +106,14 @@ export interface GetStorageContainerResult { * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * - * const example = azure.storage.getStorageContainer({ - * name: "example-container-name", - * storageAccountName: "example-storage-account-name", + * const example = azure.storage.getAccount({ + * name: "exampleaccount", + * resourceGroupName: "examples", * }); + * const exampleGetStorageContainer = example.then(example => azure.storage.getStorageContainer({ + * name: "example-container-name", + * storageAccountId: example.id, + * })); * ``` */ export function getStorageContainerOutput(args: GetStorageContainerOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { @@ -105,6 +121,7 @@ export function getStorageContainerOutput(args: GetStorageContainerOutputArgs, o return pulumi.runtime.invokeOutput("azure:storage/getStorageContainer:getStorageContainer", { "metadata": args.metadata, "name": args.name, + "storageAccountId": args.storageAccountId, "storageAccountName": args.storageAccountName, }, opts); } @@ -122,7 +139,13 @@ export interface GetStorageContainerOutputArgs { */ name: pulumi.Input; /** - * The name of the Storage Account where the Container exists. + * The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + */ + storageAccountId?: pulumi.Input; + /** + * The name of the Storage Account where the Container exists. This property is deprecated in favour of `storageAccountId`. */ - storageAccountName: pulumi.Input; + storageAccountName?: pulumi.Input; } diff --git a/sdk/nodejs/storage/index.ts b/sdk/nodejs/storage/index.ts index a34236834b..793cca611b 100644 --- a/sdk/nodejs/storage/index.ts +++ b/sdk/nodejs/storage/index.ts @@ -15,6 +15,16 @@ export type AccountNetworkRules = import("./accountNetworkRules").AccountNetwork export const AccountNetworkRules: typeof import("./accountNetworkRules").AccountNetworkRules = null as any; utilities.lazyLoad(exports, ["AccountNetworkRules"], () => require("./accountNetworkRules")); +export { AccountQueuePropertiesArgs, AccountQueuePropertiesState } from "./accountQueueProperties"; +export type AccountQueueProperties = import("./accountQueueProperties").AccountQueueProperties; +export const AccountQueueProperties: typeof import("./accountQueueProperties").AccountQueueProperties = null as any; +utilities.lazyLoad(exports, ["AccountQueueProperties"], () => require("./accountQueueProperties")); + +export { AccountStaticWebsiteArgs, AccountStaticWebsiteState } from "./accountStaticWebsite"; +export type AccountStaticWebsite = import("./accountStaticWebsite").AccountStaticWebsite; +export const AccountStaticWebsite: typeof import("./accountStaticWebsite").AccountStaticWebsite = null as any; +utilities.lazyLoad(exports, ["AccountStaticWebsite"], () => require("./accountStaticWebsite")); + export { BlobArgs, BlobState } from "./blob"; export type Blob = import("./blob").Blob; export const Blob: typeof import("./blob").Blob = null as any; @@ -240,6 +250,10 @@ const _module = { return new Account(name, undefined, { urn }) case "azure:storage/accountNetworkRules:AccountNetworkRules": return new AccountNetworkRules(name, undefined, { urn }) + case "azure:storage/accountQueueProperties:AccountQueueProperties": + return new AccountQueueProperties(name, undefined, { urn }) + case "azure:storage/accountStaticWebsite:AccountStaticWebsite": + return new AccountStaticWebsite(name, undefined, { urn }) case "azure:storage/blob:Blob": return new Blob(name, undefined, { urn }) case "azure:storage/blobInventoryPolicy:BlobInventoryPolicy": @@ -303,6 +317,8 @@ const _module = { }; pulumi.runtime.registerResourceModule("azure", "storage/account", _module) pulumi.runtime.registerResourceModule("azure", "storage/accountNetworkRules", _module) +pulumi.runtime.registerResourceModule("azure", "storage/accountQueueProperties", _module) +pulumi.runtime.registerResourceModule("azure", "storage/accountStaticWebsite", _module) pulumi.runtime.registerResourceModule("azure", "storage/blob", _module) pulumi.runtime.registerResourceModule("azure", "storage/blobInventoryPolicy", _module) pulumi.runtime.registerResourceModule("azure", "storage/container", _module) diff --git a/sdk/nodejs/storage/share.ts b/sdk/nodejs/storage/share.ts index 6b365c26de..215b033fd7 100644 --- a/sdk/nodejs/storage/share.ts +++ b/sdk/nodejs/storage/share.ts @@ -32,14 +32,14 @@ import * as utilities from "../utilities"; * }); * const exampleShare = new azure.storage.Share("example", { * name: "sharename", - * storageAccountName: exampleAccount.name, + * storageAccountId: exampleAccount.id, * quota: 50, * acls: [{ * id: "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI", * accessPolicies: [{ * permissions: "rwdl", - * start: "2019-07-02T09:38:21.0000000Z", - * expiry: "2019-07-02T10:38:21.0000000Z", + * start: "2019-07-02T09:38:21Z", + * expiry: "2019-07-02T10:38:21Z", * }], * }], * }); @@ -47,10 +47,10 @@ import * as utilities from "../utilities"; * * ## Import * - * Storage Shares can be imported using the `resource id`, e.g. + * Storage Shares can be imported using the `id`, e.g. * * ```sh - * $ pulumi import azure:storage/share:Share exampleShare https://account1.file.core.windows.net/share1 + * $ pulumi import azure:storage/share:Share exampleShare /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myAccount/fileServices/default/shares/exampleShare * ``` */ export class Share extends pulumi.CustomResource { @@ -115,12 +115,22 @@ export class Share extends pulumi.CustomResource { public readonly quota!: pulumi.Output; /** * The Resource Manager ID of this File Share. + * + * @deprecated this property is deprecated and will be removed 5.0 and replaced by the `id` property. */ public /*out*/ readonly resourceManagerId!: pulumi.Output; /** * Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + */ + public readonly storageAccountId!: pulumi.Output; + /** + * 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 `storageAccountId`. + * + * @deprecated This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. */ - public readonly storageAccountName!: pulumi.Output; + public readonly storageAccountName!: pulumi.Output; /** * The URL of the File Share */ @@ -146,6 +156,7 @@ export class Share extends pulumi.CustomResource { resourceInputs["name"] = state ? state.name : undefined; resourceInputs["quota"] = state ? state.quota : undefined; resourceInputs["resourceManagerId"] = state ? state.resourceManagerId : undefined; + resourceInputs["storageAccountId"] = state ? state.storageAccountId : undefined; resourceInputs["storageAccountName"] = state ? state.storageAccountName : undefined; resourceInputs["url"] = state ? state.url : undefined; } else { @@ -153,15 +164,13 @@ export class Share extends pulumi.CustomResource { if ((!args || args.quota === undefined) && !opts.urn) { throw new Error("Missing required property 'quota'"); } - if ((!args || args.storageAccountName === undefined) && !opts.urn) { - throw new Error("Missing required property 'storageAccountName'"); - } resourceInputs["accessTier"] = args ? args.accessTier : undefined; resourceInputs["acls"] = args ? args.acls : undefined; resourceInputs["enabledProtocol"] = args ? args.enabledProtocol : undefined; resourceInputs["metadata"] = args ? args.metadata : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["quota"] = args ? args.quota : undefined; + resourceInputs["storageAccountId"] = args ? args.storageAccountId : undefined; resourceInputs["storageAccountName"] = args ? args.storageAccountName : undefined; resourceInputs["resourceManagerId"] = undefined /*out*/; resourceInputs["url"] = undefined /*out*/; @@ -209,10 +218,20 @@ export interface ShareState { quota?: pulumi.Input; /** * The Resource Manager ID of this File Share. + * + * @deprecated this property is deprecated and will be removed 5.0 and replaced by the `id` property. */ resourceManagerId?: pulumi.Input; /** * Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. + */ + storageAccountId?: pulumi.Input; + /** + * 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 `storageAccountId`. + * + * @deprecated This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. */ storageAccountName?: pulumi.Input; /** @@ -259,6 +278,14 @@ export interface ShareArgs { quota: pulumi.Input; /** * Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + * + * > **NOTE:** One of `storageAccountName` or `storageAccountId` must be specified. When specifying `storageAccountId` the resource will use the Resource Manager API, rather than the Data Plane API. */ - storageAccountName: pulumi.Input; + storageAccountId?: pulumi.Input; + /** + * 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 `storageAccountId`. + * + * @deprecated This property has been deprecated and will be replaced by `storageAccountId` in version 5.0 of the provider. + */ + storageAccountName?: pulumi.Input; } diff --git a/sdk/nodejs/storage/zMixins.ts b/sdk/nodejs/storage/zMixins.ts index ddfdf9092d..357bee58e2 100644 --- a/sdk/nodejs/storage/zMixins.ts +++ b/sdk/nodejs/storage/zMixins.ts @@ -232,7 +232,7 @@ export class BlobEventSubscription extends appservice.EventSubscription, id: pulumi.Output }) { - const account = pulumi.all([container.id, container.storageAccountName]).apply(([_, storageAccountName]) => - storage.getAccount({ name: storageAccountName })); +function resolveResourceGroupNameOfStorageAccount(container: { storageAccountName: pulumi.Output, id: pulumi.Output }) { + const account = pulumi.all([container.id, container.storageAccountName]).apply(([_, storageAccountName]) => { + // In upstream v4, storageAccountName is always set. + // https://github.com/hashicorp/terraform-provider-azurerm/pull/27733/files#diff-e1f645d5290fdcc40b01762eb09185c901d0d62b39198a42b8492d7ea697ea82R398 + if (storageAccountName === undefined) { + throw new Error("Storage account name not defined, but should always be populated. Please report this issue to github.com/pulumi/pulumi-azure"); + } + return storage.getAccount({ name: storageAccountName! }); + }); return account.resourceGroupName!.apply(n => n!); } -// Given a Queue or a Table, produce App Settings and a Connection String Key relevant to the Storage Account -function resolveAccount(container: { storageAccountName: pulumi.Output, id: pulumi.Output }) { +// Given a Queue or a Table, produce Settings and a Connection String Key relevant to the Storage Account +function resolveAccount(container: { storageAccountName: pulumi.Output, id: pulumi.Output }) { const connectionKey = pulumi.interpolate`Storage${container.storageAccountName}ConnectionStringKey`; - const account = pulumi.all([container.id, container.storageAccountName]).apply(([_, storageAccountName]) => - storage.getAccount({ name: storageAccountName })); - + const account = pulumi.all([container.id, container.storageAccountName]).apply(([_, storageAccountName]) => { + // In upstream v4, storageAccountName is always set. + // https://github.com/hashicorp/terraform-provider-azurerm/pull/27733/files#diff-e1f645d5290fdcc40b01762eb09185c901d0d62b39198a42b8492d7ea697ea82R398 + if (storageAccountName === undefined) { + throw new Error("Storage account name not defined, but should always be populated. Please report this issue to github.com/pulumi/pulumi-azure"); + } + return storage.getAccount({ name: storageAccountName! }); + }); const settings = pulumi.all([account.primaryConnectionString, connectionKey]).apply( ([connectionString, key]) => ({ [key]: connectionString })); diff --git a/sdk/nodejs/trustedsigning/account.ts b/sdk/nodejs/trustedsigning/account.ts index 5077b3370c..f16414cc2e 100644 --- a/sdk/nodejs/trustedsigning/account.ts +++ b/sdk/nodejs/trustedsigning/account.ts @@ -7,6 +7,24 @@ import * as utilities from "../utilities"; /** * Manages a Trusted Signing Account. * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example", + * location: "West Europe", + * }); + * const exampleAccount = new azure.trustedsigning.Account("example", { + * name: "example-account", + * resourceGroupName: example.name, + * location: "West Europe", + * skuName: "Basic", + * }); + * ``` + * * ## Import * * Trusted Signing Accounts can be imported using the `resource id`, e.g. diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index c7a61838d7..56ddea4515 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -507,6 +507,7 @@ "cosmosdb/gremlinDatabase.ts", "cosmosdb/gremlinGraph.ts", "cosmosdb/index.ts", + "cosmosdb/mongoCluster.ts", "cosmosdb/mongoCollection.ts", "cosmosdb/mongoDatabase.ts", "cosmosdb/mongoRoleDefinition.ts", @@ -534,6 +535,7 @@ "dashboard/azurerm_portal_dashboard.ts", "dashboard/getGrafana.ts", "dashboard/grafana.ts", + "dashboard/grafanaManagedPrivateEndpoint.ts", "dashboard/index.ts", "databasemigration/getProject.ts", "databasemigration/getService.ts", @@ -611,6 +613,7 @@ "dataprotection/backupInstanceBlogStorage.ts", "dataprotection/backupInstanceDisk.ts", "dataprotection/backupInstanceKubernetesCluster.ts", + "dataprotection/backupInstanceMysqlFlexibleServer.ts", "dataprotection/backupInstancePostgresql.ts", "dataprotection/backupInstancePostgresqlFlexibleServer.ts", "dataprotection/backupPolicyBlobStorage.ts", @@ -703,6 +706,8 @@ "domainservices/replicaSet.ts", "domainservices/service.ts", "domainservices/serviceTrust.ts", + "dynatrace/index.ts", + "dynatrace/monitor.ts", "elasticcloud/elasticsearch.ts", "elasticcloud/getElasticsearch.ts", "elasticcloud/index.ts", @@ -1474,11 +1479,14 @@ "stack/hciExtension.ts", "stack/hciLogicalNetwork.ts", "stack/hciMarketplaceGalleryImage.ts", + "stack/hciNetworkInterface.ts", "stack/hciStoragePath.ts", "stack/hciVirtualHardDisk.ts", "stack/index.ts", "storage/account.ts", "storage/accountNetworkRules.ts", + "storage/accountQueueProperties.ts", + "storage/accountStaticWebsite.ts", "storage/blob.ts", "storage/blobInventoryPolicy.ts", "storage/container.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 62c71116a1..aadaac00fc 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -18,6 +18,7 @@ export interface ProviderFeatures { recoveryService?: pulumi.Input; recoveryServicesVaults?: pulumi.Input; resourceGroup?: pulumi.Input; + storage?: pulumi.Input; subscription?: pulumi.Input; templateDeployment?: pulumi.Input; virtualMachine?: pulumi.Input; @@ -118,6 +119,10 @@ export interface ProviderFeaturesResourceGroup { preventDeletionIfContainsResources?: pulumi.Input; } +export interface ProviderFeaturesStorage { + dataPlaneAvailable?: pulumi.Input; +} + export interface ProviderFeaturesSubscription { preventCancellationOnDestroy?: pulumi.Input; } @@ -16949,6 +16954,8 @@ export namespace cdn { certificateType?: pulumi.Input; /** * 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. */ minimumTlsVersion?: pulumi.Input; } @@ -18088,7 +18095,7 @@ export namespace cognitive { */ family?: pulumi.Input; /** - * 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`. */ name: pulumi.Input; /** @@ -29691,6 +29698,59 @@ export namespace domainservices { } } +export namespace dynatrace { + export interface MonitorIdentity { + principalId?: pulumi.Input; + tenantId?: pulumi.Input; + /** + * The type of identity used for the resource. Only possible value is `SystemAssigned`. + */ + type: pulumi.Input; + } + + export interface MonitorPlan { + /** + * Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + */ + billingCycle?: pulumi.Input; + /** + * Date when plan was applied. + */ + effectiveDate?: pulumi.Input; + /** + * Plan id as published by Dynatrace. + */ + plan: pulumi.Input; + /** + * Different usage type. Possible values are `PAYG` and `COMMITTED`. + */ + usageType?: pulumi.Input; + } + + export interface MonitorUser { + /** + * Country of the user. + */ + country: pulumi.Input; + /** + * Email of the user used by Dynatrace for contacting them if needed. + */ + email: pulumi.Input; + /** + * First name of the user. + */ + firstName: pulumi.Input; + /** + * Last name of the user. + */ + lastName: pulumi.Input; + /** + * phone number of the user by Dynatrace for contacting them if needed. + */ + phoneNumber: pulumi.Input; + } +} + export namespace elasticcloud { export interface ElasticsearchLogs { /** @@ -49068,6 +49128,8 @@ export namespace stack { ipAllocationMethod: pulumi.Input; /** * One or more `ipPool` block as defined above. Changing this forces a new resource to be created. + * + * > **Note:** If `ipPool` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. */ ipPools?: pulumi.Input[]>; /** @@ -49120,6 +49182,25 @@ export namespace stack { */ sku: pulumi.Input; } + + export interface HciNetworkInterfaceIpConfiguration { + /** + * The IPv4 address of the gateway for the Network Interface. + */ + gateway?: pulumi.Input; + /** + * The prefix length for the address of the Network Interface. + */ + prefixLength?: pulumi.Input; + /** + * The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + */ + privateIpAddress?: pulumi.Input; + /** + * The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + */ + subnetId: pulumi.Input; + } } export namespace storage { @@ -49430,10 +49511,6 @@ export namespace storage { } export interface AccountQueuePropertiesHourMetrics { - /** - * Indicates whether hour metrics are enabled for the Queue service. - */ - enabled: pulumi.Input; /** * Indicates whether metrics should generate summary statistics for called API operations. */ @@ -49472,10 +49549,6 @@ export namespace storage { } export interface AccountQueuePropertiesMinuteMetrics { - /** - * Indicates whether minute metrics are enabled for the Queue service. - */ - enabled: pulumi.Input; /** * Indicates whether metrics should generate summary statistics for called API operations. */ @@ -49943,7 +50016,7 @@ export namespace storage { export interface GetShareAclAccessPolicy { /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid until. */ expiry?: string; /** @@ -49951,14 +50024,14 @@ export namespace storage { */ permissions?: string; /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid from. */ start?: string; } export interface GetShareAclAccessPolicyArgs { /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid until. */ expiry?: pulumi.Input; /** @@ -49966,7 +50039,7 @@ export namespace storage { */ permissions?: pulumi.Input; /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid from. */ start?: pulumi.Input; } @@ -50236,7 +50309,7 @@ export namespace storage { export interface ShareAclAccessPolicy { /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy should be valid untilWhen using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. */ expiry?: pulumi.Input; /** @@ -50246,7 +50319,7 @@ export namespace storage { */ permissions: pulumi.Input; /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy should be valid from. When using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. */ start?: pulumi.Input; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index d4502889d6..f760393eaf 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -23076,6 +23076,8 @@ export namespace cdn { certificateType?: string; /** * 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. */ minimumTlsVersion?: string; } @@ -24287,7 +24289,7 @@ export namespace cognitive { */ family?: string; /** - * 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`. */ name: string; /** @@ -28473,6 +28475,7 @@ export namespace config { recoveryService?: outputs.config.FeaturesRecoveryService; recoveryServicesVaults?: outputs.config.FeaturesRecoveryServicesVaults; resourceGroup?: outputs.config.FeaturesResourceGroup; + storage?: outputs.config.FeaturesStorage; subscription?: outputs.config.FeaturesSubscription; templateDeployment?: outputs.config.FeaturesTemplateDeployment; virtualMachine?: outputs.config.FeaturesVirtualMachine; @@ -28573,6 +28576,10 @@ export namespace config { preventDeletionIfContainsResources?: boolean; } + export interface FeaturesStorage { + dataPlaneAvailable?: boolean; + } + export interface FeaturesSubscription { preventCancellationOnDestroy?: boolean; } @@ -38677,6 +38684,60 @@ export namespace domainservices { } +export namespace dynatrace { + export interface MonitorIdentity { + principalId: string; + tenantId: string; + /** + * The type of identity used for the resource. Only possible value is `SystemAssigned`. + */ + type: string; + } + + export interface MonitorPlan { + /** + * Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + */ + billingCycle?: string; + /** + * Date when plan was applied. + */ + effectiveDate: string; + /** + * Plan id as published by Dynatrace. + */ + plan: string; + /** + * Different usage type. Possible values are `PAYG` and `COMMITTED`. + */ + usageType?: string; + } + + export interface MonitorUser { + /** + * Country of the user. + */ + country: string; + /** + * Email of the user used by Dynatrace for contacting them if needed. + */ + email: string; + /** + * First name of the user. + */ + firstName: string; + /** + * Last name of the user. + */ + lastName: string; + /** + * phone number of the user by Dynatrace for contacting them if needed. + */ + phoneNumber: string; + } + +} + export namespace elasticcloud { export interface ElasticsearchLogs { /** @@ -63439,6 +63500,8 @@ export namespace stack { ipAllocationMethod: string; /** * One or more `ipPool` block as defined above. Changing this forces a new resource to be created. + * + * > **Note:** If `ipPool` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignoreChanges`. */ ipPools?: outputs.stack.HciLogicalNetworkSubnetIpPool[]; /** @@ -63492,6 +63555,25 @@ export namespace stack { sku: string; } + export interface HciNetworkInterfaceIpConfiguration { + /** + * The IPv4 address of the gateway for the Network Interface. + */ + gateway: string; + /** + * The prefix length for the address of the Network Interface. + */ + prefixLength: string; + /** + * The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + */ + privateIpAddress?: string; + /** + * The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + */ + subnetId: string; + } + } export namespace storage { @@ -63802,10 +63884,6 @@ export namespace storage { } export interface AccountQueuePropertiesHourMetrics { - /** - * Indicates whether hour metrics are enabled for the Queue service. - */ - enabled: boolean; /** * Indicates whether metrics should generate summary statistics for called API operations. */ @@ -63844,10 +63922,6 @@ export namespace storage { } export interface AccountQueuePropertiesMinuteMetrics { - /** - * Indicates whether minute metrics are enabled for the Queue service. - */ - enabled: boolean; /** * Indicates whether metrics should generate summary statistics for called API operations. */ @@ -64446,7 +64520,7 @@ export namespace storage { export interface GetShareAclAccessPolicy { /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid until. */ expiry: string; /** @@ -64454,7 +64528,7 @@ export namespace storage { */ permissions: string; /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy is valid from. */ start: string; } @@ -64753,7 +64827,7 @@ export namespace storage { export interface ShareAclAccessPolicy { /** - * The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy should be valid untilWhen using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. */ expiry?: string; /** @@ -64763,7 +64837,7 @@ export namespace storage { */ permissions: string; /** - * The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + * The time at which this Access Policy should be valid from. When using `storageAccountId` this should be in RFC3339 format. If using the deprecated `storageAccountName` property, this uses the [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. */ start?: string; } diff --git a/sdk/python/pulumi_azure/__init__.py b/sdk/python/pulumi_azure/__init__.py index 05144d7ae0..4e24467e0c 100644 --- a/sdk/python/pulumi_azure/__init__.py +++ b/sdk/python/pulumi_azure/__init__.py @@ -112,6 +112,8 @@ dns = __dns import pulumi_azure.domainservices as __domainservices domainservices = __domainservices + import pulumi_azure.dynatrace as __dynatrace + dynatrace = __dynatrace import pulumi_azure.elasticcloud as __elasticcloud elasticcloud = __elasticcloud import pulumi_azure.elasticsan as __elasticsan @@ -324,6 +326,7 @@ digitaltwins = _utilities.lazy_import('pulumi_azure.digitaltwins') dns = _utilities.lazy_import('pulumi_azure.dns') domainservices = _utilities.lazy_import('pulumi_azure.domainservices') + dynatrace = _utilities.lazy_import('pulumi_azure.dynatrace') elasticcloud = _utilities.lazy_import('pulumi_azure.elasticcloud') elasticsan = _utilities.lazy_import('pulumi_azure.elasticsan') eventgrid = _utilities.lazy_import('pulumi_azure.eventgrid') @@ -3088,6 +3091,14 @@ "azure:cosmosdb/gremlinGraph:GremlinGraph": "GremlinGraph" } }, + { + "pkg": "azure", + "mod": "cosmosdb/mongoCluster", + "fqn": "pulumi_azure.cosmosdb", + "classes": { + "azure:cosmosdb/mongoCluster:MongoCluster": "MongoCluster" + } + }, { "pkg": "azure", "mod": "cosmosdb/mongoCollection", @@ -3264,6 +3275,14 @@ "azure:dashboard/grafana:Grafana": "Grafana" } }, + { + "pkg": "azure", + "mod": "dashboard/grafanaManagedPrivateEndpoint", + "fqn": "pulumi_azure.dashboard", + "classes": { + "azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint": "GrafanaManagedPrivateEndpoint" + } + }, { "pkg": "azure", "mod": "databasemigration/project", @@ -3760,6 +3779,14 @@ "azure:dataprotection/backupInstanceKubernetesCluster:BackupInstanceKubernetesCluster": "BackupInstanceKubernetesCluster" } }, + { + "pkg": "azure", + "mod": "dataprotection/backupInstanceMysqlFlexibleServer", + "fqn": "pulumi_azure.dataprotection", + "classes": { + "azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer": "BackupInstanceMysqlFlexibleServer" + } + }, { "pkg": "azure", "mod": "dataprotection/backupInstancePostgresql", @@ -4232,6 +4259,14 @@ "azure:domainservices/serviceTrust:ServiceTrust": "ServiceTrust" } }, + { + "pkg": "azure", + "mod": "dynatrace/monitor", + "fqn": "pulumi_azure.dynatrace", + "classes": { + "azure:dynatrace/monitor:Monitor": "Monitor" + } + }, { "pkg": "azure", "mod": "elasticcloud/elasticsearch", @@ -8256,6 +8291,14 @@ "azure:stack/hciMarketplaceGalleryImage:HciMarketplaceGalleryImage": "HciMarketplaceGalleryImage" } }, + { + "pkg": "azure", + "mod": "stack/hciNetworkInterface", + "fqn": "pulumi_azure.stack", + "classes": { + "azure:stack/hciNetworkInterface:HciNetworkInterface": "HciNetworkInterface" + } + }, { "pkg": "azure", "mod": "stack/hciStoragePath", @@ -8288,6 +8331,22 @@ "azure:storage/accountNetworkRules:AccountNetworkRules": "AccountNetworkRules" } }, + { + "pkg": "azure", + "mod": "storage/accountQueueProperties", + "fqn": "pulumi_azure.storage", + "classes": { + "azure:storage/accountQueueProperties:AccountQueueProperties": "AccountQueueProperties" + } + }, + { + "pkg": "azure", + "mod": "storage/accountStaticWebsite", + "fqn": "pulumi_azure.storage", + "classes": { + "azure:storage/accountStaticWebsite:AccountStaticWebsite": "AccountStaticWebsite" + } + }, { "pkg": "azure", "mod": "storage/blob", diff --git a/sdk/python/pulumi_azure/_inputs.py b/sdk/python/pulumi_azure/_inputs.py index 66652342ea..e6e4938e03 100644 --- a/sdk/python/pulumi_azure/_inputs.py +++ b/sdk/python/pulumi_azure/_inputs.py @@ -41,6 +41,8 @@ 'ProviderFeaturesRecoveryServicesVaultsArgsDict', 'ProviderFeaturesResourceGroupArgs', 'ProviderFeaturesResourceGroupArgsDict', + 'ProviderFeaturesStorageArgs', + 'ProviderFeaturesStorageArgsDict', 'ProviderFeaturesSubscriptionArgs', 'ProviderFeaturesSubscriptionArgsDict', 'ProviderFeaturesTemplateDeploymentArgs', @@ -67,6 +69,7 @@ class ProviderFeaturesArgsDict(TypedDict): recovery_service: NotRequired[pulumi.Input['ProviderFeaturesRecoveryServiceArgsDict']] recovery_services_vaults: NotRequired[pulumi.Input['ProviderFeaturesRecoveryServicesVaultsArgsDict']] resource_group: NotRequired[pulumi.Input['ProviderFeaturesResourceGroupArgsDict']] + storage: NotRequired[pulumi.Input['ProviderFeaturesStorageArgsDict']] subscription: NotRequired[pulumi.Input['ProviderFeaturesSubscriptionArgsDict']] template_deployment: NotRequired[pulumi.Input['ProviderFeaturesTemplateDeploymentArgsDict']] virtual_machine: NotRequired[pulumi.Input['ProviderFeaturesVirtualMachineArgsDict']] @@ -89,6 +92,7 @@ def __init__(__self__, *, recovery_service: Optional[pulumi.Input['ProviderFeaturesRecoveryServiceArgs']] = None, recovery_services_vaults: Optional[pulumi.Input['ProviderFeaturesRecoveryServicesVaultsArgs']] = None, resource_group: Optional[pulumi.Input['ProviderFeaturesResourceGroupArgs']] = None, + storage: Optional[pulumi.Input['ProviderFeaturesStorageArgs']] = None, subscription: Optional[pulumi.Input['ProviderFeaturesSubscriptionArgs']] = None, template_deployment: Optional[pulumi.Input['ProviderFeaturesTemplateDeploymentArgs']] = None, virtual_machine: Optional[pulumi.Input['ProviderFeaturesVirtualMachineArgs']] = None, @@ -117,6 +121,8 @@ def __init__(__self__, *, pulumi.set(__self__, "recovery_services_vaults", recovery_services_vaults) if resource_group is not None: pulumi.set(__self__, "resource_group", resource_group) + if storage is not None: + pulumi.set(__self__, "storage", storage) if subscription is not None: pulumi.set(__self__, "subscription", subscription) if template_deployment is not None: @@ -234,6 +240,15 @@ def resource_group(self) -> Optional[pulumi.Input['ProviderFeaturesResourceGroup def resource_group(self, value: Optional[pulumi.Input['ProviderFeaturesResourceGroupArgs']]): pulumi.set(self, "resource_group", value) + @property + @pulumi.getter + def storage(self) -> Optional[pulumi.Input['ProviderFeaturesStorageArgs']]: + return pulumi.get(self, "storage") + + @storage.setter + def storage(self, value: Optional[pulumi.Input['ProviderFeaturesStorageArgs']]): + pulumi.set(self, "storage", value) + @property @pulumi.getter def subscription(self) -> Optional[pulumi.Input['ProviderFeaturesSubscriptionArgs']]: @@ -795,6 +810,29 @@ def prevent_deletion_if_contains_resources(self, value: Optional[pulumi.Input[bo pulumi.set(self, "prevent_deletion_if_contains_resources", value) +if not MYPY: + class ProviderFeaturesStorageArgsDict(TypedDict): + data_plane_available: NotRequired[pulumi.Input[bool]] +elif False: + ProviderFeaturesStorageArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ProviderFeaturesStorageArgs: + def __init__(__self__, *, + data_plane_available: Optional[pulumi.Input[bool]] = None): + if data_plane_available is not None: + pulumi.set(__self__, "data_plane_available", data_plane_available) + + @property + @pulumi.getter(name="dataPlaneAvailable") + def data_plane_available(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "data_plane_available") + + @data_plane_available.setter + def data_plane_available(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "data_plane_available", value) + + if not MYPY: class ProviderFeaturesSubscriptionArgsDict(TypedDict): prevent_cancellation_on_destroy: NotRequired[pulumi.Input[bool]] diff --git a/sdk/python/pulumi_azure/cdn/_inputs.py b/sdk/python/pulumi_azure/cdn/_inputs.py index b70a32650e..0ce65b242c 100644 --- a/sdk/python/pulumi_azure/cdn/_inputs.py +++ b/sdk/python/pulumi_azure/cdn/_inputs.py @@ -3167,6 +3167,8 @@ class FrontdoorCustomDomainTlsArgsDict(TypedDict): minimum_tls_version: NotRequired[pulumi.Input[str]] """ 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. """ elif False: FrontdoorCustomDomainTlsArgsDict: TypeAlias = Mapping[str, Any] @@ -3183,6 +3185,8 @@ def __init__(__self__, *, ->**NOTE:** It may take up to 15 minutes for the Front Door Service to validate the state and Domain ownership of the Custom Domain. :param pulumi.Input[str] minimum_tls_version: 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. """ if cdn_frontdoor_secret_id is not None: pulumi.set(__self__, "cdn_frontdoor_secret_id", cdn_frontdoor_secret_id) @@ -3222,6 +3226,8 @@ def certificate_type(self, value: Optional[pulumi.Input[str]]): def minimum_tls_version(self) -> Optional[pulumi.Input[str]]: """ 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. """ return pulumi.get(self, "minimum_tls_version") diff --git a/sdk/python/pulumi_azure/cdn/outputs.py b/sdk/python/pulumi_azure/cdn/outputs.py index ef900e8243..c9d4c03957 100644 --- a/sdk/python/pulumi_azure/cdn/outputs.py +++ b/sdk/python/pulumi_azure/cdn/outputs.py @@ -2400,6 +2400,8 @@ def __init__(__self__, *, ->**NOTE:** It may take up to 15 minutes for the Front Door Service to validate the state and Domain ownership of the Custom Domain. :param str minimum_tls_version: 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. """ if cdn_frontdoor_secret_id is not None: pulumi.set(__self__, "cdn_frontdoor_secret_id", cdn_frontdoor_secret_id) @@ -2431,6 +2433,8 @@ def certificate_type(self) -> Optional[str]: def minimum_tls_version(self) -> Optional[str]: """ 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. """ return pulumi.get(self, "minimum_tls_version") diff --git a/sdk/python/pulumi_azure/cognitive/_inputs.py b/sdk/python/pulumi_azure/cognitive/_inputs.py index fc49e4cd09..e022fb216f 100644 --- a/sdk/python/pulumi_azure/cognitive/_inputs.py +++ b/sdk/python/pulumi_azure/cognitive/_inputs.py @@ -786,7 +786,7 @@ def version(self, value: Optional[pulumi.Input[str]]): class DeploymentSkuArgsDict(TypedDict): name: pulumi.Input[str] """ - 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`. """ capacity: NotRequired[pulumi.Input[int]] """ @@ -816,7 +816,7 @@ def __init__(__self__, *, size: Optional[pulumi.Input[str]] = None, tier: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] name: The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. + :param pulumi.Input[str] name: The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. :param pulumi.Input[int] capacity: Tokens-per-Minute (TPM). The unit of measure for this field is in the thousands of Tokens-per-Minute. Defaults to `1` which means that the limitation is `1000` tokens per minute. If the resources SKU supports scale in/out then the capacity field should be included in the resources' configuration. If the scale in/out is not supported by the resources SKU then this field can be safely omitted. For more information about TPM please see the [product documentation](https://learn.microsoft.com/azure/ai-services/openai/how-to/quota?tabs=rest). :param pulumi.Input[str] family: If the service has different generations of hardware, for the same SKU, then that can be captured here. Changing this forces a new resource to be created. :param pulumi.Input[str] size: The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. Changing this forces a new resource to be created. @@ -836,7 +836,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> pulumi.Input[str]: """ - 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`. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_azure/cognitive/outputs.py b/sdk/python/pulumi_azure/cognitive/outputs.py index 80fd71e61d..a86dc3b395 100644 --- a/sdk/python/pulumi_azure/cognitive/outputs.py +++ b/sdk/python/pulumi_azure/cognitive/outputs.py @@ -678,7 +678,7 @@ def __init__(__self__, *, size: Optional[str] = None, tier: Optional[str] = None): """ - :param str name: The name of the SKU. Possible values include `Standard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. + :param str name: The name of the SKU. Possible values include `Standard`, `DataZoneStandard`, `GlobalBatch`, `GlobalStandard` and `ProvisionedManaged`. :param int capacity: Tokens-per-Minute (TPM). The unit of measure for this field is in the thousands of Tokens-per-Minute. Defaults to `1` which means that the limitation is `1000` tokens per minute. If the resources SKU supports scale in/out then the capacity field should be included in the resources' configuration. If the scale in/out is not supported by the resources SKU then this field can be safely omitted. For more information about TPM please see the [product documentation](https://learn.microsoft.com/azure/ai-services/openai/how-to/quota?tabs=rest). :param str family: If the service has different generations of hardware, for the same SKU, then that can be captured here. Changing this forces a new resource to be created. :param str size: The SKU size. When the name field is the combination of tier and some other value, this would be the standalone code. Changing this forces a new resource to be created. @@ -698,7 +698,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> str: """ - 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`. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_azure/config/outputs.py b/sdk/python/pulumi_azure/config/outputs.py index 94375e97ba..a2d902c6e3 100644 --- a/sdk/python/pulumi_azure/config/outputs.py +++ b/sdk/python/pulumi_azure/config/outputs.py @@ -29,6 +29,7 @@ 'FeaturesRecoveryService', 'FeaturesRecoveryServicesVaults', 'FeaturesResourceGroup', + 'FeaturesStorage', 'FeaturesSubscription', 'FeaturesTemplateDeployment', 'FeaturesVirtualMachine', @@ -50,6 +51,7 @@ def __init__(__self__, *, recovery_service: Optional['outputs.FeaturesRecoveryService'] = None, recovery_services_vaults: Optional['outputs.FeaturesRecoveryServicesVaults'] = None, resource_group: Optional['outputs.FeaturesResourceGroup'] = None, + storage: Optional['outputs.FeaturesStorage'] = None, subscription: Optional['outputs.FeaturesSubscription'] = None, template_deployment: Optional['outputs.FeaturesTemplateDeployment'] = None, virtual_machine: Optional['outputs.FeaturesVirtualMachine'] = None, @@ -78,6 +80,8 @@ def __init__(__self__, *, pulumi.set(__self__, "recovery_services_vaults", recovery_services_vaults) if resource_group is not None: pulumi.set(__self__, "resource_group", resource_group) + if storage is not None: + pulumi.set(__self__, "storage", storage) if subscription is not None: pulumi.set(__self__, "subscription", subscription) if template_deployment is not None: @@ -147,6 +151,11 @@ def recovery_services_vaults(self) -> Optional['outputs.FeaturesRecoveryServices def resource_group(self) -> Optional['outputs.FeaturesResourceGroup']: return pulumi.get(self, "resource_group") + @property + @pulumi.getter + def storage(self) -> Optional['outputs.FeaturesStorage']: + return pulumi.get(self, "storage") + @property @pulumi.getter def subscription(self) -> Optional['outputs.FeaturesSubscription']: @@ -474,6 +483,19 @@ def prevent_deletion_if_contains_resources(self) -> Optional[bool]: return pulumi.get(self, "prevent_deletion_if_contains_resources") +@pulumi.output_type +class FeaturesStorage(dict): + def __init__(__self__, *, + data_plane_available: Optional[bool] = None): + if data_plane_available is not None: + pulumi.set(__self__, "data_plane_available", data_plane_available) + + @property + @pulumi.getter(name="dataPlaneAvailable") + def data_plane_available(self) -> Optional[bool]: + return pulumi.get(self, "data_plane_available") + + @pulumi.output_type class FeaturesSubscription(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_azure/containerservice/kubernetes_cluster.py b/sdk/python/pulumi_azure/containerservice/kubernetes_cluster.py index 81f8210fa3..3c7fae8721 100644 --- a/sdk/python/pulumi_azure/containerservice/kubernetes_cluster.py +++ b/sdk/python/pulumi_azure/containerservice/kubernetes_cluster.py @@ -77,7 +77,7 @@ def __init__(__self__, *, workload_identity_enabled: Optional[pulumi.Input[bool]] = None): """ The set of arguments for constructing a KubernetesCluster resource. - :param pulumi.Input['KubernetesClusterDefaultNodePoolArgs'] default_node_pool: A `default_node_pool` block as defined below. + :param pulumi.Input['KubernetesClusterDefaultNodePoolArgs'] default_node_pool: Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. :param pulumi.Input[str] resource_group_name: Specifies the Resource Group where the Managed Kubernetes Cluster should exist. Changing this forces a new resource to be created. :param pulumi.Input['KubernetesClusterAciConnectorLinuxArgs'] aci_connector_linux: A `aci_connector_linux` block as defined below. For more details, please visit [Create and configure an AKS cluster to use virtual nodes](https://docs.microsoft.com/azure/aks/virtual-nodes-portal). :param pulumi.Input['KubernetesClusterApiServerAccessProfileArgs'] api_server_access_profile: An `api_server_access_profile` block as defined below. @@ -307,7 +307,7 @@ def __init__(__self__, *, @pulumi.getter(name="defaultNodePool") def default_node_pool(self) -> pulumi.Input['KubernetesClusterDefaultNodePoolArgs']: """ - A `default_node_pool` block as defined below. + Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. """ return pulumi.get(self, "default_node_pool") @@ -1099,7 +1099,7 @@ def __init__(__self__, *, :param pulumi.Input['KubernetesClusterConfidentialComputingArgs'] confidential_computing: A `confidential_computing` block as defined below. For more details please [the documentation](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-nodes-aks-overview) :param pulumi.Input[bool] cost_analysis_enabled: Should cost analysis be enabled for this Kubernetes Cluster? Defaults to `false`. The `sku_tier` must be set to `Standard` or `Premium` to enable this feature. Enabling this will add Kubernetes Namespace and Deployment details to the Cost Analysis views in the Azure portal. :param pulumi.Input[str] current_kubernetes_version: The current version running on the Azure Kubernetes Managed Cluster. - :param pulumi.Input['KubernetesClusterDefaultNodePoolArgs'] default_node_pool: A `default_node_pool` block as defined below. + :param pulumi.Input['KubernetesClusterDefaultNodePoolArgs'] default_node_pool: Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. :param pulumi.Input[str] disk_encryption_set_id: The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. :param pulumi.Input[str] dns_prefix: DNS prefix specified when creating the managed cluster. Possible values must begin and end with a letter or number, contain only letters, numbers, and hyphens and be between 1 and 54 characters in length. Changing this forces a new resource to be created. :param pulumi.Input[str] dns_prefix_private_cluster: Specifies the DNS prefix to use with private clusters. Changing this forces a new resource to be created. @@ -1463,7 +1463,7 @@ def current_kubernetes_version(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="defaultNodePool") def default_node_pool(self) -> Optional[pulumi.Input['KubernetesClusterDefaultNodePoolArgs']]: """ - A `default_node_pool` block as defined below. + Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. """ return pulumi.get(self, "default_node_pool") @@ -2308,7 +2308,7 @@ def __init__(__self__, :param pulumi.Input[bool] azure_policy_enabled: Should the Azure Policy Add-On be enabled? For more details please visit [Understand Azure Policy for Azure Kubernetes Service](https://docs.microsoft.com/en-ie/azure/governance/policy/concepts/rego-for-aks) :param pulumi.Input[Union['KubernetesClusterConfidentialComputingArgs', 'KubernetesClusterConfidentialComputingArgsDict']] confidential_computing: A `confidential_computing` block as defined below. For more details please [the documentation](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-nodes-aks-overview) :param pulumi.Input[bool] cost_analysis_enabled: Should cost analysis be enabled for this Kubernetes Cluster? Defaults to `false`. The `sku_tier` must be set to `Standard` or `Premium` to enable this feature. Enabling this will add Kubernetes Namespace and Deployment details to the Cost Analysis views in the Azure portal. - :param pulumi.Input[Union['KubernetesClusterDefaultNodePoolArgs', 'KubernetesClusterDefaultNodePoolArgsDict']] default_node_pool: A `default_node_pool` block as defined below. + :param pulumi.Input[Union['KubernetesClusterDefaultNodePoolArgs', 'KubernetesClusterDefaultNodePoolArgsDict']] default_node_pool: Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. :param pulumi.Input[str] disk_encryption_set_id: The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. :param pulumi.Input[str] dns_prefix: DNS prefix specified when creating the managed cluster. Possible values must begin and end with a letter or number, contain only letters, numbers, and hyphens and be between 1 and 54 characters in length. Changing this forces a new resource to be created. :param pulumi.Input[str] dns_prefix_private_cluster: Specifies the DNS prefix to use with private clusters. Changing this forces a new resource to be created. @@ -2707,7 +2707,7 @@ def get(resource_name: str, :param pulumi.Input[Union['KubernetesClusterConfidentialComputingArgs', 'KubernetesClusterConfidentialComputingArgsDict']] confidential_computing: A `confidential_computing` block as defined below. For more details please [the documentation](https://learn.microsoft.com/en-us/azure/confidential-computing/confidential-nodes-aks-overview) :param pulumi.Input[bool] cost_analysis_enabled: Should cost analysis be enabled for this Kubernetes Cluster? Defaults to `false`. The `sku_tier` must be set to `Standard` or `Premium` to enable this feature. Enabling this will add Kubernetes Namespace and Deployment details to the Cost Analysis views in the Azure portal. :param pulumi.Input[str] current_kubernetes_version: The current version running on the Azure Kubernetes Managed Cluster. - :param pulumi.Input[Union['KubernetesClusterDefaultNodePoolArgs', 'KubernetesClusterDefaultNodePoolArgsDict']] default_node_pool: A `default_node_pool` block as defined below. + :param pulumi.Input[Union['KubernetesClusterDefaultNodePoolArgs', 'KubernetesClusterDefaultNodePoolArgsDict']] default_node_pool: Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. :param pulumi.Input[str] disk_encryption_set_id: The ID of the Disk Encryption Set which should be used for the Nodes and Volumes. More information [can be found in the documentation](https://docs.microsoft.com/azure/aks/azure-disk-customer-managed-keys). Changing this forces a new resource to be created. :param pulumi.Input[str] dns_prefix: DNS prefix specified when creating the managed cluster. Possible values must begin and end with a letter or number, contain only letters, numbers, and hyphens and be between 1 and 54 characters in length. Changing this forces a new resource to be created. :param pulumi.Input[str] dns_prefix_private_cluster: Specifies the DNS prefix to use with private clusters. Changing this forces a new resource to be created. @@ -2975,7 +2975,7 @@ def current_kubernetes_version(self) -> pulumi.Output[str]: @pulumi.getter(name="defaultNodePool") def default_node_pool(self) -> pulumi.Output['outputs.KubernetesClusterDefaultNodePool']: """ - A `default_node_pool` block as defined below. + Specifies configuration for "System" mode node pool. A `default_node_pool` block as defined below. """ return pulumi.get(self, "default_node_pool") diff --git a/sdk/python/pulumi_azure/cosmosdb/__init__.py b/sdk/python/pulumi_azure/cosmosdb/__init__.py index 10bd49efbf..d4f5edabc8 100644 --- a/sdk/python/pulumi_azure/cosmosdb/__init__.py +++ b/sdk/python/pulumi_azure/cosmosdb/__init__.py @@ -17,6 +17,7 @@ from .get_sql_role_definition import * from .gremlin_database import * from .gremlin_graph import * +from .mongo_cluster import * from .mongo_collection import * from .mongo_database import * from .mongo_role_definition import * diff --git a/sdk/python/pulumi_azure/cosmosdb/mongo_cluster.py b/sdk/python/pulumi_azure/cosmosdb/mongo_cluster.py new file mode 100644 index 0000000000..7eb95f9965 --- /dev/null +++ b/sdk/python/pulumi_azure/cosmosdb/mongo_cluster.py @@ -0,0 +1,988 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['MongoClusterArgs', 'MongoCluster'] + +@pulumi.input_type +class MongoClusterArgs: + def __init__(__self__, *, + resource_group_name: pulumi.Input[str], + administrator_password: Optional[pulumi.Input[str]] = None, + administrator_username: Optional[pulumi.Input[str]] = None, + compute_tier: Optional[pulumi.Input[str]] = None, + create_mode: Optional[pulumi.Input[str]] = None, + high_availability_mode: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preview_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + public_network_access: Optional[pulumi.Input[str]] = None, + shard_count: Optional[pulumi.Input[int]] = None, + source_location: Optional[pulumi.Input[str]] = None, + source_server_id: Optional[pulumi.Input[str]] = None, + storage_size_in_gb: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a MongoCluster resource. + :param pulumi.Input[str] resource_group_name: The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] administrator_password: The Password associated with the `administrator_username` for the MongoDB Cluster. + :param pulumi.Input[str] administrator_username: The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] compute_tier: The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + :param pulumi.Input[str] create_mode: 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. + :param pulumi.Input[str] high_availability_mode: The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + :param pulumi.Input[str] location: The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] preview_features: The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] public_network_access: The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + :param pulumi.Input[int] shard_count: The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_location: The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_server_id: The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[int] storage_size_in_gb: The size of the data disk space for the MongoDB Cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the MongoDB Cluster. + :param pulumi.Input[str] version: The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + """ + pulumi.set(__self__, "resource_group_name", resource_group_name) + if administrator_password is not None: + pulumi.set(__self__, "administrator_password", administrator_password) + if administrator_username is not None: + pulumi.set(__self__, "administrator_username", administrator_username) + if compute_tier is not None: + pulumi.set(__self__, "compute_tier", compute_tier) + if create_mode is not None: + pulumi.set(__self__, "create_mode", create_mode) + if high_availability_mode is not None: + pulumi.set(__self__, "high_availability_mode", high_availability_mode) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if preview_features is not None: + pulumi.set(__self__, "preview_features", preview_features) + if public_network_access is not None: + pulumi.set(__self__, "public_network_access", public_network_access) + if shard_count is not None: + pulumi.set(__self__, "shard_count", shard_count) + if source_location is not None: + pulumi.set(__self__, "source_location", source_location) + if source_server_id is not None: + pulumi.set(__self__, "source_server_id", source_server_id) + if storage_size_in_gb is not None: + pulumi.set(__self__, "storage_size_in_gb", storage_size_in_gb) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if version is not None: + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> pulumi.Input[str]: + """ + The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @resource_group_name.setter + def resource_group_name(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_group_name", value) + + @property + @pulumi.getter(name="administratorPassword") + def administrator_password(self) -> Optional[pulumi.Input[str]]: + """ + The Password associated with the `administrator_username` for the MongoDB Cluster. + """ + return pulumi.get(self, "administrator_password") + + @administrator_password.setter + def administrator_password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "administrator_password", value) + + @property + @pulumi.getter(name="administratorUsername") + def administrator_username(self) -> Optional[pulumi.Input[str]]: + """ + The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "administrator_username") + + @administrator_username.setter + def administrator_username(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "administrator_username", value) + + @property + @pulumi.getter(name="computeTier") + def compute_tier(self) -> Optional[pulumi.Input[str]]: + """ + The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + """ + return pulumi.get(self, "compute_tier") + + @compute_tier.setter + def compute_tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "compute_tier", value) + + @property + @pulumi.getter(name="createMode") + def create_mode(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "create_mode") + + @create_mode.setter + def create_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_mode", value) + + @property + @pulumi.getter(name="highAvailabilityMode") + def high_availability_mode(self) -> Optional[pulumi.Input[str]]: + """ + The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + """ + return pulumi.get(self, "high_availability_mode") + + @high_availability_mode.setter + def high_availability_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "high_availability_mode", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="previewFeatures") + def preview_features(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "preview_features") + + @preview_features.setter + def preview_features(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "preview_features", value) + + @property + @pulumi.getter(name="publicNetworkAccess") + def public_network_access(self) -> Optional[pulumi.Input[str]]: + """ + The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + """ + return pulumi.get(self, "public_network_access") + + @public_network_access.setter + def public_network_access(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "public_network_access", value) + + @property + @pulumi.getter(name="shardCount") + def shard_count(self) -> Optional[pulumi.Input[int]]: + """ + The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "shard_count") + + @shard_count.setter + def shard_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "shard_count", value) + + @property + @pulumi.getter(name="sourceLocation") + def source_location(self) -> Optional[pulumi.Input[str]]: + """ + The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "source_location") + + @source_location.setter + def source_location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_location", value) + + @property + @pulumi.getter(name="sourceServerId") + def source_server_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "source_server_id") + + @source_server_id.setter + def source_server_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_server_id", value) + + @property + @pulumi.getter(name="storageSizeInGb") + def storage_size_in_gb(self) -> Optional[pulumi.Input[int]]: + """ + The size of the data disk space for the MongoDB Cluster. + """ + return pulumi.get(self, "storage_size_in_gb") + + @storage_size_in_gb.setter + def storage_size_in_gb(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "storage_size_in_gb", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags to assign to the MongoDB Cluster. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + """ + The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + +@pulumi.input_type +class _MongoClusterState: + def __init__(__self__, *, + administrator_password: Optional[pulumi.Input[str]] = None, + administrator_username: Optional[pulumi.Input[str]] = None, + compute_tier: Optional[pulumi.Input[str]] = None, + create_mode: Optional[pulumi.Input[str]] = None, + high_availability_mode: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preview_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + public_network_access: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + shard_count: Optional[pulumi.Input[int]] = None, + source_location: Optional[pulumi.Input[str]] = None, + source_server_id: Optional[pulumi.Input[str]] = None, + storage_size_in_gb: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering MongoCluster resources. + :param pulumi.Input[str] administrator_password: The Password associated with the `administrator_username` for the MongoDB Cluster. + :param pulumi.Input[str] administrator_username: The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] compute_tier: The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + :param pulumi.Input[str] create_mode: 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. + :param pulumi.Input[str] high_availability_mode: The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + :param pulumi.Input[str] location: The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] preview_features: The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] public_network_access: The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + :param pulumi.Input[str] resource_group_name: The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[int] shard_count: The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_location: The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_server_id: The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[int] storage_size_in_gb: The size of the data disk space for the MongoDB Cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the MongoDB Cluster. + :param pulumi.Input[str] version: The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + """ + if administrator_password is not None: + pulumi.set(__self__, "administrator_password", administrator_password) + if administrator_username is not None: + pulumi.set(__self__, "administrator_username", administrator_username) + if compute_tier is not None: + pulumi.set(__self__, "compute_tier", compute_tier) + if create_mode is not None: + pulumi.set(__self__, "create_mode", create_mode) + if high_availability_mode is not None: + pulumi.set(__self__, "high_availability_mode", high_availability_mode) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if preview_features is not None: + pulumi.set(__self__, "preview_features", preview_features) + if public_network_access is not None: + pulumi.set(__self__, "public_network_access", public_network_access) + if resource_group_name is not None: + pulumi.set(__self__, "resource_group_name", resource_group_name) + if shard_count is not None: + pulumi.set(__self__, "shard_count", shard_count) + if source_location is not None: + pulumi.set(__self__, "source_location", source_location) + if source_server_id is not None: + pulumi.set(__self__, "source_server_id", source_server_id) + if storage_size_in_gb is not None: + pulumi.set(__self__, "storage_size_in_gb", storage_size_in_gb) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if version is not None: + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter(name="administratorPassword") + def administrator_password(self) -> Optional[pulumi.Input[str]]: + """ + The Password associated with the `administrator_username` for the MongoDB Cluster. + """ + return pulumi.get(self, "administrator_password") + + @administrator_password.setter + def administrator_password(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "administrator_password", value) + + @property + @pulumi.getter(name="administratorUsername") + def administrator_username(self) -> Optional[pulumi.Input[str]]: + """ + The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "administrator_username") + + @administrator_username.setter + def administrator_username(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "administrator_username", value) + + @property + @pulumi.getter(name="computeTier") + def compute_tier(self) -> Optional[pulumi.Input[str]]: + """ + The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + """ + return pulumi.get(self, "compute_tier") + + @compute_tier.setter + def compute_tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "compute_tier", value) + + @property + @pulumi.getter(name="createMode") + def create_mode(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "create_mode") + + @create_mode.setter + def create_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "create_mode", value) + + @property + @pulumi.getter(name="highAvailabilityMode") + def high_availability_mode(self) -> Optional[pulumi.Input[str]]: + """ + The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + """ + return pulumi.get(self, "high_availability_mode") + + @high_availability_mode.setter + def high_availability_mode(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "high_availability_mode", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="previewFeatures") + def preview_features(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "preview_features") + + @preview_features.setter + def preview_features(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "preview_features", value) + + @property + @pulumi.getter(name="publicNetworkAccess") + def public_network_access(self) -> Optional[pulumi.Input[str]]: + """ + The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + """ + return pulumi.get(self, "public_network_access") + + @public_network_access.setter + def public_network_access(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "public_network_access", value) + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @resource_group_name.setter + def resource_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_group_name", value) + + @property + @pulumi.getter(name="shardCount") + def shard_count(self) -> Optional[pulumi.Input[int]]: + """ + The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "shard_count") + + @shard_count.setter + def shard_count(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "shard_count", value) + + @property + @pulumi.getter(name="sourceLocation") + def source_location(self) -> Optional[pulumi.Input[str]]: + """ + The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "source_location") + + @source_location.setter + def source_location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_location", value) + + @property + @pulumi.getter(name="sourceServerId") + def source_server_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "source_server_id") + + @source_server_id.setter + def source_server_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "source_server_id", value) + + @property + @pulumi.getter(name="storageSizeInGb") + def storage_size_in_gb(self) -> Optional[pulumi.Input[int]]: + """ + The size of the data disk space for the MongoDB Cluster. + """ + return pulumi.get(self, "storage_size_in_gb") + + @storage_size_in_gb.setter + def storage_size_in_gb(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "storage_size_in_gb", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags to assign to the MongoDB Cluster. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def version(self) -> Optional[pulumi.Input[str]]: + """ + The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + """ + return pulumi.get(self, "version") + + @version.setter + def version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "version", value) + + +class MongoCluster(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + administrator_password: Optional[pulumi.Input[str]] = None, + administrator_username: Optional[pulumi.Input[str]] = None, + compute_tier: Optional[pulumi.Input[str]] = None, + create_mode: Optional[pulumi.Input[str]] = None, + high_availability_mode: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preview_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + public_network_access: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + shard_count: Optional[pulumi.Input[int]] = None, + source_location: Optional[pulumi.Input[str]] = None, + source_server_id: Optional[pulumi.Input[str]] = None, + storage_size_in_gb: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages a MongoDB Cluster using vCore Architecture. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-rg", + location="East US") + example_mongo_cluster = azure.cosmosdb.MongoCluster("example", + name="example-mc", + resource_group_name=example.name, + location=example.location, + administrator_username="adminTerraform", + administrator_password="QAZwsx123", + shard_count=1, + compute_tier="Free", + high_availability_mode="Disabled", + storage_size_in_gb=32) + ``` + + ### Preview Feature GeoReplicas) + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-rg", + location="East US") + example_mongo_cluster = azure.cosmosdb.MongoCluster("example", + name="example-mc", + resource_group_name=example.name, + location=example.location, + administrator_username="adminTerraform", + administrator_password="QAZwsx123", + shard_count=1, + compute_tier="M30", + high_availability_mode="ZoneRedundantPreferred", + storage_size_in_gb=64, + preview_features=["GeoReplicas"]) + example_geo_replica = azure.cosmosdb.MongoCluster("example_geo_replica", + name="example-mc-geo", + resource_group_name=example.name, + location="Central US", + source_server_id=example_mongo_cluster.id, + source_location=example_mongo_cluster.location, + create_mode="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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] administrator_password: The Password associated with the `administrator_username` for the MongoDB Cluster. + :param pulumi.Input[str] administrator_username: The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] compute_tier: The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + :param pulumi.Input[str] create_mode: 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. + :param pulumi.Input[str] high_availability_mode: The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + :param pulumi.Input[str] location: The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] preview_features: The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] public_network_access: The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + :param pulumi.Input[str] resource_group_name: The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[int] shard_count: The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_location: The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_server_id: The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[int] storage_size_in_gb: The size of the data disk space for the MongoDB Cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the MongoDB Cluster. + :param pulumi.Input[str] version: The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MongoClusterArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages a MongoDB Cluster using vCore Architecture. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-rg", + location="East US") + example_mongo_cluster = azure.cosmosdb.MongoCluster("example", + name="example-mc", + resource_group_name=example.name, + location=example.location, + administrator_username="adminTerraform", + administrator_password="QAZwsx123", + shard_count=1, + compute_tier="Free", + high_availability_mode="Disabled", + storage_size_in_gb=32) + ``` + + ### Preview Feature GeoReplicas) + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-rg", + location="East US") + example_mongo_cluster = azure.cosmosdb.MongoCluster("example", + name="example-mc", + resource_group_name=example.name, + location=example.location, + administrator_username="adminTerraform", + administrator_password="QAZwsx123", + shard_count=1, + compute_tier="M30", + high_availability_mode="ZoneRedundantPreferred", + storage_size_in_gb=64, + preview_features=["GeoReplicas"]) + example_geo_replica = azure.cosmosdb.MongoCluster("example_geo_replica", + name="example-mc-geo", + resource_group_name=example.name, + location="Central US", + source_server_id=example_mongo_cluster.id, + source_location=example_mongo_cluster.location, + create_mode="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 + ``` + + :param str resource_name: The name of the resource. + :param MongoClusterArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MongoClusterArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + administrator_password: Optional[pulumi.Input[str]] = None, + administrator_username: Optional[pulumi.Input[str]] = None, + compute_tier: Optional[pulumi.Input[str]] = None, + create_mode: Optional[pulumi.Input[str]] = None, + high_availability_mode: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preview_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + public_network_access: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + shard_count: Optional[pulumi.Input[int]] = None, + source_location: Optional[pulumi.Input[str]] = None, + source_server_id: Optional[pulumi.Input[str]] = None, + storage_size_in_gb: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MongoClusterArgs.__new__(MongoClusterArgs) + + __props__.__dict__["administrator_password"] = None if administrator_password is None else pulumi.Output.secret(administrator_password) + __props__.__dict__["administrator_username"] = administrator_username + __props__.__dict__["compute_tier"] = compute_tier + __props__.__dict__["create_mode"] = create_mode + __props__.__dict__["high_availability_mode"] = high_availability_mode + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["preview_features"] = preview_features + __props__.__dict__["public_network_access"] = public_network_access + if resource_group_name is None and not opts.urn: + raise TypeError("Missing required property 'resource_group_name'") + __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["shard_count"] = shard_count + __props__.__dict__["source_location"] = source_location + __props__.__dict__["source_server_id"] = source_server_id + __props__.__dict__["storage_size_in_gb"] = storage_size_in_gb + __props__.__dict__["tags"] = tags + __props__.__dict__["version"] = version + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["administratorPassword"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) + super(MongoCluster, __self__).__init__( + 'azure:cosmosdb/mongoCluster:MongoCluster', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + administrator_password: Optional[pulumi.Input[str]] = None, + administrator_username: Optional[pulumi.Input[str]] = None, + compute_tier: Optional[pulumi.Input[str]] = None, + create_mode: Optional[pulumi.Input[str]] = None, + high_availability_mode: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + preview_features: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + public_network_access: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + shard_count: Optional[pulumi.Input[int]] = None, + source_location: Optional[pulumi.Input[str]] = None, + source_server_id: Optional[pulumi.Input[str]] = None, + storage_size_in_gb: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None) -> 'MongoCluster': + """ + Get an existing MongoCluster resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] administrator_password: The Password associated with the `administrator_username` for the MongoDB Cluster. + :param pulumi.Input[str] administrator_username: The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] compute_tier: The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + :param pulumi.Input[str] create_mode: 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. + :param pulumi.Input[str] high_availability_mode: The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + :param pulumi.Input[str] location: The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] preview_features: The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] public_network_access: The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + :param pulumi.Input[str] resource_group_name: The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[int] shard_count: The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_location: The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] source_server_id: The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[int] storage_size_in_gb: The size of the data disk space for the MongoDB Cluster. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the MongoDB Cluster. + :param pulumi.Input[str] version: The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _MongoClusterState.__new__(_MongoClusterState) + + __props__.__dict__["administrator_password"] = administrator_password + __props__.__dict__["administrator_username"] = administrator_username + __props__.__dict__["compute_tier"] = compute_tier + __props__.__dict__["create_mode"] = create_mode + __props__.__dict__["high_availability_mode"] = high_availability_mode + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["preview_features"] = preview_features + __props__.__dict__["public_network_access"] = public_network_access + __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["shard_count"] = shard_count + __props__.__dict__["source_location"] = source_location + __props__.__dict__["source_server_id"] = source_server_id + __props__.__dict__["storage_size_in_gb"] = storage_size_in_gb + __props__.__dict__["tags"] = tags + __props__.__dict__["version"] = version + return MongoCluster(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="administratorPassword") + def administrator_password(self) -> pulumi.Output[Optional[str]]: + """ + The Password associated with the `administrator_username` for the MongoDB Cluster. + """ + return pulumi.get(self, "administrator_password") + + @property + @pulumi.getter(name="administratorUsername") + def administrator_username(self) -> pulumi.Output[Optional[str]]: + """ + The administrator username of the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "administrator_username") + + @property + @pulumi.getter(name="computeTier") + def compute_tier(self) -> pulumi.Output[Optional[str]]: + """ + The compute tier to assign to the MongoDB Cluster. Possible values are `Free`, `M25`, `M30`, `M40`, `M50`, `M60` and `M80`. + """ + return pulumi.get(self, "compute_tier") + + @property + @pulumi.getter(name="createMode") + def create_mode(self) -> pulumi.Output[Optional[str]]: + """ + 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. + """ + return pulumi.get(self, "create_mode") + + @property + @pulumi.getter(name="highAvailabilityMode") + def high_availability_mode(self) -> pulumi.Output[Optional[str]]: + """ + The high availability mode for the MongoDB Cluster. Possibles values are `Disabled` and `ZoneRedundantPreferred`. + """ + return pulumi.get(self, "high_availability_mode") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The supported Azure location where the MongoDB Cluster exists. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name which should be used for the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="previewFeatures") + def preview_features(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The preview features that can be enabled on the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "preview_features") + + @property + @pulumi.getter(name="publicNetworkAccess") + def public_network_access(self) -> pulumi.Output[Optional[str]]: + """ + The Public Network Access setting for the MongoDB Cluster. Possibles values are `Disabled` and `Enabled`. Defaults to `Enabled`. + """ + return pulumi.get(self, "public_network_access") + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> pulumi.Output[str]: + """ + The name of the resource group in which to create the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @property + @pulumi.getter(name="shardCount") + def shard_count(self) -> pulumi.Output[Optional[int]]: + """ + The Number of shards to provision on the MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "shard_count") + + @property + @pulumi.getter(name="sourceLocation") + def source_location(self) -> pulumi.Output[Optional[str]]: + """ + The location of the source MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "source_location") + + @property + @pulumi.getter(name="sourceServerId") + def source_server_id(self) -> pulumi.Output[Optional[str]]: + """ + The ID of the replication source MongoDB Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "source_server_id") + + @property + @pulumi.getter(name="storageSizeInGb") + def storage_size_in_gb(self) -> pulumi.Output[Optional[int]]: + """ + The size of the data disk space for the MongoDB Cluster. + """ + return pulumi.get(self, "storage_size_in_gb") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A mapping of tags to assign to the MongoDB Cluster. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def version(self) -> pulumi.Output[Optional[str]]: + """ + The version for the MongoDB Cluster. Possibles values are `5.0`, `6.0` and `7.0`. + """ + return pulumi.get(self, "version") + diff --git a/sdk/python/pulumi_azure/dashboard/__init__.py b/sdk/python/pulumi_azure/dashboard/__init__.py index 0b1424af82..e40114148e 100644 --- a/sdk/python/pulumi_azure/dashboard/__init__.py +++ b/sdk/python/pulumi_azure/dashboard/__init__.py @@ -8,5 +8,6 @@ from .azurerm_portal_dashboard import * from .get_grafana import * from .grafana import * +from .grafana_managed_private_endpoint import * from ._inputs import * from . import outputs diff --git a/sdk/python/pulumi_azure/dashboard/grafana_managed_private_endpoint.py b/sdk/python/pulumi_azure/dashboard/grafana_managed_private_endpoint.py new file mode 100644 index 0000000000..903e85fc57 --- /dev/null +++ b/sdk/python/pulumi_azure/dashboard/grafana_managed_private_endpoint.py @@ -0,0 +1,565 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['GrafanaManagedPrivateEndpointArgs', 'GrafanaManagedPrivateEndpoint'] + +@pulumi.input_type +class GrafanaManagedPrivateEndpointArgs: + def __init__(__self__, *, + grafana_id: pulumi.Input[str], + private_link_resource_id: pulumi.Input[str], + group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_link_resource_region: Optional[pulumi.Input[str]] = None, + request_message: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a GrafanaManagedPrivateEndpoint resource. + :param pulumi.Input[str] grafana_id: The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[str] private_link_resource_id: 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. + :param pulumi.Input[Sequence[pulumi.Input[str]]] group_ids: 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. + :param pulumi.Input[str] location: 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. + :param pulumi.Input[str] name: 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. + :param pulumi.Input[str] private_link_resource_region: The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[str] request_message: A message to provide in the request which will be seen by approvers. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + """ + pulumi.set(__self__, "grafana_id", grafana_id) + pulumi.set(__self__, "private_link_resource_id", private_link_resource_id) + if group_ids is not None: + pulumi.set(__self__, "group_ids", group_ids) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if private_link_resource_region is not None: + pulumi.set(__self__, "private_link_resource_region", private_link_resource_region) + if request_message is not None: + pulumi.set(__self__, "request_message", request_message) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="grafanaId") + def grafana_id(self) -> pulumi.Input[str]: + """ + The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + """ + return pulumi.get(self, "grafana_id") + + @grafana_id.setter + def grafana_id(self, value: pulumi.Input[str]): + pulumi.set(self, "grafana_id", value) + + @property + @pulumi.getter(name="privateLinkResourceId") + def private_link_resource_id(self) -> pulumi.Input[str]: + """ + 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. + """ + return pulumi.get(self, "private_link_resource_id") + + @private_link_resource_id.setter + def private_link_resource_id(self, value: pulumi.Input[str]): + pulumi.set(self, "private_link_resource_id", value) + + @property + @pulumi.getter(name="groupIds") + def group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "group_ids") + + @group_ids.setter + def group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "group_ids", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="privateLinkResourceRegion") + def private_link_resource_region(self) -> Optional[pulumi.Input[str]]: + """ + The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + """ + return pulumi.get(self, "private_link_resource_region") + + @private_link_resource_region.setter + def private_link_resource_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "private_link_resource_region", value) + + @property + @pulumi.getter(name="requestMessage") + def request_message(self) -> Optional[pulumi.Input[str]]: + """ + A message to provide in the request which will be seen by approvers. + """ + return pulumi.get(self, "request_message") + + @request_message.setter + def request_message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "request_message", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +@pulumi.input_type +class _GrafanaManagedPrivateEndpointState: + def __init__(__self__, *, + grafana_id: Optional[pulumi.Input[str]] = None, + group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_link_resource_id: Optional[pulumi.Input[str]] = None, + private_link_resource_region: Optional[pulumi.Input[str]] = None, + request_message: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering GrafanaManagedPrivateEndpoint resources. + :param pulumi.Input[str] grafana_id: The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] group_ids: 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. + :param pulumi.Input[str] location: 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. + :param pulumi.Input[str] name: 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. + :param pulumi.Input[str] private_link_resource_id: 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. + :param pulumi.Input[str] private_link_resource_region: The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[str] request_message: A message to provide in the request which will be seen by approvers. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + """ + if grafana_id is not None: + pulumi.set(__self__, "grafana_id", grafana_id) + if group_ids is not None: + pulumi.set(__self__, "group_ids", group_ids) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if private_link_resource_id is not None: + pulumi.set(__self__, "private_link_resource_id", private_link_resource_id) + if private_link_resource_region is not None: + pulumi.set(__self__, "private_link_resource_region", private_link_resource_region) + if request_message is not None: + pulumi.set(__self__, "request_message", request_message) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="grafanaId") + def grafana_id(self) -> Optional[pulumi.Input[str]]: + """ + The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + """ + return pulumi.get(self, "grafana_id") + + @grafana_id.setter + def grafana_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "grafana_id", value) + + @property + @pulumi.getter(name="groupIds") + def group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "group_ids") + + @group_ids.setter + def group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "group_ids", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="privateLinkResourceId") + def private_link_resource_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "private_link_resource_id") + + @private_link_resource_id.setter + def private_link_resource_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "private_link_resource_id", value) + + @property + @pulumi.getter(name="privateLinkResourceRegion") + def private_link_resource_region(self) -> Optional[pulumi.Input[str]]: + """ + The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + """ + return pulumi.get(self, "private_link_resource_region") + + @private_link_resource_region.setter + def private_link_resource_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "private_link_resource_region", value) + + @property + @pulumi.getter(name="requestMessage") + def request_message(self) -> Optional[pulumi.Input[str]]: + """ + A message to provide in the request which will be seen by approvers. + """ + return pulumi.get(self, "request_message") + + @request_message.setter + def request_message(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "request_message", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +class GrafanaManagedPrivateEndpoint(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + grafana_id: Optional[pulumi.Input[str]] = None, + group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_link_resource_id: Optional[pulumi.Input[str]] = None, + private_link_resource_region: Optional[pulumi.Input[str]] = None, + request_message: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + 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 + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="Canada Central") + example_workspace = azure.monitoring.Workspace("example", + name="example-mamw", + resource_group_name=example.name, + location=example.location, + public_network_access_enabled=False) + example_grafana = azure.dashboard.Grafana("example", + name="example-dg", + resource_group_name=example.name, + location=example.location, + grafana_major_version="10", + public_network_access_enabled=False, + azure_monitor_workspace_integrations=[{ + "resource_id": example_workspace.id, + }]) + example_grafana_managed_private_endpoint = azure.dashboard.GrafanaManagedPrivateEndpoint("example", + grafana_id=example_grafana.id, + name="example-mpe", + location=example_grafana.location, + private_link_resource_id=example_workspace.id, + group_ids=["prometheusMetrics"], + private_link_resource_region=example_grafana.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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] grafana_id: The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] group_ids: 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. + :param pulumi.Input[str] location: 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. + :param pulumi.Input[str] name: 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. + :param pulumi.Input[str] private_link_resource_id: 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. + :param pulumi.Input[str] private_link_resource_region: The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[str] request_message: A message to provide in the request which will be seen by approvers. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: GrafanaManagedPrivateEndpointArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + 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 + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="Canada Central") + example_workspace = azure.monitoring.Workspace("example", + name="example-mamw", + resource_group_name=example.name, + location=example.location, + public_network_access_enabled=False) + example_grafana = azure.dashboard.Grafana("example", + name="example-dg", + resource_group_name=example.name, + location=example.location, + grafana_major_version="10", + public_network_access_enabled=False, + azure_monitor_workspace_integrations=[{ + "resource_id": example_workspace.id, + }]) + example_grafana_managed_private_endpoint = azure.dashboard.GrafanaManagedPrivateEndpoint("example", + grafana_id=example_grafana.id, + name="example-mpe", + location=example_grafana.location, + private_link_resource_id=example_workspace.id, + group_ids=["prometheusMetrics"], + private_link_resource_region=example_grafana.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 + ``` + + :param str resource_name: The name of the resource. + :param GrafanaManagedPrivateEndpointArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(GrafanaManagedPrivateEndpointArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + grafana_id: Optional[pulumi.Input[str]] = None, + group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_link_resource_id: Optional[pulumi.Input[str]] = None, + private_link_resource_region: Optional[pulumi.Input[str]] = None, + request_message: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = GrafanaManagedPrivateEndpointArgs.__new__(GrafanaManagedPrivateEndpointArgs) + + if grafana_id is None and not opts.urn: + raise TypeError("Missing required property 'grafana_id'") + __props__.__dict__["grafana_id"] = grafana_id + __props__.__dict__["group_ids"] = group_ids + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + if private_link_resource_id is None and not opts.urn: + raise TypeError("Missing required property 'private_link_resource_id'") + __props__.__dict__["private_link_resource_id"] = private_link_resource_id + __props__.__dict__["private_link_resource_region"] = private_link_resource_region + __props__.__dict__["request_message"] = request_message + __props__.__dict__["tags"] = tags + super(GrafanaManagedPrivateEndpoint, __self__).__init__( + 'azure:dashboard/grafanaManagedPrivateEndpoint:GrafanaManagedPrivateEndpoint', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + grafana_id: Optional[pulumi.Input[str]] = None, + group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + private_link_resource_id: Optional[pulumi.Input[str]] = None, + private_link_resource_region: Optional[pulumi.Input[str]] = None, + request_message: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'GrafanaManagedPrivateEndpoint': + """ + Get an existing GrafanaManagedPrivateEndpoint resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] grafana_id: The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] group_ids: 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. + :param pulumi.Input[str] location: 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. + :param pulumi.Input[str] name: 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. + :param pulumi.Input[str] private_link_resource_id: 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. + :param pulumi.Input[str] private_link_resource_region: The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + :param pulumi.Input[str] request_message: A message to provide in the request which will be seen by approvers. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _GrafanaManagedPrivateEndpointState.__new__(_GrafanaManagedPrivateEndpointState) + + __props__.__dict__["grafana_id"] = grafana_id + __props__.__dict__["group_ids"] = group_ids + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["private_link_resource_id"] = private_link_resource_id + __props__.__dict__["private_link_resource_region"] = private_link_resource_region + __props__.__dict__["request_message"] = request_message + __props__.__dict__["tags"] = tags + return GrafanaManagedPrivateEndpoint(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="grafanaId") + def grafana_id(self) -> pulumi.Output[str]: + """ + The id of the associated managed Grafana. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + """ + return pulumi.get(self, "grafana_id") + + @property + @pulumi.getter(name="groupIds") + def group_ids(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + 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. + """ + return pulumi.get(self, "group_ids") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="privateLinkResourceId") + def private_link_resource_id(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "private_link_resource_id") + + @property + @pulumi.getter(name="privateLinkResourceRegion") + def private_link_resource_region(self) -> pulumi.Output[Optional[str]]: + """ + The region in which to create the private link. Changing this forces a new Dashboard Grafana Managed Private Endpoint to be created. + """ + return pulumi.get(self, "private_link_resource_region") + + @property + @pulumi.getter(name="requestMessage") + def request_message(self) -> pulumi.Output[Optional[str]]: + """ + A message to provide in the request which will be seen by approvers. + """ + return pulumi.get(self, "request_message") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A mapping of tags which should be assigned to the Dashboard Grafana Managed Private Endpoint. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_azure/dataprotection/__init__.py b/sdk/python/pulumi_azure/dataprotection/__init__.py index fc5db35ee9..6e63a8df47 100644 --- a/sdk/python/pulumi_azure/dataprotection/__init__.py +++ b/sdk/python/pulumi_azure/dataprotection/__init__.py @@ -8,6 +8,7 @@ from .backup_instance_blog_storage import * from .backup_instance_disk import * from .backup_instance_kubernetes_cluster import * +from .backup_instance_mysql_flexible_server import * from .backup_instance_postgresql import * from .backup_instance_postgresql_flexible_server import * from .backup_policy_blob_storage import * diff --git a/sdk/python/pulumi_azure/dataprotection/backup_instance_mysql_flexible_server.py b/sdk/python/pulumi_azure/dataprotection/backup_instance_mysql_flexible_server.py new file mode 100644 index 0000000000..85fc8ab64a --- /dev/null +++ b/sdk/python/pulumi_azure/dataprotection/backup_instance_mysql_flexible_server.py @@ -0,0 +1,473 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['BackupInstanceMysqlFlexibleServerArgs', 'BackupInstanceMysqlFlexibleServer'] + +@pulumi.input_type +class BackupInstanceMysqlFlexibleServerArgs: + def __init__(__self__, *, + backup_policy_id: pulumi.Input[str], + server_id: pulumi.Input[str], + vault_id: pulumi.Input[str], + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a BackupInstanceMysqlFlexibleServer resource. + :param pulumi.Input[str] backup_policy_id: The ID of the Backup Policy. + :param pulumi.Input[str] server_id: The ID of the source server. Changing this forces a new resource to be created. + :param pulumi.Input[str] vault_id: 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. + :param pulumi.Input[str] location: The location of the source database. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + """ + pulumi.set(__self__, "backup_policy_id", backup_policy_id) + pulumi.set(__self__, "server_id", server_id) + pulumi.set(__self__, "vault_id", vault_id) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="backupPolicyId") + def backup_policy_id(self) -> pulumi.Input[str]: + """ + The ID of the Backup Policy. + """ + return pulumi.get(self, "backup_policy_id") + + @backup_policy_id.setter + def backup_policy_id(self, value: pulumi.Input[str]): + pulumi.set(self, "backup_policy_id", value) + + @property + @pulumi.getter(name="serverId") + def server_id(self) -> pulumi.Input[str]: + """ + The ID of the source server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "server_id") + + @server_id.setter + def server_id(self, value: pulumi.Input[str]): + pulumi.set(self, "server_id", value) + + @property + @pulumi.getter(name="vaultId") + def vault_id(self) -> pulumi.Input[str]: + """ + 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. + """ + return pulumi.get(self, "vault_id") + + @vault_id.setter + def vault_id(self, value: pulumi.Input[str]): + pulumi.set(self, "vault_id", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The location of the source database. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + +@pulumi.input_type +class _BackupInstanceMysqlFlexibleServerState: + def __init__(__self__, *, + backup_policy_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + vault_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering BackupInstanceMysqlFlexibleServer resources. + :param pulumi.Input[str] backup_policy_id: The ID of the Backup Policy. + :param pulumi.Input[str] location: The location of the source database. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + :param pulumi.Input[str] server_id: The ID of the source server. Changing this forces a new resource to be created. + :param pulumi.Input[str] vault_id: 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. + """ + if backup_policy_id is not None: + pulumi.set(__self__, "backup_policy_id", backup_policy_id) + if location is not None: + pulumi.set(__self__, "location", location) + if name is not None: + pulumi.set(__self__, "name", name) + if server_id is not None: + pulumi.set(__self__, "server_id", server_id) + if vault_id is not None: + pulumi.set(__self__, "vault_id", vault_id) + + @property + @pulumi.getter(name="backupPolicyId") + def backup_policy_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Backup Policy. + """ + return pulumi.get(self, "backup_policy_id") + + @backup_policy_id.setter + def backup_policy_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "backup_policy_id", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The location of the source database. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="serverId") + def server_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the source server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "server_id") + + @server_id.setter + def server_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "server_id", value) + + @property + @pulumi.getter(name="vaultId") + def vault_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "vault_id") + + @vault_id.setter + def vault_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "vault_id", value) + + +class BackupInstanceMysqlFlexibleServer(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + backup_policy_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + vault_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages a Backup Instance to back up MySQL Flexible Server. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_flexible_server = azure.mysql.FlexibleServer("example", + name="example-mysqlfs", + resource_group_name=example.name, + location=example.location, + administrator_login="adminTerraform", + administrator_password="QAZwsx123", + version="8.0.21", + sku_name="B_Standard_B1s", + zone="1") + example_backup_vault = azure.dataprotection.BackupVault("example", + name="example-backupvault", + resource_group_name=example.name, + location=example.location, + datastore_type="VaultStore", + redundancy="LocallyRedundant", + soft_delete="Off", + identity={ + "type": "SystemAssigned", + }) + example_assignment = azure.authorization.Assignment("example", + scope=example.id, + role_definition_name="Reader", + principal_id=example_backup_vault.identity.principal_id) + example2 = azure.authorization.Assignment("example2", + scope=example_flexible_server.id, + role_definition_name="MySQL Backup And Export Operator", + principal_id=example_backup_vault.identity.principal_id) + example_backup_policy_mysql_flexible_server = azure.dataprotection.BackupPolicyMysqlFlexibleServer("example", + name="example-dp", + vault_id=example_backup_vault.id, + backup_repeating_time_intervals=["R/2021-05-23T02:30:00+00:00/P1W"], + default_retention_rule={ + "life_cycles": [{ + "duration": "P4M", + "data_store_type": "VaultStore", + }], + }, + opts = pulumi.ResourceOptions(depends_on=[ + example_assignment, + example2, + ])) + example_backup_instance_mysql_flexible_server = azure.dataprotection.BackupInstanceMysqlFlexibleServer("example", + name="example-dbi", + location=example.location, + vault_id=example_backup_vault.id, + server_id=example_flexible_server.id, + backup_policy_id=example_backup_policy_mysql_flexible_server.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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] backup_policy_id: The ID of the Backup Policy. + :param pulumi.Input[str] location: The location of the source database. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + :param pulumi.Input[str] server_id: The ID of the source server. Changing this forces a new resource to be created. + :param pulumi.Input[str] vault_id: 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. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: BackupInstanceMysqlFlexibleServerArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages a Backup Instance to back up MySQL Flexible Server. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_flexible_server = azure.mysql.FlexibleServer("example", + name="example-mysqlfs", + resource_group_name=example.name, + location=example.location, + administrator_login="adminTerraform", + administrator_password="QAZwsx123", + version="8.0.21", + sku_name="B_Standard_B1s", + zone="1") + example_backup_vault = azure.dataprotection.BackupVault("example", + name="example-backupvault", + resource_group_name=example.name, + location=example.location, + datastore_type="VaultStore", + redundancy="LocallyRedundant", + soft_delete="Off", + identity={ + "type": "SystemAssigned", + }) + example_assignment = azure.authorization.Assignment("example", + scope=example.id, + role_definition_name="Reader", + principal_id=example_backup_vault.identity.principal_id) + example2 = azure.authorization.Assignment("example2", + scope=example_flexible_server.id, + role_definition_name="MySQL Backup And Export Operator", + principal_id=example_backup_vault.identity.principal_id) + example_backup_policy_mysql_flexible_server = azure.dataprotection.BackupPolicyMysqlFlexibleServer("example", + name="example-dp", + vault_id=example_backup_vault.id, + backup_repeating_time_intervals=["R/2021-05-23T02:30:00+00:00/P1W"], + default_retention_rule={ + "life_cycles": [{ + "duration": "P4M", + "data_store_type": "VaultStore", + }], + }, + opts = pulumi.ResourceOptions(depends_on=[ + example_assignment, + example2, + ])) + example_backup_instance_mysql_flexible_server = azure.dataprotection.BackupInstanceMysqlFlexibleServer("example", + name="example-dbi", + location=example.location, + vault_id=example_backup_vault.id, + server_id=example_flexible_server.id, + backup_policy_id=example_backup_policy_mysql_flexible_server.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 + ``` + + :param str resource_name: The name of the resource. + :param BackupInstanceMysqlFlexibleServerArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(BackupInstanceMysqlFlexibleServerArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + backup_policy_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + vault_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = BackupInstanceMysqlFlexibleServerArgs.__new__(BackupInstanceMysqlFlexibleServerArgs) + + if backup_policy_id is None and not opts.urn: + raise TypeError("Missing required property 'backup_policy_id'") + __props__.__dict__["backup_policy_id"] = backup_policy_id + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + if server_id is None and not opts.urn: + raise TypeError("Missing required property 'server_id'") + __props__.__dict__["server_id"] = server_id + if vault_id is None and not opts.urn: + raise TypeError("Missing required property 'vault_id'") + __props__.__dict__["vault_id"] = vault_id + super(BackupInstanceMysqlFlexibleServer, __self__).__init__( + 'azure:dataprotection/backupInstanceMysqlFlexibleServer:BackupInstanceMysqlFlexibleServer', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + backup_policy_id: Optional[pulumi.Input[str]] = None, + location: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + server_id: Optional[pulumi.Input[str]] = None, + vault_id: Optional[pulumi.Input[str]] = None) -> 'BackupInstanceMysqlFlexibleServer': + """ + Get an existing BackupInstanceMysqlFlexibleServer resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] backup_policy_id: The ID of the Backup Policy. + :param pulumi.Input[str] location: The location of the source database. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + :param pulumi.Input[str] server_id: The ID of the source server. Changing this forces a new resource to be created. + :param pulumi.Input[str] vault_id: 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _BackupInstanceMysqlFlexibleServerState.__new__(_BackupInstanceMysqlFlexibleServerState) + + __props__.__dict__["backup_policy_id"] = backup_policy_id + __props__.__dict__["location"] = location + __props__.__dict__["name"] = name + __props__.__dict__["server_id"] = server_id + __props__.__dict__["vault_id"] = vault_id + return BackupInstanceMysqlFlexibleServer(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="backupPolicyId") + def backup_policy_id(self) -> pulumi.Output[str]: + """ + The ID of the Backup Policy. + """ + return pulumi.get(self, "backup_policy_id") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The location of the source database. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Specifies the name of the Backup Instance for the MySQL Flexible Server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="serverId") + def server_id(self) -> pulumi.Output[str]: + """ + The ID of the source server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "server_id") + + @property + @pulumi.getter(name="vaultId") + def vault_id(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "vault_id") + diff --git a/sdk/python/pulumi_azure/dynatrace/__init__.py b/sdk/python/pulumi_azure/dynatrace/__init__.py new file mode 100644 index 0000000000..56d8de4791 --- /dev/null +++ b/sdk/python/pulumi_azure/dynatrace/__init__.py @@ -0,0 +1,10 @@ +# coding=utf-8 +# *** 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! *** + +from .. import _utilities +import typing +# Export this package's modules as members: +from .monitor import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_azure/dynatrace/_inputs.py b/sdk/python/pulumi_azure/dynatrace/_inputs.py new file mode 100644 index 0000000000..f4fddcd4d9 --- /dev/null +++ b/sdk/python/pulumi_azure/dynatrace/_inputs.py @@ -0,0 +1,282 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'MonitorIdentityArgs', + 'MonitorIdentityArgsDict', + 'MonitorPlanArgs', + 'MonitorPlanArgsDict', + 'MonitorUserArgs', + 'MonitorUserArgsDict', +] + +MYPY = False + +if not MYPY: + class MonitorIdentityArgsDict(TypedDict): + type: pulumi.Input[str] + """ + The type of identity used for the resource. Only possible value is `SystemAssigned`. + """ + principal_id: NotRequired[pulumi.Input[str]] + tenant_id: NotRequired[pulumi.Input[str]] +elif False: + MonitorIdentityArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MonitorIdentityArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + principal_id: Optional[pulumi.Input[str]] = None, + tenant_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] type: The type of identity used for the resource. Only possible value is `SystemAssigned`. + """ + pulumi.set(__self__, "type", type) + if principal_id is not None: + pulumi.set(__self__, "principal_id", principal_id) + if tenant_id is not None: + pulumi.set(__self__, "tenant_id", tenant_id) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The type of identity used for the resource. Only possible value is `SystemAssigned`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="principalId") + def principal_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "principal_id") + + @principal_id.setter + def principal_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "principal_id", value) + + @property + @pulumi.getter(name="tenantId") + def tenant_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "tenant_id") + + @tenant_id.setter + def tenant_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tenant_id", value) + + +if not MYPY: + class MonitorPlanArgsDict(TypedDict): + plan: pulumi.Input[str] + """ + Plan id as published by Dynatrace. + """ + billing_cycle: NotRequired[pulumi.Input[str]] + """ + Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + """ + effective_date: NotRequired[pulumi.Input[str]] + """ + Date when plan was applied. + """ + usage_type: NotRequired[pulumi.Input[str]] + """ + Different usage type. Possible values are `PAYG` and `COMMITTED`. + """ +elif False: + MonitorPlanArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MonitorPlanArgs: + def __init__(__self__, *, + plan: pulumi.Input[str], + billing_cycle: Optional[pulumi.Input[str]] = None, + effective_date: Optional[pulumi.Input[str]] = None, + usage_type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] plan: Plan id as published by Dynatrace. + :param pulumi.Input[str] billing_cycle: Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + :param pulumi.Input[str] effective_date: Date when plan was applied. + :param pulumi.Input[str] usage_type: Different usage type. Possible values are `PAYG` and `COMMITTED`. + """ + pulumi.set(__self__, "plan", plan) + if billing_cycle is not None: + pulumi.set(__self__, "billing_cycle", billing_cycle) + if effective_date is not None: + pulumi.set(__self__, "effective_date", effective_date) + if usage_type is not None: + pulumi.set(__self__, "usage_type", usage_type) + + @property + @pulumi.getter + def plan(self) -> pulumi.Input[str]: + """ + Plan id as published by Dynatrace. + """ + return pulumi.get(self, "plan") + + @plan.setter + def plan(self, value: pulumi.Input[str]): + pulumi.set(self, "plan", value) + + @property + @pulumi.getter(name="billingCycle") + def billing_cycle(self) -> Optional[pulumi.Input[str]]: + """ + Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + """ + return pulumi.get(self, "billing_cycle") + + @billing_cycle.setter + def billing_cycle(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "billing_cycle", value) + + @property + @pulumi.getter(name="effectiveDate") + def effective_date(self) -> Optional[pulumi.Input[str]]: + """ + Date when plan was applied. + """ + return pulumi.get(self, "effective_date") + + @effective_date.setter + def effective_date(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "effective_date", value) + + @property + @pulumi.getter(name="usageType") + def usage_type(self) -> Optional[pulumi.Input[str]]: + """ + Different usage type. Possible values are `PAYG` and `COMMITTED`. + """ + return pulumi.get(self, "usage_type") + + @usage_type.setter + def usage_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "usage_type", value) + + +if not MYPY: + class MonitorUserArgsDict(TypedDict): + country: pulumi.Input[str] + """ + Country of the user. + """ + email: pulumi.Input[str] + """ + Email of the user used by Dynatrace for contacting them if needed. + """ + first_name: pulumi.Input[str] + """ + First name of the user. + """ + last_name: pulumi.Input[str] + """ + Last name of the user. + """ + phone_number: pulumi.Input[str] + """ + phone number of the user by Dynatrace for contacting them if needed. + """ +elif False: + MonitorUserArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class MonitorUserArgs: + def __init__(__self__, *, + country: pulumi.Input[str], + email: pulumi.Input[str], + first_name: pulumi.Input[str], + last_name: pulumi.Input[str], + phone_number: pulumi.Input[str]): + """ + :param pulumi.Input[str] country: Country of the user. + :param pulumi.Input[str] email: Email of the user used by Dynatrace for contacting them if needed. + :param pulumi.Input[str] first_name: First name of the user. + :param pulumi.Input[str] last_name: Last name of the user. + :param pulumi.Input[str] phone_number: phone number of the user by Dynatrace for contacting them if needed. + """ + pulumi.set(__self__, "country", country) + pulumi.set(__self__, "email", email) + pulumi.set(__self__, "first_name", first_name) + pulumi.set(__self__, "last_name", last_name) + pulumi.set(__self__, "phone_number", phone_number) + + @property + @pulumi.getter + def country(self) -> pulumi.Input[str]: + """ + Country of the user. + """ + return pulumi.get(self, "country") + + @country.setter + def country(self, value: pulumi.Input[str]): + pulumi.set(self, "country", value) + + @property + @pulumi.getter + def email(self) -> pulumi.Input[str]: + """ + Email of the user used by Dynatrace for contacting them if needed. + """ + return pulumi.get(self, "email") + + @email.setter + def email(self, value: pulumi.Input[str]): + pulumi.set(self, "email", value) + + @property + @pulumi.getter(name="firstName") + def first_name(self) -> pulumi.Input[str]: + """ + First name of the user. + """ + return pulumi.get(self, "first_name") + + @first_name.setter + def first_name(self, value: pulumi.Input[str]): + pulumi.set(self, "first_name", value) + + @property + @pulumi.getter(name="lastName") + def last_name(self) -> pulumi.Input[str]: + """ + Last name of the user. + """ + return pulumi.get(self, "last_name") + + @last_name.setter + def last_name(self, value: pulumi.Input[str]): + pulumi.set(self, "last_name", value) + + @property + @pulumi.getter(name="phoneNumber") + def phone_number(self) -> pulumi.Input[str]: + """ + phone number of the user by Dynatrace for contacting them if needed. + """ + return pulumi.get(self, "phone_number") + + @phone_number.setter + def phone_number(self, value: pulumi.Input[str]): + pulumi.set(self, "phone_number", value) + + diff --git a/sdk/python/pulumi_azure/dynatrace/monitor.py b/sdk/python/pulumi_azure/dynatrace/monitor.py new file mode 100644 index 0000000000..98cc5a3dca --- /dev/null +++ b/sdk/python/pulumi_azure/dynatrace/monitor.py @@ -0,0 +1,549 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['MonitorArgs', 'Monitor'] + +@pulumi.input_type +class MonitorArgs: + def __init__(__self__, *, + identity: pulumi.Input['MonitorIdentityArgs'], + marketplace_subscription: pulumi.Input[str], + plan: pulumi.Input['MonitorPlanArgs'], + resource_group_name: pulumi.Input[str], + user: pulumi.Input['MonitorUserArgs'], + location: Optional[pulumi.Input[str]] = None, + monitoring_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a Monitor resource. + :param pulumi.Input['MonitorIdentityArgs'] identity: The kind of managed identity assigned to this resource. A `identity` block as defined below. + :param pulumi.Input[str] marketplace_subscription: 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`. + :param pulumi.Input['MonitorPlanArgs'] plan: Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input['MonitorUserArgs'] user: User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + :param pulumi.Input[str] location: The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input[bool] monitoring_enabled: Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + :param pulumi.Input[str] name: Name of the Dynatrace monitor. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. + """ + pulumi.set(__self__, "identity", identity) + pulumi.set(__self__, "marketplace_subscription", marketplace_subscription) + pulumi.set(__self__, "plan", plan) + pulumi.set(__self__, "resource_group_name", resource_group_name) + pulumi.set(__self__, "user", user) + if location is not None: + pulumi.set(__self__, "location", location) + if monitoring_enabled is not None: + pulumi.set(__self__, "monitoring_enabled", monitoring_enabled) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def identity(self) -> pulumi.Input['MonitorIdentityArgs']: + """ + The kind of managed identity assigned to this resource. A `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: pulumi.Input['MonitorIdentityArgs']): + pulumi.set(self, "identity", value) + + @property + @pulumi.getter(name="marketplaceSubscription") + def marketplace_subscription(self) -> pulumi.Input[str]: + """ + 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`. + """ + return pulumi.get(self, "marketplace_subscription") + + @marketplace_subscription.setter + def marketplace_subscription(self, value: pulumi.Input[str]): + pulumi.set(self, "marketplace_subscription", value) + + @property + @pulumi.getter + def plan(self) -> pulumi.Input['MonitorPlanArgs']: + """ + Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "plan") + + @plan.setter + def plan(self, value: pulumi.Input['MonitorPlanArgs']): + pulumi.set(self, "plan", value) + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> pulumi.Input[str]: + """ + The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @resource_group_name.setter + def resource_group_name(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_group_name", value) + + @property + @pulumi.getter + def user(self) -> pulumi.Input['MonitorUserArgs']: + """ + User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + """ + return pulumi.get(self, "user") + + @user.setter + def user(self, value: pulumi.Input['MonitorUserArgs']): + pulumi.set(self, "user", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="monitoringEnabled") + def monitoring_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + """ + return pulumi.get(self, "monitoring_enabled") + + @monitoring_enabled.setter + def monitoring_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "monitoring_enabled", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the Dynatrace monitor. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +@pulumi.input_type +class _MonitorState: + def __init__(__self__, *, + identity: Optional[pulumi.Input['MonitorIdentityArgs']] = None, + location: Optional[pulumi.Input[str]] = None, + marketplace_subscription: Optional[pulumi.Input[str]] = None, + monitoring_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + plan: Optional[pulumi.Input['MonitorPlanArgs']] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user: Optional[pulumi.Input['MonitorUserArgs']] = None): + """ + Input properties used for looking up and filtering Monitor resources. + :param pulumi.Input['MonitorIdentityArgs'] identity: The kind of managed identity assigned to this resource. A `identity` block as defined below. + :param pulumi.Input[str] location: The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] marketplace_subscription: 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`. + :param pulumi.Input[bool] monitoring_enabled: Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + :param pulumi.Input[str] name: Name of the Dynatrace monitor. Changing this forces a new resource to be created. + :param pulumi.Input['MonitorPlanArgs'] plan: Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. + :param pulumi.Input['MonitorUserArgs'] user: User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + """ + if identity is not None: + pulumi.set(__self__, "identity", identity) + if location is not None: + pulumi.set(__self__, "location", location) + if marketplace_subscription is not None: + pulumi.set(__self__, "marketplace_subscription", marketplace_subscription) + if monitoring_enabled is not None: + pulumi.set(__self__, "monitoring_enabled", monitoring_enabled) + if name is not None: + pulumi.set(__self__, "name", name) + if plan is not None: + pulumi.set(__self__, "plan", plan) + if resource_group_name is not None: + pulumi.set(__self__, "resource_group_name", resource_group_name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + if user is not None: + pulumi.set(__self__, "user", user) + + @property + @pulumi.getter + def identity(self) -> Optional[pulumi.Input['MonitorIdentityArgs']]: + """ + The kind of managed identity assigned to this resource. A `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: Optional[pulumi.Input['MonitorIdentityArgs']]): + pulumi.set(self, "identity", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="marketplaceSubscription") + def marketplace_subscription(self) -> Optional[pulumi.Input[str]]: + """ + 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`. + """ + return pulumi.get(self, "marketplace_subscription") + + @marketplace_subscription.setter + def marketplace_subscription(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "marketplace_subscription", value) + + @property + @pulumi.getter(name="monitoringEnabled") + def monitoring_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + """ + return pulumi.get(self, "monitoring_enabled") + + @monitoring_enabled.setter + def monitoring_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "monitoring_enabled", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the Dynatrace monitor. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def plan(self) -> Optional[pulumi.Input['MonitorPlanArgs']]: + """ + Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "plan") + + @plan.setter + def plan(self, value: Optional[pulumi.Input['MonitorPlanArgs']]): + pulumi.set(self, "plan", value) + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @resource_group_name.setter + def resource_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_group_name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + @property + @pulumi.getter + def user(self) -> Optional[pulumi.Input['MonitorUserArgs']]: + """ + User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + """ + return pulumi.get(self, "user") + + @user.setter + def user(self, value: Optional[pulumi.Input['MonitorUserArgs']]): + pulumi.set(self, "user", value) + + +class Monitor(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + identity: Optional[pulumi.Input[Union['MonitorIdentityArgs', 'MonitorIdentityArgsDict']]] = None, + location: Optional[pulumi.Input[str]] = None, + marketplace_subscription: Optional[pulumi.Input[str]] = None, + monitoring_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + plan: Optional[pulumi.Input[Union['MonitorPlanArgs', 'MonitorPlanArgsDict']]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user: Optional[pulumi.Input[Union['MonitorUserArgs', 'MonitorUserArgsDict']]] = None, + __props__=None): + """ + 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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['MonitorIdentityArgs', 'MonitorIdentityArgsDict']] identity: The kind of managed identity assigned to this resource. A `identity` block as defined below. + :param pulumi.Input[str] location: The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] marketplace_subscription: 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`. + :param pulumi.Input[bool] monitoring_enabled: Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + :param pulumi.Input[str] name: Name of the Dynatrace monitor. Changing this forces a new resource to be created. + :param pulumi.Input[Union['MonitorPlanArgs', 'MonitorPlanArgsDict']] plan: Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. + :param pulumi.Input[Union['MonitorUserArgs', 'MonitorUserArgsDict']] user: User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: MonitorArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + 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 + ``` + + :param str resource_name: The name of the resource. + :param MonitorArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(MonitorArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + identity: Optional[pulumi.Input[Union['MonitorIdentityArgs', 'MonitorIdentityArgsDict']]] = None, + location: Optional[pulumi.Input[str]] = None, + marketplace_subscription: Optional[pulumi.Input[str]] = None, + monitoring_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + plan: Optional[pulumi.Input[Union['MonitorPlanArgs', 'MonitorPlanArgsDict']]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user: Optional[pulumi.Input[Union['MonitorUserArgs', 'MonitorUserArgsDict']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = MonitorArgs.__new__(MonitorArgs) + + if identity is None and not opts.urn: + raise TypeError("Missing required property 'identity'") + __props__.__dict__["identity"] = identity + __props__.__dict__["location"] = location + if marketplace_subscription is None and not opts.urn: + raise TypeError("Missing required property 'marketplace_subscription'") + __props__.__dict__["marketplace_subscription"] = marketplace_subscription + __props__.__dict__["monitoring_enabled"] = monitoring_enabled + __props__.__dict__["name"] = name + if plan is None and not opts.urn: + raise TypeError("Missing required property 'plan'") + __props__.__dict__["plan"] = plan + if resource_group_name is None and not opts.urn: + raise TypeError("Missing required property 'resource_group_name'") + __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["tags"] = tags + if user is None and not opts.urn: + raise TypeError("Missing required property 'user'") + __props__.__dict__["user"] = user + super(Monitor, __self__).__init__( + 'azure:dynatrace/monitor:Monitor', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + identity: Optional[pulumi.Input[Union['MonitorIdentityArgs', 'MonitorIdentityArgsDict']]] = None, + location: Optional[pulumi.Input[str]] = None, + marketplace_subscription: Optional[pulumi.Input[str]] = None, + monitoring_enabled: Optional[pulumi.Input[bool]] = None, + name: Optional[pulumi.Input[str]] = None, + plan: Optional[pulumi.Input[Union['MonitorPlanArgs', 'MonitorPlanArgsDict']]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + user: Optional[pulumi.Input[Union['MonitorUserArgs', 'MonitorUserArgsDict']]] = None) -> 'Monitor': + """ + Get an existing Monitor resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['MonitorIdentityArgs', 'MonitorIdentityArgsDict']] identity: The kind of managed identity assigned to this resource. A `identity` block as defined below. + :param pulumi.Input[str] location: The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] marketplace_subscription: 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`. + :param pulumi.Input[bool] monitoring_enabled: Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + :param pulumi.Input[str] name: Name of the Dynatrace monitor. Changing this forces a new resource to be created. + :param pulumi.Input[Union['MonitorPlanArgs', 'MonitorPlanArgsDict']] plan: Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. + :param pulumi.Input[Union['MonitorUserArgs', 'MonitorUserArgsDict']] user: User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _MonitorState.__new__(_MonitorState) + + __props__.__dict__["identity"] = identity + __props__.__dict__["location"] = location + __props__.__dict__["marketplace_subscription"] = marketplace_subscription + __props__.__dict__["monitoring_enabled"] = monitoring_enabled + __props__.__dict__["name"] = name + __props__.__dict__["plan"] = plan + __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["tags"] = tags + __props__.__dict__["user"] = user + return Monitor(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def identity(self) -> pulumi.Output['outputs.MonitorIdentity']: + """ + The kind of managed identity assigned to this resource. A `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The Azure Region where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter(name="marketplaceSubscription") + def marketplace_subscription(self) -> pulumi.Output[str]: + """ + 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`. + """ + return pulumi.get(self, "marketplace_subscription") + + @property + @pulumi.getter(name="monitoringEnabled") + def monitoring_enabled(self) -> pulumi.Output[Optional[bool]]: + """ + Flag specifying if the resource monitoring is enabled or disabled. Default is `true`. + """ + return pulumi.get(self, "monitoring_enabled") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the Dynatrace monitor. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def plan(self) -> pulumi.Output['outputs.MonitorPlan']: + """ + Billing plan information. A `plan` block as defined below. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "plan") + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> pulumi.Output[str]: + """ + The name of the Resource Group where the Dynatrace monitor should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A mapping of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def user(self) -> pulumi.Output['outputs.MonitorUser']: + """ + User's information. A `user` block as defined below. Chainging this forces a new resource to be created. + """ + return pulumi.get(self, "user") + diff --git a/sdk/python/pulumi_azure/dynatrace/outputs.py b/sdk/python/pulumi_azure/dynatrace/outputs.py new file mode 100644 index 0000000000..37d1af5b81 --- /dev/null +++ b/sdk/python/pulumi_azure/dynatrace/outputs.py @@ -0,0 +1,233 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = [ + 'MonitorIdentity', + 'MonitorPlan', + 'MonitorUser', +] + +@pulumi.output_type +class MonitorIdentity(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "principalId": + suggest = "principal_id" + elif key == "tenantId": + suggest = "tenant_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MonitorIdentity. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MonitorIdentity.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MonitorIdentity.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + type: str, + principal_id: Optional[str] = None, + tenant_id: Optional[str] = None): + """ + :param str type: The type of identity used for the resource. Only possible value is `SystemAssigned`. + """ + pulumi.set(__self__, "type", type) + if principal_id is not None: + pulumi.set(__self__, "principal_id", principal_id) + if tenant_id is not None: + pulumi.set(__self__, "tenant_id", tenant_id) + + @property + @pulumi.getter + def type(self) -> str: + """ + The type of identity used for the resource. Only possible value is `SystemAssigned`. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="principalId") + def principal_id(self) -> Optional[str]: + return pulumi.get(self, "principal_id") + + @property + @pulumi.getter(name="tenantId") + def tenant_id(self) -> Optional[str]: + return pulumi.get(self, "tenant_id") + + +@pulumi.output_type +class MonitorPlan(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "billingCycle": + suggest = "billing_cycle" + elif key == "effectiveDate": + suggest = "effective_date" + elif key == "usageType": + suggest = "usage_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MonitorPlan. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MonitorPlan.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MonitorPlan.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + plan: str, + billing_cycle: Optional[str] = None, + effective_date: Optional[str] = None, + usage_type: Optional[str] = None): + """ + :param str plan: Plan id as published by Dynatrace. + :param str billing_cycle: Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + :param str effective_date: Date when plan was applied. + :param str usage_type: Different usage type. Possible values are `PAYG` and `COMMITTED`. + """ + pulumi.set(__self__, "plan", plan) + if billing_cycle is not None: + pulumi.set(__self__, "billing_cycle", billing_cycle) + if effective_date is not None: + pulumi.set(__self__, "effective_date", effective_date) + if usage_type is not None: + pulumi.set(__self__, "usage_type", usage_type) + + @property + @pulumi.getter + def plan(self) -> str: + """ + Plan id as published by Dynatrace. + """ + return pulumi.get(self, "plan") + + @property + @pulumi.getter(name="billingCycle") + def billing_cycle(self) -> Optional[str]: + """ + Different billing cycles. Possible values are `MONTHLY` and `WEEKLY`. + """ + return pulumi.get(self, "billing_cycle") + + @property + @pulumi.getter(name="effectiveDate") + def effective_date(self) -> Optional[str]: + """ + Date when plan was applied. + """ + return pulumi.get(self, "effective_date") + + @property + @pulumi.getter(name="usageType") + def usage_type(self) -> Optional[str]: + """ + Different usage type. Possible values are `PAYG` and `COMMITTED`. + """ + return pulumi.get(self, "usage_type") + + +@pulumi.output_type +class MonitorUser(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "firstName": + suggest = "first_name" + elif key == "lastName": + suggest = "last_name" + elif key == "phoneNumber": + suggest = "phone_number" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in MonitorUser. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + MonitorUser.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + MonitorUser.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + country: str, + email: str, + first_name: str, + last_name: str, + phone_number: str): + """ + :param str country: Country of the user. + :param str email: Email of the user used by Dynatrace for contacting them if needed. + :param str first_name: First name of the user. + :param str last_name: Last name of the user. + :param str phone_number: phone number of the user by Dynatrace for contacting them if needed. + """ + pulumi.set(__self__, "country", country) + pulumi.set(__self__, "email", email) + pulumi.set(__self__, "first_name", first_name) + pulumi.set(__self__, "last_name", last_name) + pulumi.set(__self__, "phone_number", phone_number) + + @property + @pulumi.getter + def country(self) -> str: + """ + Country of the user. + """ + return pulumi.get(self, "country") + + @property + @pulumi.getter + def email(self) -> str: + """ + Email of the user used by Dynatrace for contacting them if needed. + """ + return pulumi.get(self, "email") + + @property + @pulumi.getter(name="firstName") + def first_name(self) -> str: + """ + First name of the user. + """ + return pulumi.get(self, "first_name") + + @property + @pulumi.getter(name="lastName") + def last_name(self) -> str: + """ + Last name of the user. + """ + return pulumi.get(self, "last_name") + + @property + @pulumi.getter(name="phoneNumber") + def phone_number(self) -> str: + """ + phone number of the user by Dynatrace for contacting them if needed. + """ + return pulumi.get(self, "phone_number") + + diff --git a/sdk/python/pulumi_azure/lb/nat_rule.py b/sdk/python/pulumi_azure/lb/nat_rule.py index abbb930694..ee1def3a5d 100644 --- a/sdk/python/pulumi_azure/lb/nat_rule.py +++ b/sdk/python/pulumi_azure/lb/nat_rule.py @@ -493,6 +493,51 @@ def __init__(__self__, > **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="LoadBalancerRG", + location="West Europe") + example_public_ip = azure.network.PublicIp("example", + name="PublicIPForLB", + location="West US", + resource_group_name=example.name, + allocation_method="Static") + example_load_balancer = azure.lb.LoadBalancer("example", + name="TestLoadBalancer", + location="West US", + resource_group_name=example.name, + frontend_ip_configurations=[{ + "name": "PublicIPAddress", + "public_ip_address_id": example_public_ip.id, + }]) + example_backend_address_pool = azure.lb.BackendAddressPool("example", + loadbalancer_id=example_load_balancer.id, + name="be") + example_nat_rule = azure.lb.NatRule("example", + resource_group_name=example.name, + loadbalancer_id=example_load_balancer.id, + name="RDPAccess", + protocol="Tcp", + frontend_port=3389, + backend_port=3389, + frontend_ip_configuration_name="PublicIPAddress") + example1 = azure.lb.NatRule("example1", + resource_group_name=example.name, + loadbalancer_id=example_load_balancer.id, + name="RDPAccess", + protocol="Tcp", + frontend_port_start=3000, + frontend_port_end=3389, + backend_port=3389, + backend_address_pool_id=example_backend_address_pool.id, + frontend_ip_configuration_name="PublicIPAddress") + ``` + ## Import Load Balancer NAT Rules can be imported using the `resource id`, e.g. @@ -530,6 +575,51 @@ def __init__(__self__, > **NOTE** When using this resource, the Load Balancer needs to have a FrontEnd IP Configuration Attached + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="LoadBalancerRG", + location="West Europe") + example_public_ip = azure.network.PublicIp("example", + name="PublicIPForLB", + location="West US", + resource_group_name=example.name, + allocation_method="Static") + example_load_balancer = azure.lb.LoadBalancer("example", + name="TestLoadBalancer", + location="West US", + resource_group_name=example.name, + frontend_ip_configurations=[{ + "name": "PublicIPAddress", + "public_ip_address_id": example_public_ip.id, + }]) + example_backend_address_pool = azure.lb.BackendAddressPool("example", + loadbalancer_id=example_load_balancer.id, + name="be") + example_nat_rule = azure.lb.NatRule("example", + resource_group_name=example.name, + loadbalancer_id=example_load_balancer.id, + name="RDPAccess", + protocol="Tcp", + frontend_port=3389, + backend_port=3389, + frontend_ip_configuration_name="PublicIPAddress") + example1 = azure.lb.NatRule("example1", + resource_group_name=example.name, + loadbalancer_id=example_load_balancer.id, + name="RDPAccess", + protocol="Tcp", + frontend_port_start=3000, + frontend_port_end=3389, + backend_port=3389, + backend_address_pool_id=example_backend_address_pool.id, + frontend_ip_configuration_name="PublicIPAddress") + ``` + ## Import Load Balancer NAT Rules can be imported using the `resource id`, e.g. diff --git a/sdk/python/pulumi_azure/mssql/managed_database.py b/sdk/python/pulumi_azure/mssql/managed_database.py index a0c691c34d..270a5bd0bb 100644 --- a/sdk/python/pulumi_azure/mssql/managed_database.py +++ b/sdk/python/pulumi_azure/mssql/managed_database.py @@ -25,7 +25,8 @@ def __init__(__self__, *, long_term_retention_policy: Optional[pulumi.Input['ManagedDatabaseLongTermRetentionPolicyArgs']] = None, name: Optional[pulumi.Input[str]] = None, point_in_time_restore: Optional[pulumi.Input['ManagedDatabasePointInTimeRestoreArgs']] = None, - short_term_retention_days: Optional[pulumi.Input[int]] = None): + short_term_retention_days: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ The set of arguments for constructing a ManagedDatabase resource. :param pulumi.Input[str] managed_instance_id: The ID of the Azure SQL Managed Instance on which to create this Managed Database. Changing this forces a new resource to be created. @@ -33,6 +34,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Managed Database to create. Changing this forces a new resource to be created. :param pulumi.Input['ManagedDatabasePointInTimeRestoreArgs'] point_in_time_restore: A `point_in_time_restore` block as defined below. Changing this forces a new resource to be created. :param pulumi.Input[int] short_term_retention_days: The backup retention period in days. This is how many days Point-in-Time Restore will be supported. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. """ pulumi.set(__self__, "managed_instance_id", managed_instance_id) if long_term_retention_policy is not None: @@ -43,6 +45,8 @@ def __init__(__self__, *, pulumi.set(__self__, "point_in_time_restore", point_in_time_restore) if short_term_retention_days is not None: pulumi.set(__self__, "short_term_retention_days", short_term_retention_days) + if tags is not None: + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="managedInstanceId") @@ -104,6 +108,18 @@ def short_term_retention_days(self) -> Optional[pulumi.Input[int]]: def short_term_retention_days(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "short_term_retention_days", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + @pulumi.input_type class _ManagedDatabaseState: @@ -112,7 +128,8 @@ def __init__(__self__, *, managed_instance_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, point_in_time_restore: Optional[pulumi.Input['ManagedDatabasePointInTimeRestoreArgs']] = None, - short_term_retention_days: Optional[pulumi.Input[int]] = None): + short_term_retention_days: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering ManagedDatabase resources. :param pulumi.Input['ManagedDatabaseLongTermRetentionPolicyArgs'] long_term_retention_policy: A `long_term_retention_policy` block as defined below. @@ -120,6 +137,7 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name of the Managed Database to create. Changing this forces a new resource to be created. :param pulumi.Input['ManagedDatabasePointInTimeRestoreArgs'] point_in_time_restore: A `point_in_time_restore` block as defined below. Changing this forces a new resource to be created. :param pulumi.Input[int] short_term_retention_days: The backup retention period in days. This is how many days Point-in-Time Restore will be supported. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. """ if long_term_retention_policy is not None: pulumi.set(__self__, "long_term_retention_policy", long_term_retention_policy) @@ -131,6 +149,8 @@ def __init__(__self__, *, pulumi.set(__self__, "point_in_time_restore", point_in_time_restore) if short_term_retention_days is not None: pulumi.set(__self__, "short_term_retention_days", short_term_retention_days) + if tags is not None: + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="longTermRetentionPolicy") @@ -192,6 +212,18 @@ def short_term_retention_days(self) -> Optional[pulumi.Input[int]]: def short_term_retention_days(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "short_term_retention_days", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + class ManagedDatabase(pulumi.CustomResource): @overload @@ -203,6 +235,7 @@ def __init__(__self__, name: Optional[pulumi.Input[str]] = None, point_in_time_restore: Optional[pulumi.Input[Union['ManagedDatabasePointInTimeRestoreArgs', 'ManagedDatabasePointInTimeRestoreArgsDict']]] = None, short_term_retention_days: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, __props__=None): """ ## Example Usage @@ -255,6 +288,7 @@ def __init__(__self__, :param pulumi.Input[str] name: The name of the Managed Database to create. Changing this forces a new resource to be created. :param pulumi.Input[Union['ManagedDatabasePointInTimeRestoreArgs', 'ManagedDatabasePointInTimeRestoreArgsDict']] point_in_time_restore: A `point_in_time_restore` block as defined below. Changing this forces a new resource to be created. :param pulumi.Input[int] short_term_retention_days: The backup retention period in days. This is how many days Point-in-Time Restore will be supported. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. """ ... @overload @@ -326,6 +360,7 @@ def _internal_init(__self__, name: Optional[pulumi.Input[str]] = None, point_in_time_restore: Optional[pulumi.Input[Union['ManagedDatabasePointInTimeRestoreArgs', 'ManagedDatabasePointInTimeRestoreArgsDict']]] = None, short_term_retention_days: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -342,6 +377,7 @@ def _internal_init(__self__, __props__.__dict__["name"] = name __props__.__dict__["point_in_time_restore"] = point_in_time_restore __props__.__dict__["short_term_retention_days"] = short_term_retention_days + __props__.__dict__["tags"] = tags alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="azure:sql/managedDatabase:ManagedDatabase")]) opts = pulumi.ResourceOptions.merge(opts, alias_opts) super(ManagedDatabase, __self__).__init__( @@ -358,7 +394,8 @@ def get(resource_name: str, managed_instance_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, point_in_time_restore: Optional[pulumi.Input[Union['ManagedDatabasePointInTimeRestoreArgs', 'ManagedDatabasePointInTimeRestoreArgsDict']]] = None, - short_term_retention_days: Optional[pulumi.Input[int]] = None) -> 'ManagedDatabase': + short_term_retention_days: Optional[pulumi.Input[int]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'ManagedDatabase': """ Get an existing ManagedDatabase resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -371,6 +408,7 @@ def get(resource_name: str, :param pulumi.Input[str] name: The name of the Managed Database to create. Changing this forces a new resource to be created. :param pulumi.Input[Union['ManagedDatabasePointInTimeRestoreArgs', 'ManagedDatabasePointInTimeRestoreArgsDict']] point_in_time_restore: A `point_in_time_restore` block as defined below. Changing this forces a new resource to be created. :param pulumi.Input[int] short_term_retention_days: The backup retention period in days. This is how many days Point-in-Time Restore will be supported. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -381,6 +419,7 @@ def get(resource_name: str, __props__.__dict__["name"] = name __props__.__dict__["point_in_time_restore"] = point_in_time_restore __props__.__dict__["short_term_retention_days"] = short_term_retention_days + __props__.__dict__["tags"] = tags return ManagedDatabase(resource_name, opts=opts, __props__=__props__) @property @@ -423,3 +462,11 @@ def short_term_retention_days(self) -> pulumi.Output[Optional[int]]: """ return pulumi.get(self, "short_term_retention_days") + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A mapping of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_azure/network/get_public_ip_prefix.py b/sdk/python/pulumi_azure/network/get_public_ip_prefix.py index 29368e5a93..3161171340 100644 --- a/sdk/python/pulumi_azure/network/get_public_ip_prefix.py +++ b/sdk/python/pulumi_azure/network/get_public_ip_prefix.py @@ -26,7 +26,7 @@ class GetPublicIpPrefixResult: """ A collection of values returned by getPublicIpPrefix. """ - def __init__(__self__, id=None, ip_prefix=None, location=None, name=None, prefix_length=None, resource_group_name=None, sku=None, tags=None, zones=None): + def __init__(__self__, id=None, ip_prefix=None, location=None, name=None, prefix_length=None, resource_group_name=None, sku=None, sku_tier=None, tags=None, zones=None): if id and not isinstance(id, str): raise TypeError("Expected argument 'id' to be a str") pulumi.set(__self__, "id", id) @@ -48,6 +48,9 @@ def __init__(__self__, id=None, ip_prefix=None, location=None, name=None, prefix if sku and not isinstance(sku, str): raise TypeError("Expected argument 'sku' to be a str") pulumi.set(__self__, "sku", sku) + if sku_tier and not isinstance(sku_tier, str): + raise TypeError("Expected argument 'sku_tier' to be a str") + pulumi.set(__self__, "sku_tier", sku_tier) if tags and not isinstance(tags, dict): raise TypeError("Expected argument 'tags' to be a dict") pulumi.set(__self__, "tags", tags) @@ -105,6 +108,14 @@ def sku(self) -> str: """ return pulumi.get(self, "sku") + @property + @pulumi.getter(name="skuTier") + def sku_tier(self) -> str: + """ + The SKU Tier of the Public IP. + """ + return pulumi.get(self, "sku_tier") + @property @pulumi.getter def tags(self) -> Mapping[str, str]: @@ -135,6 +146,7 @@ def __await__(self): prefix_length=self.prefix_length, resource_group_name=self.resource_group_name, sku=self.sku, + sku_tier=self.sku_tier, tags=self.tags, zones=self.zones) @@ -176,6 +188,7 @@ def get_public_ip_prefix(name: Optional[str] = None, prefix_length=pulumi.get(__ret__, 'prefix_length'), resource_group_name=pulumi.get(__ret__, 'resource_group_name'), sku=pulumi.get(__ret__, 'sku'), + sku_tier=pulumi.get(__ret__, 'sku_tier'), tags=pulumi.get(__ret__, 'tags'), zones=pulumi.get(__ret__, 'zones')) def get_public_ip_prefix_output(name: Optional[pulumi.Input[str]] = None, @@ -214,5 +227,6 @@ def get_public_ip_prefix_output(name: Optional[pulumi.Input[str]] = None, prefix_length=pulumi.get(__response__, 'prefix_length'), resource_group_name=pulumi.get(__response__, 'resource_group_name'), sku=pulumi.get(__response__, 'sku'), + sku_tier=pulumi.get(__response__, 'sku_tier'), tags=pulumi.get(__response__, 'tags'), zones=pulumi.get(__response__, 'zones'))) diff --git a/sdk/python/pulumi_azure/network/public_ip.py b/sdk/python/pulumi_azure/network/public_ip.py index 70d7ac96b4..6820f5a5d0 100644 --- a/sdk/python/pulumi_azure/network/public_ip.py +++ b/sdk/python/pulumi_azure/network/public_ip.py @@ -24,6 +24,7 @@ def __init__(__self__, *, ddos_protection_mode: Optional[pulumi.Input[str]] = None, ddos_protection_plan_id: Optional[pulumi.Input[str]] = None, domain_name_label: Optional[pulumi.Input[str]] = None, + domain_name_label_scope: Optional[pulumi.Input[str]] = None, edge_zone: Optional[pulumi.Input[str]] = None, idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, ip_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -47,6 +48,7 @@ def __init__(__self__, *, > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`. :param pulumi.Input[str] domain_name_label: 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. + :param pulumi.Input[str] domain_name_label_scope: 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. :param pulumi.Input[str] edge_zone: Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. :param pulumi.Input[int] idle_timeout_in_minutes: Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] ip_tags: A mapping of IP tags to assign to the public IP. Changing this forces a new resource to be created. @@ -78,6 +80,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ddos_protection_plan_id", ddos_protection_plan_id) if domain_name_label is not None: pulumi.set(__self__, "domain_name_label", domain_name_label) + if domain_name_label_scope is not None: + pulumi.set(__self__, "domain_name_label_scope", domain_name_label_scope) if edge_zone is not None: pulumi.set(__self__, "edge_zone", edge_zone) if idle_timeout_in_minutes is not None: @@ -167,6 +171,18 @@ def domain_name_label(self) -> Optional[pulumi.Input[str]]: def domain_name_label(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "domain_name_label", value) + @property + @pulumi.getter(name="domainNameLabelScope") + def domain_name_label_scope(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "domain_name_label_scope") + + @domain_name_label_scope.setter + def domain_name_label_scope(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_name_label_scope", value) + @property @pulumi.getter(name="edgeZone") def edge_zone(self) -> Optional[pulumi.Input[str]]: @@ -329,6 +345,7 @@ def __init__(__self__, *, ddos_protection_mode: Optional[pulumi.Input[str]] = None, ddos_protection_plan_id: Optional[pulumi.Input[str]] = None, domain_name_label: Optional[pulumi.Input[str]] = None, + domain_name_label_scope: Optional[pulumi.Input[str]] = None, edge_zone: Optional[pulumi.Input[str]] = None, fqdn: Optional[pulumi.Input[str]] = None, idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, @@ -354,6 +371,7 @@ def __init__(__self__, *, > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`. :param pulumi.Input[str] domain_name_label: 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. + :param pulumi.Input[str] domain_name_label_scope: 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. :param pulumi.Input[str] edge_zone: Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. :param pulumi.Input[str] fqdn: Fully qualified domain name of the A DNS record associated with the public IP. `domain_name_label` must be specified to get the `fqdn`. This is the concatenation of the `domain_name_label` and the regionalized DNS zone :param pulumi.Input[int] idle_timeout_in_minutes: Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. @@ -388,6 +406,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ddos_protection_plan_id", ddos_protection_plan_id) if domain_name_label is not None: pulumi.set(__self__, "domain_name_label", domain_name_label) + if domain_name_label_scope is not None: + pulumi.set(__self__, "domain_name_label_scope", domain_name_label_scope) if edge_zone is not None: pulumi.set(__self__, "edge_zone", edge_zone) if fqdn is not None: @@ -471,6 +491,18 @@ def domain_name_label(self) -> Optional[pulumi.Input[str]]: def domain_name_label(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "domain_name_label", value) + @property + @pulumi.getter(name="domainNameLabelScope") + def domain_name_label_scope(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "domain_name_label_scope") + + @domain_name_label_scope.setter + def domain_name_label_scope(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain_name_label_scope", value) + @property @pulumi.getter(name="edgeZone") def edge_zone(self) -> Optional[pulumi.Input[str]]: @@ -671,6 +703,7 @@ def __init__(__self__, ddos_protection_mode: Optional[pulumi.Input[str]] = None, ddos_protection_plan_id: Optional[pulumi.Input[str]] = None, domain_name_label: Optional[pulumi.Input[str]] = None, + domain_name_label_scope: Optional[pulumi.Input[str]] = None, edge_zone: Optional[pulumi.Input[str]] = None, idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, ip_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -727,6 +760,7 @@ def __init__(__self__, > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`. :param pulumi.Input[str] domain_name_label: 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. + :param pulumi.Input[str] domain_name_label_scope: 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. :param pulumi.Input[str] edge_zone: Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. :param pulumi.Input[int] idle_timeout_in_minutes: Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] ip_tags: A mapping of IP tags to assign to the public IP. Changing this forces a new resource to be created. @@ -808,6 +842,7 @@ def _internal_init(__self__, ddos_protection_mode: Optional[pulumi.Input[str]] = None, ddos_protection_plan_id: Optional[pulumi.Input[str]] = None, domain_name_label: Optional[pulumi.Input[str]] = None, + domain_name_label_scope: Optional[pulumi.Input[str]] = None, edge_zone: Optional[pulumi.Input[str]] = None, idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, ip_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -836,6 +871,7 @@ def _internal_init(__self__, __props__.__dict__["ddos_protection_mode"] = ddos_protection_mode __props__.__dict__["ddos_protection_plan_id"] = ddos_protection_plan_id __props__.__dict__["domain_name_label"] = domain_name_label + __props__.__dict__["domain_name_label_scope"] = domain_name_label_scope __props__.__dict__["edge_zone"] = edge_zone __props__.__dict__["idle_timeout_in_minutes"] = idle_timeout_in_minutes __props__.__dict__["ip_tags"] = ip_tags @@ -867,6 +903,7 @@ def get(resource_name: str, ddos_protection_mode: Optional[pulumi.Input[str]] = None, ddos_protection_plan_id: Optional[pulumi.Input[str]] = None, domain_name_label: Optional[pulumi.Input[str]] = None, + domain_name_label_scope: Optional[pulumi.Input[str]] = None, edge_zone: Optional[pulumi.Input[str]] = None, fqdn: Optional[pulumi.Input[str]] = None, idle_timeout_in_minutes: Optional[pulumi.Input[int]] = None, @@ -897,6 +934,7 @@ def get(resource_name: str, > **Note:** `ddos_protection_plan_id` can only be set when `ddos_protection_mode` is `Enabled`. :param pulumi.Input[str] domain_name_label: 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. + :param pulumi.Input[str] domain_name_label_scope: 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. :param pulumi.Input[str] edge_zone: Specifies the Edge Zone within the Azure Region where this Public IP should exist. Changing this forces a new Public IP to be created. :param pulumi.Input[str] fqdn: Fully qualified domain name of the A DNS record associated with the public IP. `domain_name_label` must be specified to get the `fqdn`. This is the concatenation of the `domain_name_label` and the regionalized DNS zone :param pulumi.Input[int] idle_timeout_in_minutes: Specifies the timeout for the TCP idle connection. The value can be set between 4 and 30 minutes. @@ -931,6 +969,7 @@ def get(resource_name: str, __props__.__dict__["ddos_protection_mode"] = ddos_protection_mode __props__.__dict__["ddos_protection_plan_id"] = ddos_protection_plan_id __props__.__dict__["domain_name_label"] = domain_name_label + __props__.__dict__["domain_name_label_scope"] = domain_name_label_scope __props__.__dict__["edge_zone"] = edge_zone __props__.__dict__["fqdn"] = fqdn __props__.__dict__["idle_timeout_in_minutes"] = idle_timeout_in_minutes @@ -984,6 +1023,14 @@ def domain_name_label(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "domain_name_label") + @property + @pulumi.getter(name="domainNameLabelScope") + def domain_name_label_scope(self) -> pulumi.Output[Optional[str]]: + """ + 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. + """ + return pulumi.get(self, "domain_name_label_scope") + @property @pulumi.getter(name="edgeZone") def edge_zone(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_azure/network/public_ip_prefix.py b/sdk/python/pulumi_azure/network/public_ip_prefix.py index be44344b03..d56c032e4f 100644 --- a/sdk/python/pulumi_azure/network/public_ip_prefix.py +++ b/sdk/python/pulumi_azure/network/public_ip_prefix.py @@ -25,6 +25,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, prefix_length: Optional[pulumi.Input[int]] = None, sku: Optional[pulumi.Input[str]] = None, + sku_tier: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ @@ -39,6 +40,7 @@ def __init__(__self__, *, :param pulumi.Input[str] sku: The SKU of the Public IP Prefix. Accepted values are `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created. > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. + :param pulumi.Input[str] sku_tier: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -55,6 +57,8 @@ def __init__(__self__, *, pulumi.set(__self__, "prefix_length", prefix_length) if sku is not None: pulumi.set(__self__, "sku", sku) + if sku_tier is not None: + pulumi.set(__self__, "sku_tier", sku_tier) if tags is not None: pulumi.set(__self__, "tags", tags) if zones is not None: @@ -136,6 +140,18 @@ def sku(self) -> Optional[pulumi.Input[str]]: def sku(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "sku", value) + @property + @pulumi.getter(name="skuTier") + def sku_tier(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "sku_tier") + + @sku_tier.setter + def sku_tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sku_tier", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -173,6 +189,7 @@ def __init__(__self__, *, prefix_length: Optional[pulumi.Input[int]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, sku: Optional[pulumi.Input[str]] = None, + sku_tier: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ @@ -188,6 +205,7 @@ def __init__(__self__, *, :param pulumi.Input[str] sku: The SKU of the Public IP Prefix. Accepted values are `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created. > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. + :param pulumi.Input[str] sku_tier: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -207,6 +225,8 @@ def __init__(__self__, *, pulumi.set(__self__, "resource_group_name", resource_group_name) if sku is not None: pulumi.set(__self__, "sku", sku) + if sku_tier is not None: + pulumi.set(__self__, "sku_tier", sku_tier) if tags is not None: pulumi.set(__self__, "tags", tags) if zones is not None: @@ -300,6 +320,18 @@ def sku(self) -> Optional[pulumi.Input[str]]: def sku(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "sku", value) + @property + @pulumi.getter(name="skuTier") + def sku_tier(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "sku_tier") + + @sku_tier.setter + def sku_tier(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sku_tier", value) + @property @pulumi.getter def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: @@ -338,6 +370,7 @@ def __init__(__self__, prefix_length: Optional[pulumi.Input[int]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, sku: Optional[pulumi.Input[str]] = None, + sku_tier: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): @@ -383,6 +416,7 @@ def __init__(__self__, :param pulumi.Input[str] sku: The SKU of the Public IP Prefix. Accepted values are `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created. > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. + :param pulumi.Input[str] sku_tier: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -445,6 +479,7 @@ def _internal_init(__self__, prefix_length: Optional[pulumi.Input[int]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, sku: Optional[pulumi.Input[str]] = None, + sku_tier: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): @@ -464,6 +499,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'resource_group_name'") __props__.__dict__["resource_group_name"] = resource_group_name __props__.__dict__["sku"] = sku + __props__.__dict__["sku_tier"] = sku_tier __props__.__dict__["tags"] = tags __props__.__dict__["zones"] = zones __props__.__dict__["ip_prefix"] = None @@ -484,6 +520,7 @@ def get(resource_name: str, prefix_length: Optional[pulumi.Input[int]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, sku: Optional[pulumi.Input[str]] = None, + sku_tier: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'PublicIpPrefix': """ @@ -504,6 +541,7 @@ def get(resource_name: str, :param pulumi.Input[str] sku: The SKU of the Public IP Prefix. Accepted values are `Standard`. Defaults to `Standard`. Changing this forces a new resource to be created. > **Note:** Public IP Prefix can only be created with Standard SKUs at this time. + :param pulumi.Input[str] sku_tier: 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. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: Specifies a list of Availability Zones in which this Public IP Prefix should be located. Changing this forces a new Public IP Prefix to be created. @@ -520,6 +558,7 @@ def get(resource_name: str, __props__.__dict__["prefix_length"] = prefix_length __props__.__dict__["resource_group_name"] = resource_group_name __props__.__dict__["sku"] = sku + __props__.__dict__["sku_tier"] = sku_tier __props__.__dict__["tags"] = tags __props__.__dict__["zones"] = zones return PublicIpPrefix(resource_name, opts=opts, __props__=__props__) @@ -584,6 +623,14 @@ def sku(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "sku") + @property + @pulumi.getter(name="skuTier") + def sku_tier(self) -> pulumi.Output[Optional[str]]: + """ + 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. + """ + return pulumi.get(self, "sku_tier") + @property @pulumi.getter def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: diff --git a/sdk/python/pulumi_azure/oracle/cloud_vm_cluster.py b/sdk/python/pulumi_azure/oracle/cloud_vm_cluster.py index 96a023aa1b..93465d0f69 100644 --- a/sdk/python/pulumi_azure/oracle/cloud_vm_cluster.py +++ b/sdk/python/pulumi_azure/oracle/cloud_vm_cluster.py @@ -38,13 +38,17 @@ def __init__(__self__, *, data_storage_percentage: Optional[pulumi.Input[int]] = None, data_storage_size_in_tbs: Optional[pulumi.Input[float]] = None, db_node_storage_size_in_gbs: Optional[pulumi.Input[int]] = None, + domain: Optional[pulumi.Input[str]] = None, local_backup_enabled: Optional[pulumi.Input[bool]] = None, location: Optional[pulumi.Input[str]] = None, memory_size_in_gbs: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, + scan_listener_port_tcp: Optional[pulumi.Input[int]] = None, + scan_listener_port_tcp_ssl: Optional[pulumi.Input[int]] = None, sparse_diskgroup_enabled: Optional[pulumi.Input[bool]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - time_zone: Optional[pulumi.Input[str]] = None): + time_zone: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a CloudVmCluster resource. :param pulumi.Input[str] cloud_exadata_infrastructure_id: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Cloud Exadata infrastructure. @@ -64,13 +68,17 @@ def __init__(__self__, *, :param pulumi.Input[int] data_storage_percentage: The percentage assigned to DATA storage (user data and database files). The remaining percentage is assigned to RECO storage (database redo logs, archive logs, and recovery manager backups). Accepted values are `35`, `40`, `60` and `80`. :param pulumi.Input[float] data_storage_size_in_tbs: The data disk group size to be allocated in TBs. :param pulumi.Input[int] db_node_storage_size_in_gbs: The local node storage to be allocated in GBs. + :param pulumi.Input[str] domain: 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. :param pulumi.Input[bool] local_backup_enabled: If true, database backup on local Exadata storage is configured for the Cloud VM Cluster. If `false`, database backup on local Exadata storage is not available in the Cloud VM Cluster. :param pulumi.Input[str] location: The Azure Region where the Cloud VM Cluster should exist. :param pulumi.Input[int] memory_size_in_gbs: The memory to be allocated in GBs. :param pulumi.Input[str] name: The name which should be used for this Cloud VM Cluster. + :param pulumi.Input[int] scan_listener_port_tcp: The TCP Single Client Access Name (SCAN) port. The default port to 1521. + :param pulumi.Input[int] scan_listener_port_tcp_ssl: The TCPS Single Client Access Name (SCAN) port. The default port to 2484. :param pulumi.Input[bool] sparse_diskgroup_enabled: If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Cloud VM Cluster. :param pulumi.Input[str] time_zone: The time zone of the Cloud VM Cluster. For details, see [Exadata Infrastructure Time Zones](https://docs.cloud.oracle.com/iaas/Content/Database/References/timezones.htm). + :param pulumi.Input[str] zone_id: 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. """ pulumi.set(__self__, "cloud_exadata_infrastructure_id", cloud_exadata_infrastructure_id) pulumi.set(__self__, "cpu_core_count", cpu_core_count) @@ -95,6 +103,8 @@ def __init__(__self__, *, pulumi.set(__self__, "data_storage_size_in_tbs", data_storage_size_in_tbs) if db_node_storage_size_in_gbs is not None: pulumi.set(__self__, "db_node_storage_size_in_gbs", db_node_storage_size_in_gbs) + if domain is not None: + pulumi.set(__self__, "domain", domain) if local_backup_enabled is not None: pulumi.set(__self__, "local_backup_enabled", local_backup_enabled) if location is not None: @@ -103,12 +113,18 @@ def __init__(__self__, *, pulumi.set(__self__, "memory_size_in_gbs", memory_size_in_gbs) if name is not None: pulumi.set(__self__, "name", name) + if scan_listener_port_tcp is not None: + pulumi.set(__self__, "scan_listener_port_tcp", scan_listener_port_tcp) + if scan_listener_port_tcp_ssl is not None: + pulumi.set(__self__, "scan_listener_port_tcp_ssl", scan_listener_port_tcp_ssl) if sparse_diskgroup_enabled is not None: pulumi.set(__self__, "sparse_diskgroup_enabled", sparse_diskgroup_enabled) if tags is not None: pulumi.set(__self__, "tags", tags) if time_zone is not None: pulumi.set(__self__, "time_zone", time_zone) + if zone_id is not None: + pulumi.set(__self__, "zone_id", zone_id) @property @pulumi.getter(name="cloudExadataInfrastructureId") @@ -314,6 +330,18 @@ def db_node_storage_size_in_gbs(self) -> Optional[pulumi.Input[int]]: def db_node_storage_size_in_gbs(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "db_node_storage_size_in_gbs", value) + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + @property @pulumi.getter(name="localBackupEnabled") def local_backup_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -362,6 +390,30 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="scanListenerPortTcp") + def scan_listener_port_tcp(self) -> Optional[pulumi.Input[int]]: + """ + The TCP Single Client Access Name (SCAN) port. The default port to 1521. + """ + return pulumi.get(self, "scan_listener_port_tcp") + + @scan_listener_port_tcp.setter + def scan_listener_port_tcp(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scan_listener_port_tcp", value) + + @property + @pulumi.getter(name="scanListenerPortTcpSsl") + def scan_listener_port_tcp_ssl(self) -> Optional[pulumi.Input[int]]: + """ + The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + """ + return pulumi.get(self, "scan_listener_port_tcp_ssl") + + @scan_listener_port_tcp_ssl.setter + def scan_listener_port_tcp_ssl(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scan_listener_port_tcp_ssl", value) + @property @pulumi.getter(name="sparseDiskgroupEnabled") def sparse_diskgroup_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -398,6 +450,18 @@ def time_zone(self) -> Optional[pulumi.Input[str]]: def time_zone(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "time_zone", value) + @property + @pulumi.getter(name="zoneId") + def zone_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "zone_id") + + @zone_id.setter + def zone_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "zone_id", value) + @pulumi.input_type class _CloudVmClusterState: @@ -412,6 +476,7 @@ def __init__(__self__, *, db_node_storage_size_in_gbs: Optional[pulumi.Input[int]] = None, db_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, display_name: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, gi_version: Optional[pulumi.Input[str]] = None, hostname: Optional[pulumi.Input[str]] = None, hostname_actual: Optional[pulumi.Input[str]] = None, @@ -422,12 +487,15 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, ocid: Optional[pulumi.Input[str]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, + scan_listener_port_tcp: Optional[pulumi.Input[int]] = None, + scan_listener_port_tcp_ssl: Optional[pulumi.Input[int]] = None, sparse_diskgroup_enabled: Optional[pulumi.Input[bool]] = None, ssh_public_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, subnet_id: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, time_zone: Optional[pulumi.Input[str]] = None, - virtual_network_id: Optional[pulumi.Input[str]] = None): + virtual_network_id: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering CloudVmCluster resources. :param pulumi.Input[str] backup_subnet_cidr: The backup subnet CIDR of the Virtual Network associated with the Cloud VM Cluster. @@ -440,6 +508,7 @@ def __init__(__self__, *, :param pulumi.Input[int] db_node_storage_size_in_gbs: The local node storage to be allocated in GBs. :param pulumi.Input[Sequence[pulumi.Input[str]]] db_servers: The list of DB servers. :param pulumi.Input[str] display_name: The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. + :param pulumi.Input[str] domain: 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. :param pulumi.Input[str] gi_version: A valid Oracle Grid Infrastructure (GI) software version. :param pulumi.Input[str] hostname: The hostname for the Cloud VM Cluster without suffix. :param pulumi.Input[str] hostname_actual: The hostname for the Cloud VM Cluster with suffix. @@ -450,12 +519,15 @@ def __init__(__self__, *, :param pulumi.Input[str] name: The name which should be used for this Cloud VM Cluster. :param pulumi.Input[str] ocid: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Cloud VM Cluster. :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Cloud VM Cluster should exist. + :param pulumi.Input[int] scan_listener_port_tcp: The TCP Single Client Access Name (SCAN) port. The default port to 1521. + :param pulumi.Input[int] scan_listener_port_tcp_ssl: The TCPS Single Client Access Name (SCAN) port. The default port to 2484. :param pulumi.Input[bool] sparse_diskgroup_enabled: If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. :param pulumi.Input[Sequence[pulumi.Input[str]]] ssh_public_keys: The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. :param pulumi.Input[str] subnet_id: The ID of the subnet associated with the Cloud VM Cluster. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Cloud VM Cluster. :param pulumi.Input[str] time_zone: The time zone of the Cloud VM Cluster. For details, see [Exadata Infrastructure Time Zones](https://docs.cloud.oracle.com/iaas/Content/Database/References/timezones.htm). :param pulumi.Input[str] virtual_network_id: The ID of the Virtual Network associated with the Cloud VM Cluster. + :param pulumi.Input[str] zone_id: 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. """ if backup_subnet_cidr is not None: pulumi.set(__self__, "backup_subnet_cidr", backup_subnet_cidr) @@ -477,6 +549,8 @@ def __init__(__self__, *, pulumi.set(__self__, "db_servers", db_servers) if display_name is not None: pulumi.set(__self__, "display_name", display_name) + if domain is not None: + pulumi.set(__self__, "domain", domain) if gi_version is not None: pulumi.set(__self__, "gi_version", gi_version) if hostname is not None: @@ -497,6 +571,10 @@ def __init__(__self__, *, pulumi.set(__self__, "ocid", ocid) if resource_group_name is not None: pulumi.set(__self__, "resource_group_name", resource_group_name) + if scan_listener_port_tcp is not None: + pulumi.set(__self__, "scan_listener_port_tcp", scan_listener_port_tcp) + if scan_listener_port_tcp_ssl is not None: + pulumi.set(__self__, "scan_listener_port_tcp_ssl", scan_listener_port_tcp_ssl) if sparse_diskgroup_enabled is not None: pulumi.set(__self__, "sparse_diskgroup_enabled", sparse_diskgroup_enabled) if ssh_public_keys is not None: @@ -509,6 +587,8 @@ def __init__(__self__, *, pulumi.set(__self__, "time_zone", time_zone) if virtual_network_id is not None: pulumi.set(__self__, "virtual_network_id", virtual_network_id) + if zone_id is not None: + pulumi.set(__self__, "zone_id", zone_id) @property @pulumi.getter(name="backupSubnetCidr") @@ -630,6 +710,18 @@ def display_name(self) -> Optional[pulumi.Input[str]]: def display_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "display_name", value) + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + @property @pulumi.getter(name="giVersion") def gi_version(self) -> Optional[pulumi.Input[str]]: @@ -750,6 +842,30 @@ def resource_group_name(self) -> Optional[pulumi.Input[str]]: def resource_group_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "resource_group_name", value) + @property + @pulumi.getter(name="scanListenerPortTcp") + def scan_listener_port_tcp(self) -> Optional[pulumi.Input[int]]: + """ + The TCP Single Client Access Name (SCAN) port. The default port to 1521. + """ + return pulumi.get(self, "scan_listener_port_tcp") + + @scan_listener_port_tcp.setter + def scan_listener_port_tcp(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scan_listener_port_tcp", value) + + @property + @pulumi.getter(name="scanListenerPortTcpSsl") + def scan_listener_port_tcp_ssl(self) -> Optional[pulumi.Input[int]]: + """ + The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + """ + return pulumi.get(self, "scan_listener_port_tcp_ssl") + + @scan_listener_port_tcp_ssl.setter + def scan_listener_port_tcp_ssl(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scan_listener_port_tcp_ssl", value) + @property @pulumi.getter(name="sparseDiskgroupEnabled") def sparse_diskgroup_enabled(self) -> Optional[pulumi.Input[bool]]: @@ -822,6 +938,18 @@ def virtual_network_id(self) -> Optional[pulumi.Input[str]]: def virtual_network_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "virtual_network_id", value) + @property + @pulumi.getter(name="zoneId") + def zone_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "zone_id") + + @zone_id.setter + def zone_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "zone_id", value) + class CloudVmCluster(pulumi.CustomResource): @overload @@ -838,6 +966,7 @@ def __init__(__self__, db_node_storage_size_in_gbs: Optional[pulumi.Input[int]] = None, db_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, display_name: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, gi_version: Optional[pulumi.Input[str]] = None, hostname: Optional[pulumi.Input[str]] = None, license_model: Optional[pulumi.Input[str]] = None, @@ -846,12 +975,15 @@ def __init__(__self__, memory_size_in_gbs: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, + scan_listener_port_tcp: Optional[pulumi.Input[int]] = None, + scan_listener_port_tcp_ssl: Optional[pulumi.Input[int]] = None, sparse_diskgroup_enabled: Optional[pulumi.Input[bool]] = None, ssh_public_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, subnet_id: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, time_zone: Optional[pulumi.Input[str]] = None, virtual_network_id: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, __props__=None): """ Manages a Cloud VM Cluster. @@ -933,6 +1065,7 @@ def __init__(__self__, :param pulumi.Input[int] db_node_storage_size_in_gbs: The local node storage to be allocated in GBs. :param pulumi.Input[Sequence[pulumi.Input[str]]] db_servers: The list of DB servers. :param pulumi.Input[str] display_name: The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. + :param pulumi.Input[str] domain: 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. :param pulumi.Input[str] gi_version: A valid Oracle Grid Infrastructure (GI) software version. :param pulumi.Input[str] hostname: The hostname for the Cloud VM Cluster without suffix. :param pulumi.Input[str] license_model: The Oracle license model that applies to the Cloud VM Cluster, either `BringYourOwnLicense` or `LicenseIncluded`. @@ -941,12 +1074,15 @@ def __init__(__self__, :param pulumi.Input[int] memory_size_in_gbs: The memory to be allocated in GBs. :param pulumi.Input[str] name: The name which should be used for this Cloud VM Cluster. :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Cloud VM Cluster should exist. + :param pulumi.Input[int] scan_listener_port_tcp: The TCP Single Client Access Name (SCAN) port. The default port to 1521. + :param pulumi.Input[int] scan_listener_port_tcp_ssl: The TCPS Single Client Access Name (SCAN) port. The default port to 2484. :param pulumi.Input[bool] sparse_diskgroup_enabled: If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. :param pulumi.Input[Sequence[pulumi.Input[str]]] ssh_public_keys: The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. :param pulumi.Input[str] subnet_id: The ID of the subnet associated with the Cloud VM Cluster. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Cloud VM Cluster. :param pulumi.Input[str] time_zone: The time zone of the Cloud VM Cluster. For details, see [Exadata Infrastructure Time Zones](https://docs.cloud.oracle.com/iaas/Content/Database/References/timezones.htm). :param pulumi.Input[str] virtual_network_id: The ID of the Virtual Network associated with the Cloud VM Cluster. + :param pulumi.Input[str] zone_id: 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. """ ... @overload @@ -1047,6 +1183,7 @@ def _internal_init(__self__, db_node_storage_size_in_gbs: Optional[pulumi.Input[int]] = None, db_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, display_name: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, gi_version: Optional[pulumi.Input[str]] = None, hostname: Optional[pulumi.Input[str]] = None, license_model: Optional[pulumi.Input[str]] = None, @@ -1055,12 +1192,15 @@ def _internal_init(__self__, memory_size_in_gbs: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, + scan_listener_port_tcp: Optional[pulumi.Input[int]] = None, + scan_listener_port_tcp_ssl: Optional[pulumi.Input[int]] = None, sparse_diskgroup_enabled: Optional[pulumi.Input[bool]] = None, ssh_public_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, subnet_id: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, time_zone: Optional[pulumi.Input[str]] = None, virtual_network_id: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) if not isinstance(opts, pulumi.ResourceOptions): @@ -1088,6 +1228,7 @@ def _internal_init(__self__, if display_name is None and not opts.urn: raise TypeError("Missing required property 'display_name'") __props__.__dict__["display_name"] = display_name + __props__.__dict__["domain"] = domain if gi_version is None and not opts.urn: raise TypeError("Missing required property 'gi_version'") __props__.__dict__["gi_version"] = gi_version @@ -1104,6 +1245,8 @@ def _internal_init(__self__, if resource_group_name is None and not opts.urn: raise TypeError("Missing required property 'resource_group_name'") __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["scan_listener_port_tcp"] = scan_listener_port_tcp + __props__.__dict__["scan_listener_port_tcp_ssl"] = scan_listener_port_tcp_ssl __props__.__dict__["sparse_diskgroup_enabled"] = sparse_diskgroup_enabled if ssh_public_keys is None and not opts.urn: raise TypeError("Missing required property 'ssh_public_keys'") @@ -1116,6 +1259,7 @@ def _internal_init(__self__, if virtual_network_id is None and not opts.urn: raise TypeError("Missing required property 'virtual_network_id'") __props__.__dict__["virtual_network_id"] = virtual_network_id + __props__.__dict__["zone_id"] = zone_id __props__.__dict__["hostname_actual"] = None __props__.__dict__["ocid"] = None super(CloudVmCluster, __self__).__init__( @@ -1138,6 +1282,7 @@ def get(resource_name: str, db_node_storage_size_in_gbs: Optional[pulumi.Input[int]] = None, db_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, display_name: Optional[pulumi.Input[str]] = None, + domain: Optional[pulumi.Input[str]] = None, gi_version: Optional[pulumi.Input[str]] = None, hostname: Optional[pulumi.Input[str]] = None, hostname_actual: Optional[pulumi.Input[str]] = None, @@ -1148,12 +1293,15 @@ def get(resource_name: str, name: Optional[pulumi.Input[str]] = None, ocid: Optional[pulumi.Input[str]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, + scan_listener_port_tcp: Optional[pulumi.Input[int]] = None, + scan_listener_port_tcp_ssl: Optional[pulumi.Input[int]] = None, sparse_diskgroup_enabled: Optional[pulumi.Input[bool]] = None, ssh_public_keys: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, subnet_id: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, time_zone: Optional[pulumi.Input[str]] = None, - virtual_network_id: Optional[pulumi.Input[str]] = None) -> 'CloudVmCluster': + virtual_network_id: Optional[pulumi.Input[str]] = None, + zone_id: Optional[pulumi.Input[str]] = None) -> 'CloudVmCluster': """ Get an existing CloudVmCluster resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -1171,6 +1319,7 @@ def get(resource_name: str, :param pulumi.Input[int] db_node_storage_size_in_gbs: The local node storage to be allocated in GBs. :param pulumi.Input[Sequence[pulumi.Input[str]]] db_servers: The list of DB servers. :param pulumi.Input[str] display_name: The user-friendly name for the Cloud VM Cluster. The name does not need to be unique.. + :param pulumi.Input[str] domain: 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. :param pulumi.Input[str] gi_version: A valid Oracle Grid Infrastructure (GI) software version. :param pulumi.Input[str] hostname: The hostname for the Cloud VM Cluster without suffix. :param pulumi.Input[str] hostname_actual: The hostname for the Cloud VM Cluster with suffix. @@ -1181,12 +1330,15 @@ def get(resource_name: str, :param pulumi.Input[str] name: The name which should be used for this Cloud VM Cluster. :param pulumi.Input[str] ocid: The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Cloud VM Cluster. :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Cloud VM Cluster should exist. + :param pulumi.Input[int] scan_listener_port_tcp: The TCP Single Client Access Name (SCAN) port. The default port to 1521. + :param pulumi.Input[int] scan_listener_port_tcp_ssl: The TCPS Single Client Access Name (SCAN) port. The default port to 2484. :param pulumi.Input[bool] sparse_diskgroup_enabled: If true, the sparse disk group is configured for the Cloud VM Cluster. If `false`, the sparse disk group is not created. :param pulumi.Input[Sequence[pulumi.Input[str]]] ssh_public_keys: The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. :param pulumi.Input[str] subnet_id: The ID of the subnet associated with the Cloud VM Cluster. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Cloud VM Cluster. :param pulumi.Input[str] time_zone: The time zone of the Cloud VM Cluster. For details, see [Exadata Infrastructure Time Zones](https://docs.cloud.oracle.com/iaas/Content/Database/References/timezones.htm). :param pulumi.Input[str] virtual_network_id: The ID of the Virtual Network associated with the Cloud VM Cluster. + :param pulumi.Input[str] zone_id: 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. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -1202,6 +1354,7 @@ def get(resource_name: str, __props__.__dict__["db_node_storage_size_in_gbs"] = db_node_storage_size_in_gbs __props__.__dict__["db_servers"] = db_servers __props__.__dict__["display_name"] = display_name + __props__.__dict__["domain"] = domain __props__.__dict__["gi_version"] = gi_version __props__.__dict__["hostname"] = hostname __props__.__dict__["hostname_actual"] = hostname_actual @@ -1212,12 +1365,15 @@ def get(resource_name: str, __props__.__dict__["name"] = name __props__.__dict__["ocid"] = ocid __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["scan_listener_port_tcp"] = scan_listener_port_tcp + __props__.__dict__["scan_listener_port_tcp_ssl"] = scan_listener_port_tcp_ssl __props__.__dict__["sparse_diskgroup_enabled"] = sparse_diskgroup_enabled __props__.__dict__["ssh_public_keys"] = ssh_public_keys __props__.__dict__["subnet_id"] = subnet_id __props__.__dict__["tags"] = tags __props__.__dict__["time_zone"] = time_zone __props__.__dict__["virtual_network_id"] = virtual_network_id + __props__.__dict__["zone_id"] = zone_id return CloudVmCluster(resource_name, opts=opts, __props__=__props__) @property @@ -1300,6 +1456,14 @@ def display_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "display_name") + @property + @pulumi.getter + def domain(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "domain") + @property @pulumi.getter(name="giVersion") def gi_version(self) -> pulumi.Output[str]: @@ -1380,6 +1544,22 @@ def resource_group_name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "resource_group_name") + @property + @pulumi.getter(name="scanListenerPortTcp") + def scan_listener_port_tcp(self) -> pulumi.Output[Optional[int]]: + """ + The TCP Single Client Access Name (SCAN) port. The default port to 1521. + """ + return pulumi.get(self, "scan_listener_port_tcp") + + @property + @pulumi.getter(name="scanListenerPortTcpSsl") + def scan_listener_port_tcp_ssl(self) -> pulumi.Output[Optional[int]]: + """ + The TCPS Single Client Access Name (SCAN) port. The default port to 2484. + """ + return pulumi.get(self, "scan_listener_port_tcp_ssl") + @property @pulumi.getter(name="sparseDiskgroupEnabled") def sparse_diskgroup_enabled(self) -> pulumi.Output[bool]: @@ -1428,3 +1608,11 @@ def virtual_network_id(self) -> pulumi.Output[str]: """ return pulumi.get(self, "virtual_network_id") + @property + @pulumi.getter(name="zoneId") + def zone_id(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "zone_id") + diff --git a/sdk/python/pulumi_azure/sentinel/alert_rule_fusion.py b/sdk/python/pulumi_azure/sentinel/alert_rule_fusion.py index ffff29addc..b870638dec 100644 --- a/sdk/python/pulumi_azure/sentinel/alert_rule_fusion.py +++ b/sdk/python/pulumi_azure/sentinel/alert_rule_fusion.py @@ -31,13 +31,15 @@ def __init__(__self__, *, :param pulumi.Input[str] alert_rule_template_guid: The GUID of the alert rule template which is used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[str] log_analytics_workspace_id: The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[bool] enabled: Should this Sentinel Fusion Alert Rule be enabled? Defaults to `true`. - :param pulumi.Input[str] name: The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[Sequence[pulumi.Input['AlertRuleFusionSourceArgs']]] sources: One or more `source` blocks as defined below. """ pulumi.set(__self__, "alert_rule_template_guid", alert_rule_template_guid) pulumi.set(__self__, "log_analytics_workspace_id", log_analytics_workspace_id) if enabled is not None: pulumi.set(__self__, "enabled", enabled) + if name is not None: + warnings.warn("""the `name` is deprecated and will be removed in v5.0 version of the provider.""", DeprecationWarning) + pulumi.log.warn("""name is deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider.""") if name is not None: pulumi.set(__self__, "name", name) if sources is not None: @@ -81,10 +83,8 @@ def enabled(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter + @_utilities.deprecated("""the `name` is deprecated and will be removed in v5.0 version of the provider.""") def name(self) -> Optional[pulumi.Input[str]]: - """ - The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - """ return pulumi.get(self, "name") @name.setter @@ -117,7 +117,6 @@ def __init__(__self__, *, :param pulumi.Input[str] alert_rule_template_guid: The GUID of the alert rule template which is used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[bool] enabled: Should this Sentinel Fusion Alert Rule be enabled? Defaults to `true`. :param pulumi.Input[str] log_analytics_workspace_id: The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. - :param pulumi.Input[str] name: The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[Sequence[pulumi.Input['AlertRuleFusionSourceArgs']]] sources: One or more `source` blocks as defined below. """ if alert_rule_template_guid is not None: @@ -126,6 +125,9 @@ def __init__(__self__, *, pulumi.set(__self__, "enabled", enabled) if log_analytics_workspace_id is not None: pulumi.set(__self__, "log_analytics_workspace_id", log_analytics_workspace_id) + if name is not None: + warnings.warn("""the `name` is deprecated and will be removed in v5.0 version of the provider.""", DeprecationWarning) + pulumi.log.warn("""name is deprecated: the `name` is deprecated and will be removed in v5.0 version of the provider.""") if name is not None: pulumi.set(__self__, "name", name) if sources is not None: @@ -169,10 +171,8 @@ def log_analytics_workspace_id(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter + @_utilities.deprecated("""the `name` is deprecated and will be removed in v5.0 version of the provider.""") def name(self) -> Optional[pulumi.Input[str]]: - """ - The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - """ return pulumi.get(self, "name") @name.setter @@ -220,19 +220,9 @@ def __init__(__self__, location=example.location, resource_group_name=example.name, sku="PerGB2018") - example_analytics_solution = azure.operationalinsights.AnalyticsSolution("example", - solution_name="SecurityInsights", - location=example.location, - resource_group_name=example.name, - workspace_resource_id=example_analytics_workspace.id, - workspace_name=example_analytics_workspace.name, - plan={ - "publisher": "Microsoft", - "product": "OMSGallery/SecurityInsights", - }) + example_log_analytics_workspace_onboarding = azure.sentinel.LogAnalyticsWorkspaceOnboarding("example", workspace_id=example_analytics_workspace.id) example_alert_rule_fusion = azure.sentinel.AlertRuleFusion("example", - name="example-fusion-alert-rule", - log_analytics_workspace_id=example_analytics_solution.workspace_resource_id, + log_analytics_workspace_id=example_log_analytics_workspace_onboarding.workspace_id, alert_rule_template_guid="f71aba3d-28fb-450b-b192-4e76a83015c8") ``` @@ -249,7 +239,6 @@ def __init__(__self__, :param pulumi.Input[str] alert_rule_template_guid: The GUID of the alert rule template which is used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[bool] enabled: Should this Sentinel Fusion Alert Rule be enabled? Defaults to `true`. :param pulumi.Input[str] log_analytics_workspace_id: The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. - :param pulumi.Input[str] name: The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[Sequence[pulumi.Input[Union['AlertRuleFusionSourceArgs', 'AlertRuleFusionSourceArgsDict']]]] sources: One or more `source` blocks as defined below. """ ... @@ -275,19 +264,9 @@ def __init__(__self__, location=example.location, resource_group_name=example.name, sku="PerGB2018") - example_analytics_solution = azure.operationalinsights.AnalyticsSolution("example", - solution_name="SecurityInsights", - location=example.location, - resource_group_name=example.name, - workspace_resource_id=example_analytics_workspace.id, - workspace_name=example_analytics_workspace.name, - plan={ - "publisher": "Microsoft", - "product": "OMSGallery/SecurityInsights", - }) + example_log_analytics_workspace_onboarding = azure.sentinel.LogAnalyticsWorkspaceOnboarding("example", workspace_id=example_analytics_workspace.id) example_alert_rule_fusion = azure.sentinel.AlertRuleFusion("example", - name="example-fusion-alert-rule", - log_analytics_workspace_id=example_analytics_solution.workspace_resource_id, + log_analytics_workspace_id=example_log_analytics_workspace_onboarding.workspace_id, alert_rule_template_guid="f71aba3d-28fb-450b-b192-4e76a83015c8") ``` @@ -362,7 +341,6 @@ def get(resource_name: str, :param pulumi.Input[str] alert_rule_template_guid: The GUID of the alert rule template which is used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[bool] enabled: Should this Sentinel Fusion Alert Rule be enabled? Defaults to `true`. :param pulumi.Input[str] log_analytics_workspace_id: The ID of the Log Analytics Workspace this Sentinel Fusion Alert Rule belongs to. Changing this forces a new Sentinel Fusion Alert Rule to be created. - :param pulumi.Input[str] name: The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. :param pulumi.Input[Sequence[pulumi.Input[Union['AlertRuleFusionSourceArgs', 'AlertRuleFusionSourceArgsDict']]]] sources: One or more `source` blocks as defined below. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -402,10 +380,8 @@ def log_analytics_workspace_id(self) -> pulumi.Output[str]: @property @pulumi.getter + @_utilities.deprecated("""the `name` is deprecated and will be removed in v5.0 version of the provider.""") def name(self) -> pulumi.Output[str]: - """ - The name which should be used for this Sentinel Fusion Alert Rule. Changing this forces a new Sentinel Fusion Alert Rule to be created. - """ return pulumi.get(self, "name") @property diff --git a/sdk/python/pulumi_azure/stack/__init__.py b/sdk/python/pulumi_azure/stack/__init__.py index 1607b591da..d6e2a6f1cd 100644 --- a/sdk/python/pulumi_azure/stack/__init__.py +++ b/sdk/python/pulumi_azure/stack/__init__.py @@ -11,6 +11,7 @@ from .hci_extension import * from .hci_logical_network import * from .hci_marketplace_gallery_image import * +from .hci_network_interface import * from .hci_storage_path import * from .hci_virtual_hard_disk import * from ._inputs import * diff --git a/sdk/python/pulumi_azure/stack/_inputs.py b/sdk/python/pulumi_azure/stack/_inputs.py index 0d84e3f1ed..845d6e1219 100644 --- a/sdk/python/pulumi_azure/stack/_inputs.py +++ b/sdk/python/pulumi_azure/stack/_inputs.py @@ -51,6 +51,8 @@ 'HciLogicalNetworkSubnetRouteArgsDict', 'HciMarketplaceGalleryImageIdentifierArgs', 'HciMarketplaceGalleryImageIdentifierArgsDict', + 'HciNetworkInterfaceIpConfigurationArgs', + 'HciNetworkInterfaceIpConfigurationArgsDict', ] MYPY = False @@ -1534,6 +1536,8 @@ class HciLogicalNetworkSubnetArgsDict(TypedDict): ip_pools: NotRequired[pulumi.Input[Sequence[pulumi.Input['HciLogicalNetworkSubnetIpPoolArgsDict']]]] """ One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + + > **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`. """ routes: NotRequired[pulumi.Input[Sequence[pulumi.Input['HciLogicalNetworkSubnetRouteArgsDict']]]] """ @@ -1558,6 +1562,8 @@ def __init__(__self__, *, :param pulumi.Input[str] ip_allocation_method: The IP address allocation method for the subnet. Possible values are `Dynamic` and `Static`. Changing this forces a new resource to be created. :param pulumi.Input[str] address_prefix: The address prefix in CIDR notation. Changing this forces a new resource to be created. :param pulumi.Input[Sequence[pulumi.Input['HciLogicalNetworkSubnetIpPoolArgs']]] ip_pools: One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + + > **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`. :param pulumi.Input[Sequence[pulumi.Input['HciLogicalNetworkSubnetRouteArgs']]] routes: A `route` block as defined above. Changing this forces a new resource to be created. :param pulumi.Input[int] vlan_id: The VLAN ID for the Logical Network. Changing this forces a new resource to be created. """ @@ -1600,6 +1606,8 @@ def address_prefix(self, value: Optional[pulumi.Input[str]]): def ip_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['HciLogicalNetworkSubnetIpPoolArgs']]]]: """ One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + + > **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`. """ return pulumi.get(self, "ip_pools") @@ -1821,3 +1829,94 @@ def sku(self, value: pulumi.Input[str]): pulumi.set(self, "sku", value) +if not MYPY: + class HciNetworkInterfaceIpConfigurationArgsDict(TypedDict): + subnet_id: pulumi.Input[str] + """ + The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + """ + gateway: NotRequired[pulumi.Input[str]] + """ + The IPv4 address of the gateway for the Network Interface. + """ + prefix_length: NotRequired[pulumi.Input[str]] + """ + The prefix length for the address of the Network Interface. + """ + private_ip_address: NotRequired[pulumi.Input[str]] + """ + The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + """ +elif False: + HciNetworkInterfaceIpConfigurationArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class HciNetworkInterfaceIpConfigurationArgs: + def __init__(__self__, *, + subnet_id: pulumi.Input[str], + gateway: Optional[pulumi.Input[str]] = None, + prefix_length: Optional[pulumi.Input[str]] = None, + private_ip_address: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] subnet_id: The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + :param pulumi.Input[str] gateway: The IPv4 address of the gateway for the Network Interface. + :param pulumi.Input[str] prefix_length: The prefix length for the address of the Network Interface. + :param pulumi.Input[str] private_ip_address: The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + """ + pulumi.set(__self__, "subnet_id", subnet_id) + if gateway is not None: + pulumi.set(__self__, "gateway", gateway) + if prefix_length is not None: + pulumi.set(__self__, "prefix_length", prefix_length) + if private_ip_address is not None: + pulumi.set(__self__, "private_ip_address", private_ip_address) + + @property + @pulumi.getter(name="subnetId") + def subnet_id(self) -> pulumi.Input[str]: + """ + The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "subnet_id") + + @subnet_id.setter + def subnet_id(self, value: pulumi.Input[str]): + pulumi.set(self, "subnet_id", value) + + @property + @pulumi.getter + def gateway(self) -> Optional[pulumi.Input[str]]: + """ + The IPv4 address of the gateway for the Network Interface. + """ + return pulumi.get(self, "gateway") + + @gateway.setter + def gateway(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "gateway", value) + + @property + @pulumi.getter(name="prefixLength") + def prefix_length(self) -> Optional[pulumi.Input[str]]: + """ + The prefix length for the address of the Network Interface. + """ + return pulumi.get(self, "prefix_length") + + @prefix_length.setter + def prefix_length(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "prefix_length", value) + + @property + @pulumi.getter(name="privateIpAddress") + def private_ip_address(self) -> Optional[pulumi.Input[str]]: + """ + The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "private_ip_address") + + @private_ip_address.setter + def private_ip_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "private_ip_address", value) + + diff --git a/sdk/python/pulumi_azure/stack/hci_network_interface.py b/sdk/python/pulumi_azure/stack/hci_network_interface.py new file mode 100644 index 0000000000..2edce08784 --- /dev/null +++ b/sdk/python/pulumi_azure/stack/hci_network_interface.py @@ -0,0 +1,514 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['HciNetworkInterfaceArgs', 'HciNetworkInterface'] + +@pulumi.input_type +class HciNetworkInterfaceArgs: + def __init__(__self__, *, + custom_location_id: pulumi.Input[str], + ip_configuration: pulumi.Input['HciNetworkInterfaceIpConfigurationArgs'], + resource_group_name: pulumi.Input[str], + dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + location: Optional[pulumi.Input[str]] = None, + mac_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + The set of arguments for constructing a HciNetworkInterface resource. + :param pulumi.Input[str] custom_location_id: The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input['HciNetworkInterfaceIpConfigurationArgs'] ip_configuration: An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers: 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. + :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] mac_address: 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`. + :param pulumi.Input[str] name: The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + """ + pulumi.set(__self__, "custom_location_id", custom_location_id) + pulumi.set(__self__, "ip_configuration", ip_configuration) + pulumi.set(__self__, "resource_group_name", resource_group_name) + if dns_servers is not None: + pulumi.set(__self__, "dns_servers", dns_servers) + if location is not None: + pulumi.set(__self__, "location", location) + if mac_address is not None: + pulumi.set(__self__, "mac_address", mac_address) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="customLocationId") + def custom_location_id(self) -> pulumi.Input[str]: + """ + The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "custom_location_id") + + @custom_location_id.setter + def custom_location_id(self, value: pulumi.Input[str]): + pulumi.set(self, "custom_location_id", value) + + @property + @pulumi.getter(name="ipConfiguration") + def ip_configuration(self) -> pulumi.Input['HciNetworkInterfaceIpConfigurationArgs']: + """ + An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "ip_configuration") + + @ip_configuration.setter + def ip_configuration(self, value: pulumi.Input['HciNetworkInterfaceIpConfigurationArgs']): + pulumi.set(self, "ip_configuration", value) + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> pulumi.Input[str]: + """ + The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @resource_group_name.setter + def resource_group_name(self, value: pulumi.Input[str]): + pulumi.set(self, "resource_group_name", value) + + @property + @pulumi.getter(name="dnsServers") + def dns_servers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "dns_servers") + + @dns_servers.setter + def dns_servers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "dns_servers", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="macAddress") + def mac_address(self) -> Optional[pulumi.Input[str]]: + """ + 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`. + """ + return pulumi.get(self, "mac_address") + + @mac_address.setter + def mac_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mac_address", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +@pulumi.input_type +class _HciNetworkInterfaceState: + def __init__(__self__, *, + custom_location_id: Optional[pulumi.Input[str]] = None, + dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_configuration: Optional[pulumi.Input['HciNetworkInterfaceIpConfigurationArgs']] = None, + location: Optional[pulumi.Input[str]] = None, + mac_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering HciNetworkInterface resources. + :param pulumi.Input[str] custom_location_id: The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers: 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. + :param pulumi.Input['HciNetworkInterfaceIpConfigurationArgs'] ip_configuration: An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] mac_address: 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`. + :param pulumi.Input[str] name: The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + """ + if custom_location_id is not None: + pulumi.set(__self__, "custom_location_id", custom_location_id) + if dns_servers is not None: + pulumi.set(__self__, "dns_servers", dns_servers) + if ip_configuration is not None: + pulumi.set(__self__, "ip_configuration", ip_configuration) + if location is not None: + pulumi.set(__self__, "location", location) + if mac_address is not None: + pulumi.set(__self__, "mac_address", mac_address) + if name is not None: + pulumi.set(__self__, "name", name) + if resource_group_name is not None: + pulumi.set(__self__, "resource_group_name", resource_group_name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="customLocationId") + def custom_location_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "custom_location_id") + + @custom_location_id.setter + def custom_location_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_location_id", value) + + @property + @pulumi.getter(name="dnsServers") + def dns_servers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "dns_servers") + + @dns_servers.setter + def dns_servers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "dns_servers", value) + + @property + @pulumi.getter(name="ipConfiguration") + def ip_configuration(self) -> Optional[pulumi.Input['HciNetworkInterfaceIpConfigurationArgs']]: + """ + An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "ip_configuration") + + @ip_configuration.setter + def ip_configuration(self, value: Optional[pulumi.Input['HciNetworkInterfaceIpConfigurationArgs']]): + pulumi.set(self, "ip_configuration", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @location.setter + def location(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "location", value) + + @property + @pulumi.getter(name="macAddress") + def mac_address(self) -> Optional[pulumi.Input[str]]: + """ + 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`. + """ + return pulumi.get(self, "mac_address") + + @mac_address.setter + def mac_address(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mac_address", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @resource_group_name.setter + def resource_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_group_name", value) + + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + + +class HciNetworkInterface(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + custom_location_id: Optional[pulumi.Input[str]] = None, + dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_configuration: Optional[pulumi.Input[Union['HciNetworkInterfaceIpConfigurationArgs', 'HciNetworkInterfaceIpConfigurationArgsDict']]] = None, + location: Optional[pulumi.Input[str]] = None, + mac_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + 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 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] custom_location_id: The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers: 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. + :param pulumi.Input[Union['HciNetworkInterfaceIpConfigurationArgs', 'HciNetworkInterfaceIpConfigurationArgsDict']] ip_configuration: An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] mac_address: 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`. + :param pulumi.Input[str] name: The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: HciNetworkInterfaceArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + 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 + ``` + + :param str resource_name: The name of the resource. + :param HciNetworkInterfaceArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(HciNetworkInterfaceArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + custom_location_id: Optional[pulumi.Input[str]] = None, + dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_configuration: Optional[pulumi.Input[Union['HciNetworkInterfaceIpConfigurationArgs', 'HciNetworkInterfaceIpConfigurationArgsDict']]] = None, + location: Optional[pulumi.Input[str]] = None, + mac_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = HciNetworkInterfaceArgs.__new__(HciNetworkInterfaceArgs) + + if custom_location_id is None and not opts.urn: + raise TypeError("Missing required property 'custom_location_id'") + __props__.__dict__["custom_location_id"] = custom_location_id + __props__.__dict__["dns_servers"] = dns_servers + if ip_configuration is None and not opts.urn: + raise TypeError("Missing required property 'ip_configuration'") + __props__.__dict__["ip_configuration"] = ip_configuration + __props__.__dict__["location"] = location + __props__.__dict__["mac_address"] = mac_address + __props__.__dict__["name"] = name + if resource_group_name is None and not opts.urn: + raise TypeError("Missing required property 'resource_group_name'") + __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["tags"] = tags + super(HciNetworkInterface, __self__).__init__( + 'azure:stack/hciNetworkInterface:HciNetworkInterface', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + custom_location_id: Optional[pulumi.Input[str]] = None, + dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ip_configuration: Optional[pulumi.Input[Union['HciNetworkInterfaceIpConfigurationArgs', 'HciNetworkInterfaceIpConfigurationArgsDict']]] = None, + location: Optional[pulumi.Input[str]] = None, + mac_address: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'HciNetworkInterface': + """ + Get an existing HciNetworkInterface resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] custom_location_id: The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input[str]]] dns_servers: 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. + :param pulumi.Input[Union['HciNetworkInterfaceIpConfigurationArgs', 'HciNetworkInterfaceIpConfigurationArgsDict']] ip_configuration: An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] mac_address: 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`. + :param pulumi.Input[str] name: The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _HciNetworkInterfaceState.__new__(_HciNetworkInterfaceState) + + __props__.__dict__["custom_location_id"] = custom_location_id + __props__.__dict__["dns_servers"] = dns_servers + __props__.__dict__["ip_configuration"] = ip_configuration + __props__.__dict__["location"] = location + __props__.__dict__["mac_address"] = mac_address + __props__.__dict__["name"] = name + __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["tags"] = tags + return HciNetworkInterface(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="customLocationId") + def custom_location_id(self) -> pulumi.Output[str]: + """ + The ID of the Custom Location where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "custom_location_id") + + @property + @pulumi.getter(name="dnsServers") + def dns_servers(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + 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. + """ + return pulumi.get(self, "dns_servers") + + @property + @pulumi.getter(name="ipConfiguration") + def ip_configuration(self) -> pulumi.Output['outputs.HciNetworkInterfaceIpConfiguration']: + """ + An `ip_configuration` block as defined below. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "ip_configuration") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The Azure Region where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter(name="macAddress") + def mac_address(self) -> pulumi.Output[Optional[str]]: + """ + 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`. + """ + return pulumi.get(self, "mac_address") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name which should be used for this Azure Stack HCI Network Interface. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> pulumi.Output[str]: + """ + The name of the Resource Group where the Azure Stack HCI Network Interface should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A mapping of tags which should be assigned to the Azure Stack HCI Network Interface. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_azure/stack/outputs.py b/sdk/python/pulumi_azure/stack/outputs.py index c150a32f80..b9e4473ad9 100644 --- a/sdk/python/pulumi_azure/stack/outputs.py +++ b/sdk/python/pulumi_azure/stack/outputs.py @@ -34,6 +34,7 @@ 'HciLogicalNetworkSubnetIpPool', 'HciLogicalNetworkSubnetRoute', 'HciMarketplaceGalleryImageIdentifier', + 'HciNetworkInterfaceIpConfiguration', 'GetHciClusterIdentityResult', ] @@ -1258,6 +1259,8 @@ def __init__(__self__, *, :param str ip_allocation_method: The IP address allocation method for the subnet. Possible values are `Dynamic` and `Static`. Changing this forces a new resource to be created. :param str address_prefix: The address prefix in CIDR notation. Changing this forces a new resource to be created. :param Sequence['HciLogicalNetworkSubnetIpPoolArgs'] ip_pools: One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + + > **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`. :param Sequence['HciLogicalNetworkSubnetRouteArgs'] routes: A `route` block as defined above. Changing this forces a new resource to be created. :param int vlan_id: The VLAN ID for the Logical Network. Changing this forces a new resource to be created. """ @@ -1292,6 +1295,8 @@ def address_prefix(self) -> Optional[str]: def ip_pools(self) -> Optional[Sequence['outputs.HciLogicalNetworkSubnetIpPool']]: """ One or more `ip_pool` block as defined above. Changing this forces a new resource to be created. + + > **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`. """ return pulumi.get(self, "ip_pools") @@ -1441,6 +1446,81 @@ def sku(self) -> str: return pulumi.get(self, "sku") +@pulumi.output_type +class HciNetworkInterfaceIpConfiguration(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "subnetId": + suggest = "subnet_id" + elif key == "prefixLength": + suggest = "prefix_length" + elif key == "privateIpAddress": + suggest = "private_ip_address" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in HciNetworkInterfaceIpConfiguration. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + HciNetworkInterfaceIpConfiguration.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + HciNetworkInterfaceIpConfiguration.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + subnet_id: str, + gateway: Optional[str] = None, + prefix_length: Optional[str] = None, + private_ip_address: Optional[str] = None): + """ + :param str subnet_id: The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + :param str gateway: The IPv4 address of the gateway for the Network Interface. + :param str prefix_length: The prefix length for the address of the Network Interface. + :param str private_ip_address: The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + """ + pulumi.set(__self__, "subnet_id", subnet_id) + if gateway is not None: + pulumi.set(__self__, "gateway", gateway) + if prefix_length is not None: + pulumi.set(__self__, "prefix_length", prefix_length) + if private_ip_address is not None: + pulumi.set(__self__, "private_ip_address", private_ip_address) + + @property + @pulumi.getter(name="subnetId") + def subnet_id(self) -> str: + """ + The resource ID of the Stack HCI Logical Network bound to the IP configuration. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "subnet_id") + + @property + @pulumi.getter + def gateway(self) -> Optional[str]: + """ + The IPv4 address of the gateway for the Network Interface. + """ + return pulumi.get(self, "gateway") + + @property + @pulumi.getter(name="prefixLength") + def prefix_length(self) -> Optional[str]: + """ + The prefix length for the address of the Network Interface. + """ + return pulumi.get(self, "prefix_length") + + @property + @pulumi.getter(name="privateIpAddress") + def private_ip_address(self) -> Optional[str]: + """ + The IPv4 address of the IP configuration. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "private_ip_address") + + @pulumi.output_type class GetHciClusterIdentityResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_azure/storage/__init__.py b/sdk/python/pulumi_azure/storage/__init__.py index cb1d7335af..35ef2359d0 100644 --- a/sdk/python/pulumi_azure/storage/__init__.py +++ b/sdk/python/pulumi_azure/storage/__init__.py @@ -7,6 +7,8 @@ # Export this package's modules as members: from .account import * from .account_network_rules import * +from .account_queue_properties import * +from .account_static_website import * from .blob import * from .blob_inventory_policy import * from .container import * diff --git a/sdk/python/pulumi_azure/storage/_inputs.py b/sdk/python/pulumi_azure/storage/_inputs.py index e6be57d84e..d6ce137c63 100644 --- a/sdk/python/pulumi_azure/storage/_inputs.py +++ b/sdk/python/pulumi_azure/storage/_inputs.py @@ -1522,10 +1522,6 @@ def max_age_in_seconds(self, value: pulumi.Input[int]): if not MYPY: class AccountQueuePropertiesHourMetricsArgsDict(TypedDict): - enabled: pulumi.Input[bool] - """ - Indicates whether hour metrics are enabled for the Queue service. - """ version: pulumi.Input[str] """ The version of storage analytics to configure. @@ -1544,35 +1540,20 @@ class AccountQueuePropertiesHourMetricsArgsDict(TypedDict): @pulumi.input_type class AccountQueuePropertiesHourMetricsArgs: def __init__(__self__, *, - enabled: pulumi.Input[bool], version: pulumi.Input[str], include_apis: Optional[pulumi.Input[bool]] = None, retention_policy_days: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[bool] enabled: Indicates whether hour metrics are enabled for the Queue service. :param pulumi.Input[str] version: The version of storage analytics to configure. :param pulumi.Input[bool] include_apis: Indicates whether metrics should generate summary statistics for called API operations. :param pulumi.Input[int] retention_policy_days: Specifies the number of days that logs will be retained. """ - pulumi.set(__self__, "enabled", enabled) pulumi.set(__self__, "version", version) if include_apis is not None: pulumi.set(__self__, "include_apis", include_apis) if retention_policy_days is not None: pulumi.set(__self__, "retention_policy_days", retention_policy_days) - @property - @pulumi.getter - def enabled(self) -> pulumi.Input[bool]: - """ - Indicates whether hour metrics are enabled for the Queue service. - """ - return pulumi.get(self, "enabled") - - @enabled.setter - def enabled(self, value: pulumi.Input[bool]): - pulumi.set(self, "enabled", value) - @property @pulumi.getter def version(self) -> pulumi.Input[str]: @@ -1720,10 +1701,6 @@ def retention_policy_days(self, value: Optional[pulumi.Input[int]]): if not MYPY: class AccountQueuePropertiesMinuteMetricsArgsDict(TypedDict): - enabled: pulumi.Input[bool] - """ - Indicates whether minute metrics are enabled for the Queue service. - """ version: pulumi.Input[str] """ The version of storage analytics to configure. @@ -1742,35 +1719,20 @@ class AccountQueuePropertiesMinuteMetricsArgsDict(TypedDict): @pulumi.input_type class AccountQueuePropertiesMinuteMetricsArgs: def __init__(__self__, *, - enabled: pulumi.Input[bool], version: pulumi.Input[str], include_apis: Optional[pulumi.Input[bool]] = None, retention_policy_days: Optional[pulumi.Input[int]] = None): """ - :param pulumi.Input[bool] enabled: Indicates whether minute metrics are enabled for the Queue service. :param pulumi.Input[str] version: The version of storage analytics to configure. :param pulumi.Input[bool] include_apis: Indicates whether metrics should generate summary statistics for called API operations. :param pulumi.Input[int] retention_policy_days: Specifies the number of days that logs will be retained. """ - pulumi.set(__self__, "enabled", enabled) pulumi.set(__self__, "version", version) if include_apis is not None: pulumi.set(__self__, "include_apis", include_apis) if retention_policy_days is not None: pulumi.set(__self__, "retention_policy_days", retention_policy_days) - @property - @pulumi.getter - def enabled(self) -> pulumi.Input[bool]: - """ - Indicates whether minute metrics are enabled for the Queue service. - """ - return pulumi.get(self, "enabled") - - @enabled.setter - def enabled(self, value: pulumi.Input[bool]): - pulumi.set(self, "enabled", value) - @property @pulumi.getter def version(self) -> pulumi.Input[str]: @@ -4044,11 +4006,11 @@ class ShareAclAccessPolicyArgsDict(TypedDict): """ expiry: NotRequired[pulumi.Input[str]] """ - The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + 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. """ start: NotRequired[pulumi.Input[str]] """ - The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + 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. """ elif False: ShareAclAccessPolicyArgsDict: TypeAlias = Mapping[str, Any] @@ -4063,8 +4025,8 @@ def __init__(__self__, *, :param pulumi.Input[str] permissions: The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). > **Note:** Permission order is strict at the service side, and permissions need to be listed in the order above. - :param pulumi.Input[str] expiry: The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. - :param pulumi.Input[str] start: The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + :param pulumi.Input[str] expiry: 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. + :param pulumi.Input[str] start: 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. """ pulumi.set(__self__, "permissions", permissions) if expiry is not None: @@ -4090,7 +4052,7 @@ def permissions(self, value: pulumi.Input[str]): @pulumi.getter def expiry(self) -> Optional[pulumi.Input[str]]: """ - The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + 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. """ return pulumi.get(self, "expiry") @@ -4102,7 +4064,7 @@ def expiry(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def start(self) -> Optional[pulumi.Input[str]]: """ - The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + 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. """ return pulumi.get(self, "start") @@ -4788,7 +4750,7 @@ def id(self, value: str): class GetShareAclAccessPolicyArgsDict(TypedDict): expiry: str """ - The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + The time at which this Access Policy is valid until. """ permissions: str """ @@ -4796,7 +4758,7 @@ class GetShareAclAccessPolicyArgsDict(TypedDict): """ start: str """ - The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + The time at which this Access Policy is valid from. """ elif False: GetShareAclAccessPolicyArgsDict: TypeAlias = Mapping[str, Any] @@ -4808,9 +4770,9 @@ def __init__(__self__, *, permissions: str, start: str): """ - :param str expiry: The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + :param str expiry: The time at which this Access Policy is valid until. :param str permissions: The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). - :param str start: The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + :param str start: The time at which this Access Policy is valid from. """ pulumi.set(__self__, "expiry", expiry) pulumi.set(__self__, "permissions", permissions) @@ -4820,7 +4782,7 @@ def __init__(__self__, *, @pulumi.getter def expiry(self) -> str: """ - The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + The time at which this Access Policy is valid until. """ return pulumi.get(self, "expiry") @@ -4844,7 +4806,7 @@ def permissions(self, value: str): @pulumi.getter def start(self) -> str: """ - The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + The time at which this Access Policy is valid from. """ return pulumi.get(self, "start") diff --git a/sdk/python/pulumi_azure/storage/account.py b/sdk/python/pulumi_azure/storage/account.py index be66725582..3337299d69 100644 --- a/sdk/python/pulumi_azure/storage/account.py +++ b/sdk/python/pulumi_azure/storage/account.py @@ -186,6 +186,9 @@ def __init__(__self__, *, pulumi.set(__self__, "public_network_access_enabled", public_network_access_enabled) if queue_encryption_key_type is not None: pulumi.set(__self__, "queue_encryption_key_type", queue_encryption_key_type) + if queue_properties is not None: + warnings.warn("""this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider""", DeprecationWarning) + pulumi.log.warn("""queue_properties is deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider""") if queue_properties is not None: pulumi.set(__self__, "queue_properties", queue_properties) if routing is not None: @@ -198,6 +201,9 @@ def __init__(__self__, *, pulumi.set(__self__, "share_properties", share_properties) if shared_access_key_enabled is not None: pulumi.set(__self__, "shared_access_key_enabled", shared_access_key_enabled) + if static_website is not None: + warnings.warn("""this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider""", DeprecationWarning) + pulumi.log.warn("""static_website is deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider""") if static_website is not None: pulumi.set(__self__, "static_website", static_website) if table_encryption_key_type is not None: @@ -575,6 +581,7 @@ def queue_encryption_key_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="queueProperties") + @_utilities.deprecated("""this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider""") def queue_properties(self) -> Optional[pulumi.Input['AccountQueuePropertiesArgs']]: """ A `queue_properties` block as defined below. @@ -650,6 +657,7 @@ def shared_access_key_enabled(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="staticWebsite") + @_utilities.deprecated("""this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider""") def static_website(self) -> Optional[pulumi.Input['AccountStaticWebsiteArgs']]: """ A `static_website` block as defined below. @@ -1076,6 +1084,9 @@ def __init__(__self__, *, pulumi.set(__self__, "public_network_access_enabled", public_network_access_enabled) if queue_encryption_key_type is not None: pulumi.set(__self__, "queue_encryption_key_type", queue_encryption_key_type) + if queue_properties is not None: + warnings.warn("""this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider""", DeprecationWarning) + pulumi.log.warn("""queue_properties is deprecated: this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider""") if queue_properties is not None: pulumi.set(__self__, "queue_properties", queue_properties) if resource_group_name is not None: @@ -1162,6 +1173,9 @@ def __init__(__self__, *, pulumi.set(__self__, "share_properties", share_properties) if shared_access_key_enabled is not None: pulumi.set(__self__, "shared_access_key_enabled", shared_access_key_enabled) + if static_website is not None: + warnings.warn("""this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider""", DeprecationWarning) + pulumi.log.warn("""static_website is deprecated: this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider""") if static_website is not None: pulumi.set(__self__, "static_website", static_website) if table_encryption_key_type is not None: @@ -1959,6 +1973,7 @@ def queue_encryption_key_type(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="queueProperties") + @_utilities.deprecated("""this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider""") def queue_properties(self) -> Optional[pulumi.Input['AccountQueuePropertiesArgs']]: """ A `queue_properties` block as defined below. @@ -2478,6 +2493,7 @@ def shared_access_key_enabled(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter(name="staticWebsite") + @_utilities.deprecated("""this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider""") def static_website(self) -> Optional[pulumi.Input['AccountStaticWebsiteArgs']]: """ A `static_website` block as defined below. @@ -3880,6 +3896,7 @@ def queue_encryption_key_type(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="queueProperties") + @_utilities.deprecated("""this block has been deprecated and superseded by the `storage.AccountQueueProperties` resource and will be removed in v5.0 of the AzureRM provider""") def queue_properties(self) -> pulumi.Output['outputs.AccountQueueProperties']: """ A `queue_properties` block as defined below. @@ -4227,7 +4244,8 @@ def shared_access_key_enabled(self) -> pulumi.Output[Optional[bool]]: @property @pulumi.getter(name="staticWebsite") - def static_website(self) -> pulumi.Output[Optional['outputs.AccountStaticWebsite']]: + @_utilities.deprecated("""this block has been deprecated and superseded by the `storage.AccountStaticWebsite` resource and will be removed in v5.0 of the AzureRM provider""") + def static_website(self) -> pulumi.Output['outputs.AccountStaticWebsite']: """ A `static_website` block as defined below. diff --git a/sdk/python/pulumi_azure/storage/account_queue_properties.py b/sdk/python/pulumi_azure/storage/account_queue_properties.py new file mode 100644 index 0000000000..f975ee1b19 --- /dev/null +++ b/sdk/python/pulumi_azure/storage/account_queue_properties.py @@ -0,0 +1,465 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['AccountQueuePropertiesInitArgs', 'AccountQueueProperties'] + +@pulumi.input_type +class AccountQueuePropertiesInitArgs: + def __init__(__self__, *, + storage_account_id: pulumi.Input[str], + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]]] = None, + hour_metrics: Optional[pulumi.Input['AccountQueuePropertiesHourMetricsArgs']] = None, + logging: Optional[pulumi.Input['AccountQueuePropertiesLoggingArgs']] = None, + minute_metrics: Optional[pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs']] = None): + """ + The set of arguments for constructing a AccountQueueProperties resource. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + :param pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]] cors_rules: A `cors_rule` block as defined above. + :param pulumi.Input['AccountQueuePropertiesHourMetricsArgs'] hour_metrics: A `hour_metrics` block as defined below. + + > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + :param pulumi.Input['AccountQueuePropertiesLoggingArgs'] logging: A `logging` block as defined below. + :param pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs'] minute_metrics: A `minute_metrics` block as defined below. + """ + pulumi.set(__self__, "storage_account_id", storage_account_id) + if cors_rules is not None: + pulumi.set(__self__, "cors_rules", cors_rules) + if hour_metrics is not None: + pulumi.set(__self__, "hour_metrics", hour_metrics) + if logging is not None: + pulumi.set(__self__, "logging", logging) + if minute_metrics is not None: + pulumi.set(__self__, "minute_metrics", minute_metrics) + + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> pulumi.Input[str]: + """ + The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "storage_account_id", value) + + @property + @pulumi.getter(name="corsRules") + def cors_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]]]: + """ + A `cors_rule` block as defined above. + """ + return pulumi.get(self, "cors_rules") + + @cors_rules.setter + def cors_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]]]): + pulumi.set(self, "cors_rules", value) + + @property + @pulumi.getter(name="hourMetrics") + def hour_metrics(self) -> Optional[pulumi.Input['AccountQueuePropertiesHourMetricsArgs']]: + """ + A `hour_metrics` block as defined below. + + > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + """ + return pulumi.get(self, "hour_metrics") + + @hour_metrics.setter + def hour_metrics(self, value: Optional[pulumi.Input['AccountQueuePropertiesHourMetricsArgs']]): + pulumi.set(self, "hour_metrics", value) + + @property + @pulumi.getter + def logging(self) -> Optional[pulumi.Input['AccountQueuePropertiesLoggingArgs']]: + """ + A `logging` block as defined below. + """ + return pulumi.get(self, "logging") + + @logging.setter + def logging(self, value: Optional[pulumi.Input['AccountQueuePropertiesLoggingArgs']]): + pulumi.set(self, "logging", value) + + @property + @pulumi.getter(name="minuteMetrics") + def minute_metrics(self) -> Optional[pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs']]: + """ + A `minute_metrics` block as defined below. + """ + return pulumi.get(self, "minute_metrics") + + @minute_metrics.setter + def minute_metrics(self, value: Optional[pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs']]): + pulumi.set(self, "minute_metrics", value) + + +@pulumi.input_type +class _AccountQueuePropertiesState: + def __init__(__self__, *, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]]] = None, + hour_metrics: Optional[pulumi.Input['AccountQueuePropertiesHourMetricsArgs']] = None, + logging: Optional[pulumi.Input['AccountQueuePropertiesLoggingArgs']] = None, + minute_metrics: Optional[pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs']] = None, + storage_account_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering AccountQueueProperties resources. + :param pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]] cors_rules: A `cors_rule` block as defined above. + :param pulumi.Input['AccountQueuePropertiesHourMetricsArgs'] hour_metrics: A `hour_metrics` block as defined below. + + > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + :param pulumi.Input['AccountQueuePropertiesLoggingArgs'] logging: A `logging` block as defined below. + :param pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs'] minute_metrics: A `minute_metrics` block as defined below. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + """ + if cors_rules is not None: + pulumi.set(__self__, "cors_rules", cors_rules) + if hour_metrics is not None: + pulumi.set(__self__, "hour_metrics", hour_metrics) + if logging is not None: + pulumi.set(__self__, "logging", logging) + if minute_metrics is not None: + pulumi.set(__self__, "minute_metrics", minute_metrics) + if storage_account_id is not None: + pulumi.set(__self__, "storage_account_id", storage_account_id) + + @property + @pulumi.getter(name="corsRules") + def cors_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]]]: + """ + A `cors_rule` block as defined above. + """ + return pulumi.get(self, "cors_rules") + + @cors_rules.setter + def cors_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AccountQueuePropertiesCorsRuleArgs']]]]): + pulumi.set(self, "cors_rules", value) + + @property + @pulumi.getter(name="hourMetrics") + def hour_metrics(self) -> Optional[pulumi.Input['AccountQueuePropertiesHourMetricsArgs']]: + """ + A `hour_metrics` block as defined below. + + > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + """ + return pulumi.get(self, "hour_metrics") + + @hour_metrics.setter + def hour_metrics(self, value: Optional[pulumi.Input['AccountQueuePropertiesHourMetricsArgs']]): + pulumi.set(self, "hour_metrics", value) + + @property + @pulumi.getter + def logging(self) -> Optional[pulumi.Input['AccountQueuePropertiesLoggingArgs']]: + """ + A `logging` block as defined below. + """ + return pulumi.get(self, "logging") + + @logging.setter + def logging(self, value: Optional[pulumi.Input['AccountQueuePropertiesLoggingArgs']]): + pulumi.set(self, "logging", value) + + @property + @pulumi.getter(name="minuteMetrics") + def minute_metrics(self) -> Optional[pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs']]: + """ + A `minute_metrics` block as defined below. + """ + return pulumi.get(self, "minute_metrics") + + @minute_metrics.setter + def minute_metrics(self, value: Optional[pulumi.Input['AccountQueuePropertiesMinuteMetricsArgs']]): + pulumi.set(self, "minute_metrics", value) + + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_id", value) + + +class AccountQueueProperties(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AccountQueuePropertiesCorsRuleArgs', 'AccountQueuePropertiesCorsRuleArgsDict']]]]] = None, + hour_metrics: Optional[pulumi.Input[Union['AccountQueuePropertiesHourMetricsArgs', 'AccountQueuePropertiesHourMetricsArgsDict']]] = None, + logging: Optional[pulumi.Input[Union['AccountQueuePropertiesLoggingArgs', 'AccountQueuePropertiesLoggingArgsDict']]] = None, + minute_metrics: Optional[pulumi.Input[Union['AccountQueuePropertiesMinuteMetricsArgs', 'AccountQueuePropertiesMinuteMetricsArgsDict']]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages the Queue Properties of an Azure Storage Account. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_account = azure.storage.Account("example", + name="storageaccountname", + resource_group_name=example.name, + location=example.location, + account_tier="Standard", + account_replication_type="GRS", + tags={ + "environment": "staging", + }) + example_account_queue_properties = azure.storage.AccountQueueProperties("example", + storage_account_id=example_account.id, + cors_rules=[{ + "allowed_origins": ["http://www.example.com"], + "exposed_headers": ["x-tempo-*"], + "allowed_headers": ["x-tempo-*"], + "allowed_methods": [ + "GET", + "PUT", + ], + "max_age_in_seconds": 500, + }], + logging={ + "version": "1.0", + "delete": True, + "read": True, + "write": True, + "retention_policy_days": 7, + }, + hour_metrics={ + "version": "1.0", + "retention_policy_days": 7, + }, + minute_metrics={ + "version": "1.0", + "retention_policy_days": 7, + }) + ``` + + ## Import + + Storage Account Queue Properties can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:storage/accountQueueProperties:AccountQueueProperties queueprops /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['AccountQueuePropertiesCorsRuleArgs', 'AccountQueuePropertiesCorsRuleArgsDict']]]] cors_rules: A `cors_rule` block as defined above. + :param pulumi.Input[Union['AccountQueuePropertiesHourMetricsArgs', 'AccountQueuePropertiesHourMetricsArgsDict']] hour_metrics: A `hour_metrics` block as defined below. + + > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + :param pulumi.Input[Union['AccountQueuePropertiesLoggingArgs', 'AccountQueuePropertiesLoggingArgsDict']] logging: A `logging` block as defined below. + :param pulumi.Input[Union['AccountQueuePropertiesMinuteMetricsArgs', 'AccountQueuePropertiesMinuteMetricsArgsDict']] minute_metrics: A `minute_metrics` block as defined below. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AccountQueuePropertiesInitArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages the Queue Properties of an Azure Storage Account. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_account = azure.storage.Account("example", + name="storageaccountname", + resource_group_name=example.name, + location=example.location, + account_tier="Standard", + account_replication_type="GRS", + tags={ + "environment": "staging", + }) + example_account_queue_properties = azure.storage.AccountQueueProperties("example", + storage_account_id=example_account.id, + cors_rules=[{ + "allowed_origins": ["http://www.example.com"], + "exposed_headers": ["x-tempo-*"], + "allowed_headers": ["x-tempo-*"], + "allowed_methods": [ + "GET", + "PUT", + ], + "max_age_in_seconds": 500, + }], + logging={ + "version": "1.0", + "delete": True, + "read": True, + "write": True, + "retention_policy_days": 7, + }, + hour_metrics={ + "version": "1.0", + "retention_policy_days": 7, + }, + minute_metrics={ + "version": "1.0", + "retention_policy_days": 7, + }) + ``` + + ## Import + + Storage Account Queue Properties can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:storage/accountQueueProperties:AccountQueueProperties queueprops /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + ``` + + :param str resource_name: The name of the resource. + :param AccountQueuePropertiesInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AccountQueuePropertiesInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AccountQueuePropertiesCorsRuleArgs', 'AccountQueuePropertiesCorsRuleArgsDict']]]]] = None, + hour_metrics: Optional[pulumi.Input[Union['AccountQueuePropertiesHourMetricsArgs', 'AccountQueuePropertiesHourMetricsArgsDict']]] = None, + logging: Optional[pulumi.Input[Union['AccountQueuePropertiesLoggingArgs', 'AccountQueuePropertiesLoggingArgsDict']]] = None, + minute_metrics: Optional[pulumi.Input[Union['AccountQueuePropertiesMinuteMetricsArgs', 'AccountQueuePropertiesMinuteMetricsArgsDict']]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AccountQueuePropertiesInitArgs.__new__(AccountQueuePropertiesInitArgs) + + __props__.__dict__["cors_rules"] = cors_rules + __props__.__dict__["hour_metrics"] = hour_metrics + __props__.__dict__["logging"] = logging + __props__.__dict__["minute_metrics"] = minute_metrics + if storage_account_id is None and not opts.urn: + raise TypeError("Missing required property 'storage_account_id'") + __props__.__dict__["storage_account_id"] = storage_account_id + super(AccountQueueProperties, __self__).__init__( + 'azure:storage/accountQueueProperties:AccountQueueProperties', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AccountQueuePropertiesCorsRuleArgs', 'AccountQueuePropertiesCorsRuleArgsDict']]]]] = None, + hour_metrics: Optional[pulumi.Input[Union['AccountQueuePropertiesHourMetricsArgs', 'AccountQueuePropertiesHourMetricsArgsDict']]] = None, + logging: Optional[pulumi.Input[Union['AccountQueuePropertiesLoggingArgs', 'AccountQueuePropertiesLoggingArgsDict']]] = None, + minute_metrics: Optional[pulumi.Input[Union['AccountQueuePropertiesMinuteMetricsArgs', 'AccountQueuePropertiesMinuteMetricsArgsDict']]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None) -> 'AccountQueueProperties': + """ + Get an existing AccountQueueProperties resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['AccountQueuePropertiesCorsRuleArgs', 'AccountQueuePropertiesCorsRuleArgsDict']]]] cors_rules: A `cors_rule` block as defined above. + :param pulumi.Input[Union['AccountQueuePropertiesHourMetricsArgs', 'AccountQueuePropertiesHourMetricsArgsDict']] hour_metrics: A `hour_metrics` block as defined below. + + > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + :param pulumi.Input[Union['AccountQueuePropertiesLoggingArgs', 'AccountQueuePropertiesLoggingArgsDict']] logging: A `logging` block as defined below. + :param pulumi.Input[Union['AccountQueuePropertiesMinuteMetricsArgs', 'AccountQueuePropertiesMinuteMetricsArgsDict']] minute_metrics: A `minute_metrics` block as defined below. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AccountQueuePropertiesState.__new__(_AccountQueuePropertiesState) + + __props__.__dict__["cors_rules"] = cors_rules + __props__.__dict__["hour_metrics"] = hour_metrics + __props__.__dict__["logging"] = logging + __props__.__dict__["minute_metrics"] = minute_metrics + __props__.__dict__["storage_account_id"] = storage_account_id + return AccountQueueProperties(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="corsRules") + def cors_rules(self) -> pulumi.Output[Optional[Sequence['outputs.AccountQueuePropertiesCorsRule']]]: + """ + A `cors_rule` block as defined above. + """ + return pulumi.get(self, "cors_rules") + + @property + @pulumi.getter(name="hourMetrics") + def hour_metrics(self) -> pulumi.Output['outputs.AccountQueuePropertiesHourMetrics']: + """ + A `hour_metrics` block as defined below. + + > **NOTE:** At least one of `cors_rule`, `logging`, `minute_metrics`, or `hour_metrics` must be specified. + """ + return pulumi.get(self, "hour_metrics") + + @property + @pulumi.getter + def logging(self) -> pulumi.Output['outputs.AccountQueuePropertiesLogging']: + """ + A `logging` block as defined below. + """ + return pulumi.get(self, "logging") + + @property + @pulumi.getter(name="minuteMetrics") + def minute_metrics(self) -> pulumi.Output['outputs.AccountQueuePropertiesMinuteMetrics']: + """ + A `minute_metrics` block as defined below. + """ + return pulumi.get(self, "minute_metrics") + + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> pulumi.Output[str]: + """ + The ID of the Storage Account to set Queue Properties on. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "storage_account_id") + diff --git a/sdk/python/pulumi_azure/storage/account_static_website.py b/sdk/python/pulumi_azure/storage/account_static_website.py new file mode 100644 index 0000000000..cc15558b7a --- /dev/null +++ b/sdk/python/pulumi_azure/storage/account_static_website.py @@ -0,0 +1,309 @@ +# coding=utf-8 +# *** 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! *** + +import copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from .. import _utilities + +__all__ = ['AccountStaticWebsiteInitArgs', 'AccountStaticWebsite'] + +@pulumi.input_type +class AccountStaticWebsiteInitArgs: + def __init__(__self__, *, + storage_account_id: pulumi.Input[str], + error404_document: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a AccountStaticWebsite resource. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + :param pulumi.Input[str] error404_document: The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + :param pulumi.Input[str] index_document: The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + """ + pulumi.set(__self__, "storage_account_id", storage_account_id) + if error404_document is not None: + pulumi.set(__self__, "error404_document", error404_document) + if index_document is not None: + pulumi.set(__self__, "index_document", index_document) + + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> pulumi.Input[str]: + """ + The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: pulumi.Input[str]): + pulumi.set(self, "storage_account_id", value) + + @property + @pulumi.getter(name="error404Document") + def error404_document(self) -> Optional[pulumi.Input[str]]: + """ + The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + """ + return pulumi.get(self, "error404_document") + + @error404_document.setter + def error404_document(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "error404_document", value) + + @property + @pulumi.getter(name="indexDocument") + def index_document(self) -> Optional[pulumi.Input[str]]: + """ + The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + """ + return pulumi.get(self, "index_document") + + @index_document.setter + def index_document(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "index_document", value) + + +@pulumi.input_type +class _AccountStaticWebsiteState: + def __init__(__self__, *, + error404_document: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering AccountStaticWebsite resources. + :param pulumi.Input[str] error404_document: The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + :param pulumi.Input[str] index_document: The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + """ + if error404_document is not None: + pulumi.set(__self__, "error404_document", error404_document) + if index_document is not None: + pulumi.set(__self__, "index_document", index_document) + if storage_account_id is not None: + pulumi.set(__self__, "storage_account_id", storage_account_id) + + @property + @pulumi.getter(name="error404Document") + def error404_document(self) -> Optional[pulumi.Input[str]]: + """ + The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + """ + return pulumi.get(self, "error404_document") + + @error404_document.setter + def error404_document(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "error404_document", value) + + @property + @pulumi.getter(name="indexDocument") + def index_document(self) -> Optional[pulumi.Input[str]]: + """ + The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + """ + return pulumi.get(self, "index_document") + + @index_document.setter + def index_document(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "index_document", value) + + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_id", value) + + +class AccountStaticWebsite(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + error404_document: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages the Static Website of an Azure Storage Account. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_account = azure.storage.Account("example", + name="storageaccountname", + resource_group_name=example.name, + location=example.location, + account_tier="Standard", + account_replication_type="GRS", + tags={ + "environment": "staging", + }) + test = azure.storage.AccountStaticWebsite("test", + storage_account_id=test_azurerm_storage_account["id"], + error404_document="custom_not_found.html", + index_document="custom_index.html") + ``` + + ## Import + + Storage Account Static Websites can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:storage/accountStaticWebsite:AccountStaticWebsite mysite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] error404_document: The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + :param pulumi.Input[str] index_document: The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AccountStaticWebsiteInitArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages the Static Website of an Azure Storage Account. + + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_account = azure.storage.Account("example", + name="storageaccountname", + resource_group_name=example.name, + location=example.location, + account_tier="Standard", + account_replication_type="GRS", + tags={ + "environment": "staging", + }) + test = azure.storage.AccountStaticWebsite("test", + storage_account_id=test_azurerm_storage_account["id"], + error404_document="custom_not_found.html", + index_document="custom_index.html") + ``` + + ## Import + + Storage Account Static Websites can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:storage/accountStaticWebsite:AccountStaticWebsite mysite /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.Storage/storageAccounts/myaccount + ``` + + :param str resource_name: The name of the resource. + :param AccountStaticWebsiteInitArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AccountStaticWebsiteInitArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + error404_document: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AccountStaticWebsiteInitArgs.__new__(AccountStaticWebsiteInitArgs) + + __props__.__dict__["error404_document"] = error404_document + __props__.__dict__["index_document"] = index_document + if storage_account_id is None and not opts.urn: + raise TypeError("Missing required property 'storage_account_id'") + __props__.__dict__["storage_account_id"] = storage_account_id + super(AccountStaticWebsite, __self__).__init__( + 'azure:storage/accountStaticWebsite:AccountStaticWebsite', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + error404_document: Optional[pulumi.Input[str]] = None, + index_document: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None) -> 'AccountStaticWebsite': + """ + Get an existing AccountStaticWebsite resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] error404_document: The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + :param pulumi.Input[str] index_document: The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + :param pulumi.Input[str] storage_account_id: The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AccountStaticWebsiteState.__new__(_AccountStaticWebsiteState) + + __props__.__dict__["error404_document"] = error404_document + __props__.__dict__["index_document"] = index_document + __props__.__dict__["storage_account_id"] = storage_account_id + return AccountStaticWebsite(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="error404Document") + def error404_document(self) -> pulumi.Output[Optional[str]]: + """ + The absolute path to a custom webpage that should be used when a request is made which does not correspond to an existing file. + """ + return pulumi.get(self, "error404_document") + + @property + @pulumi.getter(name="indexDocument") + def index_document(self) -> pulumi.Output[Optional[str]]: + """ + The webpage that Azure Storage serves for requests to the root of a website or any subfolder. For example, index.html. + """ + return pulumi.get(self, "index_document") + + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> pulumi.Output[str]: + """ + The ID of the Storage Account to set Static Website on. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "storage_account_id") + diff --git a/sdk/python/pulumi_azure/storage/container.py b/sdk/python/pulumi_azure/storage/container.py index 46302ebb86..dfca962a04 100644 --- a/sdk/python/pulumi_azure/storage/container.py +++ b/sdk/python/pulumi_azure/storage/container.py @@ -19,15 +19,15 @@ @pulumi.input_type class ContainerArgs: def __init__(__self__, *, - storage_account_name: pulumi.Input[str], container_access_type: Optional[pulumi.Input[str]] = None, default_encryption_scope: Optional[pulumi.Input[str]] = None, encryption_scope_override_enabled: Optional[pulumi.Input[bool]] = None, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - name: Optional[pulumi.Input[str]] = None): + name: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, + storage_account_name: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Container resource. - :param pulumi.Input[str] storage_account_name: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. :param pulumi.Input[str] container_access_type: The Access Level configured for this Container. Possible values are `blob`, `container` or `private`. Defaults to `private`. > **Note** When updating `container_access_type` for an existing storage container resource, Shared Key authentication will always be used, as AzureAD authentication is not supported. @@ -35,8 +35,11 @@ def __init__(__self__, *, :param pulumi.Input[bool] encryption_scope_override_enabled: Whether to allow blobs to override the default encryption scope for this container. Can only be set when specifying `default_encryption_scope`. Defaults to `true`. Changing this forces a new resource to be created. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: A mapping of MetaData for this Container. All metadata keys should be lowercase. :param pulumi.Input[str] name: The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. """ - pulumi.set(__self__, "storage_account_name", storage_account_name) if container_access_type is not None: pulumi.set(__self__, "container_access_type", container_access_type) if default_encryption_scope is not None: @@ -47,18 +50,13 @@ def __init__(__self__, *, pulumi.set(__self__, "metadata", metadata) if name is not None: pulumi.set(__self__, "name", name) - - @property - @pulumi.getter(name="storageAccountName") - def storage_account_name(self) -> pulumi.Input[str]: - """ - The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. - """ - return pulumi.get(self, "storage_account_name") - - @storage_account_name.setter - def storage_account_name(self, value: pulumi.Input[str]): - pulumi.set(self, "storage_account_name", value) + if storage_account_id is not None: + pulumi.set(__self__, "storage_account_id", storage_account_id) + if storage_account_name is not None: + warnings.warn("""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.""", DeprecationWarning) + pulumi.log.warn("""storage_account_name is deprecated: 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.""") + if storage_account_name is not None: + pulumi.set(__self__, "storage_account_name", storage_account_name) @property @pulumi.getter(name="containerAccessType") @@ -122,6 +120,33 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + + > **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. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_id", value) + + @property + @pulumi.getter(name="storageAccountName") + @_utilities.deprecated("""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.""") + def storage_account_name(self) -> Optional[pulumi.Input[str]]: + """ + 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`. + """ + return pulumi.get(self, "storage_account_name") + + @storage_account_name.setter + def storage_account_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_name", value) + @pulumi.input_type class _ContainerState: @@ -134,6 +159,7 @@ def __init__(__self__, *, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, resource_manager_id: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Container resources. @@ -147,7 +173,10 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: A mapping of MetaData for this Container. All metadata keys should be lowercase. :param pulumi.Input[str] name: The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. :param pulumi.Input[str] resource_manager_id: The Resource Manager ID of this Storage Container. - :param pulumi.Input[str] storage_account_name: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. """ if container_access_type is not None: pulumi.set(__self__, "container_access_type", container_access_type) @@ -163,8 +192,16 @@ def __init__(__self__, *, pulumi.set(__self__, "metadata", metadata) if name is not None: pulumi.set(__self__, "name", name) + if resource_manager_id is not None: + warnings.warn("""this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.""", DeprecationWarning) + pulumi.log.warn("""resource_manager_id is deprecated: this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.""") if resource_manager_id is not None: pulumi.set(__self__, "resource_manager_id", resource_manager_id) + if storage_account_id is not None: + pulumi.set(__self__, "storage_account_id", storage_account_id) + if storage_account_name is not None: + warnings.warn("""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.""", DeprecationWarning) + pulumi.log.warn("""storage_account_name is deprecated: 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.""") if storage_account_name is not None: pulumi.set(__self__, "storage_account_name", storage_account_name) @@ -256,6 +293,7 @@ def name(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="resourceManagerId") + @_utilities.deprecated("""this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.""") def resource_manager_id(self) -> Optional[pulumi.Input[str]]: """ The Resource Manager ID of this Storage Container. @@ -266,11 +304,26 @@ def resource_manager_id(self) -> Optional[pulumi.Input[str]]: def resource_manager_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "resource_manager_id", value) + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + + > **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. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_id", value) + @property @pulumi.getter(name="storageAccountName") + @_utilities.deprecated("""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.""") def storage_account_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + 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`. """ return pulumi.get(self, "storage_account_name") @@ -289,6 +342,7 @@ def __init__(__self__, encryption_scope_override_enabled: Optional[pulumi.Input[bool]] = None, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None, __props__=None): """ @@ -314,7 +368,7 @@ def __init__(__self__, }) example_container = azure.storage.Container("example", name="vhds", - storage_account_name=example_account.name, + storage_account_id=example_account.id, container_access_type="private") ``` @@ -335,13 +389,16 @@ def __init__(__self__, :param pulumi.Input[bool] encryption_scope_override_enabled: Whether to allow blobs to override the default encryption scope for this container. Can only be set when specifying `default_encryption_scope`. Defaults to `true`. Changing this forces a new resource to be created. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: A mapping of MetaData for this Container. All metadata keys should be lowercase. :param pulumi.Input[str] name: The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. - :param pulumi.Input[str] storage_account_name: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. """ ... @overload def __init__(__self__, resource_name: str, - args: ContainerArgs, + args: Optional[ContainerArgs] = None, opts: Optional[pulumi.ResourceOptions] = None): """ Manages a Container within an Azure Storage Account. @@ -366,7 +423,7 @@ def __init__(__self__, }) example_container = azure.storage.Container("example", name="vhds", - storage_account_name=example_account.name, + storage_account_id=example_account.id, container_access_type="private") ``` @@ -398,6 +455,7 @@ def _internal_init(__self__, encryption_scope_override_enabled: Optional[pulumi.Input[bool]] = None, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -413,8 +471,7 @@ def _internal_init(__self__, __props__.__dict__["encryption_scope_override_enabled"] = encryption_scope_override_enabled __props__.__dict__["metadata"] = metadata __props__.__dict__["name"] = name - if storage_account_name is None and not opts.urn: - raise TypeError("Missing required property 'storage_account_name'") + __props__.__dict__["storage_account_id"] = storage_account_id __props__.__dict__["storage_account_name"] = storage_account_name __props__.__dict__["has_immutability_policy"] = None __props__.__dict__["has_legal_hold"] = None @@ -437,6 +494,7 @@ def get(resource_name: str, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, resource_manager_id: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None) -> 'Container': """ Get an existing Container resource's state with the given name, id, and optional extra @@ -455,7 +513,10 @@ def get(resource_name: str, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: A mapping of MetaData for this Container. All metadata keys should be lowercase. :param pulumi.Input[str] name: The name of the Container which should be created within the Storage Account. Changing this forces a new resource to be created. :param pulumi.Input[str] resource_manager_id: The Resource Manager ID of this Storage Container. - :param pulumi.Input[str] storage_account_name: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -469,6 +530,7 @@ def get(resource_name: str, __props__.__dict__["metadata"] = metadata __props__.__dict__["name"] = name __props__.__dict__["resource_manager_id"] = resource_manager_id + __props__.__dict__["storage_account_id"] = storage_account_id __props__.__dict__["storage_account_name"] = storage_account_name return Container(resource_name, opts=opts, __props__=__props__) @@ -532,6 +594,7 @@ def name(self) -> pulumi.Output[str]: @property @pulumi.getter(name="resourceManagerId") + @_utilities.deprecated("""this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.""") def resource_manager_id(self) -> pulumi.Output[str]: """ The Resource Manager ID of this Storage Container. @@ -539,10 +602,21 @@ def resource_manager_id(self) -> pulumi.Output[str]: return pulumi.get(self, "resource_manager_id") @property - @pulumi.getter(name="storageAccountName") - def storage_account_name(self) -> pulumi.Output[str]: + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> pulumi.Output[Optional[str]]: """ The name of the Storage Account where the Container should be created. Changing this forces a new resource to be created. + + > **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. + """ + return pulumi.get(self, "storage_account_id") + + @property + @pulumi.getter(name="storageAccountName") + @_utilities.deprecated("""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.""") + def storage_account_name(self) -> pulumi.Output[Optional[str]]: + """ + 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`. """ return pulumi.get(self, "storage_account_name") diff --git a/sdk/python/pulumi_azure/storage/get_share.py b/sdk/python/pulumi_azure/storage/get_share.py index 0c4a34e8b5..81213414ea 100644 --- a/sdk/python/pulumi_azure/storage/get_share.py +++ b/sdk/python/pulumi_azure/storage/get_share.py @@ -28,7 +28,7 @@ class GetShareResult: """ A collection of values returned by getShare. """ - def __init__(__self__, acls=None, id=None, metadata=None, name=None, quota=None, resource_manager_id=None, storage_account_name=None): + def __init__(__self__, acls=None, id=None, metadata=None, name=None, quota=None, resource_manager_id=None, storage_account_id=None, storage_account_name=None): if acls and not isinstance(acls, list): raise TypeError("Expected argument 'acls' to be a list") pulumi.set(__self__, "acls", acls) @@ -47,6 +47,9 @@ def __init__(__self__, acls=None, id=None, metadata=None, name=None, quota=None, if resource_manager_id and not isinstance(resource_manager_id, str): raise TypeError("Expected argument 'resource_manager_id' to be a str") pulumi.set(__self__, "resource_manager_id", resource_manager_id) + if storage_account_id and not isinstance(storage_account_id, str): + raise TypeError("Expected argument 'storage_account_id' to be a str") + pulumi.set(__self__, "storage_account_id", storage_account_id) if storage_account_name and not isinstance(storage_account_name, str): raise TypeError("Expected argument 'storage_account_name' to be a str") pulumi.set(__self__, "storage_account_name", storage_account_name) @@ -90,12 +93,18 @@ def quota(self) -> int: @property @pulumi.getter(name="resourceManagerId") + @_utilities.deprecated("""this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.""") def resource_manager_id(self) -> str: return pulumi.get(self, "resource_manager_id") + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[str]: + return pulumi.get(self, "storage_account_id") + @property @pulumi.getter(name="storageAccountName") - def storage_account_name(self) -> str: + def storage_account_name(self) -> Optional[str]: return pulumi.get(self, "storage_account_name") @@ -111,12 +120,14 @@ def __await__(self): name=self.name, quota=self.quota, resource_manager_id=self.resource_manager_id, + storage_account_id=self.storage_account_id, storage_account_name=self.storage_account_name) def get_share(acls: Optional[Sequence[Union['GetShareAclArgs', 'GetShareAclArgsDict']]] = None, metadata: Optional[Mapping[str, str]] = None, name: Optional[str] = None, + storage_account_id: Optional[str] = None, storage_account_name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetShareResult: """ @@ -130,21 +141,26 @@ def get_share(acls: Optional[Sequence[Union['GetShareAclArgs', 'GetShareAclArgsD import pulumi import pulumi_azure as azure - example = azure.storage.get_share(name="existing", - storage_account_name="existing") - pulumi.export("id", example.id) + example = azure.storage.get_account(name="exampleaccount", + resource_group_name="examples") + example_get_share = azure.storage.get_share(name="existing", + storage_account_id=example.id) ``` :param Sequence[Union['GetShareAclArgs', 'GetShareAclArgsDict']] acls: One or more acl blocks as defined below. :param Mapping[str, str] metadata: A map of custom file share metadata. :param str name: The name of the share. - :param str storage_account_name: The name of the storage account. + :param str storage_account_id: The ID of the storage account in which the share exists. + + > **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. + :param str storage_account_name: The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. """ __args__ = dict() __args__['acls'] = acls __args__['metadata'] = metadata __args__['name'] = name + __args__['storageAccountId'] = storage_account_id __args__['storageAccountName'] = storage_account_name opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('azure:storage/getShare:getShare', __args__, opts=opts, typ=GetShareResult).value @@ -156,11 +172,13 @@ def get_share(acls: Optional[Sequence[Union['GetShareAclArgs', 'GetShareAclArgsD name=pulumi.get(__ret__, 'name'), quota=pulumi.get(__ret__, 'quota'), resource_manager_id=pulumi.get(__ret__, 'resource_manager_id'), + storage_account_id=pulumi.get(__ret__, 'storage_account_id'), storage_account_name=pulumi.get(__ret__, 'storage_account_name')) def get_share_output(acls: Optional[pulumi.Input[Optional[Sequence[Union['GetShareAclArgs', 'GetShareAclArgsDict']]]]] = None, metadata: Optional[pulumi.Input[Optional[Mapping[str, str]]]] = None, name: Optional[pulumi.Input[str]] = None, - storage_account_name: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[Optional[str]]] = None, + storage_account_name: Optional[pulumi.Input[Optional[str]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetShareResult]: """ Use this data source to access information about an existing File Share. @@ -173,21 +191,26 @@ def get_share_output(acls: Optional[pulumi.Input[Optional[Sequence[Union['GetSha import pulumi import pulumi_azure as azure - example = azure.storage.get_share(name="existing", - storage_account_name="existing") - pulumi.export("id", example.id) + example = azure.storage.get_account(name="exampleaccount", + resource_group_name="examples") + example_get_share = azure.storage.get_share(name="existing", + storage_account_id=example.id) ``` :param Sequence[Union['GetShareAclArgs', 'GetShareAclArgsDict']] acls: One or more acl blocks as defined below. :param Mapping[str, str] metadata: A map of custom file share metadata. :param str name: The name of the share. - :param str storage_account_name: The name of the storage account. + :param str storage_account_id: The ID of the storage account in which the share exists. + + > **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. + :param str storage_account_name: The name of the storage account in which the share exists. This property is deprecated in favour of `storage_account_id`. """ __args__ = dict() __args__['acls'] = acls __args__['metadata'] = metadata __args__['name'] = name + __args__['storageAccountId'] = storage_account_id __args__['storageAccountName'] = storage_account_name opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('azure:storage/getShare:getShare', __args__, opts=opts, typ=GetShareResult) @@ -198,4 +221,5 @@ def get_share_output(acls: Optional[pulumi.Input[Optional[Sequence[Union['GetSha name=pulumi.get(__response__, 'name'), quota=pulumi.get(__response__, 'quota'), resource_manager_id=pulumi.get(__response__, 'resource_manager_id'), + storage_account_id=pulumi.get(__response__, 'storage_account_id'), storage_account_name=pulumi.get(__response__, 'storage_account_name'))) diff --git a/sdk/python/pulumi_azure/storage/get_storage_container.py b/sdk/python/pulumi_azure/storage/get_storage_container.py index 0c50836528..e08300630b 100644 --- a/sdk/python/pulumi_azure/storage/get_storage_container.py +++ b/sdk/python/pulumi_azure/storage/get_storage_container.py @@ -26,7 +26,7 @@ class GetStorageContainerResult: """ A collection of values returned by getStorageContainer. """ - def __init__(__self__, container_access_type=None, default_encryption_scope=None, encryption_scope_override_enabled=None, has_immutability_policy=None, has_legal_hold=None, id=None, metadata=None, name=None, resource_manager_id=None, storage_account_name=None): + def __init__(__self__, container_access_type=None, default_encryption_scope=None, encryption_scope_override_enabled=None, has_immutability_policy=None, has_legal_hold=None, id=None, metadata=None, name=None, resource_manager_id=None, storage_account_id=None, storage_account_name=None): if container_access_type and not isinstance(container_access_type, str): raise TypeError("Expected argument 'container_access_type' to be a str") pulumi.set(__self__, "container_access_type", container_access_type) @@ -54,6 +54,9 @@ def __init__(__self__, container_access_type=None, default_encryption_scope=None if resource_manager_id and not isinstance(resource_manager_id, str): raise TypeError("Expected argument 'resource_manager_id' to be a str") pulumi.set(__self__, "resource_manager_id", resource_manager_id) + if storage_account_id and not isinstance(storage_account_id, str): + raise TypeError("Expected argument 'storage_account_id' to be a str") + pulumi.set(__self__, "storage_account_id", storage_account_id) if storage_account_name and not isinstance(storage_account_name, str): raise TypeError("Expected argument 'storage_account_name' to be a str") pulumi.set(__self__, "storage_account_name", storage_account_name) @@ -121,15 +124,18 @@ def name(self) -> str: @property @pulumi.getter(name="resourceManagerId") + @_utilities.deprecated("""this property has been deprecated in favour of `id` and will be removed in version 5.0 of the Provider.""") def resource_manager_id(self) -> str: - """ - The Resource Manager ID of this Storage Container. - """ return pulumi.get(self, "resource_manager_id") + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[str]: + return pulumi.get(self, "storage_account_id") + @property @pulumi.getter(name="storageAccountName") - def storage_account_name(self) -> str: + def storage_account_name(self) -> Optional[str]: return pulumi.get(self, "storage_account_name") @@ -148,11 +154,13 @@ def __await__(self): metadata=self.metadata, name=self.name, resource_manager_id=self.resource_manager_id, + storage_account_id=self.storage_account_id, storage_account_name=self.storage_account_name) def get_storage_container(metadata: Optional[Mapping[str, str]] = None, name: Optional[str] = None, + storage_account_id: Optional[str] = None, storage_account_name: Optional[str] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetStorageContainerResult: """ @@ -164,18 +172,24 @@ def get_storage_container(metadata: Optional[Mapping[str, str]] = None, import pulumi import pulumi_azure as azure - example = azure.storage.get_storage_container(name="example-container-name", - storage_account_name="example-storage-account-name") + example = azure.storage.get_account(name="exampleaccount", + resource_group_name="examples") + example_get_storage_container = azure.storage.get_storage_container(name="example-container-name", + storage_account_id=example.id) ``` :param Mapping[str, str] metadata: A mapping of MetaData for this Container. :param str name: The name of the Container. - :param str storage_account_name: The name of the Storage Account where the Container exists. + :param str storage_account_id: The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + + > **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. + :param str storage_account_name: The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. """ __args__ = dict() __args__['metadata'] = metadata __args__['name'] = name + __args__['storageAccountId'] = storage_account_id __args__['storageAccountName'] = storage_account_name opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('azure:storage/getStorageContainer:getStorageContainer', __args__, opts=opts, typ=GetStorageContainerResult).value @@ -190,10 +204,12 @@ def get_storage_container(metadata: Optional[Mapping[str, str]] = None, metadata=pulumi.get(__ret__, 'metadata'), name=pulumi.get(__ret__, 'name'), resource_manager_id=pulumi.get(__ret__, 'resource_manager_id'), + storage_account_id=pulumi.get(__ret__, 'storage_account_id'), storage_account_name=pulumi.get(__ret__, 'storage_account_name')) def get_storage_container_output(metadata: Optional[pulumi.Input[Optional[Mapping[str, str]]]] = None, name: Optional[pulumi.Input[str]] = None, - storage_account_name: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[Optional[str]]] = None, + storage_account_name: Optional[pulumi.Input[Optional[str]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetStorageContainerResult]: """ Use this data source to access information about an existing Storage Container. @@ -204,18 +220,24 @@ def get_storage_container_output(metadata: Optional[pulumi.Input[Optional[Mappin import pulumi import pulumi_azure as azure - example = azure.storage.get_storage_container(name="example-container-name", - storage_account_name="example-storage-account-name") + example = azure.storage.get_account(name="exampleaccount", + resource_group_name="examples") + example_get_storage_container = azure.storage.get_storage_container(name="example-container-name", + storage_account_id=example.id) ``` :param Mapping[str, str] metadata: A mapping of MetaData for this Container. :param str name: The name of the Container. - :param str storage_account_name: The name of the Storage Account where the Container exists. + :param str storage_account_id: The name of the Storage Account where the Container exists. This property will become Required in version 5.0 of the Provider. + + > **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. + :param str storage_account_name: The name of the Storage Account where the Container exists. This property is deprecated in favour of `storage_account_id`. """ __args__ = dict() __args__['metadata'] = metadata __args__['name'] = name + __args__['storageAccountId'] = storage_account_id __args__['storageAccountName'] = storage_account_name opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke_output('azure:storage/getStorageContainer:getStorageContainer', __args__, opts=opts, typ=GetStorageContainerResult) @@ -229,4 +251,5 @@ def get_storage_container_output(metadata: Optional[pulumi.Input[Optional[Mappin metadata=pulumi.get(__response__, 'metadata'), name=pulumi.get(__response__, 'name'), resource_manager_id=pulumi.get(__response__, 'resource_manager_id'), + storage_account_id=pulumi.get(__response__, 'storage_account_id'), storage_account_name=pulumi.get(__response__, 'storage_account_name'))) diff --git a/sdk/python/pulumi_azure/storage/outputs.py b/sdk/python/pulumi_azure/storage/outputs.py index 75992aa82e..167f024210 100644 --- a/sdk/python/pulumi_azure/storage/outputs.py +++ b/sdk/python/pulumi_azure/storage/outputs.py @@ -1247,31 +1247,20 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - enabled: bool, version: str, include_apis: Optional[bool] = None, retention_policy_days: Optional[int] = None): """ - :param bool enabled: Indicates whether hour metrics are enabled for the Queue service. :param str version: The version of storage analytics to configure. :param bool include_apis: Indicates whether metrics should generate summary statistics for called API operations. :param int retention_policy_days: Specifies the number of days that logs will be retained. """ - pulumi.set(__self__, "enabled", enabled) pulumi.set(__self__, "version", version) if include_apis is not None: pulumi.set(__self__, "include_apis", include_apis) if retention_policy_days is not None: pulumi.set(__self__, "retention_policy_days", retention_policy_days) - @property - @pulumi.getter - def enabled(self) -> bool: - """ - Indicates whether hour metrics are enabled for the Queue service. - """ - return pulumi.get(self, "enabled") - @property @pulumi.getter def version(self) -> str: @@ -1399,31 +1388,20 @@ def get(self, key: str, default = None) -> Any: return super().get(key, default) def __init__(__self__, *, - enabled: bool, version: str, include_apis: Optional[bool] = None, retention_policy_days: Optional[int] = None): """ - :param bool enabled: Indicates whether minute metrics are enabled for the Queue service. :param str version: The version of storage analytics to configure. :param bool include_apis: Indicates whether metrics should generate summary statistics for called API operations. :param int retention_policy_days: Specifies the number of days that logs will be retained. """ - pulumi.set(__self__, "enabled", enabled) pulumi.set(__self__, "version", version) if include_apis is not None: pulumi.set(__self__, "include_apis", include_apis) if retention_policy_days is not None: pulumi.set(__self__, "retention_policy_days", retention_policy_days) - @property - @pulumi.getter - def enabled(self) -> bool: - """ - Indicates whether minute metrics are enabled for the Queue service. - """ - return pulumi.get(self, "enabled") - @property @pulumi.getter def version(self) -> str: @@ -3141,8 +3119,8 @@ def __init__(__self__, *, :param str permissions: The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). > **Note:** Permission order is strict at the service side, and permissions need to be listed in the order above. - :param str expiry: The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. - :param str start: The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + :param str expiry: 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. + :param str start: 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. """ pulumi.set(__self__, "permissions", permissions) if expiry is not None: @@ -3164,7 +3142,7 @@ def permissions(self) -> str: @pulumi.getter def expiry(self) -> Optional[str]: """ - The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + 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. """ return pulumi.get(self, "expiry") @@ -3172,7 +3150,7 @@ def expiry(self) -> Optional[str]: @pulumi.getter def start(self) -> Optional[str]: """ - The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + 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. """ return pulumi.get(self, "start") @@ -4271,9 +4249,9 @@ def __init__(__self__, *, permissions: str, start: str): """ - :param str expiry: The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + :param str expiry: The time at which this Access Policy is valid until. :param str permissions: The permissions which should be associated with this Shared Identifier. Possible value is combination of `r` (read), `w` (write), `d` (delete), and `l` (list). - :param str start: The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + :param str start: The time at which this Access Policy is valid from. """ pulumi.set(__self__, "expiry", expiry) pulumi.set(__self__, "permissions", permissions) @@ -4283,7 +4261,7 @@ def __init__(__self__, *, @pulumi.getter def expiry(self) -> str: """ - The time at which this Access Policy should be valid until, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + The time at which this Access Policy is valid until. """ return pulumi.get(self, "expiry") @@ -4299,7 +4277,7 @@ def permissions(self) -> str: @pulumi.getter def start(self) -> str: """ - The time at which this Access Policy should be valid from, in [ISO8601](https://en.wikipedia.org/wiki/ISO_8601) format. + The time at which this Access Policy is valid from. """ return pulumi.get(self, "start") diff --git a/sdk/python/pulumi_azure/storage/share.py b/sdk/python/pulumi_azure/storage/share.py index 9e59d09165..c9e3763a2c 100644 --- a/sdk/python/pulumi_azure/storage/share.py +++ b/sdk/python/pulumi_azure/storage/share.py @@ -22,12 +22,13 @@ class ShareArgs: def __init__(__self__, *, quota: pulumi.Input[int], - storage_account_name: pulumi.Input[str], access_tier: Optional[pulumi.Input[str]] = None, acls: Optional[pulumi.Input[Sequence[pulumi.Input['ShareAclArgs']]]] = None, enabled_protocol: Optional[pulumi.Input[str]] = None, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - name: Optional[pulumi.Input[str]] = None): + name: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, + storage_account_name: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a Share resource. :param pulumi.Input[int] quota: The maximum size of the share, in gigabytes. @@ -35,7 +36,6 @@ def __init__(__self__, *, ~>**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 `storage.Account`. ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). - :param pulumi.Input[str] storage_account_name: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. :param pulumi.Input[str] access_tier: The access tier of the File Share. Possible values are `Hot`, `Cool` and `TransactionOptimized`, `Premium`. ~>**NOTE:** The `FileStorage` `account_kind` of the `storage.Account` requires `Premium` `access_tier`. @@ -45,9 +45,12 @@ def __init__(__self__, *, ~>**NOTE:** The `FileStorage` `account_kind` of the `storage.Account` is required for the `NFS` protocol. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: A mapping of MetaData for this File Share. :param pulumi.Input[str] name: The name of the share. Must be unique within the storage account where the share is located. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. """ pulumi.set(__self__, "quota", quota) - pulumi.set(__self__, "storage_account_name", storage_account_name) if access_tier is not None: pulumi.set(__self__, "access_tier", access_tier) if acls is not None: @@ -58,6 +61,13 @@ def __init__(__self__, *, pulumi.set(__self__, "metadata", metadata) if name is not None: pulumi.set(__self__, "name", name) + if storage_account_id is not None: + pulumi.set(__self__, "storage_account_id", storage_account_id) + if storage_account_name is not None: + warnings.warn("""This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.""", DeprecationWarning) + pulumi.log.warn("""storage_account_name is deprecated: This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.""") + if storage_account_name is not None: + pulumi.set(__self__, "storage_account_name", storage_account_name) @property @pulumi.getter @@ -75,18 +85,6 @@ def quota(self) -> pulumi.Input[int]: def quota(self, value: pulumi.Input[int]): pulumi.set(self, "quota", value) - @property - @pulumi.getter(name="storageAccountName") - def storage_account_name(self) -> pulumi.Input[str]: - """ - Specifies the storage account in which to create the share. Changing this forces a new resource to be created. - """ - return pulumi.get(self, "storage_account_name") - - @storage_account_name.setter - def storage_account_name(self, value: pulumi.Input[str]): - pulumi.set(self, "storage_account_name", value) - @property @pulumi.getter(name="accessTier") def access_tier(self) -> Optional[pulumi.Input[str]]: @@ -151,6 +149,33 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + + > **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. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_id", value) + + @property + @pulumi.getter(name="storageAccountName") + @_utilities.deprecated("""This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.""") + def storage_account_name(self) -> Optional[pulumi.Input[str]]: + """ + 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`. + """ + return pulumi.get(self, "storage_account_name") + + @storage_account_name.setter + def storage_account_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_name", value) + @pulumi.input_type class _ShareState: @@ -162,6 +187,7 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, quota: Optional[pulumi.Input[int]] = None, resource_manager_id: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None, url: Optional[pulumi.Input[str]] = None): """ @@ -181,7 +207,10 @@ def __init__(__self__, *, ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). :param pulumi.Input[str] resource_manager_id: The Resource Manager ID of this File Share. - :param pulumi.Input[str] storage_account_name: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. :param pulumi.Input[str] url: The URL of the File Share """ if access_tier is not None: @@ -196,8 +225,16 @@ def __init__(__self__, *, pulumi.set(__self__, "name", name) if quota is not None: pulumi.set(__self__, "quota", quota) + if resource_manager_id is not None: + warnings.warn("""this property is deprecated and will be removed 5.0 and replaced by the `id` property.""", DeprecationWarning) + pulumi.log.warn("""resource_manager_id is deprecated: this property is deprecated and will be removed 5.0 and replaced by the `id` property.""") if resource_manager_id is not None: pulumi.set(__self__, "resource_manager_id", resource_manager_id) + if storage_account_id is not None: + pulumi.set(__self__, "storage_account_id", storage_account_id) + if storage_account_name is not None: + warnings.warn("""This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.""", DeprecationWarning) + pulumi.log.warn("""storage_account_name is deprecated: This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.""") if storage_account_name is not None: pulumi.set(__self__, "storage_account_name", storage_account_name) if url is not None: @@ -285,6 +322,7 @@ def quota(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="resourceManagerId") + @_utilities.deprecated("""this property is deprecated and will be removed 5.0 and replaced by the `id` property.""") def resource_manager_id(self) -> Optional[pulumi.Input[str]]: """ The Resource Manager ID of this File Share. @@ -295,11 +333,26 @@ def resource_manager_id(self) -> Optional[pulumi.Input[str]]: def resource_manager_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "resource_manager_id", value) + @property + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + + > **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. + """ + return pulumi.get(self, "storage_account_id") + + @storage_account_id.setter + def storage_account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "storage_account_id", value) + @property @pulumi.getter(name="storageAccountName") + @_utilities.deprecated("""This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.""") def storage_account_name(self) -> Optional[pulumi.Input[str]]: """ - Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + 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`. """ return pulumi.get(self, "storage_account_name") @@ -331,6 +384,7 @@ def __init__(__self__, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, quota: Optional[pulumi.Input[int]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None, __props__=None): """ @@ -357,24 +411,24 @@ def __init__(__self__, account_replication_type="LRS") example_share = azure.storage.Share("example", name="sharename", - storage_account_name=example_account.name, + storage_account_id=example_account.id, quota=50, acls=[{ "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI", "access_policies": [{ "permissions": "rwdl", - "start": "2019-07-02T09:38:21.0000000Z", - "expiry": "2019-07-02T10:38:21.0000000Z", + "start": "2019-07-02T09:38:21Z", + "expiry": "2019-07-02T10:38:21Z", }], }]) ``` ## Import - Storage Shares can be imported using the `resource id`, e.g. + Storage Shares can be imported using the `id`, e.g. ```sh - $ pulumi import azure:storage/share:Share exampleShare https://account1.file.core.windows.net/share1 + $ pulumi import azure:storage/share:Share exampleShare /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myAccount/fileServices/default/shares/exampleShare ``` :param str resource_name: The name of the resource. @@ -393,7 +447,10 @@ def __init__(__self__, ~>**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 `storage.Account`. ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). - :param pulumi.Input[str] storage_account_name: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. """ ... @overload @@ -425,24 +482,24 @@ def __init__(__self__, account_replication_type="LRS") example_share = azure.storage.Share("example", name="sharename", - storage_account_name=example_account.name, + storage_account_id=example_account.id, quota=50, acls=[{ "id": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI", "access_policies": [{ "permissions": "rwdl", - "start": "2019-07-02T09:38:21.0000000Z", - "expiry": "2019-07-02T10:38:21.0000000Z", + "start": "2019-07-02T09:38:21Z", + "expiry": "2019-07-02T10:38:21Z", }], }]) ``` ## Import - Storage Shares can be imported using the `resource id`, e.g. + Storage Shares can be imported using the `id`, e.g. ```sh - $ pulumi import azure:storage/share:Share exampleShare https://account1.file.core.windows.net/share1 + $ pulumi import azure:storage/share:Share exampleShare /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Storage/storageAccounts/myAccount/fileServices/default/shares/exampleShare ``` :param str resource_name: The name of the resource. @@ -466,6 +523,7 @@ def _internal_init(__self__, metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, name: Optional[pulumi.Input[str]] = None, quota: Optional[pulumi.Input[int]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -484,8 +542,7 @@ def _internal_init(__self__, if quota is None and not opts.urn: raise TypeError("Missing required property 'quota'") __props__.__dict__["quota"] = quota - if storage_account_name is None and not opts.urn: - raise TypeError("Missing required property 'storage_account_name'") + __props__.__dict__["storage_account_id"] = storage_account_id __props__.__dict__["storage_account_name"] = storage_account_name __props__.__dict__["resource_manager_id"] = None __props__.__dict__["url"] = None @@ -506,6 +563,7 @@ def get(resource_name: str, name: Optional[pulumi.Input[str]] = None, quota: Optional[pulumi.Input[int]] = None, resource_manager_id: Optional[pulumi.Input[str]] = None, + storage_account_id: Optional[pulumi.Input[str]] = None, storage_account_name: Optional[pulumi.Input[str]] = None, url: Optional[pulumi.Input[str]] = None) -> 'Share': """ @@ -530,7 +588,10 @@ def get(resource_name: str, ~>**NOTE:** For Premium FileStorage storage accounts, this must be greater than `100` GB and at most `102400` GB (`100` TB). :param pulumi.Input[str] resource_manager_id: The Resource Manager ID of this File Share. - :param pulumi.Input[str] storage_account_name: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + :param pulumi.Input[str] storage_account_id: Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + + > **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. + :param pulumi.Input[str] storage_account_name: 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`. :param pulumi.Input[str] url: The URL of the File Share """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -544,6 +605,7 @@ def get(resource_name: str, __props__.__dict__["name"] = name __props__.__dict__["quota"] = quota __props__.__dict__["resource_manager_id"] = resource_manager_id + __props__.__dict__["storage_account_id"] = storage_account_id __props__.__dict__["storage_account_name"] = storage_account_name __props__.__dict__["url"] = url return Share(resource_name, opts=opts, __props__=__props__) @@ -606,6 +668,7 @@ def quota(self) -> pulumi.Output[int]: @property @pulumi.getter(name="resourceManagerId") + @_utilities.deprecated("""this property is deprecated and will be removed 5.0 and replaced by the `id` property.""") def resource_manager_id(self) -> pulumi.Output[str]: """ The Resource Manager ID of this File Share. @@ -613,10 +676,21 @@ def resource_manager_id(self) -> pulumi.Output[str]: return pulumi.get(self, "resource_manager_id") @property - @pulumi.getter(name="storageAccountName") - def storage_account_name(self) -> pulumi.Output[str]: + @pulumi.getter(name="storageAccountId") + def storage_account_id(self) -> pulumi.Output[Optional[str]]: """ Specifies the storage account in which to create the share. Changing this forces a new resource to be created. + + > **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. + """ + return pulumi.get(self, "storage_account_id") + + @property + @pulumi.getter(name="storageAccountName") + @_utilities.deprecated("""This property has been deprecated and will be replaced by `storage_account_id` in version 5.0 of the provider.""") + def storage_account_name(self) -> pulumi.Output[Optional[str]]: + """ + 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`. """ return pulumi.get(self, "storage_account_name") diff --git a/sdk/python/pulumi_azure/trustedsigning/account.py b/sdk/python/pulumi_azure/trustedsigning/account.py index feca07270e..4cb4ac61cf 100644 --- a/sdk/python/pulumi_azure/trustedsigning/account.py +++ b/sdk/python/pulumi_azure/trustedsigning/account.py @@ -220,6 +220,22 @@ def __init__(__self__, """ Manages a Trusted Signing Account. + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example", + location="West Europe") + example_account = azure.trustedsigning.Account("example", + name="example-account", + resource_group_name=example.name, + location="West Europe", + sku_name="Basic") + ``` + ## Import Trusted Signing Accounts can be imported using the `resource id`, e.g. @@ -245,6 +261,22 @@ def __init__(__self__, """ Manages a Trusted Signing Account. + ## Example Usage + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example", + location="West Europe") + example_account = azure.trustedsigning.Account("example", + name="example-account", + resource_group_name=example.name, + location="West Europe", + sku_name="Basic") + ``` + ## Import Trusted Signing Accounts can be imported using the `resource id`, e.g. diff --git a/upstream b/upstream index 474f00e7a0..45d09f16c8 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 474f00e7a0745d8b7d62469db1f2112b3646b668 +Subproject commit 45d09f16c850081bc9f59442bc5194f99ab08bd9