diff --git a/patches/0002-Shared-features.patch b/patches/0002-Shared-features.patch index 5889c71e42..118fbb33f6 100644 --- a/patches/0002-Shared-features.patch +++ b/patches/0002-Shared-features.patch @@ -5,10 +5,10 @@ Subject: [PATCH 2/9] Shared-features diff --git a/internal/features/four_point_oh.go b/internal/features/four_point_oh.go -index 423a527f65..8bd6f0c754 100644 +index 4387a9c18f..4013a59e46 100644 --- a/internal/features/four_point_oh.go +++ b/internal/features/four_point_oh.go -@@ -38,3 +38,9 @@ func FourPointOh() bool { +@@ -44,3 +44,9 @@ func FourPointOh() bool { func FourPointOhBeta() bool { return FourPointOh() || false } @@ -19,10 +19,10 @@ index 423a527f65..8bd6f0c754 100644 + return true +} diff --git a/internal/provider/features.go b/internal/provider/features.go -index e16c7d6c1a..4999412db2 100644 +index c1df7fe4b1..f989086226 100644 --- a/internal/provider/features.go +++ b/internal/provider/features.go -@@ -320,7 +320,7 @@ func schemaFeatures(supportLegacyTestSuite bool) *pluginsdk.Schema { +@@ -340,7 +340,7 @@ func schemaFeatures(supportLegacyTestSuite bool) *pluginsdk.Schema { return &pluginsdk.Schema{ Type: pluginsdk.TypeList, diff --git a/patches/0005-Modify-resources.patch b/patches/0005-Modify-resources.patch index 4cbe318ae0..6c9dc24e3f 100644 --- a/patches/0005-Modify-resources.patch +++ b/patches/0005-Modify-resources.patch @@ -391,7 +391,7 @@ index 9d8cafbd14..9ad34c43b4 100644 }, diff --git a/internal/services/containers/container_group_resource.go b/internal/services/containers/container_group_resource.go -index d3a87501ae..7294b71876 100644 +index 225f109cdf..4c38ca5abb 100644 --- a/internal/services/containers/container_group_resource.go +++ b/internal/services/containers/container_group_resource.go @@ -7,6 +7,8 @@ import ( @@ -540,10 +540,10 @@ index 4001cad641..835aecb2d8 100644 string(databaseAccountCapabilitiesEnableAggregationPipeline), string(databaseAccountCapabilitiesEnableCassandra), diff --git a/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go b/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go -index e6a2b93e01..f9665d9631 100644 +index e6a2b93e01..53efd0fc1f 100644 --- a/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go +++ b/internal/services/cosmos/cosmosdb_cassandra_cluster_resource_test.go -@@ -18,6 +18,17 @@ import ( +@@ -18,6 +18,18 @@ import ( type CassandraClusterResource struct{} @@ -553,7 +553,8 @@ index e6a2b93e01..f9665d9631 100644 + "basic": { + "basic": testAccCassandraCluster_basic, + "requiresImport": testAccCassandraCluster_requiresImport, -+ "tags": testAccCassandraCluster_tags, ++ "complete": testAccCassandraCluster_complete, ++ "update": testAccCassandraCluster_update, + }, + }) +} @@ -807,7 +808,7 @@ index 90e02d8080..8970530193 100644 "reuse_key": { Type: pluginsdk.TypeBool, diff --git a/internal/services/legacy/virtual_machine_resource.go b/internal/services/legacy/virtual_machine_resource.go -index a1fb4be0c7..74f605b536 100644 +index 7f9d197b2c..b8e12f04fc 100644 --- a/internal/services/legacy/virtual_machine_resource.go +++ b/internal/services/legacy/virtual_machine_resource.go @@ -9,6 +9,7 @@ import ( @@ -1264,7 +1265,7 @@ index 2766565528..b7af892e01 100644 }, "hours": { diff --git a/internal/services/mssql/mssql_database_resource.go b/internal/services/mssql/mssql_database_resource.go -index 6e880faf79..2f8dbd1493 100644 +index bf746a51b7..59b2cb83ec 100644 --- a/internal/services/mssql/mssql_database_resource.go +++ b/internal/services/mssql/mssql_database_resource.go @@ -6,6 +6,7 @@ package mssql @@ -1275,7 +1276,7 @@ index 6e880faf79..2f8dbd1493 100644 "log" "strings" "time" -@@ -1629,7 +1630,8 @@ func resourceMsSqlDatabaseSchema() map[string]*pluginsdk.Schema { +@@ -1657,7 +1658,8 @@ func resourceMsSqlDatabaseSchema() map[string]*pluginsdk.Schema { "Sql_Injection", "Sql_Injection_Vulnerability", "Access_Anomaly", @@ -1285,7 +1286,7 @@ index 6e880faf79..2f8dbd1493 100644 }, }, -@@ -1640,7 +1642,7 @@ func resourceMsSqlDatabaseSchema() map[string]*pluginsdk.Schema { +@@ -1668,7 +1670,7 @@ func resourceMsSqlDatabaseSchema() map[string]*pluginsdk.Schema { Optional: true, Default: EmailAccountAdminsStatusDisabled, ValidateFunc: validation.StringInSlice(PossibleValuesForEmailAccountAdminsStatus(), @@ -1294,7 +1295,7 @@ index 6e880faf79..2f8dbd1493 100644 }, "email_addresses": { -@@ -1668,7 +1670,7 @@ func resourceMsSqlDatabaseSchema() map[string]*pluginsdk.Schema { +@@ -1696,7 +1698,7 @@ func resourceMsSqlDatabaseSchema() map[string]*pluginsdk.Schema { Optional: true, Default: string(serversecurityalertpolicies.SecurityAlertsPolicyStateDisabled), ValidateFunc: validation.StringInSlice(serversecurityalertpolicies.PossibleValuesForSecurityAlertsPolicyState(), @@ -1304,7 +1305,7 @@ index 6e880faf79..2f8dbd1493 100644 "storage_account_access_key": { diff --git a/internal/services/mssql/mssql_elasticpool_resource.go b/internal/services/mssql/mssql_elasticpool_resource.go -index bd774c2e88..d33d270134 100644 +index a78b061fe0..d484e990ba 100644 --- a/internal/services/mssql/mssql_elasticpool_resource.go +++ b/internal/services/mssql/mssql_elasticpool_resource.go @@ -6,6 +6,8 @@ package mssql @@ -1870,63 +1871,6 @@ index 780d029fc3..2802730704 100644 }, }, }, -diff --git a/internal/services/network/virtual_network_resource_test.go b/internal/services/network/virtual_network_resource_test.go -index d2434c6189..200bc2d5a6 100644 ---- a/internal/services/network/virtual_network_resource_test.go -+++ b/internal/services/network/virtual_network_resource_test.go -@@ -342,6 +342,52 @@ resource "azurerm_virtual_network" "test" { - } - `, data.RandomInteger, data.Locations.Primary, data.RandomInteger) - } -+func TestVirtualNetworkResource_tagCount(t *testing.T) { -+ data := acceptance.BuildTestData(t, "azurerm_virtual_network", "test") -+ r := VirtualNetworkResource{} -+ -+ data.ResourceTest(t, r, []acceptance.TestStep{ -+ { -+ Config: r.tagCount(data), -+ Check: acceptance.ComposeTestCheckFunc( -+ check.That(data.ResourceName).ExistsInAzure(r), -+ ), -+ }, -+ data.ImportStep(), -+ }) -+} -+func (r VirtualNetworkResource) tagCount(data acceptance.TestData) string { -+ tags := "" -+ for i := 0; i < 50; i++ { -+ tags += fmt.Sprintf("t%d = \"v%d\"\n", i, i) -+ } -+ -+ return fmt.Sprintf(` -+provider "azurerm" { -+ features {} -+} -+ -+resource "azurerm_resource_group" "test" { -+ name = "acctestRG-%d" -+ location = "%s" -+} -+ -+resource "azurerm_virtual_network" "test" { -+ name = "acctestvirtnet%d" -+ address_space = ["10.0.0.0/16"] -+ location = azurerm_resource_group.test.location -+ resource_group_name = azurerm_resource_group.test.name -+ -+ subnet { -+ name = "subnet1" -+ address_prefix = "10.0.1.0/24" -+ } -+ tags = { -+ %s -+ } -+} -+`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, tags) -+} - - func (r VirtualNetworkResource) tagCount(data acceptance.TestData) string { - tags := "" diff --git a/internal/services/notificationhub/notification_hub_namespace_resource.go b/internal/services/notificationhub/notification_hub_namespace_resource.go index abd8c6b3f6..55bc1b0b1d 100644 --- a/internal/services/notificationhub/notification_hub_namespace_resource.go @@ -2035,7 +1979,7 @@ index d68d5963fa..5da4ee2bdc 100644 "administrator_login": { diff --git a/internal/services/recoveryservices/recovery_services_vault_resource.go b/internal/services/recoveryservices/recovery_services_vault_resource.go -index 2e968cb727..91ee3db17d 100644 +index 3adbbcfa45..5551e72662 100644 --- a/internal/services/recoveryservices/recovery_services_vault_resource.go +++ b/internal/services/recoveryservices/recovery_services_vault_resource.go @@ -10,6 +10,8 @@ import ( @@ -2047,7 +1991,7 @@ index 2e968cb727..91ee3db17d 100644 "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids" -@@ -120,7 +122,7 @@ func resourceRecoveryServicesVault() *pluginsdk.Resource { +@@ -121,7 +123,7 @@ func resourceRecoveryServicesVault() *pluginsdk.Resource { ValidateFunc: validation.StringInSlice([]string{ string(vaults.SkuNameRSZero), string(vaults.SkuNameStandard), @@ -2057,7 +2001,7 @@ index 2e968cb727..91ee3db17d 100644 "storage_mode_type": { diff --git a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go -index 3c73bae3bc..41759ee1ea 100644 +index 32b5de4a99..081e69a07f 100644 --- a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go +++ b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go @@ -229,7 +229,7 @@ func resourceSiteRecoveryReplicatedVM() *pluginsdk.Resource { @@ -2079,7 +2023,7 @@ index 3c73bae3bc..41759ee1ea 100644 "target_disk_encryption_set_id": { diff --git a/internal/services/redis/redis_cache_resource.go b/internal/services/redis/redis_cache_resource.go -index 3914c1ae20..c52a8fc9d6 100644 +index 528b79961e..fc7196b399 100644 --- a/internal/services/redis/redis_cache_resource.go +++ b/internal/services/redis/redis_cache_resource.go @@ -6,6 +6,7 @@ package redis @@ -2482,7 +2426,7 @@ index 16797800a2..6d74e94b4f 100644 "storage_account_access_key": { diff --git a/internal/services/storage/storage_account_data_source.go b/internal/services/storage/storage_account_data_source.go -index b215edff58..af572b05db 100644 +index b215edff58..4381151544 100644 --- a/internal/services/storage/storage_account_data_source.go +++ b/internal/services/storage/storage_account_data_source.go @@ -37,7 +37,8 @@ func dataSourceStorageAccount() *pluginsdk.Resource { @@ -2510,14 +2454,14 @@ index b215edff58..af572b05db 100644 + if rg, ok := d.GetOk("resource_group_name"); ok { + resourceGroup = rg.(string) + } else { -+ account, err := storageClient.FindAccount(ctx, name) ++ account, err := storageClient.FindAccount(ctx, subscriptionId, name) + if err != nil { + return fmt.Errorf("Error retrieving Account %q: %s", name, err) + } + if account == nil { + return fmt.Errorf("Unable to locate Account %q", name) + } -+ resourceGroup = account.ResourceGroup ++ resourceGroup = account.StorageAccountId.ResourceGroupName + d.Set("resource_group_name", resourceGroup) + } + @@ -2525,19 +2469,20 @@ index b215edff58..af572b05db 100644 if !ok { return fmt.Errorf("could not determine Storage domain suffix for environment %q", meta.(*clients.Client).Account.Environment.Name) diff --git a/internal/services/storage/storage_account_resource.go b/internal/services/storage/storage_account_resource.go -index fd2f273fcc..0b964acf68 100644 +index c6f3f221b2..6c460dddfe 100644 --- a/internal/services/storage/storage_account_resource.go +++ b/internal/services/storage/storage_account_resource.go -@@ -6,6 +6,8 @@ package storage - import ( - "context" - "fmt" +@@ -13,6 +13,9 @@ import ( + "strings" + "time" + + "github.com/hashicorp/terraform-provider-azurerm/internal/features" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/suppress" - "log" - "net/http" - "net/url" -@@ -139,8 +141,9 @@ func resourceStorageAccount() *pluginsdk.Resource { ++ + "github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2021-09-01/storage" // nolint: staticcheck + azautorest "github.com/Azure/go-autorest/autorest" + "github.com/hashicorp/go-azure-helpers/lang/pointer" +@@ -139,8 +142,9 @@ func resourceStorageAccount() *pluginsdk.Resource { string(storage.KindBlockBlobStorage), string(storage.KindFileStorage), string(storage.KindStorageV2), @@ -2549,17 +2494,17 @@ index fd2f273fcc..0b964acf68 100644 }, "account_tier": { -@@ -150,7 +153,8 @@ func resourceStorageAccount() *pluginsdk.Resource { +@@ -150,7 +154,8 @@ func resourceStorageAccount() *pluginsdk.Resource { ValidateFunc: validation.StringInSlice([]string{ - "Standard", - "Premium", + string(storage.SkuTierStandard), + string(storage.SkuTierPremium), - }, false), + }, features.CaseInsensitive()), + DiffSuppressFunc: suppress.CaseDifferenceV2Only, }, "account_replication_type": { -@@ -163,7 +167,8 @@ func resourceStorageAccount() *pluginsdk.Resource { +@@ -163,7 +168,8 @@ func resourceStorageAccount() *pluginsdk.Resource { "RAGRS", "GZRS", "RAGZRS", @@ -2569,7 +2514,7 @@ index fd2f273fcc..0b964acf68 100644 }, // Only valid for FileStorage, BlobStorage & StorageV2 accounts, defaults to "Hot" in create function -@@ -174,7 +179,8 @@ func resourceStorageAccount() *pluginsdk.Resource { +@@ -174,7 +180,8 @@ func resourceStorageAccount() *pluginsdk.Resource { ValidateFunc: validation.StringInSlice([]string{ string(storage.AccessTierCool), string(storage.AccessTierHot), @@ -2579,7 +2524,7 @@ index fd2f273fcc..0b964acf68 100644 }, "azure_files_authentication": { -@@ -403,7 +409,8 @@ func resourceStorageAccount() *pluginsdk.Resource { +@@ -403,7 +410,8 @@ func resourceStorageAccount() *pluginsdk.Resource { string(storage.BypassLogging), string(storage.BypassMetrics), string(storage.BypassNone), @@ -2744,7 +2689,7 @@ index f5dac4de88..e85775dadd 100644 "VS2017", "VS2019", diff --git a/internal/services/web/app_service_certificate_order_resource.go b/internal/services/web/app_service_certificate_order_resource.go -index 415467db71..65c6a3299c 100644 +index cf219be2e2..de18a1e028 100644 --- a/internal/services/web/app_service_certificate_order_resource.go +++ b/internal/services/web/app_service_certificate_order_resource.go @@ -5,6 +5,7 @@ package web @@ -2755,7 +2700,7 @@ index 415467db71..65c6a3299c 100644 "log" "time" -@@ -113,7 +114,7 @@ func resourceAppServiceCertificateOrder() *pluginsdk.Resource { +@@ -119,7 +120,7 @@ func resourceAppServiceCertificateOrder() *pluginsdk.Resource { ValidateFunc: validation.StringInSlice([]string{ "Standard", "WildCard", diff --git a/patches/0007-Update-documentation.patch b/patches/0007-Update-documentation.patch index 52c90fdfe6..7111712b90 100644 --- a/patches/0007-Update-documentation.patch +++ b/patches/0007-Update-documentation.patch @@ -2407,7 +2407,7 @@ index c82917be5a..131701e1d9 100644 * `cross_region_restore_enabled` - (Optional) Is cross region restore enabled for this Vault? Only can be `true`, when `storage_mode_type` is `GeoRedundant`. Defaults to `false`. diff --git a/website/docs/r/redis_cache.html.markdown b/website/docs/r/redis_cache.html.markdown -index 348ef2cbfa..c7bfd1b5b2 100644 +index 5f504153f6..6e8a67c494 100644 --- a/website/docs/r/redis_cache.html.markdown +++ b/website/docs/r/redis_cache.html.markdown @@ -15,7 +15,7 @@ Manages a Redis Cache. diff --git a/provider/cmd/pulumi-resource-azure/bridge-metadata.json b/provider/cmd/pulumi-resource-azure/bridge-metadata.json index 221a895869..9c463552b2 100644 --- a/provider/cmd/pulumi-resource-azure/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-azure/bridge-metadata.json @@ -14968,6 +14968,16 @@ } } }, + "identity": { + "maxItemsOne": true, + "elem": { + "fields": { + "identity_ids": { + "maxItemsOne": false + } + } + } + }, "scopes": { "maxItemsOne": true }, @@ -15230,7 +15240,12 @@ }, "azurerm_mssql_server_extended_auditing_policy": { "current": "azure:mssql/serverExtendedAuditingPolicy:ServerExtendedAuditingPolicy", - "majorVersion": 5 + "majorVersion": 5, + "fields": { + "audit_actions_and_groups": { + "maxItemsOne": false + } + } }, "azurerm_mssql_server_microsoft_support_auditing_policy": { "current": "azure:mssql/serverMicrosoftSupportAuditingPolicy:ServerMicrosoftSupportAuditingPolicy", @@ -17195,6 +17210,14 @@ } } }, + "azurerm_redis_cache_access_policy": { + "current": "azure:redis/cacheAccessPolicy:CacheAccessPolicy", + "majorVersion": 5 + }, + "azurerm_redis_cache_access_policy_assignment": { + "current": "azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment", + "majorVersion": 5 + }, "azurerm_redis_enterprise_cluster": { "current": "azure:redis/enterpriseCluster:EnterpriseCluster", "majorVersion": 5, @@ -19573,6 +19596,10 @@ "current": "azure:appservice/staticWebAppCustomDomain:StaticWebAppCustomDomain", "majorVersion": 5 }, + "azurerm_static_web_app_function_app_registration": { + "current": "azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration", + "majorVersion": 5 + }, "azurerm_storage_account": { "current": "azure:storage/account:Account", "majorVersion": 5, @@ -23398,6 +23425,22 @@ } } }, + "azurerm_workloads_sap_discovery_virtual_instance": { + "current": "azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance", + "majorVersion": 5, + "fields": { + "identity": { + "maxItemsOne": true, + "elem": { + "fields": { + "identity_ids": { + "maxItemsOne": false + } + } + } + } + } + }, "azurerm_workloads_sap_single_node_virtual_instance": { "current": "azure:workloadssap/singleNodeVirtualInstance:SingleNodeVirtualInstance", "majorVersion": 5, @@ -29590,6 +29633,15 @@ } } }, + "azurerm_system_center_virtual_machine_manager_inventory_items": { + "current": "azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems", + "majorVersion": 5, + "fields": { + "inventory_items": { + "maxItemsOne": false + } + } + }, "azurerm_template_spec_version": { "current": "azure:core/getTemplateSpecVersion:getTemplateSpecVersion", "majorVersion": 5 diff --git a/provider/cmd/pulumi-resource-azure/schema.json b/provider/cmd/pulumi-resource-azure/schema.json index 36cacbb188..4dad899b2b 100644 --- a/provider/cmd/pulumi-resource-azure/schema.json +++ b/provider/cmd/pulumi-resource-azure/schema.json @@ -36519,7 +36519,7 @@ "properties": { "capacity": { "type": "integer", - "description": "Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription.\n" + "description": "Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription.\n" }, "name": { "type": "string", @@ -42350,6 +42350,9 @@ "postgresqlFlexibleServer": { "$ref": "#/types/azure:config/featuresPostgresqlFlexibleServer:featuresPostgresqlFlexibleServer" }, + "recoveryService": { + "$ref": "#/types/azure:config/featuresRecoveryService:featuresRecoveryService" + }, "resourceGroup": { "$ref": "#/types/azure:config/featuresResourceGroup:featuresResourceGroup" }, @@ -42471,6 +42474,17 @@ }, "type": "object" }, + "azure:config/featuresRecoveryService:featuresRecoveryService": { + "properties": { + "purgeProtectedItemsFromVaultOnDestroy": { + "type": "boolean" + }, + "vmBackupStopProtectionAndRetainDataOnDestroy": { + "type": "boolean" + } + }, + "type": "object" + }, "azure:config/featuresResourceGroup:featuresResourceGroup": { "properties": { "preventDeletionIfContainsResources": { @@ -43871,21 +43885,27 @@ }, "azure:containerapp/AppSecret:AppSecret": { "properties": { + "identity": { + "type": "string", + "description": "The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity.\n\n!\u003e **Note:** `identity` must be used together with `key_vault_secret_id`\n" + }, + "keyVaultSecretId": { + "type": "string", + "description": "The ID of a Key Vault secret. This can be a versioned or version-less ID.\n\n!\u003e **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`.\n" + }, "name": { "type": "string", - "description": "The Secret name.\n", - "secret": true + "description": "The secret name.\n" }, "value": { "type": "string", - "description": "The value for this secret.\n\n!\u003e **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `\"\"`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details.\n", + "description": "The value for this secret.\n\n!\u003e **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided.\n\n!\u003e **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `\"\"`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details.\n", "secret": true } }, "type": "object", "required": [ - "name", - "value" + "name" ] }, "azure:containerapp/AppTemplate:AppTemplate": { @@ -44643,10 +44663,17 @@ }, "azure:containerapp/EnvironmentDaprComponentSecret:EnvironmentDaprComponentSecret": { "properties": { + "identity": { + "type": "string", + "description": "The identity to use for accessing key vault reference.\n" + }, + "keyVaultSecretId": { + "type": "string", + "description": "The Key Vault Secret ID. Could be either one of `id` or `versionless_id`.\n" + }, "name": { "type": "string", - "description": "The Secret name.\n", - "secret": true + "description": "The Secret name.\n" }, "value": { "type": "string", @@ -44656,8 +44683,7 @@ }, "type": "object", "required": [ - "name", - "value" + "name" ] }, "azure:containerapp/EnvironmentWorkloadProfile:EnvironmentWorkloadProfile": { @@ -44936,6 +44962,14 @@ }, "azure:containerapp/getAppSecret:getAppSecret": { "properties": { + "identity": { + "type": "string", + "description": "Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry.\n" + }, + "keyVaultSecretId": { + "type": "string", + "description": "The ID of a Key Vault secret.\n" + }, "name": { "type": "string", "description": "The name of the Container App.\n" @@ -44948,6 +44982,8 @@ }, "type": "object", "required": [ + "identity", + "keyVaultSecretId", "name", "value" ], @@ -53161,7 +53197,7 @@ }, "noPublicIp": { "type": "boolean", - "description": "Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`.\n\n\u003e **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces.\n" + "description": "Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`.\n\n\u003e **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces.\n" }, "privateSubnetName": { "type": "string", @@ -53203,7 +53239,7 @@ }, "vnetAddressPrefix": { "type": "string", - "description": "Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created.\n\n\u003e **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview).\n", + "description": "Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created.\n\n\u003e **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview).\n", "willReplaceOnChanges": true } }, @@ -66737,6 +66773,9 @@ "postgresqlFlexibleServer": { "$ref": "#/types/azure:index/ProviderFeaturesPostgresqlFlexibleServer:ProviderFeaturesPostgresqlFlexibleServer" }, + "recoveryService": { + "$ref": "#/types/azure:index/ProviderFeaturesRecoveryService:ProviderFeaturesRecoveryService" + }, "resourceGroup": { "$ref": "#/types/azure:index/ProviderFeaturesResourceGroup:ProviderFeaturesResourceGroup" }, @@ -66858,6 +66897,17 @@ }, "type": "object" }, + "azure:index/ProviderFeaturesRecoveryService:ProviderFeaturesRecoveryService": { + "properties": { + "purgeProtectedItemsFromVaultOnDestroy": { + "type": "boolean" + }, + "vmBackupStopProtectionAndRetainDataOnDestroy": { + "type": "boolean" + } + }, + "type": "object" + }, "azure:index/ProviderFeaturesResourceGroup:ProviderFeaturesResourceGroup": { "properties": { "preventDeletionIfContainsResources": { @@ -79186,6 +79236,42 @@ "numberOfEvaluationPeriods" ] }, + "azure:monitoring/ScheduledQueryRulesAlertV2Identity:ScheduledQueryRulesAlertV2Identity": { + "properties": { + "identityIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule.\n\n\u003e **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information.\n" + }, + "principalId": { + "type": "string", + "description": "The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot.\n" + }, + "tenantId": { + "type": "string", + "description": "The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot.\n" + }, + "type": { + "type": "string", + "description": "Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`.\n" + } + }, + "type": "object", + "required": [ + "type" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "principalId", + "tenantId", + "type" + ] + } + } + }, "azure:monitoring/ScheduledQueryRulesLogCriteria:ScheduledQueryRulesLogCriteria": { "properties": { "dimensions": { @@ -82404,6 +82490,30 @@ }, "description": "A list of allowed clients IPv4 addresses.\n" }, + "kerberos5ReadOnlyEnabled": { + "type": "boolean", + "description": "Is Kerberos 5 read-only access permitted to this volume?\n" + }, + "kerberos5ReadWriteEnabled": { + "type": "boolean", + "description": "Is Kerberos 5 read/write permitted to this volume?\n" + }, + "kerberos5iReadOnlyEnabled": { + "type": "boolean", + "description": "Is Kerberos 5i read-only permitted to this volume?\n" + }, + "kerberos5iReadWriteEnabled": { + "type": "boolean", + "description": "Is Kerberos 5i read/write permitted to this volume?\n" + }, + "kerberos5pReadOnlyEnabled": { + "type": "boolean", + "description": "Is Kerberos 5p read-only permitted to this volume?\n" + }, + "kerberos5pReadWriteEnabled": { + "type": "boolean", + "description": "Is Kerberos 5p read/write permitted to this volume?\n" + }, "protocolsEnabled": { "type": "string", "description": "A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`.\n" @@ -91466,7 +91576,7 @@ "items": { "type": "string" }, - "description": "Specifies a list of Public IP Resouce ID to this Nginx Deployment.\n" + "description": "Specifies a list of Public IP Resource ID to this Nginx Deployment.\n" } }, "type": "object" @@ -101405,6 +101515,33 @@ } } }, + "azure:systemcenter/getVirtualMachineManagerInventoryItemsInventoryItem:getVirtualMachineManagerInventoryItemsInventoryItem": { + "properties": { + "id": { + "type": "string", + "description": "The ID of the System Center Virtual Machine Manager Inventory Item.\n" + }, + "name": { + "type": "string", + "description": "The name of the System Center Virtual Machine Manager Inventory Item.\n" + }, + "uuid": { + "type": "string", + "description": "The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager.\n" + } + }, + "type": "object", + "required": [ + "id", + "name", + "uuid" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "azure:trafficmanager/ProfileDnsConfig:ProfileDnsConfig": { "properties": { "relativeName": { @@ -102101,6 +102238,26 @@ } } }, + "azure:workloadssap/DiscoveryVirtualInstanceIdentity:DiscoveryVirtualInstanceIdentity": { + "properties": { + "identityIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance.\n" + }, + "type": { + "type": "string", + "description": "The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`.\n" + } + }, + "type": "object", + "required": [ + "identityIds", + "type" + ] + }, "azure:workloadssap/SingleNodeVirtualInstanceIdentity:SingleNodeVirtualInstanceIdentity": { "properties": { "identityIds": { @@ -111020,7 +111177,7 @@ } }, "azure:appinsights/smartDetectionRule:SmartDetectionRule": { - "description": "Manages an Application Insights Smart Detection 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: \"tf-test\",\n location: \"West Europe\",\n});\nconst exampleInsights = new azure.appinsights.Insights(\"example\", {\n name: \"tf-test-appinsights\",\n location: example.location,\n resourceGroupName: example.name,\n applicationType: \"web\",\n});\nconst exampleSmartDetectionRule = new azure.appinsights.SmartDetectionRule(\"example\", {\n name: \"Slow server response time\",\n applicationInsightsId: exampleInsights.id,\n enabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"tf-test\",\n location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"example\",\n name=\"tf-test-appinsights\",\n location=example.location,\n resource_group_name=example.name,\n application_type=\"web\")\nexample_smart_detection_rule = azure.appinsights.SmartDetectionRule(\"example\",\n name=\"Slow server response time\",\n application_insights_id=example_insights.id,\n enabled=False)\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 = \"tf-test\",\n Location = \"West Europe\",\n });\n\n var exampleInsights = new Azure.AppInsights.Insights(\"example\", new()\n {\n Name = \"tf-test-appinsights\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ApplicationType = \"web\",\n });\n\n var exampleSmartDetectionRule = new Azure.AppInsights.SmartDetectionRule(\"example\", new()\n {\n Name = \"Slow server response time\",\n ApplicationInsightsId = exampleInsights.Id,\n Enabled = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"tf-test\"),\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"example\", \u0026appinsights.InsightsArgs{\n\t\t\tName: pulumi.String(\"tf-test-appinsights\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tApplicationType: pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appinsights.NewSmartDetectionRule(ctx, \"example\", \u0026appinsights.SmartDetectionRuleArgs{\n\t\t\tName: pulumi.String(\"Slow server response time\"),\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.appinsights.Insights;\nimport com.pulumi.azure.appinsights.InsightsArgs;\nimport com.pulumi.azure.appinsights.SmartDetectionRule;\nimport com.pulumi.azure.appinsights.SmartDetectionRuleArgs;\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(\"tf-test\")\n .location(\"West Europe\")\n .build());\n\n var exampleInsights = new Insights(\"exampleInsights\", InsightsArgs.builder() \n .name(\"tf-test-appinsights\")\n .location(example.location())\n .resourceGroupName(example.name())\n .applicationType(\"web\")\n .build());\n\n var exampleSmartDetectionRule = new SmartDetectionRule(\"exampleSmartDetectionRule\", SmartDetectionRuleArgs.builder() \n .name(\"Slow server response time\")\n .applicationInsightsId(exampleInsights.id())\n .enabled(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: tf-test\n location: West Europe\n exampleInsights:\n type: azure:appinsights:Insights\n name: example\n properties:\n name: tf-test-appinsights\n location: ${example.location}\n resourceGroupName: ${example.name}\n applicationType: web\n exampleSmartDetectionRule:\n type: azure:appinsights:SmartDetectionRule\n name: example\n properties:\n name: Slow server response time\n applicationInsightsId: ${exampleInsights.id}\n enabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApplication Insights Smart Detection Rules can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/smartDetectionRule/myrule1\n```\n\n", + "description": "Manages an Application Insights Smart Detection 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: \"tf-test\",\n location: \"West Europe\",\n});\nconst exampleInsights = new azure.appinsights.Insights(\"example\", {\n name: \"tf-test-appinsights\",\n location: example.location,\n resourceGroupName: example.name,\n applicationType: \"web\",\n});\nconst exampleSmartDetectionRule = new azure.appinsights.SmartDetectionRule(\"example\", {\n name: \"Slow server response time\",\n applicationInsightsId: exampleInsights.id,\n enabled: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"tf-test\",\n location=\"West Europe\")\nexample_insights = azure.appinsights.Insights(\"example\",\n name=\"tf-test-appinsights\",\n location=example.location,\n resource_group_name=example.name,\n application_type=\"web\")\nexample_smart_detection_rule = azure.appinsights.SmartDetectionRule(\"example\",\n name=\"Slow server response time\",\n application_insights_id=example_insights.id,\n enabled=False)\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 = \"tf-test\",\n Location = \"West Europe\",\n });\n\n var exampleInsights = new Azure.AppInsights.Insights(\"example\", new()\n {\n Name = \"tf-test-appinsights\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ApplicationType = \"web\",\n });\n\n var exampleSmartDetectionRule = new Azure.AppInsights.SmartDetectionRule(\"example\", new()\n {\n Name = \"Slow server response time\",\n ApplicationInsightsId = exampleInsights.Id,\n Enabled = false,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"tf-test\"),\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"example\", \u0026appinsights.InsightsArgs{\n\t\t\tName: pulumi.String(\"tf-test-appinsights\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tApplicationType: pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appinsights.NewSmartDetectionRule(ctx, \"example\", \u0026appinsights.SmartDetectionRuleArgs{\n\t\t\tName: pulumi.String(\"Slow server response time\"),\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tEnabled: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.appinsights.Insights;\nimport com.pulumi.azure.appinsights.InsightsArgs;\nimport com.pulumi.azure.appinsights.SmartDetectionRule;\nimport com.pulumi.azure.appinsights.SmartDetectionRuleArgs;\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(\"tf-test\")\n .location(\"West Europe\")\n .build());\n\n var exampleInsights = new Insights(\"exampleInsights\", InsightsArgs.builder() \n .name(\"tf-test-appinsights\")\n .location(example.location())\n .resourceGroupName(example.name())\n .applicationType(\"web\")\n .build());\n\n var exampleSmartDetectionRule = new SmartDetectionRule(\"exampleSmartDetectionRule\", SmartDetectionRuleArgs.builder() \n .name(\"Slow server response time\")\n .applicationInsightsId(exampleInsights.id())\n .enabled(false)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: tf-test\n location: West Europe\n exampleInsights:\n type: azure:appinsights:Insights\n name: example\n properties:\n name: tf-test-appinsights\n location: ${example.location}\n resourceGroupName: ${example.name}\n applicationType: web\n exampleSmartDetectionRule:\n type: azure:appinsights:SmartDetectionRule\n name: example\n properties:\n name: Slow server response time\n applicationInsightsId: ${exampleInsights.id}\n enabled: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApplication Insights Smart Detection Rules can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/proactiveDetectionConfig/myrule1\n```\n\n", "properties": { "additionalEmailRecipients": { "type": "array", @@ -122862,6 +123019,55 @@ "type": "object" } }, + "azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration": { + "description": "Manages an App Service Static Web App Function App Registration.\n\n\u003e **NOTE:** This resource registers the specified Function App to the `Production` build of the Static Web App.\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 exampleStaticWebApp = new azure.appservice.StaticWebApp(\"example\", {\n name: \"example\",\n resourceGroupName: example.name,\n location: example.location,\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"examplesstorageacc\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n});\nconst exampleServicePlan = new azure.appservice.ServicePlan(\"example\", {\n name: \"example-service-plan\",\n location: example.location,\n resourceGroupName: example.name,\n osType: \"Linux\",\n skuName: \"S1\",\n});\nconst exampleLinuxFunctionApp = new azure.appservice.LinuxFunctionApp(\"example\", {\n name: \"example-function-app\",\n location: example.location,\n resourceGroupName: example.name,\n servicePlanId: exampleServicePlan.id,\n storageAccountName: exampleAccount.name,\n storageAccountAccessKey: exampleAccount.primaryAccessKey,\n siteConfig: {},\n});\nconst exampleStaticWebAppFunctionAppRegistration = new azure.appservice.StaticWebAppFunctionAppRegistration(\"example\", {\n staticWebAppId: exampleStaticWebApp.id,\n functionAppId: exampleLinuxFunctionApp.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_static_web_app = azure.appservice.StaticWebApp(\"example\",\n name=\"example\",\n resource_group_name=example.name,\n location=example.location)\nexample_account = azure.storage.Account(\"example\",\n name=\"examplesstorageacc\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\")\nexample_service_plan = azure.appservice.ServicePlan(\"example\",\n name=\"example-service-plan\",\n location=example.location,\n resource_group_name=example.name,\n os_type=\"Linux\",\n sku_name=\"S1\")\nexample_linux_function_app = azure.appservice.LinuxFunctionApp(\"example\",\n name=\"example-function-app\",\n location=example.location,\n resource_group_name=example.name,\n service_plan_id=example_service_plan.id,\n storage_account_name=example_account.name,\n storage_account_access_key=example_account.primary_access_key,\n site_config=azure.appservice.LinuxFunctionAppSiteConfigArgs())\nexample_static_web_app_function_app_registration = azure.appservice.StaticWebAppFunctionAppRegistration(\"example\",\n static_web_app_id=example_static_web_app.id,\n function_app_id=example_linux_function_app.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 exampleStaticWebApp = new Azure.AppService.StaticWebApp(\"example\", new()\n {\n Name = \"example\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"examplesstorageacc\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n });\n\n var exampleServicePlan = new Azure.AppService.ServicePlan(\"example\", new()\n {\n Name = \"example-service-plan\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n OsType = \"Linux\",\n SkuName = \"S1\",\n });\n\n var exampleLinuxFunctionApp = new Azure.AppService.LinuxFunctionApp(\"example\", new()\n {\n Name = \"example-function-app\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ServicePlanId = exampleServicePlan.Id,\n StorageAccountName = exampleAccount.Name,\n StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n SiteConfig = null,\n });\n\n var exampleStaticWebAppFunctionAppRegistration = new Azure.AppService.StaticWebAppFunctionAppRegistration(\"example\", new()\n {\n StaticWebAppId = exampleStaticWebApp.Id,\n FunctionAppId = exampleLinuxFunctionApp.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/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\texampleStaticWebApp, err := appservice.NewStaticWebApp(ctx, \"example\", \u0026appservice.StaticWebAppArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\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(\"examplesstorageacc\"),\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\texampleServicePlan, err := appservice.NewServicePlan(ctx, \"example\", \u0026appservice.ServicePlanArgs{\n\t\t\tName: pulumi.String(\"example-service-plan\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tOsType: pulumi.String(\"Linux\"),\n\t\t\tSkuName: pulumi.String(\"S1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleLinuxFunctionApp, err := appservice.NewLinuxFunctionApp(ctx, \"example\", \u0026appservice.LinuxFunctionAppArgs{\n\t\t\tName: pulumi.String(\"example-function-app\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tServicePlanId: exampleServicePlan.ID(),\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t\tSiteConfig: nil,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewStaticWebAppFunctionAppRegistration(ctx, \"example\", \u0026appservice.StaticWebAppFunctionAppRegistrationArgs{\n\t\t\tStaticWebAppId: exampleStaticWebApp.ID(),\n\t\t\tFunctionAppId: exampleLinuxFunctionApp.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.appservice.StaticWebApp;\nimport com.pulumi.azure.appservice.StaticWebAppArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.appservice.ServicePlan;\nimport com.pulumi.azure.appservice.ServicePlanArgs;\nimport com.pulumi.azure.appservice.LinuxFunctionApp;\nimport com.pulumi.azure.appservice.LinuxFunctionAppArgs;\nimport com.pulumi.azure.appservice.inputs.LinuxFunctionAppSiteConfigArgs;\nimport com.pulumi.azure.appservice.StaticWebAppFunctionAppRegistration;\nimport com.pulumi.azure.appservice.StaticWebAppFunctionAppRegistrationArgs;\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 exampleStaticWebApp = new StaticWebApp(\"exampleStaticWebApp\", StaticWebAppArgs.builder() \n .name(\"example\")\n .resourceGroupName(example.name())\n .location(example.location())\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"examplesstorageacc\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .build());\n\n var exampleServicePlan = new ServicePlan(\"exampleServicePlan\", ServicePlanArgs.builder() \n .name(\"example-service-plan\")\n .location(example.location())\n .resourceGroupName(example.name())\n .osType(\"Linux\")\n .skuName(\"S1\")\n .build());\n\n var exampleLinuxFunctionApp = new LinuxFunctionApp(\"exampleLinuxFunctionApp\", LinuxFunctionAppArgs.builder() \n .name(\"example-function-app\")\n .location(example.location())\n .resourceGroupName(example.name())\n .servicePlanId(exampleServicePlan.id())\n .storageAccountName(exampleAccount.name())\n .storageAccountAccessKey(exampleAccount.primaryAccessKey())\n .siteConfig()\n .build());\n\n var exampleStaticWebAppFunctionAppRegistration = new StaticWebAppFunctionAppRegistration(\"exampleStaticWebAppFunctionAppRegistration\", StaticWebAppFunctionAppRegistrationArgs.builder() \n .staticWebAppId(exampleStaticWebApp.id())\n .functionAppId(exampleLinuxFunctionApp.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 exampleStaticWebApp:\n type: azure:appservice:StaticWebApp\n name: example\n properties:\n name: example\n resourceGroupName: ${example.name}\n location: ${example.location}\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: examplesstorageacc\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n exampleServicePlan:\n type: azure:appservice:ServicePlan\n name: example\n properties:\n name: example-service-plan\n location: ${example.location}\n resourceGroupName: ${example.name}\n osType: Linux\n skuName: S1\n exampleLinuxFunctionApp:\n type: azure:appservice:LinuxFunctionApp\n name: example\n properties:\n name: example-function-app\n location: ${example.location}\n resourceGroupName: ${example.name}\n servicePlanId: ${exampleServicePlan.id}\n storageAccountName: ${exampleAccount.name}\n storageAccountAccessKey: ${exampleAccount.primaryAccessKey}\n siteConfig: {}\n exampleStaticWebAppFunctionAppRegistration:\n type: azure:appservice:StaticWebAppFunctionAppRegistration\n name: example\n properties:\n staticWebAppId: ${exampleStaticWebApp.id}\n functionAppId: ${exampleLinuxFunctionApp.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nStatic Web App Function App Registration can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/userProvidedFunctionApps/myFunctionApp\n```\n\n", + "properties": { + "functionAppId": { + "type": "string", + "description": "The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. \n\n\u003e **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported.\n\n\u003e **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App.\n" + }, + "staticWebAppId": { + "type": "string", + "description": "The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created.\n" + } + }, + "required": [ + "functionAppId", + "staticWebAppId" + ], + "inputProperties": { + "functionAppId": { + "type": "string", + "description": "The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. \n\n\u003e **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported.\n\n\u003e **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App.\n", + "willReplaceOnChanges": true + }, + "staticWebAppId": { + "type": "string", + "description": "The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "functionAppId", + "staticWebAppId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering StaticWebAppFunctionAppRegistration resources.\n", + "properties": { + "functionAppId": { + "type": "string", + "description": "The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. \n\n\u003e **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported.\n\n\u003e **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App.\n", + "willReplaceOnChanges": true + }, + "staticWebAppId": { + "type": "string", + "description": "The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "azure:appservice/virtualNetworkSwiftConnection:VirtualNetworkSwiftConnection": { "description": "Manages an App Service Virtual Network Association for [Regional VNet Integration](https://docs.microsoft.com/azure/app-service/web-sites-integrate-with-vnet#regional-vnet-integration).\n\nThis resource can be used for both App Services and Function Apps.\n\n\u003e **Note:** The following resources support associating the vNet for Regional vNet Integration directly on the resource and via the `azure.appservice.VirtualNetworkSwiftConnection` resource. You can't use both simultaneously.\n\n- azure.appservice.LinuxFunctionApp\n- azure.appservice.LinuxFunctionAppSlot\n- azure.appservice.LinuxWebApp\n- azure.appservice.LinuxWebAppSlot\n- azure.logicapps.Standard\n- azure.appservice.WindowsFunctionApp\n- azure.appservice.WindowsFunctionAppSlot\n- azure.appservice.WindowsWebApp\n- azure.appservice.WindowsWebAppSlot\n\nThis resource requires the `Microsoft.Network/virtualNetworks/subnets/write` permission scope on the subnet. \n\nThe resource specific vNet integration requires the `Microsoft.Network/virtualNetworks/subnets/join/action` permission scope.\n\nThere is a hard limit of [one VNet integration per App Service Plan](https://docs.microsoft.com/azure/app-service/web-sites-integrate-with-vnet#regional-vnet-integration).\nMultiple apps in the same App Service plan can use the same VNet.\n\n## Example Usage\n\n### With App Service)\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 exampleVirtualNetwork = new azure.network.VirtualNetwork(\"example\", {\n name: \"example-virtual-network\",\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 delegations: [{\n name: \"example-delegation\",\n serviceDelegation: {\n name: \"Microsoft.Web/serverFarms\",\n actions: [\"Microsoft.Network/virtualNetworks/subnets/action\"],\n },\n }],\n});\nconst examplePlan = new azure.appservice.Plan(\"example\", {\n name: \"example-app-service-plan\",\n location: example.location,\n resourceGroupName: example.name,\n sku: {\n tier: \"Standard\",\n size: \"S1\",\n },\n});\nconst exampleAppService = new azure.appservice.AppService(\"example\", {\n name: \"example-app-service\",\n location: example.location,\n resourceGroupName: example.name,\n appServicePlanId: examplePlan.id,\n});\nconst exampleVirtualNetworkSwiftConnection = new azure.appservice.VirtualNetworkSwiftConnection(\"example\", {\n appServiceId: exampleAppService.id,\n subnetId: exampleSubnet.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_virtual_network = azure.network.VirtualNetwork(\"example\",\n name=\"example-virtual-network\",\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\"],\n delegations=[azure.network.SubnetDelegationArgs(\n name=\"example-delegation\",\n service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n name=\"Microsoft.Web/serverFarms\",\n actions=[\"Microsoft.Network/virtualNetworks/subnets/action\"],\n ),\n )])\nexample_plan = azure.appservice.Plan(\"example\",\n name=\"example-app-service-plan\",\n location=example.location,\n resource_group_name=example.name,\n sku=azure.appservice.PlanSkuArgs(\n tier=\"Standard\",\n size=\"S1\",\n ))\nexample_app_service = azure.appservice.AppService(\"example\",\n name=\"example-app-service\",\n location=example.location,\n resource_group_name=example.name,\n app_service_plan_id=example_plan.id)\nexample_virtual_network_swift_connection = azure.appservice.VirtualNetworkSwiftConnection(\"example\",\n app_service_id=example_app_service.id,\n subnet_id=example_subnet.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 exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"example\", new()\n {\n Name = \"example-virtual-network\",\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 Delegations = new[]\n {\n new Azure.Network.Inputs.SubnetDelegationArgs\n {\n Name = \"example-delegation\",\n ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n {\n Name = \"Microsoft.Web/serverFarms\",\n Actions = new[]\n {\n \"Microsoft.Network/virtualNetworks/subnets/action\",\n },\n },\n },\n },\n });\n\n var examplePlan = new Azure.AppService.Plan(\"example\", new()\n {\n Name = \"example-app-service-plan\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n Sku = new Azure.AppService.Inputs.PlanSkuArgs\n {\n Tier = \"Standard\",\n Size = \"S1\",\n },\n });\n\n var exampleAppService = new Azure.AppService.AppService(\"example\", new()\n {\n Name = \"example-app-service\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n AppServicePlanId = examplePlan.Id,\n });\n\n var exampleVirtualNetworkSwiftConnection = new Azure.AppService.VirtualNetworkSwiftConnection(\"example\", new()\n {\n AppServiceId = exampleAppService.Id,\n SubnetId = exampleSubnet.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/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-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\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"example\", \u0026network.VirtualNetworkArgs{\n\t\t\tName: pulumi.String(\"example-virtual-network\"),\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\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"example-delegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Web/serverFarms\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/action\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"example\", \u0026appservice.PlanArgs{\n\t\t\tName: pulumi.String(\"example-app-service-plan\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAppService, err := appservice.NewAppService(ctx, \"example\", \u0026appservice.AppServiceArgs{\n\t\t\tName: pulumi.String(\"example-app-service\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tAppServicePlanId: examplePlan.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewVirtualNetworkSwiftConnection(ctx, \"example\", \u0026appservice.VirtualNetworkSwiftConnectionArgs{\n\t\t\tAppServiceId: exampleAppService.ID(),\n\t\t\tSubnetId: exampleSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.network.inputs.SubnetDelegationArgs;\nimport com.pulumi.azure.network.inputs.SubnetDelegationServiceDelegationArgs;\nimport com.pulumi.azure.appservice.Plan;\nimport com.pulumi.azure.appservice.PlanArgs;\nimport com.pulumi.azure.appservice.inputs.PlanSkuArgs;\nimport com.pulumi.azure.appservice.AppService;\nimport com.pulumi.azure.appservice.AppServiceArgs;\nimport com.pulumi.azure.appservice.VirtualNetworkSwiftConnection;\nimport com.pulumi.azure.appservice.VirtualNetworkSwiftConnectionArgs;\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 exampleVirtualNetwork = new VirtualNetwork(\"exampleVirtualNetwork\", VirtualNetworkArgs.builder() \n .name(\"example-virtual-network\")\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 .delegations(SubnetDelegationArgs.builder()\n .name(\"example-delegation\")\n .serviceDelegation(SubnetDelegationServiceDelegationArgs.builder()\n .name(\"Microsoft.Web/serverFarms\")\n .actions(\"Microsoft.Network/virtualNetworks/subnets/action\")\n .build())\n .build())\n .build());\n\n var examplePlan = new Plan(\"examplePlan\", PlanArgs.builder() \n .name(\"example-app-service-plan\")\n .location(example.location())\n .resourceGroupName(example.name())\n .sku(PlanSkuArgs.builder()\n .tier(\"Standard\")\n .size(\"S1\")\n .build())\n .build());\n\n var exampleAppService = new AppService(\"exampleAppService\", AppServiceArgs.builder() \n .name(\"example-app-service\")\n .location(example.location())\n .resourceGroupName(example.name())\n .appServicePlanId(examplePlan.id())\n .build());\n\n var exampleVirtualNetworkSwiftConnection = new VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\", VirtualNetworkSwiftConnectionArgs.builder() \n .appServiceId(exampleAppService.id())\n .subnetId(exampleSubnet.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 exampleVirtualNetwork:\n type: azure:network:VirtualNetwork\n name: example\n properties:\n name: example-virtual-network\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 delegations:\n - name: example-delegation\n serviceDelegation:\n name: Microsoft.Web/serverFarms\n actions:\n - Microsoft.Network/virtualNetworks/subnets/action\n examplePlan:\n type: azure:appservice:Plan\n name: example\n properties:\n name: example-app-service-plan\n location: ${example.location}\n resourceGroupName: ${example.name}\n sku:\n tier: Standard\n size: S1\n exampleAppService:\n type: azure:appservice:AppService\n name: example\n properties:\n name: example-app-service\n location: ${example.location}\n resourceGroupName: ${example.name}\n appServicePlanId: ${examplePlan.id}\n exampleVirtualNetworkSwiftConnection:\n type: azure:appservice:VirtualNetworkSwiftConnection\n name: example\n properties:\n appServiceId: ${exampleAppService.id}\n subnetId: ${exampleSubnet.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With Function App)\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 exampleVirtualNetwork = new azure.network.VirtualNetwork(\"example\", {\n name: \"example-virtual-network\",\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 delegations: [{\n name: \"example-delegation\",\n serviceDelegation: {\n name: \"Microsoft.Web/serverFarms\",\n actions: [\"Microsoft.Network/virtualNetworks/subnets/action\"],\n },\n }],\n});\nconst examplePlan = new azure.appservice.Plan(\"example\", {\n name: \"example-app-service-plan\",\n location: example.location,\n resourceGroupName: example.name,\n sku: {\n tier: \"Standard\",\n size: \"S1\",\n },\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"functionsappexamplesa\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n});\nconst exampleFunctionApp = new azure.appservice.FunctionApp(\"example\", {\n name: \"example-function-app\",\n location: example.location,\n resourceGroupName: example.name,\n appServicePlanId: examplePlan.id,\n storageAccountName: exampleAccount.name,\n storageAccountAccessKey: exampleAccount.primaryAccessKey,\n});\nconst exampleVirtualNetworkSwiftConnection = new azure.appservice.VirtualNetworkSwiftConnection(\"example\", {\n appServiceId: exampleFunctionApp.id,\n subnetId: exampleSubnet.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_virtual_network = azure.network.VirtualNetwork(\"example\",\n name=\"example-virtual-network\",\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\"],\n delegations=[azure.network.SubnetDelegationArgs(\n name=\"example-delegation\",\n service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n name=\"Microsoft.Web/serverFarms\",\n actions=[\"Microsoft.Network/virtualNetworks/subnets/action\"],\n ),\n )])\nexample_plan = azure.appservice.Plan(\"example\",\n name=\"example-app-service-plan\",\n location=example.location,\n resource_group_name=example.name,\n sku=azure.appservice.PlanSkuArgs(\n tier=\"Standard\",\n size=\"S1\",\n ))\nexample_account = azure.storage.Account(\"example\",\n name=\"functionsappexamplesa\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\")\nexample_function_app = azure.appservice.FunctionApp(\"example\",\n name=\"example-function-app\",\n location=example.location,\n resource_group_name=example.name,\n app_service_plan_id=example_plan.id,\n storage_account_name=example_account.name,\n storage_account_access_key=example_account.primary_access_key)\nexample_virtual_network_swift_connection = azure.appservice.VirtualNetworkSwiftConnection(\"example\",\n app_service_id=example_function_app.id,\n subnet_id=example_subnet.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 exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"example\", new()\n {\n Name = \"example-virtual-network\",\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 Delegations = new[]\n {\n new Azure.Network.Inputs.SubnetDelegationArgs\n {\n Name = \"example-delegation\",\n ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n {\n Name = \"Microsoft.Web/serverFarms\",\n Actions = new[]\n {\n \"Microsoft.Network/virtualNetworks/subnets/action\",\n },\n },\n },\n },\n });\n\n var examplePlan = new Azure.AppService.Plan(\"example\", new()\n {\n Name = \"example-app-service-plan\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n Sku = new Azure.AppService.Inputs.PlanSkuArgs\n {\n Tier = \"Standard\",\n Size = \"S1\",\n },\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"functionsappexamplesa\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n });\n\n var exampleFunctionApp = new Azure.AppService.FunctionApp(\"example\", new()\n {\n Name = \"example-function-app\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n AppServicePlanId = examplePlan.Id,\n StorageAccountName = exampleAccount.Name,\n StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n });\n\n var exampleVirtualNetworkSwiftConnection = new Azure.AppService.VirtualNetworkSwiftConnection(\"example\", new()\n {\n AppServiceId = exampleFunctionApp.Id,\n SubnetId = exampleSubnet.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/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\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"example\", \u0026network.VirtualNetworkArgs{\n\t\t\tName: pulumi.String(\"example-virtual-network\"),\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\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t\u0026network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"example-delegation\"),\n\t\t\t\t\tServiceDelegation: \u0026network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.Web/serverFarms\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/action\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePlan, err := appservice.NewPlan(ctx, \"example\", \u0026appservice.PlanArgs{\n\t\t\tName: pulumi.String(\"example-app-service-plan\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tSku: \u0026appservice.PlanSkuArgs{\n\t\t\t\tTier: pulumi.String(\"Standard\"),\n\t\t\t\tSize: pulumi.String(\"S1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"functionsappexamplesa\"),\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\texampleFunctionApp, err := appservice.NewFunctionApp(ctx, \"example\", \u0026appservice.FunctionAppArgs{\n\t\t\tName: pulumi.String(\"example-function-app\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tAppServicePlanId: examplePlan.ID(),\n\t\t\tStorageAccountName: exampleAccount.Name,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appservice.NewVirtualNetworkSwiftConnection(ctx, \"example\", \u0026appservice.VirtualNetworkSwiftConnectionArgs{\n\t\t\tAppServiceId: exampleFunctionApp.ID(),\n\t\t\tSubnetId: exampleSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.network.inputs.SubnetDelegationArgs;\nimport com.pulumi.azure.network.inputs.SubnetDelegationServiceDelegationArgs;\nimport com.pulumi.azure.appservice.Plan;\nimport com.pulumi.azure.appservice.PlanArgs;\nimport com.pulumi.azure.appservice.inputs.PlanSkuArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.appservice.FunctionApp;\nimport com.pulumi.azure.appservice.FunctionAppArgs;\nimport com.pulumi.azure.appservice.VirtualNetworkSwiftConnection;\nimport com.pulumi.azure.appservice.VirtualNetworkSwiftConnectionArgs;\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 exampleVirtualNetwork = new VirtualNetwork(\"exampleVirtualNetwork\", VirtualNetworkArgs.builder() \n .name(\"example-virtual-network\")\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 .delegations(SubnetDelegationArgs.builder()\n .name(\"example-delegation\")\n .serviceDelegation(SubnetDelegationServiceDelegationArgs.builder()\n .name(\"Microsoft.Web/serverFarms\")\n .actions(\"Microsoft.Network/virtualNetworks/subnets/action\")\n .build())\n .build())\n .build());\n\n var examplePlan = new Plan(\"examplePlan\", PlanArgs.builder() \n .name(\"example-app-service-plan\")\n .location(example.location())\n .resourceGroupName(example.name())\n .sku(PlanSkuArgs.builder()\n .tier(\"Standard\")\n .size(\"S1\")\n .build())\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"functionsappexamplesa\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .build());\n\n var exampleFunctionApp = new FunctionApp(\"exampleFunctionApp\", FunctionAppArgs.builder() \n .name(\"example-function-app\")\n .location(example.location())\n .resourceGroupName(example.name())\n .appServicePlanId(examplePlan.id())\n .storageAccountName(exampleAccount.name())\n .storageAccountAccessKey(exampleAccount.primaryAccessKey())\n .build());\n\n var exampleVirtualNetworkSwiftConnection = new VirtualNetworkSwiftConnection(\"exampleVirtualNetworkSwiftConnection\", VirtualNetworkSwiftConnectionArgs.builder() \n .appServiceId(exampleFunctionApp.id())\n .subnetId(exampleSubnet.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 exampleVirtualNetwork:\n type: azure:network:VirtualNetwork\n name: example\n properties:\n name: example-virtual-network\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 delegations:\n - name: example-delegation\n serviceDelegation:\n name: Microsoft.Web/serverFarms\n actions:\n - Microsoft.Network/virtualNetworks/subnets/action\n examplePlan:\n type: azure:appservice:Plan\n name: example\n properties:\n name: example-app-service-plan\n location: ${example.location}\n resourceGroupName: ${example.name}\n sku:\n tier: Standard\n size: S1\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: functionsappexamplesa\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n exampleFunctionApp:\n type: azure:appservice:FunctionApp\n name: example\n properties:\n name: example-function-app\n location: ${example.location}\n resourceGroupName: ${example.name}\n appServicePlanId: ${examplePlan.id}\n storageAccountName: ${exampleAccount.name}\n storageAccountAccessKey: ${exampleAccount.primaryAccessKey}\n exampleVirtualNetworkSwiftConnection:\n type: azure:appservice:VirtualNetworkSwiftConnection\n name: example\n properties:\n appServiceId: ${exampleFunctionApp.id}\n subnetId: ${exampleSubnet.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nApp Service Virtual Network Associations can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:appservice/virtualNetworkSwiftConnection:VirtualNetworkSwiftConnection myassociation /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/instance1/config/virtualNetwork\n```\n\n", "properties": { @@ -134262,7 +134468,7 @@ } }, "azure:bot/channelsRegistration:ChannelsRegistration": { - "description": "Manages a Bot Channels Registration.\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-resources\",\n location: \"West Europe\",\n});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"example\", {\n name: \"example\",\n location: \"global\",\n resourceGroupName: example.name,\n sku: \"F0\",\n microsoftAppId: current.then(current =\u003e current.clientId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"example\",\n name=\"example\",\n location=\"global\",\n resource_group_name=example.name,\n sku=\"F0\",\n microsoft_app_id=current.client_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-resources\",\n Location = \"West Europe\",\n });\n\n var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"example\", new()\n {\n Name = \"example\",\n Location = \"global\",\n ResourceGroupName = example.Name,\n Sku = \"F0\",\n MicrosoftAppId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.ClientId),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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 = bot.NewChannelsRegistration(ctx, \"example\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tSku: pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId: pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.bot.ChannelsRegistration;\nimport com.pulumi.azure.bot.ChannelsRegistrationArgs;\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-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleChannelsRegistration = new ChannelsRegistration(\"exampleChannelsRegistration\", ChannelsRegistrationArgs.builder() \n .name(\"example\")\n .location(\"global\")\n .resourceGroupName(example.name())\n .sku(\"F0\")\n .microsoftAppId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.clientId()))\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 exampleChannelsRegistration:\n type: azure:bot:ChannelsRegistration\n name: example\n properties:\n name: example\n location: global\n resourceGroupName: ${example.name}\n sku: F0\n microsoftAppId: ${current.clientId}\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBot Channels Registration can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:bot/channelsRegistration:ChannelsRegistration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example\n```\n\n", + "description": "Manages a Bot Channels Registration.\n\n\u003e **Note:** Bot Channels Registration has been [deprecated by Azure](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-resources-faq-azure?view=azure-bot-service-4.0#why-are-web-app-bot-and-bot-channel-registration-being-deprecated). New implementations should use the `azure.bot.ServiceAzureBot` resource.\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-resources\",\n location: \"West Europe\",\n});\nconst exampleChannelsRegistration = new azure.bot.ChannelsRegistration(\"example\", {\n name: \"example\",\n location: \"global\",\n resourceGroupName: example.name,\n sku: \"F0\",\n microsoftAppId: current.then(current =\u003e current.clientId),\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ncurrent = azure.core.get_client_config()\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_channels_registration = azure.bot.ChannelsRegistration(\"example\",\n name=\"example\",\n location=\"global\",\n resource_group_name=example.name,\n sku=\"F0\",\n microsoft_app_id=current.client_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-resources\",\n Location = \"West Europe\",\n });\n\n var exampleChannelsRegistration = new Azure.Bot.ChannelsRegistration(\"example\", new()\n {\n Name = \"example\",\n Location = \"global\",\n ResourceGroupName = example.Name,\n Sku = \"F0\",\n MicrosoftAppId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.ClientId),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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 = bot.NewChannelsRegistration(ctx, \"example\", \u0026bot.ChannelsRegistrationArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tSku: pulumi.String(\"F0\"),\n\t\t\tMicrosoftAppId: pulumi.String(current.ClientId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.bot.ChannelsRegistration;\nimport com.pulumi.azure.bot.ChannelsRegistrationArgs;\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-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleChannelsRegistration = new ChannelsRegistration(\"exampleChannelsRegistration\", ChannelsRegistrationArgs.builder() \n .name(\"example\")\n .location(\"global\")\n .resourceGroupName(example.name())\n .sku(\"F0\")\n .microsoftAppId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.clientId()))\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 exampleChannelsRegistration:\n type: azure:bot:ChannelsRegistration\n name: example\n properties:\n name: example\n location: global\n resourceGroupName: ${example.name}\n sku: F0\n microsoftAppId: ${current.clientId}\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBot Channels Registration can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:bot/channelsRegistration:ChannelsRegistration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example/providers/Microsoft.BotService/botServices/example\n```\n\n", "properties": { "cmkKeyVaultUrl": { "type": "string", @@ -134815,104 +135021,112 @@ "azure:bot/serviceAzureBot:ServiceAzureBot": { "description": "Manages an Azure Bot Service.\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 exampleInsights = new azure.appinsights.Insights(\"example\", {\n name: \"example-appinsights\",\n location: example.location,\n resourceGroupName: example.name,\n applicationType: \"web\",\n});\nconst exampleApiKey = new azure.appinsights.ApiKey(\"example\", {\n name: \"example-appinsightsapikey\",\n applicationInsightsId: exampleInsights.id,\n readPermissions: [\n \"aggregate\",\n \"api\",\n \"draft\",\n \"extendqueries\",\n \"search\",\n ],\n});\nconst current = azure.core.getClientConfig({});\nconst exampleServiceAzureBot = new azure.bot.ServiceAzureBot(\"example\", {\n name: \"exampleazurebot\",\n resourceGroupName: example.name,\n location: \"global\",\n microsoftAppId: current.then(current =\u003e current.clientId),\n sku: \"F0\",\n endpoint: \"https://example.com\",\n developerAppInsightsApiKey: exampleApiKey.apiKey,\n developerAppInsightsApplicationId: exampleInsights.appId,\n tags: {\n environment: \"test\",\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_insights = azure.appinsights.Insights(\"example\",\n name=\"example-appinsights\",\n location=example.location,\n resource_group_name=example.name,\n application_type=\"web\")\nexample_api_key = azure.appinsights.ApiKey(\"example\",\n name=\"example-appinsightsapikey\",\n application_insights_id=example_insights.id,\n read_permissions=[\n \"aggregate\",\n \"api\",\n \"draft\",\n \"extendqueries\",\n \"search\",\n ])\ncurrent = azure.core.get_client_config()\nexample_service_azure_bot = azure.bot.ServiceAzureBot(\"example\",\n name=\"exampleazurebot\",\n resource_group_name=example.name,\n location=\"global\",\n microsoft_app_id=current.client_id,\n sku=\"F0\",\n endpoint=\"https://example.com\",\n developer_app_insights_api_key=example_api_key.api_key,\n developer_app_insights_application_id=example_insights.app_id,\n tags={\n \"environment\": \"test\",\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 exampleInsights = new Azure.AppInsights.Insights(\"example\", new()\n {\n Name = \"example-appinsights\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ApplicationType = \"web\",\n });\n\n var exampleApiKey = new Azure.AppInsights.ApiKey(\"example\", new()\n {\n Name = \"example-appinsightsapikey\",\n ApplicationInsightsId = exampleInsights.Id,\n ReadPermissions = new[]\n {\n \"aggregate\",\n \"api\",\n \"draft\",\n \"extendqueries\",\n \"search\",\n },\n });\n\n var current = Azure.Core.GetClientConfig.Invoke();\n\n var exampleServiceAzureBot = new Azure.Bot.ServiceAzureBot(\"example\", new()\n {\n Name = \"exampleazurebot\",\n ResourceGroupName = example.Name,\n Location = \"global\",\n MicrosoftAppId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.ClientId),\n Sku = \"F0\",\n Endpoint = \"https://example.com\",\n DeveloperAppInsightsApiKey = exampleApiKey.ApiKey,\n DeveloperAppInsightsApplicationId = exampleInsights.AppId,\n Tags = \n {\n { \"environment\", \"test\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/bot\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\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\texampleInsights, err := appinsights.NewInsights(ctx, \"example\", \u0026appinsights.InsightsArgs{\n\t\t\tName: pulumi.String(\"example-appinsights\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tApplicationType: pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleApiKey, err := appinsights.NewApiKey(ctx, \"example\", \u0026appinsights.ApiKeyArgs{\n\t\t\tName: pulumi.String(\"example-appinsightsapikey\"),\n\t\t\tApplicationInsightsId: exampleInsights.ID(),\n\t\t\tReadPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"aggregate\"),\n\t\t\t\tpulumi.String(\"api\"),\n\t\t\t\tpulumi.String(\"draft\"),\n\t\t\t\tpulumi.String(\"extendqueries\"),\n\t\t\t\tpulumi.String(\"search\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = bot.NewServiceAzureBot(ctx, \"example\", \u0026bot.ServiceAzureBotArgs{\n\t\t\tName: pulumi.String(\"exampleazurebot\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: pulumi.String(\"global\"),\n\t\t\tMicrosoftAppId: pulumi.String(current.ClientId),\n\t\t\tSku: pulumi.String(\"F0\"),\n\t\t\tEndpoint: pulumi.String(\"https://example.com\"),\n\t\t\tDeveloperAppInsightsApiKey: exampleApiKey.ApiKey,\n\t\t\tDeveloperAppInsightsApplicationId: exampleInsights.AppId,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.appinsights.Insights;\nimport com.pulumi.azure.appinsights.InsightsArgs;\nimport com.pulumi.azure.appinsights.ApiKey;\nimport com.pulumi.azure.appinsights.ApiKeyArgs;\nimport com.pulumi.azure.core.CoreFunctions;\nimport com.pulumi.azure.bot.ServiceAzureBot;\nimport com.pulumi.azure.bot.ServiceAzureBotArgs;\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 exampleInsights = new Insights(\"exampleInsights\", InsightsArgs.builder() \n .name(\"example-appinsights\")\n .location(example.location())\n .resourceGroupName(example.name())\n .applicationType(\"web\")\n .build());\n\n var exampleApiKey = new ApiKey(\"exampleApiKey\", ApiKeyArgs.builder() \n .name(\"example-appinsightsapikey\")\n .applicationInsightsId(exampleInsights.id())\n .readPermissions( \n \"aggregate\",\n \"api\",\n \"draft\",\n \"extendqueries\",\n \"search\")\n .build());\n\n final var current = CoreFunctions.getClientConfig();\n\n var exampleServiceAzureBot = new ServiceAzureBot(\"exampleServiceAzureBot\", ServiceAzureBotArgs.builder() \n .name(\"exampleazurebot\")\n .resourceGroupName(example.name())\n .location(\"global\")\n .microsoftAppId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.clientId()))\n .sku(\"F0\")\n .endpoint(\"https://example.com\")\n .developerAppInsightsApiKey(exampleApiKey.apiKey())\n .developerAppInsightsApplicationId(exampleInsights.appId())\n .tags(Map.of(\"environment\", \"test\"))\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 exampleInsights:\n type: azure:appinsights:Insights\n name: example\n properties:\n name: example-appinsights\n location: ${example.location}\n resourceGroupName: ${example.name}\n applicationType: web\n exampleApiKey:\n type: azure:appinsights:ApiKey\n name: example\n properties:\n name: example-appinsightsapikey\n applicationInsightsId: ${exampleInsights.id}\n readPermissions:\n - aggregate\n - api\n - draft\n - extendqueries\n - search\n exampleServiceAzureBot:\n type: azure:bot:ServiceAzureBot\n name: example\n properties:\n name: exampleazurebot\n resourceGroupName: ${example.name}\n location: global\n microsoftAppId: ${current.clientId}\n sku: F0\n endpoint: https://example.com\n developerAppInsightsApiKey: ${exampleApiKey.apiKey}\n developerAppInsightsApplicationId: ${exampleInsights.appId}\n tags:\n environment: test\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure Bot Services can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:bot/serviceAzureBot:ServiceAzureBot example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.BotService/botServices/botService1\n```\n\n", "properties": { - "developerAppInsightsApiKey": { - "type": "string", - "description": "The Application Insights API Key to associate with this Azure Bot Service.\n", - "secret": true - }, - "developerAppInsightsApplicationId": { - "type": "string", - "description": "The resource ID of the Application Insights instance to associate with this Azure Bot Service.\n" - }, - "developerAppInsightsKey": { - "type": "string", - "description": "The Application Insight Key to associate with this Azure Bot Service.\n" - }, - "displayName": { - "type": "string", - "description": "The name that the Azure Bot Service will be displayed as. This defaults to the value set for `name` if not specified.\n" - }, - "endpoint": { - "type": "string", - "description": "The Azure Bot Service endpoint.\n" - }, - "iconUrl": { - "type": "string", - "description": "The Icon Url of the Azure Bot Service. Defaults to `https://docs.botframework.com/static/devportal/client/images/bot-framework-default.png`.\n" - }, - "localAuthenticationEnabled": { - "type": "boolean", - "description": "Is local authentication enabled? Defaults to `true`.\n" - }, - "location": { + "cmkKeyVaultKeyUrl": { "type": "string", - "description": "The supported Azure location where the Azure Bot Service should exist. Changing this forces a new resource to be created.\n" - }, - "luisAppIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of LUIS App IDs to associate with this Azure Bot Service.\n" - }, - "luisKey": { - "type": "string", - "description": "The LUIS key to associate with this Azure Bot Service.\n", - "secret": true - }, - "microsoftAppId": { - "type": "string", - "description": "The Microsoft Application ID for the Azure Bot Service. Changing this forces a new resource to be created.\n" - }, - "microsoftAppMsiId": { - "type": "string", - "description": "The ID of the Microsoft App Managed Identity for this Azure Bot Service. Changing this forces a new resource to be created.\n" - }, - "microsoftAppTenantId": { - "type": "string", - "description": "The Tenant ID of the Microsoft App for this Azure Bot Service. Changing this forces a new resource to be created.\n" - }, - "microsoftAppType": { - "type": "string", - "description": "The Microsoft App Type for this Azure Bot Service. Possible values are `MultiTenant`, `SingleTenant` and `UserAssignedMSI`. Changing this forces a new resource to be created.\n" - }, - "name": { - "type": "string", - "description": "The name which should be used for this Azure Bot Service. Changing this forces a new resource to be created.\n" + "description": "The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key.\n\n\u003e **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance)\n" + }, + "developerAppInsightsApiKey": { + "type": "string", + "description": "The Application Insights API Key to associate with this Azure Bot Service.\n", + "secret": true + }, + "developerAppInsightsApplicationId": { + "type": "string", + "description": "The resource ID of the Application Insights instance to associate with this Azure Bot Service.\n" + }, + "developerAppInsightsKey": { + "type": "string", + "description": "The Application Insight Key to associate with this Azure Bot Service.\n" + }, + "displayName": { + "type": "string", + "description": "The name that the Azure Bot Service will be displayed as. This defaults to the value set for `name` if not specified.\n" + }, + "endpoint": { + "type": "string", + "description": "The Azure Bot Service endpoint.\n" + }, + "iconUrl": { + "type": "string", + "description": "The Icon Url of the Azure Bot Service. Defaults to `https://docs.botframework.com/static/devportal/client/images/bot-framework-default.png`.\n" + }, + "localAuthenticationEnabled": { + "type": "boolean", + "description": "Is local authentication enabled? Defaults to `true`.\n" + }, + "location": { + "type": "string", + "description": "The supported Azure location where the Azure Bot Service should exist. Changing this forces a new resource to be created.\n" + }, + "luisAppIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of LUIS App IDs to associate with this Azure Bot Service.\n" + }, + "luisKey": { + "type": "string", + "description": "The LUIS key to associate with this Azure Bot Service.\n", + "secret": true + }, + "microsoftAppId": { + "type": "string", + "description": "The Microsoft Application ID for the Azure Bot Service. Changing this forces a new resource to be created.\n" + }, + "microsoftAppMsiId": { + "type": "string", + "description": "The ID of the Microsoft App Managed Identity for this Azure Bot Service. Changing this forces a new resource to be created.\n" + }, + "microsoftAppTenantId": { + "type": "string", + "description": "The Tenant ID of the Microsoft App for this Azure Bot Service. Changing this forces a new resource to be created.\n" + }, + "microsoftAppType": { + "type": "string", + "description": "The Microsoft App Type for this Azure Bot Service. Possible values are `MultiTenant`, `SingleTenant` and `UserAssignedMSI`. Changing this forces a new resource to be created.\n" + }, + "name": { + "type": "string", + "description": "The name which should be used for this Azure Bot Service. Changing this forces a new resource to be created.\n" + }, + "publicNetworkAccessEnabled": { + "type": "boolean", + "description": "Whether public network access is allowed for this server. Defaults to `true`.\n" + }, + "resourceGroupName": { + "type": "string", + "description": "The name of the Resource Group where the Azure Bot Service should exist. Changing this forces a new resource to be created.\n" + }, + "sku": { + "type": "string", + "description": "The SKU of the Azure Bot Service. Accepted values are `F0` or `S1`. Changing this forces a new resource to be created.\n" + }, + "streamingEndpointEnabled": { + "type": "boolean", + "description": "Is the streaming endpoint enabled for this Azure Bot Service. Defaults to `false`.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of tags which should be assigned to this Azure Bot Service.\n" + } + }, + "required": [ + "displayName", + "location", + "microsoftAppId", + "name", + "resourceGroupName", + "sku" + ], + "inputProperties": { + "cmkKeyVaultKeyUrl": { + "type": "string", + "description": "The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key.\n\n\u003e **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance)\n" }, - "publicNetworkAccessEnabled": { - "type": "boolean", - "description": "Whether public network access is allowed for this server. Defaults to `true`.\n" - }, - "resourceGroupName": { - "type": "string", - "description": "The name of the Resource Group where the Azure Bot Service should exist. Changing this forces a new resource to be created.\n" - }, - "sku": { - "type": "string", - "description": "The SKU of the Azure Bot Service. Accepted values are `F0` or `S1`. Changing this forces a new resource to be created.\n" - }, - "streamingEndpointEnabled": { - "type": "boolean", - "description": "Is the streaming endpoint enabled for this Azure Bot Service. Defaults to `false`.\n" - }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A mapping of tags which should be assigned to this Azure Bot Service.\n" - } - }, - "required": [ - "displayName", - "location", - "microsoftAppId", - "name", - "resourceGroupName", - "sku" - ], - "inputProperties": { "developerAppInsightsApiKey": { "type": "string", "description": "The Application Insights API Key to associate with this Azure Bot Service.\n", @@ -135018,6 +135232,10 @@ "stateInputs": { "description": "Input properties used for looking up and filtering ServiceAzureBot resources.\n", "properties": { + "cmkKeyVaultKeyUrl": { + "type": "string", + "description": "The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key.\n\n\u003e **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance)\n" + }, "developerAppInsightsApiKey": { "type": "string", "description": "The Application Insights API Key to associate with this Azure Bot Service.\n", @@ -137467,7 +137685,7 @@ } }, "azure:chaosstudio/target:Target": { - "description": "\u003c!-- Note: This documentation is generated. Any manual changes will be overwritten --\u003e\n\nManages a Chaos Studio Target.\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 exampleResourceGroup = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst example = new azure.containerservice.KubernetesCluster(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n dnsPrefix: \"acctestaksexample\",\n defaultNodePool: {\n name: \"example-value\",\n nodeCount: \"example-value\",\n vmSize: \"example-value\",\n },\n identity: {\n type: \"example-value\",\n },\n});\nconst exampleTarget = new azure.chaosstudio.Target(\"example\", {\n location: exampleResourceGroup.location,\n targetResourceId: example.id,\n targetType: \"example-value\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample = azure.containerservice.KubernetesCluster(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n dns_prefix=\"acctestaksexample\",\n default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs(\n name=\"example-value\",\n node_count=\"example-value\",\n vm_size=\"example-value\",\n ),\n identity=azure.containerservice.KubernetesClusterIdentityArgs(\n type=\"example-value\",\n ))\nexample_target = azure.chaosstudio.Target(\"example\",\n location=example_resource_group.location,\n target_resource_id=example.id,\n target_type=\"example-value\")\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 exampleResourceGroup = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var example = new Azure.ContainerService.KubernetesCluster(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n DnsPrefix = \"acctestaksexample\",\n DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs\n {\n Name = \"example-value\",\n NodeCount = \"example-value\",\n VmSize = \"example-value\",\n },\n Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs\n {\n Type = \"example-value\",\n },\n });\n\n var exampleTarget = new Azure.ChaosStudio.Target(\"example\", new()\n {\n Location = exampleResourceGroup.Location,\n TargetResourceId = example.Id,\n TargetType = \"example-value\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/chaosstudio\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"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\texample, err := containerservice.NewKubernetesCluster(ctx, \"example\", \u0026containerservice.KubernetesClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDnsPrefix: pulumi.String(\"acctestaksexample\"),\n\t\t\tDefaultNodePool: \u0026containerservice.KubernetesClusterDefaultNodePoolArgs{\n\t\t\t\tName: pulumi.String(\"example-value\"),\n\t\t\t\tNodeCount: pulumi.Int(\"example-value\"),\n\t\t\t\tVmSize: pulumi.String(\"example-value\"),\n\t\t\t},\n\t\t\tIdentity: \u0026containerservice.KubernetesClusterIdentityArgs{\n\t\t\t\tType: pulumi.String(\"example-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = chaosstudio.NewTarget(ctx, \"example\", \u0026chaosstudio.TargetArgs{\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tTargetResourceId: example.ID(),\n\t\t\tTargetType: pulumi.String(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.containerservice.KubernetesCluster;\nimport com.pulumi.azure.containerservice.KubernetesClusterArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterIdentityArgs;\nimport com.pulumi.azure.chaosstudio.Target;\nimport com.pulumi.azure.chaosstudio.TargetArgs;\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 exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var example = new KubernetesCluster(\"example\", KubernetesClusterArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .dnsPrefix(\"acctestaksexample\")\n .defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()\n .name(\"example-value\")\n .nodeCount(\"example-value\")\n .vmSize(\"example-value\")\n .build())\n .identity(KubernetesClusterIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleTarget = new Target(\"exampleTarget\", TargetArgs.builder() \n .location(exampleResourceGroup.location())\n .targetResourceId(example.id())\n .targetType(\"example-value\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:containerservice:KubernetesCluster\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n dnsPrefix: acctestaksexample\n defaultNodePool:\n name: example-value\n nodeCount: example-value\n vmSize: example-value\n identity:\n type: example-value\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n name: example\n properties:\n name: example-resources\n location: West Europe\n exampleTarget:\n type: azure:chaosstudio:Target\n name: example\n properties:\n location: ${exampleResourceGroup.location}\n targetResourceId: ${example.id}\n targetType: example-value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn existing Chaos Studio Target can be imported into Terraform using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:chaosstudio/target:Target example /{scope}/providers/Microsoft.Chaos/targets/{targetName}\n```\n\n* Where `{scope}` is the ID of the Azure Resource under which the Chaos Studio Target exists. For example `/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/some-resource-group`.\n\n* Where `{targetName}` is the name of the Target. For example `targetValue`.\n\n", + "description": "\u003c!-- Note: This documentation is generated. Any manual changes will be overwritten --\u003e\n\nManages a Chaos Studio Target.\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.containerservice.KubernetesCluster;\nimport com.pulumi.azure.containerservice.KubernetesClusterArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterIdentityArgs;\nimport com.pulumi.azure.chaosstudio.Target;\nimport com.pulumi.azure.chaosstudio.TargetArgs;\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 exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var example = new KubernetesCluster(\"example\", KubernetesClusterArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .dnsPrefix(\"acctestaksexample\")\n .defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()\n .name(\"example-value\")\n .nodeCount(\"example-value\")\n .vmSize(\"example-value\")\n .build())\n .upgradeSettings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .identity(KubernetesClusterIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleTarget = new Target(\"exampleTarget\", TargetArgs.builder() \n .location(exampleResourceGroup.location())\n .targetResourceId(example.id())\n .targetType(\"example-value\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:containerservice:KubernetesCluster\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n dnsPrefix: acctestaksexample\n defaultNodePool:\n name: example-value\n nodeCount: example-value\n vmSize: example-value\n upgradeSettings:\n - maxSurge: example-value\n identity:\n type: example-value\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n name: example\n properties:\n name: example-resources\n location: West Europe\n exampleTarget:\n type: azure:chaosstudio:Target\n name: example\n properties:\n location: ${exampleResourceGroup.location}\n targetResourceId: ${example.id}\n targetType: example-value\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn existing Chaos Studio Target can be imported into Terraform using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:chaosstudio/target:Target example /{scope}/providers/Microsoft.Chaos/targets/{targetName}\n```\n\n* Where `{scope}` is the ID of the Azure Resource under which the Chaos Studio Target exists. For example `/subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/some-resource-group`.\n\n* Where `{targetName}` is the name of the Target. For example `targetValue`.\n\n", "properties": { "location": { "type": "string", @@ -149227,7 +149445,7 @@ } }, "azure:containerservice/clusterTrustedAccessRoleBinding:ClusterTrustedAccessRoleBinding": { - "description": "\u003c!-- Note: This documentation is generated. Any manual changes will be overwritten --\u003e\n\nManages a Kubernetes Cluster Trusted Access Role Binding\n\u003e **Note:** This Resource is in **Preview** to use this you must be opted into the Preview. You can do this by running `az feature register --namespace Microsoft.ContainerService --name TrustedAccessPreview` and then `az provider register -n Microsoft.ContainerService`\n.\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 exampleResourceGroup = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst example = new azure.appinsights.Insights(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n applicationType: \"example-value\",\n});\nconst test = azure.core.getClientConfig({});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n tenantId: exampleAzurermClientConfig.tenantId,\n skuName: \"example-value\",\n softDeleteRetentionDays: \"example-value\",\n});\nconst exampleAccessPolicy = new azure.keyvault.AccessPolicy(\"example\", {\n keyVaultId: exampleKeyVault.id,\n tenantId: exampleAzurermClientConfig.tenantId,\n objectId: exampleAzurermClientConfig.objectId,\n keyPermissions: \"example-value\",\n});\nconst exampleKubernetesCluster = new azure.containerservice.KubernetesCluster(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n dnsPrefix: \"acctestaksexample\",\n defaultNodePool: {\n name: \"example-value\",\n nodeCount: \"example-value\",\n vmSize: \"example-value\",\n },\n identity: {\n type: \"example-value\",\n },\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n accountTier: \"example-value\",\n accountReplicationType: \"example-value\",\n});\nconst exampleWorkspace = new azure.machinelearning.Workspace(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n keyVaultId: exampleKeyVault.id,\n storageAccountId: exampleAccount.id,\n applicationInsightsId: example.id,\n identity: {\n type: \"example-value\",\n },\n});\nconst exampleClusterTrustedAccessRoleBinding = new azure.containerservice.ClusterTrustedAccessRoleBinding(\"example\", {\n kubernetesClusterId: exampleKubernetesCluster.id,\n name: \"example\",\n roles: \"example-value\",\n sourceResourceId: exampleWorkspace.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample = azure.appinsights.Insights(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n application_type=\"example-value\")\ntest = azure.core.get_client_config()\nexample_key_vault = azure.keyvault.KeyVault(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n tenant_id=example_azurerm_client_config[\"tenantId\"],\n sku_name=\"example-value\",\n soft_delete_retention_days=\"example-value\")\nexample_access_policy = azure.keyvault.AccessPolicy(\"example\",\n key_vault_id=example_key_vault.id,\n tenant_id=example_azurerm_client_config[\"tenantId\"],\n object_id=example_azurerm_client_config[\"objectId\"],\n key_permissions=\"example-value\")\nexample_kubernetes_cluster = azure.containerservice.KubernetesCluster(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n dns_prefix=\"acctestaksexample\",\n default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs(\n name=\"example-value\",\n node_count=\"example-value\",\n vm_size=\"example-value\",\n ),\n identity=azure.containerservice.KubernetesClusterIdentityArgs(\n type=\"example-value\",\n ))\nexample_account = azure.storage.Account(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n account_tier=\"example-value\",\n account_replication_type=\"example-value\")\nexample_workspace = azure.machinelearning.Workspace(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n key_vault_id=example_key_vault.id,\n storage_account_id=example_account.id,\n application_insights_id=example.id,\n identity=azure.machinelearning.WorkspaceIdentityArgs(\n type=\"example-value\",\n ))\nexample_cluster_trusted_access_role_binding = azure.containerservice.ClusterTrustedAccessRoleBinding(\"example\",\n kubernetes_cluster_id=example_kubernetes_cluster.id,\n name=\"example\",\n roles=\"example-value\",\n source_resource_id=example_workspace.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 exampleResourceGroup = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var example = new Azure.AppInsights.Insights(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n ApplicationType = \"example-value\",\n });\n\n var test = Azure.Core.GetClientConfig.Invoke();\n\n var exampleKeyVault = new Azure.KeyVault.KeyVault(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n TenantId = exampleAzurermClientConfig.TenantId,\n SkuName = \"example-value\",\n SoftDeleteRetentionDays = \"example-value\",\n });\n\n var exampleAccessPolicy = new Azure.KeyVault.AccessPolicy(\"example\", new()\n {\n KeyVaultId = exampleKeyVault.Id,\n TenantId = exampleAzurermClientConfig.TenantId,\n ObjectId = exampleAzurermClientConfig.ObjectId,\n KeyPermissions = \"example-value\",\n });\n\n var exampleKubernetesCluster = new Azure.ContainerService.KubernetesCluster(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n DnsPrefix = \"acctestaksexample\",\n DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs\n {\n Name = \"example-value\",\n NodeCount = \"example-value\",\n VmSize = \"example-value\",\n },\n Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs\n {\n Type = \"example-value\",\n },\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n AccountTier = \"example-value\",\n AccountReplicationType = \"example-value\",\n });\n\n var exampleWorkspace = new Azure.MachineLearning.Workspace(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n KeyVaultId = exampleKeyVault.Id,\n StorageAccountId = exampleAccount.Id,\n ApplicationInsightsId = example.Id,\n Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs\n {\n Type = \"example-value\",\n },\n });\n\n var exampleClusterTrustedAccessRoleBinding = new Azure.ContainerService.ClusterTrustedAccessRoleBinding(\"example\", new()\n {\n KubernetesClusterId = exampleKubernetesCluster.Id,\n Name = \"example\",\n Roles = \"example-value\",\n SourceResourceId = exampleWorkspace.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/machinelearning\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"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\texample, err := appinsights.NewInsights(ctx, \"example\", \u0026appinsights.InsightsArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tApplicationType: pulumi.String(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.GetClientConfig(ctx, nil, nil)\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: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tTenantId: pulumi.Any(exampleAzurermClientConfig.TenantId),\n\t\t\tSkuName: pulumi.String(\"example-value\"),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewAccessPolicy(ctx, \"example\", \u0026keyvault.AccessPolicyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tTenantId: pulumi.Any(exampleAzurermClientConfig.TenantId),\n\t\t\tObjectId: pulumi.Any(exampleAzurermClientConfig.ObjectId),\n\t\t\tKeyPermissions: pulumi.StringArray(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKubernetesCluster, err := containerservice.NewKubernetesCluster(ctx, \"example\", \u0026containerservice.KubernetesClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDnsPrefix: pulumi.String(\"acctestaksexample\"),\n\t\t\tDefaultNodePool: \u0026containerservice.KubernetesClusterDefaultNodePoolArgs{\n\t\t\t\tName: pulumi.String(\"example-value\"),\n\t\t\t\tNodeCount: pulumi.Int(\"example-value\"),\n\t\t\t\tVmSize: pulumi.String(\"example-value\"),\n\t\t\t},\n\t\t\tIdentity: \u0026containerservice.KubernetesClusterIdentityArgs{\n\t\t\t\tType: pulumi.String(\"example-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAccountTier: pulumi.String(\"example-value\"),\n\t\t\tAccountReplicationType: pulumi.String(\"example-value\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkspace, err := machinelearning.NewWorkspace(ctx, \"example\", \u0026machinelearning.WorkspaceArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tStorageAccountId: exampleAccount.ID(),\n\t\t\tApplicationInsightsId: example.ID(),\n\t\t\tIdentity: \u0026machinelearning.WorkspaceIdentityArgs{\n\t\t\t\tType: pulumi.String(\"example-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewClusterTrustedAccessRoleBinding(ctx, \"example\", \u0026containerservice.ClusterTrustedAccessRoleBindingArgs{\n\t\t\tKubernetesClusterId: exampleKubernetesCluster.ID(),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tRoles: pulumi.StringArray(\"example-value\"),\n\t\t\tSourceResourceId: exampleWorkspace.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.appinsights.Insights;\nimport com.pulumi.azure.appinsights.InsightsArgs;\nimport com.pulumi.azure.core.CoreFunctions;\nimport com.pulumi.azure.keyvault.KeyVault;\nimport com.pulumi.azure.keyvault.KeyVaultArgs;\nimport com.pulumi.azure.keyvault.AccessPolicy;\nimport com.pulumi.azure.keyvault.AccessPolicyArgs;\nimport com.pulumi.azure.containerservice.KubernetesCluster;\nimport com.pulumi.azure.containerservice.KubernetesClusterArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterIdentityArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.machinelearning.Workspace;\nimport com.pulumi.azure.machinelearning.WorkspaceArgs;\nimport com.pulumi.azure.machinelearning.inputs.WorkspaceIdentityArgs;\nimport com.pulumi.azure.containerservice.ClusterTrustedAccessRoleBinding;\nimport com.pulumi.azure.containerservice.ClusterTrustedAccessRoleBindingArgs;\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 exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var example = new Insights(\"example\", InsightsArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .applicationType(\"example-value\")\n .build());\n\n final var test = CoreFunctions.getClientConfig();\n\n var exampleKeyVault = new KeyVault(\"exampleKeyVault\", KeyVaultArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .tenantId(exampleAzurermClientConfig.tenantId())\n .skuName(\"example-value\")\n .softDeleteRetentionDays(\"example-value\")\n .build());\n\n var exampleAccessPolicy = new AccessPolicy(\"exampleAccessPolicy\", AccessPolicyArgs.builder() \n .keyVaultId(exampleKeyVault.id())\n .tenantId(exampleAzurermClientConfig.tenantId())\n .objectId(exampleAzurermClientConfig.objectId())\n .keyPermissions(\"example-value\")\n .build());\n\n var exampleKubernetesCluster = new KubernetesCluster(\"exampleKubernetesCluster\", KubernetesClusterArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .dnsPrefix(\"acctestaksexample\")\n .defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()\n .name(\"example-value\")\n .nodeCount(\"example-value\")\n .vmSize(\"example-value\")\n .build())\n .identity(KubernetesClusterIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .accountTier(\"example-value\")\n .accountReplicationType(\"example-value\")\n .build());\n\n var exampleWorkspace = new Workspace(\"exampleWorkspace\", WorkspaceArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .keyVaultId(exampleKeyVault.id())\n .storageAccountId(exampleAccount.id())\n .applicationInsightsId(example.id())\n .identity(WorkspaceIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleClusterTrustedAccessRoleBinding = new ClusterTrustedAccessRoleBinding(\"exampleClusterTrustedAccessRoleBinding\", ClusterTrustedAccessRoleBindingArgs.builder() \n .kubernetesClusterId(exampleKubernetesCluster.id())\n .name(\"example\")\n .roles(\"example-value\")\n .sourceResourceId(exampleWorkspace.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:appinsights:Insights\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n applicationType: example-value\n exampleKeyVault:\n type: azure:keyvault:KeyVault\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n tenantId: ${exampleAzurermClientConfig.tenantId}\n skuName: example-value\n softDeleteRetentionDays: example-value\n exampleAccessPolicy:\n type: azure:keyvault:AccessPolicy\n name: example\n properties:\n keyVaultId: ${exampleKeyVault.id}\n tenantId: ${exampleAzurermClientConfig.tenantId}\n objectId: ${exampleAzurermClientConfig.objectId}\n keyPermissions: example-value\n exampleKubernetesCluster:\n type: azure:containerservice:KubernetesCluster\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n dnsPrefix: acctestaksexample\n defaultNodePool:\n name: example-value\n nodeCount: example-value\n vmSize: example-value\n identity:\n type: example-value\n exampleWorkspace:\n type: azure:machinelearning:Workspace\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n keyVaultId: ${exampleKeyVault.id}\n storageAccountId: ${exampleAccount.id}\n applicationInsightsId: ${example.id}\n identity:\n type: example-value\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n name: example\n properties:\n name: example-resources\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n accountTier: example-value\n accountReplicationType: example-value\n exampleClusterTrustedAccessRoleBinding:\n type: azure:containerservice:ClusterTrustedAccessRoleBinding\n name: example\n properties:\n kubernetesClusterId: ${exampleKubernetesCluster.id}\n name: example\n roles: example-value\n sourceResourceId: ${exampleWorkspace.id}\nvariables:\n test:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn existing Kubernetes Cluster Trusted Access Role Binding can be imported into Terraform using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:containerservice/clusterTrustedAccessRoleBinding:ClusterTrustedAccessRoleBinding example /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{managedClusterName}/trustedAccessRoleBindings/{trustedAccessRoleBindingName}\n```\n\n* Where `{subscriptionId}` is the ID of the Azure Subscription where the Kubernetes Cluster Trusted Access Role Binding exists. For example `12345678-1234-9876-4563-123456789012`.\n\n* Where `{resourceGroupName}` is the name of Resource Group where this Kubernetes Cluster Trusted Access Role Binding exists. For example `example-resource-group`.\n\n* Where `{managedClusterName}` is the name of the Managed Cluster. For example `managedClusterValue`.\n\n* Where `{trustedAccessRoleBindingName}` is the name of the Trusted Access Role Binding. For example `trustedAccessRoleBindingValue`.\n\n", + "description": "\u003c!-- Note: This documentation is generated. Any manual changes will be overwritten --\u003e\n\nManages a Kubernetes Cluster Trusted Access Role Binding\n\u003e **Note:** This Resource is in **Preview** to use this you must be opted into the Preview. You can do this by running `az feature register --namespace Microsoft.ContainerService --name TrustedAccessPreview` and then `az provider register -n Microsoft.ContainerService`\n.\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.appinsights.Insights;\nimport com.pulumi.azure.appinsights.InsightsArgs;\nimport com.pulumi.azure.core.CoreFunctions;\nimport com.pulumi.azure.keyvault.KeyVault;\nimport com.pulumi.azure.keyvault.KeyVaultArgs;\nimport com.pulumi.azure.keyvault.AccessPolicy;\nimport com.pulumi.azure.keyvault.AccessPolicyArgs;\nimport com.pulumi.azure.containerservice.KubernetesCluster;\nimport com.pulumi.azure.containerservice.KubernetesClusterArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterIdentityArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.machinelearning.Workspace;\nimport com.pulumi.azure.machinelearning.WorkspaceArgs;\nimport com.pulumi.azure.machinelearning.inputs.WorkspaceIdentityArgs;\nimport com.pulumi.azure.containerservice.ClusterTrustedAccessRoleBinding;\nimport com.pulumi.azure.containerservice.ClusterTrustedAccessRoleBindingArgs;\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 exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var example = new Insights(\"example\", InsightsArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .applicationType(\"example-value\")\n .build());\n\n final var test = CoreFunctions.getClientConfig();\n\n var exampleKeyVault = new KeyVault(\"exampleKeyVault\", KeyVaultArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .tenantId(exampleAzurermClientConfig.tenantId())\n .skuName(\"example-value\")\n .softDeleteRetentionDays(\"example-value\")\n .build());\n\n var exampleAccessPolicy = new AccessPolicy(\"exampleAccessPolicy\", AccessPolicyArgs.builder() \n .keyVaultId(exampleKeyVault.id())\n .tenantId(exampleAzurermClientConfig.tenantId())\n .objectId(exampleAzurermClientConfig.objectId())\n .keyPermissions(\"example-value\")\n .build());\n\n var exampleKubernetesCluster = new KubernetesCluster(\"exampleKubernetesCluster\", KubernetesClusterArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .dnsPrefix(\"acctestaksexample\")\n .defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()\n .name(\"example-value\")\n .nodeCount(\"example-value\")\n .vmSize(\"example-value\")\n .build())\n .upgradeSettings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .identity(KubernetesClusterIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .accountTier(\"example-value\")\n .accountReplicationType(\"example-value\")\n .build());\n\n var exampleWorkspace = new Workspace(\"exampleWorkspace\", WorkspaceArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .keyVaultId(exampleKeyVault.id())\n .storageAccountId(exampleAccount.id())\n .applicationInsightsId(example.id())\n .identity(WorkspaceIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleClusterTrustedAccessRoleBinding = new ClusterTrustedAccessRoleBinding(\"exampleClusterTrustedAccessRoleBinding\", ClusterTrustedAccessRoleBindingArgs.builder() \n .kubernetesClusterId(exampleKubernetesCluster.id())\n .name(\"example\")\n .roles(\"example-value\")\n .sourceResourceId(exampleWorkspace.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:appinsights:Insights\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n applicationType: example-value\n exampleKeyVault:\n type: azure:keyvault:KeyVault\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n tenantId: ${exampleAzurermClientConfig.tenantId}\n skuName: example-value\n softDeleteRetentionDays: example-value\n exampleAccessPolicy:\n type: azure:keyvault:AccessPolicy\n name: example\n properties:\n keyVaultId: ${exampleKeyVault.id}\n tenantId: ${exampleAzurermClientConfig.tenantId}\n objectId: ${exampleAzurermClientConfig.objectId}\n keyPermissions: example-value\n exampleKubernetesCluster:\n type: azure:containerservice:KubernetesCluster\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n dnsPrefix: acctestaksexample\n defaultNodePool:\n name: example-value\n nodeCount: example-value\n vmSize: example-value\n upgradeSettings:\n - maxSurge: example-value\n identity:\n type: example-value\n exampleWorkspace:\n type: azure:machinelearning:Workspace\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n keyVaultId: ${exampleKeyVault.id}\n storageAccountId: ${exampleAccount.id}\n applicationInsightsId: ${example.id}\n identity:\n type: example-value\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n name: example\n properties:\n name: example-resources\n location: West Europe\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n accountTier: example-value\n accountReplicationType: example-value\n exampleClusterTrustedAccessRoleBinding:\n type: azure:containerservice:ClusterTrustedAccessRoleBinding\n name: example\n properties:\n kubernetesClusterId: ${exampleKubernetesCluster.id}\n name: example\n roles: example-value\n sourceResourceId: ${exampleWorkspace.id}\nvariables:\n test:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn existing Kubernetes Cluster Trusted Access Role Binding can be imported into Terraform using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:containerservice/clusterTrustedAccessRoleBinding:ClusterTrustedAccessRoleBinding example /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/managedClusters/{managedClusterName}/trustedAccessRoleBindings/{trustedAccessRoleBindingName}\n```\n\n* Where `{subscriptionId}` is the ID of the Azure Subscription where the Kubernetes Cluster Trusted Access Role Binding exists. For example `12345678-1234-9876-4563-123456789012`.\n\n* Where `{resourceGroupName}` is the name of Resource Group where this Kubernetes Cluster Trusted Access Role Binding exists. For example `example-resource-group`.\n\n* Where `{managedClusterName}` is the name of the Managed Cluster. For example `managedClusterValue`.\n\n* Where `{trustedAccessRoleBindingName}` is the name of the Trusted Access Role Binding. For example `trustedAccessRoleBindingValue`.\n\n", "properties": { "kubernetesClusterId": { "type": "string", @@ -149508,7 +149726,7 @@ } }, "azure:containerservice/fleetMember:FleetMember": { - "description": "\u003c!-- Note: This documentation is generated. Any manual changes will be overwritten --\u003e\n\nManages a Kubernetes Fleet Member.\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 exampleResourceGroup = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"West Europe\",\n});\nconst example = new azure.containerservice.KubernetesCluster(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n dnsPrefix: \"acctestaksexample\",\n defaultNodePool: {\n name: \"example-value\",\n nodeCount: \"example-value\",\n vmSize: \"example-value\",\n },\n identity: {\n type: \"example-value\",\n },\n});\nconst exampleKubernetesFleetManager = new azure.containerservice.KubernetesFleetManager(\"example\", {\n name: \"example\",\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleFleetMember = new azure.containerservice.FleetMember(\"example\", {\n kubernetesClusterId: example.id,\n kubernetesFleetId: exampleKubernetesFleetManager.id,\n name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample = azure.containerservice.KubernetesCluster(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n dns_prefix=\"acctestaksexample\",\n default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs(\n name=\"example-value\",\n node_count=\"example-value\",\n vm_size=\"example-value\",\n ),\n identity=azure.containerservice.KubernetesClusterIdentityArgs(\n type=\"example-value\",\n ))\nexample_kubernetes_fleet_manager = azure.containerservice.KubernetesFleetManager(\"example\",\n name=\"example\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name)\nexample_fleet_member = azure.containerservice.FleetMember(\"example\",\n kubernetes_cluster_id=example.id,\n kubernetes_fleet_id=example_kubernetes_fleet_manager.id,\n name=\"example\")\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 exampleResourceGroup = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var example = new Azure.ContainerService.KubernetesCluster(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n DnsPrefix = \"acctestaksexample\",\n DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs\n {\n Name = \"example-value\",\n NodeCount = \"example-value\",\n VmSize = \"example-value\",\n },\n Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs\n {\n Type = \"example-value\",\n },\n });\n\n var exampleKubernetesFleetManager = new Azure.ContainerService.KubernetesFleetManager(\"example\", new()\n {\n Name = \"example\",\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n });\n\n var exampleFleetMember = new Azure.ContainerService.FleetMember(\"example\", new()\n {\n KubernetesClusterId = example.Id,\n KubernetesFleetId = exampleKubernetesFleetManager.Id,\n Name = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/containerservice\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"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\texample, err := containerservice.NewKubernetesCluster(ctx, \"example\", \u0026containerservice.KubernetesClusterArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tDnsPrefix: pulumi.String(\"acctestaksexample\"),\n\t\t\tDefaultNodePool: \u0026containerservice.KubernetesClusterDefaultNodePoolArgs{\n\t\t\t\tName: pulumi.String(\"example-value\"),\n\t\t\t\tNodeCount: pulumi.Int(\"example-value\"),\n\t\t\t\tVmSize: pulumi.String(\"example-value\"),\n\t\t\t},\n\t\t\tIdentity: \u0026containerservice.KubernetesClusterIdentityArgs{\n\t\t\t\tType: pulumi.String(\"example-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKubernetesFleetManager, err := containerservice.NewKubernetesFleetManager(ctx, \"example\", \u0026containerservice.KubernetesFleetManagerArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = containerservice.NewFleetMember(ctx, \"example\", \u0026containerservice.FleetMemberArgs{\n\t\t\tKubernetesClusterId: example.ID(),\n\t\t\tKubernetesFleetId: exampleKubernetesFleetManager.ID(),\n\t\t\tName: pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.containerservice.KubernetesCluster;\nimport com.pulumi.azure.containerservice.KubernetesClusterArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterIdentityArgs;\nimport com.pulumi.azure.containerservice.KubernetesFleetManager;\nimport com.pulumi.azure.containerservice.KubernetesFleetManagerArgs;\nimport com.pulumi.azure.containerservice.FleetMember;\nimport com.pulumi.azure.containerservice.FleetMemberArgs;\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 exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var example = new KubernetesCluster(\"example\", KubernetesClusterArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .dnsPrefix(\"acctestaksexample\")\n .defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()\n .name(\"example-value\")\n .nodeCount(\"example-value\")\n .vmSize(\"example-value\")\n .build())\n .identity(KubernetesClusterIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleKubernetesFleetManager = new KubernetesFleetManager(\"exampleKubernetesFleetManager\", KubernetesFleetManagerArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .build());\n\n var exampleFleetMember = new FleetMember(\"exampleFleetMember\", FleetMemberArgs.builder() \n .kubernetesClusterId(example.id())\n .kubernetesFleetId(exampleKubernetesFleetManager.id())\n .name(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:containerservice:KubernetesCluster\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n dnsPrefix: acctestaksexample\n defaultNodePool:\n name: example-value\n nodeCount: example-value\n vmSize: example-value\n identity:\n type: example-value\n exampleKubernetesFleetManager:\n type: azure:containerservice:KubernetesFleetManager\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n name: example\n properties:\n name: example-resources\n location: West Europe\n exampleFleetMember:\n type: azure:containerservice:FleetMember\n name: example\n properties:\n kubernetesClusterId: ${example.id}\n kubernetesFleetId: ${exampleKubernetesFleetManager.id}\n name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn existing Kubernetes Fleet Member can be imported into Terraform using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:containerservice/fleetMember:FleetMember example /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/fleets/{fleetName}/members/{memberName}\n```\n\n* Where `{subscriptionId}` is the ID of the Azure Subscription where the Kubernetes Fleet Member exists. For example `12345678-1234-9876-4563-123456789012`.\n\n* Where `{resourceGroupName}` is the name of Resource Group where this Kubernetes Fleet Member exists. For example `example-resource-group`.\n\n* Where `{fleetName}` is the name of the Fleet. For example `fleetValue`.\n\n* Where `{memberName}` is the name of the Member. For example `memberValue`.\n\n", + "description": "\u003c!-- Note: This documentation is generated. Any manual changes will be overwritten --\u003e\n\nManages a Kubernetes Fleet Member.\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.containerservice.KubernetesCluster;\nimport com.pulumi.azure.containerservice.KubernetesClusterArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterDefaultNodePoolArgs;\nimport com.pulumi.azure.containerservice.inputs.KubernetesClusterIdentityArgs;\nimport com.pulumi.azure.containerservice.KubernetesFleetManager;\nimport com.pulumi.azure.containerservice.KubernetesFleetManagerArgs;\nimport com.pulumi.azure.containerservice.FleetMember;\nimport com.pulumi.azure.containerservice.FleetMemberArgs;\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 exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .name(\"example-resources\")\n .location(\"West Europe\")\n .build());\n\n var example = new KubernetesCluster(\"example\", KubernetesClusterArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .dnsPrefix(\"acctestaksexample\")\n .defaultNodePool(KubernetesClusterDefaultNodePoolArgs.builder()\n .name(\"example-value\")\n .nodeCount(\"example-value\")\n .vmSize(\"example-value\")\n .build())\n .upgradeSettings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .identity(KubernetesClusterIdentityArgs.builder()\n .type(\"example-value\")\n .build())\n .build());\n\n var exampleKubernetesFleetManager = new KubernetesFleetManager(\"exampleKubernetesFleetManager\", KubernetesFleetManagerArgs.builder() \n .name(\"example\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .build());\n\n var exampleFleetMember = new FleetMember(\"exampleFleetMember\", FleetMemberArgs.builder() \n .kubernetesClusterId(example.id())\n .kubernetesFleetId(exampleKubernetesFleetManager.id())\n .name(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:containerservice:KubernetesCluster\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n dnsPrefix: acctestaksexample\n defaultNodePool:\n name: example-value\n nodeCount: example-value\n vmSize: example-value\n upgradeSettings:\n - maxSurge: example-value\n identity:\n type: example-value\n exampleKubernetesFleetManager:\n type: azure:containerservice:KubernetesFleetManager\n name: example\n properties:\n name: example\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n name: example\n properties:\n name: example-resources\n location: West Europe\n exampleFleetMember:\n type: azure:containerservice:FleetMember\n name: example\n properties:\n kubernetesClusterId: ${example.id}\n kubernetesFleetId: ${exampleKubernetesFleetManager.id}\n name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAn existing Kubernetes Fleet Member can be imported into Terraform using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:containerservice/fleetMember:FleetMember example /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ContainerService/fleets/{fleetName}/members/{memberName}\n```\n\n* Where `{subscriptionId}` is the ID of the Azure Subscription where the Kubernetes Fleet Member exists. For example `12345678-1234-9876-4563-123456789012`.\n\n* Where `{resourceGroupName}` is the name of Resource Group where this Kubernetes Fleet Member exists. For example `example-resource-group`.\n\n* Where `{fleetName}` is the name of the Fleet. For example `fleetValue`.\n\n* Where `{memberName}` is the name of the Member. For example `memberValue`.\n\n", "properties": { "group": { "type": "string", @@ -162674,6 +162892,9 @@ "type": "string", "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n" }, + "managedDiskCmkKeyVaultId": { + "type": "string" + }, "managedDiskCmkKeyVaultKeyId": { "type": "string", "description": "Customer managed encryption properties for the Databricks Workspace managed disks.\n" @@ -162695,7 +162916,10 @@ }, "managedResourceGroupName": { "type": "string", - "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n\n\u003e **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.\n" + "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n\n\u003e **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.\n" + }, + "managedServicesCmkKeyVaultId": { + "type": "string" }, "managedServicesCmkKeyVaultKeyId": { "type": "string", @@ -162719,7 +162943,7 @@ }, "sku": { "type": "string", - "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.\n\n\u003e **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.\n" + "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.\n\n\u003e **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.\n" }, "storageAccountIdentities": { "type": "array", @@ -162783,6 +163007,9 @@ "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n", "willReplaceOnChanges": true }, + "managedDiskCmkKeyVaultId": { + "type": "string" + }, "managedDiskCmkKeyVaultKeyId": { "type": "string", "description": "Customer managed encryption properties for the Databricks Workspace managed disks.\n" @@ -162793,9 +163020,12 @@ }, "managedResourceGroupName": { "type": "string", - "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n\n\u003e **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.\n", + "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n\n\u003e **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.\n", "willReplaceOnChanges": true }, + "managedServicesCmkKeyVaultId": { + "type": "string" + }, "managedServicesCmkKeyVaultKeyId": { "type": "string", "description": "Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts).\n" @@ -162820,7 +163050,7 @@ }, "sku": { "type": "string", - "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.\n\n\u003e **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.\n" + "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.\n\n\u003e **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.\n" }, "tags": { "type": "object", @@ -162864,6 +163094,9 @@ "description": "Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created.\n", "willReplaceOnChanges": true }, + "managedDiskCmkKeyVaultId": { + "type": "string" + }, "managedDiskCmkKeyVaultKeyId": { "type": "string", "description": "Customer managed encryption properties for the Databricks Workspace managed disks.\n" @@ -162885,9 +163118,12 @@ }, "managedResourceGroupName": { "type": "string", - "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n\n\u003e **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.\n", + "description": "The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created.\n\n\u003e **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted.\n", "willReplaceOnChanges": true }, + "managedServicesCmkKeyVaultId": { + "type": "string" + }, "managedServicesCmkKeyVaultKeyId": { "type": "string", "description": "Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts).\n" @@ -162912,7 +163148,7 @@ }, "sku": { "type": "string", - "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.\n\n\u003e **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.\n" + "description": "The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`.\n\n\u003e **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created.\n" }, "storageAccountIdentities": { "type": "array", @@ -162989,8 +163225,11 @@ } }, "azure:databricks/workspaceRootDbfsCustomerManagedKey:WorkspaceRootDbfsCustomerManagedKey": { - "description": "Manages a Customer Managed Key for the Databricks Workspaces root Databricks File System(DBFS)\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-resources\",\n location: \"West Europe\",\n});\nconst exampleWorkspace = new azure.databricks.Workspace(\"example\", {\n name: \"databricks-test\",\n resourceGroupName: example.name,\n location: example.location,\n sku: \"premium\",\n customerManagedKeyEnabled: true,\n tags: {\n Environment: \"Production\",\n },\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"example\", {\n name: \"examplekeyvault\",\n location: example.location,\n resourceGroupName: example.name,\n tenantId: current.then(current =\u003e current.tenantId),\n skuName: \"premium\",\n purgeProtectionEnabled: true,\n softDeleteRetentionDays: 7,\n});\nconst exampleKey = new azure.keyvault.Key(\"example\", {\n name: \"example-certificate\",\n keyVaultId: exampleKeyVault.id,\n keyType: \"RSA\",\n keySize: 2048,\n keyOpts: [\n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\",\n ],\n});\nconst exampleWorkspaceRootDbfsCustomerManagedKey = new azure.databricks.WorkspaceRootDbfsCustomerManagedKey(\"example\", {\n workspaceId: exampleWorkspace.id,\n keyVaultKeyId: exampleKey.id,\n});\nconst terraform = new azure.keyvault.AccessPolicy(\"terraform\", {\n keyVaultId: exampleKeyVault.id,\n tenantId: exampleKeyVault.tenantId,\n objectId: current.then(current =\u003e current.objectId),\n keyPermissions: [\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\",\n ],\n});\nconst databricks = new azure.keyvault.AccessPolicy(\"databricks\", {\n keyVaultId: exampleKeyVault.id,\n tenantId: exampleWorkspace.storageAccountIdentities.apply(storageAccountIdentities =\u003e storageAccountIdentities[0].tenantId),\n objectId: exampleWorkspace.storageAccountIdentities.apply(storageAccountIdentities =\u003e storageAccountIdentities[0].principalId),\n keyPermissions: [\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n ],\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-resources\",\n location=\"West Europe\")\nexample_workspace = azure.databricks.Workspace(\"example\",\n name=\"databricks-test\",\n resource_group_name=example.name,\n location=example.location,\n sku=\"premium\",\n customer_managed_key_enabled=True,\n tags={\n \"Environment\": \"Production\",\n })\nexample_key_vault = azure.keyvault.KeyVault(\"example\",\n name=\"examplekeyvault\",\n location=example.location,\n resource_group_name=example.name,\n tenant_id=current.tenant_id,\n sku_name=\"premium\",\n purge_protection_enabled=True,\n soft_delete_retention_days=7)\nexample_key = azure.keyvault.Key(\"example\",\n name=\"example-certificate\",\n key_vault_id=example_key_vault.id,\n key_type=\"RSA\",\n key_size=2048,\n key_opts=[\n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\",\n ])\nexample_workspace_root_dbfs_customer_managed_key = azure.databricks.WorkspaceRootDbfsCustomerManagedKey(\"example\",\n workspace_id=example_workspace.id,\n key_vault_key_id=example_key.id)\nterraform = azure.keyvault.AccessPolicy(\"terraform\",\n key_vault_id=example_key_vault.id,\n tenant_id=example_key_vault.tenant_id,\n object_id=current.object_id,\n key_permissions=[\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\",\n ])\ndatabricks = azure.keyvault.AccessPolicy(\"databricks\",\n key_vault_id=example_key_vault.id,\n tenant_id=example_workspace.storage_account_identities[0].tenant_id,\n object_id=example_workspace.storage_account_identities[0].principal_id,\n key_permissions=[\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\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 current = Azure.Core.GetClientConfig.Invoke();\n\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleWorkspace = new Azure.DataBricks.Workspace(\"example\", new()\n {\n Name = \"databricks-test\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n Sku = \"premium\",\n CustomerManagedKeyEnabled = true,\n Tags = \n {\n { \"Environment\", \"Production\" },\n },\n });\n\n var exampleKeyVault = new Azure.KeyVault.KeyVault(\"example\", new()\n {\n Name = \"examplekeyvault\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n TenantId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.TenantId),\n SkuName = \"premium\",\n PurgeProtectionEnabled = true,\n SoftDeleteRetentionDays = 7,\n });\n\n var exampleKey = new Azure.KeyVault.Key(\"example\", new()\n {\n Name = \"example-certificate\",\n KeyVaultId = exampleKeyVault.Id,\n KeyType = \"RSA\",\n KeySize = 2048,\n KeyOpts = new[]\n {\n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\",\n },\n });\n\n var exampleWorkspaceRootDbfsCustomerManagedKey = new Azure.DataBricks.WorkspaceRootDbfsCustomerManagedKey(\"example\", new()\n {\n WorkspaceId = exampleWorkspace.Id,\n KeyVaultKeyId = exampleKey.Id,\n });\n\n var terraform = new Azure.KeyVault.AccessPolicy(\"terraform\", new()\n {\n KeyVaultId = exampleKeyVault.Id,\n TenantId = exampleKeyVault.TenantId,\n ObjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.ObjectId),\n KeyPermissions = new[]\n {\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\",\n },\n });\n\n var databricks = new Azure.KeyVault.AccessPolicy(\"databricks\", new()\n {\n KeyVaultId = exampleKeyVault.Id,\n TenantId = exampleWorkspace.StorageAccountIdentities.Apply(storageAccountIdentities =\u003e storageAccountIdentities[0].TenantId),\n ObjectId = exampleWorkspace.StorageAccountIdentities.Apply(storageAccountIdentities =\u003e storageAccountIdentities[0].PrincipalId),\n KeyPermissions = new[]\n {\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/databricks\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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\texampleWorkspace, err := databricks.NewWorkspace(ctx, \"example\", \u0026databricks.WorkspaceArgs{\n\t\t\tName: pulumi.String(\"databricks-test\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tSku: pulumi.String(\"premium\"),\n\t\t\tCustomerManagedKeyEnabled: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"example\", \u0026keyvault.KeyVaultArgs{\n\t\t\tName: pulumi.String(\"examplekeyvault\"),\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\tPurgeProtectionEnabled: pulumi.Bool(true),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKey, err := keyvault.NewKey(ctx, \"example\", \u0026keyvault.KeyArgs{\n\t\t\tName: pulumi.String(\"example-certificate\"),\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tKeyType: pulumi.String(\"RSA\"),\n\t\t\tKeySize: pulumi.Int(2048),\n\t\t\tKeyOpts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"decrypt\"),\n\t\t\t\tpulumi.String(\"encrypt\"),\n\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\tpulumi.String(\"unwrapKey\"),\n\t\t\t\tpulumi.String(\"verify\"),\n\t\t\t\tpulumi.String(\"wrapKey\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databricks.NewWorkspaceRootDbfsCustomerManagedKey(ctx, \"example\", \u0026databricks.WorkspaceRootDbfsCustomerManagedKeyArgs{\n\t\t\tWorkspaceId: exampleWorkspace.ID(),\n\t\t\tKeyVaultKeyId: exampleKey.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewAccessPolicy(ctx, \"terraform\", \u0026keyvault.AccessPolicyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tTenantId: exampleKeyVault.TenantId,\n\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\tpulumi.String(\"Purge\"),\n\t\t\t\tpulumi.String(\"Recover\"),\n\t\t\t\tpulumi.String(\"Update\"),\n\t\t\t\tpulumi.String(\"List\"),\n\t\t\t\tpulumi.String(\"Decrypt\"),\n\t\t\t\tpulumi.String(\"Sign\"),\n\t\t\t\tpulumi.String(\"GetRotationPolicy\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewAccessPolicy(ctx, \"databricks\", \u0026keyvault.AccessPolicyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tTenantId: exampleWorkspace.StorageAccountIdentities.ApplyT(func(storageAccountIdentities []databricks.WorkspaceStorageAccountIdentity) (*string, error) {\n\t\t\t\treturn \u0026storageAccountIdentities[0].TenantId, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\tObjectId: exampleWorkspace.StorageAccountIdentities.ApplyT(func(storageAccountIdentities []databricks.WorkspaceStorageAccountIdentity) (*string, error) {\n\t\t\t\treturn \u0026storageAccountIdentities[0].PrincipalId, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\tpulumi.String(\"Purge\"),\n\t\t\t\tpulumi.String(\"Recover\"),\n\t\t\t\tpulumi.String(\"Update\"),\n\t\t\t\tpulumi.String(\"List\"),\n\t\t\t\tpulumi.String(\"Decrypt\"),\n\t\t\t\tpulumi.String(\"Sign\"),\n\t\t\t},\n\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.databricks.Workspace;\nimport com.pulumi.azure.databricks.WorkspaceArgs;\nimport com.pulumi.azure.keyvault.KeyVault;\nimport com.pulumi.azure.keyvault.KeyVaultArgs;\nimport com.pulumi.azure.keyvault.Key;\nimport com.pulumi.azure.keyvault.KeyArgs;\nimport com.pulumi.azure.databricks.WorkspaceRootDbfsCustomerManagedKey;\nimport com.pulumi.azure.databricks.WorkspaceRootDbfsCustomerManagedKeyArgs;\nimport com.pulumi.azure.keyvault.AccessPolicy;\nimport com.pulumi.azure.keyvault.AccessPolicyArgs;\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-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleWorkspace = new Workspace(\"exampleWorkspace\", WorkspaceArgs.builder() \n .name(\"databricks-test\")\n .resourceGroupName(example.name())\n .location(example.location())\n .sku(\"premium\")\n .customerManagedKeyEnabled(true)\n .tags(Map.of(\"Environment\", \"Production\"))\n .build());\n\n var exampleKeyVault = new KeyVault(\"exampleKeyVault\", KeyVaultArgs.builder() \n .name(\"examplekeyvault\")\n .location(example.location())\n .resourceGroupName(example.name())\n .tenantId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.tenantId()))\n .skuName(\"premium\")\n .purgeProtectionEnabled(true)\n .softDeleteRetentionDays(7)\n .build());\n\n var exampleKey = new Key(\"exampleKey\", KeyArgs.builder() \n .name(\"example-certificate\")\n .keyVaultId(exampleKeyVault.id())\n .keyType(\"RSA\")\n .keySize(2048)\n .keyOpts( \n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\")\n .build());\n\n var exampleWorkspaceRootDbfsCustomerManagedKey = new WorkspaceRootDbfsCustomerManagedKey(\"exampleWorkspaceRootDbfsCustomerManagedKey\", WorkspaceRootDbfsCustomerManagedKeyArgs.builder() \n .workspaceId(exampleWorkspace.id())\n .keyVaultKeyId(exampleKey.id())\n .build());\n\n var terraform = new AccessPolicy(\"terraform\", AccessPolicyArgs.builder() \n .keyVaultId(exampleKeyVault.id())\n .tenantId(exampleKeyVault.tenantId())\n .objectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.objectId()))\n .keyPermissions( \n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\")\n .build());\n\n var databricks = new AccessPolicy(\"databricks\", AccessPolicyArgs.builder() \n .keyVaultId(exampleKeyVault.id())\n .tenantId(exampleWorkspace.storageAccountIdentities().applyValue(storageAccountIdentities -\u003e storageAccountIdentities[0].tenantId()))\n .objectId(exampleWorkspace.storageAccountIdentities().applyValue(storageAccountIdentities -\u003e storageAccountIdentities[0].principalId()))\n .keyPermissions( \n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\")\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 exampleWorkspace:\n type: azure:databricks:Workspace\n name: example\n properties:\n name: databricks-test\n resourceGroupName: ${example.name}\n location: ${example.location}\n sku: premium\n customerManagedKeyEnabled: true\n tags:\n Environment: Production\n exampleWorkspaceRootDbfsCustomerManagedKey:\n type: azure:databricks:WorkspaceRootDbfsCustomerManagedKey\n name: example\n properties:\n workspaceId: ${exampleWorkspace.id}\n keyVaultKeyId: ${exampleKey.id}\n exampleKeyVault:\n type: azure:keyvault:KeyVault\n name: example\n properties:\n name: examplekeyvault\n location: ${example.location}\n resourceGroupName: ${example.name}\n tenantId: ${current.tenantId}\n skuName: premium\n purgeProtectionEnabled: true\n softDeleteRetentionDays: 7\n exampleKey:\n type: azure:keyvault:Key\n name: example\n properties:\n name: example-certificate\n keyVaultId: ${exampleKeyVault.id}\n keyType: RSA\n keySize: 2048\n keyOpts:\n - decrypt\n - encrypt\n - sign\n - unwrapKey\n - verify\n - wrapKey\n terraform:\n type: azure:keyvault:AccessPolicy\n properties:\n keyVaultId: ${exampleKeyVault.id}\n tenantId: ${exampleKeyVault.tenantId}\n objectId: ${current.objectId}\n keyPermissions:\n - Create\n - Delete\n - Get\n - Purge\n - Recover\n - Update\n - List\n - Decrypt\n - Sign\n - GetRotationPolicy\n databricks:\n type: azure:keyvault:AccessPolicy\n properties:\n keyVaultId: ${exampleKeyVault.id}\n tenantId: ${exampleWorkspace.storageAccountIdentities[0].tenantId}\n objectId: ${exampleWorkspace.storageAccountIdentities[0].principalId}\n keyPermissions:\n - Create\n - Delete\n - Get\n - Purge\n - Recover\n - Update\n - List\n - Decrypt\n - Sign\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example HCL Configurations\n\n* Databricks Workspace with Root Databricks File System Customer Managed Keys\n* Databricks Workspace with Customer Managed Keys for Managed Services\n* Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys\n\n## Import\n\nDatabricks Workspace Root DBFS Customer Managed Key can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:databricks/workspaceRootDbfsCustomerManagedKey:WorkspaceRootDbfsCustomerManagedKey workspace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Databricks/workspaces/workspace1\n```\n\n", + "description": "Manages a Customer Managed Key for the Databricks Workspaces Root Databricks File System(DBFS)\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-resources\",\n location: \"West Europe\",\n});\nconst exampleWorkspace = new azure.databricks.Workspace(\"example\", {\n name: \"databricks-test\",\n resourceGroupName: example.name,\n location: example.location,\n sku: \"premium\",\n customerManagedKeyEnabled: true,\n tags: {\n Environment: \"Production\",\n },\n});\nconst exampleKeyVault = new azure.keyvault.KeyVault(\"example\", {\n name: \"examplekeyvault\",\n location: example.location,\n resourceGroupName: example.name,\n tenantId: current.then(current =\u003e current.tenantId),\n skuName: \"premium\",\n purgeProtectionEnabled: true,\n softDeleteRetentionDays: 7,\n});\nconst exampleKey = new azure.keyvault.Key(\"example\", {\n name: \"example-certificate\",\n keyVaultId: exampleKeyVault.id,\n keyType: \"RSA\",\n keySize: 2048,\n keyOpts: [\n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\",\n ],\n});\nconst exampleWorkspaceRootDbfsCustomerManagedKey = new azure.databricks.WorkspaceRootDbfsCustomerManagedKey(\"example\", {\n workspaceId: exampleWorkspace.id,\n keyVaultKeyId: exampleKey.id,\n});\nconst terraform = new azure.keyvault.AccessPolicy(\"terraform\", {\n keyVaultId: exampleKeyVault.id,\n tenantId: exampleKeyVault.tenantId,\n objectId: current.then(current =\u003e current.objectId),\n keyPermissions: [\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\",\n ],\n});\nconst databricks = new azure.keyvault.AccessPolicy(\"databricks\", {\n keyVaultId: exampleKeyVault.id,\n tenantId: exampleWorkspace.storageAccountIdentities.apply(storageAccountIdentities =\u003e storageAccountIdentities[0].tenantId),\n objectId: exampleWorkspace.storageAccountIdentities.apply(storageAccountIdentities =\u003e storageAccountIdentities[0].principalId),\n keyPermissions: [\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n ],\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-resources\",\n location=\"West Europe\")\nexample_workspace = azure.databricks.Workspace(\"example\",\n name=\"databricks-test\",\n resource_group_name=example.name,\n location=example.location,\n sku=\"premium\",\n customer_managed_key_enabled=True,\n tags={\n \"Environment\": \"Production\",\n })\nexample_key_vault = azure.keyvault.KeyVault(\"example\",\n name=\"examplekeyvault\",\n location=example.location,\n resource_group_name=example.name,\n tenant_id=current.tenant_id,\n sku_name=\"premium\",\n purge_protection_enabled=True,\n soft_delete_retention_days=7)\nexample_key = azure.keyvault.Key(\"example\",\n name=\"example-certificate\",\n key_vault_id=example_key_vault.id,\n key_type=\"RSA\",\n key_size=2048,\n key_opts=[\n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\",\n ])\nexample_workspace_root_dbfs_customer_managed_key = azure.databricks.WorkspaceRootDbfsCustomerManagedKey(\"example\",\n workspace_id=example_workspace.id,\n key_vault_key_id=example_key.id)\nterraform = azure.keyvault.AccessPolicy(\"terraform\",\n key_vault_id=example_key_vault.id,\n tenant_id=example_key_vault.tenant_id,\n object_id=current.object_id,\n key_permissions=[\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\",\n ])\ndatabricks = azure.keyvault.AccessPolicy(\"databricks\",\n key_vault_id=example_key_vault.id,\n tenant_id=example_workspace.storage_account_identities[0].tenant_id,\n object_id=example_workspace.storage_account_identities[0].principal_id,\n key_permissions=[\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\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 current = Azure.Core.GetClientConfig.Invoke();\n\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"West Europe\",\n });\n\n var exampleWorkspace = new Azure.DataBricks.Workspace(\"example\", new()\n {\n Name = \"databricks-test\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n Sku = \"premium\",\n CustomerManagedKeyEnabled = true,\n Tags = \n {\n { \"Environment\", \"Production\" },\n },\n });\n\n var exampleKeyVault = new Azure.KeyVault.KeyVault(\"example\", new()\n {\n Name = \"examplekeyvault\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n TenantId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.TenantId),\n SkuName = \"premium\",\n PurgeProtectionEnabled = true,\n SoftDeleteRetentionDays = 7,\n });\n\n var exampleKey = new Azure.KeyVault.Key(\"example\", new()\n {\n Name = \"example-certificate\",\n KeyVaultId = exampleKeyVault.Id,\n KeyType = \"RSA\",\n KeySize = 2048,\n KeyOpts = new[]\n {\n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\",\n },\n });\n\n var exampleWorkspaceRootDbfsCustomerManagedKey = new Azure.DataBricks.WorkspaceRootDbfsCustomerManagedKey(\"example\", new()\n {\n WorkspaceId = exampleWorkspace.Id,\n KeyVaultKeyId = exampleKey.Id,\n });\n\n var terraform = new Azure.KeyVault.AccessPolicy(\"terraform\", new()\n {\n KeyVaultId = exampleKeyVault.Id,\n TenantId = exampleKeyVault.TenantId,\n ObjectId = current.Apply(getClientConfigResult =\u003e getClientConfigResult.ObjectId),\n KeyPermissions = new[]\n {\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\",\n },\n });\n\n var databricks = new Azure.KeyVault.AccessPolicy(\"databricks\", new()\n {\n KeyVaultId = exampleKeyVault.Id,\n TenantId = exampleWorkspace.StorageAccountIdentities.Apply(storageAccountIdentities =\u003e storageAccountIdentities[0].TenantId),\n ObjectId = exampleWorkspace.StorageAccountIdentities.Apply(storageAccountIdentities =\u003e storageAccountIdentities[0].PrincipalId),\n KeyPermissions = new[]\n {\n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/databricks\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\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\texampleWorkspace, err := databricks.NewWorkspace(ctx, \"example\", \u0026databricks.WorkspaceArgs{\n\t\t\tName: pulumi.String(\"databricks-test\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tSku: pulumi.String(\"premium\"),\n\t\t\tCustomerManagedKeyEnabled: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKeyVault, err := keyvault.NewKeyVault(ctx, \"example\", \u0026keyvault.KeyVaultArgs{\n\t\t\tName: pulumi.String(\"examplekeyvault\"),\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\tPurgeProtectionEnabled: pulumi.Bool(true),\n\t\t\tSoftDeleteRetentionDays: pulumi.Int(7),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleKey, err := keyvault.NewKey(ctx, \"example\", \u0026keyvault.KeyArgs{\n\t\t\tName: pulumi.String(\"example-certificate\"),\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tKeyType: pulumi.String(\"RSA\"),\n\t\t\tKeySize: pulumi.Int(2048),\n\t\t\tKeyOpts: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"decrypt\"),\n\t\t\t\tpulumi.String(\"encrypt\"),\n\t\t\t\tpulumi.String(\"sign\"),\n\t\t\t\tpulumi.String(\"unwrapKey\"),\n\t\t\t\tpulumi.String(\"verify\"),\n\t\t\t\tpulumi.String(\"wrapKey\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = databricks.NewWorkspaceRootDbfsCustomerManagedKey(ctx, \"example\", \u0026databricks.WorkspaceRootDbfsCustomerManagedKeyArgs{\n\t\t\tWorkspaceId: exampleWorkspace.ID(),\n\t\t\tKeyVaultKeyId: exampleKey.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewAccessPolicy(ctx, \"terraform\", \u0026keyvault.AccessPolicyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tTenantId: exampleKeyVault.TenantId,\n\t\t\tObjectId: pulumi.String(current.ObjectId),\n\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\tpulumi.String(\"Purge\"),\n\t\t\t\tpulumi.String(\"Recover\"),\n\t\t\t\tpulumi.String(\"Update\"),\n\t\t\t\tpulumi.String(\"List\"),\n\t\t\t\tpulumi.String(\"Decrypt\"),\n\t\t\t\tpulumi.String(\"Sign\"),\n\t\t\t\tpulumi.String(\"GetRotationPolicy\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = keyvault.NewAccessPolicy(ctx, \"databricks\", \u0026keyvault.AccessPolicyArgs{\n\t\t\tKeyVaultId: exampleKeyVault.ID(),\n\t\t\tTenantId: exampleWorkspace.StorageAccountIdentities.ApplyT(func(storageAccountIdentities []databricks.WorkspaceStorageAccountIdentity) (*string, error) {\n\t\t\t\treturn \u0026storageAccountIdentities[0].TenantId, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\tObjectId: exampleWorkspace.StorageAccountIdentities.ApplyT(func(storageAccountIdentities []databricks.WorkspaceStorageAccountIdentity) (*string, error) {\n\t\t\t\treturn \u0026storageAccountIdentities[0].PrincipalId, nil\n\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\tKeyPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Create\"),\n\t\t\t\tpulumi.String(\"Delete\"),\n\t\t\t\tpulumi.String(\"Get\"),\n\t\t\t\tpulumi.String(\"Purge\"),\n\t\t\t\tpulumi.String(\"Recover\"),\n\t\t\t\tpulumi.String(\"Update\"),\n\t\t\t\tpulumi.String(\"List\"),\n\t\t\t\tpulumi.String(\"Decrypt\"),\n\t\t\t\tpulumi.String(\"Sign\"),\n\t\t\t},\n\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.databricks.Workspace;\nimport com.pulumi.azure.databricks.WorkspaceArgs;\nimport com.pulumi.azure.keyvault.KeyVault;\nimport com.pulumi.azure.keyvault.KeyVaultArgs;\nimport com.pulumi.azure.keyvault.Key;\nimport com.pulumi.azure.keyvault.KeyArgs;\nimport com.pulumi.azure.databricks.WorkspaceRootDbfsCustomerManagedKey;\nimport com.pulumi.azure.databricks.WorkspaceRootDbfsCustomerManagedKeyArgs;\nimport com.pulumi.azure.keyvault.AccessPolicy;\nimport com.pulumi.azure.keyvault.AccessPolicyArgs;\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-resources\")\n .location(\"West Europe\")\n .build());\n\n var exampleWorkspace = new Workspace(\"exampleWorkspace\", WorkspaceArgs.builder() \n .name(\"databricks-test\")\n .resourceGroupName(example.name())\n .location(example.location())\n .sku(\"premium\")\n .customerManagedKeyEnabled(true)\n .tags(Map.of(\"Environment\", \"Production\"))\n .build());\n\n var exampleKeyVault = new KeyVault(\"exampleKeyVault\", KeyVaultArgs.builder() \n .name(\"examplekeyvault\")\n .location(example.location())\n .resourceGroupName(example.name())\n .tenantId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.tenantId()))\n .skuName(\"premium\")\n .purgeProtectionEnabled(true)\n .softDeleteRetentionDays(7)\n .build());\n\n var exampleKey = new Key(\"exampleKey\", KeyArgs.builder() \n .name(\"example-certificate\")\n .keyVaultId(exampleKeyVault.id())\n .keyType(\"RSA\")\n .keySize(2048)\n .keyOpts( \n \"decrypt\",\n \"encrypt\",\n \"sign\",\n \"unwrapKey\",\n \"verify\",\n \"wrapKey\")\n .build());\n\n var exampleWorkspaceRootDbfsCustomerManagedKey = new WorkspaceRootDbfsCustomerManagedKey(\"exampleWorkspaceRootDbfsCustomerManagedKey\", WorkspaceRootDbfsCustomerManagedKeyArgs.builder() \n .workspaceId(exampleWorkspace.id())\n .keyVaultKeyId(exampleKey.id())\n .build());\n\n var terraform = new AccessPolicy(\"terraform\", AccessPolicyArgs.builder() \n .keyVaultId(exampleKeyVault.id())\n .tenantId(exampleKeyVault.tenantId())\n .objectId(current.applyValue(getClientConfigResult -\u003e getClientConfigResult.objectId()))\n .keyPermissions( \n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\",\n \"GetRotationPolicy\")\n .build());\n\n var databricks = new AccessPolicy(\"databricks\", AccessPolicyArgs.builder() \n .keyVaultId(exampleKeyVault.id())\n .tenantId(exampleWorkspace.storageAccountIdentities().applyValue(storageAccountIdentities -\u003e storageAccountIdentities[0].tenantId()))\n .objectId(exampleWorkspace.storageAccountIdentities().applyValue(storageAccountIdentities -\u003e storageAccountIdentities[0].principalId()))\n .keyPermissions( \n \"Create\",\n \"Delete\",\n \"Get\",\n \"Purge\",\n \"Recover\",\n \"Update\",\n \"List\",\n \"Decrypt\",\n \"Sign\")\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 exampleWorkspace:\n type: azure:databricks:Workspace\n name: example\n properties:\n name: databricks-test\n resourceGroupName: ${example.name}\n location: ${example.location}\n sku: premium\n customerManagedKeyEnabled: true\n tags:\n Environment: Production\n exampleWorkspaceRootDbfsCustomerManagedKey:\n type: azure:databricks:WorkspaceRootDbfsCustomerManagedKey\n name: example\n properties:\n workspaceId: ${exampleWorkspace.id}\n keyVaultKeyId: ${exampleKey.id}\n exampleKeyVault:\n type: azure:keyvault:KeyVault\n name: example\n properties:\n name: examplekeyvault\n location: ${example.location}\n resourceGroupName: ${example.name}\n tenantId: ${current.tenantId}\n skuName: premium\n purgeProtectionEnabled: true\n softDeleteRetentionDays: 7\n exampleKey:\n type: azure:keyvault:Key\n name: example\n properties:\n name: example-certificate\n keyVaultId: ${exampleKeyVault.id}\n keyType: RSA\n keySize: 2048\n keyOpts:\n - decrypt\n - encrypt\n - sign\n - unwrapKey\n - verify\n - wrapKey\n terraform:\n type: azure:keyvault:AccessPolicy\n properties:\n keyVaultId: ${exampleKeyVault.id}\n tenantId: ${exampleKeyVault.tenantId}\n objectId: ${current.objectId}\n keyPermissions:\n - Create\n - Delete\n - Get\n - Purge\n - Recover\n - Update\n - List\n - Decrypt\n - Sign\n - GetRotationPolicy\n databricks:\n type: azure:keyvault:AccessPolicy\n properties:\n keyVaultId: ${exampleKeyVault.id}\n tenantId: ${exampleWorkspace.storageAccountIdentities[0].tenantId}\n objectId: ${exampleWorkspace.storageAccountIdentities[0].principalId}\n keyPermissions:\n - Create\n - Delete\n - Get\n - Purge\n - Recover\n - Update\n - List\n - Decrypt\n - Sign\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example HCL Configurations\n\n* Databricks Workspace with Root Databricks File System Customer Managed Keys\n* Databricks Workspace with Root Databricks File System Customer Managed Keys in a Different Subscription\n* Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys\n\n## Import\n\nDatabricks Workspace Root DBFS Customer Managed Key can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:databricks/workspaceRootDbfsCustomerManagedKey:WorkspaceRootDbfsCustomerManagedKey workspace1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Databricks/workspaces/workspace1\n```\n\n", "properties": { + "keyVaultId": { + "type": "string" + }, "keyVaultKeyId": { "type": "string", "description": "The resource ID of the Key Vault Key to be used.\n" @@ -163005,6 +163244,9 @@ "workspaceId" ], "inputProperties": { + "keyVaultId": { + "type": "string" + }, "keyVaultKeyId": { "type": "string", "description": "The resource ID of the Key Vault Key to be used.\n" @@ -163021,6 +163263,9 @@ "stateInputs": { "description": "Input properties used for looking up and filtering WorkspaceRootDbfsCustomerManagedKey resources.\n", "properties": { + "keyVaultId": { + "type": "string" + }, "keyVaultKeyId": { "type": "string", "description": "The resource ID of the Key Vault Key to be used.\n" @@ -176474,7 +176719,7 @@ } }, "azure:devtest/schedule:Schedule": { - "description": "Manages automated startup and shutdown schedules for Azure Dev Test Lab.\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 exampleLab = new azure.devtest.Lab(\"example\", {\n name: \"YourDevTestLab\",\n location: example.location,\n resourceGroupName: example.name,\n});\nconst exampleSchedule = new azure.devtest.Schedule(\"example\", {\n name: \"LabVmAutoStart\",\n location: example.location,\n resourceGroupName: example.name,\n labName: exampleLab.name,\n weeklyRecurrence: {\n time: \"1100\",\n weekDays: [\n \"Monday\",\n \"Tuesday\",\n ],\n },\n timeZoneId: \"Pacific Standard Time\",\n taskType: \"LabVmsStartupTask\",\n notificationSettings: {},\n tags: {\n environment: \"Production\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_lab = azure.devtest.Lab(\"example\",\n name=\"YourDevTestLab\",\n location=example.location,\n resource_group_name=example.name)\nexample_schedule = azure.devtest.Schedule(\"example\",\n name=\"LabVmAutoStart\",\n location=example.location,\n resource_group_name=example.name,\n lab_name=example_lab.name,\n weekly_recurrence=azure.devtest.ScheduleWeeklyRecurrenceArgs(\n time=\"1100\",\n week_days=[\n \"Monday\",\n \"Tuesday\",\n ],\n ),\n time_zone_id=\"Pacific Standard Time\",\n task_type=\"LabVmsStartupTask\",\n notification_settings=azure.devtest.ScheduleNotificationSettingsArgs(),\n tags={\n \"environment\": \"Production\",\n })\n```\n```csharp\nusing 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 exampleLab = new Azure.DevTest.Lab(\"example\", new()\n {\n Name = \"YourDevTestLab\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n });\n\n var exampleSchedule = new Azure.DevTest.Schedule(\"example\", new()\n {\n Name = \"LabVmAutoStart\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n LabName = exampleLab.Name,\n WeeklyRecurrence = new Azure.DevTest.Inputs.ScheduleWeeklyRecurrenceArgs\n {\n Time = \"1100\",\n WeekDays = new[]\n {\n \"Monday\",\n \"Tuesday\",\n },\n },\n TimeZoneId = \"Pacific Standard Time\",\n TaskType = \"LabVmsStartupTask\",\n NotificationSettings = null,\n Tags = \n {\n { \"environment\", \"Production\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := 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\texampleLab, err := devtest.NewLab(ctx, \"example\", \u0026devtest.LabArgs{\n\t\t\tName: pulumi.String(\"YourDevTestLab\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = devtest.NewSchedule(ctx, \"example\", \u0026devtest.ScheduleArgs{\n\t\t\tName: pulumi.String(\"LabVmAutoStart\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLabName: exampleLab.Name,\n\t\t\tWeeklyRecurrence: \u0026devtest.ScheduleWeeklyRecurrenceArgs{\n\t\t\t\tTime: pulumi.String(\"1100\"),\n\t\t\t\tWeekDays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Monday\"),\n\t\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTimeZoneId: pulumi.String(\"Pacific Standard Time\"),\n\t\t\tTaskType: pulumi.String(\"LabVmsStartupTask\"),\n\t\t\tNotificationSettings: nil,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.devtest.Lab;\nimport com.pulumi.azure.devtest.LabArgs;\nimport com.pulumi.azure.devtest.Schedule;\nimport com.pulumi.azure.devtest.ScheduleArgs;\nimport com.pulumi.azure.devtest.inputs.ScheduleWeeklyRecurrenceArgs;\nimport com.pulumi.azure.devtest.inputs.ScheduleNotificationSettingsArgs;\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 exampleLab = new Lab(\"exampleLab\", LabArgs.builder() \n .name(\"YourDevTestLab\")\n .location(example.location())\n .resourceGroupName(example.name())\n .build());\n\n var exampleSchedule = new Schedule(\"exampleSchedule\", ScheduleArgs.builder() \n .name(\"LabVmAutoStart\")\n .location(example.location())\n .resourceGroupName(example.name())\n .labName(exampleLab.name())\n .weeklyRecurrence(ScheduleWeeklyRecurrenceArgs.builder()\n .time(\"1100\")\n .weekDays( \n \"Monday\",\n \"Tuesday\")\n .build())\n .timeZoneId(\"Pacific Standard Time\")\n .taskType(\"LabVmsStartupTask\")\n .notificationSettings()\n .tags(Map.of(\"environment\", \"Production\"))\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 exampleLab:\n type: azure:devtest:Lab\n name: example\n properties:\n name: YourDevTestLab\n location: ${example.location}\n resourceGroupName: ${example.name}\n exampleSchedule:\n type: azure:devtest:Schedule\n name: example\n properties:\n name: LabVmAutoStart\n location: ${example.location}\n resourceGroupName: ${example.name}\n labName: ${exampleLab.name}\n weeklyRecurrence:\n time: '1100'\n weekDays:\n - Monday\n - Tuesday\n timeZoneId: Pacific Standard Time\n taskType: LabVmsStartupTask\n notificationSettings: {}\n tags:\n environment: Production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDevTest Schedule's can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:devtest/schedule:Schedule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DevTestLab/labs/myDevTestLab/schedules/labvmautostart\n```\n\n", + "description": "Manages automated startup and shutdown schedules for Azure Dev Test Lab.\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 exampleLab = new azure.devtest.Lab(\"example\", {\n name: \"YourDevTestLab\",\n location: example.location,\n resourceGroupName: example.name,\n});\nconst exampleSchedule = new azure.devtest.Schedule(\"example\", {\n name: \"LabVmAutoStart\",\n location: example.location,\n resourceGroupName: example.name,\n labName: exampleLab.name,\n status: \"Enabled\",\n weeklyRecurrence: {\n time: \"1100\",\n weekDays: [\n \"Monday\",\n \"Tuesday\",\n ],\n },\n timeZoneId: \"Pacific Standard Time\",\n taskType: \"LabVmsStartupTask\",\n notificationSettings: {},\n tags: {\n environment: \"Production\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_lab = azure.devtest.Lab(\"example\",\n name=\"YourDevTestLab\",\n location=example.location,\n resource_group_name=example.name)\nexample_schedule = azure.devtest.Schedule(\"example\",\n name=\"LabVmAutoStart\",\n location=example.location,\n resource_group_name=example.name,\n lab_name=example_lab.name,\n status=\"Enabled\",\n weekly_recurrence=azure.devtest.ScheduleWeeklyRecurrenceArgs(\n time=\"1100\",\n week_days=[\n \"Monday\",\n \"Tuesday\",\n ],\n ),\n time_zone_id=\"Pacific Standard Time\",\n task_type=\"LabVmsStartupTask\",\n notification_settings=azure.devtest.ScheduleNotificationSettingsArgs(),\n tags={\n \"environment\": \"Production\",\n })\n```\n```csharp\nusing 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 exampleLab = new Azure.DevTest.Lab(\"example\", new()\n {\n Name = \"YourDevTestLab\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n });\n\n var exampleSchedule = new Azure.DevTest.Schedule(\"example\", new()\n {\n Name = \"LabVmAutoStart\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n LabName = exampleLab.Name,\n Status = \"Enabled\",\n WeeklyRecurrence = new Azure.DevTest.Inputs.ScheduleWeeklyRecurrenceArgs\n {\n Time = \"1100\",\n WeekDays = new[]\n {\n \"Monday\",\n \"Tuesday\",\n },\n },\n TimeZoneId = \"Pacific Standard Time\",\n TaskType = \"LabVmsStartupTask\",\n NotificationSettings = null,\n Tags = \n {\n { \"environment\", \"Production\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/devtest\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := 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\texampleLab, err := devtest.NewLab(ctx, \"example\", \u0026devtest.LabArgs{\n\t\t\tName: pulumi.String(\"YourDevTestLab\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = devtest.NewSchedule(ctx, \"example\", \u0026devtest.ScheduleArgs{\n\t\t\tName: pulumi.String(\"LabVmAutoStart\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLabName: exampleLab.Name,\n\t\t\tStatus: pulumi.String(\"Enabled\"),\n\t\t\tWeeklyRecurrence: \u0026devtest.ScheduleWeeklyRecurrenceArgs{\n\t\t\t\tTime: pulumi.String(\"1100\"),\n\t\t\t\tWeekDays: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"Monday\"),\n\t\t\t\t\tpulumi.String(\"Tuesday\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTimeZoneId: pulumi.String(\"Pacific Standard Time\"),\n\t\t\tTaskType: pulumi.String(\"LabVmsStartupTask\"),\n\t\t\tNotificationSettings: nil,\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.devtest.Lab;\nimport com.pulumi.azure.devtest.LabArgs;\nimport com.pulumi.azure.devtest.Schedule;\nimport com.pulumi.azure.devtest.ScheduleArgs;\nimport com.pulumi.azure.devtest.inputs.ScheduleWeeklyRecurrenceArgs;\nimport com.pulumi.azure.devtest.inputs.ScheduleNotificationSettingsArgs;\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 exampleLab = new Lab(\"exampleLab\", LabArgs.builder() \n .name(\"YourDevTestLab\")\n .location(example.location())\n .resourceGroupName(example.name())\n .build());\n\n var exampleSchedule = new Schedule(\"exampleSchedule\", ScheduleArgs.builder() \n .name(\"LabVmAutoStart\")\n .location(example.location())\n .resourceGroupName(example.name())\n .labName(exampleLab.name())\n .status(\"Enabled\")\n .weeklyRecurrence(ScheduleWeeklyRecurrenceArgs.builder()\n .time(\"1100\")\n .weekDays( \n \"Monday\",\n \"Tuesday\")\n .build())\n .timeZoneId(\"Pacific Standard Time\")\n .taskType(\"LabVmsStartupTask\")\n .notificationSettings()\n .tags(Map.of(\"environment\", \"Production\"))\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 exampleLab:\n type: azure:devtest:Lab\n name: example\n properties:\n name: YourDevTestLab\n location: ${example.location}\n resourceGroupName: ${example.name}\n exampleSchedule:\n type: azure:devtest:Schedule\n name: example\n properties:\n name: LabVmAutoStart\n location: ${example.location}\n resourceGroupName: ${example.name}\n labName: ${exampleLab.name}\n status: Enabled\n weeklyRecurrence:\n time: '1100'\n weekDays:\n - Monday\n - Tuesday\n timeZoneId: Pacific Standard Time\n taskType: LabVmsStartupTask\n notificationSettings: {}\n tags:\n environment: Production\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nDevTest Schedule's can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:devtest/schedule:Schedule example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.DevTestLab/labs/myDevTestLab/schedules/labvmautostart\n```\n\n", "properties": { "dailyRecurrence": { "$ref": "#/types/azure:devtest/ScheduleDailyRecurrence:ScheduleDailyRecurrence", @@ -215624,7 +215869,7 @@ } }, "azure:monitoring/scheduledQueryRulesAlertV2:ScheduledQueryRulesAlertV2": { - "description": "Manages an AlertingAction Scheduled Query Rules Version 2 resource within Azure Monitor\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 exampleInsights = new azure.appinsights.Insights(\"example\", {\n name: \"example-ai\",\n location: example.location,\n resourceGroupName: example.name,\n applicationType: \"web\",\n});\nconst exampleActionGroup = new azure.monitoring.ActionGroup(\"example\", {\n name: \"example-mag\",\n resourceGroupName: example.name,\n shortName: \"test mag\",\n});\nconst exampleScheduledQueryRulesAlertV2 = new azure.monitoring.ScheduledQueryRulesAlertV2(\"example\", {\n name: \"example-msqrv2\",\n resourceGroupName: example.name,\n location: example.location,\n evaluationFrequency: \"PT10M\",\n windowDuration: \"PT10M\",\n scopes: exampleInsights.id,\n severity: 4,\n criterias: [{\n query: `requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n`,\n timeAggregationMethod: \"Maximum\",\n threshold: 17.5,\n operator: \"LessThan\",\n resourceIdColumn: \"client_CountryOrRegion\",\n metricMeasureColumn: \"CountByCountry\",\n dimensions: [{\n name: \"client_CountryOrRegion\",\n operator: \"Exclude\",\n values: [\"123\"],\n }],\n failingPeriods: {\n minimumFailingPeriodsToTriggerAlert: 1,\n numberOfEvaluationPeriods: 1,\n },\n }],\n autoMitigationEnabled: true,\n workspaceAlertsStorageEnabled: false,\n description: \"example sqr\",\n displayName: \"example-sqr\",\n enabled: true,\n queryTimeRangeOverride: \"PT1H\",\n skipQueryValidation: true,\n action: {\n actionGroups: [exampleActionGroup.id],\n customProperties: {\n key: \"value\",\n key2: \"value2\",\n },\n },\n tags: {\n key: \"value\",\n key2: \"value2\",\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_insights = azure.appinsights.Insights(\"example\",\n name=\"example-ai\",\n location=example.location,\n resource_group_name=example.name,\n application_type=\"web\")\nexample_action_group = azure.monitoring.ActionGroup(\"example\",\n name=\"example-mag\",\n resource_group_name=example.name,\n short_name=\"test mag\")\nexample_scheduled_query_rules_alert_v2 = azure.monitoring.ScheduledQueryRulesAlertV2(\"example\",\n name=\"example-msqrv2\",\n resource_group_name=example.name,\n location=example.location,\n evaluation_frequency=\"PT10M\",\n window_duration=\"PT10M\",\n scopes=example_insights.id,\n severity=4,\n criterias=[azure.monitoring.ScheduledQueryRulesAlertV2CriteriaArgs(\n query=\"\"\"requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n\"\"\",\n time_aggregation_method=\"Maximum\",\n threshold=17.5,\n operator=\"LessThan\",\n resource_id_column=\"client_CountryOrRegion\",\n metric_measure_column=\"CountByCountry\",\n dimensions=[azure.monitoring.ScheduledQueryRulesAlertV2CriteriaDimensionArgs(\n name=\"client_CountryOrRegion\",\n operator=\"Exclude\",\n values=[\"123\"],\n )],\n failing_periods=azure.monitoring.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs(\n minimum_failing_periods_to_trigger_alert=1,\n number_of_evaluation_periods=1,\n ),\n )],\n auto_mitigation_enabled=True,\n workspace_alerts_storage_enabled=False,\n description=\"example sqr\",\n display_name=\"example-sqr\",\n enabled=True,\n query_time_range_override=\"PT1H\",\n skip_query_validation=True,\n action=azure.monitoring.ScheduledQueryRulesAlertV2ActionArgs(\n action_groups=[example_action_group.id],\n custom_properties={\n \"key\": \"value\",\n \"key2\": \"value2\",\n },\n ),\n tags={\n \"key\": \"value\",\n \"key2\": \"value2\",\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 exampleInsights = new Azure.AppInsights.Insights(\"example\", new()\n {\n Name = \"example-ai\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ApplicationType = \"web\",\n });\n\n var exampleActionGroup = new Azure.Monitoring.ActionGroup(\"example\", new()\n {\n Name = \"example-mag\",\n ResourceGroupName = example.Name,\n ShortName = \"test mag\",\n });\n\n var exampleScheduledQueryRulesAlertV2 = new Azure.Monitoring.ScheduledQueryRulesAlertV2(\"example\", new()\n {\n Name = \"example-msqrv2\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n EvaluationFrequency = \"PT10M\",\n WindowDuration = \"PT10M\",\n Scopes = exampleInsights.Id,\n Severity = 4,\n Criterias = new[]\n {\n new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2CriteriaArgs\n {\n Query = @\"requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n\",\n TimeAggregationMethod = \"Maximum\",\n Threshold = 17.5,\n Operator = \"LessThan\",\n ResourceIdColumn = \"client_CountryOrRegion\",\n MetricMeasureColumn = \"CountByCountry\",\n Dimensions = new[]\n {\n new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2CriteriaDimensionArgs\n {\n Name = \"client_CountryOrRegion\",\n Operator = \"Exclude\",\n Values = new[]\n {\n \"123\",\n },\n },\n },\n FailingPeriods = new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs\n {\n MinimumFailingPeriodsToTriggerAlert = 1,\n NumberOfEvaluationPeriods = 1,\n },\n },\n },\n AutoMitigationEnabled = true,\n WorkspaceAlertsStorageEnabled = false,\n Description = \"example sqr\",\n DisplayName = \"example-sqr\",\n Enabled = true,\n QueryTimeRangeOverride = \"PT1H\",\n SkipQueryValidation = true,\n Action = new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2ActionArgs\n {\n ActionGroups = new[]\n {\n exampleActionGroup.Id,\n },\n CustomProperties = \n {\n { \"key\", \"value\" },\n { \"key2\", \"value2\" },\n },\n },\n Tags = \n {\n { \"key\", \"value\" },\n { \"key2\", \"value2\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/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(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"example\", \u0026appinsights.InsightsArgs{\n\t\t\tName: pulumi.String(\"example-ai\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tApplicationType: pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleActionGroup, err := monitoring.NewActionGroup(ctx, \"example\", \u0026monitoring.ActionGroupArgs{\n\t\t\tName: pulumi.String(\"example-mag\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tShortName: pulumi.String(\"test mag\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewScheduledQueryRulesAlertV2(ctx, \"example\", \u0026monitoring.ScheduledQueryRulesAlertV2Args{\n\t\t\tName: pulumi.String(\"example-msqrv2\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tEvaluationFrequency: pulumi.String(\"PT10M\"),\n\t\t\tWindowDuration: pulumi.String(\"PT10M\"),\n\t\t\tScopes: exampleInsights.ID(),\n\t\t\tSeverity: pulumi.Int(4),\n\t\t\tCriterias: monitoring.ScheduledQueryRulesAlertV2CriteriaArray{\n\t\t\t\t\u0026monitoring.ScheduledQueryRulesAlertV2CriteriaArgs{\n\t\t\t\t\tQuery: pulumi.String(\"requests\\n | summarize CountByCountry=count() by client_CountryOrRegion\\n\"),\n\t\t\t\t\tTimeAggregationMethod: pulumi.String(\"Maximum\"),\n\t\t\t\t\tThreshold: pulumi.Float64(17.5),\n\t\t\t\t\tOperator: pulumi.String(\"LessThan\"),\n\t\t\t\t\tResourceIdColumn: pulumi.String(\"client_CountryOrRegion\"),\n\t\t\t\t\tMetricMeasureColumn: pulumi.String(\"CountByCountry\"),\n\t\t\t\t\tDimensions: monitoring.ScheduledQueryRulesAlertV2CriteriaDimensionArray{\n\t\t\t\t\t\t\u0026monitoring.ScheduledQueryRulesAlertV2CriteriaDimensionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"client_CountryOrRegion\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"Exclude\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"123\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tFailingPeriods: \u0026monitoring.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs{\n\t\t\t\t\t\tMinimumFailingPeriodsToTriggerAlert: pulumi.Int(1),\n\t\t\t\t\t\tNumberOfEvaluationPeriods: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAutoMitigationEnabled: pulumi.Bool(true),\n\t\t\tWorkspaceAlertsStorageEnabled: pulumi.Bool(false),\n\t\t\tDescription: pulumi.String(\"example sqr\"),\n\t\t\tDisplayName: pulumi.String(\"example-sqr\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tQueryTimeRangeOverride: pulumi.String(\"PT1H\"),\n\t\t\tSkipQueryValidation: pulumi.Bool(true),\n\t\t\tAction: \u0026monitoring.ScheduledQueryRulesAlertV2ActionArgs{\n\t\t\t\tActionGroups: pulumi.StringArray{\n\t\t\t\t\texampleActionGroup.ID(),\n\t\t\t\t},\n\t\t\t\tCustomProperties: pulumi.StringMap{\n\t\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\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.appinsights.Insights;\nimport com.pulumi.azure.appinsights.InsightsArgs;\nimport com.pulumi.azure.monitoring.ActionGroup;\nimport com.pulumi.azure.monitoring.ActionGroupArgs;\nimport com.pulumi.azure.monitoring.ScheduledQueryRulesAlertV2;\nimport com.pulumi.azure.monitoring.ScheduledQueryRulesAlertV2Args;\nimport com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaArgs;\nimport com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs;\nimport com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2ActionArgs;\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 exampleInsights = new Insights(\"exampleInsights\", InsightsArgs.builder() \n .name(\"example-ai\")\n .location(example.location())\n .resourceGroupName(example.name())\n .applicationType(\"web\")\n .build());\n\n var exampleActionGroup = new ActionGroup(\"exampleActionGroup\", ActionGroupArgs.builder() \n .name(\"example-mag\")\n .resourceGroupName(example.name())\n .shortName(\"test mag\")\n .build());\n\n var exampleScheduledQueryRulesAlertV2 = new ScheduledQueryRulesAlertV2(\"exampleScheduledQueryRulesAlertV2\", ScheduledQueryRulesAlertV2Args.builder() \n .name(\"example-msqrv2\")\n .resourceGroupName(example.name())\n .location(example.location())\n .evaluationFrequency(\"PT10M\")\n .windowDuration(\"PT10M\")\n .scopes(exampleInsights.id())\n .severity(4)\n .criterias(ScheduledQueryRulesAlertV2CriteriaArgs.builder()\n .query(\"\"\"\nrequests\n | summarize CountByCountry=count() by client_CountryOrRegion\n \"\"\")\n .timeAggregationMethod(\"Maximum\")\n .threshold(17.5)\n .operator(\"LessThan\")\n .resourceIdColumn(\"client_CountryOrRegion\")\n .metricMeasureColumn(\"CountByCountry\")\n .dimensions(ScheduledQueryRulesAlertV2CriteriaDimensionArgs.builder()\n .name(\"client_CountryOrRegion\")\n .operator(\"Exclude\")\n .values(\"123\")\n .build())\n .failingPeriods(ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs.builder()\n .minimumFailingPeriodsToTriggerAlert(1)\n .numberOfEvaluationPeriods(1)\n .build())\n .build())\n .autoMitigationEnabled(true)\n .workspaceAlertsStorageEnabled(false)\n .description(\"example sqr\")\n .displayName(\"example-sqr\")\n .enabled(true)\n .queryTimeRangeOverride(\"PT1H\")\n .skipQueryValidation(true)\n .action(ScheduledQueryRulesAlertV2ActionArgs.builder()\n .actionGroups(exampleActionGroup.id())\n .customProperties(Map.ofEntries(\n Map.entry(\"key\", \"value\"),\n Map.entry(\"key2\", \"value2\")\n ))\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"key\", \"value\"),\n Map.entry(\"key2\", \"value2\")\n ))\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 exampleInsights:\n type: azure:appinsights:Insights\n name: example\n properties:\n name: example-ai\n location: ${example.location}\n resourceGroupName: ${example.name}\n applicationType: web\n exampleActionGroup:\n type: azure:monitoring:ActionGroup\n name: example\n properties:\n name: example-mag\n resourceGroupName: ${example.name}\n shortName: test mag\n exampleScheduledQueryRulesAlertV2:\n type: azure:monitoring:ScheduledQueryRulesAlertV2\n name: example\n properties:\n name: example-msqrv2\n resourceGroupName: ${example.name}\n location: ${example.location}\n evaluationFrequency: PT10M\n windowDuration: PT10M\n scopes: ${exampleInsights.id}\n severity: 4\n criterias:\n - query: |\n requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n timeAggregationMethod: Maximum\n threshold: 17.5\n operator: LessThan\n resourceIdColumn: client_CountryOrRegion\n metricMeasureColumn: CountByCountry\n dimensions:\n - name: client_CountryOrRegion\n operator: Exclude\n values:\n - '123'\n failingPeriods:\n minimumFailingPeriodsToTriggerAlert: 1\n numberOfEvaluationPeriods: 1\n autoMitigationEnabled: true\n workspaceAlertsStorageEnabled: false\n description: example sqr\n displayName: example-sqr\n enabled: true\n queryTimeRangeOverride: PT1H\n skipQueryValidation: true\n action:\n actionGroups:\n - ${exampleActionGroup.id}\n customProperties:\n key: value\n key2: value2\n tags:\n key: value\n key2: value2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nMonitor Scheduled Query Rule Alert can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:monitoring/scheduledQueryRulesAlertV2:ScheduledQueryRulesAlertV2 example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Insights/scheduledQueryRules/rule1\n```\n\n", + "description": "Manages an AlertingAction Scheduled Query Rules Version 2 resource within Azure Monitor\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 exampleInsights = new azure.appinsights.Insights(\"example\", {\n name: \"example-ai\",\n location: example.location,\n resourceGroupName: example.name,\n applicationType: \"web\",\n});\nconst exampleActionGroup = new azure.monitoring.ActionGroup(\"example\", {\n name: \"example-mag\",\n resourceGroupName: example.name,\n shortName: \"test mag\",\n});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"example\", {\n name: \"example-uai\",\n location: example.location,\n resourceGroupName: example.name,\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"example\", {\n scope: exampleInsights.id,\n roleDefinitionName: \"Reader\",\n principalId: exampleUserAssignedIdentity.principalId,\n});\nconst exampleScheduledQueryRulesAlertV2 = new azure.monitoring.ScheduledQueryRulesAlertV2(\"example\", {\n name: \"example-msqrv2\",\n resourceGroupName: example.name,\n location: example.location,\n evaluationFrequency: \"PT10M\",\n windowDuration: \"PT10M\",\n scopes: exampleInsights.id,\n severity: 4,\n criterias: [{\n query: `requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n`,\n timeAggregationMethod: \"Maximum\",\n threshold: 17.5,\n operator: \"LessThan\",\n resourceIdColumn: \"client_CountryOrRegion\",\n metricMeasureColumn: \"CountByCountry\",\n dimensions: [{\n name: \"client_CountryOrRegion\",\n operator: \"Exclude\",\n values: [\"123\"],\n }],\n failingPeriods: {\n minimumFailingPeriodsToTriggerAlert: 1,\n numberOfEvaluationPeriods: 1,\n },\n }],\n autoMitigationEnabled: true,\n workspaceAlertsStorageEnabled: false,\n description: \"example sqr\",\n displayName: \"example-sqr\",\n enabled: true,\n queryTimeRangeOverride: \"PT1H\",\n skipQueryValidation: true,\n action: {\n actionGroups: [exampleActionGroup.id],\n customProperties: {\n key: \"value\",\n key2: \"value2\",\n },\n },\n identity: {\n type: \"UserAssigned\",\n identityIds: [exampleUserAssignedIdentity.id],\n },\n tags: {\n key: \"value\",\n key2: \"value2\",\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_insights = azure.appinsights.Insights(\"example\",\n name=\"example-ai\",\n location=example.location,\n resource_group_name=example.name,\n application_type=\"web\")\nexample_action_group = azure.monitoring.ActionGroup(\"example\",\n name=\"example-mag\",\n resource_group_name=example.name,\n short_name=\"test mag\")\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"example\",\n name=\"example-uai\",\n location=example.location,\n resource_group_name=example.name)\nexample_assignment = azure.authorization.Assignment(\"example\",\n scope=example_insights.id,\n role_definition_name=\"Reader\",\n principal_id=example_user_assigned_identity.principal_id)\nexample_scheduled_query_rules_alert_v2 = azure.monitoring.ScheduledQueryRulesAlertV2(\"example\",\n name=\"example-msqrv2\",\n resource_group_name=example.name,\n location=example.location,\n evaluation_frequency=\"PT10M\",\n window_duration=\"PT10M\",\n scopes=example_insights.id,\n severity=4,\n criterias=[azure.monitoring.ScheduledQueryRulesAlertV2CriteriaArgs(\n query=\"\"\"requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n\"\"\",\n time_aggregation_method=\"Maximum\",\n threshold=17.5,\n operator=\"LessThan\",\n resource_id_column=\"client_CountryOrRegion\",\n metric_measure_column=\"CountByCountry\",\n dimensions=[azure.monitoring.ScheduledQueryRulesAlertV2CriteriaDimensionArgs(\n name=\"client_CountryOrRegion\",\n operator=\"Exclude\",\n values=[\"123\"],\n )],\n failing_periods=azure.monitoring.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs(\n minimum_failing_periods_to_trigger_alert=1,\n number_of_evaluation_periods=1,\n ),\n )],\n auto_mitigation_enabled=True,\n workspace_alerts_storage_enabled=False,\n description=\"example sqr\",\n display_name=\"example-sqr\",\n enabled=True,\n query_time_range_override=\"PT1H\",\n skip_query_validation=True,\n action=azure.monitoring.ScheduledQueryRulesAlertV2ActionArgs(\n action_groups=[example_action_group.id],\n custom_properties={\n \"key\": \"value\",\n \"key2\": \"value2\",\n },\n ),\n identity=azure.monitoring.ScheduledQueryRulesAlertV2IdentityArgs(\n type=\"UserAssigned\",\n identity_ids=[example_user_assigned_identity.id],\n ),\n tags={\n \"key\": \"value\",\n \"key2\": \"value2\",\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 exampleInsights = new Azure.AppInsights.Insights(\"example\", new()\n {\n Name = \"example-ai\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ApplicationType = \"web\",\n });\n\n var exampleActionGroup = new Azure.Monitoring.ActionGroup(\"example\", new()\n {\n Name = \"example-mag\",\n ResourceGroupName = example.Name,\n ShortName = \"test mag\",\n });\n\n var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"example\", new()\n {\n Name = \"example-uai\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n });\n\n var exampleAssignment = new Azure.Authorization.Assignment(\"example\", new()\n {\n Scope = exampleInsights.Id,\n RoleDefinitionName = \"Reader\",\n PrincipalId = exampleUserAssignedIdentity.PrincipalId,\n });\n\n var exampleScheduledQueryRulesAlertV2 = new Azure.Monitoring.ScheduledQueryRulesAlertV2(\"example\", new()\n {\n Name = \"example-msqrv2\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n EvaluationFrequency = \"PT10M\",\n WindowDuration = \"PT10M\",\n Scopes = exampleInsights.Id,\n Severity = 4,\n Criterias = new[]\n {\n new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2CriteriaArgs\n {\n Query = @\"requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n\",\n TimeAggregationMethod = \"Maximum\",\n Threshold = 17.5,\n Operator = \"LessThan\",\n ResourceIdColumn = \"client_CountryOrRegion\",\n MetricMeasureColumn = \"CountByCountry\",\n Dimensions = new[]\n {\n new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2CriteriaDimensionArgs\n {\n Name = \"client_CountryOrRegion\",\n Operator = \"Exclude\",\n Values = new[]\n {\n \"123\",\n },\n },\n },\n FailingPeriods = new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs\n {\n MinimumFailingPeriodsToTriggerAlert = 1,\n NumberOfEvaluationPeriods = 1,\n },\n },\n },\n AutoMitigationEnabled = true,\n WorkspaceAlertsStorageEnabled = false,\n Description = \"example sqr\",\n DisplayName = \"example-sqr\",\n Enabled = true,\n QueryTimeRangeOverride = \"PT1H\",\n SkipQueryValidation = true,\n Action = new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2ActionArgs\n {\n ActionGroups = new[]\n {\n exampleActionGroup.Id,\n },\n CustomProperties = \n {\n { \"key\", \"value\" },\n { \"key2\", \"value2\" },\n },\n },\n Identity = new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2IdentityArgs\n {\n Type = \"UserAssigned\",\n IdentityIds = new[]\n {\n exampleUserAssignedIdentity.Id,\n },\n },\n Tags = \n {\n { \"key\", \"value\" },\n { \"key2\", \"value2\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/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(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleInsights, err := appinsights.NewInsights(ctx, \"example\", \u0026appinsights.InsightsArgs{\n\t\t\tName: pulumi.String(\"example-ai\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tApplicationType: pulumi.String(\"web\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleActionGroup, err := monitoring.NewActionGroup(ctx, \"example\", \u0026monitoring.ActionGroupArgs{\n\t\t\tName: pulumi.String(\"example-mag\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tShortName: pulumi.String(\"test mag\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"example\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tName: pulumi.String(\"example-uai\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"example\", \u0026authorization.AssignmentArgs{\n\t\t\tScope: exampleInsights.ID(),\n\t\t\tRoleDefinitionName: pulumi.String(\"Reader\"),\n\t\t\tPrincipalId: exampleUserAssignedIdentity.PrincipalId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = monitoring.NewScheduledQueryRulesAlertV2(ctx, \"example\", \u0026monitoring.ScheduledQueryRulesAlertV2Args{\n\t\t\tName: pulumi.String(\"example-msqrv2\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tEvaluationFrequency: pulumi.String(\"PT10M\"),\n\t\t\tWindowDuration: pulumi.String(\"PT10M\"),\n\t\t\tScopes: exampleInsights.ID(),\n\t\t\tSeverity: pulumi.Int(4),\n\t\t\tCriterias: monitoring.ScheduledQueryRulesAlertV2CriteriaArray{\n\t\t\t\t\u0026monitoring.ScheduledQueryRulesAlertV2CriteriaArgs{\n\t\t\t\t\tQuery: pulumi.String(\"requests\\n | summarize CountByCountry=count() by client_CountryOrRegion\\n\"),\n\t\t\t\t\tTimeAggregationMethod: pulumi.String(\"Maximum\"),\n\t\t\t\t\tThreshold: pulumi.Float64(17.5),\n\t\t\t\t\tOperator: pulumi.String(\"LessThan\"),\n\t\t\t\t\tResourceIdColumn: pulumi.String(\"client_CountryOrRegion\"),\n\t\t\t\t\tMetricMeasureColumn: pulumi.String(\"CountByCountry\"),\n\t\t\t\t\tDimensions: monitoring.ScheduledQueryRulesAlertV2CriteriaDimensionArray{\n\t\t\t\t\t\t\u0026monitoring.ScheduledQueryRulesAlertV2CriteriaDimensionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"client_CountryOrRegion\"),\n\t\t\t\t\t\t\tOperator: pulumi.String(\"Exclude\"),\n\t\t\t\t\t\t\tValues: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"123\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tFailingPeriods: \u0026monitoring.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs{\n\t\t\t\t\t\tMinimumFailingPeriodsToTriggerAlert: pulumi.Int(1),\n\t\t\t\t\t\tNumberOfEvaluationPeriods: pulumi.Int(1),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAutoMitigationEnabled: pulumi.Bool(true),\n\t\t\tWorkspaceAlertsStorageEnabled: pulumi.Bool(false),\n\t\t\tDescription: pulumi.String(\"example sqr\"),\n\t\t\tDisplayName: pulumi.String(\"example-sqr\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tQueryTimeRangeOverride: pulumi.String(\"PT1H\"),\n\t\t\tSkipQueryValidation: pulumi.Bool(true),\n\t\t\tAction: \u0026monitoring.ScheduledQueryRulesAlertV2ActionArgs{\n\t\t\t\tActionGroups: pulumi.StringArray{\n\t\t\t\t\texampleActionGroup.ID(),\n\t\t\t\t},\n\t\t\t\tCustomProperties: pulumi.StringMap{\n\t\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIdentity: \u0026monitoring.ScheduledQueryRulesAlertV2IdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"key\": pulumi.String(\"value\"),\n\t\t\t\t\"key2\": pulumi.String(\"value2\"),\n\t\t\t},\n\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.appinsights.Insights;\nimport com.pulumi.azure.appinsights.InsightsArgs;\nimport com.pulumi.azure.monitoring.ActionGroup;\nimport com.pulumi.azure.monitoring.ActionGroupArgs;\nimport com.pulumi.azure.authorization.UserAssignedIdentity;\nimport com.pulumi.azure.authorization.UserAssignedIdentityArgs;\nimport com.pulumi.azure.authorization.Assignment;\nimport com.pulumi.azure.authorization.AssignmentArgs;\nimport com.pulumi.azure.monitoring.ScheduledQueryRulesAlertV2;\nimport com.pulumi.azure.monitoring.ScheduledQueryRulesAlertV2Args;\nimport com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaArgs;\nimport com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs;\nimport com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2ActionArgs;\nimport com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2IdentityArgs;\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 exampleInsights = new Insights(\"exampleInsights\", InsightsArgs.builder() \n .name(\"example-ai\")\n .location(example.location())\n .resourceGroupName(example.name())\n .applicationType(\"web\")\n .build());\n\n var exampleActionGroup = new ActionGroup(\"exampleActionGroup\", ActionGroupArgs.builder() \n .name(\"example-mag\")\n .resourceGroupName(example.name())\n .shortName(\"test mag\")\n .build());\n\n var exampleUserAssignedIdentity = new UserAssignedIdentity(\"exampleUserAssignedIdentity\", UserAssignedIdentityArgs.builder() \n .name(\"example-uai\")\n .location(example.location())\n .resourceGroupName(example.name())\n .build());\n\n var exampleAssignment = new Assignment(\"exampleAssignment\", AssignmentArgs.builder() \n .scope(exampleInsights.id())\n .roleDefinitionName(\"Reader\")\n .principalId(exampleUserAssignedIdentity.principalId())\n .build());\n\n var exampleScheduledQueryRulesAlertV2 = new ScheduledQueryRulesAlertV2(\"exampleScheduledQueryRulesAlertV2\", ScheduledQueryRulesAlertV2Args.builder() \n .name(\"example-msqrv2\")\n .resourceGroupName(example.name())\n .location(example.location())\n .evaluationFrequency(\"PT10M\")\n .windowDuration(\"PT10M\")\n .scopes(exampleInsights.id())\n .severity(4)\n .criterias(ScheduledQueryRulesAlertV2CriteriaArgs.builder()\n .query(\"\"\"\nrequests\n | summarize CountByCountry=count() by client_CountryOrRegion\n \"\"\")\n .timeAggregationMethod(\"Maximum\")\n .threshold(17.5)\n .operator(\"LessThan\")\n .resourceIdColumn(\"client_CountryOrRegion\")\n .metricMeasureColumn(\"CountByCountry\")\n .dimensions(ScheduledQueryRulesAlertV2CriteriaDimensionArgs.builder()\n .name(\"client_CountryOrRegion\")\n .operator(\"Exclude\")\n .values(\"123\")\n .build())\n .failingPeriods(ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs.builder()\n .minimumFailingPeriodsToTriggerAlert(1)\n .numberOfEvaluationPeriods(1)\n .build())\n .build())\n .autoMitigationEnabled(true)\n .workspaceAlertsStorageEnabled(false)\n .description(\"example sqr\")\n .displayName(\"example-sqr\")\n .enabled(true)\n .queryTimeRangeOverride(\"PT1H\")\n .skipQueryValidation(true)\n .action(ScheduledQueryRulesAlertV2ActionArgs.builder()\n .actionGroups(exampleActionGroup.id())\n .customProperties(Map.ofEntries(\n Map.entry(\"key\", \"value\"),\n Map.entry(\"key2\", \"value2\")\n ))\n .build())\n .identity(ScheduledQueryRulesAlertV2IdentityArgs.builder()\n .type(\"UserAssigned\")\n .identityIds(exampleUserAssignedIdentity.id())\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"key\", \"value\"),\n Map.entry(\"key2\", \"value2\")\n ))\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 exampleInsights:\n type: azure:appinsights:Insights\n name: example\n properties:\n name: example-ai\n location: ${example.location}\n resourceGroupName: ${example.name}\n applicationType: web\n exampleActionGroup:\n type: azure:monitoring:ActionGroup\n name: example\n properties:\n name: example-mag\n resourceGroupName: ${example.name}\n shortName: test mag\n exampleUserAssignedIdentity:\n type: azure:authorization:UserAssignedIdentity\n name: example\n properties:\n name: example-uai\n location: ${example.location}\n resourceGroupName: ${example.name}\n exampleAssignment:\n type: azure:authorization:Assignment\n name: example\n properties:\n scope: ${exampleInsights.id}\n roleDefinitionName: Reader\n principalId: ${exampleUserAssignedIdentity.principalId}\n exampleScheduledQueryRulesAlertV2:\n type: azure:monitoring:ScheduledQueryRulesAlertV2\n name: example\n properties:\n name: example-msqrv2\n resourceGroupName: ${example.name}\n location: ${example.location}\n evaluationFrequency: PT10M\n windowDuration: PT10M\n scopes: ${exampleInsights.id}\n severity: 4\n criterias:\n - query: |\n requests\n | summarize CountByCountry=count() by client_CountryOrRegion\n timeAggregationMethod: Maximum\n threshold: 17.5\n operator: LessThan\n resourceIdColumn: client_CountryOrRegion\n metricMeasureColumn: CountByCountry\n dimensions:\n - name: client_CountryOrRegion\n operator: Exclude\n values:\n - '123'\n failingPeriods:\n minimumFailingPeriodsToTriggerAlert: 1\n numberOfEvaluationPeriods: 1\n autoMitigationEnabled: true\n workspaceAlertsStorageEnabled: false\n description: example sqr\n displayName: example-sqr\n enabled: true\n queryTimeRangeOverride: PT1H\n skipQueryValidation: true\n action:\n actionGroups:\n - ${exampleActionGroup.id}\n customProperties:\n key: value\n key2: value2\n identity:\n type: UserAssigned\n identityIds:\n - ${exampleUserAssignedIdentity.id}\n tags:\n key: value\n key2: value2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nMonitor Scheduled Query Rule Alert can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:monitoring/scheduledQueryRulesAlertV2:ScheduledQueryRulesAlertV2 example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Insights/scheduledQueryRules/rule1\n```\n\n", "properties": { "action": { "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertV2Action:ScheduledQueryRulesAlertV2Action", @@ -215661,6 +215906,10 @@ "type": "string", "description": "How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are `PT1M`, `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D`.\n\n\u003e **Note** `evaluation_frequency` cannot be greater than the query look back which is `window_duration`*`number_of_evaluation_periods`.\n\n\u003e **Note** `evaluation_frequency` cannot be greater than the `mute_actions_after_alert_duration`.\n" }, + "identity": { + "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertV2Identity:ScheduledQueryRulesAlertV2Identity", + "description": "An `identity` block as defined below.\n" + }, "isALegacyLogAnalyticsRule": { "type": "boolean", "description": "True if this alert rule is a legacy Log Analytic Rule.\n" @@ -215768,6 +216017,10 @@ "type": "string", "description": "How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are `PT1M`, `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D`.\n\n\u003e **Note** `evaluation_frequency` cannot be greater than the query look back which is `window_duration`*`number_of_evaluation_periods`.\n\n\u003e **Note** `evaluation_frequency` cannot be greater than the `mute_actions_after_alert_duration`.\n" }, + "identity": { + "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertV2Identity:ScheduledQueryRulesAlertV2Identity", + "description": "An `identity` block as defined below.\n" + }, "location": { "type": "string", "description": "Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created.\n", @@ -215872,6 +216125,10 @@ "type": "string", "description": "How often the scheduled query rule is evaluated, represented in ISO 8601 duration format. Possible values are `PT1M`, `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D`.\n\n\u003e **Note** `evaluation_frequency` cannot be greater than the query look back which is `window_duration`*`number_of_evaluation_periods`.\n\n\u003e **Note** `evaluation_frequency` cannot be greater than the `mute_actions_after_alert_duration`.\n" }, + "identity": { + "$ref": "#/types/azure:monitoring/ScheduledQueryRulesAlertV2Identity:ScheduledQueryRulesAlertV2Identity", + "description": "An `identity` block as defined below.\n" + }, "isALegacyLogAnalyticsRule": { "type": "boolean", "description": "True if this alert rule is a legacy Log Analytic Rule.\n" @@ -216545,7 +216802,7 @@ }, "enclaveType": { "type": "string", - "description": "Specifies the type of enclave to be used by the database. Possible value `VBS`.\n\n\u003e **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs.\n\n\u003e **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`.\n" + "description": "Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. \u003c!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-\u003e Possible values are `Default` or `VBS`.\n\n\u003e **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs.\n\n\u003e **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`.\n\n\u003e **NOTE:** The default value for the `enclave_type` field is unset not `Default`.\n" }, "geoBackupEnabled": { "type": "boolean", @@ -216619,6 +216876,10 @@ "type": "string", "description": "Specifies the name of the sample schema to apply when creating this database. Possible value is `AdventureWorksLT`.\n" }, + "secondaryType": { + "type": "string", + "description": "How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created.\n" + }, "serverId": { "type": "string", "description": "The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** This setting is still required for \"Serverless\" SKUs\n" @@ -216667,6 +216928,7 @@ "autoPauseDelayInMinutes", "collation", "creationSourceDatabaseId", + "enclaveType", "ledgerEnabled", "licenseType", "longTermRetentionPolicy", @@ -216678,6 +216940,7 @@ "readScale", "restorePointInTime", "sampleName", + "secondaryType", "serverId", "shortTermRetentionPolicy", "skuName", @@ -216710,7 +216973,7 @@ }, "enclaveType": { "type": "string", - "description": "Specifies the type of enclave to be used by the database. Possible value `VBS`.\n\n\u003e **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs.\n\n\u003e **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`.\n" + "description": "Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. \u003c!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-\u003e Possible values are `Default` or `VBS`.\n\n\u003e **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs.\n\n\u003e **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`.\n\n\u003e **NOTE:** The default value for the `enclave_type` field is unset not `Default`.\n" }, "geoBackupEnabled": { "type": "boolean", @@ -216786,6 +217049,11 @@ "type": "string", "description": "Specifies the name of the sample schema to apply when creating this database. Possible value is `AdventureWorksLT`.\n" }, + "secondaryType": { + "type": "string", + "description": "How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, "serverId": { "type": "string", "description": "The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** This setting is still required for \"Serverless\" SKUs\n", @@ -216862,7 +217130,7 @@ }, "enclaveType": { "type": "string", - "description": "Specifies the type of enclave to be used by the database. Possible value `VBS`.\n\n\u003e **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs.\n\n\u003e **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`.\n" + "description": "Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. \u003c!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-\u003e Possible values are `Default` or `VBS`.\n\n\u003e **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs.\n\n\u003e **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`.\n\n\u003e **NOTE:** The default value for the `enclave_type` field is unset not `Default`.\n" }, "geoBackupEnabled": { "type": "boolean", @@ -216938,6 +217206,11 @@ "type": "string", "description": "Specifies the name of the sample schema to apply when creating this database. Possible value is `AdventureWorksLT`.\n" }, + "secondaryType": { + "type": "string", + "description": "How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, "serverId": { "type": "string", "description": "The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** This setting is still required for \"Serverless\" SKUs\n", @@ -217201,7 +217474,7 @@ "properties": { "enclaveType": { "type": "string", - "description": "Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`.\n\n\u003e **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool.\n\n\u003e **NOTE:** `enclave_type` is not supported for DC-series SKUs.\n" + "description": "Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. \u003c!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-\u003e Possible values are `Default` or `VBS`.\n\n\u003e **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool.\n\n\u003e **NOTE:** `enclave_type` is not supported for DC-series SKUs.\n\n\u003e **NOTE:** The default value for `enclave_type` field is unset not `Default`.\n" }, "licenseType": { "type": "string", @@ -217213,7 +217486,7 @@ }, "maintenanceConfigurationName": { "type": "string", - "description": "The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`.\n" + "description": "The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`.\n" }, "maxSizeBytes": { "type": "integer", @@ -217256,6 +217529,7 @@ } }, "required": [ + "enclaveType", "licenseType", "location", "maxSizeBytes", @@ -217269,7 +217543,7 @@ "inputProperties": { "enclaveType": { "type": "string", - "description": "Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`.\n\n\u003e **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool.\n\n\u003e **NOTE:** `enclave_type` is not supported for DC-series SKUs.\n" + "description": "Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. \u003c!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-\u003e Possible values are `Default` or `VBS`.\n\n\u003e **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool.\n\n\u003e **NOTE:** `enclave_type` is not supported for DC-series SKUs.\n\n\u003e **NOTE:** The default value for `enclave_type` field is unset not `Default`.\n" }, "licenseType": { "type": "string", @@ -217282,7 +217556,7 @@ }, "maintenanceConfigurationName": { "type": "string", - "description": "The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`.\n" + "description": "The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`.\n" }, "maxSizeBytes": { "type": "integer", @@ -217338,7 +217612,7 @@ "properties": { "enclaveType": { "type": "string", - "description": "Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`.\n\n\u003e **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool.\n\n\u003e **NOTE:** `enclave_type` is not supported for DC-series SKUs.\n" + "description": "Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. \u003c!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-\u003e Possible values are `Default` or `VBS`.\n\n\u003e **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool.\n\n\u003e **NOTE:** `enclave_type` is not supported for DC-series SKUs.\n\n\u003e **NOTE:** The default value for `enclave_type` field is unset not `Default`.\n" }, "licenseType": { "type": "string", @@ -217351,7 +217625,7 @@ }, "maintenanceConfigurationName": { "type": "string", - "description": "The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`.\n" + "description": "The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`.\n" }, "maxSizeBytes": { "type": "integer", @@ -219074,6 +219348,13 @@ "azure:mssql/serverExtendedAuditingPolicy:ServerExtendedAuditingPolicy": { "description": "Manages a MS SQL Server Extended Auditing Policy.\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 exampleServer = new azure.mssql.Server(\"example\", {\n name: \"example-sqlserver\",\n resourceGroupName: example.name,\n location: example.location,\n version: \"12.0\",\n administratorLogin: \"missadministrator\",\n administratorLoginPassword: \"AdminPassword123!\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"examplesa\",\n resourceGroupName: example.name,\n location: example.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n});\nconst exampleServerExtendedAuditingPolicy = new azure.mssql.ServerExtendedAuditingPolicy(\"example\", {\n serverId: exampleServer.id,\n storageEndpoint: exampleAccount.primaryBlobEndpoint,\n storageAccountAccessKey: exampleAccount.primaryAccessKey,\n storageAccountAccessKeyIsSecondary: false,\n retentionInDays: 6,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"West Europe\")\nexample_server = azure.mssql.Server(\"example\",\n name=\"example-sqlserver\",\n resource_group_name=example.name,\n location=example.location,\n version=\"12.0\",\n administrator_login=\"missadministrator\",\n administrator_login_password=\"AdminPassword123!\")\nexample_account = azure.storage.Account(\"example\",\n name=\"examplesa\",\n resource_group_name=example.name,\n location=example.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\")\nexample_server_extended_auditing_policy = azure.mssql.ServerExtendedAuditingPolicy(\"example\",\n server_id=example_server.id,\n storage_endpoint=example_account.primary_blob_endpoint,\n storage_account_access_key=example_account.primary_access_key,\n storage_account_access_key_is_secondary=False,\n retention_in_days=6)\n```\n```csharp\nusing 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 exampleServer = new Azure.MSSql.Server(\"example\", new()\n {\n Name = \"example-sqlserver\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n Version = \"12.0\",\n AdministratorLogin = \"missadministrator\",\n AdministratorLoginPassword = \"AdminPassword123!\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"examplesa\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n });\n\n var exampleServerExtendedAuditingPolicy = new Azure.MSSql.ServerExtendedAuditingPolicy(\"example\", new()\n {\n ServerId = exampleServer.Id,\n StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n StorageAccountAccessKey = exampleAccount.PrimaryAccessKey,\n StorageAccountAccessKeyIsSecondary = false,\n RetentionInDays = 6,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/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\texampleServer, err := mssql.NewServer(ctx, \"example\", \u0026mssql.ServerArgs{\n\t\t\tName: pulumi.String(\"example-sqlserver\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tVersion: pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin: pulumi.String(\"missadministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"AdminPassword123!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"examplesa\"),\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 = mssql.NewServerExtendedAuditingPolicy(ctx, \"example\", \u0026mssql.ServerExtendedAuditingPolicyArgs{\n\t\t\tServerId: exampleServer.ID(),\n\t\t\tStorageEndpoint: exampleAccount.PrimaryBlobEndpoint,\n\t\t\tStorageAccountAccessKey: exampleAccount.PrimaryAccessKey,\n\t\t\tStorageAccountAccessKeyIsSecondary: pulumi.Bool(false),\n\t\t\tRetentionInDays: pulumi.Int(6),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.mssql.Server;\nimport com.pulumi.azure.mssql.ServerArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.mssql.ServerExtendedAuditingPolicy;\nimport com.pulumi.azure.mssql.ServerExtendedAuditingPolicyArgs;\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 exampleServer = new Server(\"exampleServer\", ServerArgs.builder() \n .name(\"example-sqlserver\")\n .resourceGroupName(example.name())\n .location(example.location())\n .version(\"12.0\")\n .administratorLogin(\"missadministrator\")\n .administratorLoginPassword(\"AdminPassword123!\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"examplesa\")\n .resourceGroupName(example.name())\n .location(example.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .build());\n\n var exampleServerExtendedAuditingPolicy = new ServerExtendedAuditingPolicy(\"exampleServerExtendedAuditingPolicy\", ServerExtendedAuditingPolicyArgs.builder() \n .serverId(exampleServer.id())\n .storageEndpoint(exampleAccount.primaryBlobEndpoint())\n .storageAccountAccessKey(exampleAccount.primaryAccessKey())\n .storageAccountAccessKeyIsSecondary(false)\n .retentionInDays(6)\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 exampleServer:\n type: azure:mssql:Server\n name: example\n properties:\n name: example-sqlserver\n resourceGroupName: ${example.name}\n location: ${example.location}\n version: '12.0'\n administratorLogin: missadministrator\n administratorLoginPassword: AdminPassword123!\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: examplesa\n resourceGroupName: ${example.name}\n location: ${example.location}\n accountTier: Standard\n accountReplicationType: LRS\n exampleServerExtendedAuditingPolicy:\n type: azure:mssql:ServerExtendedAuditingPolicy\n name: example\n properties:\n serverId: ${exampleServer.id}\n storageEndpoint: ${exampleAccount.primaryBlobEndpoint}\n storageAccountAccessKey: ${exampleAccount.primaryAccessKey}\n storageAccountAccessKeyIsSecondary: false\n retentionInDays: 6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### With Storage Account Behind VNet And Firewall\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst primary = azure.core.getSubscription({});\nconst example = azure.core.getClientConfig({});\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"example\", {\n name: \"example\",\n location: \"West Europe\",\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"example\", {\n name: \"virtnetname-1\",\n addressSpaces: [\"10.0.0.0/16\"],\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"example\", {\n name: \"subnetname-1\",\n resourceGroupName: exampleResourceGroup.name,\n virtualNetworkName: exampleVirtualNetwork.name,\n addressPrefixes: [\"10.0.2.0/24\"],\n serviceEndpoints: [\n \"Microsoft.Sql\",\n \"Microsoft.Storage\",\n ],\n enforcePrivateLinkEndpointNetworkPolicies: true,\n});\nconst exampleServer = new azure.mssql.Server(\"example\", {\n name: \"example-sqlserver\",\n resourceGroupName: exampleResourceGroup.name,\n location: exampleResourceGroup.location,\n version: \"12.0\",\n administratorLogin: \"missadministrator\",\n administratorLoginPassword: \"AdminPassword123!\",\n minimumTlsVersion: \"1.2\",\n identity: {\n type: \"SystemAssigned\",\n },\n});\nconst exampleAssignment = new azure.authorization.Assignment(\"example\", {\n scope: primary.then(primary =\u003e primary.id),\n roleDefinitionName: \"Storage Blob Data Contributor\",\n principalId: exampleServer.identity.apply(identity =\u003e identity?.principalId),\n});\nconst sqlvnetrule = new azure.sql.VirtualNetworkRule(\"sqlvnetrule\", {\n name: \"sql-vnet-rule\",\n resourceGroupName: exampleResourceGroup.name,\n serverName: exampleServer.name,\n subnetId: exampleSubnet.id,\n});\nconst exampleFirewallRule = new azure.sql.FirewallRule(\"example\", {\n name: \"FirewallRule1\",\n resourceGroupName: exampleResourceGroup.name,\n serverName: exampleServer.name,\n startIpAddress: \"0.0.0.0\",\n endIpAddress: \"0.0.0.0\",\n});\nconst exampleAccount = new azure.storage.Account(\"example\", {\n name: \"examplesa\",\n resourceGroupName: exampleResourceGroup.name,\n location: exampleResourceGroup.location,\n accountTier: \"Standard\",\n accountReplicationType: \"LRS\",\n accountKind: \"StorageV2\",\n allowNestedItemsToBePublic: false,\n networkRules: {\n defaultAction: \"Deny\",\n ipRules: [\"127.0.0.1\"],\n virtualNetworkSubnetIds: [exampleSubnet.id],\n bypasses: [\"AzureServices\"],\n },\n identity: {\n type: \"SystemAssigned\",\n },\n});\nconst exampleServerExtendedAuditingPolicy = new azure.mssql.ServerExtendedAuditingPolicy(\"example\", {\n storageEndpoint: exampleAccount.primaryBlobEndpoint,\n serverId: exampleServer.id,\n retentionInDays: 6,\n logMonitoringEnabled: false,\n storageAccountSubscriptionId: primaryAzurermSubscription.subscriptionId,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nprimary = azure.core.get_subscription()\nexample = azure.core.get_client_config()\nexample_resource_group = azure.core.ResourceGroup(\"example\",\n name=\"example\",\n location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"example\",\n name=\"virtnetname-1\",\n address_spaces=[\"10.0.0.0/16\"],\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"example\",\n name=\"subnetname-1\",\n resource_group_name=example_resource_group.name,\n virtual_network_name=example_virtual_network.name,\n address_prefixes=[\"10.0.2.0/24\"],\n service_endpoints=[\n \"Microsoft.Sql\",\n \"Microsoft.Storage\",\n ],\n enforce_private_link_endpoint_network_policies=True)\nexample_server = azure.mssql.Server(\"example\",\n name=\"example-sqlserver\",\n resource_group_name=example_resource_group.name,\n location=example_resource_group.location,\n version=\"12.0\",\n administrator_login=\"missadministrator\",\n administrator_login_password=\"AdminPassword123!\",\n minimum_tls_version=\"1.2\",\n identity=azure.mssql.ServerIdentityArgs(\n type=\"SystemAssigned\",\n ))\nexample_assignment = azure.authorization.Assignment(\"example\",\n scope=primary.id,\n role_definition_name=\"Storage Blob Data Contributor\",\n principal_id=example_server.identity.principal_id)\nsqlvnetrule = azure.sql.VirtualNetworkRule(\"sqlvnetrule\",\n name=\"sql-vnet-rule\",\n resource_group_name=example_resource_group.name,\n server_name=example_server.name,\n subnet_id=example_subnet.id)\nexample_firewall_rule = azure.sql.FirewallRule(\"example\",\n name=\"FirewallRule1\",\n resource_group_name=example_resource_group.name,\n server_name=example_server.name,\n start_ip_address=\"0.0.0.0\",\n end_ip_address=\"0.0.0.0\")\nexample_account = azure.storage.Account(\"example\",\n name=\"examplesa\",\n resource_group_name=example_resource_group.name,\n location=example_resource_group.location,\n account_tier=\"Standard\",\n account_replication_type=\"LRS\",\n account_kind=\"StorageV2\",\n allow_nested_items_to_be_public=False,\n network_rules=azure.storage.AccountNetworkRulesArgs(\n default_action=\"Deny\",\n ip_rules=[\"127.0.0.1\"],\n virtual_network_subnet_ids=[example_subnet.id],\n bypasses=[\"AzureServices\"],\n ),\n identity=azure.storage.AccountIdentityArgs(\n type=\"SystemAssigned\",\n ))\nexample_server_extended_auditing_policy = azure.mssql.ServerExtendedAuditingPolicy(\"example\",\n storage_endpoint=example_account.primary_blob_endpoint,\n server_id=example_server.id,\n retention_in_days=6,\n log_monitoring_enabled=False,\n storage_account_subscription_id=primary_azurerm_subscription[\"subscriptionId\"])\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 primary = Azure.Core.GetSubscription.Invoke();\n\n var example = Azure.Core.GetClientConfig.Invoke();\n\n var exampleResourceGroup = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example\",\n Location = \"West Europe\",\n });\n\n var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"example\", new()\n {\n Name = \"virtnetname-1\",\n AddressSpaces = new[]\n {\n \"10.0.0.0/16\",\n },\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n });\n\n var exampleSubnet = new Azure.Network.Subnet(\"example\", new()\n {\n Name = \"subnetname-1\",\n ResourceGroupName = exampleResourceGroup.Name,\n VirtualNetworkName = exampleVirtualNetwork.Name,\n AddressPrefixes = new[]\n {\n \"10.0.2.0/24\",\n },\n ServiceEndpoints = new[]\n {\n \"Microsoft.Sql\",\n \"Microsoft.Storage\",\n },\n EnforcePrivateLinkEndpointNetworkPolicies = true,\n });\n\n var exampleServer = new Azure.MSSql.Server(\"example\", new()\n {\n Name = \"example-sqlserver\",\n ResourceGroupName = exampleResourceGroup.Name,\n Location = exampleResourceGroup.Location,\n Version = \"12.0\",\n AdministratorLogin = \"missadministrator\",\n AdministratorLoginPassword = \"AdminPassword123!\",\n MinimumTlsVersion = \"1.2\",\n Identity = new Azure.MSSql.Inputs.ServerIdentityArgs\n {\n Type = \"SystemAssigned\",\n },\n });\n\n var exampleAssignment = new Azure.Authorization.Assignment(\"example\", new()\n {\n Scope = primary.Apply(getSubscriptionResult =\u003e getSubscriptionResult.Id),\n RoleDefinitionName = \"Storage Blob Data Contributor\",\n PrincipalId = exampleServer.Identity.Apply(identity =\u003e identity?.PrincipalId),\n });\n\n var sqlvnetrule = new Azure.Sql.VirtualNetworkRule(\"sqlvnetrule\", new()\n {\n Name = \"sql-vnet-rule\",\n ResourceGroupName = exampleResourceGroup.Name,\n ServerName = exampleServer.Name,\n SubnetId = exampleSubnet.Id,\n });\n\n var exampleFirewallRule = new Azure.Sql.FirewallRule(\"example\", new()\n {\n Name = \"FirewallRule1\",\n ResourceGroupName = exampleResourceGroup.Name,\n ServerName = exampleServer.Name,\n StartIpAddress = \"0.0.0.0\",\n EndIpAddress = \"0.0.0.0\",\n });\n\n var exampleAccount = new Azure.Storage.Account(\"example\", new()\n {\n Name = \"examplesa\",\n ResourceGroupName = exampleResourceGroup.Name,\n Location = exampleResourceGroup.Location,\n AccountTier = \"Standard\",\n AccountReplicationType = \"LRS\",\n AccountKind = \"StorageV2\",\n AllowNestedItemsToBePublic = false,\n NetworkRules = new Azure.Storage.Inputs.AccountNetworkRulesArgs\n {\n DefaultAction = \"Deny\",\n IpRules = new[]\n {\n \"127.0.0.1\",\n },\n VirtualNetworkSubnetIds = new[]\n {\n exampleSubnet.Id,\n },\n Bypasses = new[]\n {\n \"AzureServices\",\n },\n },\n Identity = new Azure.Storage.Inputs.AccountIdentityArgs\n {\n Type = \"SystemAssigned\",\n },\n });\n\n var exampleServerExtendedAuditingPolicy = new Azure.MSSql.ServerExtendedAuditingPolicy(\"example\", new()\n {\n StorageEndpoint = exampleAccount.PrimaryBlobEndpoint,\n ServerId = exampleServer.Id,\n RetentionInDays = 6,\n LogMonitoringEnabled = false,\n StorageAccountSubscriptionId = primaryAzurermSubscription.SubscriptionId,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/mssql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/sql\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/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\tprimary, err := core.LookupSubscription(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"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\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"example\", \u0026network.VirtualNetworkArgs{\n\t\t\tName: pulumi.String(\"virtnetname-1\"),\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"example\", \u0026network.SubnetArgs{\n\t\t\tName: pulumi.String(\"subnetname-1\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t\tServiceEndpoints: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Microsoft.Sql\"),\n\t\t\t\tpulumi.String(\"Microsoft.Storage\"),\n\t\t\t},\n\t\t\tEnforcePrivateLinkEndpointNetworkPolicies: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServer, err := mssql.NewServer(ctx, \"example\", \u0026mssql.ServerArgs{\n\t\t\tName: pulumi.String(\"example-sqlserver\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tVersion: pulumi.String(\"12.0\"),\n\t\t\tAdministratorLogin: pulumi.String(\"missadministrator\"),\n\t\t\tAdministratorLoginPassword: pulumi.String(\"AdminPassword123!\"),\n\t\t\tMinimumTlsVersion: pulumi.String(\"1.2\"),\n\t\t\tIdentity: \u0026mssql.ServerIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = authorization.NewAssignment(ctx, \"example\", \u0026authorization.AssignmentArgs{\n\t\t\tScope: pulumi.String(primary.Id),\n\t\t\tRoleDefinitionName: pulumi.String(\"Storage Blob Data Contributor\"),\n\t\t\tPrincipalId: exampleServer.Identity.ApplyT(func(identity mssql.ServerIdentity) (*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 = sql.NewVirtualNetworkRule(ctx, \"sqlvnetrule\", \u0026sql.VirtualNetworkRuleArgs{\n\t\t\tName: pulumi.String(\"sql-vnet-rule\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName: exampleServer.Name,\n\t\t\tSubnetId: exampleSubnet.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sql.NewFirewallRule(ctx, \"example\", \u0026sql.FirewallRuleArgs{\n\t\t\tName: pulumi.String(\"FirewallRule1\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tServerName: exampleServer.Name,\n\t\t\tStartIpAddress: pulumi.String(\"0.0.0.0\"),\n\t\t\tEndIpAddress: pulumi.String(\"0.0.0.0\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAccount, err := storage.NewAccount(ctx, \"example\", \u0026storage.AccountArgs{\n\t\t\tName: pulumi.String(\"examplesa\"),\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tAccountTier: pulumi.String(\"Standard\"),\n\t\t\tAccountReplicationType: pulumi.String(\"LRS\"),\n\t\t\tAccountKind: pulumi.String(\"StorageV2\"),\n\t\t\tAllowNestedItemsToBePublic: pulumi.Bool(false),\n\t\t\tNetworkRules: \u0026storage.AccountNetworkRulesTypeArgs{\n\t\t\t\tDefaultAction: pulumi.String(\"Deny\"),\n\t\t\t\tIpRules: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"127.0.0.1\"),\n\t\t\t\t},\n\t\t\t\tVirtualNetworkSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleSubnet.ID(),\n\t\t\t\t},\n\t\t\t\tBypasses: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"AzureServices\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIdentity: \u0026storage.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"SystemAssigned\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = mssql.NewServerExtendedAuditingPolicy(ctx, \"example\", \u0026mssql.ServerExtendedAuditingPolicyArgs{\n\t\t\tStorageEndpoint: exampleAccount.PrimaryBlobEndpoint,\n\t\t\tServerId: exampleServer.ID(),\n\t\t\tRetentionInDays: pulumi.Int(6),\n\t\t\tLogMonitoringEnabled: pulumi.Bool(false),\n\t\t\tStorageAccountSubscriptionId: pulumi.Any(primaryAzurermSubscription.SubscriptionId),\n\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.inputs.GetSubscriptionArgs;\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.mssql.Server;\nimport com.pulumi.azure.mssql.ServerArgs;\nimport com.pulumi.azure.mssql.inputs.ServerIdentityArgs;\nimport com.pulumi.azure.authorization.Assignment;\nimport com.pulumi.azure.authorization.AssignmentArgs;\nimport com.pulumi.azure.sql.VirtualNetworkRule;\nimport com.pulumi.azure.sql.VirtualNetworkRuleArgs;\nimport com.pulumi.azure.sql.FirewallRule;\nimport com.pulumi.azure.sql.FirewallRuleArgs;\nimport com.pulumi.azure.storage.Account;\nimport com.pulumi.azure.storage.AccountArgs;\nimport com.pulumi.azure.storage.inputs.AccountNetworkRulesArgs;\nimport com.pulumi.azure.storage.inputs.AccountIdentityArgs;\nimport com.pulumi.azure.mssql.ServerExtendedAuditingPolicy;\nimport com.pulumi.azure.mssql.ServerExtendedAuditingPolicyArgs;\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 primary = CoreFunctions.getSubscription();\n\n final var example = CoreFunctions.getClientConfig();\n\n var exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .name(\"example\")\n .location(\"West Europe\")\n .build());\n\n var exampleVirtualNetwork = new VirtualNetwork(\"exampleVirtualNetwork\", VirtualNetworkArgs.builder() \n .name(\"virtnetname-1\")\n .addressSpaces(\"10.0.0.0/16\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .build());\n\n var exampleSubnet = new Subnet(\"exampleSubnet\", SubnetArgs.builder() \n .name(\"subnetname-1\")\n .resourceGroupName(exampleResourceGroup.name())\n .virtualNetworkName(exampleVirtualNetwork.name())\n .addressPrefixes(\"10.0.2.0/24\")\n .serviceEndpoints( \n \"Microsoft.Sql\",\n \"Microsoft.Storage\")\n .enforcePrivateLinkEndpointNetworkPolicies(true)\n .build());\n\n var exampleServer = new Server(\"exampleServer\", ServerArgs.builder() \n .name(\"example-sqlserver\")\n .resourceGroupName(exampleResourceGroup.name())\n .location(exampleResourceGroup.location())\n .version(\"12.0\")\n .administratorLogin(\"missadministrator\")\n .administratorLoginPassword(\"AdminPassword123!\")\n .minimumTlsVersion(\"1.2\")\n .identity(ServerIdentityArgs.builder()\n .type(\"SystemAssigned\")\n .build())\n .build());\n\n var exampleAssignment = new Assignment(\"exampleAssignment\", AssignmentArgs.builder() \n .scope(primary.applyValue(getSubscriptionResult -\u003e getSubscriptionResult.id()))\n .roleDefinitionName(\"Storage Blob Data Contributor\")\n .principalId(exampleServer.identity().applyValue(identity -\u003e identity.principalId()))\n .build());\n\n var sqlvnetrule = new VirtualNetworkRule(\"sqlvnetrule\", VirtualNetworkRuleArgs.builder() \n .name(\"sql-vnet-rule\")\n .resourceGroupName(exampleResourceGroup.name())\n .serverName(exampleServer.name())\n .subnetId(exampleSubnet.id())\n .build());\n\n var exampleFirewallRule = new FirewallRule(\"exampleFirewallRule\", FirewallRuleArgs.builder() \n .name(\"FirewallRule1\")\n .resourceGroupName(exampleResourceGroup.name())\n .serverName(exampleServer.name())\n .startIpAddress(\"0.0.0.0\")\n .endIpAddress(\"0.0.0.0\")\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"examplesa\")\n .resourceGroupName(exampleResourceGroup.name())\n .location(exampleResourceGroup.location())\n .accountTier(\"Standard\")\n .accountReplicationType(\"LRS\")\n .accountKind(\"StorageV2\")\n .allowNestedItemsToBePublic(false)\n .networkRules(AccountNetworkRulesArgs.builder()\n .defaultAction(\"Deny\")\n .ipRules(\"127.0.0.1\")\n .virtualNetworkSubnetIds(exampleSubnet.id())\n .bypasses(\"AzureServices\")\n .build())\n .identity(AccountIdentityArgs.builder()\n .type(\"SystemAssigned\")\n .build())\n .build());\n\n var exampleServerExtendedAuditingPolicy = new ServerExtendedAuditingPolicy(\"exampleServerExtendedAuditingPolicy\", ServerExtendedAuditingPolicyArgs.builder() \n .storageEndpoint(exampleAccount.primaryBlobEndpoint())\n .serverId(exampleServer.id())\n .retentionInDays(6)\n .logMonitoringEnabled(false)\n .storageAccountSubscriptionId(primaryAzurermSubscription.subscriptionId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n name: example\n properties:\n name: example\n location: West Europe\n exampleVirtualNetwork:\n type: azure:network:VirtualNetwork\n name: example\n properties:\n name: virtnetname-1\n addressSpaces:\n - 10.0.0.0/16\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n exampleSubnet:\n type: azure:network:Subnet\n name: example\n properties:\n name: subnetname-1\n resourceGroupName: ${exampleResourceGroup.name}\n virtualNetworkName: ${exampleVirtualNetwork.name}\n addressPrefixes:\n - 10.0.2.0/24\n serviceEndpoints:\n - Microsoft.Sql\n - Microsoft.Storage\n enforcePrivateLinkEndpointNetworkPolicies: true\n exampleAssignment:\n type: azure:authorization:Assignment\n name: example\n properties:\n scope: ${primary.id}\n roleDefinitionName: Storage Blob Data Contributor\n principalId: ${exampleServer.identity.principalId}\n exampleServer:\n type: azure:mssql:Server\n name: example\n properties:\n name: example-sqlserver\n resourceGroupName: ${exampleResourceGroup.name}\n location: ${exampleResourceGroup.location}\n version: '12.0'\n administratorLogin: missadministrator\n administratorLoginPassword: AdminPassword123!\n minimumTlsVersion: '1.2'\n identity:\n type: SystemAssigned\n sqlvnetrule:\n type: azure:sql:VirtualNetworkRule\n properties:\n name: sql-vnet-rule\n resourceGroupName: ${exampleResourceGroup.name}\n serverName: ${exampleServer.name}\n subnetId: ${exampleSubnet.id}\n exampleFirewallRule:\n type: azure:sql:FirewallRule\n name: example\n properties:\n name: FirewallRule1\n resourceGroupName: ${exampleResourceGroup.name}\n serverName: ${exampleServer.name}\n startIpAddress: 0.0.0.0\n endIpAddress: 0.0.0.0\n exampleAccount:\n type: azure:storage:Account\n name: example\n properties:\n name: examplesa\n resourceGroupName: ${exampleResourceGroup.name}\n location: ${exampleResourceGroup.location}\n accountTier: Standard\n accountReplicationType: LRS\n accountKind: StorageV2\n allowNestedItemsToBePublic: false\n networkRules:\n defaultAction: Deny\n ipRules:\n - 127.0.0.1\n virtualNetworkSubnetIds:\n - ${exampleSubnet.id}\n bypasses:\n - AzureServices\n identity:\n type: SystemAssigned\n exampleServerExtendedAuditingPolicy:\n type: azure:mssql:ServerExtendedAuditingPolicy\n name: example\n properties:\n storageEndpoint: ${exampleAccount.primaryBlobEndpoint}\n serverId: ${exampleServer.id}\n retentionInDays: 6\n logMonitoringEnabled: false\n storageAccountSubscriptionId: ${primaryAzurermSubscription.subscriptionId}\nvariables:\n primary:\n fn::invoke:\n Function: azure:core:getSubscription\n Arguments: {}\n example:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Import\n\nMS SQL Server Extended Auditing Policies can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:mssql/serverExtendedAuditingPolicy:ServerExtendedAuditingPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Sql/servers/sqlServer1/extendedAuditingSettings/default\n```\n\n", "properties": { + "auditActionsAndGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of Actions-Groups and Actions to audit.\n" + }, "enabled": { "type": "boolean", "description": "Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`.\n\n-\u003e**NOTE:** If `enabled` is `true`, `storage_endpoint` or `log_monitoring_enabled` are required.\n" @@ -219082,6 +219363,10 @@ "type": "boolean", "description": "Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its main database audit events to Azure Monitor. Defaults to `true`.\n" }, + "predicateExpression": { + "type": "string", + "description": "Specifies condition of where clause when creating an audit.\n" + }, "retentionInDays": { "type": "integer", "description": "The number of days to retain logs for in the storage account. Defaults to `0`.\n" @@ -219110,9 +219395,17 @@ } }, "required": [ + "auditActionsAndGroups", "serverId" ], "inputProperties": { + "auditActionsAndGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of Actions-Groups and Actions to audit.\n" + }, "enabled": { "type": "boolean", "description": "Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`.\n\n-\u003e**NOTE:** If `enabled` is `true`, `storage_endpoint` or `log_monitoring_enabled` are required.\n" @@ -219121,6 +219414,10 @@ "type": "boolean", "description": "Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its main database audit events to Azure Monitor. Defaults to `true`.\n" }, + "predicateExpression": { + "type": "string", + "description": "Specifies condition of where clause when creating an audit.\n" + }, "retentionInDays": { "type": "integer", "description": "The number of days to retain logs for in the storage account. Defaults to `0`.\n" @@ -219155,6 +219452,13 @@ "stateInputs": { "description": "Input properties used for looking up and filtering ServerExtendedAuditingPolicy resources.\n", "properties": { + "auditActionsAndGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of Actions-Groups and Actions to audit.\n" + }, "enabled": { "type": "boolean", "description": "Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`.\n\n-\u003e**NOTE:** If `enabled` is `true`, `storage_endpoint` or `log_monitoring_enabled` are required.\n" @@ -219163,6 +219467,10 @@ "type": "boolean", "description": "Enable audit events to Azure Monitor? To enable server audit events to Azure Monitor, please enable its main database audit events to Azure Monitor. Defaults to `true`.\n" }, + "predicateExpression": { + "type": "string", + "description": "Specifies condition of where clause when creating an audit.\n" + }, "retentionInDays": { "type": "integer", "description": "The number of days to retain logs for in the storage account. Defaults to `0`.\n" @@ -221734,7 +222042,7 @@ } }, "azure:netapp/account:Account": { - "description": "Manages a NetApp Account.\n\n\u003e **NOTE:** Azure allows only one active directory can be joined to a single subscription at a time for NetApp Account.\n\n## NetApp Account Usage\n\n\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 current = azure.core.getClientConfig({});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"example\", {\n name: \"anf-user-assigned-identity\",\n location: example.location,\n resourceGroupName: example.name,\n});\nconst exampleAccount = new azure.netapp.Account(\"example\", {\n name: \"netappaccount\",\n location: example.location,\n resourceGroupName: example.name,\n activeDirectory: {\n username: \"aduser\",\n password: \"aduserpwd\",\n smbServerName: \"SMBSERVER\",\n dnsServers: [\"1.2.3.4\"],\n domain: \"westcentralus.com\",\n organizationalUnit: \"OU=FirstLevel\",\n },\n identity: {\n type: \"UserAssigned\",\n identityIds: [exampleUserAssignedIdentity.id],\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\")\ncurrent = azure.core.get_client_config()\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"example\",\n name=\"anf-user-assigned-identity\",\n location=example.location,\n resource_group_name=example.name)\nexample_account = azure.netapp.Account(\"example\",\n name=\"netappaccount\",\n location=example.location,\n resource_group_name=example.name,\n active_directory=azure.netapp.AccountActiveDirectoryArgs(\n username=\"aduser\",\n password=\"aduserpwd\",\n smb_server_name=\"SMBSERVER\",\n dns_servers=[\"1.2.3.4\"],\n domain=\"westcentralus.com\",\n organizational_unit=\"OU=FirstLevel\",\n ),\n identity=azure.netapp.AccountIdentityArgs(\n type=\"UserAssigned\",\n identity_ids=[example_user_assigned_identity.id],\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 current = Azure.Core.GetClientConfig.Invoke();\n\n var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"example\", new()\n {\n Name = \"anf-user-assigned-identity\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n });\n\n var exampleAccount = new Azure.NetApp.Account(\"example\", new()\n {\n Name = \"netappaccount\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ActiveDirectory = new Azure.NetApp.Inputs.AccountActiveDirectoryArgs\n {\n Username = \"aduser\",\n Password = \"aduserpwd\",\n SmbServerName = \"SMBSERVER\",\n DnsServers = new[]\n {\n \"1.2.3.4\",\n },\n Domain = \"westcentralus.com\",\n OrganizationalUnit = \"OU=FirstLevel\",\n },\n Identity = new Azure.NetApp.Inputs.AccountIdentityArgs\n {\n Type = \"UserAssigned\",\n IdentityIds = new[]\n {\n exampleUserAssignedIdentity.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := 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 = core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"example\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tName: pulumi.String(\"anf-user-assigned-identity\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = netapp.NewAccount(ctx, \"example\", \u0026netapp.AccountArgs{\n\t\t\tName: pulumi.String(\"netappaccount\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tActiveDirectory: \u0026netapp.AccountActiveDirectoryArgs{\n\t\t\t\tUsername: pulumi.String(\"aduser\"),\n\t\t\t\tPassword: pulumi.String(\"aduserpwd\"),\n\t\t\t\tSmbServerName: pulumi.String(\"SMBSERVER\"),\n\t\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1.2.3.4\"),\n\t\t\t\t},\n\t\t\t\tDomain: pulumi.String(\"westcentralus.com\"),\n\t\t\t\tOrganizationalUnit: pulumi.String(\"OU=FirstLevel\"),\n\t\t\t},\n\t\t\tIdentity: \u0026netapp.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\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.core.CoreFunctions;\nimport com.pulumi.azure.authorization.UserAssignedIdentity;\nimport com.pulumi.azure.authorization.UserAssignedIdentityArgs;\nimport com.pulumi.azure.netapp.Account;\nimport com.pulumi.azure.netapp.AccountArgs;\nimport com.pulumi.azure.netapp.inputs.AccountActiveDirectoryArgs;\nimport com.pulumi.azure.netapp.inputs.AccountIdentityArgs;\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 final var current = CoreFunctions.getClientConfig();\n\n var exampleUserAssignedIdentity = new UserAssignedIdentity(\"exampleUserAssignedIdentity\", UserAssignedIdentityArgs.builder() \n .name(\"anf-user-assigned-identity\")\n .location(example.location())\n .resourceGroupName(example.name())\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"netappaccount\")\n .location(example.location())\n .resourceGroupName(example.name())\n .activeDirectory(AccountActiveDirectoryArgs.builder()\n .username(\"aduser\")\n .password(\"aduserpwd\")\n .smbServerName(\"SMBSERVER\")\n .dnsServers(\"1.2.3.4\")\n .domain(\"westcentralus.com\")\n .organizationalUnit(\"OU=FirstLevel\")\n .build())\n .identity(AccountIdentityArgs.builder()\n .type(\"UserAssigned\")\n .identityIds(exampleUserAssignedIdentity.id())\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 exampleUserAssignedIdentity:\n type: azure:authorization:UserAssignedIdentity\n name: example\n properties:\n name: anf-user-assigned-identity\n location: ${example.location}\n resourceGroupName: ${example.name}\n exampleAccount:\n type: azure:netapp:Account\n name: example\n properties:\n name: netappaccount\n location: ${example.location}\n resourceGroupName: ${example.name}\n activeDirectory:\n username: aduser\n password: aduserpwd\n smbServerName: SMBSERVER\n dnsServers:\n - 1.2.3.4\n domain: westcentralus.com\n organizationalUnit: OU=FirstLevel\n identity:\n type: UserAssigned\n identityIds:\n - ${exampleUserAssignedIdentity.id}\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNetApp Accounts can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:netapp/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1\n```\n\n", + "description": "Manages a NetApp Account.\n\n\u003e **NOTE:** Azure allows only one active directory can be joined to a single subscription at a time for NetApp Account.\n\n## NetApp Account Usage\n\n\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 current = azure.core.getClientConfig({});\nconst exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity(\"example\", {\n name: \"anf-user-assigned-identity\",\n location: example.location,\n resourceGroupName: example.name,\n});\nconst exampleAccount = new azure.netapp.Account(\"example\", {\n name: \"netappaccount\",\n location: example.location,\n resourceGroupName: example.name,\n activeDirectory: {\n username: \"aduser\",\n password: \"aduserpwd\",\n smbServerName: \"SMBSERVER\",\n dnsServers: [\"1.2.3.4\"],\n domain: \"westcentralus.com\",\n organizationalUnit: \"OU=FirstLevel\",\n },\n identity: {\n type: \"UserAssigned\",\n identityIds: [exampleUserAssignedIdentity.id],\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\")\ncurrent = azure.core.get_client_config()\nexample_user_assigned_identity = azure.authorization.UserAssignedIdentity(\"example\",\n name=\"anf-user-assigned-identity\",\n location=example.location,\n resource_group_name=example.name)\nexample_account = azure.netapp.Account(\"example\",\n name=\"netappaccount\",\n location=example.location,\n resource_group_name=example.name,\n active_directory=azure.netapp.AccountActiveDirectoryArgs(\n username=\"aduser\",\n password=\"aduserpwd\",\n smb_server_name=\"SMBSERVER\",\n dns_servers=[\"1.2.3.4\"],\n domain=\"westcentralus.com\",\n organizational_unit=\"OU=FirstLevel\",\n ),\n identity=azure.netapp.AccountIdentityArgs(\n type=\"UserAssigned\",\n identity_ids=[example_user_assigned_identity.id],\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 current = Azure.Core.GetClientConfig.Invoke();\n\n var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity(\"example\", new()\n {\n Name = \"anf-user-assigned-identity\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n });\n\n var exampleAccount = new Azure.NetApp.Account(\"example\", new()\n {\n Name = \"netappaccount\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n ActiveDirectory = new Azure.NetApp.Inputs.AccountActiveDirectoryArgs\n {\n Username = \"aduser\",\n Password = \"aduserpwd\",\n SmbServerName = \"SMBSERVER\",\n DnsServers = new[]\n {\n \"1.2.3.4\",\n },\n Domain = \"westcentralus.com\",\n OrganizationalUnit = \"OU=FirstLevel\",\n },\n Identity = new Azure.NetApp.Inputs.AccountIdentityArgs\n {\n Type = \"UserAssigned\",\n IdentityIds = new[]\n {\n exampleUserAssignedIdentity.Id,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/authorization\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/netapp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := 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 = core.GetClientConfig(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, \"example\", \u0026authorization.UserAssignedIdentityArgs{\n\t\t\tName: pulumi.String(\"anf-user-assigned-identity\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = netapp.NewAccount(ctx, \"example\", \u0026netapp.AccountArgs{\n\t\t\tName: pulumi.String(\"netappaccount\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tActiveDirectory: \u0026netapp.AccountActiveDirectoryArgs{\n\t\t\t\tUsername: pulumi.String(\"aduser\"),\n\t\t\t\tPassword: pulumi.String(\"aduserpwd\"),\n\t\t\t\tSmbServerName: pulumi.String(\"SMBSERVER\"),\n\t\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"1.2.3.4\"),\n\t\t\t\t},\n\t\t\t\tDomain: pulumi.String(\"westcentralus.com\"),\n\t\t\t\tOrganizationalUnit: pulumi.String(\"OU=FirstLevel\"),\n\t\t\t},\n\t\t\tIdentity: \u0026netapp.AccountIdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\texampleUserAssignedIdentity.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\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.core.CoreFunctions;\nimport com.pulumi.azure.authorization.UserAssignedIdentity;\nimport com.pulumi.azure.authorization.UserAssignedIdentityArgs;\nimport com.pulumi.azure.netapp.Account;\nimport com.pulumi.azure.netapp.AccountArgs;\nimport com.pulumi.azure.netapp.inputs.AccountActiveDirectoryArgs;\nimport com.pulumi.azure.netapp.inputs.AccountIdentityArgs;\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 final var current = CoreFunctions.getClientConfig();\n\n var exampleUserAssignedIdentity = new UserAssignedIdentity(\"exampleUserAssignedIdentity\", UserAssignedIdentityArgs.builder() \n .name(\"anf-user-assigned-identity\")\n .location(example.location())\n .resourceGroupName(example.name())\n .build());\n\n var exampleAccount = new Account(\"exampleAccount\", AccountArgs.builder() \n .name(\"netappaccount\")\n .location(example.location())\n .resourceGroupName(example.name())\n .activeDirectory(AccountActiveDirectoryArgs.builder()\n .username(\"aduser\")\n .password(\"aduserpwd\")\n .smbServerName(\"SMBSERVER\")\n .dnsServers(\"1.2.3.4\")\n .domain(\"westcentralus.com\")\n .organizationalUnit(\"OU=FirstLevel\")\n .build())\n .identity(AccountIdentityArgs.builder()\n .type(\"UserAssigned\")\n .identityIds(exampleUserAssignedIdentity.id())\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 exampleUserAssignedIdentity:\n type: azure:authorization:UserAssignedIdentity\n name: example\n properties:\n name: anf-user-assigned-identity\n location: ${example.location}\n resourceGroupName: ${example.name}\n exampleAccount:\n type: azure:netapp:Account\n name: example\n properties:\n name: netappaccount\n location: ${example.location}\n resourceGroupName: ${example.name}\n activeDirectory:\n username: aduser\n password: aduserpwd\n smbServerName: SMBSERVER\n dnsServers:\n - 1.2.3.4\n domain: westcentralus.com\n organizationalUnit: OU=FirstLevel\n identity:\n type: UserAssigned\n identityIds:\n - ${exampleUserAssignedIdentity.id}\nvariables:\n current:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nNetApp Accounts can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:netapp/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1\n```\n\n~\u003e **IMPORTANT:** When importing a NetApp account, the `active_directory.password` and `active_directory.server_root_ca_certificate` values *cannot* be retrieved from the Azure API and will need to be redeclared within the resource.\n\n", "properties": { "activeDirectory": { "$ref": "#/types/azure:netapp/AccountActiveDirectory:AccountActiveDirectory", @@ -222378,6 +222686,10 @@ }, "description": "One or more `export_policy_rule` block defined below.\n" }, + "kerberosEnabled": { + "type": "boolean", + "description": "Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent\n`azurerm_netapp_account` having a defined AD connection.\n" + }, "keyVaultPrivateEndpointId": { "type": "string", "description": "The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created.\n" @@ -222428,6 +222740,10 @@ "type": "boolean", "description": "Limits enumeration of files and folders (that is, listing the contents) in SMB only to users with allowed access on the share. For instance, if a user doesn't have access to read a file or folder in a share with access-based enumeration enabled, then the file or folder doesn't show up in directory listings. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=security%20for%20administrators.-,Access%2Dbased%20enumeration,in%20an%20Azure%20NetApp%20Files%20SMB%20volume.%20Only%20contosoadmin%20has%20access.,-In%20the%20below)\n" }, + "smbContinuousAvailabilityEnabled": { + "type": "boolean", + "description": "Enable SMB Continuous Availability.\n" + }, "smbNonBrowsableEnabled": { "type": "boolean", "description": "Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in \"net view.\" Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.)\n" @@ -222521,6 +222837,11 @@ }, "description": "One or more `export_policy_rule` block defined below.\n" }, + "kerberosEnabled": { + "type": "boolean", + "description": "Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent\n`azurerm_netapp_account` having a defined AD connection.\n", + "willReplaceOnChanges": true + }, "keyVaultPrivateEndpointId": { "type": "string", "description": "The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created.\n", @@ -222572,6 +222893,11 @@ "type": "boolean", "description": "Limits enumeration of files and folders (that is, listing the contents) in SMB only to users with allowed access on the share. For instance, if a user doesn't have access to read a file or folder in a share with access-based enumeration enabled, then the file or folder doesn't show up in directory listings. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=security%20for%20administrators.-,Access%2Dbased%20enumeration,in%20an%20Azure%20NetApp%20Files%20SMB%20volume.%20Only%20contosoadmin%20has%20access.,-In%20the%20below)\n" }, + "smbContinuousAvailabilityEnabled": { + "type": "boolean", + "description": "Enable SMB Continuous Availability.\n", + "willReplaceOnChanges": true + }, "smbNonBrowsableEnabled": { "type": "boolean", "description": "Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in \"net view.\" Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.)\n" @@ -222659,6 +222985,11 @@ }, "description": "One or more `export_policy_rule` block defined below.\n" }, + "kerberosEnabled": { + "type": "boolean", + "description": "Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent\n`azurerm_netapp_account` having a defined AD connection.\n", + "willReplaceOnChanges": true + }, "keyVaultPrivateEndpointId": { "type": "string", "description": "The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created.\n", @@ -222717,6 +223048,11 @@ "type": "boolean", "description": "Limits enumeration of files and folders (that is, listing the contents) in SMB only to users with allowed access on the share. For instance, if a user doesn't have access to read a file or folder in a share with access-based enumeration enabled, then the file or folder doesn't show up in directory listings. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=security%20for%20administrators.-,Access%2Dbased%20enumeration,in%20an%20Azure%20NetApp%20Files%20SMB%20volume.%20Only%20contosoadmin%20has%20access.,-In%20the%20below)\n" }, + "smbContinuousAvailabilityEnabled": { + "type": "boolean", + "description": "Enable SMB Continuous Availability.\n", + "willReplaceOnChanges": true + }, "smbNonBrowsableEnabled": { "type": "boolean", "description": "Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in \"net view.\" Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.)\n" @@ -235942,7 +236278,7 @@ }, "sku": { "type": "string", - "description": "Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created.\n" + "description": "Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created.\n" }, "tags": { "type": "object", @@ -236044,7 +236380,7 @@ }, "sku": { "type": "string", - "description": "Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created.\n", + "description": "Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created.\n", "willReplaceOnChanges": true }, "tags": { @@ -236151,7 +236487,7 @@ }, "sku": { "type": "string", - "description": "Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created.\n", + "description": "Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created.\n", "willReplaceOnChanges": true }, "tags": { @@ -244835,6 +245171,166 @@ "type": "object" } }, + "azure:redis/cacheAccessPolicy:CacheAccessPolicy": { + "description": "Manages a Redis Cache Access Policy\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: \"East US\",\n});\nconst exampleCache = new azure.redis.Cache(\"example\", {\n name: \"example\",\n location: example.location,\n resourceGroupName: example.name,\n capacity: 1,\n family: \"P\",\n skuName: \"Premium\",\n enableNonSslPort: false,\n redisConfiguration: {\n maxmemoryReserved: 2,\n maxmemoryDelta: 2,\n maxmemoryPolicy: \"allkeys-lru\",\n },\n});\nconst exampleCacheAccessPolicy = new azure.redis.CacheAccessPolicy(\"example\", {\n name: \"example\",\n redisCacheId: exampleCache.id,\n permissions: \"+@read +@connection +cluster|info\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"East US\")\nexample_cache = azure.redis.Cache(\"example\",\n name=\"example\",\n location=example.location,\n resource_group_name=example.name,\n capacity=1,\n family=\"P\",\n sku_name=\"Premium\",\n enable_non_ssl_port=False,\n redis_configuration=azure.redis.CacheRedisConfigurationArgs(\n maxmemory_reserved=2,\n maxmemory_delta=2,\n maxmemory_policy=\"allkeys-lru\",\n ))\nexample_cache_access_policy = azure.redis.CacheAccessPolicy(\"example\",\n name=\"example\",\n redis_cache_id=example_cache.id,\n permissions=\"+@read +@connection +cluster|info\")\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 = \"East US\",\n });\n\n var exampleCache = new Azure.Redis.Cache(\"example\", new()\n {\n Name = \"example\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n Capacity = 1,\n Family = \"P\",\n SkuName = \"Premium\",\n EnableNonSslPort = false,\n RedisConfiguration = new Azure.Redis.Inputs.CacheRedisConfigurationArgs\n {\n MaxmemoryReserved = 2,\n MaxmemoryDelta = 2,\n MaxmemoryPolicy = \"allkeys-lru\",\n },\n });\n\n var exampleCacheAccessPolicy = new Azure.Redis.CacheAccessPolicy(\"example\", new()\n {\n Name = \"example\",\n RedisCacheId = exampleCache.Id,\n Permissions = \"+@read +@connection +cluster|info\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-resources\"),\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\texampleCache, err := redis.NewCache(ctx, \"example\", \u0026redis.CacheArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tCapacity: pulumi.Int(1),\n\t\t\tFamily: pulumi.String(\"P\"),\n\t\t\tSkuName: pulumi.String(\"Premium\"),\n\t\t\tEnableNonSslPort: pulumi.Bool(false),\n\t\t\tRedisConfiguration: \u0026redis.CacheRedisConfigurationArgs{\n\t\t\t\tMaxmemoryReserved: pulumi.Int(2),\n\t\t\t\tMaxmemoryDelta: pulumi.Int(2),\n\t\t\t\tMaxmemoryPolicy: pulumi.String(\"allkeys-lru\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewCacheAccessPolicy(ctx, \"example\", \u0026redis.CacheAccessPolicyArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tRedisCacheId: exampleCache.ID(),\n\t\t\tPermissions: pulumi.String(\"+@read +@connection +cluster|info\"),\n\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.redis.Cache;\nimport com.pulumi.azure.redis.CacheArgs;\nimport com.pulumi.azure.redis.inputs.CacheRedisConfigurationArgs;\nimport com.pulumi.azure.redis.CacheAccessPolicy;\nimport com.pulumi.azure.redis.CacheAccessPolicyArgs;\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(\"East US\")\n .build());\n\n var exampleCache = new Cache(\"exampleCache\", CacheArgs.builder() \n .name(\"example\")\n .location(example.location())\n .resourceGroupName(example.name())\n .capacity(1)\n .family(\"P\")\n .skuName(\"Premium\")\n .enableNonSslPort(false)\n .redisConfiguration(CacheRedisConfigurationArgs.builder()\n .maxmemoryReserved(2)\n .maxmemoryDelta(2)\n .maxmemoryPolicy(\"allkeys-lru\")\n .build())\n .build());\n\n var exampleCacheAccessPolicy = new CacheAccessPolicy(\"exampleCacheAccessPolicy\", CacheAccessPolicyArgs.builder() \n .name(\"example\")\n .redisCacheId(exampleCache.id())\n .permissions(\"+@read +@connection +cluster|info\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: East US\n exampleCache:\n type: azure:redis:Cache\n name: example\n properties:\n name: example\n location: ${example.location}\n resourceGroupName: ${example.name}\n capacity: 1\n family: P\n skuName: Premium\n enableNonSslPort: false\n redisConfiguration:\n maxmemoryReserved: 2\n maxmemoryDelta: 2\n maxmemoryPolicy: allkeys-lru\n exampleCacheAccessPolicy:\n type: azure:redis:CacheAccessPolicy\n name: example\n properties:\n name: example\n redisCacheId: ${exampleCache.id}\n permissions: +@read +@connection +cluster|info\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRedis Cache Access Policy can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:redis/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicies/policy1\n```\n\n", + "properties": { + "name": { + "type": "string", + "description": "The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created.\n" + }, + "permissions": { + "type": "string", + "description": "Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created.\n" + }, + "redisCacheId": { + "type": "string", + "description": "The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created.\n" + } + }, + "required": [ + "name", + "permissions", + "redisCacheId" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created.\n", + "willReplaceOnChanges": true + }, + "permissions": { + "type": "string", + "description": "Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created.\n", + "willReplaceOnChanges": true + }, + "redisCacheId": { + "type": "string", + "description": "The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "permissions", + "redisCacheId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CacheAccessPolicy resources.\n", + "properties": { + "name": { + "type": "string", + "description": "The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created.\n", + "willReplaceOnChanges": true + }, + "permissions": { + "type": "string", + "description": "Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created.\n", + "willReplaceOnChanges": true + }, + "redisCacheId": { + "type": "string", + "description": "The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, + "azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment": { + "description": "Manages a Redis Cache Access Policy Assignment\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 = azure.core.getClientConfig({});\nconst example = new azure.core.ResourceGroup(\"example\", {\n name: \"example-resources\",\n location: \"East US\",\n});\nconst exampleCache = new azure.redis.Cache(\"example\", {\n name: \"example\",\n location: example.location,\n resourceGroupName: example.name,\n capacity: 1,\n family: \"P\",\n skuName: \"Premium\",\n enableNonSslPort: false,\n redisConfiguration: {\n maxmemoryReserved: 2,\n maxmemoryDelta: 2,\n maxmemoryPolicy: \"allkeys-lru\",\n },\n});\nconst exampleCacheAccessPolicyAssignment = new azure.redis.CacheAccessPolicyAssignment(\"example\", {\n name: \"example\",\n redisCacheId: exampleCache.id,\n accessPolicyName: \"Data Contributor\",\n objectId: test.then(test =\u003e test.objectId),\n objectIdAlias: \"ServicePrincipal\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\ntest = azure.core.get_client_config()\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-resources\",\n location=\"East US\")\nexample_cache = azure.redis.Cache(\"example\",\n name=\"example\",\n location=example.location,\n resource_group_name=example.name,\n capacity=1,\n family=\"P\",\n sku_name=\"Premium\",\n enable_non_ssl_port=False,\n redis_configuration=azure.redis.CacheRedisConfigurationArgs(\n maxmemory_reserved=2,\n maxmemory_delta=2,\n maxmemory_policy=\"allkeys-lru\",\n ))\nexample_cache_access_policy_assignment = azure.redis.CacheAccessPolicyAssignment(\"example\",\n name=\"example\",\n redis_cache_id=example_cache.id,\n access_policy_name=\"Data Contributor\",\n object_id=test.object_id,\n object_id_alias=\"ServicePrincipal\")\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 = Azure.Core.GetClientConfig.Invoke();\n\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Name = \"example-resources\",\n Location = \"East US\",\n });\n\n var exampleCache = new Azure.Redis.Cache(\"example\", new()\n {\n Name = \"example\",\n Location = example.Location,\n ResourceGroupName = example.Name,\n Capacity = 1,\n Family = \"P\",\n SkuName = \"Premium\",\n EnableNonSslPort = false,\n RedisConfiguration = new Azure.Redis.Inputs.CacheRedisConfigurationArgs\n {\n MaxmemoryReserved = 2,\n MaxmemoryDelta = 2,\n MaxmemoryPolicy = \"allkeys-lru\",\n },\n });\n\n var exampleCacheAccessPolicyAssignment = new Azure.Redis.CacheAccessPolicyAssignment(\"example\", new()\n {\n Name = \"example\",\n RedisCacheId = exampleCache.Id,\n AccessPolicyName = \"Data Contributor\",\n ObjectId = test.Apply(getClientConfigResult =\u003e getClientConfigResult.ObjectId),\n ObjectIdAlias = \"ServicePrincipal\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := core.GetClientConfig(ctx, nil, 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-resources\"),\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\texampleCache, err := redis.NewCache(ctx, \"example\", \u0026redis.CacheArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tCapacity: pulumi.Int(1),\n\t\t\tFamily: pulumi.String(\"P\"),\n\t\t\tSkuName: pulumi.String(\"Premium\"),\n\t\t\tEnableNonSslPort: pulumi.Bool(false),\n\t\t\tRedisConfiguration: \u0026redis.CacheRedisConfigurationArgs{\n\t\t\t\tMaxmemoryReserved: pulumi.Int(2),\n\t\t\t\tMaxmemoryDelta: pulumi.Int(2),\n\t\t\t\tMaxmemoryPolicy: pulumi.String(\"allkeys-lru\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewCacheAccessPolicyAssignment(ctx, \"example\", \u0026redis.CacheAccessPolicyAssignmentArgs{\n\t\t\tName: pulumi.String(\"example\"),\n\t\t\tRedisCacheId: exampleCache.ID(),\n\t\t\tAccessPolicyName: pulumi.String(\"Data Contributor\"),\n\t\t\tObjectId: pulumi.String(test.ObjectId),\n\t\t\tObjectIdAlias: pulumi.String(\"ServicePrincipal\"),\n\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.redis.Cache;\nimport com.pulumi.azure.redis.CacheArgs;\nimport com.pulumi.azure.redis.inputs.CacheRedisConfigurationArgs;\nimport com.pulumi.azure.redis.CacheAccessPolicyAssignment;\nimport com.pulumi.azure.redis.CacheAccessPolicyAssignmentArgs;\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 test = CoreFunctions.getClientConfig();\n\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder() \n .name(\"example-resources\")\n .location(\"East US\")\n .build());\n\n var exampleCache = new Cache(\"exampleCache\", CacheArgs.builder() \n .name(\"example\")\n .location(example.location())\n .resourceGroupName(example.name())\n .capacity(1)\n .family(\"P\")\n .skuName(\"Premium\")\n .enableNonSslPort(false)\n .redisConfiguration(CacheRedisConfigurationArgs.builder()\n .maxmemoryReserved(2)\n .maxmemoryDelta(2)\n .maxmemoryPolicy(\"allkeys-lru\")\n .build())\n .build());\n\n var exampleCacheAccessPolicyAssignment = new CacheAccessPolicyAssignment(\"exampleCacheAccessPolicyAssignment\", CacheAccessPolicyAssignmentArgs.builder() \n .name(\"example\")\n .redisCacheId(exampleCache.id())\n .accessPolicyName(\"Data Contributor\")\n .objectId(test.applyValue(getClientConfigResult -\u003e getClientConfigResult.objectId()))\n .objectIdAlias(\"ServicePrincipal\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-resources\n location: East US\n exampleCache:\n type: azure:redis:Cache\n name: example\n properties:\n name: example\n location: ${example.location}\n resourceGroupName: ${example.name}\n capacity: 1\n family: P\n skuName: Premium\n enableNonSslPort: false\n redisConfiguration:\n maxmemoryReserved: 2\n maxmemoryDelta: 2\n maxmemoryPolicy: allkeys-lru\n exampleCacheAccessPolicyAssignment:\n type: azure:redis:CacheAccessPolicyAssignment\n name: example\n properties:\n name: example\n redisCacheId: ${exampleCache.id}\n accessPolicyName: Data Contributor\n objectId: ${test.objectId}\n objectIdAlias: ServicePrincipal\nvariables:\n test:\n fn::invoke:\n Function: azure:core:getClientConfig\n Arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRedis Cache Policy Assignment can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/assignment1\n```\n\n", + "properties": { + "accessPolicyName": { + "type": "string", + "description": "The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n" + }, + "name": { + "type": "string", + "description": "The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n" + }, + "objectId": { + "type": "string", + "description": "The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n" + }, + "objectIdAlias": { + "type": "string", + "description": "The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n" + }, + "redisCacheId": { + "type": "string", + "description": "The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n" + } + }, + "required": [ + "accessPolicyName", + "name", + "objectId", + "objectIdAlias", + "redisCacheId" + ], + "inputProperties": { + "accessPolicyName": { + "type": "string", + "description": "The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "objectId": { + "type": "string", + "description": "The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "objectIdAlias": { + "type": "string", + "description": "The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "redisCacheId": { + "type": "string", + "description": "The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "accessPolicyName", + "objectId", + "objectIdAlias", + "redisCacheId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CacheAccessPolicyAssignment resources.\n", + "properties": { + "accessPolicyName": { + "type": "string", + "description": "The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "objectId": { + "type": "string", + "description": "The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "objectIdAlias": { + "type": "string", + "description": "The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + }, + "redisCacheId": { + "type": "string", + "description": "The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created.\n", + "willReplaceOnChanges": true + } + }, + "type": "object" + } + }, "azure:redis/enterpriseCluster:EnterpriseCluster": { "description": "Manages a Redis Enterprise Cluster.\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-redisenterprise\",\n location: \"West Europe\",\n});\nconst exampleEnterpriseCluster = new azure.redis.EnterpriseCluster(\"example\", {\n name: \"example-redisenterprise\",\n resourceGroupName: example.name,\n location: example.location,\n skuName: \"EnterpriseFlash_F300-3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-redisenterprise\",\n location=\"West Europe\")\nexample_enterprise_cluster = azure.redis.EnterpriseCluster(\"example\",\n name=\"example-redisenterprise\",\n resource_group_name=example.name,\n location=example.location,\n sku_name=\"EnterpriseFlash_F300-3\")\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-redisenterprise\",\n Location = \"West Europe\",\n });\n\n var exampleEnterpriseCluster = new Azure.Redis.EnterpriseCluster(\"example\", new()\n {\n Name = \"example-redisenterprise\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n SkuName = \"EnterpriseFlash_F300-3\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/redis\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", \u0026core.ResourceGroupArgs{\n\t\t\tName: pulumi.String(\"example-redisenterprise\"),\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = redis.NewEnterpriseCluster(ctx, \"example\", \u0026redis.EnterpriseClusterArgs{\n\t\t\tName: pulumi.String(\"example-redisenterprise\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tSkuName: pulumi.String(\"EnterpriseFlash_F300-3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```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.redis.EnterpriseCluster;\nimport com.pulumi.azure.redis.EnterpriseClusterArgs;\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-redisenterprise\")\n .location(\"West Europe\")\n .build());\n\n var exampleEnterpriseCluster = new EnterpriseCluster(\"exampleEnterpriseCluster\", EnterpriseClusterArgs.builder() \n .name(\"example-redisenterprise\")\n .resourceGroupName(example.name())\n .location(example.location())\n .skuName(\"EnterpriseFlash_F300-3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-redisenterprise\n location: West Europe\n exampleEnterpriseCluster:\n type: azure:redis:EnterpriseCluster\n name: example\n properties:\n name: example-redisenterprise\n resourceGroupName: ${example.name}\n location: ${example.location}\n skuName: EnterpriseFlash_F300-3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nRedis Enterprise Clusters can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:redis/enterpriseCluster:EnterpriseCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redisEnterprise/cluster1\n```\n\n", "properties": { @@ -258671,7 +259167,7 @@ }, "clientId": { "type": "string", - "description": "The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n" + "description": "The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n" }, "cloudId": { "type": "string", @@ -258714,7 +259210,6 @@ } }, "required": [ - "clientId", "cloudId", "location", "name", @@ -258730,7 +259225,7 @@ }, "clientId": { "type": "string", - "description": "The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n", + "description": "The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n", "willReplaceOnChanges": true }, "identity": { @@ -258766,7 +259261,6 @@ } }, "requiredInputs": [ - "clientId", "resourceGroupName" ], "stateInputs": { @@ -258778,7 +259272,7 @@ }, "clientId": { "type": "string", - "description": "The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n", + "description": "The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created.\n", "willReplaceOnChanges": true }, "cloudId": { @@ -270841,6 +271335,178 @@ "type": "object" } }, + "azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance": { + "description": "Manages an SAP Discovery Virtual Instance.\n\n\u003e **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace \"Microsoft.Workloads\"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace \"Microsoft.Workloads\" --query \"registrationState\"`. Once this outputs \"Registered\" the Resource Provider is available for use.\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-sapvis\",\n location: \"West Europe\",\n});\nconst exampleDiscoveryVirtualInstance = new azure.workloadssap.DiscoveryVirtualInstance(\"example\", {\n name: \"X01\",\n resourceGroupName: example.name,\n location: example.location,\n environment: \"NonProd\",\n sapProduct: \"S4HANA\",\n centralServerVirtualMachineId: \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1\",\n managedStorageAccountName: \"managedsa\",\n identity: {\n type: \"UserAssigned\",\n identityIds: [\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\",\n name=\"example-sapvis\",\n location=\"West Europe\")\nexample_discovery_virtual_instance = azure.workloadssap.DiscoveryVirtualInstance(\"example\",\n name=\"X01\",\n resource_group_name=example.name,\n location=example.location,\n environment=\"NonProd\",\n sap_product=\"S4HANA\",\n central_server_virtual_machine_id=\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1\",\n managed_storage_account_name=\"managedsa\",\n identity=azure.workloadssap.DiscoveryVirtualInstanceIdentityArgs(\n type=\"UserAssigned\",\n identity_ids=[\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1\"],\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-sapvis\",\n Location = \"West Europe\",\n });\n\n var exampleDiscoveryVirtualInstance = new Azure.WorkloadsSAP.DiscoveryVirtualInstance(\"example\", new()\n {\n Name = \"X01\",\n ResourceGroupName = example.Name,\n Location = example.Location,\n Environment = \"NonProd\",\n SapProduct = \"S4HANA\",\n CentralServerVirtualMachineId = \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1\",\n ManagedStorageAccountName = \"managedsa\",\n Identity = new Azure.WorkloadsSAP.Inputs.DiscoveryVirtualInstanceIdentityArgs\n {\n Type = \"UserAssigned\",\n IdentityIds = new[]\n {\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/workloadssap\"\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-sapvis\"),\n\t\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 = workloadssap.NewDiscoveryVirtualInstance(ctx, \"example\", \u0026workloadssap.DiscoveryVirtualInstanceArgs{\n\t\t\tName: pulumi.String(\"X01\"),\n\t\t\tResourceGroupName: example.Name,\n\t\t\tLocation: example.Location,\n\t\t\tEnvironment: pulumi.String(\"NonProd\"),\n\t\t\tSapProduct: pulumi.String(\"S4HANA\"),\n\t\t\tCentralServerVirtualMachineId: pulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1\"),\n\t\t\tManagedStorageAccountName: pulumi.String(\"managedsa\"),\n\t\t\tIdentity: \u0026workloadssap.DiscoveryVirtualInstanceIdentityArgs{\n\t\t\t\tType: pulumi.String(\"UserAssigned\"),\n\t\t\t\tIdentityIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1\"),\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.workloadssap.DiscoveryVirtualInstance;\nimport com.pulumi.azure.workloadssap.DiscoveryVirtualInstanceArgs;\nimport com.pulumi.azure.workloadssap.inputs.DiscoveryVirtualInstanceIdentityArgs;\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-sapvis\")\n .location(\"West Europe\")\n .build());\n\n var exampleDiscoveryVirtualInstance = new DiscoveryVirtualInstance(\"exampleDiscoveryVirtualInstance\", DiscoveryVirtualInstanceArgs.builder() \n .name(\"X01\")\n .resourceGroupName(example.name())\n .location(example.location())\n .environment(\"NonProd\")\n .sapProduct(\"S4HANA\")\n .centralServerVirtualMachineId(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1\")\n .managedStorageAccountName(\"managedsa\")\n .identity(DiscoveryVirtualInstanceIdentityArgs.builder()\n .type(\"UserAssigned\")\n .identityIds(\"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n name: example-sapvis\n location: West Europe\n exampleDiscoveryVirtualInstance:\n type: azure:workloadssap:DiscoveryVirtualInstance\n name: example\n properties:\n name: X01\n resourceGroupName: ${example.name}\n location: ${example.location}\n environment: NonProd\n sapProduct: S4HANA\n centralServerVirtualMachineId: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1\n managedStorageAccountName: managedsa\n identity:\n type: UserAssigned\n identityIds:\n - /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSAP Discovery Virtual Instances can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1\n```\n\n", + "properties": { + "centralServerVirtualMachineId": { + "type": "string", + "description": "The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created.\n" + }, + "environment": { + "type": "string", + "description": "The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created.\n" + }, + "identity": { + "$ref": "#/types/azure:workloadssap/DiscoveryVirtualInstanceIdentity:DiscoveryVirtualInstanceIdentity", + "description": "An `identity` block as defined below.\n" + }, + "location": { + "type": "string", + "description": "The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created.\n" + }, + "managedResourceGroupName": { + "type": "string", + "description": "The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created.\n" + }, + "managedStorageAccountName": { + "type": "string", + "description": "The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created.\n" + }, + "name": { + "type": "string", + "description": "Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created.\n" + }, + "resourceGroupName": { + "type": "string", + "description": "The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created.\n" + }, + "sapProduct": { + "type": "string", + "description": "The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. 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 SAP Discovery Virtual Instance.\n" + } + }, + "required": [ + "centralServerVirtualMachineId", + "environment", + "location", + "name", + "resourceGroupName", + "sapProduct" + ], + "inputProperties": { + "centralServerVirtualMachineId": { + "type": "string", + "description": "The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "environment": { + "type": "string", + "description": "The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "identity": { + "$ref": "#/types/azure:workloadssap/DiscoveryVirtualInstanceIdentity:DiscoveryVirtualInstanceIdentity", + "description": "An `identity` block as defined below.\n" + }, + "location": { + "type": "string", + "description": "The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "managedResourceGroupName": { + "type": "string", + "description": "The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "managedStorageAccountName": { + "type": "string", + "description": "The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "resourceGroupName": { + "type": "string", + "description": "The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "sapProduct": { + "type": "string", + "description": "The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. 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 SAP Discovery Virtual Instance.\n" + } + }, + "requiredInputs": [ + "centralServerVirtualMachineId", + "environment", + "resourceGroupName", + "sapProduct" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering DiscoveryVirtualInstance resources.\n", + "properties": { + "centralServerVirtualMachineId": { + "type": "string", + "description": "The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "environment": { + "type": "string", + "description": "The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "identity": { + "$ref": "#/types/azure:workloadssap/DiscoveryVirtualInstanceIdentity:DiscoveryVirtualInstanceIdentity", + "description": "An `identity` block as defined below.\n" + }, + "location": { + "type": "string", + "description": "The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "managedResourceGroupName": { + "type": "string", + "description": "The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "managedStorageAccountName": { + "type": "string", + "description": "The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "name": { + "type": "string", + "description": "Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "resourceGroupName": { + "type": "string", + "description": "The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created.\n", + "willReplaceOnChanges": true + }, + "sapProduct": { + "type": "string", + "description": "The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. 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 SAP Discovery Virtual Instance.\n" + } + }, + "type": "object" + } + }, "azure:workloadssap/singleNodeVirtualInstance:SingleNodeVirtualInstance": { "description": "Manages an SAP Single Node Virtual Instance with new SAP System.\n\n\u003e **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace \"Microsoft.Workloads\"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace \"Microsoft.Workloads\" --query \"registrationState\"`. Once this outputs \"Registered\" the Resource Provider is available for use.\n\n## Import\n\nSAP Single Node Virtual Instances with new SAP Systems can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azure:workloadssap/singleNodeVirtualInstance:SingleNodeVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1\n```\n\n", "properties": { @@ -278710,6 +279376,13 @@ "sortVersionsBySemver": { "type": "boolean", "description": "Sort available versions taking SemVer versioning scheme into account. Defaults to `false`.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A mapping of tags assigned to the Shared Image.\n" } }, "type": "object", @@ -278788,7 +279461,6 @@ "osDiskImageSizeGb", "osDiskSnapshotId", "resourceGroupName", - "tags", "targetRegions", "id" ], @@ -295525,7 +296197,7 @@ "type": "string" }, "sku": { - "description": "Name of the SKU for this Nginx Deployment.\n", + "description": "The Nginx Deployment SKU. Possible values include `standard_Monthly`.\n", "type": "string" }, "tags": { @@ -301923,6 +302595,56 @@ "type": "object" } }, + "azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems": { + "description": "Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items.\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.systemcenter.getVirtualMachineManagerInventoryItems({\n inventoryType: \"Cloud\",\n systemCenterVirtualMachineManagerServerId: exampleAzurermSystemCenterVirtualMachineManagerServer.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.systemcenter.get_virtual_machine_manager_inventory_items(inventory_type=\"Cloud\",\n system_center_virtual_machine_manager_server_id=example_azurerm_system_center_virtual_machine_manager_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 = Azure.SystemCenter.GetVirtualMachineManagerInventoryItems.Invoke(new()\n {\n InventoryType = \"Cloud\",\n SystemCenterVirtualMachineManagerServerId = exampleAzurermSystemCenterVirtualMachineManagerServer.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/systemcenter\"\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 := systemcenter.GetVirtualMachineManagerInventoryItems(ctx, \u0026systemcenter.GetVirtualMachineManagerInventoryItemsArgs{\n\t\t\tInventoryType: \"Cloud\",\n\t\t\tSystemCenterVirtualMachineManagerServerId: exampleAzurermSystemCenterVirtualMachineManagerServer.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.systemcenter.SystemcenterFunctions;\nimport com.pulumi.azure.systemcenter.inputs.GetVirtualMachineManagerInventoryItemsArgs;\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 = SystemcenterFunctions.getVirtualMachineManagerInventoryItems(GetVirtualMachineManagerInventoryItemsArgs.builder()\n .inventoryType(\"Cloud\")\n .systemCenterVirtualMachineManagerServerId(exampleAzurermSystemCenterVirtualMachineManagerServer.id())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: azure:systemcenter:getVirtualMachineManagerInventoryItems\n Arguments:\n inventoryType: Cloud\n systemCenterVirtualMachineManagerServerId: ${exampleAzurermSystemCenterVirtualMachineManagerServer.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getVirtualMachineManagerInventoryItems.\n", + "properties": { + "inventoryType": { + "type": "string", + "description": "The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`.\n" + }, + "systemCenterVirtualMachineManagerServerId": { + "type": "string", + "description": "The ID of the System Center Virtual Machine Manager Server.\n" + } + }, + "type": "object", + "required": [ + "inventoryType", + "systemCenterVirtualMachineManagerServerId" + ] + }, + "outputs": { + "description": "A collection of values returned by getVirtualMachineManagerInventoryItems.\n", + "properties": { + "id": { + "description": "The provider-assigned unique ID for this managed resource.\n", + "type": "string" + }, + "inventoryItems": { + "description": "One or more `inventory_items` blocks as defined below.\n", + "items": { + "$ref": "#/types/azure:systemcenter/getVirtualMachineManagerInventoryItemsInventoryItem:getVirtualMachineManagerInventoryItemsInventoryItem" + }, + "type": "array" + }, + "inventoryType": { + "type": "string" + }, + "systemCenterVirtualMachineManagerServerId": { + "type": "string" + } + }, + "required": [ + "inventoryItems", + "inventoryType", + "systemCenterVirtualMachineManagerServerId", + "id" + ], + "type": "object" + } + }, "azure:trafficmanager/getGeographicalLocation:getGeographicalLocation": { "deprecationMessage": "azure.trafficmanager.getGeographicalLocation has been deprecated in favor of azure.network.getTrafficManager", "description": "Use this data source to access the ID of a specified Traffic Manager Geographical Location within the Geographical Hierarchy.\n\n## Example Usage\n\n### World)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = azure.network.getTrafficManager({\n name: \"World\",\n});\nexport const locationCode = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.network.get_traffic_manager(name=\"World\")\npulumi.export(\"locationCode\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = Azure.Network.GetTrafficManager.Invoke(new()\n {\n Name = \"World\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"locationCode\"] = example.Apply(getTrafficManagerResult =\u003e getTrafficManagerResult.Id),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := network.GetTrafficManager(ctx, \u0026network.GetTrafficManagerArgs{\n\t\t\tName: \"World\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"locationCode\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.network.NetworkFunctions;\nimport com.pulumi.azure.network.inputs.GetTrafficManagerArgs;\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 = NetworkFunctions.getTrafficManager(GetTrafficManagerArgs.builder()\n .name(\"World\")\n .build());\n\n ctx.export(\"locationCode\", example.applyValue(getTrafficManagerResult -\u003e getTrafficManagerResult.id()));\n }\n}\n```\n```yaml\nvariables:\n example:\n fn::invoke:\n Function: azure:network:getTrafficManager\n Arguments:\n name: World\noutputs:\n locationCode: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", diff --git a/provider/go.mod b/provider/go.mod index 660851e8a5..4d771884b4 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -6,7 +6,7 @@ toolchain go1.21.3 require ( github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 - github.com/hashicorp/go-azure-sdk/sdk v0.20240321.1145953 + github.com/hashicorp/go-azure-sdk/sdk v0.20240402.1085733 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.0.11 @@ -123,8 +123,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.66.2 // indirect - github.com/hashicorp/go-azure-sdk/resource-manager v0.20240321.1145953 // indirect + github.com/hashicorp/go-azure-helpers v0.67.0 // indirect + github.com/hashicorp/go-azure-sdk/resource-manager v0.20240402.1085733 // 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 @@ -228,7 +228,7 @@ require ( github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect - github.com/tombuildsstuff/giovanni v0.25.3 // indirect + github.com/tombuildsstuff/giovanni v0.25.4 // indirect github.com/tombuildsstuff/kermit v0.20240122.1123108 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect diff --git a/provider/go.sum b/provider/go.sum index dbcbfc160c..3302ed05d0 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2167,12 +2167,12 @@ github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FK 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.66.2 h1:+Pzuo7pdKl0hBXXr5ymmhs4Q40tHAo2nAvHq4WgSjx8= -github.com/hashicorp/go-azure-helpers v0.66.2/go.mod h1:kJxXrFtJKJdOEqvad8pllAe7dhP4DbN8J6sqFZe47+4= -github.com/hashicorp/go-azure-sdk/resource-manager v0.20240321.1145953 h1:eoU9iMmWgufB441trZJ45TsZ+0vJ79vGKdBuVVYUXwI= -github.com/hashicorp/go-azure-sdk/resource-manager v0.20240321.1145953/go.mod h1:zvsDltRIRr58vA0EpSmY+a6NcgGirQE/u02Ag+D8jmM= -github.com/hashicorp/go-azure-sdk/sdk v0.20240321.1145953 h1:WAcSZL5+H9Z/DjUZ0x0sluNoEno/mD4b+NWpY04vJrw= -github.com/hashicorp/go-azure-sdk/sdk v0.20240321.1145953/go.mod h1:POOjeoqNp+mvlLBuibJTziUAkBZ7FxXGeGestwemL/w= +github.com/hashicorp/go-azure-helpers v0.67.0 h1:0RY6mY3W3Ym2I+jExLtyLx96fh6p5n9vidqisAKGUSE= +github.com/hashicorp/go-azure-helpers v0.67.0/go.mod h1:S4Bu66vyJvHA0trqHQB0YVGsISuF7HMH9tyEsMVlx8A= +github.com/hashicorp/go-azure-sdk/resource-manager v0.20240402.1085733 h1:DVlpK94z/cUY65wtQFWUAjZnLgQRQQy7NwJW/RAd4v8= +github.com/hashicorp/go-azure-sdk/resource-manager v0.20240402.1085733/go.mod h1:v/vma+KYHsYCX2CmmefB+XO77SOh0rcWqqeHq1Kec2M= +github.com/hashicorp/go-azure-sdk/sdk v0.20240402.1085733 h1:d5ckUwgcqa5R78G5yqg8wDHqAhppJCjZStyHIif5SKo= +github.com/hashicorp/go-azure-sdk/sdk v0.20240402.1085733/go.mod h1:POOjeoqNp+mvlLBuibJTziUAkBZ7FxXGeGestwemL/w= 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= @@ -3018,8 +3018,8 @@ github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6 github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/tombuildsstuff/giovanni v0.25.3 h1:sqUXiKvU4tmmGA3+YXZe87j4ngu7DkwijFO/ex8a4Hk= -github.com/tombuildsstuff/giovanni v0.25.3/go.mod h1:s7xbU2lN5Iz9MBglmDDv9p2QPbn6x3UkJBtpCfUerLs= +github.com/tombuildsstuff/giovanni v0.25.4 h1:BVFNZVbQZwoYQepxnnnPFn72k12SEkMh8QGUx+S3eag= +github.com/tombuildsstuff/giovanni v0.25.4/go.mod h1:s7xbU2lN5Iz9MBglmDDv9p2QPbn6x3UkJBtpCfUerLs= github.com/tombuildsstuff/kermit v0.20240122.1123108 h1:icQaxsv/ANv/KC4Sr0V1trrWA/XIL+3QAVBDpiSTgj8= github.com/tombuildsstuff/kermit v0.20240122.1123108/go.mod h1:T3YBVFhRV4qA7SbnRaNE6eapIMpKDA9rG/V7Ocsjlno= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= diff --git a/provider/resources.go b/provider/resources.go index 59f0a2ea5c..e0041ae5ca 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -792,6 +792,7 @@ func Provider() tfbridge.ProviderInfo { "azurerm_static_site_custom_domain": {Tok: azureResource(azureAppService, "StaticSiteCustomDomain")}, "azurerm_static_web_app": {Tok: azureResource(azureAppService, "StaticWebApp")}, "azurerm_static_web_app_custom_domain": {Tok: azureResource(azureAppService, "StaticWebAppCustomDomain")}, + "azurerm_static_web_app_function_app_registration": {Tok: azureResource(azureAppService, "StaticWebAppFunctionAppRegistration")}, "azurerm_app_service_public_certificate": {Tok: azureResource(azureAppService, "PublicCertificate")}, "azurerm_app_service_slot_custom_hostname_binding": {Tok: azureResource(azureAppService, "SlotCustomHostnameBinding")}, "azurerm_app_service_source_control": {Tok: azureResource(azureAppService, "SourceControl")}, diff --git a/sdk/dotnet/AppInsights/SmartDetectionRule.cs b/sdk/dotnet/AppInsights/SmartDetectionRule.cs index db63cfb9b7..dc948244da 100644 --- a/sdk/dotnet/AppInsights/SmartDetectionRule.cs +++ b/sdk/dotnet/AppInsights/SmartDetectionRule.cs @@ -53,7 +53,7 @@ namespace Pulumi.Azure.AppInsights /// Application Insights Smart Detection Rules can be imported using the `resource id`, e.g. /// /// ```sh - /// $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/smartDetectionRule/myrule1 + /// $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/proactiveDetectionConfig/myrule1 /// ``` /// [AzureResourceType("azure:appinsights/smartDetectionRule:SmartDetectionRule")] diff --git a/sdk/dotnet/AppService/StaticWebAppFunctionAppRegistration.cs b/sdk/dotnet/AppService/StaticWebAppFunctionAppRegistration.cs new file mode 100644 index 0000000000..291e1a06c2 --- /dev/null +++ b/sdk/dotnet/AppService/StaticWebAppFunctionAppRegistration.cs @@ -0,0 +1,198 @@ +// *** 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.AppService +{ + /// + /// Manages an App Service Static Web App Function App Registration. + /// + /// > **NOTE:** This resource registers the specified Function App to the `Production` build of the Static Web App. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```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 exampleStaticWebApp = new Azure.AppService.StaticWebApp("example", new() + /// { + /// Name = "example", + /// ResourceGroupName = example.Name, + /// Location = example.Location, + /// }); + /// + /// var exampleAccount = new Azure.Storage.Account("example", new() + /// { + /// Name = "examplesstorageacc", + /// ResourceGroupName = example.Name, + /// Location = example.Location, + /// AccountTier = "Standard", + /// AccountReplicationType = "LRS", + /// }); + /// + /// var exampleServicePlan = new Azure.AppService.ServicePlan("example", new() + /// { + /// Name = "example-service-plan", + /// Location = example.Location, + /// ResourceGroupName = example.Name, + /// OsType = "Linux", + /// SkuName = "S1", + /// }); + /// + /// var exampleLinuxFunctionApp = new Azure.AppService.LinuxFunctionApp("example", new() + /// { + /// Name = "example-function-app", + /// Location = example.Location, + /// ResourceGroupName = example.Name, + /// ServicePlanId = exampleServicePlan.Id, + /// StorageAccountName = exampleAccount.Name, + /// StorageAccountAccessKey = exampleAccount.PrimaryAccessKey, + /// SiteConfig = null, + /// }); + /// + /// var exampleStaticWebAppFunctionAppRegistration = new Azure.AppService.StaticWebAppFunctionAppRegistration("example", new() + /// { + /// StaticWebAppId = exampleStaticWebApp.Id, + /// FunctionAppId = exampleLinuxFunctionApp.Id, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Static Web App Function App Registration can be imported using the `resource id`, e.g. + /// + /// ```sh + /// $ pulumi import azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/userProvidedFunctionApps/myFunctionApp + /// ``` + /// + [AzureResourceType("azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration")] + public partial class StaticWebAppFunctionAppRegistration : global::Pulumi.CustomResource + { + /// + /// The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + /// + /// > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + /// + /// > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + /// + [Output("functionAppId")] + public Output FunctionAppId { get; private set; } = null!; + + /// + /// The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + /// + [Output("staticWebAppId")] + public Output StaticWebAppId { get; private set; } = null!; + + + /// + /// Create a StaticWebAppFunctionAppRegistration 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 StaticWebAppFunctionAppRegistration(string name, StaticWebAppFunctionAppRegistrationArgs args, CustomResourceOptions? options = null) + : base("azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration", name, args ?? new StaticWebAppFunctionAppRegistrationArgs(), MakeResourceOptions(options, "")) + { + } + + private StaticWebAppFunctionAppRegistration(string name, Input id, StaticWebAppFunctionAppRegistrationState? state = null, CustomResourceOptions? options = null) + : base("azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration", 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 StaticWebAppFunctionAppRegistration 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 StaticWebAppFunctionAppRegistration Get(string name, Input id, StaticWebAppFunctionAppRegistrationState? state = null, CustomResourceOptions? options = null) + { + return new StaticWebAppFunctionAppRegistration(name, id, state, options); + } + } + + public sealed class StaticWebAppFunctionAppRegistrationArgs : global::Pulumi.ResourceArgs + { + /// + /// The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + /// + /// > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + /// + /// > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + /// + [Input("functionAppId", required: true)] + public Input FunctionAppId { get; set; } = null!; + + /// + /// The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + /// + [Input("staticWebAppId", required: true)] + public Input StaticWebAppId { get; set; } = null!; + + public StaticWebAppFunctionAppRegistrationArgs() + { + } + public static new StaticWebAppFunctionAppRegistrationArgs Empty => new StaticWebAppFunctionAppRegistrationArgs(); + } + + public sealed class StaticWebAppFunctionAppRegistrationState : global::Pulumi.ResourceArgs + { + /// + /// The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + /// + /// > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + /// + /// > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + /// + [Input("functionAppId")] + public Input? FunctionAppId { get; set; } + + /// + /// The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + /// + [Input("staticWebAppId")] + public Input? StaticWebAppId { get; set; } + + public StaticWebAppFunctionAppRegistrationState() + { + } + public static new StaticWebAppFunctionAppRegistrationState Empty => new StaticWebAppFunctionAppRegistrationState(); + } +} diff --git a/sdk/dotnet/Bot/ChannelsRegistration.cs b/sdk/dotnet/Bot/ChannelsRegistration.cs index 0a3ab15a99..53982af21e 100644 --- a/sdk/dotnet/Bot/ChannelsRegistration.cs +++ b/sdk/dotnet/Bot/ChannelsRegistration.cs @@ -12,6 +12,8 @@ namespace Pulumi.Azure.Bot /// /// Manages a Bot Channels Registration. /// + /// > **Note:** Bot Channels Registration has been [deprecated by Azure](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-resources-faq-azure?view=azure-bot-service-4.0#why-are-web-app-bot-and-bot-channel-registration-being-deprecated). New implementations should use the `azure.bot.ServiceAzureBot` resource. + /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> diff --git a/sdk/dotnet/Bot/ServiceAzureBot.cs b/sdk/dotnet/Bot/ServiceAzureBot.cs index a2d8f5cce3..daefc7439d 100644 --- a/sdk/dotnet/Bot/ServiceAzureBot.cs +++ b/sdk/dotnet/Bot/ServiceAzureBot.cs @@ -84,6 +84,14 @@ namespace Pulumi.Azure.Bot [AzureResourceType("azure:bot/serviceAzureBot:ServiceAzureBot")] public partial class ServiceAzureBot : global::Pulumi.CustomResource { + /// + /// The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + /// + /// > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + /// + [Output("cmkKeyVaultKeyUrl")] + public Output CmkKeyVaultKeyUrl { get; private set; } = null!; + /// /// The Application Insights API Key to associate with this Azure Bot Service. /// @@ -255,6 +263,14 @@ public static ServiceAzureBot Get(string name, Input id, ServiceAzureBot public sealed class ServiceAzureBotArgs : global::Pulumi.ResourceArgs { + /// + /// The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + /// + /// > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + /// + [Input("cmkKeyVaultKeyUrl")] + public Input? CmkKeyVaultKeyUrl { get; set; } + [Input("developerAppInsightsApiKey")] private Input? _developerAppInsightsApiKey; @@ -415,6 +431,14 @@ public ServiceAzureBotArgs() public sealed class ServiceAzureBotState : global::Pulumi.ResourceArgs { + /// + /// The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + /// + /// > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + /// + [Input("cmkKeyVaultKeyUrl")] + public Input? CmkKeyVaultKeyUrl { get; set; } + [Input("developerAppInsightsApiKey")] private Input? _developerAppInsightsApiKey; diff --git a/sdk/dotnet/ChaosStudio/Target.cs b/sdk/dotnet/ChaosStudio/Target.cs index 47f06704ee..972e2d7369 100644 --- a/sdk/dotnet/ChaosStudio/Target.cs +++ b/sdk/dotnet/ChaosStudio/Target.cs @@ -14,52 +14,6 @@ namespace Pulumi.Azure.ChaosStudio /// /// Manages a Chaos Studio Target. /// - /// ## Example Usage - /// - /// <!--Start PulumiCodeChooser --> - /// ```csharp - /// using System.Collections.Generic; - /// using System.Linq; - /// using Pulumi; - /// using Azure = Pulumi.Azure; - /// - /// return await Deployment.RunAsync(() => - /// { - /// var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new() - /// { - /// Name = "example-resources", - /// Location = "West Europe", - /// }); - /// - /// var example = new Azure.ContainerService.KubernetesCluster("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// DnsPrefix = "acctestaksexample", - /// DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs - /// { - /// Name = "example-value", - /// NodeCount = "example-value", - /// VmSize = "example-value", - /// }, - /// Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs - /// { - /// Type = "example-value", - /// }, - /// }); - /// - /// var exampleTarget = new Azure.ChaosStudio.Target("example", new() - /// { - /// Location = exampleResourceGroup.Location, - /// TargetResourceId = example.Id, - /// TargetType = "example-value", - /// }); - /// - /// }); - /// ``` - /// <!--End PulumiCodeChooser --> - /// /// ## Import /// /// An existing Chaos Studio Target can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/dotnet/Compute/GetSharedImageVersion.cs b/sdk/dotnet/Compute/GetSharedImageVersion.cs index d75f06b1f3..131413b7c6 100644 --- a/sdk/dotnet/Compute/GetSharedImageVersion.cs +++ b/sdk/dotnet/Compute/GetSharedImageVersion.cs @@ -107,6 +107,18 @@ public sealed class GetSharedImageVersionArgs : global::Pulumi.InvokeArgs [Input("sortVersionsBySemver")] public bool? SortVersionsBySemver { get; set; } + [Input("tags")] + private Dictionary? _tags; + + /// + /// A mapping of tags assigned to the Shared Image. + /// + public Dictionary Tags + { + get => _tags ?? (_tags = new Dictionary()); + set => _tags = value; + } + public GetSharedImageVersionArgs() { } @@ -149,6 +161,18 @@ public sealed class GetSharedImageVersionInvokeArgs : global::Pulumi.InvokeArgs [Input("sortVersionsBySemver")] public Input? SortVersionsBySemver { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A mapping of tags assigned to the Shared Image. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + public GetSharedImageVersionInvokeArgs() { } @@ -194,7 +218,7 @@ public sealed class GetSharedImageVersionResult /// /// A mapping of tags assigned to the Shared Image. /// - public readonly ImmutableDictionary Tags; + public readonly ImmutableDictionary? Tags; /// /// One or more `target_region` blocks as documented below. /// @@ -224,7 +248,7 @@ private GetSharedImageVersionResult( bool? sortVersionsBySemver, - ImmutableDictionary tags, + ImmutableDictionary? tags, ImmutableArray targetRegions) { diff --git a/sdk/dotnet/Compute/Inputs/CapacityReservationSkuArgs.cs b/sdk/dotnet/Compute/Inputs/CapacityReservationSkuArgs.cs index 4dc4b32825..6827d7f70c 100644 --- a/sdk/dotnet/Compute/Inputs/CapacityReservationSkuArgs.cs +++ b/sdk/dotnet/Compute/Inputs/CapacityReservationSkuArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Azure.Compute.Inputs public sealed class CapacityReservationSkuArgs : global::Pulumi.ResourceArgs { /// - /// Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + /// Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. /// [Input("capacity", required: true)] public Input Capacity { get; set; } = null!; diff --git a/sdk/dotnet/Compute/Inputs/CapacityReservationSkuGetArgs.cs b/sdk/dotnet/Compute/Inputs/CapacityReservationSkuGetArgs.cs index 65416e270e..0d543a6c48 100644 --- a/sdk/dotnet/Compute/Inputs/CapacityReservationSkuGetArgs.cs +++ b/sdk/dotnet/Compute/Inputs/CapacityReservationSkuGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Azure.Compute.Inputs public sealed class CapacityReservationSkuGetArgs : global::Pulumi.ResourceArgs { /// - /// Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + /// Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. /// [Input("capacity", required: true)] public Input Capacity { get; set; } = null!; diff --git a/sdk/dotnet/Compute/Outputs/CapacityReservationSku.cs b/sdk/dotnet/Compute/Outputs/CapacityReservationSku.cs index 001651790b..dacaea1fea 100644 --- a/sdk/dotnet/Compute/Outputs/CapacityReservationSku.cs +++ b/sdk/dotnet/Compute/Outputs/CapacityReservationSku.cs @@ -14,7 +14,7 @@ namespace Pulumi.Azure.Compute.Outputs public sealed class CapacityReservationSku { /// - /// Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + /// Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. /// public readonly int Capacity; /// diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index 8f367bb650..eb94a35b0d 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -320,6 +320,7 @@ public class Features public Pulumi.Azure.Config.Types.FeaturesLogAnalyticsWorkspace? LogAnalyticsWorkspace { get; set; } = null!; public Pulumi.Azure.Config.Types.FeaturesManagedDisk? ManagedDisk { get; set; } = null!; public Pulumi.Azure.Config.Types.FeaturesPostgresqlFlexibleServer? PostgresqlFlexibleServer { get; set; } = null!; + public Pulumi.Azure.Config.Types.FeaturesRecoveryService? RecoveryService { get; set; } = null!; public Pulumi.Azure.Config.Types.FeaturesResourceGroup? ResourceGroup { get; set; } = null!; public Pulumi.Azure.Config.Types.FeaturesSubscription? Subscription { get; set; } = null!; public Pulumi.Azure.Config.Types.FeaturesTemplateDeployment? TemplateDeployment { get; set; } = null!; @@ -404,6 +405,12 @@ public class FeaturesPostgresqlFlexibleServer public bool? RestartServerOnConfigurationValueChange { get; set; } } + public class FeaturesRecoveryService + { + public bool? PurgeProtectedItemsFromVaultOnDestroy { get; set; } + public bool? VmBackupStopProtectionAndRetainDataOnDestroy { get; set; } + } + public class FeaturesResourceGroup { public bool? PreventDeletionIfContainsResources { get; set; } diff --git a/sdk/dotnet/ContainerApp/Inputs/AppSecretArgs.cs b/sdk/dotnet/ContainerApp/Inputs/AppSecretArgs.cs index b89627fec3..bb4b971fd1 100644 --- a/sdk/dotnet/ContainerApp/Inputs/AppSecretArgs.cs +++ b/sdk/dotnet/ContainerApp/Inputs/AppSecretArgs.cs @@ -12,28 +12,36 @@ namespace Pulumi.Azure.ContainerApp.Inputs public sealed class AppSecretArgs : global::Pulumi.ResourceArgs { - [Input("name", required: true)] - private Input? _name; + /// + /// The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + /// + /// !> **Note:** `identity` must be used together with `key_vault_secret_id` + /// + [Input("identity")] + public Input? Identity { get; set; } /// - /// The Secret name. + /// The ID of a Key Vault secret. This can be a versioned or version-less ID. + /// + /// !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. /// - public Input? Name - { - get => _name; - set - { - var emptySecret = Output.CreateSecret(0); - _name = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); - } - } + [Input("keyVaultSecretId")] + public Input? KeyVaultSecretId { get; set; } + + /// + /// The secret name. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; - [Input("value", required: true)] + [Input("value")] private Input? _value; /// /// The value for this secret. /// + /// !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + /// /// !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. /// public Input? Value diff --git a/sdk/dotnet/ContainerApp/Inputs/AppSecretGetArgs.cs b/sdk/dotnet/ContainerApp/Inputs/AppSecretGetArgs.cs index b2eb597d1b..840c2ebf04 100644 --- a/sdk/dotnet/ContainerApp/Inputs/AppSecretGetArgs.cs +++ b/sdk/dotnet/ContainerApp/Inputs/AppSecretGetArgs.cs @@ -12,28 +12,36 @@ namespace Pulumi.Azure.ContainerApp.Inputs public sealed class AppSecretGetArgs : global::Pulumi.ResourceArgs { - [Input("name", required: true)] - private Input? _name; + /// + /// The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + /// + /// !> **Note:** `identity` must be used together with `key_vault_secret_id` + /// + [Input("identity")] + public Input? Identity { get; set; } /// - /// The Secret name. + /// The ID of a Key Vault secret. This can be a versioned or version-less ID. + /// + /// !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. /// - public Input? Name - { - get => _name; - set - { - var emptySecret = Output.CreateSecret(0); - _name = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); - } - } + [Input("keyVaultSecretId")] + public Input? KeyVaultSecretId { get; set; } + + /// + /// The secret name. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; - [Input("value", required: true)] + [Input("value")] private Input? _value; /// /// The value for this secret. /// + /// !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + /// /// !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. /// public Input? Value diff --git a/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretArgs.cs b/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretArgs.cs index 7a75d22999..9d7efdb691 100644 --- a/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretArgs.cs +++ b/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretArgs.cs @@ -12,23 +12,25 @@ namespace Pulumi.Azure.ContainerApp.Inputs public sealed class EnvironmentDaprComponentSecretArgs : global::Pulumi.ResourceArgs { - [Input("name", required: true)] - private Input? _name; + /// + /// The identity to use for accessing key vault reference. + /// + [Input("identity")] + public Input? Identity { get; set; } + + /// + /// The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + /// + [Input("keyVaultSecretId")] + public Input? KeyVaultSecretId { get; set; } /// /// The Secret name. /// - public Input? Name - { - get => _name; - set - { - var emptySecret = Output.CreateSecret(0); - _name = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); - } - } + [Input("name", required: true)] + public Input Name { get; set; } = null!; - [Input("value", required: true)] + [Input("value")] private Input? _value; /// diff --git a/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretGetArgs.cs b/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretGetArgs.cs index 5d1185ec9d..02c5f1d74b 100644 --- a/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretGetArgs.cs +++ b/sdk/dotnet/ContainerApp/Inputs/EnvironmentDaprComponentSecretGetArgs.cs @@ -12,23 +12,25 @@ namespace Pulumi.Azure.ContainerApp.Inputs public sealed class EnvironmentDaprComponentSecretGetArgs : global::Pulumi.ResourceArgs { - [Input("name", required: true)] - private Input? _name; + /// + /// The identity to use for accessing key vault reference. + /// + [Input("identity")] + public Input? Identity { get; set; } + + /// + /// The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + /// + [Input("keyVaultSecretId")] + public Input? KeyVaultSecretId { get; set; } /// /// The Secret name. /// - public Input? Name - { - get => _name; - set - { - var emptySecret = Output.CreateSecret(0); - _name = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1); - } - } + [Input("name", required: true)] + public Input Name { get; set; } = null!; - [Input("value", required: true)] + [Input("value")] private Input? _value; /// diff --git a/sdk/dotnet/ContainerApp/Outputs/AppSecret.cs b/sdk/dotnet/ContainerApp/Outputs/AppSecret.cs index 0bab7b9456..01e8ba86b6 100644 --- a/sdk/dotnet/ContainerApp/Outputs/AppSecret.cs +++ b/sdk/dotnet/ContainerApp/Outputs/AppSecret.cs @@ -14,22 +14,42 @@ namespace Pulumi.Azure.ContainerApp.Outputs public sealed class AppSecret { /// - /// The Secret name. + /// The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + /// + /// !> **Note:** `identity` must be used together with `key_vault_secret_id` + /// + public readonly string? Identity; + /// + /// The ID of a Key Vault secret. This can be a versioned or version-less ID. + /// + /// !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + /// + public readonly string? KeyVaultSecretId; + /// + /// The secret name. /// public readonly string Name; /// /// The value for this secret. /// + /// !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + /// /// !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. /// - public readonly string Value; + public readonly string? Value; [OutputConstructor] private AppSecret( + string? identity, + + string? keyVaultSecretId, + string name, - string value) + string? value) { + Identity = identity; + KeyVaultSecretId = keyVaultSecretId; Name = name; Value = value; } diff --git a/sdk/dotnet/ContainerApp/Outputs/EnvironmentDaprComponentSecret.cs b/sdk/dotnet/ContainerApp/Outputs/EnvironmentDaprComponentSecret.cs index ae414260ff..c8ce1e578b 100644 --- a/sdk/dotnet/ContainerApp/Outputs/EnvironmentDaprComponentSecret.cs +++ b/sdk/dotnet/ContainerApp/Outputs/EnvironmentDaprComponentSecret.cs @@ -13,6 +13,14 @@ namespace Pulumi.Azure.ContainerApp.Outputs [OutputType] public sealed class EnvironmentDaprComponentSecret { + /// + /// The identity to use for accessing key vault reference. + /// + public readonly string? Identity; + /// + /// The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + /// + public readonly string? KeyVaultSecretId; /// /// The Secret name. /// @@ -20,14 +28,20 @@ public sealed class EnvironmentDaprComponentSecret /// /// The value for this secret. /// - public readonly string Value; + public readonly string? Value; [OutputConstructor] private EnvironmentDaprComponentSecret( + string? identity, + + string? keyVaultSecretId, + string name, - string value) + string? value) { + Identity = identity; + KeyVaultSecretId = keyVaultSecretId; Name = name; Value = value; } diff --git a/sdk/dotnet/ContainerApp/Outputs/GetAppSecretResult.cs b/sdk/dotnet/ContainerApp/Outputs/GetAppSecretResult.cs index e854c4ee8e..ca25e8ab67 100644 --- a/sdk/dotnet/ContainerApp/Outputs/GetAppSecretResult.cs +++ b/sdk/dotnet/ContainerApp/Outputs/GetAppSecretResult.cs @@ -13,6 +13,14 @@ namespace Pulumi.Azure.ContainerApp.Outputs [OutputType] public sealed class GetAppSecretResult { + /// + /// Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + /// + public readonly string Identity; + /// + /// The ID of a Key Vault secret. + /// + public readonly string KeyVaultSecretId; /// /// The name of the Container App. /// @@ -24,10 +32,16 @@ public sealed class GetAppSecretResult [OutputConstructor] private GetAppSecretResult( + string identity, + + string keyVaultSecretId, + string name, string value) { + Identity = identity; + KeyVaultSecretId = keyVaultSecretId; Name = name; Value = value; } diff --git a/sdk/dotnet/ContainerService/ClusterTrustedAccessRoleBinding.cs b/sdk/dotnet/ContainerService/ClusterTrustedAccessRoleBinding.cs index b87c77afca..780bd0dd32 100644 --- a/sdk/dotnet/ContainerService/ClusterTrustedAccessRoleBinding.cs +++ b/sdk/dotnet/ContainerService/ClusterTrustedAccessRoleBinding.cs @@ -16,104 +16,6 @@ namespace Pulumi.Azure.ContainerService /// > **Note:** This Resource is in **Preview** to use this you must be opted into the Preview. You can do this by running `az feature register --namespace Microsoft.ContainerService --name TrustedAccessPreview` and then `az provider register -n Microsoft.ContainerService` /// . /// - /// ## Example Usage - /// - /// <!--Start PulumiCodeChooser --> - /// ```csharp - /// using System.Collections.Generic; - /// using System.Linq; - /// using Pulumi; - /// using Azure = Pulumi.Azure; - /// - /// return await Deployment.RunAsync(() => - /// { - /// var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new() - /// { - /// Name = "example-resources", - /// Location = "West Europe", - /// }); - /// - /// var example = new Azure.AppInsights.Insights("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// ApplicationType = "example-value", - /// }); - /// - /// var test = Azure.Core.GetClientConfig.Invoke(); - /// - /// var exampleKeyVault = new Azure.KeyVault.KeyVault("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// TenantId = exampleAzurermClientConfig.TenantId, - /// SkuName = "example-value", - /// SoftDeleteRetentionDays = "example-value", - /// }); - /// - /// var exampleAccessPolicy = new Azure.KeyVault.AccessPolicy("example", new() - /// { - /// KeyVaultId = exampleKeyVault.Id, - /// TenantId = exampleAzurermClientConfig.TenantId, - /// ObjectId = exampleAzurermClientConfig.ObjectId, - /// KeyPermissions = "example-value", - /// }); - /// - /// var exampleKubernetesCluster = new Azure.ContainerService.KubernetesCluster("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// DnsPrefix = "acctestaksexample", - /// DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs - /// { - /// Name = "example-value", - /// NodeCount = "example-value", - /// VmSize = "example-value", - /// }, - /// Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs - /// { - /// Type = "example-value", - /// }, - /// }); - /// - /// var exampleAccount = new Azure.Storage.Account("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// AccountTier = "example-value", - /// AccountReplicationType = "example-value", - /// }); - /// - /// var exampleWorkspace = new Azure.MachineLearning.Workspace("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// KeyVaultId = exampleKeyVault.Id, - /// StorageAccountId = exampleAccount.Id, - /// ApplicationInsightsId = example.Id, - /// Identity = new Azure.MachineLearning.Inputs.WorkspaceIdentityArgs - /// { - /// Type = "example-value", - /// }, - /// }); - /// - /// var exampleClusterTrustedAccessRoleBinding = new Azure.ContainerService.ClusterTrustedAccessRoleBinding("example", new() - /// { - /// KubernetesClusterId = exampleKubernetesCluster.Id, - /// Name = "example", - /// Roles = "example-value", - /// SourceResourceId = exampleWorkspace.Id, - /// }); - /// - /// }); - /// ``` - /// <!--End PulumiCodeChooser --> - /// /// ## Import /// /// An existing Kubernetes Cluster Trusted Access Role Binding can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/dotnet/ContainerService/FleetMember.cs b/sdk/dotnet/ContainerService/FleetMember.cs index c261e5764e..0c2592fe98 100644 --- a/sdk/dotnet/ContainerService/FleetMember.cs +++ b/sdk/dotnet/ContainerService/FleetMember.cs @@ -14,59 +14,6 @@ namespace Pulumi.Azure.ContainerService /// /// Manages a Kubernetes Fleet Member. /// - /// ## Example Usage - /// - /// <!--Start PulumiCodeChooser --> - /// ```csharp - /// using System.Collections.Generic; - /// using System.Linq; - /// using Pulumi; - /// using Azure = Pulumi.Azure; - /// - /// return await Deployment.RunAsync(() => - /// { - /// var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new() - /// { - /// Name = "example-resources", - /// Location = "West Europe", - /// }); - /// - /// var example = new Azure.ContainerService.KubernetesCluster("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// DnsPrefix = "acctestaksexample", - /// DefaultNodePool = new Azure.ContainerService.Inputs.KubernetesClusterDefaultNodePoolArgs - /// { - /// Name = "example-value", - /// NodeCount = "example-value", - /// VmSize = "example-value", - /// }, - /// Identity = new Azure.ContainerService.Inputs.KubernetesClusterIdentityArgs - /// { - /// Type = "example-value", - /// }, - /// }); - /// - /// var exampleKubernetesFleetManager = new Azure.ContainerService.KubernetesFleetManager("example", new() - /// { - /// Name = "example", - /// Location = exampleResourceGroup.Location, - /// ResourceGroupName = exampleResourceGroup.Name, - /// }); - /// - /// var exampleFleetMember = new Azure.ContainerService.FleetMember("example", new() - /// { - /// KubernetesClusterId = example.Id, - /// KubernetesFleetId = exampleKubernetesFleetManager.Id, - /// Name = "example", - /// }); - /// - /// }); - /// ``` - /// <!--End PulumiCodeChooser --> - /// /// ## Import /// /// An existing Kubernetes Fleet Member can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersArgs.cs b/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersArgs.cs index 36f38bb133..990348935b 100644 --- a/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersArgs.cs +++ b/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersArgs.cs @@ -27,7 +27,7 @@ public sealed class WorkspaceCustomParametersArgs : global::Pulumi.ResourceArgs /// /// Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. /// - /// > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + /// > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. /// [Input("noPublicIp")] public Input? NoPublicIp { get; set; } @@ -83,7 +83,7 @@ public sealed class WorkspaceCustomParametersArgs : global::Pulumi.ResourceArgs /// /// Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. /// - /// > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + /// > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). /// [Input("vnetAddressPrefix")] public Input? VnetAddressPrefix { get; set; } diff --git a/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersGetArgs.cs b/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersGetArgs.cs index 0b5259092a..48703c2b58 100644 --- a/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersGetArgs.cs +++ b/sdk/dotnet/DataBricks/Inputs/WorkspaceCustomParametersGetArgs.cs @@ -27,7 +27,7 @@ public sealed class WorkspaceCustomParametersGetArgs : global::Pulumi.ResourceAr /// /// Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. /// - /// > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + /// > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. /// [Input("noPublicIp")] public Input? NoPublicIp { get; set; } @@ -83,7 +83,7 @@ public sealed class WorkspaceCustomParametersGetArgs : global::Pulumi.ResourceAr /// /// Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. /// - /// > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + /// > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). /// [Input("vnetAddressPrefix")] public Input? VnetAddressPrefix { get; set; } diff --git a/sdk/dotnet/DataBricks/Outputs/WorkspaceCustomParameters.cs b/sdk/dotnet/DataBricks/Outputs/WorkspaceCustomParameters.cs index 6b1ce05ed1..eec3333482 100644 --- a/sdk/dotnet/DataBricks/Outputs/WorkspaceCustomParameters.cs +++ b/sdk/dotnet/DataBricks/Outputs/WorkspaceCustomParameters.cs @@ -24,7 +24,7 @@ public sealed class WorkspaceCustomParameters /// /// Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. /// - /// > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + /// > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. /// public readonly bool? NoPublicIp; /// @@ -62,7 +62,7 @@ public sealed class WorkspaceCustomParameters /// /// Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. /// - /// > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + /// > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). /// public readonly string? VnetAddressPrefix; diff --git a/sdk/dotnet/DataBricks/Workspace.cs b/sdk/dotnet/DataBricks/Workspace.cs index de8530c053..da3792c397 100644 --- a/sdk/dotnet/DataBricks/Workspace.cs +++ b/sdk/dotnet/DataBricks/Workspace.cs @@ -57,6 +57,9 @@ public partial class Workspace : global::Pulumi.CustomResource [Output("location")] public Output Location { get; private set; } = null!; + [Output("managedDiskCmkKeyVaultId")] + public Output ManagedDiskCmkKeyVaultId { get; private set; } = null!; + /// /// Customer managed encryption properties for the Databricks Workspace managed disks. /// @@ -84,11 +87,14 @@ public partial class Workspace : global::Pulumi.CustomResource /// /// The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. /// - /// > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + /// > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. /// [Output("managedResourceGroupName")] public Output ManagedResourceGroupName { get; private set; } = null!; + [Output("managedServicesCmkKeyVaultId")] + public Output ManagedServicesCmkKeyVaultId { get; private set; } = null!; + /// /// Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). /// @@ -122,7 +128,7 @@ public partial class Workspace : global::Pulumi.CustomResource /// /// The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. /// - /// > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + /// > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. /// [Output("sku")] public Output Sku { get; private set; } = null!; @@ -227,6 +233,9 @@ public sealed class WorkspaceArgs : global::Pulumi.ResourceArgs [Input("location")] public Input? Location { get; set; } + [Input("managedDiskCmkKeyVaultId")] + public Input? ManagedDiskCmkKeyVaultId { get; set; } + /// /// Customer managed encryption properties for the Databricks Workspace managed disks. /// @@ -242,11 +251,14 @@ public sealed class WorkspaceArgs : global::Pulumi.ResourceArgs /// /// The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. /// - /// > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + /// > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. /// [Input("managedResourceGroupName")] public Input? ManagedResourceGroupName { get; set; } + [Input("managedServicesCmkKeyVaultId")] + public Input? ManagedServicesCmkKeyVaultId { get; set; } + /// /// Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). /// @@ -280,7 +292,7 @@ public sealed class WorkspaceArgs : global::Pulumi.ResourceArgs /// /// The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. /// - /// > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + /// > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. /// [Input("sku", required: true)] public Input Sku { get; set; } = null!; @@ -341,6 +353,9 @@ public sealed class WorkspaceState : global::Pulumi.ResourceArgs [Input("location")] public Input? Location { get; set; } + [Input("managedDiskCmkKeyVaultId")] + public Input? ManagedDiskCmkKeyVaultId { get; set; } + /// /// Customer managed encryption properties for the Databricks Workspace managed disks. /// @@ -374,11 +389,14 @@ public InputList ManagedDiskIdentiti /// /// The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. /// - /// > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + /// > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. /// [Input("managedResourceGroupName")] public Input? ManagedResourceGroupName { get; set; } + [Input("managedServicesCmkKeyVaultId")] + public Input? ManagedServicesCmkKeyVaultId { get; set; } + /// /// Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). /// @@ -412,7 +430,7 @@ public InputList ManagedDiskIdentiti /// /// The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. /// - /// > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + /// > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. /// [Input("sku")] public Input? Sku { get; set; } diff --git a/sdk/dotnet/DataBricks/WorkspaceRootDbfsCustomerManagedKey.cs b/sdk/dotnet/DataBricks/WorkspaceRootDbfsCustomerManagedKey.cs index 3e0e09661a..baa9bd1d8c 100644 --- a/sdk/dotnet/DataBricks/WorkspaceRootDbfsCustomerManagedKey.cs +++ b/sdk/dotnet/DataBricks/WorkspaceRootDbfsCustomerManagedKey.cs @@ -10,7 +10,7 @@ namespace Pulumi.Azure.DataBricks { /// - /// Manages a Customer Managed Key for the Databricks Workspaces root Databricks File System(DBFS) + /// Manages a Customer Managed Key for the Databricks Workspaces Root Databricks File System(DBFS) /// /// ## Example Usage /// @@ -124,7 +124,7 @@ namespace Pulumi.Azure.DataBricks /// ## Example HCL Configurations /// /// * Databricks Workspace with Root Databricks File System Customer Managed Keys - /// * Databricks Workspace with Customer Managed Keys for Managed Services + /// * Databricks Workspace with Root Databricks File System Customer Managed Keys in a Different Subscription /// * Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys /// /// ## Import @@ -138,6 +138,9 @@ namespace Pulumi.Azure.DataBricks [AzureResourceType("azure:databricks/workspaceRootDbfsCustomerManagedKey:WorkspaceRootDbfsCustomerManagedKey")] public partial class WorkspaceRootDbfsCustomerManagedKey : global::Pulumi.CustomResource { + [Output("keyVaultId")] + public Output KeyVaultId { get; private set; } = null!; + /// /// The resource ID of the Key Vault Key to be used. /// @@ -196,6 +199,9 @@ public static WorkspaceRootDbfsCustomerManagedKey Get(string name, Input public sealed class WorkspaceRootDbfsCustomerManagedKeyArgs : global::Pulumi.ResourceArgs { + [Input("keyVaultId")] + public Input? KeyVaultId { get; set; } + /// /// The resource ID of the Key Vault Key to be used. /// @@ -216,6 +222,9 @@ public WorkspaceRootDbfsCustomerManagedKeyArgs() public sealed class WorkspaceRootDbfsCustomerManagedKeyState : global::Pulumi.ResourceArgs { + [Input("keyVaultId")] + public Input? KeyVaultId { get; set; } + /// /// The resource ID of the Key Vault Key to be used. /// diff --git a/sdk/dotnet/DevTest/Schedule.cs b/sdk/dotnet/DevTest/Schedule.cs index a399acbd41..26dc84b6d4 100644 --- a/sdk/dotnet/DevTest/Schedule.cs +++ b/sdk/dotnet/DevTest/Schedule.cs @@ -42,6 +42,7 @@ namespace Pulumi.Azure.DevTest /// Location = example.Location, /// ResourceGroupName = example.Name, /// LabName = exampleLab.Name, + /// Status = "Enabled", /// WeeklyRecurrence = new Azure.DevTest.Inputs.ScheduleWeeklyRecurrenceArgs /// { /// Time = "1100", diff --git a/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs b/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs index 36cd22a69d..876897636b 100644 --- a/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs +++ b/sdk/dotnet/Inputs/ProviderFeaturesArgs.cs @@ -36,6 +36,9 @@ public sealed class ProviderFeaturesArgs : global::Pulumi.ResourceArgs [Input("postgresqlFlexibleServer")] public Input? PostgresqlFlexibleServer { get; set; } + [Input("recoveryService")] + public Input? RecoveryService { get; set; } + [Input("resourceGroup")] public Input? ResourceGroup { get; set; } diff --git a/sdk/dotnet/Inputs/ProviderFeaturesRecoveryServiceArgs.cs b/sdk/dotnet/Inputs/ProviderFeaturesRecoveryServiceArgs.cs new file mode 100644 index 0000000000..6508d9e0dd --- /dev/null +++ b/sdk/dotnet/Inputs/ProviderFeaturesRecoveryServiceArgs.cs @@ -0,0 +1,26 @@ +// *** 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 ProviderFeaturesRecoveryServiceArgs : global::Pulumi.ResourceArgs + { + [Input("purgeProtectedItemsFromVaultOnDestroy")] + public Input? PurgeProtectedItemsFromVaultOnDestroy { get; set; } + + [Input("vmBackupStopProtectionAndRetainDataOnDestroy")] + public Input? VmBackupStopProtectionAndRetainDataOnDestroy { get; set; } + + public ProviderFeaturesRecoveryServiceArgs() + { + } + public static new ProviderFeaturesRecoveryServiceArgs Empty => new ProviderFeaturesRecoveryServiceArgs(); + } +} diff --git a/sdk/dotnet/MSSql/Database.cs b/sdk/dotnet/MSSql/Database.cs index be5dbdc14d..1954c86e31 100644 --- a/sdk/dotnet/MSSql/Database.cs +++ b/sdk/dotnet/MSSql/Database.cs @@ -239,14 +239,16 @@ public partial class Database : global::Pulumi.CustomResource public Output ElasticPoolId { get; private set; } = null!; /// - /// Specifies the type of enclave to be used by the database. Possible value `VBS`. + /// Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. /// /// > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. /// /// > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. + /// + /// > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. /// [Output("enclaveType")] - public Output EnclaveType { get; private set; } = null!; + public Output EnclaveType { get; private set; } = null!; /// /// A boolean that specifies if the Geo Backup Policy is enabled. Defaults to `true`. @@ -362,6 +364,12 @@ public partial class Database : global::Pulumi.CustomResource [Output("sampleName")] public Output SampleName { get; private set; } = null!; + /// + /// How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + /// + [Output("secondaryType")] + public Output SecondaryType { get; private set; } = null!; + /// /// The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. /// @@ -509,11 +517,13 @@ public sealed class DatabaseArgs : global::Pulumi.ResourceArgs public Input? ElasticPoolId { get; set; } /// - /// Specifies the type of enclave to be used by the database. Possible value `VBS`. + /// Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. /// /// > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. /// /// > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. + /// + /// > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. /// [Input("enclaveType")] public Input? EnclaveType { get; set; } @@ -632,6 +642,12 @@ public sealed class DatabaseArgs : global::Pulumi.ResourceArgs [Input("sampleName")] public Input? SampleName { get; set; } + /// + /// How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + /// + [Input("secondaryType")] + public Input? SecondaryType { get; set; } + /// /// The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. /// @@ -747,11 +763,13 @@ public sealed class DatabaseState : global::Pulumi.ResourceArgs public Input? ElasticPoolId { get; set; } /// - /// Specifies the type of enclave to be used by the database. Possible value `VBS`. + /// Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. /// /// > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. /// /// > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. + /// + /// > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. /// [Input("enclaveType")] public Input? EnclaveType { get; set; } @@ -870,6 +888,12 @@ public sealed class DatabaseState : global::Pulumi.ResourceArgs [Input("sampleName")] public Input? SampleName { get; set; } + /// + /// How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + /// + [Input("secondaryType")] + public Input? SecondaryType { get; set; } + /// /// The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. /// diff --git a/sdk/dotnet/MSSql/ElasticPool.cs b/sdk/dotnet/MSSql/ElasticPool.cs index 06664c77af..e7b03d311e 100644 --- a/sdk/dotnet/MSSql/ElasticPool.cs +++ b/sdk/dotnet/MSSql/ElasticPool.cs @@ -77,14 +77,16 @@ namespace Pulumi.Azure.MSSql public partial class ElasticPool : global::Pulumi.CustomResource { /// - /// Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + /// Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. /// /// > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. /// /// > **NOTE:** `enclave_type` is not supported for DC-series SKUs. + /// + /// > **NOTE:** The default value for `enclave_type` field is unset not `Default`. /// [Output("enclaveType")] - public Output EnclaveType { get; private set; } = null!; + public Output EnclaveType { get; private set; } = null!; /// /// Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`. @@ -99,7 +101,7 @@ public partial class ElasticPool : global::Pulumi.CustomResource public Output Location { get; private set; } = null!; /// - /// The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + /// The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. /// [Output("maintenanceConfigurationName")] public Output MaintenanceConfigurationName { get; private set; } = null!; @@ -207,11 +209,13 @@ public static ElasticPool Get(string name, Input id, ElasticPoolState? s public sealed class ElasticPoolArgs : global::Pulumi.ResourceArgs { /// - /// Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + /// Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. /// /// > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. /// /// > **NOTE:** `enclave_type` is not supported for DC-series SKUs. + /// + /// > **NOTE:** The default value for `enclave_type` field is unset not `Default`. /// [Input("enclaveType")] public Input? EnclaveType { get; set; } @@ -229,7 +233,7 @@ public sealed class ElasticPoolArgs : global::Pulumi.ResourceArgs public Input? Location { get; set; } /// - /// The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + /// The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. /// [Input("maintenanceConfigurationName")] public Input? MaintenanceConfigurationName { get; set; } @@ -305,11 +309,13 @@ public ElasticPoolArgs() public sealed class ElasticPoolState : global::Pulumi.ResourceArgs { /// - /// Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + /// Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. /// /// > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. /// /// > **NOTE:** `enclave_type` is not supported for DC-series SKUs. + /// + /// > **NOTE:** The default value for `enclave_type` field is unset not `Default`. /// [Input("enclaveType")] public Input? EnclaveType { get; set; } @@ -327,7 +333,7 @@ public sealed class ElasticPoolState : global::Pulumi.ResourceArgs public Input? Location { get; set; } /// - /// The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + /// The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. /// [Input("maintenanceConfigurationName")] public Input? MaintenanceConfigurationName { get; set; } diff --git a/sdk/dotnet/MSSql/ServerExtendedAuditingPolicy.cs b/sdk/dotnet/MSSql/ServerExtendedAuditingPolicy.cs index c5e9d66577..730d269860 100644 --- a/sdk/dotnet/MSSql/ServerExtendedAuditingPolicy.cs +++ b/sdk/dotnet/MSSql/ServerExtendedAuditingPolicy.cs @@ -204,6 +204,12 @@ namespace Pulumi.Azure.MSSql [AzureResourceType("azure:mssql/serverExtendedAuditingPolicy:ServerExtendedAuditingPolicy")] public partial class ServerExtendedAuditingPolicy : global::Pulumi.CustomResource { + /// + /// A list of Actions-Groups and Actions to audit. + /// + [Output("auditActionsAndGroups")] + public Output> AuditActionsAndGroups { get; private set; } = null!; + /// /// Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. /// @@ -218,6 +224,12 @@ public partial class ServerExtendedAuditingPolicy : global::Pulumi.CustomResourc [Output("logMonitoringEnabled")] public Output LogMonitoringEnabled { get; private set; } = null!; + /// + /// Specifies condition of where clause when creating an audit. + /// + [Output("predicateExpression")] + public Output PredicateExpression { get; private set; } = null!; + /// /// The number of days to retain logs for in the storage account. Defaults to `0`. /// @@ -305,6 +317,18 @@ public static ServerExtendedAuditingPolicy Get(string name, Input id, Se public sealed class ServerExtendedAuditingPolicyArgs : global::Pulumi.ResourceArgs { + [Input("auditActionsAndGroups")] + private InputList? _auditActionsAndGroups; + + /// + /// A list of Actions-Groups and Actions to audit. + /// + public InputList AuditActionsAndGroups + { + get => _auditActionsAndGroups ?? (_auditActionsAndGroups = new InputList()); + set => _auditActionsAndGroups = value; + } + /// /// Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. /// @@ -319,6 +343,12 @@ public sealed class ServerExtendedAuditingPolicyArgs : global::Pulumi.ResourceAr [Input("logMonitoringEnabled")] public Input? LogMonitoringEnabled { get; set; } + /// + /// Specifies condition of where clause when creating an audit. + /// + [Input("predicateExpression")] + public Input? PredicateExpression { get; set; } + /// /// The number of days to retain logs for in the storage account. Defaults to `0`. /// @@ -383,6 +413,18 @@ public ServerExtendedAuditingPolicyArgs() public sealed class ServerExtendedAuditingPolicyState : global::Pulumi.ResourceArgs { + [Input("auditActionsAndGroups")] + private InputList? _auditActionsAndGroups; + + /// + /// A list of Actions-Groups and Actions to audit. + /// + public InputList AuditActionsAndGroups + { + get => _auditActionsAndGroups ?? (_auditActionsAndGroups = new InputList()); + set => _auditActionsAndGroups = value; + } + /// /// Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. /// @@ -397,6 +439,12 @@ public sealed class ServerExtendedAuditingPolicyState : global::Pulumi.ResourceA [Input("logMonitoringEnabled")] public Input? LogMonitoringEnabled { get; set; } + /// + /// Specifies condition of where clause when creating an audit. + /// + [Input("predicateExpression")] + public Input? PredicateExpression { get; set; } + /// /// The number of days to retain logs for in the storage account. Defaults to `0`. /// diff --git a/sdk/dotnet/Monitoring/Inputs/ScheduledQueryRulesAlertV2IdentityArgs.cs b/sdk/dotnet/Monitoring/Inputs/ScheduledQueryRulesAlertV2IdentityArgs.cs new file mode 100644 index 0000000000..79d61e6893 --- /dev/null +++ b/sdk/dotnet/Monitoring/Inputs/ScheduledQueryRulesAlertV2IdentityArgs.cs @@ -0,0 +1,52 @@ +// *** 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.Monitoring.Inputs +{ + + public sealed class ScheduledQueryRulesAlertV2IdentityArgs : global::Pulumi.ResourceArgs + { + [Input("identityIds")] + private InputList? _identityIds; + + /// + /// A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + /// + /// > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + /// + public InputList IdentityIds + { + get => _identityIds ?? (_identityIds = new InputList()); + set => _identityIds = value; + } + + /// + /// The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + /// + [Input("principalId")] + public Input? PrincipalId { get; set; } + + /// + /// The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + /// + [Input("tenantId")] + public Input? TenantId { get; set; } + + /// + /// Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public ScheduledQueryRulesAlertV2IdentityArgs() + { + } + public static new ScheduledQueryRulesAlertV2IdentityArgs Empty => new ScheduledQueryRulesAlertV2IdentityArgs(); + } +} diff --git a/sdk/dotnet/Monitoring/Inputs/ScheduledQueryRulesAlertV2IdentityGetArgs.cs b/sdk/dotnet/Monitoring/Inputs/ScheduledQueryRulesAlertV2IdentityGetArgs.cs new file mode 100644 index 0000000000..790a9516ec --- /dev/null +++ b/sdk/dotnet/Monitoring/Inputs/ScheduledQueryRulesAlertV2IdentityGetArgs.cs @@ -0,0 +1,52 @@ +// *** 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.Monitoring.Inputs +{ + + public sealed class ScheduledQueryRulesAlertV2IdentityGetArgs : global::Pulumi.ResourceArgs + { + [Input("identityIds")] + private InputList? _identityIds; + + /// + /// A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + /// + /// > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + /// + public InputList IdentityIds + { + get => _identityIds ?? (_identityIds = new InputList()); + set => _identityIds = value; + } + + /// + /// The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + /// + [Input("principalId")] + public Input? PrincipalId { get; set; } + + /// + /// The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + /// + [Input("tenantId")] + public Input? TenantId { get; set; } + + /// + /// Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public ScheduledQueryRulesAlertV2IdentityGetArgs() + { + } + public static new ScheduledQueryRulesAlertV2IdentityGetArgs Empty => new ScheduledQueryRulesAlertV2IdentityGetArgs(); + } +} diff --git a/sdk/dotnet/Monitoring/Outputs/ScheduledQueryRulesAlertV2Identity.cs b/sdk/dotnet/Monitoring/Outputs/ScheduledQueryRulesAlertV2Identity.cs new file mode 100644 index 0000000000..63e958229f --- /dev/null +++ b/sdk/dotnet/Monitoring/Outputs/ScheduledQueryRulesAlertV2Identity.cs @@ -0,0 +1,51 @@ +// *** 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.Monitoring.Outputs +{ + + [OutputType] + public sealed class ScheduledQueryRulesAlertV2Identity + { + /// + /// A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + /// + /// > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + /// + public readonly ImmutableArray IdentityIds; + /// + /// The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + /// + public readonly string? PrincipalId; + /// + /// The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + /// + public readonly string? TenantId; + /// + /// Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + /// + public readonly string Type; + + [OutputConstructor] + private ScheduledQueryRulesAlertV2Identity( + ImmutableArray identityIds, + + string? principalId, + + string? tenantId, + + string type) + { + IdentityIds = identityIds; + PrincipalId = principalId; + TenantId = tenantId; + Type = type; + } + } +} diff --git a/sdk/dotnet/Monitoring/ScheduledQueryRulesAlertV2.cs b/sdk/dotnet/Monitoring/ScheduledQueryRulesAlertV2.cs index b1b8f50b35..8ff3b9dceb 100644 --- a/sdk/dotnet/Monitoring/ScheduledQueryRulesAlertV2.cs +++ b/sdk/dotnet/Monitoring/ScheduledQueryRulesAlertV2.cs @@ -44,6 +44,20 @@ namespace Pulumi.Azure.Monitoring /// ShortName = "test mag", /// }); /// + /// var exampleUserAssignedIdentity = new Azure.Authorization.UserAssignedIdentity("example", new() + /// { + /// Name = "example-uai", + /// Location = example.Location, + /// ResourceGroupName = example.Name, + /// }); + /// + /// var exampleAssignment = new Azure.Authorization.Assignment("example", new() + /// { + /// Scope = exampleInsights.Id, + /// RoleDefinitionName = "Reader", + /// PrincipalId = exampleUserAssignedIdentity.PrincipalId, + /// }); + /// /// var exampleScheduledQueryRulesAlertV2 = new Azure.Monitoring.ScheduledQueryRulesAlertV2("example", new() /// { /// Name = "example-msqrv2", @@ -103,6 +117,14 @@ namespace Pulumi.Azure.Monitoring /// { "key2", "value2" }, /// }, /// }, + /// Identity = new Azure.Monitoring.Inputs.ScheduledQueryRulesAlertV2IdentityArgs + /// { + /// Type = "UserAssigned", + /// IdentityIds = new[] + /// { + /// exampleUserAssignedIdentity.Id, + /// }, + /// }, /// Tags = /// { /// { "key", "value" }, @@ -177,6 +199,12 @@ public partial class ScheduledQueryRulesAlertV2 : global::Pulumi.CustomResource [Output("evaluationFrequency")] public Output EvaluationFrequency { get; private set; } = null!; + /// + /// An `identity` block as defined below. + /// + [Output("identity")] + public Output Identity { get; private set; } = null!; + /// /// True if this alert rule is a legacy Log Analytic Rule. /// @@ -363,6 +391,12 @@ public InputList Criterias [Input("evaluationFrequency")] public Input? EvaluationFrequency { get; set; } + /// + /// An `identity` block as defined below. + /// + [Input("identity")] + public Input? Identity { get; set; } + /// /// Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. /// @@ -517,6 +551,12 @@ public InputList Criterias [Input("evaluationFrequency")] public Input? EvaluationFrequency { get; set; } + /// + /// An `identity` block as defined below. + /// + [Input("identity")] + public Input? Identity { get; set; } + /// /// True if this alert rule is a legacy Log Analytic Rule. /// diff --git a/sdk/dotnet/NetApp/Account.cs b/sdk/dotnet/NetApp/Account.cs index 91893920ad..265bf3198c 100644 --- a/sdk/dotnet/NetApp/Account.cs +++ b/sdk/dotnet/NetApp/Account.cs @@ -78,6 +78,8 @@ namespace Pulumi.Azure.NetApp /// ```sh /// $ pulumi import azure:netapp/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1 /// ``` + /// + /// ~> **IMPORTANT:** When importing a NetApp account, the `active_directory.password` and `active_directory.server_root_ca_certificate` values *cannot* be retrieved from the Azure API and will need to be redeclared within the resource. /// [AzureResourceType("azure:netapp/account:Account")] public partial class Account : global::Pulumi.CustomResource diff --git a/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleArgs.cs b/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleArgs.cs index 802765dd3e..f87573ed4a 100644 --- a/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleArgs.cs +++ b/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleArgs.cs @@ -24,6 +24,42 @@ public InputList AllowedClients set => _allowedClients = value; } + /// + /// Is Kerberos 5 read-only access permitted to this volume? + /// + [Input("kerberos5ReadOnlyEnabled")] + public Input? Kerberos5ReadOnlyEnabled { get; set; } + + /// + /// Is Kerberos 5 read/write permitted to this volume? + /// + [Input("kerberos5ReadWriteEnabled")] + public Input? Kerberos5ReadWriteEnabled { get; set; } + + /// + /// Is Kerberos 5i read-only permitted to this volume? + /// + [Input("kerberos5iReadOnlyEnabled")] + public Input? Kerberos5iReadOnlyEnabled { get; set; } + + /// + /// Is Kerberos 5i read/write permitted to this volume? + /// + [Input("kerberos5iReadWriteEnabled")] + public Input? Kerberos5iReadWriteEnabled { get; set; } + + /// + /// Is Kerberos 5p read-only permitted to this volume? + /// + [Input("kerberos5pReadOnlyEnabled")] + public Input? Kerberos5pReadOnlyEnabled { get; set; } + + /// + /// Is Kerberos 5p read/write permitted to this volume? + /// + [Input("kerberos5pReadWriteEnabled")] + public Input? Kerberos5pReadWriteEnabled { get; set; } + /// /// A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`. /// diff --git a/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleGetArgs.cs b/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleGetArgs.cs index bfbe2ed4bd..0dbf761498 100644 --- a/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleGetArgs.cs +++ b/sdk/dotnet/NetApp/Inputs/VolumeExportPolicyRuleGetArgs.cs @@ -24,6 +24,42 @@ public InputList AllowedClients set => _allowedClients = value; } + /// + /// Is Kerberos 5 read-only access permitted to this volume? + /// + [Input("kerberos5ReadOnlyEnabled")] + public Input? Kerberos5ReadOnlyEnabled { get; set; } + + /// + /// Is Kerberos 5 read/write permitted to this volume? + /// + [Input("kerberos5ReadWriteEnabled")] + public Input? Kerberos5ReadWriteEnabled { get; set; } + + /// + /// Is Kerberos 5i read-only permitted to this volume? + /// + [Input("kerberos5iReadOnlyEnabled")] + public Input? Kerberos5iReadOnlyEnabled { get; set; } + + /// + /// Is Kerberos 5i read/write permitted to this volume? + /// + [Input("kerberos5iReadWriteEnabled")] + public Input? Kerberos5iReadWriteEnabled { get; set; } + + /// + /// Is Kerberos 5p read-only permitted to this volume? + /// + [Input("kerberos5pReadOnlyEnabled")] + public Input? Kerberos5pReadOnlyEnabled { get; set; } + + /// + /// Is Kerberos 5p read/write permitted to this volume? + /// + [Input("kerberos5pReadWriteEnabled")] + public Input? Kerberos5pReadWriteEnabled { get; set; } + /// /// A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`. /// diff --git a/sdk/dotnet/NetApp/Outputs/VolumeExportPolicyRule.cs b/sdk/dotnet/NetApp/Outputs/VolumeExportPolicyRule.cs index 12117992bc..9d419a93ff 100644 --- a/sdk/dotnet/NetApp/Outputs/VolumeExportPolicyRule.cs +++ b/sdk/dotnet/NetApp/Outputs/VolumeExportPolicyRule.cs @@ -18,6 +18,30 @@ public sealed class VolumeExportPolicyRule /// public readonly ImmutableArray AllowedClients; /// + /// Is Kerberos 5 read-only access permitted to this volume? + /// + public readonly bool? Kerberos5ReadOnlyEnabled; + /// + /// Is Kerberos 5 read/write permitted to this volume? + /// + public readonly bool? Kerberos5ReadWriteEnabled; + /// + /// Is Kerberos 5i read-only permitted to this volume? + /// + public readonly bool? Kerberos5iReadOnlyEnabled; + /// + /// Is Kerberos 5i read/write permitted to this volume? + /// + public readonly bool? Kerberos5iReadWriteEnabled; + /// + /// Is Kerberos 5p read-only permitted to this volume? + /// + public readonly bool? Kerberos5pReadOnlyEnabled; + /// + /// Is Kerberos 5p read/write permitted to this volume? + /// + public readonly bool? Kerberos5pReadWriteEnabled; + /// /// A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`. /// public readonly string? ProtocolsEnabled; @@ -42,6 +66,18 @@ public sealed class VolumeExportPolicyRule private VolumeExportPolicyRule( ImmutableArray allowedClients, + bool? kerberos5ReadOnlyEnabled, + + bool? kerberos5ReadWriteEnabled, + + bool? kerberos5iReadOnlyEnabled, + + bool? kerberos5iReadWriteEnabled, + + bool? kerberos5pReadOnlyEnabled, + + bool? kerberos5pReadWriteEnabled, + string? protocolsEnabled, bool? rootAccessEnabled, @@ -53,6 +89,12 @@ private VolumeExportPolicyRule( bool? unixReadWrite) { AllowedClients = allowedClients; + Kerberos5ReadOnlyEnabled = kerberos5ReadOnlyEnabled; + Kerberos5ReadWriteEnabled = kerberos5ReadWriteEnabled; + Kerberos5iReadOnlyEnabled = kerberos5iReadOnlyEnabled; + Kerberos5iReadWriteEnabled = kerberos5iReadWriteEnabled; + Kerberos5pReadOnlyEnabled = kerberos5pReadOnlyEnabled; + Kerberos5pReadWriteEnabled = kerberos5pReadWriteEnabled; ProtocolsEnabled = protocolsEnabled; RootAccessEnabled = rootAccessEnabled; RuleIndex = ruleIndex; diff --git a/sdk/dotnet/NetApp/Volume.cs b/sdk/dotnet/NetApp/Volume.cs index 664f622304..bef5a9f6a1 100644 --- a/sdk/dotnet/NetApp/Volume.cs +++ b/sdk/dotnet/NetApp/Volume.cs @@ -63,6 +63,13 @@ public partial class Volume : global::Pulumi.CustomResource [Output("exportPolicyRules")] public Output> ExportPolicyRules { get; private set; } = null!; + /// + /// Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + /// `azurerm_netapp_account` having a defined AD connection. + /// + [Output("kerberosEnabled")] + public Output KerberosEnabled { get; private set; } = null!; + /// /// The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. /// @@ -129,6 +136,12 @@ public partial class Volume : global::Pulumi.CustomResource [Output("smbAccessBasedEnumerationEnabled")] public Output SmbAccessBasedEnumerationEnabled { get; private set; } = null!; + /// + /// Enable SMB Continuous Availability. + /// + [Output("smbContinuousAvailabilityEnabled")] + public Output SmbContinuousAvailabilityEnabled { get; private set; } = null!; + /// /// Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) /// @@ -273,6 +286,13 @@ public InputList ExportPolicyRules set => _exportPolicyRules = value; } + /// + /// Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + /// `azurerm_netapp_account` having a defined AD connection. + /// + [Input("kerberosEnabled")] + public Input? KerberosEnabled { get; set; } + /// /// The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. /// @@ -339,6 +359,12 @@ public InputList Protocols [Input("smbAccessBasedEnumerationEnabled")] public Input? SmbAccessBasedEnumerationEnabled { get; set; } + /// + /// Enable SMB Continuous Availability. + /// + [Input("smbContinuousAvailabilityEnabled")] + public Input? SmbContinuousAvailabilityEnabled { get; set; } + /// /// Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) /// @@ -451,6 +477,13 @@ public InputList ExportPolicyRules set => _exportPolicyRules = value; } + /// + /// Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + /// `azurerm_netapp_account` having a defined AD connection. + /// + [Input("kerberosEnabled")] + public Input? KerberosEnabled { get; set; } + /// /// The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. /// @@ -529,6 +562,12 @@ public InputList Protocols [Input("smbAccessBasedEnumerationEnabled")] public Input? SmbAccessBasedEnumerationEnabled { get; set; } + /// + /// Enable SMB Continuous Availability. + /// + [Input("smbContinuousAvailabilityEnabled")] + public Input? SmbContinuousAvailabilityEnabled { get; set; } + /// /// Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) /// diff --git a/sdk/dotnet/Nginx/Deployment.cs b/sdk/dotnet/Nginx/Deployment.cs index 53774d5dab..73dd1f7dcf 100644 --- a/sdk/dotnet/Nginx/Deployment.cs +++ b/sdk/dotnet/Nginx/Deployment.cs @@ -286,7 +286,7 @@ public partial class Deployment : global::Pulumi.CustomResource public Output ResourceGroupName { get; private set; } = null!; /// - /// Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + /// Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. /// [Output("sku")] public Output Sku { get; private set; } = null!; @@ -460,7 +460,7 @@ public InputList NetworkInterfaces public Input ResourceGroupName { get; set; } = null!; /// - /// Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + /// Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. /// [Input("sku", required: true)] public Input Sku { get; set; } = null!; @@ -614,7 +614,7 @@ public InputList NetworkInterfaces public Input? ResourceGroupName { get; set; } /// - /// Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + /// Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. /// [Input("sku")] public Input? Sku { get; set; } diff --git a/sdk/dotnet/Nginx/GetDeployment.cs b/sdk/dotnet/Nginx/GetDeployment.cs index 8e8a373c0e..46a0ad5c12 100644 --- a/sdk/dotnet/Nginx/GetDeployment.cs +++ b/sdk/dotnet/Nginx/GetDeployment.cs @@ -185,7 +185,7 @@ public sealed class GetDeploymentResult public readonly string NginxVersion; public readonly string ResourceGroupName; /// - /// Name of the SKU for this Nginx Deployment. + /// The Nginx Deployment SKU. Possible values include `standard_Monthly`. /// public readonly string Sku; /// diff --git a/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicArgs.cs b/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicArgs.cs index 48d74aec15..96e4abf789 100644 --- a/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicArgs.cs +++ b/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicArgs.cs @@ -16,7 +16,7 @@ public sealed class DeploymentFrontendPublicArgs : global::Pulumi.ResourceArgs private InputList? _ipAddresses; /// - /// Specifies a list of Public IP Resouce ID to this Nginx Deployment. + /// Specifies a list of Public IP Resource ID to this Nginx Deployment. /// public InputList IpAddresses { diff --git a/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicGetArgs.cs b/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicGetArgs.cs index 947bf43a19..b2247a045d 100644 --- a/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicGetArgs.cs +++ b/sdk/dotnet/Nginx/Inputs/DeploymentFrontendPublicGetArgs.cs @@ -16,7 +16,7 @@ public sealed class DeploymentFrontendPublicGetArgs : global::Pulumi.ResourceArg private InputList? _ipAddresses; /// - /// Specifies a list of Public IP Resouce ID to this Nginx Deployment. + /// Specifies a list of Public IP Resource ID to this Nginx Deployment. /// public InputList IpAddresses { diff --git a/sdk/dotnet/Nginx/Outputs/DeploymentFrontendPublic.cs b/sdk/dotnet/Nginx/Outputs/DeploymentFrontendPublic.cs index a7a668e435..bf72f55286 100644 --- a/sdk/dotnet/Nginx/Outputs/DeploymentFrontendPublic.cs +++ b/sdk/dotnet/Nginx/Outputs/DeploymentFrontendPublic.cs @@ -14,7 +14,7 @@ namespace Pulumi.Azure.Nginx.Outputs public sealed class DeploymentFrontendPublic { /// - /// Specifies a list of Public IP Resouce ID to this Nginx Deployment. + /// Specifies a list of Public IP Resource ID to this Nginx Deployment. /// public readonly ImmutableArray IpAddresses; diff --git a/sdk/dotnet/Redis/CacheAccessPolicy.cs b/sdk/dotnet/Redis/CacheAccessPolicy.cs new file mode 100644 index 0000000000..d4fbaf0070 --- /dev/null +++ b/sdk/dotnet/Redis/CacheAccessPolicy.cs @@ -0,0 +1,184 @@ +// *** 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.Redis +{ + /// + /// Manages a Redis Cache Access Policy + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```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 = "East US", + /// }); + /// + /// var exampleCache = new Azure.Redis.Cache("example", new() + /// { + /// Name = "example", + /// Location = example.Location, + /// ResourceGroupName = example.Name, + /// Capacity = 1, + /// Family = "P", + /// SkuName = "Premium", + /// EnableNonSslPort = false, + /// RedisConfiguration = new Azure.Redis.Inputs.CacheRedisConfigurationArgs + /// { + /// MaxmemoryReserved = 2, + /// MaxmemoryDelta = 2, + /// MaxmemoryPolicy = "allkeys-lru", + /// }, + /// }); + /// + /// var exampleCacheAccessPolicy = new Azure.Redis.CacheAccessPolicy("example", new() + /// { + /// Name = "example", + /// RedisCacheId = exampleCache.Id, + /// Permissions = "+@read +@connection +cluster|info", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Redis Cache Access Policy can be imported using the `resource id`, e.g. + /// + /// ```sh + /// $ pulumi import azure:redis/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicies/policy1 + /// ``` + /// + [AzureResourceType("azure:redis/cacheAccessPolicy:CacheAccessPolicy")] + public partial class CacheAccessPolicy : global::Pulumi.CustomResource + { + /// + /// The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Output("permissions")] + public Output Permissions { get; private set; } = null!; + + /// + /// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Output("redisCacheId")] + public Output RedisCacheId { get; private set; } = null!; + + + /// + /// Create a CacheAccessPolicy 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 CacheAccessPolicy(string name, CacheAccessPolicyArgs args, CustomResourceOptions? options = null) + : base("azure:redis/cacheAccessPolicy:CacheAccessPolicy", name, args ?? new CacheAccessPolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private CacheAccessPolicy(string name, Input id, CacheAccessPolicyState? state = null, CustomResourceOptions? options = null) + : base("azure:redis/cacheAccessPolicy:CacheAccessPolicy", 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 CacheAccessPolicy 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 CacheAccessPolicy Get(string name, Input id, CacheAccessPolicyState? state = null, CustomResourceOptions? options = null) + { + return new CacheAccessPolicy(name, id, state, options); + } + } + + public sealed class CacheAccessPolicyArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Input("permissions", required: true)] + public Input Permissions { get; set; } = null!; + + /// + /// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Input("redisCacheId", required: true)] + public Input RedisCacheId { get; set; } = null!; + + public CacheAccessPolicyArgs() + { + } + public static new CacheAccessPolicyArgs Empty => new CacheAccessPolicyArgs(); + } + + public sealed class CacheAccessPolicyState : global::Pulumi.ResourceArgs + { + /// + /// The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Input("permissions")] + public Input? Permissions { get; set; } + + /// + /// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + /// + [Input("redisCacheId")] + public Input? RedisCacheId { get; set; } + + public CacheAccessPolicyState() + { + } + public static new CacheAccessPolicyState Empty => new CacheAccessPolicyState(); + } +} diff --git a/sdk/dotnet/Redis/CacheAccessPolicyAssignment.cs b/sdk/dotnet/Redis/CacheAccessPolicyAssignment.cs new file mode 100644 index 0000000000..2b7f1c6dce --- /dev/null +++ b/sdk/dotnet/Redis/CacheAccessPolicyAssignment.cs @@ -0,0 +1,224 @@ +// *** 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.Redis +{ + /// + /// Manages a Redis Cache Access Policy Assignment + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Azure = Pulumi.Azure; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var test = Azure.Core.GetClientConfig.Invoke(); + /// + /// var example = new Azure.Core.ResourceGroup("example", new() + /// { + /// Name = "example-resources", + /// Location = "East US", + /// }); + /// + /// var exampleCache = new Azure.Redis.Cache("example", new() + /// { + /// Name = "example", + /// Location = example.Location, + /// ResourceGroupName = example.Name, + /// Capacity = 1, + /// Family = "P", + /// SkuName = "Premium", + /// EnableNonSslPort = false, + /// RedisConfiguration = new Azure.Redis.Inputs.CacheRedisConfigurationArgs + /// { + /// MaxmemoryReserved = 2, + /// MaxmemoryDelta = 2, + /// MaxmemoryPolicy = "allkeys-lru", + /// }, + /// }); + /// + /// var exampleCacheAccessPolicyAssignment = new Azure.Redis.CacheAccessPolicyAssignment("example", new() + /// { + /// Name = "example", + /// RedisCacheId = exampleCache.Id, + /// AccessPolicyName = "Data Contributor", + /// ObjectId = test.Apply(getClientConfigResult => getClientConfigResult.ObjectId), + /// ObjectIdAlias = "ServicePrincipal", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// Redis Cache Policy Assignment can be imported using the `resource id`, e.g. + /// + /// ```sh + /// $ pulumi import azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/assignment1 + /// ``` + /// + [AzureResourceType("azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment")] + public partial class CacheAccessPolicyAssignment : global::Pulumi.CustomResource + { + /// + /// The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Output("accessPolicyName")] + public Output AccessPolicyName { get; private set; } = null!; + + /// + /// The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Output("objectId")] + public Output ObjectId { get; private set; } = null!; + + /// + /// The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Output("objectIdAlias")] + public Output ObjectIdAlias { get; private set; } = null!; + + /// + /// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Output("redisCacheId")] + public Output RedisCacheId { get; private set; } = null!; + + + /// + /// Create a CacheAccessPolicyAssignment 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 CacheAccessPolicyAssignment(string name, CacheAccessPolicyAssignmentArgs args, CustomResourceOptions? options = null) + : base("azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment", name, args ?? new CacheAccessPolicyAssignmentArgs(), MakeResourceOptions(options, "")) + { + } + + private CacheAccessPolicyAssignment(string name, Input id, CacheAccessPolicyAssignmentState? state = null, CustomResourceOptions? options = null) + : base("azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment", 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 CacheAccessPolicyAssignment 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 CacheAccessPolicyAssignment Get(string name, Input id, CacheAccessPolicyAssignmentState? state = null, CustomResourceOptions? options = null) + { + return new CacheAccessPolicyAssignment(name, id, state, options); + } + } + + public sealed class CacheAccessPolicyAssignmentArgs : global::Pulumi.ResourceArgs + { + /// + /// The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("accessPolicyName", required: true)] + public Input AccessPolicyName { get; set; } = null!; + + /// + /// The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("objectId", required: true)] + public Input ObjectId { get; set; } = null!; + + /// + /// The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("objectIdAlias", required: true)] + public Input ObjectIdAlias { get; set; } = null!; + + /// + /// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("redisCacheId", required: true)] + public Input RedisCacheId { get; set; } = null!; + + public CacheAccessPolicyAssignmentArgs() + { + } + public static new CacheAccessPolicyAssignmentArgs Empty => new CacheAccessPolicyAssignmentArgs(); + } + + public sealed class CacheAccessPolicyAssignmentState : global::Pulumi.ResourceArgs + { + /// + /// The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("accessPolicyName")] + public Input? AccessPolicyName { get; set; } + + /// + /// The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("objectId")] + public Input? ObjectId { get; set; } + + /// + /// The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("objectIdAlias")] + public Input? ObjectIdAlias { get; set; } + + /// + /// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + /// + [Input("redisCacheId")] + public Input? RedisCacheId { get; set; } + + public CacheAccessPolicyAssignmentState() + { + } + public static new CacheAccessPolicyAssignmentState Empty => new CacheAccessPolicyAssignmentState(); + } +} diff --git a/sdk/dotnet/Stack/HciCluster.cs b/sdk/dotnet/Stack/HciCluster.cs index 9224c27c7f..6159601700 100644 --- a/sdk/dotnet/Stack/HciCluster.cs +++ b/sdk/dotnet/Stack/HciCluster.cs @@ -72,10 +72,10 @@ public partial class HciCluster : global::Pulumi.CustomResource public Output AutomanageConfigurationId { get; private set; } = null!; /// - /// The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + /// The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. /// [Output("clientId")] - public Output ClientId { get; private set; } = null!; + public Output ClientId { get; private set; } = null!; /// /// An immutable UUID for the Azure Stack HCI Cluster. @@ -186,10 +186,10 @@ public sealed class HciClusterArgs : global::Pulumi.ResourceArgs public Input? AutomanageConfigurationId { get; set; } /// - /// The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + /// The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. /// - [Input("clientId", required: true)] - public Input ClientId { get; set; } = null!; + [Input("clientId")] + public Input? ClientId { get; set; } /// /// An `identity` block as defined below. @@ -250,7 +250,7 @@ public sealed class HciClusterState : global::Pulumi.ResourceArgs public Input? AutomanageConfigurationId { get; set; } /// - /// The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + /// The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. /// [Input("clientId")] public Input? ClientId { get; set; } diff --git a/sdk/dotnet/SystemCenter/GetVirtualMachineManagerInventoryItems.cs b/sdk/dotnet/SystemCenter/GetVirtualMachineManagerInventoryItems.cs new file mode 100644 index 0000000000..0d0d12ad74 --- /dev/null +++ b/sdk/dotnet/SystemCenter/GetVirtualMachineManagerInventoryItems.cs @@ -0,0 +1,141 @@ +// *** 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.SystemCenter +{ + public static class GetVirtualMachineManagerInventoryItems + { + /// + /// Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Azure = Pulumi.Azure; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Azure.SystemCenter.GetVirtualMachineManagerInventoryItems.Invoke(new() + /// { + /// InventoryType = "Cloud", + /// SystemCenterVirtualMachineManagerServerId = exampleAzurermSystemCenterVirtualMachineManagerServer.Id, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Task InvokeAsync(GetVirtualMachineManagerInventoryItemsArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.InvokeAsync("azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems", args ?? new GetVirtualMachineManagerInventoryItemsArgs(), options.WithDefaults()); + + /// + /// Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Azure = Pulumi.Azure; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = Azure.SystemCenter.GetVirtualMachineManagerInventoryItems.Invoke(new() + /// { + /// InventoryType = "Cloud", + /// SystemCenterVirtualMachineManagerServerId = exampleAzurermSystemCenterVirtualMachineManagerServer.Id, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + public static Output Invoke(GetVirtualMachineManagerInventoryItemsInvokeArgs args, InvokeOptions? options = null) + => global::Pulumi.Deployment.Instance.Invoke("azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems", args ?? new GetVirtualMachineManagerInventoryItemsInvokeArgs(), options.WithDefaults()); + } + + + public sealed class GetVirtualMachineManagerInventoryItemsArgs : global::Pulumi.InvokeArgs + { + /// + /// The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + /// + [Input("inventoryType", required: true)] + public string InventoryType { get; set; } = null!; + + /// + /// The ID of the System Center Virtual Machine Manager Server. + /// + [Input("systemCenterVirtualMachineManagerServerId", required: true)] + public string SystemCenterVirtualMachineManagerServerId { get; set; } = null!; + + public GetVirtualMachineManagerInventoryItemsArgs() + { + } + public static new GetVirtualMachineManagerInventoryItemsArgs Empty => new GetVirtualMachineManagerInventoryItemsArgs(); + } + + public sealed class GetVirtualMachineManagerInventoryItemsInvokeArgs : global::Pulumi.InvokeArgs + { + /// + /// The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + /// + [Input("inventoryType", required: true)] + public Input InventoryType { get; set; } = null!; + + /// + /// The ID of the System Center Virtual Machine Manager Server. + /// + [Input("systemCenterVirtualMachineManagerServerId", required: true)] + public Input SystemCenterVirtualMachineManagerServerId { get; set; } = null!; + + public GetVirtualMachineManagerInventoryItemsInvokeArgs() + { + } + public static new GetVirtualMachineManagerInventoryItemsInvokeArgs Empty => new GetVirtualMachineManagerInventoryItemsInvokeArgs(); + } + + + [OutputType] + public sealed class GetVirtualMachineManagerInventoryItemsResult + { + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// One or more `inventory_items` blocks as defined below. + /// + public readonly ImmutableArray InventoryItems; + public readonly string InventoryType; + public readonly string SystemCenterVirtualMachineManagerServerId; + + [OutputConstructor] + private GetVirtualMachineManagerInventoryItemsResult( + string id, + + ImmutableArray inventoryItems, + + string inventoryType, + + string systemCenterVirtualMachineManagerServerId) + { + Id = id; + InventoryItems = inventoryItems; + InventoryType = inventoryType; + SystemCenterVirtualMachineManagerServerId = systemCenterVirtualMachineManagerServerId; + } + } +} diff --git a/sdk/dotnet/SystemCenter/Outputs/GetVirtualMachineManagerInventoryItemsInventoryItemResult.cs b/sdk/dotnet/SystemCenter/Outputs/GetVirtualMachineManagerInventoryItemsInventoryItemResult.cs new file mode 100644 index 0000000000..8e232f668c --- /dev/null +++ b/sdk/dotnet/SystemCenter/Outputs/GetVirtualMachineManagerInventoryItemsInventoryItemResult.cs @@ -0,0 +1,42 @@ +// *** 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.SystemCenter.Outputs +{ + + [OutputType] + public sealed class GetVirtualMachineManagerInventoryItemsInventoryItemResult + { + /// + /// The ID of the System Center Virtual Machine Manager Inventory Item. + /// + public readonly string Id; + /// + /// The name of the System Center Virtual Machine Manager Inventory Item. + /// + public readonly string Name; + /// + /// The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + /// + public readonly string Uuid; + + [OutputConstructor] + private GetVirtualMachineManagerInventoryItemsInventoryItemResult( + string id, + + string name, + + string uuid) + { + Id = id; + Name = name; + Uuid = uuid; + } + } +} diff --git a/sdk/dotnet/WorkloadsSAP/DiscoveryVirtualInstance.cs b/sdk/dotnet/WorkloadsSAP/DiscoveryVirtualInstance.cs new file mode 100644 index 0000000000..bf282b872d --- /dev/null +++ b/sdk/dotnet/WorkloadsSAP/DiscoveryVirtualInstance.cs @@ -0,0 +1,319 @@ +// *** 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.WorkloadsSAP +{ + /// + /// Manages an SAP Discovery Virtual Instance. + /// + /// > **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace "Microsoft.Workloads"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace "Microsoft.Workloads" --query "registrationState"`. Once this outputs "Registered" the Resource Provider is available for use. + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```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-sapvis", + /// Location = "West Europe", + /// }); + /// + /// var exampleDiscoveryVirtualInstance = new Azure.WorkloadsSAP.DiscoveryVirtualInstance("example", new() + /// { + /// Name = "X01", + /// ResourceGroupName = example.Name, + /// Location = example.Location, + /// Environment = "NonProd", + /// SapProduct = "S4HANA", + /// CentralServerVirtualMachineId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1", + /// ManagedStorageAccountName = "managedsa", + /// Identity = new Azure.WorkloadsSAP.Inputs.DiscoveryVirtualInstanceIdentityArgs + /// { + /// Type = "UserAssigned", + /// IdentityIds = new[] + /// { + /// "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// SAP Discovery Virtual Instances can be imported using the `resource id`, e.g. + /// + /// ```sh + /// $ pulumi import azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1 + /// ``` + /// + [AzureResourceType("azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance")] + public partial class DiscoveryVirtualInstance : global::Pulumi.CustomResource + { + /// + /// The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + /// + [Output("centralServerVirtualMachineId")] + public Output CentralServerVirtualMachineId { get; private set; } = null!; + + /// + /// The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + /// + [Output("environment")] + public Output Environment { get; private set; } = null!; + + /// + /// An `identity` block as defined below. + /// + [Output("identity")] + public Output Identity { get; private set; } = null!; + + /// + /// The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + /// + [Output("location")] + public Output Location { get; private set; } = null!; + + /// + /// The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + /// + [Output("managedResourceGroupName")] + public Output ManagedResourceGroupName { get; private set; } = null!; + + /// + /// The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + /// + [Output("managedStorageAccountName")] + public Output ManagedStorageAccountName { get; private set; } = null!; + + /// + /// Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + /// + [Output("resourceGroupName")] + public Output ResourceGroupName { get; private set; } = null!; + + /// + /// The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + /// + [Output("sapProduct")] + public Output SapProduct { get; private set; } = null!; + + /// + /// A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + + /// + /// Create a DiscoveryVirtualInstance 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 DiscoveryVirtualInstance(string name, DiscoveryVirtualInstanceArgs args, CustomResourceOptions? options = null) + : base("azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance", name, args ?? new DiscoveryVirtualInstanceArgs(), MakeResourceOptions(options, "")) + { + } + + private DiscoveryVirtualInstance(string name, Input id, DiscoveryVirtualInstanceState? state = null, CustomResourceOptions? options = null) + : base("azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance", 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 DiscoveryVirtualInstance 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 DiscoveryVirtualInstance Get(string name, Input id, DiscoveryVirtualInstanceState? state = null, CustomResourceOptions? options = null) + { + return new DiscoveryVirtualInstance(name, id, state, options); + } + } + + public sealed class DiscoveryVirtualInstanceArgs : global::Pulumi.ResourceArgs + { + /// + /// The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + /// + [Input("centralServerVirtualMachineId", required: true)] + public Input CentralServerVirtualMachineId { get; set; } = null!; + + /// + /// The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + /// + [Input("environment", required: true)] + public Input Environment { get; set; } = null!; + + /// + /// An `identity` block as defined below. + /// + [Input("identity")] + public Input? Identity { get; set; } + + /// + /// The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + /// + [Input("managedResourceGroupName")] + public Input? ManagedResourceGroupName { get; set; } + + /// + /// The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + /// + [Input("managedStorageAccountName")] + public Input? ManagedStorageAccountName { get; set; } + + /// + /// Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + /// + [Input("resourceGroupName", required: true)] + public Input ResourceGroupName { get; set; } = null!; + + /// + /// The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + /// + [Input("sapProduct", required: true)] + public Input SapProduct { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + + /// + /// A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public DiscoveryVirtualInstanceArgs() + { + } + public static new DiscoveryVirtualInstanceArgs Empty => new DiscoveryVirtualInstanceArgs(); + } + + public sealed class DiscoveryVirtualInstanceState : global::Pulumi.ResourceArgs + { + /// + /// The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + /// + [Input("centralServerVirtualMachineId")] + public Input? CentralServerVirtualMachineId { get; set; } + + /// + /// The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + /// + [Input("environment")] + public Input? Environment { get; set; } + + /// + /// An `identity` block as defined below. + /// + [Input("identity")] + public Input? Identity { get; set; } + + /// + /// The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + /// + [Input("location")] + public Input? Location { get; set; } + + /// + /// The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + /// + [Input("managedResourceGroupName")] + public Input? ManagedResourceGroupName { get; set; } + + /// + /// The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + /// + [Input("managedStorageAccountName")] + public Input? ManagedStorageAccountName { get; set; } + + /// + /// Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + /// + [Input("resourceGroupName")] + public Input? ResourceGroupName { get; set; } + + /// + /// The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + /// + [Input("sapProduct")] + public Input? SapProduct { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public DiscoveryVirtualInstanceState() + { + } + public static new DiscoveryVirtualInstanceState Empty => new DiscoveryVirtualInstanceState(); + } +} diff --git a/sdk/dotnet/WorkloadsSAP/Inputs/DiscoveryVirtualInstanceIdentityArgs.cs b/sdk/dotnet/WorkloadsSAP/Inputs/DiscoveryVirtualInstanceIdentityArgs.cs new file mode 100644 index 0000000000..62fc496890 --- /dev/null +++ b/sdk/dotnet/WorkloadsSAP/Inputs/DiscoveryVirtualInstanceIdentityArgs.cs @@ -0,0 +1,38 @@ +// *** 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.WorkloadsSAP.Inputs +{ + + public sealed class DiscoveryVirtualInstanceIdentityArgs : global::Pulumi.ResourceArgs + { + [Input("identityIds", required: true)] + private InputList? _identityIds; + + /// + /// A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + /// + public InputList IdentityIds + { + get => _identityIds ?? (_identityIds = new InputList()); + set => _identityIds = value; + } + + /// + /// The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public DiscoveryVirtualInstanceIdentityArgs() + { + } + public static new DiscoveryVirtualInstanceIdentityArgs Empty => new DiscoveryVirtualInstanceIdentityArgs(); + } +} diff --git a/sdk/dotnet/WorkloadsSAP/Inputs/DiscoveryVirtualInstanceIdentityGetArgs.cs b/sdk/dotnet/WorkloadsSAP/Inputs/DiscoveryVirtualInstanceIdentityGetArgs.cs new file mode 100644 index 0000000000..f9de45579d --- /dev/null +++ b/sdk/dotnet/WorkloadsSAP/Inputs/DiscoveryVirtualInstanceIdentityGetArgs.cs @@ -0,0 +1,38 @@ +// *** 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.WorkloadsSAP.Inputs +{ + + public sealed class DiscoveryVirtualInstanceIdentityGetArgs : global::Pulumi.ResourceArgs + { + [Input("identityIds", required: true)] + private InputList? _identityIds; + + /// + /// A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + /// + public InputList IdentityIds + { + get => _identityIds ?? (_identityIds = new InputList()); + set => _identityIds = value; + } + + /// + /// The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public DiscoveryVirtualInstanceIdentityGetArgs() + { + } + public static new DiscoveryVirtualInstanceIdentityGetArgs Empty => new DiscoveryVirtualInstanceIdentityGetArgs(); + } +} diff --git a/sdk/dotnet/WorkloadsSAP/Outputs/DiscoveryVirtualInstanceIdentity.cs b/sdk/dotnet/WorkloadsSAP/Outputs/DiscoveryVirtualInstanceIdentity.cs new file mode 100644 index 0000000000..c1cb7ae256 --- /dev/null +++ b/sdk/dotnet/WorkloadsSAP/Outputs/DiscoveryVirtualInstanceIdentity.cs @@ -0,0 +1,35 @@ +// *** 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.WorkloadsSAP.Outputs +{ + + [OutputType] + public sealed class DiscoveryVirtualInstanceIdentity + { + /// + /// A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + /// + public readonly ImmutableArray IdentityIds; + /// + /// The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + /// + public readonly string Type; + + [OutputConstructor] + private DiscoveryVirtualInstanceIdentity( + ImmutableArray identityIds, + + string type) + { + IdentityIds = identityIds; + Type = type; + } + } +} diff --git a/sdk/go/azure/appinsights/smartDetectionRule.go b/sdk/go/azure/appinsights/smartDetectionRule.go index bee68343be..7cc40e0735 100644 --- a/sdk/go/azure/appinsights/smartDetectionRule.go +++ b/sdk/go/azure/appinsights/smartDetectionRule.go @@ -66,7 +66,7 @@ import ( // Application Insights Smart Detection Rules can be imported using the `resource id`, e.g. // // ```sh -// $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/smartDetectionRule/myrule1 +// $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/proactiveDetectionConfig/myrule1 // ``` type SmartDetectionRule struct { pulumi.CustomResourceState diff --git a/sdk/go/azure/appservice/init.go b/sdk/go/azure/appservice/init.go index fdf0121bc7..6d4c304263 100644 --- a/sdk/go/azure/appservice/init.go +++ b/sdk/go/azure/appservice/init.go @@ -91,6 +91,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &StaticWebApp{} case "azure:appservice/staticWebAppCustomDomain:StaticWebAppCustomDomain": r = &StaticWebAppCustomDomain{} + case "azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration": + r = &StaticWebAppFunctionAppRegistration{} case "azure:appservice/virtualNetworkSwiftConnection:VirtualNetworkSwiftConnection": r = &VirtualNetworkSwiftConnection{} case "azure:appservice/webAppActiveSlot:WebAppActiveSlot": @@ -293,6 +295,11 @@ func init() { "appservice/staticWebAppCustomDomain", &module{version}, ) + pulumi.RegisterResourceModule( + "azure", + "appservice/staticWebAppFunctionAppRegistration", + &module{version}, + ) pulumi.RegisterResourceModule( "azure", "appservice/virtualNetworkSwiftConnection", diff --git a/sdk/go/azure/appservice/staticWebAppFunctionAppRegistration.go b/sdk/go/azure/appservice/staticWebAppFunctionAppRegistration.go new file mode 100644 index 0000000000..b7120577b7 --- /dev/null +++ b/sdk/go/azure/appservice/staticWebAppFunctionAppRegistration.go @@ -0,0 +1,349 @@ +// 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 appservice + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages an App Service Static Web App Function App Registration. +// +// > **NOTE:** This resource registers the specified Function App to the `Production` build of the Static Web App. +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appservice" +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v5/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 +// } +// exampleStaticWebApp, err := appservice.NewStaticWebApp(ctx, "example", &appservice.StaticWebAppArgs{ +// Name: pulumi.String("example"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// }) +// if err != nil { +// return err +// } +// exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{ +// Name: pulumi.String("examplesstorageacc"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// AccountTier: pulumi.String("Standard"), +// AccountReplicationType: pulumi.String("LRS"), +// }) +// if err != nil { +// return err +// } +// exampleServicePlan, err := appservice.NewServicePlan(ctx, "example", &appservice.ServicePlanArgs{ +// Name: pulumi.String("example-service-plan"), +// Location: example.Location, +// ResourceGroupName: example.Name, +// OsType: pulumi.String("Linux"), +// SkuName: pulumi.String("S1"), +// }) +// if err != nil { +// return err +// } +// exampleLinuxFunctionApp, err := appservice.NewLinuxFunctionApp(ctx, "example", &appservice.LinuxFunctionAppArgs{ +// Name: pulumi.String("example-function-app"), +// Location: example.Location, +// ResourceGroupName: example.Name, +// ServicePlanId: exampleServicePlan.ID(), +// StorageAccountName: exampleAccount.Name, +// StorageAccountAccessKey: exampleAccount.PrimaryAccessKey, +// SiteConfig: nil, +// }) +// if err != nil { +// return err +// } +// _, err = appservice.NewStaticWebAppFunctionAppRegistration(ctx, "example", &appservice.StaticWebAppFunctionAppRegistrationArgs{ +// StaticWebAppId: exampleStaticWebApp.ID(), +// FunctionAppId: exampleLinuxFunctionApp.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Static Web App Function App Registration can be imported using the `resource id`, e.g. +// +// ```sh +// $ pulumi import azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/userProvidedFunctionApps/myFunctionApp +// ``` +type StaticWebAppFunctionAppRegistration struct { + pulumi.CustomResourceState + + // The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + // + // > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + // + // > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + FunctionAppId pulumi.StringOutput `pulumi:"functionAppId"` + // The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + StaticWebAppId pulumi.StringOutput `pulumi:"staticWebAppId"` +} + +// NewStaticWebAppFunctionAppRegistration registers a new resource with the given unique name, arguments, and options. +func NewStaticWebAppFunctionAppRegistration(ctx *pulumi.Context, + name string, args *StaticWebAppFunctionAppRegistrationArgs, opts ...pulumi.ResourceOption) (*StaticWebAppFunctionAppRegistration, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.FunctionAppId == nil { + return nil, errors.New("invalid value for required argument 'FunctionAppId'") + } + if args.StaticWebAppId == nil { + return nil, errors.New("invalid value for required argument 'StaticWebAppId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource StaticWebAppFunctionAppRegistration + err := ctx.RegisterResource("azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetStaticWebAppFunctionAppRegistration gets an existing StaticWebAppFunctionAppRegistration 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 GetStaticWebAppFunctionAppRegistration(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *StaticWebAppFunctionAppRegistrationState, opts ...pulumi.ResourceOption) (*StaticWebAppFunctionAppRegistration, error) { + var resource StaticWebAppFunctionAppRegistration + err := ctx.ReadResource("azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering StaticWebAppFunctionAppRegistration resources. +type staticWebAppFunctionAppRegistrationState struct { + // The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + // + // > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + // + // > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + FunctionAppId *string `pulumi:"functionAppId"` + // The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + StaticWebAppId *string `pulumi:"staticWebAppId"` +} + +type StaticWebAppFunctionAppRegistrationState struct { + // The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + // + // > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + // + // > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + FunctionAppId pulumi.StringPtrInput + // The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + StaticWebAppId pulumi.StringPtrInput +} + +func (StaticWebAppFunctionAppRegistrationState) ElementType() reflect.Type { + return reflect.TypeOf((*staticWebAppFunctionAppRegistrationState)(nil)).Elem() +} + +type staticWebAppFunctionAppRegistrationArgs struct { + // The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + // + // > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + // + // > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + FunctionAppId string `pulumi:"functionAppId"` + // The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + StaticWebAppId string `pulumi:"staticWebAppId"` +} + +// The set of arguments for constructing a StaticWebAppFunctionAppRegistration resource. +type StaticWebAppFunctionAppRegistrationArgs struct { + // The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + // + // > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + // + // > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + FunctionAppId pulumi.StringInput + // The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + StaticWebAppId pulumi.StringInput +} + +func (StaticWebAppFunctionAppRegistrationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*staticWebAppFunctionAppRegistrationArgs)(nil)).Elem() +} + +type StaticWebAppFunctionAppRegistrationInput interface { + pulumi.Input + + ToStaticWebAppFunctionAppRegistrationOutput() StaticWebAppFunctionAppRegistrationOutput + ToStaticWebAppFunctionAppRegistrationOutputWithContext(ctx context.Context) StaticWebAppFunctionAppRegistrationOutput +} + +func (*StaticWebAppFunctionAppRegistration) ElementType() reflect.Type { + return reflect.TypeOf((**StaticWebAppFunctionAppRegistration)(nil)).Elem() +} + +func (i *StaticWebAppFunctionAppRegistration) ToStaticWebAppFunctionAppRegistrationOutput() StaticWebAppFunctionAppRegistrationOutput { + return i.ToStaticWebAppFunctionAppRegistrationOutputWithContext(context.Background()) +} + +func (i *StaticWebAppFunctionAppRegistration) ToStaticWebAppFunctionAppRegistrationOutputWithContext(ctx context.Context) StaticWebAppFunctionAppRegistrationOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticWebAppFunctionAppRegistrationOutput) +} + +// StaticWebAppFunctionAppRegistrationArrayInput is an input type that accepts StaticWebAppFunctionAppRegistrationArray and StaticWebAppFunctionAppRegistrationArrayOutput values. +// You can construct a concrete instance of `StaticWebAppFunctionAppRegistrationArrayInput` via: +// +// StaticWebAppFunctionAppRegistrationArray{ StaticWebAppFunctionAppRegistrationArgs{...} } +type StaticWebAppFunctionAppRegistrationArrayInput interface { + pulumi.Input + + ToStaticWebAppFunctionAppRegistrationArrayOutput() StaticWebAppFunctionAppRegistrationArrayOutput + ToStaticWebAppFunctionAppRegistrationArrayOutputWithContext(context.Context) StaticWebAppFunctionAppRegistrationArrayOutput +} + +type StaticWebAppFunctionAppRegistrationArray []StaticWebAppFunctionAppRegistrationInput + +func (StaticWebAppFunctionAppRegistrationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StaticWebAppFunctionAppRegistration)(nil)).Elem() +} + +func (i StaticWebAppFunctionAppRegistrationArray) ToStaticWebAppFunctionAppRegistrationArrayOutput() StaticWebAppFunctionAppRegistrationArrayOutput { + return i.ToStaticWebAppFunctionAppRegistrationArrayOutputWithContext(context.Background()) +} + +func (i StaticWebAppFunctionAppRegistrationArray) ToStaticWebAppFunctionAppRegistrationArrayOutputWithContext(ctx context.Context) StaticWebAppFunctionAppRegistrationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticWebAppFunctionAppRegistrationArrayOutput) +} + +// StaticWebAppFunctionAppRegistrationMapInput is an input type that accepts StaticWebAppFunctionAppRegistrationMap and StaticWebAppFunctionAppRegistrationMapOutput values. +// You can construct a concrete instance of `StaticWebAppFunctionAppRegistrationMapInput` via: +// +// StaticWebAppFunctionAppRegistrationMap{ "key": StaticWebAppFunctionAppRegistrationArgs{...} } +type StaticWebAppFunctionAppRegistrationMapInput interface { + pulumi.Input + + ToStaticWebAppFunctionAppRegistrationMapOutput() StaticWebAppFunctionAppRegistrationMapOutput + ToStaticWebAppFunctionAppRegistrationMapOutputWithContext(context.Context) StaticWebAppFunctionAppRegistrationMapOutput +} + +type StaticWebAppFunctionAppRegistrationMap map[string]StaticWebAppFunctionAppRegistrationInput + +func (StaticWebAppFunctionAppRegistrationMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StaticWebAppFunctionAppRegistration)(nil)).Elem() +} + +func (i StaticWebAppFunctionAppRegistrationMap) ToStaticWebAppFunctionAppRegistrationMapOutput() StaticWebAppFunctionAppRegistrationMapOutput { + return i.ToStaticWebAppFunctionAppRegistrationMapOutputWithContext(context.Background()) +} + +func (i StaticWebAppFunctionAppRegistrationMap) ToStaticWebAppFunctionAppRegistrationMapOutputWithContext(ctx context.Context) StaticWebAppFunctionAppRegistrationMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(StaticWebAppFunctionAppRegistrationMapOutput) +} + +type StaticWebAppFunctionAppRegistrationOutput struct{ *pulumi.OutputState } + +func (StaticWebAppFunctionAppRegistrationOutput) ElementType() reflect.Type { + return reflect.TypeOf((**StaticWebAppFunctionAppRegistration)(nil)).Elem() +} + +func (o StaticWebAppFunctionAppRegistrationOutput) ToStaticWebAppFunctionAppRegistrationOutput() StaticWebAppFunctionAppRegistrationOutput { + return o +} + +func (o StaticWebAppFunctionAppRegistrationOutput) ToStaticWebAppFunctionAppRegistrationOutputWithContext(ctx context.Context) StaticWebAppFunctionAppRegistrationOutput { + return o +} + +// The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. +// +// > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. +// +// > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. +func (o StaticWebAppFunctionAppRegistrationOutput) FunctionAppId() pulumi.StringOutput { + return o.ApplyT(func(v *StaticWebAppFunctionAppRegistration) pulumi.StringOutput { return v.FunctionAppId }).(pulumi.StringOutput) +} + +// The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. +func (o StaticWebAppFunctionAppRegistrationOutput) StaticWebAppId() pulumi.StringOutput { + return o.ApplyT(func(v *StaticWebAppFunctionAppRegistration) pulumi.StringOutput { return v.StaticWebAppId }).(pulumi.StringOutput) +} + +type StaticWebAppFunctionAppRegistrationArrayOutput struct{ *pulumi.OutputState } + +func (StaticWebAppFunctionAppRegistrationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*StaticWebAppFunctionAppRegistration)(nil)).Elem() +} + +func (o StaticWebAppFunctionAppRegistrationArrayOutput) ToStaticWebAppFunctionAppRegistrationArrayOutput() StaticWebAppFunctionAppRegistrationArrayOutput { + return o +} + +func (o StaticWebAppFunctionAppRegistrationArrayOutput) ToStaticWebAppFunctionAppRegistrationArrayOutputWithContext(ctx context.Context) StaticWebAppFunctionAppRegistrationArrayOutput { + return o +} + +func (o StaticWebAppFunctionAppRegistrationArrayOutput) Index(i pulumi.IntInput) StaticWebAppFunctionAppRegistrationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *StaticWebAppFunctionAppRegistration { + return vs[0].([]*StaticWebAppFunctionAppRegistration)[vs[1].(int)] + }).(StaticWebAppFunctionAppRegistrationOutput) +} + +type StaticWebAppFunctionAppRegistrationMapOutput struct{ *pulumi.OutputState } + +func (StaticWebAppFunctionAppRegistrationMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*StaticWebAppFunctionAppRegistration)(nil)).Elem() +} + +func (o StaticWebAppFunctionAppRegistrationMapOutput) ToStaticWebAppFunctionAppRegistrationMapOutput() StaticWebAppFunctionAppRegistrationMapOutput { + return o +} + +func (o StaticWebAppFunctionAppRegistrationMapOutput) ToStaticWebAppFunctionAppRegistrationMapOutputWithContext(ctx context.Context) StaticWebAppFunctionAppRegistrationMapOutput { + return o +} + +func (o StaticWebAppFunctionAppRegistrationMapOutput) MapIndex(k pulumi.StringInput) StaticWebAppFunctionAppRegistrationOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *StaticWebAppFunctionAppRegistration { + return vs[0].(map[string]*StaticWebAppFunctionAppRegistration)[vs[1].(string)] + }).(StaticWebAppFunctionAppRegistrationOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*StaticWebAppFunctionAppRegistrationInput)(nil)).Elem(), &StaticWebAppFunctionAppRegistration{}) + pulumi.RegisterInputType(reflect.TypeOf((*StaticWebAppFunctionAppRegistrationArrayInput)(nil)).Elem(), StaticWebAppFunctionAppRegistrationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*StaticWebAppFunctionAppRegistrationMapInput)(nil)).Elem(), StaticWebAppFunctionAppRegistrationMap{}) + pulumi.RegisterOutputType(StaticWebAppFunctionAppRegistrationOutput{}) + pulumi.RegisterOutputType(StaticWebAppFunctionAppRegistrationArrayOutput{}) + pulumi.RegisterOutputType(StaticWebAppFunctionAppRegistrationMapOutput{}) +} diff --git a/sdk/go/azure/bot/channelsRegistration.go b/sdk/go/azure/bot/channelsRegistration.go index 7be9be13ff..b1eed9a923 100644 --- a/sdk/go/azure/bot/channelsRegistration.go +++ b/sdk/go/azure/bot/channelsRegistration.go @@ -14,6 +14,8 @@ import ( // Manages a Bot Channels Registration. // +// > **Note:** Bot Channels Registration has been [deprecated by Azure](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-resources-faq-azure?view=azure-bot-service-4.0#why-are-web-app-bot-and-bot-channel-registration-being-deprecated). New implementations should use the `bot.ServiceAzureBot` resource. +// // ## Example Usage // // diff --git a/sdk/go/azure/bot/serviceAzureBot.go b/sdk/go/azure/bot/serviceAzureBot.go index 689a2a9e85..fc6da64890 100644 --- a/sdk/go/azure/bot/serviceAzureBot.go +++ b/sdk/go/azure/bot/serviceAzureBot.go @@ -98,6 +98,10 @@ import ( type ServiceAzureBot struct { pulumi.CustomResourceState + // The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + // + // > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + CmkKeyVaultKeyUrl pulumi.StringPtrOutput `pulumi:"cmkKeyVaultKeyUrl"` // The Application Insights API Key to associate with this Azure Bot Service. DeveloperAppInsightsApiKey pulumi.StringPtrOutput `pulumi:"developerAppInsightsApiKey"` // The resource ID of the Application Insights instance to associate with this Azure Bot Service. @@ -190,6 +194,10 @@ func GetServiceAzureBot(ctx *pulumi.Context, // Input properties used for looking up and filtering ServiceAzureBot resources. type serviceAzureBotState struct { + // The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + // + // > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + CmkKeyVaultKeyUrl *string `pulumi:"cmkKeyVaultKeyUrl"` // The Application Insights API Key to associate with this Azure Bot Service. DeveloperAppInsightsApiKey *string `pulumi:"developerAppInsightsApiKey"` // The resource ID of the Application Insights instance to associate with this Azure Bot Service. @@ -233,6 +241,10 @@ type serviceAzureBotState struct { } type ServiceAzureBotState struct { + // The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + // + // > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + CmkKeyVaultKeyUrl pulumi.StringPtrInput // The Application Insights API Key to associate with this Azure Bot Service. DeveloperAppInsightsApiKey pulumi.StringPtrInput // The resource ID of the Application Insights instance to associate with this Azure Bot Service. @@ -280,6 +292,10 @@ func (ServiceAzureBotState) ElementType() reflect.Type { } type serviceAzureBotArgs struct { + // The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + // + // > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + CmkKeyVaultKeyUrl *string `pulumi:"cmkKeyVaultKeyUrl"` // The Application Insights API Key to associate with this Azure Bot Service. DeveloperAppInsightsApiKey *string `pulumi:"developerAppInsightsApiKey"` // The resource ID of the Application Insights instance to associate with this Azure Bot Service. @@ -324,6 +340,10 @@ type serviceAzureBotArgs struct { // The set of arguments for constructing a ServiceAzureBot resource. type ServiceAzureBotArgs struct { + // The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + // + // > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + CmkKeyVaultKeyUrl pulumi.StringPtrInput // The Application Insights API Key to associate with this Azure Bot Service. DeveloperAppInsightsApiKey pulumi.StringPtrInput // The resource ID of the Application Insights instance to associate with this Azure Bot Service. @@ -453,6 +473,13 @@ func (o ServiceAzureBotOutput) ToServiceAzureBotOutputWithContext(ctx context.Co return o } +// The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. +// +// > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) +func (o ServiceAzureBotOutput) CmkKeyVaultKeyUrl() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ServiceAzureBot) pulumi.StringPtrOutput { return v.CmkKeyVaultKeyUrl }).(pulumi.StringPtrOutput) +} + // The Application Insights API Key to associate with this Azure Bot Service. func (o ServiceAzureBotOutput) DeveloperAppInsightsApiKey() pulumi.StringPtrOutput { return o.ApplyT(func(v *ServiceAzureBot) pulumi.StringPtrOutput { return v.DeveloperAppInsightsApiKey }).(pulumi.StringPtrOutput) diff --git a/sdk/go/azure/chaosstudio/target.go b/sdk/go/azure/chaosstudio/target.go index 48e15c3607..6b362fe103 100644 --- a/sdk/go/azure/chaosstudio/target.go +++ b/sdk/go/azure/chaosstudio/target.go @@ -16,62 +16,6 @@ import ( // // Manages a Chaos Studio Target. // -// ## Example Usage -// -// -// ```go -// package main -// -// import ( -// -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/chaosstudio" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/containerservice" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" -// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -// -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ -// Name: pulumi.String("example-resources"), -// Location: pulumi.String("West Europe"), -// }) -// if err != nil { -// return err -// } -// example, err := containerservice.NewKubernetesCluster(ctx, "example", &containerservice.KubernetesClusterArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// DnsPrefix: pulumi.String("acctestaksexample"), -// DefaultNodePool: &containerservice.KubernetesClusterDefaultNodePoolArgs{ -// Name: pulumi.String("example-value"), -// NodeCount: pulumi.Int("example-value"), -// VmSize: pulumi.String("example-value"), -// }, -// Identity: &containerservice.KubernetesClusterIdentityArgs{ -// Type: pulumi.String("example-value"), -// }, -// }) -// if err != nil { -// return err -// } -// _, err = chaosstudio.NewTarget(ctx, "example", &chaosstudio.TargetArgs{ -// Location: exampleResourceGroup.Location, -// TargetResourceId: example.ID(), -// TargetType: pulumi.String("example-value"), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// ``` -// -// // ## Import // // An existing Chaos Studio Target can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/go/azure/compute/getSharedImageVersion.go b/sdk/go/azure/compute/getSharedImageVersion.go index 9fe275c627..1ae75ba93b 100644 --- a/sdk/go/azure/compute/getSharedImageVersion.go +++ b/sdk/go/azure/compute/getSharedImageVersion.go @@ -69,6 +69,8 @@ type LookupSharedImageVersionArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // Sort available versions taking SemVer versioning scheme into account. Defaults to `false`. SortVersionsBySemver *bool `pulumi:"sortVersionsBySemver"` + // A mapping of tags assigned to the Shared Image. + Tags map[string]string `pulumi:"tags"` } // A collection of values returned by getSharedImageVersion. @@ -126,6 +128,8 @@ type LookupSharedImageVersionOutputArgs struct { ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"` // Sort available versions taking SemVer versioning scheme into account. Defaults to `false`. SortVersionsBySemver pulumi.BoolPtrInput `pulumi:"sortVersionsBySemver"` + // A mapping of tags assigned to the Shared Image. + Tags pulumi.StringMapInput `pulumi:"tags"` } func (LookupSharedImageVersionOutputArgs) ElementType() reflect.Type { diff --git a/sdk/go/azure/compute/pulumiTypes.go b/sdk/go/azure/compute/pulumiTypes.go index a3ce9f00b6..77876ba9f3 100644 --- a/sdk/go/azure/compute/pulumiTypes.go +++ b/sdk/go/azure/compute/pulumiTypes.go @@ -197,7 +197,7 @@ func (o BastionHostIpConfigurationPtrOutput) SubnetId() pulumi.StringPtrOutput { } type CapacityReservationSku struct { - // Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + // Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. Capacity int `pulumi:"capacity"` // Name of the sku, such as `Standard_F2`. Changing this forces a new resource to be created. Name string `pulumi:"name"` @@ -215,7 +215,7 @@ type CapacityReservationSkuInput interface { } type CapacityReservationSkuArgs struct { - // Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + // Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. Capacity pulumi.IntInput `pulumi:"capacity"` // Name of the sku, such as `Standard_F2`. Changing this forces a new resource to be created. Name pulumi.StringInput `pulumi:"name"` @@ -298,7 +298,7 @@ func (o CapacityReservationSkuOutput) ToCapacityReservationSkuPtrOutputWithConte }).(CapacityReservationSkuPtrOutput) } -// Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. +// Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. func (o CapacityReservationSkuOutput) Capacity() pulumi.IntOutput { return o.ApplyT(func(v CapacityReservationSku) int { return v.Capacity }).(pulumi.IntOutput) } @@ -332,7 +332,7 @@ func (o CapacityReservationSkuPtrOutput) Elem() CapacityReservationSkuOutput { }).(CapacityReservationSkuOutput) } -// Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. +// Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. func (o CapacityReservationSkuPtrOutput) Capacity() pulumi.IntPtrOutput { return o.ApplyT(func(v *CapacityReservationSku) *int { if v == nil { diff --git a/sdk/go/azure/config/pulumiTypes.go b/sdk/go/azure/config/pulumiTypes.go index fdab164a46..c7aa6d5a1a 100644 --- a/sdk/go/azure/config/pulumiTypes.go +++ b/sdk/go/azure/config/pulumiTypes.go @@ -22,6 +22,7 @@ type Features struct { LogAnalyticsWorkspace *FeaturesLogAnalyticsWorkspace `pulumi:"logAnalyticsWorkspace"` ManagedDisk *FeaturesManagedDisk `pulumi:"managedDisk"` PostgresqlFlexibleServer *FeaturesPostgresqlFlexibleServer `pulumi:"postgresqlFlexibleServer"` + RecoveryService *FeaturesRecoveryService `pulumi:"recoveryService"` ResourceGroup *FeaturesResourceGroup `pulumi:"resourceGroup"` Subscription *FeaturesSubscription `pulumi:"subscription"` TemplateDeployment *FeaturesTemplateDeployment `pulumi:"templateDeployment"` @@ -49,6 +50,7 @@ type FeaturesArgs struct { LogAnalyticsWorkspace FeaturesLogAnalyticsWorkspacePtrInput `pulumi:"logAnalyticsWorkspace"` ManagedDisk FeaturesManagedDiskPtrInput `pulumi:"managedDisk"` PostgresqlFlexibleServer FeaturesPostgresqlFlexibleServerPtrInput `pulumi:"postgresqlFlexibleServer"` + RecoveryService FeaturesRecoveryServicePtrInput `pulumi:"recoveryService"` ResourceGroup FeaturesResourceGroupPtrInput `pulumi:"resourceGroup"` Subscription FeaturesSubscriptionPtrInput `pulumi:"subscription"` TemplateDeployment FeaturesTemplateDeploymentPtrInput `pulumi:"templateDeployment"` @@ -114,6 +116,10 @@ func (o FeaturesOutput) PostgresqlFlexibleServer() FeaturesPostgresqlFlexibleSer return o.ApplyT(func(v Features) *FeaturesPostgresqlFlexibleServer { return v.PostgresqlFlexibleServer }).(FeaturesPostgresqlFlexibleServerPtrOutput) } +func (o FeaturesOutput) RecoveryService() FeaturesRecoveryServicePtrOutput { + return o.ApplyT(func(v Features) *FeaturesRecoveryService { return v.RecoveryService }).(FeaturesRecoveryServicePtrOutput) +} + func (o FeaturesOutput) ResourceGroup() FeaturesResourceGroupPtrOutput { return o.ApplyT(func(v Features) *FeaturesResourceGroup { return v.ResourceGroup }).(FeaturesResourceGroupPtrOutput) } @@ -1384,6 +1390,154 @@ func (o FeaturesPostgresqlFlexibleServerPtrOutput) RestartServerOnConfigurationV }).(pulumi.BoolPtrOutput) } +type FeaturesRecoveryService struct { + PurgeProtectedItemsFromVaultOnDestroy *bool `pulumi:"purgeProtectedItemsFromVaultOnDestroy"` + VmBackupStopProtectionAndRetainDataOnDestroy *bool `pulumi:"vmBackupStopProtectionAndRetainDataOnDestroy"` +} + +// FeaturesRecoveryServiceInput is an input type that accepts FeaturesRecoveryServiceArgs and FeaturesRecoveryServiceOutput values. +// You can construct a concrete instance of `FeaturesRecoveryServiceInput` via: +// +// FeaturesRecoveryServiceArgs{...} +type FeaturesRecoveryServiceInput interface { + pulumi.Input + + ToFeaturesRecoveryServiceOutput() FeaturesRecoveryServiceOutput + ToFeaturesRecoveryServiceOutputWithContext(context.Context) FeaturesRecoveryServiceOutput +} + +type FeaturesRecoveryServiceArgs struct { + PurgeProtectedItemsFromVaultOnDestroy pulumi.BoolPtrInput `pulumi:"purgeProtectedItemsFromVaultOnDestroy"` + VmBackupStopProtectionAndRetainDataOnDestroy pulumi.BoolPtrInput `pulumi:"vmBackupStopProtectionAndRetainDataOnDestroy"` +} + +func (FeaturesRecoveryServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FeaturesRecoveryService)(nil)).Elem() +} + +func (i FeaturesRecoveryServiceArgs) ToFeaturesRecoveryServiceOutput() FeaturesRecoveryServiceOutput { + return i.ToFeaturesRecoveryServiceOutputWithContext(context.Background()) +} + +func (i FeaturesRecoveryServiceArgs) ToFeaturesRecoveryServiceOutputWithContext(ctx context.Context) FeaturesRecoveryServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeaturesRecoveryServiceOutput) +} + +func (i FeaturesRecoveryServiceArgs) ToFeaturesRecoveryServicePtrOutput() FeaturesRecoveryServicePtrOutput { + return i.ToFeaturesRecoveryServicePtrOutputWithContext(context.Background()) +} + +func (i FeaturesRecoveryServiceArgs) ToFeaturesRecoveryServicePtrOutputWithContext(ctx context.Context) FeaturesRecoveryServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeaturesRecoveryServiceOutput).ToFeaturesRecoveryServicePtrOutputWithContext(ctx) +} + +// FeaturesRecoveryServicePtrInput is an input type that accepts FeaturesRecoveryServiceArgs, FeaturesRecoveryServicePtr and FeaturesRecoveryServicePtrOutput values. +// You can construct a concrete instance of `FeaturesRecoveryServicePtrInput` via: +// +// FeaturesRecoveryServiceArgs{...} +// +// or: +// +// nil +type FeaturesRecoveryServicePtrInput interface { + pulumi.Input + + ToFeaturesRecoveryServicePtrOutput() FeaturesRecoveryServicePtrOutput + ToFeaturesRecoveryServicePtrOutputWithContext(context.Context) FeaturesRecoveryServicePtrOutput +} + +type featuresRecoveryServicePtrType FeaturesRecoveryServiceArgs + +func FeaturesRecoveryServicePtr(v *FeaturesRecoveryServiceArgs) FeaturesRecoveryServicePtrInput { + return (*featuresRecoveryServicePtrType)(v) +} + +func (*featuresRecoveryServicePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FeaturesRecoveryService)(nil)).Elem() +} + +func (i *featuresRecoveryServicePtrType) ToFeaturesRecoveryServicePtrOutput() FeaturesRecoveryServicePtrOutput { + return i.ToFeaturesRecoveryServicePtrOutputWithContext(context.Background()) +} + +func (i *featuresRecoveryServicePtrType) ToFeaturesRecoveryServicePtrOutputWithContext(ctx context.Context) FeaturesRecoveryServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FeaturesRecoveryServicePtrOutput) +} + +type FeaturesRecoveryServiceOutput struct{ *pulumi.OutputState } + +func (FeaturesRecoveryServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FeaturesRecoveryService)(nil)).Elem() +} + +func (o FeaturesRecoveryServiceOutput) ToFeaturesRecoveryServiceOutput() FeaturesRecoveryServiceOutput { + return o +} + +func (o FeaturesRecoveryServiceOutput) ToFeaturesRecoveryServiceOutputWithContext(ctx context.Context) FeaturesRecoveryServiceOutput { + return o +} + +func (o FeaturesRecoveryServiceOutput) ToFeaturesRecoveryServicePtrOutput() FeaturesRecoveryServicePtrOutput { + return o.ToFeaturesRecoveryServicePtrOutputWithContext(context.Background()) +} + +func (o FeaturesRecoveryServiceOutput) ToFeaturesRecoveryServicePtrOutputWithContext(ctx context.Context) FeaturesRecoveryServicePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FeaturesRecoveryService) *FeaturesRecoveryService { + return &v + }).(FeaturesRecoveryServicePtrOutput) +} + +func (o FeaturesRecoveryServiceOutput) PurgeProtectedItemsFromVaultOnDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FeaturesRecoveryService) *bool { return v.PurgeProtectedItemsFromVaultOnDestroy }).(pulumi.BoolPtrOutput) +} + +func (o FeaturesRecoveryServiceOutput) VmBackupStopProtectionAndRetainDataOnDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FeaturesRecoveryService) *bool { return v.VmBackupStopProtectionAndRetainDataOnDestroy }).(pulumi.BoolPtrOutput) +} + +type FeaturesRecoveryServicePtrOutput struct{ *pulumi.OutputState } + +func (FeaturesRecoveryServicePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FeaturesRecoveryService)(nil)).Elem() +} + +func (o FeaturesRecoveryServicePtrOutput) ToFeaturesRecoveryServicePtrOutput() FeaturesRecoveryServicePtrOutput { + return o +} + +func (o FeaturesRecoveryServicePtrOutput) ToFeaturesRecoveryServicePtrOutputWithContext(ctx context.Context) FeaturesRecoveryServicePtrOutput { + return o +} + +func (o FeaturesRecoveryServicePtrOutput) Elem() FeaturesRecoveryServiceOutput { + return o.ApplyT(func(v *FeaturesRecoveryService) FeaturesRecoveryService { + if v != nil { + return *v + } + var ret FeaturesRecoveryService + return ret + }).(FeaturesRecoveryServiceOutput) +} + +func (o FeaturesRecoveryServicePtrOutput) PurgeProtectedItemsFromVaultOnDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FeaturesRecoveryService) *bool { + if v == nil { + return nil + } + return v.PurgeProtectedItemsFromVaultOnDestroy + }).(pulumi.BoolPtrOutput) +} + +func (o FeaturesRecoveryServicePtrOutput) VmBackupStopProtectionAndRetainDataOnDestroy() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FeaturesRecoveryService) *bool { + if v == nil { + return nil + } + return v.VmBackupStopProtectionAndRetainDataOnDestroy + }).(pulumi.BoolPtrOutput) +} + type FeaturesResourceGroup struct { PreventDeletionIfContainsResources *bool `pulumi:"preventDeletionIfContainsResources"` } @@ -2142,6 +2296,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FeaturesManagedDiskPtrInput)(nil)).Elem(), FeaturesManagedDiskArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesPostgresqlFlexibleServerInput)(nil)).Elem(), FeaturesPostgresqlFlexibleServerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesPostgresqlFlexibleServerPtrInput)(nil)).Elem(), FeaturesPostgresqlFlexibleServerArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeaturesRecoveryServiceInput)(nil)).Elem(), FeaturesRecoveryServiceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FeaturesRecoveryServicePtrInput)(nil)).Elem(), FeaturesRecoveryServiceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesResourceGroupInput)(nil)).Elem(), FeaturesResourceGroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesResourceGroupPtrInput)(nil)).Elem(), FeaturesResourceGroupArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FeaturesSubscriptionInput)(nil)).Elem(), FeaturesSubscriptionArgs{}) @@ -2169,6 +2325,8 @@ func init() { pulumi.RegisterOutputType(FeaturesManagedDiskPtrOutput{}) pulumi.RegisterOutputType(FeaturesPostgresqlFlexibleServerOutput{}) pulumi.RegisterOutputType(FeaturesPostgresqlFlexibleServerPtrOutput{}) + pulumi.RegisterOutputType(FeaturesRecoveryServiceOutput{}) + pulumi.RegisterOutputType(FeaturesRecoveryServicePtrOutput{}) pulumi.RegisterOutputType(FeaturesResourceGroupOutput{}) pulumi.RegisterOutputType(FeaturesResourceGroupPtrOutput{}) pulumi.RegisterOutputType(FeaturesSubscriptionOutput{}) diff --git a/sdk/go/azure/containerapp/pulumiTypes.go b/sdk/go/azure/containerapp/pulumiTypes.go index 63fa17178c..72d1990b16 100644 --- a/sdk/go/azure/containerapp/pulumiTypes.go +++ b/sdk/go/azure/containerapp/pulumiTypes.go @@ -1257,12 +1257,22 @@ func (o AppRegistryArrayOutput) Index(i pulumi.IntInput) AppRegistryOutput { } type AppSecret struct { - // The Secret name. + // The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + // + // !> **Note:** `identity` must be used together with `keyVaultSecretId` + Identity *string `pulumi:"identity"` + // The ID of a Key Vault secret. This can be a versioned or version-less ID. + // + // !> **Note:** When using `keyVaultSecretId`, `ignoreChanges` should be used to ignore any changes to `value`. + KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` + // The secret name. Name string `pulumi:"name"` // The value for this secret. // + // !> **Note:** `value` will be ignored if `keyVaultSecretId` and `identity` are provided. + // // !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. - Value string `pulumi:"value"` + Value *string `pulumi:"value"` } // AppSecretInput is an input type that accepts AppSecretArgs and AppSecretOutput values. @@ -1277,12 +1287,22 @@ type AppSecretInput interface { } type AppSecretArgs struct { - // The Secret name. + // The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + // + // !> **Note:** `identity` must be used together with `keyVaultSecretId` + Identity pulumi.StringPtrInput `pulumi:"identity"` + // The ID of a Key Vault secret. This can be a versioned or version-less ID. + // + // !> **Note:** When using `keyVaultSecretId`, `ignoreChanges` should be used to ignore any changes to `value`. + KeyVaultSecretId pulumi.StringPtrInput `pulumi:"keyVaultSecretId"` + // The secret name. Name pulumi.StringInput `pulumi:"name"` // The value for this secret. // + // !> **Note:** `value` will be ignored if `keyVaultSecretId` and `identity` are provided. + // // !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. - Value pulumi.StringInput `pulumi:"value"` + Value pulumi.StringPtrInput `pulumi:"value"` } func (AppSecretArgs) ElementType() reflect.Type { @@ -1336,16 +1356,32 @@ func (o AppSecretOutput) ToAppSecretOutputWithContext(ctx context.Context) AppSe return o } -// The Secret name. +// The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. +// +// !> **Note:** `identity` must be used together with `keyVaultSecretId` +func (o AppSecretOutput) Identity() pulumi.StringPtrOutput { + return o.ApplyT(func(v AppSecret) *string { return v.Identity }).(pulumi.StringPtrOutput) +} + +// The ID of a Key Vault secret. This can be a versioned or version-less ID. +// +// !> **Note:** When using `keyVaultSecretId`, `ignoreChanges` should be used to ignore any changes to `value`. +func (o AppSecretOutput) KeyVaultSecretId() pulumi.StringPtrOutput { + return o.ApplyT(func(v AppSecret) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) +} + +// The secret name. func (o AppSecretOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v AppSecret) string { return v.Name }).(pulumi.StringOutput) } // The value for this secret. // +// !> **Note:** `value` will be ignored if `keyVaultSecretId` and `identity` are provided. +// // !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. -func (o AppSecretOutput) Value() pulumi.StringOutput { - return o.ApplyT(func(v AppSecret) string { return v.Value }).(pulumi.StringOutput) +func (o AppSecretOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v AppSecret) *string { return v.Value }).(pulumi.StringPtrOutput) } type AppSecretArrayOutput struct{ *pulumi.OutputState } @@ -4504,10 +4540,14 @@ func (o EnvironmentDaprComponentMetadataArrayOutput) Index(i pulumi.IntInput) En } type EnvironmentDaprComponentSecret struct { + // The identity to use for accessing key vault reference. + Identity *string `pulumi:"identity"` + // The Key Vault Secret ID. Could be either one of `id` or `versionlessId`. + KeyVaultSecretId *string `pulumi:"keyVaultSecretId"` // The Secret name. Name string `pulumi:"name"` // The value for this secret. - Value string `pulumi:"value"` + Value *string `pulumi:"value"` } // EnvironmentDaprComponentSecretInput is an input type that accepts EnvironmentDaprComponentSecretArgs and EnvironmentDaprComponentSecretOutput values. @@ -4522,10 +4562,14 @@ type EnvironmentDaprComponentSecretInput interface { } type EnvironmentDaprComponentSecretArgs struct { + // The identity to use for accessing key vault reference. + Identity pulumi.StringPtrInput `pulumi:"identity"` + // The Key Vault Secret ID. Could be either one of `id` or `versionlessId`. + KeyVaultSecretId pulumi.StringPtrInput `pulumi:"keyVaultSecretId"` // The Secret name. Name pulumi.StringInput `pulumi:"name"` // The value for this secret. - Value pulumi.StringInput `pulumi:"value"` + Value pulumi.StringPtrInput `pulumi:"value"` } func (EnvironmentDaprComponentSecretArgs) ElementType() reflect.Type { @@ -4579,14 +4623,24 @@ func (o EnvironmentDaprComponentSecretOutput) ToEnvironmentDaprComponentSecretOu return o } +// The identity to use for accessing key vault reference. +func (o EnvironmentDaprComponentSecretOutput) Identity() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentDaprComponentSecret) *string { return v.Identity }).(pulumi.StringPtrOutput) +} + +// The Key Vault Secret ID. Could be either one of `id` or `versionlessId`. +func (o EnvironmentDaprComponentSecretOutput) KeyVaultSecretId() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentDaprComponentSecret) *string { return v.KeyVaultSecretId }).(pulumi.StringPtrOutput) +} + // The Secret name. func (o EnvironmentDaprComponentSecretOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v EnvironmentDaprComponentSecret) string { return v.Name }).(pulumi.StringOutput) } // The value for this secret. -func (o EnvironmentDaprComponentSecretOutput) Value() pulumi.StringOutput { - return o.ApplyT(func(v EnvironmentDaprComponentSecret) string { return v.Value }).(pulumi.StringOutput) +func (o EnvironmentDaprComponentSecretOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v EnvironmentDaprComponentSecret) *string { return v.Value }).(pulumi.StringPtrOutput) } type EnvironmentDaprComponentSecretArrayOutput struct{ *pulumi.OutputState } @@ -5635,6 +5689,10 @@ func (o GetAppRegistryArrayOutput) Index(i pulumi.IntInput) GetAppRegistryOutput } type GetAppSecret struct { + // Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + Identity string `pulumi:"identity"` + // The ID of a Key Vault secret. + KeyVaultSecretId string `pulumi:"keyVaultSecretId"` // The name of the Container App. Name string `pulumi:"name"` // The HTTP Header value. @@ -5653,6 +5711,10 @@ type GetAppSecretInput interface { } type GetAppSecretArgs struct { + // Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + Identity pulumi.StringInput `pulumi:"identity"` + // The ID of a Key Vault secret. + KeyVaultSecretId pulumi.StringInput `pulumi:"keyVaultSecretId"` // The name of the Container App. Name pulumi.StringInput `pulumi:"name"` // The HTTP Header value. @@ -5710,6 +5772,16 @@ func (o GetAppSecretOutput) ToGetAppSecretOutputWithContext(ctx context.Context) return o } +// Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. +func (o GetAppSecretOutput) Identity() pulumi.StringOutput { + return o.ApplyT(func(v GetAppSecret) string { return v.Identity }).(pulumi.StringOutput) +} + +// The ID of a Key Vault secret. +func (o GetAppSecretOutput) KeyVaultSecretId() pulumi.StringOutput { + return o.ApplyT(func(v GetAppSecret) string { return v.KeyVaultSecretId }).(pulumi.StringOutput) +} + // The name of the Container App. func (o GetAppSecretOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v GetAppSecret) string { return v.Name }).(pulumi.StringOutput) diff --git a/sdk/go/azure/containerservice/clusterTrustedAccessRoleBinding.go b/sdk/go/azure/containerservice/clusterTrustedAccessRoleBinding.go index 8dc77e4439..7559252c1e 100644 --- a/sdk/go/azure/containerservice/clusterTrustedAccessRoleBinding.go +++ b/sdk/go/azure/containerservice/clusterTrustedAccessRoleBinding.go @@ -18,123 +18,6 @@ import ( // > **Note:** This Resource is in **Preview** to use this you must be opted into the Preview. You can do this by running `az feature register --namespace Microsoft.ContainerService --name TrustedAccessPreview` and then `az provider register -n Microsoft.ContainerService` // . // -// ## Example Usage -// -// -// ```go -// package main -// -// import ( -// -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/containerservice" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/keyvault" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/machinelearning" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/storage" -// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -// -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ -// Name: pulumi.String("example-resources"), -// Location: pulumi.String("West Europe"), -// }) -// if err != nil { -// return err -// } -// example, err := appinsights.NewInsights(ctx, "example", &appinsights.InsightsArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// ApplicationType: pulumi.String("example-value"), -// }) -// if err != nil { -// return err -// } -// _, err = core.GetClientConfig(ctx, nil, nil) -// if err != nil { -// return err -// } -// exampleKeyVault, err := keyvault.NewKeyVault(ctx, "example", &keyvault.KeyVaultArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// TenantId: pulumi.Any(exampleAzurermClientConfig.TenantId), -// SkuName: pulumi.String("example-value"), -// SoftDeleteRetentionDays: pulumi.Int("example-value"), -// }) -// if err != nil { -// return err -// } -// _, err = keyvault.NewAccessPolicy(ctx, "example", &keyvault.AccessPolicyArgs{ -// KeyVaultId: exampleKeyVault.ID(), -// TenantId: pulumi.Any(exampleAzurermClientConfig.TenantId), -// ObjectId: pulumi.Any(exampleAzurermClientConfig.ObjectId), -// KeyPermissions: pulumi.StringArray("example-value"), -// }) -// if err != nil { -// return err -// } -// exampleKubernetesCluster, err := containerservice.NewKubernetesCluster(ctx, "example", &containerservice.KubernetesClusterArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// DnsPrefix: pulumi.String("acctestaksexample"), -// DefaultNodePool: &containerservice.KubernetesClusterDefaultNodePoolArgs{ -// Name: pulumi.String("example-value"), -// NodeCount: pulumi.Int("example-value"), -// VmSize: pulumi.String("example-value"), -// }, -// Identity: &containerservice.KubernetesClusterIdentityArgs{ -// Type: pulumi.String("example-value"), -// }, -// }) -// if err != nil { -// return err -// } -// exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// AccountTier: pulumi.String("example-value"), -// AccountReplicationType: pulumi.String("example-value"), -// }) -// if err != nil { -// return err -// } -// exampleWorkspace, err := machinelearning.NewWorkspace(ctx, "example", &machinelearning.WorkspaceArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// KeyVaultId: exampleKeyVault.ID(), -// StorageAccountId: exampleAccount.ID(), -// ApplicationInsightsId: example.ID(), -// Identity: &machinelearning.WorkspaceIdentityArgs{ -// Type: pulumi.String("example-value"), -// }, -// }) -// if err != nil { -// return err -// } -// _, err = containerservice.NewClusterTrustedAccessRoleBinding(ctx, "example", &containerservice.ClusterTrustedAccessRoleBindingArgs{ -// KubernetesClusterId: exampleKubernetesCluster.ID(), -// Name: pulumi.String("example"), -// Roles: pulumi.StringArray("example-value"), -// SourceResourceId: exampleWorkspace.ID(), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// ``` -// -// // ## Import // // An existing Kubernetes Cluster Trusted Access Role Binding can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/go/azure/containerservice/fleetMember.go b/sdk/go/azure/containerservice/fleetMember.go index f5d9a39db4..767bbf04a9 100644 --- a/sdk/go/azure/containerservice/fleetMember.go +++ b/sdk/go/azure/containerservice/fleetMember.go @@ -16,69 +16,6 @@ import ( // // Manages a Kubernetes Fleet Member. // -// ## Example Usage -// -// -// ```go -// package main -// -// import ( -// -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/containerservice" -// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" -// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" -// -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ -// Name: pulumi.String("example-resources"), -// Location: pulumi.String("West Europe"), -// }) -// if err != nil { -// return err -// } -// example, err := containerservice.NewKubernetesCluster(ctx, "example", &containerservice.KubernetesClusterArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// DnsPrefix: pulumi.String("acctestaksexample"), -// DefaultNodePool: &containerservice.KubernetesClusterDefaultNodePoolArgs{ -// Name: pulumi.String("example-value"), -// NodeCount: pulumi.Int("example-value"), -// VmSize: pulumi.String("example-value"), -// }, -// Identity: &containerservice.KubernetesClusterIdentityArgs{ -// Type: pulumi.String("example-value"), -// }, -// }) -// if err != nil { -// return err -// } -// exampleKubernetesFleetManager, err := containerservice.NewKubernetesFleetManager(ctx, "example", &containerservice.KubernetesFleetManagerArgs{ -// Name: pulumi.String("example"), -// Location: exampleResourceGroup.Location, -// ResourceGroupName: exampleResourceGroup.Name, -// }) -// if err != nil { -// return err -// } -// _, err = containerservice.NewFleetMember(ctx, "example", &containerservice.FleetMemberArgs{ -// KubernetesClusterId: example.ID(), -// KubernetesFleetId: exampleKubernetesFleetManager.ID(), -// Name: pulumi.String("example"), -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// -// ``` -// -// // ## Import // // An existing Kubernetes Fleet Member can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/go/azure/databricks/pulumiTypes.go b/sdk/go/azure/databricks/pulumiTypes.go index b124404c8e..7508641acf 100644 --- a/sdk/go/azure/databricks/pulumiTypes.go +++ b/sdk/go/azure/databricks/pulumiTypes.go @@ -222,7 +222,7 @@ type WorkspaceCustomParameters struct { NatGatewayName *string `pulumi:"natGatewayName"` // Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. // - // > **NOTE** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + // > **Note:** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. NoPublicIp *bool `pulumi:"noPublicIp"` // The name of the Private Subnet within the Virtual Network. Required if `virtualNetworkId` is set. Changing this forces a new resource to be created. PrivateSubnetName *string `pulumi:"privateSubnetName"` @@ -242,7 +242,7 @@ type WorkspaceCustomParameters struct { VirtualNetworkId *string `pulumi:"virtualNetworkId"` // Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. // - // > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + // > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). VnetAddressPrefix *string `pulumi:"vnetAddressPrefix"` } @@ -264,7 +264,7 @@ type WorkspaceCustomParametersArgs struct { NatGatewayName pulumi.StringPtrInput `pulumi:"natGatewayName"` // Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. // - // > **NOTE** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + // > **Note:** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. NoPublicIp pulumi.BoolPtrInput `pulumi:"noPublicIp"` // The name of the Private Subnet within the Virtual Network. Required if `virtualNetworkId` is set. Changing this forces a new resource to be created. PrivateSubnetName pulumi.StringPtrInput `pulumi:"privateSubnetName"` @@ -284,7 +284,7 @@ type WorkspaceCustomParametersArgs struct { VirtualNetworkId pulumi.StringPtrInput `pulumi:"virtualNetworkId"` // Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. // - // > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + // > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). VnetAddressPrefix pulumi.StringPtrInput `pulumi:"vnetAddressPrefix"` } @@ -377,7 +377,7 @@ func (o WorkspaceCustomParametersOutput) NatGatewayName() pulumi.StringPtrOutput // Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. // -// > **NOTE** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. +// > **Note:** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. func (o WorkspaceCustomParametersOutput) NoPublicIp() pulumi.BoolPtrOutput { return o.ApplyT(func(v WorkspaceCustomParameters) *bool { return v.NoPublicIp }).(pulumi.BoolPtrOutput) } @@ -424,7 +424,7 @@ func (o WorkspaceCustomParametersOutput) VirtualNetworkId() pulumi.StringPtrOutp // Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. // -// > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). +// > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). func (o WorkspaceCustomParametersOutput) VnetAddressPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v WorkspaceCustomParameters) *string { return v.VnetAddressPrefix }).(pulumi.StringPtrOutput) } @@ -475,7 +475,7 @@ func (o WorkspaceCustomParametersPtrOutput) NatGatewayName() pulumi.StringPtrOut // Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. // -// > **NOTE** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. +// > **Note:** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. func (o WorkspaceCustomParametersPtrOutput) NoPublicIp() pulumi.BoolPtrOutput { return o.ApplyT(func(v *WorkspaceCustomParameters) *bool { if v == nil { @@ -567,7 +567,7 @@ func (o WorkspaceCustomParametersPtrOutput) VirtualNetworkId() pulumi.StringPtrO // Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. // -// > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). +// > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). func (o WorkspaceCustomParametersPtrOutput) VnetAddressPrefix() pulumi.StringPtrOutput { return o.ApplyT(func(v *WorkspaceCustomParameters) *string { if v == nil { diff --git a/sdk/go/azure/databricks/workspace.go b/sdk/go/azure/databricks/workspace.go index 5bd210f1c5..1147af04bd 100644 --- a/sdk/go/azure/databricks/workspace.go +++ b/sdk/go/azure/databricks/workspace.go @@ -33,7 +33,8 @@ type Workspace struct { // Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created. LoadBalancerBackendAddressPoolId pulumi.StringPtrOutput `pulumi:"loadBalancerBackendAddressPoolId"` // Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. - Location pulumi.StringOutput `pulumi:"location"` + Location pulumi.StringOutput `pulumi:"location"` + ManagedDiskCmkKeyVaultId pulumi.StringPtrOutput `pulumi:"managedDiskCmkKeyVaultId"` // Customer managed encryption properties for the Databricks Workspace managed disks. ManagedDiskCmkKeyVaultKeyId pulumi.StringPtrOutput `pulumi:"managedDiskCmkKeyVaultKeyId"` // Whether customer managed keys for disk encryption will automatically be rotated to the latest version. @@ -44,8 +45,9 @@ type Workspace struct { ManagedResourceGroupId pulumi.StringOutput `pulumi:"managedResourceGroupId"` // The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. // - // > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. - ManagedResourceGroupName pulumi.StringOutput `pulumi:"managedResourceGroupName"` + // > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + ManagedResourceGroupName pulumi.StringOutput `pulumi:"managedResourceGroupName"` + ManagedServicesCmkKeyVaultId pulumi.StringPtrOutput `pulumi:"managedServicesCmkKeyVaultId"` // Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). ManagedServicesCmkKeyVaultKeyId pulumi.StringPtrOutput `pulumi:"managedServicesCmkKeyVaultKeyId"` // Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. @@ -58,7 +60,7 @@ type Workspace struct { ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` // The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. // - // > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + // > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. Sku pulumi.StringOutput `pulumi:"sku"` // A `storageAccountIdentity` block as documented below. StorageAccountIdentities WorkspaceStorageAccountIdentityArrayOutput `pulumi:"storageAccountIdentities"` @@ -117,7 +119,8 @@ type workspaceState struct { // Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created. LoadBalancerBackendAddressPoolId *string `pulumi:"loadBalancerBackendAddressPoolId"` // Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. - Location *string `pulumi:"location"` + Location *string `pulumi:"location"` + ManagedDiskCmkKeyVaultId *string `pulumi:"managedDiskCmkKeyVaultId"` // Customer managed encryption properties for the Databricks Workspace managed disks. ManagedDiskCmkKeyVaultKeyId *string `pulumi:"managedDiskCmkKeyVaultKeyId"` // Whether customer managed keys for disk encryption will automatically be rotated to the latest version. @@ -128,8 +131,9 @@ type workspaceState struct { ManagedResourceGroupId *string `pulumi:"managedResourceGroupId"` // The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. // - // > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. - ManagedResourceGroupName *string `pulumi:"managedResourceGroupName"` + // > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + ManagedResourceGroupName *string `pulumi:"managedResourceGroupName"` + ManagedServicesCmkKeyVaultId *string `pulumi:"managedServicesCmkKeyVaultId"` // Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). ManagedServicesCmkKeyVaultKeyId *string `pulumi:"managedServicesCmkKeyVaultKeyId"` // Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. @@ -142,7 +146,7 @@ type workspaceState struct { ResourceGroupName *string `pulumi:"resourceGroupName"` // The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. // - // > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + // > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. Sku *string `pulumi:"sku"` // A `storageAccountIdentity` block as documented below. StorageAccountIdentities []WorkspaceStorageAccountIdentity `pulumi:"storageAccountIdentities"` @@ -166,7 +170,8 @@ type WorkspaceState struct { // Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created. LoadBalancerBackendAddressPoolId pulumi.StringPtrInput // Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. - Location pulumi.StringPtrInput + Location pulumi.StringPtrInput + ManagedDiskCmkKeyVaultId pulumi.StringPtrInput // Customer managed encryption properties for the Databricks Workspace managed disks. ManagedDiskCmkKeyVaultKeyId pulumi.StringPtrInput // Whether customer managed keys for disk encryption will automatically be rotated to the latest version. @@ -177,8 +182,9 @@ type WorkspaceState struct { ManagedResourceGroupId pulumi.StringPtrInput // The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. // - // > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. - ManagedResourceGroupName pulumi.StringPtrInput + // > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + ManagedResourceGroupName pulumi.StringPtrInput + ManagedServicesCmkKeyVaultId pulumi.StringPtrInput // Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). ManagedServicesCmkKeyVaultKeyId pulumi.StringPtrInput // Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. @@ -191,7 +197,7 @@ type WorkspaceState struct { ResourceGroupName pulumi.StringPtrInput // The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. // - // > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + // > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. Sku pulumi.StringPtrInput // A `storageAccountIdentity` block as documented below. StorageAccountIdentities WorkspaceStorageAccountIdentityArrayInput @@ -217,15 +223,17 @@ type workspaceArgs struct { // Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created. LoadBalancerBackendAddressPoolId *string `pulumi:"loadBalancerBackendAddressPoolId"` // Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. - Location *string `pulumi:"location"` + Location *string `pulumi:"location"` + ManagedDiskCmkKeyVaultId *string `pulumi:"managedDiskCmkKeyVaultId"` // Customer managed encryption properties for the Databricks Workspace managed disks. ManagedDiskCmkKeyVaultKeyId *string `pulumi:"managedDiskCmkKeyVaultKeyId"` // Whether customer managed keys for disk encryption will automatically be rotated to the latest version. ManagedDiskCmkRotationToLatestVersionEnabled *bool `pulumi:"managedDiskCmkRotationToLatestVersionEnabled"` // The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. // - // > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. - ManagedResourceGroupName *string `pulumi:"managedResourceGroupName"` + // > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + ManagedResourceGroupName *string `pulumi:"managedResourceGroupName"` + ManagedServicesCmkKeyVaultId *string `pulumi:"managedServicesCmkKeyVaultId"` // Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). ManagedServicesCmkKeyVaultKeyId *string `pulumi:"managedServicesCmkKeyVaultKeyId"` // Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. @@ -238,7 +246,7 @@ type workspaceArgs struct { ResourceGroupName string `pulumi:"resourceGroupName"` // The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. // - // > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + // > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. Sku string `pulumi:"sku"` // A mapping of tags to assign to the resource. Tags map[string]string `pulumi:"tags"` @@ -255,15 +263,17 @@ type WorkspaceArgs struct { // Resource ID of the Outbound Load balancer Backend Address Pool for Secure Cluster Connectivity (No Public IP) workspace. Changing this forces a new resource to be created. LoadBalancerBackendAddressPoolId pulumi.StringPtrInput // Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. - Location pulumi.StringPtrInput + Location pulumi.StringPtrInput + ManagedDiskCmkKeyVaultId pulumi.StringPtrInput // Customer managed encryption properties for the Databricks Workspace managed disks. ManagedDiskCmkKeyVaultKeyId pulumi.StringPtrInput // Whether customer managed keys for disk encryption will automatically be rotated to the latest version. ManagedDiskCmkRotationToLatestVersionEnabled pulumi.BoolPtrInput // The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. // - // > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. - ManagedResourceGroupName pulumi.StringPtrInput + // > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + ManagedResourceGroupName pulumi.StringPtrInput + ManagedServicesCmkKeyVaultId pulumi.StringPtrInput // Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). ManagedServicesCmkKeyVaultKeyId pulumi.StringPtrInput // Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. @@ -276,7 +286,7 @@ type WorkspaceArgs struct { ResourceGroupName pulumi.StringInput // The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. // - // > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + // > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. Sku pulumi.StringInput // A mapping of tags to assign to the resource. Tags pulumi.StringMapInput @@ -399,6 +409,10 @@ func (o WorkspaceOutput) Location() pulumi.StringOutput { return o.ApplyT(func(v *Workspace) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) } +func (o WorkspaceOutput) ManagedDiskCmkKeyVaultId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Workspace) pulumi.StringPtrOutput { return v.ManagedDiskCmkKeyVaultId }).(pulumi.StringPtrOutput) +} + // Customer managed encryption properties for the Databricks Workspace managed disks. func (o WorkspaceOutput) ManagedDiskCmkKeyVaultKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Workspace) pulumi.StringPtrOutput { return v.ManagedDiskCmkKeyVaultKeyId }).(pulumi.StringPtrOutput) @@ -421,11 +435,15 @@ func (o WorkspaceOutput) ManagedResourceGroupId() pulumi.StringOutput { // The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. // -// > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. +// > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. func (o WorkspaceOutput) ManagedResourceGroupName() pulumi.StringOutput { return o.ApplyT(func(v *Workspace) pulumi.StringOutput { return v.ManagedResourceGroupName }).(pulumi.StringOutput) } +func (o WorkspaceOutput) ManagedServicesCmkKeyVaultId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *Workspace) pulumi.StringPtrOutput { return v.ManagedServicesCmkKeyVaultId }).(pulumi.StringPtrOutput) +} + // Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). func (o WorkspaceOutput) ManagedServicesCmkKeyVaultKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v *Workspace) pulumi.StringPtrOutput { return v.ManagedServicesCmkKeyVaultKeyId }).(pulumi.StringPtrOutput) @@ -453,7 +471,7 @@ func (o WorkspaceOutput) ResourceGroupName() pulumi.StringOutput { // The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. // -// > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. +// > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. func (o WorkspaceOutput) Sku() pulumi.StringOutput { return o.ApplyT(func(v *Workspace) pulumi.StringOutput { return v.Sku }).(pulumi.StringOutput) } diff --git a/sdk/go/azure/databricks/workspaceRootDbfsCustomerManagedKey.go b/sdk/go/azure/databricks/workspaceRootDbfsCustomerManagedKey.go index 32c2ef6fd7..be6775b64d 100644 --- a/sdk/go/azure/databricks/workspaceRootDbfsCustomerManagedKey.go +++ b/sdk/go/azure/databricks/workspaceRootDbfsCustomerManagedKey.go @@ -12,7 +12,7 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) -// Manages a Customer Managed Key for the Databricks Workspaces root Databricks File System(DBFS) +// Manages a Customer Managed Key for the Databricks Workspaces Root Databricks File System(DBFS) // // ## Example Usage // @@ -144,7 +144,7 @@ import ( // ## Example HCL Configurations // // * Databricks Workspace with Root Databricks File System Customer Managed Keys -// * Databricks Workspace with Customer Managed Keys for Managed Services +// * Databricks Workspace with Root Databricks File System Customer Managed Keys in a Different Subscription // * Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys // // ## Import @@ -157,6 +157,7 @@ import ( type WorkspaceRootDbfsCustomerManagedKey struct { pulumi.CustomResourceState + KeyVaultId pulumi.StringPtrOutput `pulumi:"keyVaultId"` // The resource ID of the Key Vault Key to be used. KeyVaultKeyId pulumi.StringOutput `pulumi:"keyVaultKeyId"` // The resource ID of the Databricks Workspace. @@ -199,6 +200,7 @@ func GetWorkspaceRootDbfsCustomerManagedKey(ctx *pulumi.Context, // Input properties used for looking up and filtering WorkspaceRootDbfsCustomerManagedKey resources. type workspaceRootDbfsCustomerManagedKeyState struct { + KeyVaultId *string `pulumi:"keyVaultId"` // The resource ID of the Key Vault Key to be used. KeyVaultKeyId *string `pulumi:"keyVaultKeyId"` // The resource ID of the Databricks Workspace. @@ -206,6 +208,7 @@ type workspaceRootDbfsCustomerManagedKeyState struct { } type WorkspaceRootDbfsCustomerManagedKeyState struct { + KeyVaultId pulumi.StringPtrInput // The resource ID of the Key Vault Key to be used. KeyVaultKeyId pulumi.StringPtrInput // The resource ID of the Databricks Workspace. @@ -217,6 +220,7 @@ func (WorkspaceRootDbfsCustomerManagedKeyState) ElementType() reflect.Type { } type workspaceRootDbfsCustomerManagedKeyArgs struct { + KeyVaultId *string `pulumi:"keyVaultId"` // The resource ID of the Key Vault Key to be used. KeyVaultKeyId string `pulumi:"keyVaultKeyId"` // The resource ID of the Databricks Workspace. @@ -225,6 +229,7 @@ type workspaceRootDbfsCustomerManagedKeyArgs struct { // The set of arguments for constructing a WorkspaceRootDbfsCustomerManagedKey resource. type WorkspaceRootDbfsCustomerManagedKeyArgs struct { + KeyVaultId pulumi.StringPtrInput // The resource ID of the Key Vault Key to be used. KeyVaultKeyId pulumi.StringInput // The resource ID of the Databricks Workspace. @@ -318,6 +323,10 @@ func (o WorkspaceRootDbfsCustomerManagedKeyOutput) ToWorkspaceRootDbfsCustomerMa return o } +func (o WorkspaceRootDbfsCustomerManagedKeyOutput) KeyVaultId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkspaceRootDbfsCustomerManagedKey) pulumi.StringPtrOutput { return v.KeyVaultId }).(pulumi.StringPtrOutput) +} + // The resource ID of the Key Vault Key to be used. func (o WorkspaceRootDbfsCustomerManagedKeyOutput) KeyVaultKeyId() pulumi.StringOutput { return o.ApplyT(func(v *WorkspaceRootDbfsCustomerManagedKey) pulumi.StringOutput { return v.KeyVaultKeyId }).(pulumi.StringOutput) diff --git a/sdk/go/azure/devtest/schedule.go b/sdk/go/azure/devtest/schedule.go index 65b3554b4e..0f0cbbbd20 100644 --- a/sdk/go/azure/devtest/schedule.go +++ b/sdk/go/azure/devtest/schedule.go @@ -50,6 +50,7 @@ import ( // Location: example.Location, // ResourceGroupName: example.Name, // LabName: exampleLab.Name, +// Status: pulumi.String("Enabled"), // WeeklyRecurrence: &devtest.ScheduleWeeklyRecurrenceArgs{ // Time: pulumi.String("1100"), // WeekDays: pulumi.StringArray{ diff --git a/sdk/go/azure/monitoring/pulumiTypes.go b/sdk/go/azure/monitoring/pulumiTypes.go index c2f5151661..40dabad1db 100644 --- a/sdk/go/azure/monitoring/pulumiTypes.go +++ b/sdk/go/azure/monitoring/pulumiTypes.go @@ -21801,6 +21801,208 @@ func (o ScheduledQueryRulesAlertV2CriteriaFailingPeriodsPtrOutput) NumberOfEvalu }).(pulumi.IntPtrOutput) } +type ScheduledQueryRulesAlertV2Identity struct { + // A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + // + // > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + IdentityIds []string `pulumi:"identityIds"` + // The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + PrincipalId *string `pulumi:"principalId"` + // The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + TenantId *string `pulumi:"tenantId"` + // Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + Type string `pulumi:"type"` +} + +// ScheduledQueryRulesAlertV2IdentityInput is an input type that accepts ScheduledQueryRulesAlertV2IdentityArgs and ScheduledQueryRulesAlertV2IdentityOutput values. +// You can construct a concrete instance of `ScheduledQueryRulesAlertV2IdentityInput` via: +// +// ScheduledQueryRulesAlertV2IdentityArgs{...} +type ScheduledQueryRulesAlertV2IdentityInput interface { + pulumi.Input + + ToScheduledQueryRulesAlertV2IdentityOutput() ScheduledQueryRulesAlertV2IdentityOutput + ToScheduledQueryRulesAlertV2IdentityOutputWithContext(context.Context) ScheduledQueryRulesAlertV2IdentityOutput +} + +type ScheduledQueryRulesAlertV2IdentityArgs struct { + // A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + // + // > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + IdentityIds pulumi.StringArrayInput `pulumi:"identityIds"` + // The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + PrincipalId pulumi.StringPtrInput `pulumi:"principalId"` + // The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + TenantId pulumi.StringPtrInput `pulumi:"tenantId"` + // Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (ScheduledQueryRulesAlertV2IdentityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ScheduledQueryRulesAlertV2Identity)(nil)).Elem() +} + +func (i ScheduledQueryRulesAlertV2IdentityArgs) ToScheduledQueryRulesAlertV2IdentityOutput() ScheduledQueryRulesAlertV2IdentityOutput { + return i.ToScheduledQueryRulesAlertV2IdentityOutputWithContext(context.Background()) +} + +func (i ScheduledQueryRulesAlertV2IdentityArgs) ToScheduledQueryRulesAlertV2IdentityOutputWithContext(ctx context.Context) ScheduledQueryRulesAlertV2IdentityOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScheduledQueryRulesAlertV2IdentityOutput) +} + +func (i ScheduledQueryRulesAlertV2IdentityArgs) ToScheduledQueryRulesAlertV2IdentityPtrOutput() ScheduledQueryRulesAlertV2IdentityPtrOutput { + return i.ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(context.Background()) +} + +func (i ScheduledQueryRulesAlertV2IdentityArgs) ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(ctx context.Context) ScheduledQueryRulesAlertV2IdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScheduledQueryRulesAlertV2IdentityOutput).ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(ctx) +} + +// ScheduledQueryRulesAlertV2IdentityPtrInput is an input type that accepts ScheduledQueryRulesAlertV2IdentityArgs, ScheduledQueryRulesAlertV2IdentityPtr and ScheduledQueryRulesAlertV2IdentityPtrOutput values. +// You can construct a concrete instance of `ScheduledQueryRulesAlertV2IdentityPtrInput` via: +// +// ScheduledQueryRulesAlertV2IdentityArgs{...} +// +// or: +// +// nil +type ScheduledQueryRulesAlertV2IdentityPtrInput interface { + pulumi.Input + + ToScheduledQueryRulesAlertV2IdentityPtrOutput() ScheduledQueryRulesAlertV2IdentityPtrOutput + ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(context.Context) ScheduledQueryRulesAlertV2IdentityPtrOutput +} + +type scheduledQueryRulesAlertV2IdentityPtrType ScheduledQueryRulesAlertV2IdentityArgs + +func ScheduledQueryRulesAlertV2IdentityPtr(v *ScheduledQueryRulesAlertV2IdentityArgs) ScheduledQueryRulesAlertV2IdentityPtrInput { + return (*scheduledQueryRulesAlertV2IdentityPtrType)(v) +} + +func (*scheduledQueryRulesAlertV2IdentityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ScheduledQueryRulesAlertV2Identity)(nil)).Elem() +} + +func (i *scheduledQueryRulesAlertV2IdentityPtrType) ToScheduledQueryRulesAlertV2IdentityPtrOutput() ScheduledQueryRulesAlertV2IdentityPtrOutput { + return i.ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(context.Background()) +} + +func (i *scheduledQueryRulesAlertV2IdentityPtrType) ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(ctx context.Context) ScheduledQueryRulesAlertV2IdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ScheduledQueryRulesAlertV2IdentityPtrOutput) +} + +type ScheduledQueryRulesAlertV2IdentityOutput struct{ *pulumi.OutputState } + +func (ScheduledQueryRulesAlertV2IdentityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ScheduledQueryRulesAlertV2Identity)(nil)).Elem() +} + +func (o ScheduledQueryRulesAlertV2IdentityOutput) ToScheduledQueryRulesAlertV2IdentityOutput() ScheduledQueryRulesAlertV2IdentityOutput { + return o +} + +func (o ScheduledQueryRulesAlertV2IdentityOutput) ToScheduledQueryRulesAlertV2IdentityOutputWithContext(ctx context.Context) ScheduledQueryRulesAlertV2IdentityOutput { + return o +} + +func (o ScheduledQueryRulesAlertV2IdentityOutput) ToScheduledQueryRulesAlertV2IdentityPtrOutput() ScheduledQueryRulesAlertV2IdentityPtrOutput { + return o.ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(context.Background()) +} + +func (o ScheduledQueryRulesAlertV2IdentityOutput) ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(ctx context.Context) ScheduledQueryRulesAlertV2IdentityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ScheduledQueryRulesAlertV2Identity) *ScheduledQueryRulesAlertV2Identity { + return &v + }).(ScheduledQueryRulesAlertV2IdentityPtrOutput) +} + +// A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. +// +// > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. +func (o ScheduledQueryRulesAlertV2IdentityOutput) IdentityIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v ScheduledQueryRulesAlertV2Identity) []string { return v.IdentityIds }).(pulumi.StringArrayOutput) +} + +// The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. +func (o ScheduledQueryRulesAlertV2IdentityOutput) PrincipalId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScheduledQueryRulesAlertV2Identity) *string { return v.PrincipalId }).(pulumi.StringPtrOutput) +} + +// The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. +func (o ScheduledQueryRulesAlertV2IdentityOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ScheduledQueryRulesAlertV2Identity) *string { return v.TenantId }).(pulumi.StringPtrOutput) +} + +// Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. +func (o ScheduledQueryRulesAlertV2IdentityOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v ScheduledQueryRulesAlertV2Identity) string { return v.Type }).(pulumi.StringOutput) +} + +type ScheduledQueryRulesAlertV2IdentityPtrOutput struct{ *pulumi.OutputState } + +func (ScheduledQueryRulesAlertV2IdentityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ScheduledQueryRulesAlertV2Identity)(nil)).Elem() +} + +func (o ScheduledQueryRulesAlertV2IdentityPtrOutput) ToScheduledQueryRulesAlertV2IdentityPtrOutput() ScheduledQueryRulesAlertV2IdentityPtrOutput { + return o +} + +func (o ScheduledQueryRulesAlertV2IdentityPtrOutput) ToScheduledQueryRulesAlertV2IdentityPtrOutputWithContext(ctx context.Context) ScheduledQueryRulesAlertV2IdentityPtrOutput { + return o +} + +func (o ScheduledQueryRulesAlertV2IdentityPtrOutput) Elem() ScheduledQueryRulesAlertV2IdentityOutput { + return o.ApplyT(func(v *ScheduledQueryRulesAlertV2Identity) ScheduledQueryRulesAlertV2Identity { + if v != nil { + return *v + } + var ret ScheduledQueryRulesAlertV2Identity + return ret + }).(ScheduledQueryRulesAlertV2IdentityOutput) +} + +// A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. +// +// > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. +func (o ScheduledQueryRulesAlertV2IdentityPtrOutput) IdentityIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *ScheduledQueryRulesAlertV2Identity) []string { + if v == nil { + return nil + } + return v.IdentityIds + }).(pulumi.StringArrayOutput) +} + +// The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. +func (o ScheduledQueryRulesAlertV2IdentityPtrOutput) PrincipalId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScheduledQueryRulesAlertV2Identity) *string { + if v == nil { + return nil + } + return v.PrincipalId + }).(pulumi.StringPtrOutput) +} + +// The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. +func (o ScheduledQueryRulesAlertV2IdentityPtrOutput) TenantId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScheduledQueryRulesAlertV2Identity) *string { + if v == nil { + return nil + } + return v.TenantId + }).(pulumi.StringPtrOutput) +} + +// Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. +func (o ScheduledQueryRulesAlertV2IdentityPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScheduledQueryRulesAlertV2Identity) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + type ScheduledQueryRulesLogCriteria struct { // A `dimension` block as defined below. Dimensions []ScheduledQueryRulesLogCriteriaDimension `pulumi:"dimensions"` @@ -28091,6 +28293,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesAlertV2CriteriaDimensionArrayInput)(nil)).Elem(), ScheduledQueryRulesAlertV2CriteriaDimensionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesAlertV2CriteriaFailingPeriodsInput)(nil)).Elem(), ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesAlertV2CriteriaFailingPeriodsPtrInput)(nil)).Elem(), ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesAlertV2IdentityInput)(nil)).Elem(), ScheduledQueryRulesAlertV2IdentityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesAlertV2IdentityPtrInput)(nil)).Elem(), ScheduledQueryRulesAlertV2IdentityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesLogCriteriaInput)(nil)).Elem(), ScheduledQueryRulesLogCriteriaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesLogCriteriaPtrInput)(nil)).Elem(), ScheduledQueryRulesLogCriteriaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScheduledQueryRulesLogCriteriaDimensionInput)(nil)).Elem(), ScheduledQueryRulesLogCriteriaDimensionArgs{}) @@ -28468,6 +28672,8 @@ func init() { pulumi.RegisterOutputType(ScheduledQueryRulesAlertV2CriteriaDimensionArrayOutput{}) pulumi.RegisterOutputType(ScheduledQueryRulesAlertV2CriteriaFailingPeriodsOutput{}) pulumi.RegisterOutputType(ScheduledQueryRulesAlertV2CriteriaFailingPeriodsPtrOutput{}) + pulumi.RegisterOutputType(ScheduledQueryRulesAlertV2IdentityOutput{}) + pulumi.RegisterOutputType(ScheduledQueryRulesAlertV2IdentityPtrOutput{}) pulumi.RegisterOutputType(ScheduledQueryRulesLogCriteriaOutput{}) pulumi.RegisterOutputType(ScheduledQueryRulesLogCriteriaPtrOutput{}) pulumi.RegisterOutputType(ScheduledQueryRulesLogCriteriaDimensionOutput{}) diff --git a/sdk/go/azure/monitoring/scheduledQueryRulesAlertV2.go b/sdk/go/azure/monitoring/scheduledQueryRulesAlertV2.go index 6f8abc0cef..347a348326 100644 --- a/sdk/go/azure/monitoring/scheduledQueryRulesAlertV2.go +++ b/sdk/go/azure/monitoring/scheduledQueryRulesAlertV2.go @@ -23,6 +23,7 @@ import ( // import ( // // "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/appinsights" +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/authorization" // "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" // "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/monitoring" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -55,6 +56,22 @@ import ( // if err != nil { // return err // } +// exampleUserAssignedIdentity, err := authorization.NewUserAssignedIdentity(ctx, "example", &authorization.UserAssignedIdentityArgs{ +// Name: pulumi.String("example-uai"), +// Location: example.Location, +// ResourceGroupName: example.Name, +// }) +// if err != nil { +// return err +// } +// _, err = authorization.NewAssignment(ctx, "example", &authorization.AssignmentArgs{ +// Scope: exampleInsights.ID(), +// RoleDefinitionName: pulumi.String("Reader"), +// PrincipalId: exampleUserAssignedIdentity.PrincipalId, +// }) +// if err != nil { +// return err +// } // _, err = monitoring.NewScheduledQueryRulesAlertV2(ctx, "example", &monitoring.ScheduledQueryRulesAlertV2Args{ // Name: pulumi.String("example-msqrv2"), // ResourceGroupName: example.Name, @@ -102,6 +119,12 @@ import ( // "key2": pulumi.String("value2"), // }, // }, +// Identity: &monitoring.ScheduledQueryRulesAlertV2IdentityArgs{ +// Type: pulumi.String("UserAssigned"), +// IdentityIds: pulumi.StringArray{ +// exampleUserAssignedIdentity.ID(), +// }, +// }, // Tags: pulumi.StringMap{ // "key": pulumi.String("value"), // "key2": pulumi.String("value2"), @@ -147,6 +170,8 @@ type ScheduledQueryRulesAlertV2 struct { // // > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. EvaluationFrequency pulumi.StringPtrOutput `pulumi:"evaluationFrequency"` + // An `identity` block as defined below. + Identity ScheduledQueryRulesAlertV2IdentityPtrOutput `pulumi:"identity"` // True if this alert rule is a legacy Log Analytic Rule. IsALegacyLogAnalyticsRule pulumi.BoolOutput `pulumi:"isALegacyLogAnalyticsRule"` // The flag indicates whether this Scheduled Query Rule has been configured to be stored in the customer's storage. @@ -246,6 +271,8 @@ type scheduledQueryRulesAlertV2State struct { // // > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. EvaluationFrequency *string `pulumi:"evaluationFrequency"` + // An `identity` block as defined below. + Identity *ScheduledQueryRulesAlertV2Identity `pulumi:"identity"` // True if this alert rule is a legacy Log Analytic Rule. IsALegacyLogAnalyticsRule *bool `pulumi:"isALegacyLogAnalyticsRule"` // The flag indicates whether this Scheduled Query Rule has been configured to be stored in the customer's storage. @@ -301,6 +328,8 @@ type ScheduledQueryRulesAlertV2State struct { // // > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. EvaluationFrequency pulumi.StringPtrInput + // An `identity` block as defined below. + Identity ScheduledQueryRulesAlertV2IdentityPtrInput // True if this alert rule is a legacy Log Analytic Rule. IsALegacyLogAnalyticsRule pulumi.BoolPtrInput // The flag indicates whether this Scheduled Query Rule has been configured to be stored in the customer's storage. @@ -358,6 +387,8 @@ type scheduledQueryRulesAlertV2Args struct { // // > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. EvaluationFrequency *string `pulumi:"evaluationFrequency"` + // An `identity` block as defined below. + Identity *ScheduledQueryRulesAlertV2Identity `pulumi:"identity"` // Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. Location *string `pulumi:"location"` // Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D` and `P2D`. @@ -408,6 +439,8 @@ type ScheduledQueryRulesAlertV2Args struct { // // > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. EvaluationFrequency pulumi.StringPtrInput + // An `identity` block as defined below. + Identity ScheduledQueryRulesAlertV2IdentityPtrInput // Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. Location pulumi.StringPtrInput // Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D` and `P2D`. @@ -569,6 +602,11 @@ func (o ScheduledQueryRulesAlertV2Output) EvaluationFrequency() pulumi.StringPtr return o.ApplyT(func(v *ScheduledQueryRulesAlertV2) pulumi.StringPtrOutput { return v.EvaluationFrequency }).(pulumi.StringPtrOutput) } +// An `identity` block as defined below. +func (o ScheduledQueryRulesAlertV2Output) Identity() ScheduledQueryRulesAlertV2IdentityPtrOutput { + return o.ApplyT(func(v *ScheduledQueryRulesAlertV2) ScheduledQueryRulesAlertV2IdentityPtrOutput { return v.Identity }).(ScheduledQueryRulesAlertV2IdentityPtrOutput) +} + // True if this alert rule is a legacy Log Analytic Rule. func (o ScheduledQueryRulesAlertV2Output) IsALegacyLogAnalyticsRule() pulumi.BoolOutput { return o.ApplyT(func(v *ScheduledQueryRulesAlertV2) pulumi.BoolOutput { return v.IsALegacyLogAnalyticsRule }).(pulumi.BoolOutput) diff --git a/sdk/go/azure/mssql/database.go b/sdk/go/azure/mssql/database.go index 761a3439da..c7327d4157 100644 --- a/sdk/go/azure/mssql/database.go +++ b/sdk/go/azure/mssql/database.go @@ -240,12 +240,14 @@ type Database struct { CreationSourceDatabaseId pulumi.StringOutput `pulumi:"creationSourceDatabaseId"` // Specifies the ID of the elastic pool containing this database. ElasticPoolId pulumi.StringPtrOutput `pulumi:"elasticPoolId"` - // Specifies the type of enclave to be used by the database. Possible value `VBS`. + // Specifies the type of enclave to be used by the elastic pool. When `enclaveType` is not specified (e.g., the default) enclaves are not enabled on the database. +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/redis" +// "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("East US"), +// }) +// if err != nil { +// return err +// } +// exampleCache, err := redis.NewCache(ctx, "example", &redis.CacheArgs{ +// Name: pulumi.String("example"), +// Location: example.Location, +// ResourceGroupName: example.Name, +// Capacity: pulumi.Int(1), +// Family: pulumi.String("P"), +// SkuName: pulumi.String("Premium"), +// EnableNonSslPort: pulumi.Bool(false), +// RedisConfiguration: &redis.CacheRedisConfigurationArgs{ +// MaxmemoryReserved: pulumi.Int(2), +// MaxmemoryDelta: pulumi.Int(2), +// MaxmemoryPolicy: pulumi.String("allkeys-lru"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = redis.NewCacheAccessPolicy(ctx, "example", &redis.CacheAccessPolicyArgs{ +// Name: pulumi.String("example"), +// RedisCacheId: exampleCache.ID(), +// Permissions: pulumi.String("+@read +@connection +cluster|info"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Redis Cache Access Policy can be imported using the `resource id`, e.g. +// +// ```sh +// $ pulumi import azure:redis/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicies/policy1 +// ``` +type CacheAccessPolicy struct { + pulumi.CustomResourceState + + // The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Name pulumi.StringOutput `pulumi:"name"` + // Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Permissions pulumi.StringOutput `pulumi:"permissions"` + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + RedisCacheId pulumi.StringOutput `pulumi:"redisCacheId"` +} + +// NewCacheAccessPolicy registers a new resource with the given unique name, arguments, and options. +func NewCacheAccessPolicy(ctx *pulumi.Context, + name string, args *CacheAccessPolicyArgs, opts ...pulumi.ResourceOption) (*CacheAccessPolicy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Permissions == nil { + return nil, errors.New("invalid value for required argument 'Permissions'") + } + if args.RedisCacheId == nil { + return nil, errors.New("invalid value for required argument 'RedisCacheId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource CacheAccessPolicy + err := ctx.RegisterResource("azure:redis/cacheAccessPolicy:CacheAccessPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCacheAccessPolicy gets an existing CacheAccessPolicy 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 GetCacheAccessPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CacheAccessPolicyState, opts ...pulumi.ResourceOption) (*CacheAccessPolicy, error) { + var resource CacheAccessPolicy + err := ctx.ReadResource("azure:redis/cacheAccessPolicy:CacheAccessPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CacheAccessPolicy resources. +type cacheAccessPolicyState struct { + // The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Name *string `pulumi:"name"` + // Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Permissions *string `pulumi:"permissions"` + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + RedisCacheId *string `pulumi:"redisCacheId"` +} + +type CacheAccessPolicyState struct { + // The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Name pulumi.StringPtrInput + // Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Permissions pulumi.StringPtrInput + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + RedisCacheId pulumi.StringPtrInput +} + +func (CacheAccessPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*cacheAccessPolicyState)(nil)).Elem() +} + +type cacheAccessPolicyArgs struct { + // The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Name *string `pulumi:"name"` + // Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Permissions string `pulumi:"permissions"` + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + RedisCacheId string `pulumi:"redisCacheId"` +} + +// The set of arguments for constructing a CacheAccessPolicy resource. +type CacheAccessPolicyArgs struct { + // The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Name pulumi.StringPtrInput + // Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + Permissions pulumi.StringInput + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + RedisCacheId pulumi.StringInput +} + +func (CacheAccessPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*cacheAccessPolicyArgs)(nil)).Elem() +} + +type CacheAccessPolicyInput interface { + pulumi.Input + + ToCacheAccessPolicyOutput() CacheAccessPolicyOutput + ToCacheAccessPolicyOutputWithContext(ctx context.Context) CacheAccessPolicyOutput +} + +func (*CacheAccessPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**CacheAccessPolicy)(nil)).Elem() +} + +func (i *CacheAccessPolicy) ToCacheAccessPolicyOutput() CacheAccessPolicyOutput { + return i.ToCacheAccessPolicyOutputWithContext(context.Background()) +} + +func (i *CacheAccessPolicy) ToCacheAccessPolicyOutputWithContext(ctx context.Context) CacheAccessPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheAccessPolicyOutput) +} + +// CacheAccessPolicyArrayInput is an input type that accepts CacheAccessPolicyArray and CacheAccessPolicyArrayOutput values. +// You can construct a concrete instance of `CacheAccessPolicyArrayInput` via: +// +// CacheAccessPolicyArray{ CacheAccessPolicyArgs{...} } +type CacheAccessPolicyArrayInput interface { + pulumi.Input + + ToCacheAccessPolicyArrayOutput() CacheAccessPolicyArrayOutput + ToCacheAccessPolicyArrayOutputWithContext(context.Context) CacheAccessPolicyArrayOutput +} + +type CacheAccessPolicyArray []CacheAccessPolicyInput + +func (CacheAccessPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CacheAccessPolicy)(nil)).Elem() +} + +func (i CacheAccessPolicyArray) ToCacheAccessPolicyArrayOutput() CacheAccessPolicyArrayOutput { + return i.ToCacheAccessPolicyArrayOutputWithContext(context.Background()) +} + +func (i CacheAccessPolicyArray) ToCacheAccessPolicyArrayOutputWithContext(ctx context.Context) CacheAccessPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheAccessPolicyArrayOutput) +} + +// CacheAccessPolicyMapInput is an input type that accepts CacheAccessPolicyMap and CacheAccessPolicyMapOutput values. +// You can construct a concrete instance of `CacheAccessPolicyMapInput` via: +// +// CacheAccessPolicyMap{ "key": CacheAccessPolicyArgs{...} } +type CacheAccessPolicyMapInput interface { + pulumi.Input + + ToCacheAccessPolicyMapOutput() CacheAccessPolicyMapOutput + ToCacheAccessPolicyMapOutputWithContext(context.Context) CacheAccessPolicyMapOutput +} + +type CacheAccessPolicyMap map[string]CacheAccessPolicyInput + +func (CacheAccessPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CacheAccessPolicy)(nil)).Elem() +} + +func (i CacheAccessPolicyMap) ToCacheAccessPolicyMapOutput() CacheAccessPolicyMapOutput { + return i.ToCacheAccessPolicyMapOutputWithContext(context.Background()) +} + +func (i CacheAccessPolicyMap) ToCacheAccessPolicyMapOutputWithContext(ctx context.Context) CacheAccessPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheAccessPolicyMapOutput) +} + +type CacheAccessPolicyOutput struct{ *pulumi.OutputState } + +func (CacheAccessPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CacheAccessPolicy)(nil)).Elem() +} + +func (o CacheAccessPolicyOutput) ToCacheAccessPolicyOutput() CacheAccessPolicyOutput { + return o +} + +func (o CacheAccessPolicyOutput) ToCacheAccessPolicyOutputWithContext(ctx context.Context) CacheAccessPolicyOutput { + return o +} + +// The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. +func (o CacheAccessPolicyOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. +func (o CacheAccessPolicyOutput) Permissions() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicy) pulumi.StringOutput { return v.Permissions }).(pulumi.StringOutput) +} + +// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. +func (o CacheAccessPolicyOutput) RedisCacheId() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicy) pulumi.StringOutput { return v.RedisCacheId }).(pulumi.StringOutput) +} + +type CacheAccessPolicyArrayOutput struct{ *pulumi.OutputState } + +func (CacheAccessPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CacheAccessPolicy)(nil)).Elem() +} + +func (o CacheAccessPolicyArrayOutput) ToCacheAccessPolicyArrayOutput() CacheAccessPolicyArrayOutput { + return o +} + +func (o CacheAccessPolicyArrayOutput) ToCacheAccessPolicyArrayOutputWithContext(ctx context.Context) CacheAccessPolicyArrayOutput { + return o +} + +func (o CacheAccessPolicyArrayOutput) Index(i pulumi.IntInput) CacheAccessPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CacheAccessPolicy { + return vs[0].([]*CacheAccessPolicy)[vs[1].(int)] + }).(CacheAccessPolicyOutput) +} + +type CacheAccessPolicyMapOutput struct{ *pulumi.OutputState } + +func (CacheAccessPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CacheAccessPolicy)(nil)).Elem() +} + +func (o CacheAccessPolicyMapOutput) ToCacheAccessPolicyMapOutput() CacheAccessPolicyMapOutput { + return o +} + +func (o CacheAccessPolicyMapOutput) ToCacheAccessPolicyMapOutputWithContext(ctx context.Context) CacheAccessPolicyMapOutput { + return o +} + +func (o CacheAccessPolicyMapOutput) MapIndex(k pulumi.StringInput) CacheAccessPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CacheAccessPolicy { + return vs[0].(map[string]*CacheAccessPolicy)[vs[1].(string)] + }).(CacheAccessPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CacheAccessPolicyInput)(nil)).Elem(), &CacheAccessPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*CacheAccessPolicyArrayInput)(nil)).Elem(), CacheAccessPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CacheAccessPolicyMapInput)(nil)).Elem(), CacheAccessPolicyMap{}) + pulumi.RegisterOutputType(CacheAccessPolicyOutput{}) + pulumi.RegisterOutputType(CacheAccessPolicyArrayOutput{}) + pulumi.RegisterOutputType(CacheAccessPolicyMapOutput{}) +} diff --git a/sdk/go/azure/redis/cacheAccessPolicyAssignment.go b/sdk/go/azure/redis/cacheAccessPolicyAssignment.go new file mode 100644 index 0000000000..744efba1a7 --- /dev/null +++ b/sdk/go/azure/redis/cacheAccessPolicyAssignment.go @@ -0,0 +1,357 @@ +// 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 redis + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages a Redis Cache Access Policy Assignment +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/redis" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// test, err := core.GetClientConfig(ctx, nil, nil) +// if err != nil { +// return err +// } +// example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{ +// Name: pulumi.String("example-resources"), +// Location: pulumi.String("East US"), +// }) +// if err != nil { +// return err +// } +// exampleCache, err := redis.NewCache(ctx, "example", &redis.CacheArgs{ +// Name: pulumi.String("example"), +// Location: example.Location, +// ResourceGroupName: example.Name, +// Capacity: pulumi.Int(1), +// Family: pulumi.String("P"), +// SkuName: pulumi.String("Premium"), +// EnableNonSslPort: pulumi.Bool(false), +// RedisConfiguration: &redis.CacheRedisConfigurationArgs{ +// MaxmemoryReserved: pulumi.Int(2), +// MaxmemoryDelta: pulumi.Int(2), +// MaxmemoryPolicy: pulumi.String("allkeys-lru"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = redis.NewCacheAccessPolicyAssignment(ctx, "example", &redis.CacheAccessPolicyAssignmentArgs{ +// Name: pulumi.String("example"), +// RedisCacheId: exampleCache.ID(), +// AccessPolicyName: pulumi.String("Data Contributor"), +// ObjectId: pulumi.String(test.ObjectId), +// ObjectIdAlias: pulumi.String("ServicePrincipal"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// Redis Cache Policy Assignment can be imported using the `resource id`, e.g. +// +// ```sh +// $ pulumi import azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/assignment1 +// ``` +type CacheAccessPolicyAssignment struct { + pulumi.CustomResourceState + + // The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + AccessPolicyName pulumi.StringOutput `pulumi:"accessPolicyName"` + // The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + Name pulumi.StringOutput `pulumi:"name"` + // The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectId pulumi.StringOutput `pulumi:"objectId"` + // The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectIdAlias pulumi.StringOutput `pulumi:"objectIdAlias"` + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + RedisCacheId pulumi.StringOutput `pulumi:"redisCacheId"` +} + +// NewCacheAccessPolicyAssignment registers a new resource with the given unique name, arguments, and options. +func NewCacheAccessPolicyAssignment(ctx *pulumi.Context, + name string, args *CacheAccessPolicyAssignmentArgs, opts ...pulumi.ResourceOption) (*CacheAccessPolicyAssignment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AccessPolicyName == nil { + return nil, errors.New("invalid value for required argument 'AccessPolicyName'") + } + if args.ObjectId == nil { + return nil, errors.New("invalid value for required argument 'ObjectId'") + } + if args.ObjectIdAlias == nil { + return nil, errors.New("invalid value for required argument 'ObjectIdAlias'") + } + if args.RedisCacheId == nil { + return nil, errors.New("invalid value for required argument 'RedisCacheId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource CacheAccessPolicyAssignment + err := ctx.RegisterResource("azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCacheAccessPolicyAssignment gets an existing CacheAccessPolicyAssignment 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 GetCacheAccessPolicyAssignment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CacheAccessPolicyAssignmentState, opts ...pulumi.ResourceOption) (*CacheAccessPolicyAssignment, error) { + var resource CacheAccessPolicyAssignment + err := ctx.ReadResource("azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CacheAccessPolicyAssignment resources. +type cacheAccessPolicyAssignmentState struct { + // The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + AccessPolicyName *string `pulumi:"accessPolicyName"` + // The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + Name *string `pulumi:"name"` + // The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectId *string `pulumi:"objectId"` + // The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectIdAlias *string `pulumi:"objectIdAlias"` + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + RedisCacheId *string `pulumi:"redisCacheId"` +} + +type CacheAccessPolicyAssignmentState struct { + // The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + AccessPolicyName pulumi.StringPtrInput + // The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + Name pulumi.StringPtrInput + // The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectId pulumi.StringPtrInput + // The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectIdAlias pulumi.StringPtrInput + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + RedisCacheId pulumi.StringPtrInput +} + +func (CacheAccessPolicyAssignmentState) ElementType() reflect.Type { + return reflect.TypeOf((*cacheAccessPolicyAssignmentState)(nil)).Elem() +} + +type cacheAccessPolicyAssignmentArgs struct { + // The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + AccessPolicyName string `pulumi:"accessPolicyName"` + // The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + Name *string `pulumi:"name"` + // The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectId string `pulumi:"objectId"` + // The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectIdAlias string `pulumi:"objectIdAlias"` + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + RedisCacheId string `pulumi:"redisCacheId"` +} + +// The set of arguments for constructing a CacheAccessPolicyAssignment resource. +type CacheAccessPolicyAssignmentArgs struct { + // The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + AccessPolicyName pulumi.StringInput + // The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + Name pulumi.StringPtrInput + // The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectId pulumi.StringInput + // The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + ObjectIdAlias pulumi.StringInput + // The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + RedisCacheId pulumi.StringInput +} + +func (CacheAccessPolicyAssignmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*cacheAccessPolicyAssignmentArgs)(nil)).Elem() +} + +type CacheAccessPolicyAssignmentInput interface { + pulumi.Input + + ToCacheAccessPolicyAssignmentOutput() CacheAccessPolicyAssignmentOutput + ToCacheAccessPolicyAssignmentOutputWithContext(ctx context.Context) CacheAccessPolicyAssignmentOutput +} + +func (*CacheAccessPolicyAssignment) ElementType() reflect.Type { + return reflect.TypeOf((**CacheAccessPolicyAssignment)(nil)).Elem() +} + +func (i *CacheAccessPolicyAssignment) ToCacheAccessPolicyAssignmentOutput() CacheAccessPolicyAssignmentOutput { + return i.ToCacheAccessPolicyAssignmentOutputWithContext(context.Background()) +} + +func (i *CacheAccessPolicyAssignment) ToCacheAccessPolicyAssignmentOutputWithContext(ctx context.Context) CacheAccessPolicyAssignmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheAccessPolicyAssignmentOutput) +} + +// CacheAccessPolicyAssignmentArrayInput is an input type that accepts CacheAccessPolicyAssignmentArray and CacheAccessPolicyAssignmentArrayOutput values. +// You can construct a concrete instance of `CacheAccessPolicyAssignmentArrayInput` via: +// +// CacheAccessPolicyAssignmentArray{ CacheAccessPolicyAssignmentArgs{...} } +type CacheAccessPolicyAssignmentArrayInput interface { + pulumi.Input + + ToCacheAccessPolicyAssignmentArrayOutput() CacheAccessPolicyAssignmentArrayOutput + ToCacheAccessPolicyAssignmentArrayOutputWithContext(context.Context) CacheAccessPolicyAssignmentArrayOutput +} + +type CacheAccessPolicyAssignmentArray []CacheAccessPolicyAssignmentInput + +func (CacheAccessPolicyAssignmentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CacheAccessPolicyAssignment)(nil)).Elem() +} + +func (i CacheAccessPolicyAssignmentArray) ToCacheAccessPolicyAssignmentArrayOutput() CacheAccessPolicyAssignmentArrayOutput { + return i.ToCacheAccessPolicyAssignmentArrayOutputWithContext(context.Background()) +} + +func (i CacheAccessPolicyAssignmentArray) ToCacheAccessPolicyAssignmentArrayOutputWithContext(ctx context.Context) CacheAccessPolicyAssignmentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheAccessPolicyAssignmentArrayOutput) +} + +// CacheAccessPolicyAssignmentMapInput is an input type that accepts CacheAccessPolicyAssignmentMap and CacheAccessPolicyAssignmentMapOutput values. +// You can construct a concrete instance of `CacheAccessPolicyAssignmentMapInput` via: +// +// CacheAccessPolicyAssignmentMap{ "key": CacheAccessPolicyAssignmentArgs{...} } +type CacheAccessPolicyAssignmentMapInput interface { + pulumi.Input + + ToCacheAccessPolicyAssignmentMapOutput() CacheAccessPolicyAssignmentMapOutput + ToCacheAccessPolicyAssignmentMapOutputWithContext(context.Context) CacheAccessPolicyAssignmentMapOutput +} + +type CacheAccessPolicyAssignmentMap map[string]CacheAccessPolicyAssignmentInput + +func (CacheAccessPolicyAssignmentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CacheAccessPolicyAssignment)(nil)).Elem() +} + +func (i CacheAccessPolicyAssignmentMap) ToCacheAccessPolicyAssignmentMapOutput() CacheAccessPolicyAssignmentMapOutput { + return i.ToCacheAccessPolicyAssignmentMapOutputWithContext(context.Background()) +} + +func (i CacheAccessPolicyAssignmentMap) ToCacheAccessPolicyAssignmentMapOutputWithContext(ctx context.Context) CacheAccessPolicyAssignmentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CacheAccessPolicyAssignmentMapOutput) +} + +type CacheAccessPolicyAssignmentOutput struct{ *pulumi.OutputState } + +func (CacheAccessPolicyAssignmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CacheAccessPolicyAssignment)(nil)).Elem() +} + +func (o CacheAccessPolicyAssignmentOutput) ToCacheAccessPolicyAssignmentOutput() CacheAccessPolicyAssignmentOutput { + return o +} + +func (o CacheAccessPolicyAssignmentOutput) ToCacheAccessPolicyAssignmentOutputWithContext(ctx context.Context) CacheAccessPolicyAssignmentOutput { + return o +} + +// The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. +func (o CacheAccessPolicyAssignmentOutput) AccessPolicyName() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicyAssignment) pulumi.StringOutput { return v.AccessPolicyName }).(pulumi.StringOutput) +} + +// The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. +func (o CacheAccessPolicyAssignmentOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicyAssignment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. +func (o CacheAccessPolicyAssignmentOutput) ObjectId() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicyAssignment) pulumi.StringOutput { return v.ObjectId }).(pulumi.StringOutput) +} + +// The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. +func (o CacheAccessPolicyAssignmentOutput) ObjectIdAlias() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicyAssignment) pulumi.StringOutput { return v.ObjectIdAlias }).(pulumi.StringOutput) +} + +// The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. +func (o CacheAccessPolicyAssignmentOutput) RedisCacheId() pulumi.StringOutput { + return o.ApplyT(func(v *CacheAccessPolicyAssignment) pulumi.StringOutput { return v.RedisCacheId }).(pulumi.StringOutput) +} + +type CacheAccessPolicyAssignmentArrayOutput struct{ *pulumi.OutputState } + +func (CacheAccessPolicyAssignmentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CacheAccessPolicyAssignment)(nil)).Elem() +} + +func (o CacheAccessPolicyAssignmentArrayOutput) ToCacheAccessPolicyAssignmentArrayOutput() CacheAccessPolicyAssignmentArrayOutput { + return o +} + +func (o CacheAccessPolicyAssignmentArrayOutput) ToCacheAccessPolicyAssignmentArrayOutputWithContext(ctx context.Context) CacheAccessPolicyAssignmentArrayOutput { + return o +} + +func (o CacheAccessPolicyAssignmentArrayOutput) Index(i pulumi.IntInput) CacheAccessPolicyAssignmentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CacheAccessPolicyAssignment { + return vs[0].([]*CacheAccessPolicyAssignment)[vs[1].(int)] + }).(CacheAccessPolicyAssignmentOutput) +} + +type CacheAccessPolicyAssignmentMapOutput struct{ *pulumi.OutputState } + +func (CacheAccessPolicyAssignmentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CacheAccessPolicyAssignment)(nil)).Elem() +} + +func (o CacheAccessPolicyAssignmentMapOutput) ToCacheAccessPolicyAssignmentMapOutput() CacheAccessPolicyAssignmentMapOutput { + return o +} + +func (o CacheAccessPolicyAssignmentMapOutput) ToCacheAccessPolicyAssignmentMapOutputWithContext(ctx context.Context) CacheAccessPolicyAssignmentMapOutput { + return o +} + +func (o CacheAccessPolicyAssignmentMapOutput) MapIndex(k pulumi.StringInput) CacheAccessPolicyAssignmentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CacheAccessPolicyAssignment { + return vs[0].(map[string]*CacheAccessPolicyAssignment)[vs[1].(string)] + }).(CacheAccessPolicyAssignmentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CacheAccessPolicyAssignmentInput)(nil)).Elem(), &CacheAccessPolicyAssignment{}) + pulumi.RegisterInputType(reflect.TypeOf((*CacheAccessPolicyAssignmentArrayInput)(nil)).Elem(), CacheAccessPolicyAssignmentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CacheAccessPolicyAssignmentMapInput)(nil)).Elem(), CacheAccessPolicyAssignmentMap{}) + pulumi.RegisterOutputType(CacheAccessPolicyAssignmentOutput{}) + pulumi.RegisterOutputType(CacheAccessPolicyAssignmentArrayOutput{}) + pulumi.RegisterOutputType(CacheAccessPolicyAssignmentMapOutput{}) +} diff --git a/sdk/go/azure/redis/init.go b/sdk/go/azure/redis/init.go index c3d0f8d889..60db055ce9 100644 --- a/sdk/go/azure/redis/init.go +++ b/sdk/go/azure/redis/init.go @@ -23,6 +23,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi switch typ { case "azure:redis/cache:Cache": r = &Cache{} + case "azure:redis/cacheAccessPolicy:CacheAccessPolicy": + r = &CacheAccessPolicy{} + case "azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment": + r = &CacheAccessPolicyAssignment{} case "azure:redis/enterpriseCluster:EnterpriseCluster": r = &EnterpriseCluster{} case "azure:redis/enterpriseDatabase:EnterpriseDatabase": @@ -49,6 +53,16 @@ func init() { "redis/cache", &module{version}, ) + pulumi.RegisterResourceModule( + "azure", + "redis/cacheAccessPolicy", + &module{version}, + ) + pulumi.RegisterResourceModule( + "azure", + "redis/cacheAccessPolicyAssignment", + &module{version}, + ) pulumi.RegisterResourceModule( "azure", "redis/enterpriseCluster", diff --git a/sdk/go/azure/stack/hciCluster.go b/sdk/go/azure/stack/hciCluster.go index 89ee3a16d9..171429da8d 100644 --- a/sdk/go/azure/stack/hciCluster.go +++ b/sdk/go/azure/stack/hciCluster.go @@ -80,8 +80,8 @@ type HciCluster struct { // The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. AutomanageConfigurationId pulumi.StringPtrOutput `pulumi:"automanageConfigurationId"` - // The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. - ClientId pulumi.StringOutput `pulumi:"clientId"` + // The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + ClientId pulumi.StringPtrOutput `pulumi:"clientId"` // An immutable UUID for the Azure Stack HCI Cluster. CloudId pulumi.StringOutput `pulumi:"cloudId"` // An `identity` block as defined below. @@ -111,9 +111,6 @@ func NewHciCluster(ctx *pulumi.Context, return nil, errors.New("missing one or more required arguments") } - if args.ClientId == nil { - return nil, errors.New("invalid value for required argument 'ClientId'") - } if args.ResourceGroupName == nil { return nil, errors.New("invalid value for required argument 'ResourceGroupName'") } @@ -142,7 +139,7 @@ func GetHciCluster(ctx *pulumi.Context, type hciClusterState struct { // The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. AutomanageConfigurationId *string `pulumi:"automanageConfigurationId"` - // The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + // The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. ClientId *string `pulumi:"clientId"` // An immutable UUID for the Azure Stack HCI Cluster. CloudId *string `pulumi:"cloudId"` @@ -169,7 +166,7 @@ type hciClusterState struct { type HciClusterState struct { // The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. AutomanageConfigurationId pulumi.StringPtrInput - // The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + // The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. ClientId pulumi.StringPtrInput // An immutable UUID for the Azure Stack HCI Cluster. CloudId pulumi.StringPtrInput @@ -200,8 +197,8 @@ func (HciClusterState) ElementType() reflect.Type { type hciClusterArgs struct { // The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. AutomanageConfigurationId *string `pulumi:"automanageConfigurationId"` - // The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. - ClientId string `pulumi:"clientId"` + // The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + ClientId *string `pulumi:"clientId"` // An `identity` block as defined below. Identity *HciClusterIdentity `pulumi:"identity"` // The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created. @@ -222,8 +219,8 @@ type hciClusterArgs struct { type HciClusterArgs struct { // The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. AutomanageConfigurationId pulumi.StringPtrInput - // The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. - ClientId pulumi.StringInput + // The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + ClientId pulumi.StringPtrInput // An `identity` block as defined below. Identity HciClusterIdentityPtrInput // The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created. @@ -332,9 +329,9 @@ func (o HciClusterOutput) AutomanageConfigurationId() pulumi.StringPtrOutput { return o.ApplyT(func(v *HciCluster) pulumi.StringPtrOutput { return v.AutomanageConfigurationId }).(pulumi.StringPtrOutput) } -// The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. -func (o HciClusterOutput) ClientId() pulumi.StringOutput { - return o.ApplyT(func(v *HciCluster) pulumi.StringOutput { return v.ClientId }).(pulumi.StringOutput) +// The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. +func (o HciClusterOutput) ClientId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *HciCluster) pulumi.StringPtrOutput { return v.ClientId }).(pulumi.StringPtrOutput) } // An immutable UUID for the Azure Stack HCI Cluster. diff --git a/sdk/go/azure/systemcenter/getVirtualMachineManagerInventoryItems.go b/sdk/go/azure/systemcenter/getVirtualMachineManagerInventoryItems.go new file mode 100644 index 0000000000..c9f043e399 --- /dev/null +++ b/sdk/go/azure/systemcenter/getVirtualMachineManagerInventoryItems.go @@ -0,0 +1,136 @@ +// 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 systemcenter + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/systemcenter" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := systemcenter.GetVirtualMachineManagerInventoryItems(ctx, &systemcenter.GetVirtualMachineManagerInventoryItemsArgs{ +// InventoryType: "Cloud", +// SystemCenterVirtualMachineManagerServerId: exampleAzurermSystemCenterVirtualMachineManagerServer.Id, +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +func GetVirtualMachineManagerInventoryItems(ctx *pulumi.Context, args *GetVirtualMachineManagerInventoryItemsArgs, opts ...pulumi.InvokeOption) (*GetVirtualMachineManagerInventoryItemsResult, error) { + opts = internal.PkgInvokeDefaultOpts(opts) + var rv GetVirtualMachineManagerInventoryItemsResult + err := ctx.Invoke("azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getVirtualMachineManagerInventoryItems. +type GetVirtualMachineManagerInventoryItemsArgs struct { + // The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + InventoryType string `pulumi:"inventoryType"` + // The ID of the System Center Virtual Machine Manager Server. + SystemCenterVirtualMachineManagerServerId string `pulumi:"systemCenterVirtualMachineManagerServerId"` +} + +// A collection of values returned by getVirtualMachineManagerInventoryItems. +type GetVirtualMachineManagerInventoryItemsResult struct { + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // One or more `inventoryItems` blocks as defined below. + InventoryItems []GetVirtualMachineManagerInventoryItemsInventoryItem `pulumi:"inventoryItems"` + InventoryType string `pulumi:"inventoryType"` + SystemCenterVirtualMachineManagerServerId string `pulumi:"systemCenterVirtualMachineManagerServerId"` +} + +func GetVirtualMachineManagerInventoryItemsOutput(ctx *pulumi.Context, args GetVirtualMachineManagerInventoryItemsOutputArgs, opts ...pulumi.InvokeOption) GetVirtualMachineManagerInventoryItemsResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetVirtualMachineManagerInventoryItemsResult, error) { + args := v.(GetVirtualMachineManagerInventoryItemsArgs) + r, err := GetVirtualMachineManagerInventoryItems(ctx, &args, opts...) + var s GetVirtualMachineManagerInventoryItemsResult + if r != nil { + s = *r + } + return s, err + }).(GetVirtualMachineManagerInventoryItemsResultOutput) +} + +// A collection of arguments for invoking getVirtualMachineManagerInventoryItems. +type GetVirtualMachineManagerInventoryItemsOutputArgs struct { + // The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + InventoryType pulumi.StringInput `pulumi:"inventoryType"` + // The ID of the System Center Virtual Machine Manager Server. + SystemCenterVirtualMachineManagerServerId pulumi.StringInput `pulumi:"systemCenterVirtualMachineManagerServerId"` +} + +func (GetVirtualMachineManagerInventoryItemsOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVirtualMachineManagerInventoryItemsArgs)(nil)).Elem() +} + +// A collection of values returned by getVirtualMachineManagerInventoryItems. +type GetVirtualMachineManagerInventoryItemsResultOutput struct{ *pulumi.OutputState } + +func (GetVirtualMachineManagerInventoryItemsResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVirtualMachineManagerInventoryItemsResult)(nil)).Elem() +} + +func (o GetVirtualMachineManagerInventoryItemsResultOutput) ToGetVirtualMachineManagerInventoryItemsResultOutput() GetVirtualMachineManagerInventoryItemsResultOutput { + return o +} + +func (o GetVirtualMachineManagerInventoryItemsResultOutput) ToGetVirtualMachineManagerInventoryItemsResultOutputWithContext(ctx context.Context) GetVirtualMachineManagerInventoryItemsResultOutput { + return o +} + +// The provider-assigned unique ID for this managed resource. +func (o GetVirtualMachineManagerInventoryItemsResultOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetVirtualMachineManagerInventoryItemsResult) string { return v.Id }).(pulumi.StringOutput) +} + +// One or more `inventoryItems` blocks as defined below. +func (o GetVirtualMachineManagerInventoryItemsResultOutput) InventoryItems() GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput { + return o.ApplyT(func(v GetVirtualMachineManagerInventoryItemsResult) []GetVirtualMachineManagerInventoryItemsInventoryItem { + return v.InventoryItems + }).(GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput) +} + +func (o GetVirtualMachineManagerInventoryItemsResultOutput) InventoryType() pulumi.StringOutput { + return o.ApplyT(func(v GetVirtualMachineManagerInventoryItemsResult) string { return v.InventoryType }).(pulumi.StringOutput) +} + +func (o GetVirtualMachineManagerInventoryItemsResultOutput) SystemCenterVirtualMachineManagerServerId() pulumi.StringOutput { + return o.ApplyT(func(v GetVirtualMachineManagerInventoryItemsResult) string { + return v.SystemCenterVirtualMachineManagerServerId + }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetVirtualMachineManagerInventoryItemsResultOutput{}) +} diff --git a/sdk/go/azure/systemcenter/pulumiTypes.go b/sdk/go/azure/systemcenter/pulumiTypes.go new file mode 100644 index 0000000000..d668e57bd9 --- /dev/null +++ b/sdk/go/azure/systemcenter/pulumiTypes.go @@ -0,0 +1,136 @@ +// 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 systemcenter + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = internal.GetEnvOrDefault + +type GetVirtualMachineManagerInventoryItemsInventoryItem struct { + // The ID of the System Center Virtual Machine Manager Inventory Item. + Id string `pulumi:"id"` + // The name of the System Center Virtual Machine Manager Inventory Item. + Name string `pulumi:"name"` + // The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + Uuid string `pulumi:"uuid"` +} + +// GetVirtualMachineManagerInventoryItemsInventoryItemInput is an input type that accepts GetVirtualMachineManagerInventoryItemsInventoryItemArgs and GetVirtualMachineManagerInventoryItemsInventoryItemOutput values. +// You can construct a concrete instance of `GetVirtualMachineManagerInventoryItemsInventoryItemInput` via: +// +// GetVirtualMachineManagerInventoryItemsInventoryItemArgs{...} +type GetVirtualMachineManagerInventoryItemsInventoryItemInput interface { + pulumi.Input + + ToGetVirtualMachineManagerInventoryItemsInventoryItemOutput() GetVirtualMachineManagerInventoryItemsInventoryItemOutput + ToGetVirtualMachineManagerInventoryItemsInventoryItemOutputWithContext(context.Context) GetVirtualMachineManagerInventoryItemsInventoryItemOutput +} + +type GetVirtualMachineManagerInventoryItemsInventoryItemArgs struct { + // The ID of the System Center Virtual Machine Manager Inventory Item. + Id pulumi.StringInput `pulumi:"id"` + // The name of the System Center Virtual Machine Manager Inventory Item. + Name pulumi.StringInput `pulumi:"name"` + // The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + Uuid pulumi.StringInput `pulumi:"uuid"` +} + +func (GetVirtualMachineManagerInventoryItemsInventoryItemArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVirtualMachineManagerInventoryItemsInventoryItem)(nil)).Elem() +} + +func (i GetVirtualMachineManagerInventoryItemsInventoryItemArgs) ToGetVirtualMachineManagerInventoryItemsInventoryItemOutput() GetVirtualMachineManagerInventoryItemsInventoryItemOutput { + return i.ToGetVirtualMachineManagerInventoryItemsInventoryItemOutputWithContext(context.Background()) +} + +func (i GetVirtualMachineManagerInventoryItemsInventoryItemArgs) ToGetVirtualMachineManagerInventoryItemsInventoryItemOutputWithContext(ctx context.Context) GetVirtualMachineManagerInventoryItemsInventoryItemOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVirtualMachineManagerInventoryItemsInventoryItemOutput) +} + +// GetVirtualMachineManagerInventoryItemsInventoryItemArrayInput is an input type that accepts GetVirtualMachineManagerInventoryItemsInventoryItemArray and GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput values. +// You can construct a concrete instance of `GetVirtualMachineManagerInventoryItemsInventoryItemArrayInput` via: +// +// GetVirtualMachineManagerInventoryItemsInventoryItemArray{ GetVirtualMachineManagerInventoryItemsInventoryItemArgs{...} } +type GetVirtualMachineManagerInventoryItemsInventoryItemArrayInput interface { + pulumi.Input + + ToGetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput() GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput + ToGetVirtualMachineManagerInventoryItemsInventoryItemArrayOutputWithContext(context.Context) GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput +} + +type GetVirtualMachineManagerInventoryItemsInventoryItemArray []GetVirtualMachineManagerInventoryItemsInventoryItemInput + +func (GetVirtualMachineManagerInventoryItemsInventoryItemArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVirtualMachineManagerInventoryItemsInventoryItem)(nil)).Elem() +} + +func (i GetVirtualMachineManagerInventoryItemsInventoryItemArray) ToGetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput() GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput { + return i.ToGetVirtualMachineManagerInventoryItemsInventoryItemArrayOutputWithContext(context.Background()) +} + +func (i GetVirtualMachineManagerInventoryItemsInventoryItemArray) ToGetVirtualMachineManagerInventoryItemsInventoryItemArrayOutputWithContext(ctx context.Context) GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput) +} + +type GetVirtualMachineManagerInventoryItemsInventoryItemOutput struct{ *pulumi.OutputState } + +func (GetVirtualMachineManagerInventoryItemsInventoryItemOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVirtualMachineManagerInventoryItemsInventoryItem)(nil)).Elem() +} + +func (o GetVirtualMachineManagerInventoryItemsInventoryItemOutput) ToGetVirtualMachineManagerInventoryItemsInventoryItemOutput() GetVirtualMachineManagerInventoryItemsInventoryItemOutput { + return o +} + +func (o GetVirtualMachineManagerInventoryItemsInventoryItemOutput) ToGetVirtualMachineManagerInventoryItemsInventoryItemOutputWithContext(ctx context.Context) GetVirtualMachineManagerInventoryItemsInventoryItemOutput { + return o +} + +// The ID of the System Center Virtual Machine Manager Inventory Item. +func (o GetVirtualMachineManagerInventoryItemsInventoryItemOutput) Id() pulumi.StringOutput { + return o.ApplyT(func(v GetVirtualMachineManagerInventoryItemsInventoryItem) string { return v.Id }).(pulumi.StringOutput) +} + +// The name of the System Center Virtual Machine Manager Inventory Item. +func (o GetVirtualMachineManagerInventoryItemsInventoryItemOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetVirtualMachineManagerInventoryItemsInventoryItem) string { return v.Name }).(pulumi.StringOutput) +} + +// The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. +func (o GetVirtualMachineManagerInventoryItemsInventoryItemOutput) Uuid() pulumi.StringOutput { + return o.ApplyT(func(v GetVirtualMachineManagerInventoryItemsInventoryItem) string { return v.Uuid }).(pulumi.StringOutput) +} + +type GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput struct{ *pulumi.OutputState } + +func (GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVirtualMachineManagerInventoryItemsInventoryItem)(nil)).Elem() +} + +func (o GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput) ToGetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput() GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput { + return o +} + +func (o GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput) ToGetVirtualMachineManagerInventoryItemsInventoryItemArrayOutputWithContext(ctx context.Context) GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput { + return o +} + +func (o GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput) Index(i pulumi.IntInput) GetVirtualMachineManagerInventoryItemsInventoryItemOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetVirtualMachineManagerInventoryItemsInventoryItem { + return vs[0].([]GetVirtualMachineManagerInventoryItemsInventoryItem)[vs[1].(int)] + }).(GetVirtualMachineManagerInventoryItemsInventoryItemOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*GetVirtualMachineManagerInventoryItemsInventoryItemInput)(nil)).Elem(), GetVirtualMachineManagerInventoryItemsInventoryItemArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetVirtualMachineManagerInventoryItemsInventoryItemArrayInput)(nil)).Elem(), GetVirtualMachineManagerInventoryItemsInventoryItemArray{}) + pulumi.RegisterOutputType(GetVirtualMachineManagerInventoryItemsInventoryItemOutput{}) + pulumi.RegisterOutputType(GetVirtualMachineManagerInventoryItemsInventoryItemArrayOutput{}) +} diff --git a/sdk/go/azure/workloadssap/discoveryVirtualInstance.go b/sdk/go/azure/workloadssap/discoveryVirtualInstance.go new file mode 100644 index 0000000000..7a35652bb9 --- /dev/null +++ b/sdk/go/azure/workloadssap/discoveryVirtualInstance.go @@ -0,0 +1,421 @@ +// 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 workloadssap + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Manages an SAP Discovery Virtual Instance. +// +// > **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace "Microsoft.Workloads"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace "Microsoft.Workloads" --query "registrationState"`. Once this outputs "Registered" the Resource Provider is available for use. +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core" +// "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/workloadssap" +// "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-sapvis"), +// Location: pulumi.String("West Europe"), +// }) +// if err != nil { +// return err +// } +// _, err = workloadssap.NewDiscoveryVirtualInstance(ctx, "example", &workloadssap.DiscoveryVirtualInstanceArgs{ +// Name: pulumi.String("X01"), +// ResourceGroupName: example.Name, +// Location: example.Location, +// Environment: pulumi.String("NonProd"), +// SapProduct: pulumi.String("S4HANA"), +// CentralServerVirtualMachineId: pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1"), +// ManagedStorageAccountName: pulumi.String("managedsa"), +// Identity: &workloadssap.DiscoveryVirtualInstanceIdentityArgs{ +// Type: pulumi.String("UserAssigned"), +// IdentityIds: pulumi.StringArray{ +// pulumi.String("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// SAP Discovery Virtual Instances can be imported using the `resource id`, e.g. +// +// ```sh +// $ pulumi import azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1 +// ``` +type DiscoveryVirtualInstance struct { + pulumi.CustomResourceState + + // The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + CentralServerVirtualMachineId pulumi.StringOutput `pulumi:"centralServerVirtualMachineId"` + // The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + Environment pulumi.StringOutput `pulumi:"environment"` + // An `identity` block as defined below. + Identity DiscoveryVirtualInstanceIdentityPtrOutput `pulumi:"identity"` + // The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + Location pulumi.StringOutput `pulumi:"location"` + // The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + ManagedResourceGroupName pulumi.StringPtrOutput `pulumi:"managedResourceGroupName"` + // The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + ManagedStorageAccountName pulumi.StringPtrOutput `pulumi:"managedStorageAccountName"` + // Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + Name pulumi.StringOutput `pulumi:"name"` + // The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringOutput `pulumi:"resourceGroupName"` + // The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + SapProduct pulumi.StringOutput `pulumi:"sapProduct"` + // A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + Tags pulumi.StringMapOutput `pulumi:"tags"` +} + +// NewDiscoveryVirtualInstance registers a new resource with the given unique name, arguments, and options. +func NewDiscoveryVirtualInstance(ctx *pulumi.Context, + name string, args *DiscoveryVirtualInstanceArgs, opts ...pulumi.ResourceOption) (*DiscoveryVirtualInstance, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.CentralServerVirtualMachineId == nil { + return nil, errors.New("invalid value for required argument 'CentralServerVirtualMachineId'") + } + if args.Environment == nil { + return nil, errors.New("invalid value for required argument 'Environment'") + } + if args.ResourceGroupName == nil { + return nil, errors.New("invalid value for required argument 'ResourceGroupName'") + } + if args.SapProduct == nil { + return nil, errors.New("invalid value for required argument 'SapProduct'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource DiscoveryVirtualInstance + err := ctx.RegisterResource("azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDiscoveryVirtualInstance gets an existing DiscoveryVirtualInstance 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 GetDiscoveryVirtualInstance(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DiscoveryVirtualInstanceState, opts ...pulumi.ResourceOption) (*DiscoveryVirtualInstance, error) { + var resource DiscoveryVirtualInstance + err := ctx.ReadResource("azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DiscoveryVirtualInstance resources. +type discoveryVirtualInstanceState struct { + // The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + CentralServerVirtualMachineId *string `pulumi:"centralServerVirtualMachineId"` + // The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + Environment *string `pulumi:"environment"` + // An `identity` block as defined below. + Identity *DiscoveryVirtualInstanceIdentity `pulumi:"identity"` + // The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + ManagedResourceGroupName *string `pulumi:"managedResourceGroupName"` + // The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + ManagedStorageAccountName *string `pulumi:"managedStorageAccountName"` + // Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + ResourceGroupName *string `pulumi:"resourceGroupName"` + // The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + SapProduct *string `pulumi:"sapProduct"` + // A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + Tags map[string]string `pulumi:"tags"` +} + +type DiscoveryVirtualInstanceState struct { + // The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + CentralServerVirtualMachineId pulumi.StringPtrInput + // The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + Environment pulumi.StringPtrInput + // An `identity` block as defined below. + Identity DiscoveryVirtualInstanceIdentityPtrInput + // The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + ManagedResourceGroupName pulumi.StringPtrInput + // The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + ManagedStorageAccountName pulumi.StringPtrInput + // Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringPtrInput + // The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + SapProduct pulumi.StringPtrInput + // A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + Tags pulumi.StringMapInput +} + +func (DiscoveryVirtualInstanceState) ElementType() reflect.Type { + return reflect.TypeOf((*discoveryVirtualInstanceState)(nil)).Elem() +} + +type discoveryVirtualInstanceArgs struct { + // The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + CentralServerVirtualMachineId string `pulumi:"centralServerVirtualMachineId"` + // The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + Environment string `pulumi:"environment"` + // An `identity` block as defined below. + Identity *DiscoveryVirtualInstanceIdentity `pulumi:"identity"` + // The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + Location *string `pulumi:"location"` + // The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + ManagedResourceGroupName *string `pulumi:"managedResourceGroupName"` + // The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + ManagedStorageAccountName *string `pulumi:"managedStorageAccountName"` + // Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + Name *string `pulumi:"name"` + // The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + ResourceGroupName string `pulumi:"resourceGroupName"` + // The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + SapProduct string `pulumi:"sapProduct"` + // A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a DiscoveryVirtualInstance resource. +type DiscoveryVirtualInstanceArgs struct { + // The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + CentralServerVirtualMachineId pulumi.StringInput + // The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + Environment pulumi.StringInput + // An `identity` block as defined below. + Identity DiscoveryVirtualInstanceIdentityPtrInput + // The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + Location pulumi.StringPtrInput + // The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + ManagedResourceGroupName pulumi.StringPtrInput + // The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + ManagedStorageAccountName pulumi.StringPtrInput + // Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + Name pulumi.StringPtrInput + // The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + ResourceGroupName pulumi.StringInput + // The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + SapProduct pulumi.StringInput + // A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + Tags pulumi.StringMapInput +} + +func (DiscoveryVirtualInstanceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*discoveryVirtualInstanceArgs)(nil)).Elem() +} + +type DiscoveryVirtualInstanceInput interface { + pulumi.Input + + ToDiscoveryVirtualInstanceOutput() DiscoveryVirtualInstanceOutput + ToDiscoveryVirtualInstanceOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceOutput +} + +func (*DiscoveryVirtualInstance) ElementType() reflect.Type { + return reflect.TypeOf((**DiscoveryVirtualInstance)(nil)).Elem() +} + +func (i *DiscoveryVirtualInstance) ToDiscoveryVirtualInstanceOutput() DiscoveryVirtualInstanceOutput { + return i.ToDiscoveryVirtualInstanceOutputWithContext(context.Background()) +} + +func (i *DiscoveryVirtualInstance) ToDiscoveryVirtualInstanceOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiscoveryVirtualInstanceOutput) +} + +// DiscoveryVirtualInstanceArrayInput is an input type that accepts DiscoveryVirtualInstanceArray and DiscoveryVirtualInstanceArrayOutput values. +// You can construct a concrete instance of `DiscoveryVirtualInstanceArrayInput` via: +// +// DiscoveryVirtualInstanceArray{ DiscoveryVirtualInstanceArgs{...} } +type DiscoveryVirtualInstanceArrayInput interface { + pulumi.Input + + ToDiscoveryVirtualInstanceArrayOutput() DiscoveryVirtualInstanceArrayOutput + ToDiscoveryVirtualInstanceArrayOutputWithContext(context.Context) DiscoveryVirtualInstanceArrayOutput +} + +type DiscoveryVirtualInstanceArray []DiscoveryVirtualInstanceInput + +func (DiscoveryVirtualInstanceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DiscoveryVirtualInstance)(nil)).Elem() +} + +func (i DiscoveryVirtualInstanceArray) ToDiscoveryVirtualInstanceArrayOutput() DiscoveryVirtualInstanceArrayOutput { + return i.ToDiscoveryVirtualInstanceArrayOutputWithContext(context.Background()) +} + +func (i DiscoveryVirtualInstanceArray) ToDiscoveryVirtualInstanceArrayOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiscoveryVirtualInstanceArrayOutput) +} + +// DiscoveryVirtualInstanceMapInput is an input type that accepts DiscoveryVirtualInstanceMap and DiscoveryVirtualInstanceMapOutput values. +// You can construct a concrete instance of `DiscoveryVirtualInstanceMapInput` via: +// +// DiscoveryVirtualInstanceMap{ "key": DiscoveryVirtualInstanceArgs{...} } +type DiscoveryVirtualInstanceMapInput interface { + pulumi.Input + + ToDiscoveryVirtualInstanceMapOutput() DiscoveryVirtualInstanceMapOutput + ToDiscoveryVirtualInstanceMapOutputWithContext(context.Context) DiscoveryVirtualInstanceMapOutput +} + +type DiscoveryVirtualInstanceMap map[string]DiscoveryVirtualInstanceInput + +func (DiscoveryVirtualInstanceMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DiscoveryVirtualInstance)(nil)).Elem() +} + +func (i DiscoveryVirtualInstanceMap) ToDiscoveryVirtualInstanceMapOutput() DiscoveryVirtualInstanceMapOutput { + return i.ToDiscoveryVirtualInstanceMapOutputWithContext(context.Background()) +} + +func (i DiscoveryVirtualInstanceMap) ToDiscoveryVirtualInstanceMapOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiscoveryVirtualInstanceMapOutput) +} + +type DiscoveryVirtualInstanceOutput struct{ *pulumi.OutputState } + +func (DiscoveryVirtualInstanceOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DiscoveryVirtualInstance)(nil)).Elem() +} + +func (o DiscoveryVirtualInstanceOutput) ToDiscoveryVirtualInstanceOutput() DiscoveryVirtualInstanceOutput { + return o +} + +func (o DiscoveryVirtualInstanceOutput) ToDiscoveryVirtualInstanceOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceOutput { + return o +} + +// The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) CentralServerVirtualMachineId() pulumi.StringOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringOutput { return v.CentralServerVirtualMachineId }).(pulumi.StringOutput) +} + +// The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) Environment() pulumi.StringOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringOutput { return v.Environment }).(pulumi.StringOutput) +} + +// An `identity` block as defined below. +func (o DiscoveryVirtualInstanceOutput) Identity() DiscoveryVirtualInstanceIdentityPtrOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) DiscoveryVirtualInstanceIdentityPtrOutput { return v.Identity }).(DiscoveryVirtualInstanceIdentityPtrOutput) +} + +// The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) Location() pulumi.StringOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringOutput { return v.Location }).(pulumi.StringOutput) +} + +// The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) ManagedResourceGroupName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringPtrOutput { return v.ManagedResourceGroupName }).(pulumi.StringPtrOutput) +} + +// The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) ManagedStorageAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringPtrOutput { return v.ManagedStorageAccountName }).(pulumi.StringPtrOutput) +} + +// Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) ResourceGroupName() pulumi.StringOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringOutput { return v.ResourceGroupName }).(pulumi.StringOutput) +} + +// The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. +func (o DiscoveryVirtualInstanceOutput) SapProduct() pulumi.StringOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringOutput { return v.SapProduct }).(pulumi.StringOutput) +} + +// A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. +func (o DiscoveryVirtualInstanceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstance) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +type DiscoveryVirtualInstanceArrayOutput struct{ *pulumi.OutputState } + +func (DiscoveryVirtualInstanceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DiscoveryVirtualInstance)(nil)).Elem() +} + +func (o DiscoveryVirtualInstanceArrayOutput) ToDiscoveryVirtualInstanceArrayOutput() DiscoveryVirtualInstanceArrayOutput { + return o +} + +func (o DiscoveryVirtualInstanceArrayOutput) ToDiscoveryVirtualInstanceArrayOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceArrayOutput { + return o +} + +func (o DiscoveryVirtualInstanceArrayOutput) Index(i pulumi.IntInput) DiscoveryVirtualInstanceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DiscoveryVirtualInstance { + return vs[0].([]*DiscoveryVirtualInstance)[vs[1].(int)] + }).(DiscoveryVirtualInstanceOutput) +} + +type DiscoveryVirtualInstanceMapOutput struct{ *pulumi.OutputState } + +func (DiscoveryVirtualInstanceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DiscoveryVirtualInstance)(nil)).Elem() +} + +func (o DiscoveryVirtualInstanceMapOutput) ToDiscoveryVirtualInstanceMapOutput() DiscoveryVirtualInstanceMapOutput { + return o +} + +func (o DiscoveryVirtualInstanceMapOutput) ToDiscoveryVirtualInstanceMapOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceMapOutput { + return o +} + +func (o DiscoveryVirtualInstanceMapOutput) MapIndex(k pulumi.StringInput) DiscoveryVirtualInstanceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DiscoveryVirtualInstance { + return vs[0].(map[string]*DiscoveryVirtualInstance)[vs[1].(string)] + }).(DiscoveryVirtualInstanceOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DiscoveryVirtualInstanceInput)(nil)).Elem(), &DiscoveryVirtualInstance{}) + pulumi.RegisterInputType(reflect.TypeOf((*DiscoveryVirtualInstanceArrayInput)(nil)).Elem(), DiscoveryVirtualInstanceArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DiscoveryVirtualInstanceMapInput)(nil)).Elem(), DiscoveryVirtualInstanceMap{}) + pulumi.RegisterOutputType(DiscoveryVirtualInstanceOutput{}) + pulumi.RegisterOutputType(DiscoveryVirtualInstanceArrayOutput{}) + pulumi.RegisterOutputType(DiscoveryVirtualInstanceMapOutput{}) +} diff --git a/sdk/go/azure/workloadssap/init.go b/sdk/go/azure/workloadssap/init.go index 12e4baab87..84b68c593c 100644 --- a/sdk/go/azure/workloadssap/init.go +++ b/sdk/go/azure/workloadssap/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance": + r = &DiscoveryVirtualInstance{} case "azure:workloadssap/singleNodeVirtualInstance:SingleNodeVirtualInstance": r = &SingleNodeVirtualInstance{} case "azure:workloadssap/threeTierVirtualInstance:ThreeTierVirtualInstance": @@ -38,6 +40,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "azure", + "workloadssap/discoveryVirtualInstance", + &module{version}, + ) pulumi.RegisterResourceModule( "azure", "workloadssap/singleNodeVirtualInstance", diff --git a/sdk/go/azure/workloadssap/pulumiTypes.go b/sdk/go/azure/workloadssap/pulumiTypes.go index 434e48f2f7..b9b2b21d7c 100644 --- a/sdk/go/azure/workloadssap/pulumiTypes.go +++ b/sdk/go/azure/workloadssap/pulumiTypes.go @@ -13,6 +13,162 @@ import ( var _ = internal.GetEnvOrDefault +type DiscoveryVirtualInstanceIdentity struct { + // A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + IdentityIds []string `pulumi:"identityIds"` + // The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + Type string `pulumi:"type"` +} + +// DiscoveryVirtualInstanceIdentityInput is an input type that accepts DiscoveryVirtualInstanceIdentityArgs and DiscoveryVirtualInstanceIdentityOutput values. +// You can construct a concrete instance of `DiscoveryVirtualInstanceIdentityInput` via: +// +// DiscoveryVirtualInstanceIdentityArgs{...} +type DiscoveryVirtualInstanceIdentityInput interface { + pulumi.Input + + ToDiscoveryVirtualInstanceIdentityOutput() DiscoveryVirtualInstanceIdentityOutput + ToDiscoveryVirtualInstanceIdentityOutputWithContext(context.Context) DiscoveryVirtualInstanceIdentityOutput +} + +type DiscoveryVirtualInstanceIdentityArgs struct { + // A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + IdentityIds pulumi.StringArrayInput `pulumi:"identityIds"` + // The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (DiscoveryVirtualInstanceIdentityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DiscoveryVirtualInstanceIdentity)(nil)).Elem() +} + +func (i DiscoveryVirtualInstanceIdentityArgs) ToDiscoveryVirtualInstanceIdentityOutput() DiscoveryVirtualInstanceIdentityOutput { + return i.ToDiscoveryVirtualInstanceIdentityOutputWithContext(context.Background()) +} + +func (i DiscoveryVirtualInstanceIdentityArgs) ToDiscoveryVirtualInstanceIdentityOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceIdentityOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiscoveryVirtualInstanceIdentityOutput) +} + +func (i DiscoveryVirtualInstanceIdentityArgs) ToDiscoveryVirtualInstanceIdentityPtrOutput() DiscoveryVirtualInstanceIdentityPtrOutput { + return i.ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(context.Background()) +} + +func (i DiscoveryVirtualInstanceIdentityArgs) ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiscoveryVirtualInstanceIdentityOutput).ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(ctx) +} + +// DiscoveryVirtualInstanceIdentityPtrInput is an input type that accepts DiscoveryVirtualInstanceIdentityArgs, DiscoveryVirtualInstanceIdentityPtr and DiscoveryVirtualInstanceIdentityPtrOutput values. +// You can construct a concrete instance of `DiscoveryVirtualInstanceIdentityPtrInput` via: +// +// DiscoveryVirtualInstanceIdentityArgs{...} +// +// or: +// +// nil +type DiscoveryVirtualInstanceIdentityPtrInput interface { + pulumi.Input + + ToDiscoveryVirtualInstanceIdentityPtrOutput() DiscoveryVirtualInstanceIdentityPtrOutput + ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(context.Context) DiscoveryVirtualInstanceIdentityPtrOutput +} + +type discoveryVirtualInstanceIdentityPtrType DiscoveryVirtualInstanceIdentityArgs + +func DiscoveryVirtualInstanceIdentityPtr(v *DiscoveryVirtualInstanceIdentityArgs) DiscoveryVirtualInstanceIdentityPtrInput { + return (*discoveryVirtualInstanceIdentityPtrType)(v) +} + +func (*discoveryVirtualInstanceIdentityPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DiscoveryVirtualInstanceIdentity)(nil)).Elem() +} + +func (i *discoveryVirtualInstanceIdentityPtrType) ToDiscoveryVirtualInstanceIdentityPtrOutput() DiscoveryVirtualInstanceIdentityPtrOutput { + return i.ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(context.Background()) +} + +func (i *discoveryVirtualInstanceIdentityPtrType) ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceIdentityPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DiscoveryVirtualInstanceIdentityPtrOutput) +} + +type DiscoveryVirtualInstanceIdentityOutput struct{ *pulumi.OutputState } + +func (DiscoveryVirtualInstanceIdentityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DiscoveryVirtualInstanceIdentity)(nil)).Elem() +} + +func (o DiscoveryVirtualInstanceIdentityOutput) ToDiscoveryVirtualInstanceIdentityOutput() DiscoveryVirtualInstanceIdentityOutput { + return o +} + +func (o DiscoveryVirtualInstanceIdentityOutput) ToDiscoveryVirtualInstanceIdentityOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceIdentityOutput { + return o +} + +func (o DiscoveryVirtualInstanceIdentityOutput) ToDiscoveryVirtualInstanceIdentityPtrOutput() DiscoveryVirtualInstanceIdentityPtrOutput { + return o.ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(context.Background()) +} + +func (o DiscoveryVirtualInstanceIdentityOutput) ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceIdentityPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DiscoveryVirtualInstanceIdentity) *DiscoveryVirtualInstanceIdentity { + return &v + }).(DiscoveryVirtualInstanceIdentityPtrOutput) +} + +// A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. +func (o DiscoveryVirtualInstanceIdentityOutput) IdentityIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v DiscoveryVirtualInstanceIdentity) []string { return v.IdentityIds }).(pulumi.StringArrayOutput) +} + +// The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. +func (o DiscoveryVirtualInstanceIdentityOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v DiscoveryVirtualInstanceIdentity) string { return v.Type }).(pulumi.StringOutput) +} + +type DiscoveryVirtualInstanceIdentityPtrOutput struct{ *pulumi.OutputState } + +func (DiscoveryVirtualInstanceIdentityPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DiscoveryVirtualInstanceIdentity)(nil)).Elem() +} + +func (o DiscoveryVirtualInstanceIdentityPtrOutput) ToDiscoveryVirtualInstanceIdentityPtrOutput() DiscoveryVirtualInstanceIdentityPtrOutput { + return o +} + +func (o DiscoveryVirtualInstanceIdentityPtrOutput) ToDiscoveryVirtualInstanceIdentityPtrOutputWithContext(ctx context.Context) DiscoveryVirtualInstanceIdentityPtrOutput { + return o +} + +func (o DiscoveryVirtualInstanceIdentityPtrOutput) Elem() DiscoveryVirtualInstanceIdentityOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstanceIdentity) DiscoveryVirtualInstanceIdentity { + if v != nil { + return *v + } + var ret DiscoveryVirtualInstanceIdentity + return ret + }).(DiscoveryVirtualInstanceIdentityOutput) +} + +// A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. +func (o DiscoveryVirtualInstanceIdentityPtrOutput) IdentityIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstanceIdentity) []string { + if v == nil { + return nil + } + return v.IdentityIds + }).(pulumi.StringArrayOutput) +} + +// The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. +func (o DiscoveryVirtualInstanceIdentityPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DiscoveryVirtualInstanceIdentity) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + type SingleNodeVirtualInstanceIdentity struct { // A list of User Assigned Managed Identity IDs to be assigned to this SAP Single Node Virtual Instance. IdentityIds []string `pulumi:"identityIds"` @@ -6552,6 +6708,8 @@ func (o ThreeTierVirtualInstanceThreeTierConfigurationTransportCreateAndMountPtr } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DiscoveryVirtualInstanceIdentityInput)(nil)).Elem(), DiscoveryVirtualInstanceIdentityArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*DiscoveryVirtualInstanceIdentityPtrInput)(nil)).Elem(), DiscoveryVirtualInstanceIdentityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SingleNodeVirtualInstanceIdentityInput)(nil)).Elem(), SingleNodeVirtualInstanceIdentityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SingleNodeVirtualInstanceIdentityPtrInput)(nil)).Elem(), SingleNodeVirtualInstanceIdentityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SingleNodeVirtualInstanceSingleServerConfigurationInput)(nil)).Elem(), SingleNodeVirtualInstanceSingleServerConfigurationArgs{}) @@ -6626,6 +6784,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ThreeTierVirtualInstanceThreeTierConfigurationResourceNamesSharedStoragePtrInput)(nil)).Elem(), ThreeTierVirtualInstanceThreeTierConfigurationResourceNamesSharedStorageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ThreeTierVirtualInstanceThreeTierConfigurationTransportCreateAndMountInput)(nil)).Elem(), ThreeTierVirtualInstanceThreeTierConfigurationTransportCreateAndMountArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ThreeTierVirtualInstanceThreeTierConfigurationTransportCreateAndMountPtrInput)(nil)).Elem(), ThreeTierVirtualInstanceThreeTierConfigurationTransportCreateAndMountArgs{}) + pulumi.RegisterOutputType(DiscoveryVirtualInstanceIdentityOutput{}) + pulumi.RegisterOutputType(DiscoveryVirtualInstanceIdentityPtrOutput{}) pulumi.RegisterOutputType(SingleNodeVirtualInstanceIdentityOutput{}) pulumi.RegisterOutputType(SingleNodeVirtualInstanceIdentityPtrOutput{}) pulumi.RegisterOutputType(SingleNodeVirtualInstanceSingleServerConfigurationOutput{}) diff --git a/sdk/java/src/main/java/com/pulumi/azure/appinsights/SmartDetectionRule.java b/sdk/java/src/main/java/com/pulumi/azure/appinsights/SmartDetectionRule.java index 6124f4e2e0..611d672e55 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/appinsights/SmartDetectionRule.java +++ b/sdk/java/src/main/java/com/pulumi/azure/appinsights/SmartDetectionRule.java @@ -75,7 +75,7 @@ * Application Insights Smart Detection Rules can be imported using the `resource id`, e.g. * * ```sh - * $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/smartDetectionRule/myrule1 + * $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/proactiveDetectionConfig/myrule1 * ``` * */ diff --git a/sdk/java/src/main/java/com/pulumi/azure/appservice/StaticWebAppFunctionAppRegistration.java b/sdk/java/src/main/java/com/pulumi/azure/appservice/StaticWebAppFunctionAppRegistration.java new file mode 100644 index 0000000000..c6673883b4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/appservice/StaticWebAppFunctionAppRegistration.java @@ -0,0 +1,199 @@ +// *** 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.appservice; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.appservice.StaticWebAppFunctionAppRegistrationArgs; +import com.pulumi.azure.appservice.inputs.StaticWebAppFunctionAppRegistrationState; +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 an App Service Static Web App Function App Registration. + * + * > **NOTE:** This resource registers the specified Function App to the `Production` build of the Static Web App. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * 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.appservice.StaticWebApp; + * import com.pulumi.azure.appservice.StaticWebAppArgs; + * import com.pulumi.azure.storage.Account; + * import com.pulumi.azure.storage.AccountArgs; + * import com.pulumi.azure.appservice.ServicePlan; + * import com.pulumi.azure.appservice.ServicePlanArgs; + * import com.pulumi.azure.appservice.LinuxFunctionApp; + * import com.pulumi.azure.appservice.LinuxFunctionAppArgs; + * import com.pulumi.azure.appservice.inputs.LinuxFunctionAppSiteConfigArgs; + * import com.pulumi.azure.appservice.StaticWebAppFunctionAppRegistration; + * import com.pulumi.azure.appservice.StaticWebAppFunctionAppRegistrationArgs; + * 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 exampleStaticWebApp = new StaticWebApp("exampleStaticWebApp", StaticWebAppArgs.builder() + * .name("example") + * .resourceGroupName(example.name()) + * .location(example.location()) + * .build()); + * + * var exampleAccount = new Account("exampleAccount", AccountArgs.builder() + * .name("examplesstorageacc") + * .resourceGroupName(example.name()) + * .location(example.location()) + * .accountTier("Standard") + * .accountReplicationType("LRS") + * .build()); + * + * var exampleServicePlan = new ServicePlan("exampleServicePlan", ServicePlanArgs.builder() + * .name("example-service-plan") + * .location(example.location()) + * .resourceGroupName(example.name()) + * .osType("Linux") + * .skuName("S1") + * .build()); + * + * var exampleLinuxFunctionApp = new LinuxFunctionApp("exampleLinuxFunctionApp", LinuxFunctionAppArgs.builder() + * .name("example-function-app") + * .location(example.location()) + * .resourceGroupName(example.name()) + * .servicePlanId(exampleServicePlan.id()) + * .storageAccountName(exampleAccount.name()) + * .storageAccountAccessKey(exampleAccount.primaryAccessKey()) + * .siteConfig() + * .build()); + * + * var exampleStaticWebAppFunctionAppRegistration = new StaticWebAppFunctionAppRegistration("exampleStaticWebAppFunctionAppRegistration", StaticWebAppFunctionAppRegistrationArgs.builder() + * .staticWebAppId(exampleStaticWebApp.id()) + * .functionAppId(exampleLinuxFunctionApp.id()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Static Web App Function App Registration can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/userProvidedFunctionApps/myFunctionApp + * ``` + * + */ +@ResourceType(type="azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration") +public class StaticWebAppFunctionAppRegistration extends com.pulumi.resources.CustomResource { + /** + * The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + */ + @Export(name="functionAppId", refs={String.class}, tree="[0]") + private Output functionAppId; + + /** + * @return The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + */ + public Output functionAppId() { + return this.functionAppId; + } + /** + * The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + */ + @Export(name="staticWebAppId", refs={String.class}, tree="[0]") + private Output staticWebAppId; + + /** + * @return The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + */ + public Output staticWebAppId() { + return this.staticWebAppId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public StaticWebAppFunctionAppRegistration(String name) { + this(name, StaticWebAppFunctionAppRegistrationArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public StaticWebAppFunctionAppRegistration(String name, StaticWebAppFunctionAppRegistrationArgs 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 StaticWebAppFunctionAppRegistration(String name, StaticWebAppFunctionAppRegistrationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration", name, args == null ? StaticWebAppFunctionAppRegistrationArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private StaticWebAppFunctionAppRegistration(String name, Output id, @Nullable StaticWebAppFunctionAppRegistrationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration", name, state, makeResourceOptions(options, id)); + } + + 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 StaticWebAppFunctionAppRegistration get(String name, Output id, @Nullable StaticWebAppFunctionAppRegistrationState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new StaticWebAppFunctionAppRegistration(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/appservice/StaticWebAppFunctionAppRegistrationArgs.java b/sdk/java/src/main/java/com/pulumi/azure/appservice/StaticWebAppFunctionAppRegistrationArgs.java new file mode 100644 index 0000000000..12af1ddd94 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/appservice/StaticWebAppFunctionAppRegistrationArgs.java @@ -0,0 +1,141 @@ +// *** 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.appservice; + +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 StaticWebAppFunctionAppRegistrationArgs extends com.pulumi.resources.ResourceArgs { + + public static final StaticWebAppFunctionAppRegistrationArgs Empty = new StaticWebAppFunctionAppRegistrationArgs(); + + /** + * The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + */ + @Import(name="functionAppId", required=true) + private Output functionAppId; + + /** + * @return The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + */ + public Output functionAppId() { + return this.functionAppId; + } + + /** + * The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + */ + @Import(name="staticWebAppId", required=true) + private Output staticWebAppId; + + /** + * @return The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + */ + public Output staticWebAppId() { + return this.staticWebAppId; + } + + private StaticWebAppFunctionAppRegistrationArgs() {} + + private StaticWebAppFunctionAppRegistrationArgs(StaticWebAppFunctionAppRegistrationArgs $) { + this.functionAppId = $.functionAppId; + this.staticWebAppId = $.staticWebAppId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StaticWebAppFunctionAppRegistrationArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StaticWebAppFunctionAppRegistrationArgs $; + + public Builder() { + $ = new StaticWebAppFunctionAppRegistrationArgs(); + } + + public Builder(StaticWebAppFunctionAppRegistrationArgs defaults) { + $ = new StaticWebAppFunctionAppRegistrationArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param functionAppId The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + * @return builder + * + */ + public Builder functionAppId(Output functionAppId) { + $.functionAppId = functionAppId; + return this; + } + + /** + * @param functionAppId The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + * @return builder + * + */ + public Builder functionAppId(String functionAppId) { + return functionAppId(Output.of(functionAppId)); + } + + /** + * @param staticWebAppId The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder staticWebAppId(Output staticWebAppId) { + $.staticWebAppId = staticWebAppId; + return this; + } + + /** + * @param staticWebAppId The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder staticWebAppId(String staticWebAppId) { + return staticWebAppId(Output.of(staticWebAppId)); + } + + public StaticWebAppFunctionAppRegistrationArgs build() { + if ($.functionAppId == null) { + throw new MissingRequiredPropertyException("StaticWebAppFunctionAppRegistrationArgs", "functionAppId"); + } + if ($.staticWebAppId == null) { + throw new MissingRequiredPropertyException("StaticWebAppFunctionAppRegistrationArgs", "staticWebAppId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/appservice/inputs/StaticWebAppFunctionAppRegistrationState.java b/sdk/java/src/main/java/com/pulumi/azure/appservice/inputs/StaticWebAppFunctionAppRegistrationState.java new file mode 100644 index 0000000000..86857e32d2 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/appservice/inputs/StaticWebAppFunctionAppRegistrationState.java @@ -0,0 +1,136 @@ +// *** 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.appservice.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 StaticWebAppFunctionAppRegistrationState extends com.pulumi.resources.ResourceArgs { + + public static final StaticWebAppFunctionAppRegistrationState Empty = new StaticWebAppFunctionAppRegistrationState(); + + /** + * The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + */ + @Import(name="functionAppId") + private @Nullable Output functionAppId; + + /** + * @return The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + */ + public Optional> functionAppId() { + return Optional.ofNullable(this.functionAppId); + } + + /** + * The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + */ + @Import(name="staticWebAppId") + private @Nullable Output staticWebAppId; + + /** + * @return The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + */ + public Optional> staticWebAppId() { + return Optional.ofNullable(this.staticWebAppId); + } + + private StaticWebAppFunctionAppRegistrationState() {} + + private StaticWebAppFunctionAppRegistrationState(StaticWebAppFunctionAppRegistrationState $) { + this.functionAppId = $.functionAppId; + this.staticWebAppId = $.staticWebAppId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(StaticWebAppFunctionAppRegistrationState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private StaticWebAppFunctionAppRegistrationState $; + + public Builder() { + $ = new StaticWebAppFunctionAppRegistrationState(); + } + + public Builder(StaticWebAppFunctionAppRegistrationState defaults) { + $ = new StaticWebAppFunctionAppRegistrationState(Objects.requireNonNull(defaults)); + } + + /** + * @param functionAppId The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + * @return builder + * + */ + public Builder functionAppId(@Nullable Output functionAppId) { + $.functionAppId = functionAppId; + return this; + } + + /** + * @param functionAppId The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + * + * @return builder + * + */ + public Builder functionAppId(String functionAppId) { + return functionAppId(Output.of(functionAppId)); + } + + /** + * @param staticWebAppId The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder staticWebAppId(@Nullable Output staticWebAppId) { + $.staticWebAppId = staticWebAppId; + return this; + } + + /** + * @param staticWebAppId The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder staticWebAppId(String staticWebAppId) { + return staticWebAppId(Output.of(staticWebAppId)); + } + + public StaticWebAppFunctionAppRegistrationState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/bot/ChannelsRegistration.java b/sdk/java/src/main/java/com/pulumi/azure/bot/ChannelsRegistration.java index 0a6088c7c2..f36abae2f2 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/bot/ChannelsRegistration.java +++ b/sdk/java/src/main/java/com/pulumi/azure/bot/ChannelsRegistration.java @@ -20,6 +20,8 @@ /** * Manages a Bot Channels Registration. * + * > **Note:** Bot Channels Registration has been [deprecated by Azure](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-resources-faq-azure?view=azure-bot-service-4.0#why-are-web-app-bot-and-bot-channel-registration-being-deprecated). New implementations should use the `azure.bot.ServiceAzureBot` resource. + * * ## Example Usage * * <!--Start PulumiCodeChooser --> diff --git a/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBot.java b/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBot.java index 60583fe9cd..aeee3d69bb 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBot.java +++ b/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBot.java @@ -104,6 +104,24 @@ */ @ResourceType(type="azure:bot/serviceAzureBot:ServiceAzureBot") public class ServiceAzureBot extends com.pulumi.resources.CustomResource { + /** + * The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + */ + @Export(name="cmkKeyVaultKeyUrl", refs={String.class}, tree="[0]") + private Output cmkKeyVaultKeyUrl; + + /** + * @return The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + */ + public Output> cmkKeyVaultKeyUrl() { + return Codegen.optional(this.cmkKeyVaultKeyUrl); + } /** * The Application Insights API Key to associate with this Azure Bot Service. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBotArgs.java b/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBotArgs.java index 83b84bc1ff..23499d1c52 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBotArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/bot/ServiceAzureBotArgs.java @@ -19,6 +19,25 @@ public final class ServiceAzureBotArgs extends com.pulumi.resources.ResourceArgs public static final ServiceAzureBotArgs Empty = new ServiceAzureBotArgs(); + /** + * The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + */ + @Import(name="cmkKeyVaultKeyUrl") + private @Nullable Output cmkKeyVaultKeyUrl; + + /** + * @return The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + */ + public Optional> cmkKeyVaultKeyUrl() { + return Optional.ofNullable(this.cmkKeyVaultKeyUrl); + } + /** * The Application Insights API Key to associate with this Azure Bot Service. * @@ -322,6 +341,7 @@ public Optional>> tags() { private ServiceAzureBotArgs() {} private ServiceAzureBotArgs(ServiceAzureBotArgs $) { + this.cmkKeyVaultKeyUrl = $.cmkKeyVaultKeyUrl; this.developerAppInsightsApiKey = $.developerAppInsightsApiKey; this.developerAppInsightsApplicationId = $.developerAppInsightsApplicationId; this.developerAppInsightsKey = $.developerAppInsightsKey; @@ -362,6 +382,31 @@ public Builder(ServiceAzureBotArgs defaults) { $ = new ServiceAzureBotArgs(Objects.requireNonNull(defaults)); } + /** + * @param cmkKeyVaultKeyUrl The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + * @return builder + * + */ + public Builder cmkKeyVaultKeyUrl(@Nullable Output cmkKeyVaultKeyUrl) { + $.cmkKeyVaultKeyUrl = cmkKeyVaultKeyUrl; + return this; + } + + /** + * @param cmkKeyVaultKeyUrl The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + * @return builder + * + */ + public Builder cmkKeyVaultKeyUrl(String cmkKeyVaultKeyUrl) { + return cmkKeyVaultKeyUrl(Output.of(cmkKeyVaultKeyUrl)); + } + /** * @param developerAppInsightsApiKey The Application Insights API Key to associate with this Azure Bot Service. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/bot/inputs/ServiceAzureBotState.java b/sdk/java/src/main/java/com/pulumi/azure/bot/inputs/ServiceAzureBotState.java index a0c81b12a2..ca8b1bb240 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/bot/inputs/ServiceAzureBotState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/bot/inputs/ServiceAzureBotState.java @@ -18,6 +18,25 @@ public final class ServiceAzureBotState extends com.pulumi.resources.ResourceArg public static final ServiceAzureBotState Empty = new ServiceAzureBotState(); + /** + * The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + */ + @Import(name="cmkKeyVaultKeyUrl") + private @Nullable Output cmkKeyVaultKeyUrl; + + /** + * @return The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + */ + public Optional> cmkKeyVaultKeyUrl() { + return Optional.ofNullable(this.cmkKeyVaultKeyUrl); + } + /** * The Application Insights API Key to associate with this Azure Bot Service. * @@ -321,6 +340,7 @@ public Optional>> tags() { private ServiceAzureBotState() {} private ServiceAzureBotState(ServiceAzureBotState $) { + this.cmkKeyVaultKeyUrl = $.cmkKeyVaultKeyUrl; this.developerAppInsightsApiKey = $.developerAppInsightsApiKey; this.developerAppInsightsApplicationId = $.developerAppInsightsApplicationId; this.developerAppInsightsKey = $.developerAppInsightsKey; @@ -361,6 +381,31 @@ public Builder(ServiceAzureBotState defaults) { $ = new ServiceAzureBotState(Objects.requireNonNull(defaults)); } + /** + * @param cmkKeyVaultKeyUrl The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + * @return builder + * + */ + public Builder cmkKeyVaultKeyUrl(@Nullable Output cmkKeyVaultKeyUrl) { + $.cmkKeyVaultKeyUrl = cmkKeyVaultKeyUrl; + return this; + } + + /** + * @param cmkKeyVaultKeyUrl The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `azure.keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + * + * @return builder + * + */ + public Builder cmkKeyVaultKeyUrl(String cmkKeyVaultKeyUrl) { + return cmkKeyVaultKeyUrl(Output.of(cmkKeyVaultKeyUrl)); + } + /** * @param developerAppInsightsApiKey The Application Insights API Key to associate with this Azure Bot Service. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/chaosstudio/Target.java b/sdk/java/src/main/java/com/pulumi/azure/chaosstudio/Target.java index 0b9d5c8b66..e5e67d2854 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/chaosstudio/Target.java +++ b/sdk/java/src/main/java/com/pulumi/azure/chaosstudio/Target.java @@ -63,6 +63,7 @@ * .nodeCount("example-value") * .vmSize("example-value") * .build()) + * .upgradeSettings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)) * .identity(KubernetesClusterIdentityArgs.builder() * .type("example-value") * .build()) diff --git a/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/CapacityReservationSkuArgs.java b/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/CapacityReservationSkuArgs.java index 09a67e1923..fdd23c4acc 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/CapacityReservationSkuArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/CapacityReservationSkuArgs.java @@ -16,14 +16,14 @@ public final class CapacityReservationSkuArgs extends com.pulumi.resources.Resou public static final CapacityReservationSkuArgs Empty = new CapacityReservationSkuArgs(); /** - * Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. * */ @Import(name="capacity", required=true) private Output capacity; /** - * @return Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * @return Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. * */ public Output capacity() { @@ -71,7 +71,7 @@ public Builder(CapacityReservationSkuArgs defaults) { } /** - * @param capacity Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * @param capacity Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. * * @return builder * @@ -82,7 +82,7 @@ public Builder capacity(Output capacity) { } /** - * @param capacity Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * @param capacity Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionArgs.java b/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionArgs.java index 394f435461..256b26e031 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionArgs.java @@ -8,6 +8,7 @@ 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; @@ -100,6 +101,21 @@ public Optional> sortVersionsBySemver() { return Optional.ofNullable(this.sortVersionsBySemver); } + /** + * A mapping of tags assigned to the Shared Image. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags assigned to the Shared Image. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + private GetSharedImageVersionArgs() {} private GetSharedImageVersionArgs(GetSharedImageVersionArgs $) { @@ -108,6 +124,7 @@ private GetSharedImageVersionArgs(GetSharedImageVersionArgs $) { this.name = $.name; this.resourceGroupName = $.resourceGroupName; this.sortVersionsBySemver = $.sortVersionsBySemver; + this.tags = $.tags; } public static Builder builder() { @@ -241,6 +258,27 @@ public Builder sortVersionsBySemver(Boolean sortVersionsBySemver) { return sortVersionsBySemver(Output.of(sortVersionsBySemver)); } + /** + * @param tags A mapping of tags assigned to the Shared Image. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags assigned to the Shared Image. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + public GetSharedImageVersionArgs build() { if ($.galleryName == null) { throw new MissingRequiredPropertyException("GetSharedImageVersionArgs", "galleryName"); diff --git a/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionPlainArgs.java b/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionPlainArgs.java index c0440c8262..62800bed8c 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionPlainArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/compute/inputs/GetSharedImageVersionPlainArgs.java @@ -7,6 +7,7 @@ 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; @@ -99,6 +100,21 @@ public Optional sortVersionsBySemver() { return Optional.ofNullable(this.sortVersionsBySemver); } + /** + * A mapping of tags assigned to the Shared Image. + * + */ + @Import(name="tags") + private @Nullable Map tags; + + /** + * @return A mapping of tags assigned to the Shared Image. + * + */ + public Optional> tags() { + return Optional.ofNullable(this.tags); + } + private GetSharedImageVersionPlainArgs() {} private GetSharedImageVersionPlainArgs(GetSharedImageVersionPlainArgs $) { @@ -107,6 +123,7 @@ private GetSharedImageVersionPlainArgs(GetSharedImageVersionPlainArgs $) { this.name = $.name; this.resourceGroupName = $.resourceGroupName; this.sortVersionsBySemver = $.sortVersionsBySemver; + this.tags = $.tags; } public static Builder builder() { @@ -186,6 +203,17 @@ public Builder sortVersionsBySemver(@Nullable Boolean sortVersionsBySemver) { return this; } + /** + * @param tags A mapping of tags assigned to the Shared Image. + * + * @return builder + * + */ + public Builder tags(@Nullable Map tags) { + $.tags = tags; + return this; + } + public GetSharedImageVersionPlainArgs build() { if ($.galleryName == null) { throw new MissingRequiredPropertyException("GetSharedImageVersionPlainArgs", "galleryName"); diff --git a/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/CapacityReservationSku.java b/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/CapacityReservationSku.java index 8af834bd69..eec7072d85 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/CapacityReservationSku.java +++ b/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/CapacityReservationSku.java @@ -12,7 +12,7 @@ @CustomType public final class CapacityReservationSku { /** - * @return Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * @return Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. * */ private Integer capacity; @@ -24,7 +24,7 @@ public final class CapacityReservationSku { private CapacityReservationSku() {} /** - * @return Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * @return Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. * */ public Integer capacity() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/GetSharedImageVersionResult.java b/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/GetSharedImageVersionResult.java index 86f05dedba..c6b5ac1486 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/GetSharedImageVersionResult.java +++ b/sdk/java/src/main/java/com/pulumi/azure/compute/outputs/GetSharedImageVersionResult.java @@ -60,7 +60,7 @@ public final class GetSharedImageVersionResult { * @return A mapping of tags assigned to the Shared Image. * */ - private Map tags; + private @Nullable Map tags; /** * @return One or more `target_region` blocks as documented below. * @@ -134,7 +134,7 @@ public Optional sortVersionsBySemver() { * */ public Map tags() { - return this.tags; + return this.tags == null ? Map.of() : this.tags; } /** * @return One or more `target_region` blocks as documented below. @@ -164,7 +164,7 @@ public static final class Builder { private String osDiskSnapshotId; private String resourceGroupName; private @Nullable Boolean sortVersionsBySemver; - private Map tags; + private @Nullable Map tags; private List targetRegions; public Builder() {} public Builder(GetSharedImageVersionResult defaults) { @@ -271,10 +271,8 @@ public Builder sortVersionsBySemver(@Nullable Boolean sortVersionsBySemver) { return this; } @CustomType.Setter - public Builder tags(Map tags) { - if (tags == null) { - throw new MissingRequiredPropertyException("GetSharedImageVersionResult", "tags"); - } + public Builder tags(@Nullable Map tags) { + this.tags = tags; return this; } 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 474c2b2f98..41da6071d0 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 @@ -11,6 +11,7 @@ import com.pulumi.azure.config.outputs.FeaturesLogAnalyticsWorkspace; import com.pulumi.azure.config.outputs.FeaturesManagedDisk; import com.pulumi.azure.config.outputs.FeaturesPostgresqlFlexibleServer; +import com.pulumi.azure.config.outputs.FeaturesRecoveryService; import com.pulumi.azure.config.outputs.FeaturesResourceGroup; import com.pulumi.azure.config.outputs.FeaturesSubscription; import com.pulumi.azure.config.outputs.FeaturesTemplateDeployment; @@ -31,6 +32,7 @@ public final class Features { private @Nullable FeaturesLogAnalyticsWorkspace logAnalyticsWorkspace; private @Nullable FeaturesManagedDisk managedDisk; private @Nullable FeaturesPostgresqlFlexibleServer postgresqlFlexibleServer; + private @Nullable FeaturesRecoveryService recoveryService; private @Nullable FeaturesResourceGroup resourceGroup; private @Nullable FeaturesSubscription subscription; private @Nullable FeaturesTemplateDeployment templateDeployment; @@ -62,6 +64,9 @@ public Optional managedDisk() { public Optional postgresqlFlexibleServer() { return Optional.ofNullable(this.postgresqlFlexibleServer); } + public Optional recoveryService() { + return Optional.ofNullable(this.recoveryService); + } public Optional resourceGroup() { return Optional.ofNullable(this.resourceGroup); } @@ -95,6 +100,7 @@ public static final class Builder { private @Nullable FeaturesLogAnalyticsWorkspace logAnalyticsWorkspace; private @Nullable FeaturesManagedDisk managedDisk; private @Nullable FeaturesPostgresqlFlexibleServer postgresqlFlexibleServer; + private @Nullable FeaturesRecoveryService recoveryService; private @Nullable FeaturesResourceGroup resourceGroup; private @Nullable FeaturesSubscription subscription; private @Nullable FeaturesTemplateDeployment templateDeployment; @@ -111,6 +117,7 @@ public Builder(Features defaults) { this.logAnalyticsWorkspace = defaults.logAnalyticsWorkspace; this.managedDisk = defaults.managedDisk; this.postgresqlFlexibleServer = defaults.postgresqlFlexibleServer; + this.recoveryService = defaults.recoveryService; this.resourceGroup = defaults.resourceGroup; this.subscription = defaults.subscription; this.templateDeployment = defaults.templateDeployment; @@ -167,6 +174,12 @@ public Builder postgresqlFlexibleServer(@Nullable FeaturesPostgresqlFlexibleServ return this; } @CustomType.Setter + public Builder recoveryService(@Nullable FeaturesRecoveryService recoveryService) { + + this.recoveryService = recoveryService; + return this; + } + @CustomType.Setter public Builder resourceGroup(@Nullable FeaturesResourceGroup resourceGroup) { this.resourceGroup = resourceGroup; @@ -206,6 +219,7 @@ public Features build() { _resultValue.logAnalyticsWorkspace = logAnalyticsWorkspace; _resultValue.managedDisk = managedDisk; _resultValue.postgresqlFlexibleServer = postgresqlFlexibleServer; + _resultValue.recoveryService = recoveryService; _resultValue.resourceGroup = resourceGroup; _resultValue.subscription = subscription; _resultValue.templateDeployment = templateDeployment; diff --git a/sdk/java/src/main/java/com/pulumi/azure/config/outputs/FeaturesRecoveryService.java b/sdk/java/src/main/java/com/pulumi/azure/config/outputs/FeaturesRecoveryService.java new file mode 100644 index 0000000000..03ff59f7de --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/config/outputs/FeaturesRecoveryService.java @@ -0,0 +1,62 @@ +// *** 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 FeaturesRecoveryService { + private @Nullable Boolean purgeProtectedItemsFromVaultOnDestroy; + private @Nullable Boolean vmBackupStopProtectionAndRetainDataOnDestroy; + + private FeaturesRecoveryService() {} + public Optional purgeProtectedItemsFromVaultOnDestroy() { + return Optional.ofNullable(this.purgeProtectedItemsFromVaultOnDestroy); + } + public Optional vmBackupStopProtectionAndRetainDataOnDestroy() { + return Optional.ofNullable(this.vmBackupStopProtectionAndRetainDataOnDestroy); + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(FeaturesRecoveryService defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable Boolean purgeProtectedItemsFromVaultOnDestroy; + private @Nullable Boolean vmBackupStopProtectionAndRetainDataOnDestroy; + public Builder() {} + public Builder(FeaturesRecoveryService defaults) { + Objects.requireNonNull(defaults); + this.purgeProtectedItemsFromVaultOnDestroy = defaults.purgeProtectedItemsFromVaultOnDestroy; + this.vmBackupStopProtectionAndRetainDataOnDestroy = defaults.vmBackupStopProtectionAndRetainDataOnDestroy; + } + + @CustomType.Setter + public Builder purgeProtectedItemsFromVaultOnDestroy(@Nullable Boolean purgeProtectedItemsFromVaultOnDestroy) { + + this.purgeProtectedItemsFromVaultOnDestroy = purgeProtectedItemsFromVaultOnDestroy; + return this; + } + @CustomType.Setter + public Builder vmBackupStopProtectionAndRetainDataOnDestroy(@Nullable Boolean vmBackupStopProtectionAndRetainDataOnDestroy) { + + this.vmBackupStopProtectionAndRetainDataOnDestroy = vmBackupStopProtectionAndRetainDataOnDestroy; + return this; + } + public FeaturesRecoveryService build() { + final var _resultValue = new FeaturesRecoveryService(); + _resultValue.purgeProtectedItemsFromVaultOnDestroy = purgeProtectedItemsFromVaultOnDestroy; + _resultValue.vmBackupStopProtectionAndRetainDataOnDestroy = vmBackupStopProtectionAndRetainDataOnDestroy; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/AppSecretArgs.java b/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/AppSecretArgs.java index f53c4df63f..98b2fa1956 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/AppSecretArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/AppSecretArgs.java @@ -8,6 +8,8 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class AppSecretArgs extends com.pulumi.resources.ResourceArgs { @@ -15,14 +17,52 @@ public final class AppSecretArgs extends com.pulumi.resources.ResourceArgs { public static final AppSecretArgs Empty = new AppSecretArgs(); /** - * The Secret name. + * The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `key_vault_secret_id` + * + */ + @Import(name="identity") + private @Nullable Output identity; + + /** + * @return The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `key_vault_secret_id` + * + */ + public Optional> identity() { + return Optional.ofNullable(this.identity); + } + + /** + * The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + * + */ + @Import(name="keyVaultSecretId") + private @Nullable Output keyVaultSecretId; + + /** + * @return The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + * + */ + public Optional> keyVaultSecretId() { + return Optional.ofNullable(this.keyVaultSecretId); + } + + /** + * The secret name. * */ @Import(name="name", required=true) private Output name; /** - * @return The Secret name. + * @return The secret name. * */ public Output name() { @@ -32,25 +72,31 @@ public Output name() { /** * The value for this secret. * + * !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. * */ - @Import(name="value", required=true) - private Output value; + @Import(name="value") + private @Nullable Output value; /** * @return The value for this secret. * + * !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. * */ - public Output value() { - return this.value; + public Optional> value() { + return Optional.ofNullable(this.value); } private AppSecretArgs() {} private AppSecretArgs(AppSecretArgs $) { + this.identity = $.identity; + this.keyVaultSecretId = $.keyVaultSecretId; this.name = $.name; this.value = $.value; } @@ -74,7 +120,57 @@ public Builder(AppSecretArgs defaults) { } /** - * @param name The Secret name. + * @param identity The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `key_vault_secret_id` + * + * @return builder + * + */ + public Builder identity(@Nullable Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `key_vault_secret_id` + * + * @return builder + * + */ + public Builder identity(String identity) { + return identity(Output.of(identity)); + } + + /** + * @param keyVaultSecretId The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + * + * @return builder + * + */ + public Builder keyVaultSecretId(@Nullable Output keyVaultSecretId) { + $.keyVaultSecretId = keyVaultSecretId; + return this; + } + + /** + * @param keyVaultSecretId The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + * + * @return builder + * + */ + public Builder keyVaultSecretId(String keyVaultSecretId) { + return keyVaultSecretId(Output.of(keyVaultSecretId)); + } + + /** + * @param name The secret name. * * @return builder * @@ -85,7 +181,7 @@ public Builder name(Output name) { } /** - * @param name The Secret name. + * @param name The secret name. * * @return builder * @@ -97,12 +193,14 @@ public Builder name(String name) { /** * @param value The value for this secret. * + * !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. * * @return builder * */ - public Builder value(Output value) { + public Builder value(@Nullable Output value) { $.value = value; return this; } @@ -110,6 +208,8 @@ public Builder value(Output value) { /** * @param value The value for this secret. * + * !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. * * @return builder @@ -123,9 +223,6 @@ public AppSecretArgs build() { if ($.name == null) { throw new MissingRequiredPropertyException("AppSecretArgs", "name"); } - if ($.value == null) { - throw new MissingRequiredPropertyException("AppSecretArgs", "value"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/EnvironmentDaprComponentSecretArgs.java b/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/EnvironmentDaprComponentSecretArgs.java index 318c4e2995..f5f4348e59 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/EnvironmentDaprComponentSecretArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerapp/inputs/EnvironmentDaprComponentSecretArgs.java @@ -8,12 +8,44 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class EnvironmentDaprComponentSecretArgs extends com.pulumi.resources.ResourceArgs { public static final EnvironmentDaprComponentSecretArgs Empty = new EnvironmentDaprComponentSecretArgs(); + /** + * The identity to use for accessing key vault reference. + * + */ + @Import(name="identity") + private @Nullable Output identity; + + /** + * @return The identity to use for accessing key vault reference. + * + */ + public Optional> identity() { + return Optional.ofNullable(this.identity); + } + + /** + * The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + * + */ + @Import(name="keyVaultSecretId") + private @Nullable Output keyVaultSecretId; + + /** + * @return The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + * + */ + public Optional> keyVaultSecretId() { + return Optional.ofNullable(this.keyVaultSecretId); + } + /** * The Secret name. * @@ -33,20 +65,22 @@ public Output name() { * The value for this secret. * */ - @Import(name="value", required=true) - private Output value; + @Import(name="value") + private @Nullable Output value; /** * @return The value for this secret. * */ - public Output value() { - return this.value; + public Optional> value() { + return Optional.ofNullable(this.value); } private EnvironmentDaprComponentSecretArgs() {} private EnvironmentDaprComponentSecretArgs(EnvironmentDaprComponentSecretArgs $) { + this.identity = $.identity; + this.keyVaultSecretId = $.keyVaultSecretId; this.name = $.name; this.value = $.value; } @@ -69,6 +103,48 @@ public Builder(EnvironmentDaprComponentSecretArgs defaults) { $ = new EnvironmentDaprComponentSecretArgs(Objects.requireNonNull(defaults)); } + /** + * @param identity The identity to use for accessing key vault reference. + * + * @return builder + * + */ + public Builder identity(@Nullable Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity The identity to use for accessing key vault reference. + * + * @return builder + * + */ + public Builder identity(String identity) { + return identity(Output.of(identity)); + } + + /** + * @param keyVaultSecretId The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + * + * @return builder + * + */ + public Builder keyVaultSecretId(@Nullable Output keyVaultSecretId) { + $.keyVaultSecretId = keyVaultSecretId; + return this; + } + + /** + * @param keyVaultSecretId The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + * + * @return builder + * + */ + public Builder keyVaultSecretId(String keyVaultSecretId) { + return keyVaultSecretId(Output.of(keyVaultSecretId)); + } + /** * @param name The Secret name. * @@ -96,7 +172,7 @@ public Builder name(String name) { * @return builder * */ - public Builder value(Output value) { + public Builder value(@Nullable Output value) { $.value = value; return this; } @@ -115,9 +191,6 @@ public EnvironmentDaprComponentSecretArgs build() { if ($.name == null) { throw new MissingRequiredPropertyException("EnvironmentDaprComponentSecretArgs", "name"); } - if ($.value == null) { - throw new MissingRequiredPropertyException("EnvironmentDaprComponentSecretArgs", "value"); - } return $; } } diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/AppSecret.java b/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/AppSecret.java index d5451ba384..b8a003fb31 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/AppSecret.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/AppSecret.java @@ -7,25 +7,61 @@ 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 AppSecret { /** - * @return The Secret name. + * @return The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `key_vault_secret_id` + * + */ + private @Nullable String identity; + /** + * @return The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + * + */ + private @Nullable String keyVaultSecretId; + /** + * @return The secret name. * */ private String name; /** * @return The value for this secret. * + * !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. * */ - private String value; + private @Nullable String value; private AppSecret() {} /** - * @return The Secret name. + * @return The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `key_vault_secret_id` + * + */ + public Optional identity() { + return Optional.ofNullable(this.identity); + } + /** + * @return The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + * + */ + public Optional keyVaultSecretId() { + return Optional.ofNullable(this.keyVaultSecretId); + } + /** + * @return The secret name. * */ public String name() { @@ -34,11 +70,13 @@ public String name() { /** * @return The value for this secret. * + * !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. * */ - public String value() { - return this.value; + public Optional value() { + return Optional.ofNullable(this.value); } public static Builder builder() { @@ -50,15 +88,31 @@ public static Builder builder(AppSecret defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable String identity; + private @Nullable String keyVaultSecretId; private String name; - private String value; + private @Nullable String value; public Builder() {} public Builder(AppSecret defaults) { Objects.requireNonNull(defaults); + this.identity = defaults.identity; + this.keyVaultSecretId = defaults.keyVaultSecretId; this.name = defaults.name; this.value = defaults.value; } + @CustomType.Setter + public Builder identity(@Nullable String identity) { + + this.identity = identity; + return this; + } + @CustomType.Setter + public Builder keyVaultSecretId(@Nullable String keyVaultSecretId) { + + this.keyVaultSecretId = keyVaultSecretId; + return this; + } @CustomType.Setter public Builder name(String name) { if (name == null) { @@ -68,15 +122,15 @@ public Builder name(String name) { return this; } @CustomType.Setter - public Builder value(String value) { - if (value == null) { - throw new MissingRequiredPropertyException("AppSecret", "value"); - } + public Builder value(@Nullable String value) { + this.value = value; return this; } public AppSecret build() { final var _resultValue = new AppSecret(); + _resultValue.identity = identity; + _resultValue.keyVaultSecretId = keyVaultSecretId; _resultValue.name = name; _resultValue.value = value; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/EnvironmentDaprComponentSecret.java b/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/EnvironmentDaprComponentSecret.java index 71ad40f288..3a075f04fd 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/EnvironmentDaprComponentSecret.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/EnvironmentDaprComponentSecret.java @@ -7,9 +7,21 @@ 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 EnvironmentDaprComponentSecret { + /** + * @return The identity to use for accessing key vault reference. + * + */ + private @Nullable String identity; + /** + * @return The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + * + */ + private @Nullable String keyVaultSecretId; /** * @return The Secret name. * @@ -19,9 +31,23 @@ public final class EnvironmentDaprComponentSecret { * @return The value for this secret. * */ - private String value; + private @Nullable String value; private EnvironmentDaprComponentSecret() {} + /** + * @return The identity to use for accessing key vault reference. + * + */ + public Optional identity() { + return Optional.ofNullable(this.identity); + } + /** + * @return The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + * + */ + public Optional keyVaultSecretId() { + return Optional.ofNullable(this.keyVaultSecretId); + } /** * @return The Secret name. * @@ -33,8 +59,8 @@ public String name() { * @return The value for this secret. * */ - public String value() { - return this.value; + public Optional value() { + return Optional.ofNullable(this.value); } public static Builder builder() { @@ -46,15 +72,31 @@ public static Builder builder(EnvironmentDaprComponentSecret defaults) { } @CustomType.Builder public static final class Builder { + private @Nullable String identity; + private @Nullable String keyVaultSecretId; private String name; - private String value; + private @Nullable String value; public Builder() {} public Builder(EnvironmentDaprComponentSecret defaults) { Objects.requireNonNull(defaults); + this.identity = defaults.identity; + this.keyVaultSecretId = defaults.keyVaultSecretId; this.name = defaults.name; this.value = defaults.value; } + @CustomType.Setter + public Builder identity(@Nullable String identity) { + + this.identity = identity; + return this; + } + @CustomType.Setter + public Builder keyVaultSecretId(@Nullable String keyVaultSecretId) { + + this.keyVaultSecretId = keyVaultSecretId; + return this; + } @CustomType.Setter public Builder name(String name) { if (name == null) { @@ -64,15 +106,15 @@ public Builder name(String name) { return this; } @CustomType.Setter - public Builder value(String value) { - if (value == null) { - throw new MissingRequiredPropertyException("EnvironmentDaprComponentSecret", "value"); - } + public Builder value(@Nullable String value) { + this.value = value; return this; } public EnvironmentDaprComponentSecret build() { final var _resultValue = new EnvironmentDaprComponentSecret(); + _resultValue.identity = identity; + _resultValue.keyVaultSecretId = keyVaultSecretId; _resultValue.name = name; _resultValue.value = value; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/GetAppSecret.java b/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/GetAppSecret.java index ba110ad150..4f6dbd7bd1 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/GetAppSecret.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerapp/outputs/GetAppSecret.java @@ -10,6 +10,16 @@ @CustomType public final class GetAppSecret { + /** + * @return Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + * + */ + private String identity; + /** + * @return The ID of a Key Vault secret. + * + */ + private String keyVaultSecretId; /** * @return The name of the Container App. * @@ -22,6 +32,20 @@ public final class GetAppSecret { private String value; private GetAppSecret() {} + /** + * @return Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + * + */ + public String identity() { + return this.identity; + } + /** + * @return The ID of a Key Vault secret. + * + */ + public String keyVaultSecretId() { + return this.keyVaultSecretId; + } /** * @return The name of the Container App. * @@ -46,15 +70,35 @@ public static Builder builder(GetAppSecret defaults) { } @CustomType.Builder public static final class Builder { + private String identity; + private String keyVaultSecretId; private String name; private String value; public Builder() {} public Builder(GetAppSecret defaults) { Objects.requireNonNull(defaults); + this.identity = defaults.identity; + this.keyVaultSecretId = defaults.keyVaultSecretId; this.name = defaults.name; this.value = defaults.value; } + @CustomType.Setter + public Builder identity(String identity) { + if (identity == null) { + throw new MissingRequiredPropertyException("GetAppSecret", "identity"); + } + this.identity = identity; + return this; + } + @CustomType.Setter + public Builder keyVaultSecretId(String keyVaultSecretId) { + if (keyVaultSecretId == null) { + throw new MissingRequiredPropertyException("GetAppSecret", "keyVaultSecretId"); + } + this.keyVaultSecretId = keyVaultSecretId; + return this; + } @CustomType.Setter public Builder name(String name) { if (name == null) { @@ -73,6 +117,8 @@ public Builder value(String value) { } public GetAppSecret build() { final var _resultValue = new GetAppSecret(); + _resultValue.identity = identity; + _resultValue.keyVaultSecretId = keyVaultSecretId; _resultValue.name = name; _resultValue.value = value; return _resultValue; diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerservice/ClusterTrustedAccessRoleBinding.java b/sdk/java/src/main/java/com/pulumi/azure/containerservice/ClusterTrustedAccessRoleBinding.java index 03e026a244..2076b9fa07 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerservice/ClusterTrustedAccessRoleBinding.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerservice/ClusterTrustedAccessRoleBinding.java @@ -103,6 +103,7 @@ * .nodeCount("example-value") * .vmSize("example-value") * .build()) + * .upgradeSettings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)) * .identity(KubernetesClusterIdentityArgs.builder() * .type("example-value") * .build()) diff --git a/sdk/java/src/main/java/com/pulumi/azure/containerservice/FleetMember.java b/sdk/java/src/main/java/com/pulumi/azure/containerservice/FleetMember.java index 1084de4fab..3000c4eeb9 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/containerservice/FleetMember.java +++ b/sdk/java/src/main/java/com/pulumi/azure/containerservice/FleetMember.java @@ -66,6 +66,7 @@ * .nodeCount("example-value") * .vmSize("example-value") * .build()) + * .upgradeSettings(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)) * .identity(KubernetesClusterIdentityArgs.builder() * .type("example-value") * .build()) diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/Workspace.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/Workspace.java index 22ba364894..055dcd66e4 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/Workspace.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/Workspace.java @@ -116,6 +116,12 @@ public Output> loadBalancerBackendAddressPoolId() { public Output location() { return this.location; } + @Export(name="managedDiskCmkKeyVaultId", refs={String.class}, tree="[0]") + private Output managedDiskCmkKeyVaultId; + + public Output> managedDiskCmkKeyVaultId() { + return Codegen.optional(this.managedDiskCmkKeyVaultId); + } /** * Customer managed encryption properties for the Databricks Workspace managed disks. * @@ -175,7 +181,7 @@ public Output managedResourceGroupId() { /** * The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * */ @Export(name="managedResourceGroupName", refs={String.class}, tree="[0]") @@ -184,12 +190,18 @@ public Output managedResourceGroupId() { /** * @return The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * */ public Output managedResourceGroupName() { return this.managedResourceGroupName; } + @Export(name="managedServicesCmkKeyVaultId", refs={String.class}, tree="[0]") + private Output managedServicesCmkKeyVaultId; + + public Output> managedServicesCmkKeyVaultId() { + return Codegen.optional(this.managedServicesCmkKeyVaultId); + } /** * Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). * @@ -263,7 +275,7 @@ public Output resourceGroupName() { /** * The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * */ @Export(name="sku", refs={String.class}, tree="[0]") @@ -272,7 +284,7 @@ public Output resourceGroupName() { /** * @return The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * */ public Output sku() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceArgs.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceArgs.java index ed3174df93..3ae8ea2d95 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceArgs.java @@ -94,6 +94,13 @@ public Optional> location() { return Optional.ofNullable(this.location); } + @Import(name="managedDiskCmkKeyVaultId") + private @Nullable Output managedDiskCmkKeyVaultId; + + public Optional> managedDiskCmkKeyVaultId() { + return Optional.ofNullable(this.managedDiskCmkKeyVaultId); + } + /** * Customer managed encryption properties for the Databricks Workspace managed disks. * @@ -127,7 +134,7 @@ public Optional> managedDiskCmkRotationToLatestVersionEnabled() /** * The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * */ @Import(name="managedResourceGroupName") @@ -136,13 +143,20 @@ public Optional> managedDiskCmkRotationToLatestVersionEnabled() /** * @return The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * */ public Optional> managedResourceGroupName() { return Optional.ofNullable(this.managedResourceGroupName); } + @Import(name="managedServicesCmkKeyVaultId") + private @Nullable Output managedServicesCmkKeyVaultId; + + public Optional> managedServicesCmkKeyVaultId() { + return Optional.ofNullable(this.managedServicesCmkKeyVaultId); + } + /** * Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). * @@ -221,7 +235,7 @@ public Output resourceGroupName() { /** * The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * */ @Import(name="sku", required=true) @@ -230,7 +244,7 @@ public Output resourceGroupName() { /** * @return The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * */ public Output sku() { @@ -260,9 +274,11 @@ private WorkspaceArgs(WorkspaceArgs $) { this.infrastructureEncryptionEnabled = $.infrastructureEncryptionEnabled; this.loadBalancerBackendAddressPoolId = $.loadBalancerBackendAddressPoolId; this.location = $.location; + this.managedDiskCmkKeyVaultId = $.managedDiskCmkKeyVaultId; this.managedDiskCmkKeyVaultKeyId = $.managedDiskCmkKeyVaultKeyId; this.managedDiskCmkRotationToLatestVersionEnabled = $.managedDiskCmkRotationToLatestVersionEnabled; this.managedResourceGroupName = $.managedResourceGroupName; + this.managedServicesCmkKeyVaultId = $.managedServicesCmkKeyVaultId; this.managedServicesCmkKeyVaultKeyId = $.managedServicesCmkKeyVaultKeyId; this.name = $.name; this.networkSecurityGroupRulesRequired = $.networkSecurityGroupRulesRequired; @@ -395,6 +411,15 @@ public Builder location(String location) { return location(Output.of(location)); } + public Builder managedDiskCmkKeyVaultId(@Nullable Output managedDiskCmkKeyVaultId) { + $.managedDiskCmkKeyVaultId = managedDiskCmkKeyVaultId; + return this; + } + + public Builder managedDiskCmkKeyVaultId(String managedDiskCmkKeyVaultId) { + return managedDiskCmkKeyVaultId(Output.of(managedDiskCmkKeyVaultId)); + } + /** * @param managedDiskCmkKeyVaultKeyId Customer managed encryption properties for the Databricks Workspace managed disks. * @@ -440,7 +465,7 @@ public Builder managedDiskCmkRotationToLatestVersionEnabled(Boolean managedDiskC /** * @param managedResourceGroupName The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * * @return builder * @@ -453,7 +478,7 @@ public Builder managedResourceGroupName(@Nullable Output managedResource /** * @param managedResourceGroupName The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * * @return builder * @@ -462,6 +487,15 @@ public Builder managedResourceGroupName(String managedResourceGroupName) { return managedResourceGroupName(Output.of(managedResourceGroupName)); } + public Builder managedServicesCmkKeyVaultId(@Nullable Output managedServicesCmkKeyVaultId) { + $.managedServicesCmkKeyVaultId = managedServicesCmkKeyVaultId; + return this; + } + + public Builder managedServicesCmkKeyVaultId(String managedServicesCmkKeyVaultId) { + return managedServicesCmkKeyVaultId(Output.of(managedServicesCmkKeyVaultId)); + } + /** * @param managedServicesCmkKeyVaultKeyId Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). * @@ -570,7 +604,7 @@ public Builder resourceGroupName(String resourceGroupName) { /** * @param sku The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * * @return builder * @@ -583,7 +617,7 @@ public Builder sku(Output sku) { /** * @param sku The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKey.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKey.java index 175411acf1..58bee943e2 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKey.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKey.java @@ -11,10 +11,11 @@ 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 a Customer Managed Key for the Databricks Workspaces root Databricks File System(DBFS) + * Manages a Customer Managed Key for the Databricks Workspaces Root Databricks File System(DBFS) * * ## Example Usage * @@ -137,7 +138,7 @@ * ## Example HCL Configurations * * * Databricks Workspace with Root Databricks File System Customer Managed Keys - * * Databricks Workspace with Customer Managed Keys for Managed Services + * * Databricks Workspace with Root Databricks File System Customer Managed Keys in a Different Subscription * * Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys * * ## Import @@ -151,6 +152,12 @@ */ @ResourceType(type="azure:databricks/workspaceRootDbfsCustomerManagedKey:WorkspaceRootDbfsCustomerManagedKey") public class WorkspaceRootDbfsCustomerManagedKey extends com.pulumi.resources.CustomResource { + @Export(name="keyVaultId", refs={String.class}, tree="[0]") + private Output keyVaultId; + + public Output> keyVaultId() { + return Codegen.optional(this.keyVaultId); + } /** * The resource ID of the Key Vault Key to be used. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKeyArgs.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKeyArgs.java index b90683a2da..8c58b6e008 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKeyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/WorkspaceRootDbfsCustomerManagedKeyArgs.java @@ -8,12 +8,21 @@ import com.pulumi.exceptions.MissingRequiredPropertyException; import java.lang.String; import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; public final class WorkspaceRootDbfsCustomerManagedKeyArgs extends com.pulumi.resources.ResourceArgs { public static final WorkspaceRootDbfsCustomerManagedKeyArgs Empty = new WorkspaceRootDbfsCustomerManagedKeyArgs(); + @Import(name="keyVaultId") + private @Nullable Output keyVaultId; + + public Optional> keyVaultId() { + return Optional.ofNullable(this.keyVaultId); + } + /** * The resource ID of the Key Vault Key to be used. * @@ -47,6 +56,7 @@ public Output workspaceId() { private WorkspaceRootDbfsCustomerManagedKeyArgs() {} private WorkspaceRootDbfsCustomerManagedKeyArgs(WorkspaceRootDbfsCustomerManagedKeyArgs $) { + this.keyVaultId = $.keyVaultId; this.keyVaultKeyId = $.keyVaultKeyId; this.workspaceId = $.workspaceId; } @@ -69,6 +79,15 @@ public Builder(WorkspaceRootDbfsCustomerManagedKeyArgs defaults) { $ = new WorkspaceRootDbfsCustomerManagedKeyArgs(Objects.requireNonNull(defaults)); } + public Builder keyVaultId(@Nullable Output keyVaultId) { + $.keyVaultId = keyVaultId; + return this; + } + + public Builder keyVaultId(String keyVaultId) { + return keyVaultId(Output.of(keyVaultId)); + } + /** * @param keyVaultKeyId The resource ID of the Key Vault Key to be used. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceCustomParametersArgs.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceCustomParametersArgs.java index 0063089dd1..8abfc714e2 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceCustomParametersArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceCustomParametersArgs.java @@ -49,7 +49,7 @@ public Optional> natGatewayName() { /** * Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. * */ @Import(name="noPublicIp") @@ -58,7 +58,7 @@ public Optional> natGatewayName() { /** * @return Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. * */ public Optional> noPublicIp() { @@ -188,7 +188,7 @@ public Optional> virtualNetworkId() { /** * Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). * */ @Import(name="vnetAddressPrefix") @@ -197,7 +197,7 @@ public Optional> virtualNetworkId() { /** * @return Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). * */ public Optional> vnetAddressPrefix() { @@ -284,7 +284,7 @@ public Builder natGatewayName(String natGatewayName) { /** * @param noPublicIp Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. * * @return builder * @@ -297,7 +297,7 @@ public Builder noPublicIp(@Nullable Output noPublicIp) { /** * @param noPublicIp Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. * * @return builder * @@ -477,7 +477,7 @@ public Builder virtualNetworkId(String virtualNetworkId) { /** * @param vnetAddressPrefix Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). * * @return builder * @@ -490,7 +490,7 @@ public Builder vnetAddressPrefix(@Nullable Output vnetAddressPrefix) { /** * @param vnetAddressPrefix Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceRootDbfsCustomerManagedKeyState.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceRootDbfsCustomerManagedKeyState.java index 4c5989d210..7d4aa1c965 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceRootDbfsCustomerManagedKeyState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceRootDbfsCustomerManagedKeyState.java @@ -15,6 +15,13 @@ public final class WorkspaceRootDbfsCustomerManagedKeyState extends com.pulumi.r public static final WorkspaceRootDbfsCustomerManagedKeyState Empty = new WorkspaceRootDbfsCustomerManagedKeyState(); + @Import(name="keyVaultId") + private @Nullable Output keyVaultId; + + public Optional> keyVaultId() { + return Optional.ofNullable(this.keyVaultId); + } + /** * The resource ID of the Key Vault Key to be used. * @@ -48,6 +55,7 @@ public Optional> workspaceId() { private WorkspaceRootDbfsCustomerManagedKeyState() {} private WorkspaceRootDbfsCustomerManagedKeyState(WorkspaceRootDbfsCustomerManagedKeyState $) { + this.keyVaultId = $.keyVaultId; this.keyVaultKeyId = $.keyVaultKeyId; this.workspaceId = $.workspaceId; } @@ -70,6 +78,15 @@ public Builder(WorkspaceRootDbfsCustomerManagedKeyState defaults) { $ = new WorkspaceRootDbfsCustomerManagedKeyState(Objects.requireNonNull(defaults)); } + public Builder keyVaultId(@Nullable Output keyVaultId) { + $.keyVaultId = keyVaultId; + return this; + } + + public Builder keyVaultId(String keyVaultId) { + return keyVaultId(Output.of(keyVaultId)); + } + /** * @param keyVaultKeyId The resource ID of the Key Vault Key to be used. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceState.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceState.java index a3c8c5dd69..8abc63772a 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/inputs/WorkspaceState.java @@ -111,6 +111,13 @@ public Optional> location() { return Optional.ofNullable(this.location); } + @Import(name="managedDiskCmkKeyVaultId") + private @Nullable Output managedDiskCmkKeyVaultId; + + public Optional> managedDiskCmkKeyVaultId() { + return Optional.ofNullable(this.managedDiskCmkKeyVaultId); + } + /** * Customer managed encryption properties for the Databricks Workspace managed disks. * @@ -174,7 +181,7 @@ public Optional> managedResourceGroupId() { /** * The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * */ @Import(name="managedResourceGroupName") @@ -183,13 +190,20 @@ public Optional> managedResourceGroupId() { /** * @return The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * */ public Optional> managedResourceGroupName() { return Optional.ofNullable(this.managedResourceGroupName); } + @Import(name="managedServicesCmkKeyVaultId") + private @Nullable Output managedServicesCmkKeyVaultId; + + public Optional> managedServicesCmkKeyVaultId() { + return Optional.ofNullable(this.managedServicesCmkKeyVaultId); + } + /** * Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). * @@ -268,7 +282,7 @@ public Optional> resourceGroupName() { /** * The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * */ @Import(name="sku") @@ -277,7 +291,7 @@ public Optional> resourceGroupName() { /** * @return The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * */ public Optional> sku() { @@ -353,11 +367,13 @@ private WorkspaceState(WorkspaceState $) { this.infrastructureEncryptionEnabled = $.infrastructureEncryptionEnabled; this.loadBalancerBackendAddressPoolId = $.loadBalancerBackendAddressPoolId; this.location = $.location; + this.managedDiskCmkKeyVaultId = $.managedDiskCmkKeyVaultId; this.managedDiskCmkKeyVaultKeyId = $.managedDiskCmkKeyVaultKeyId; this.managedDiskCmkRotationToLatestVersionEnabled = $.managedDiskCmkRotationToLatestVersionEnabled; this.managedDiskIdentities = $.managedDiskIdentities; this.managedResourceGroupId = $.managedResourceGroupId; this.managedResourceGroupName = $.managedResourceGroupName; + this.managedServicesCmkKeyVaultId = $.managedServicesCmkKeyVaultId; this.managedServicesCmkKeyVaultKeyId = $.managedServicesCmkKeyVaultKeyId; this.name = $.name; this.networkSecurityGroupRulesRequired = $.networkSecurityGroupRulesRequired; @@ -514,6 +530,15 @@ public Builder location(String location) { return location(Output.of(location)); } + public Builder managedDiskCmkKeyVaultId(@Nullable Output managedDiskCmkKeyVaultId) { + $.managedDiskCmkKeyVaultId = managedDiskCmkKeyVaultId; + return this; + } + + public Builder managedDiskCmkKeyVaultId(String managedDiskCmkKeyVaultId) { + return managedDiskCmkKeyVaultId(Output.of(managedDiskCmkKeyVaultId)); + } + /** * @param managedDiskCmkKeyVaultKeyId Customer managed encryption properties for the Databricks Workspace managed disks. * @@ -611,7 +636,7 @@ public Builder managedResourceGroupId(String managedResourceGroupId) { /** * @param managedResourceGroupName The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * * @return builder * @@ -624,7 +649,7 @@ public Builder managedResourceGroupName(@Nullable Output managedResource /** * @param managedResourceGroupName The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. * * @return builder * @@ -633,6 +658,15 @@ public Builder managedResourceGroupName(String managedResourceGroupName) { return managedResourceGroupName(Output.of(managedResourceGroupName)); } + public Builder managedServicesCmkKeyVaultId(@Nullable Output managedServicesCmkKeyVaultId) { + $.managedServicesCmkKeyVaultId = managedServicesCmkKeyVaultId; + return this; + } + + public Builder managedServicesCmkKeyVaultId(String managedServicesCmkKeyVaultId) { + return managedServicesCmkKeyVaultId(Output.of(managedServicesCmkKeyVaultId)); + } + /** * @param managedServicesCmkKeyVaultKeyId Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). * @@ -741,7 +775,7 @@ public Builder resourceGroupName(String resourceGroupName) { /** * @param sku The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * * @return builder * @@ -754,7 +788,7 @@ public Builder sku(@Nullable Output sku) { /** * @param sku The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/databricks/outputs/WorkspaceCustomParameters.java b/sdk/java/src/main/java/com/pulumi/azure/databricks/outputs/WorkspaceCustomParameters.java index e1dc524381..3f12b08c65 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/databricks/outputs/WorkspaceCustomParameters.java +++ b/sdk/java/src/main/java/com/pulumi/azure/databricks/outputs/WorkspaceCustomParameters.java @@ -25,7 +25,7 @@ public final class WorkspaceCustomParameters { /** * @return Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. * */ private @Nullable Boolean noPublicIp; @@ -72,7 +72,7 @@ public final class WorkspaceCustomParameters { /** * @return Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). * */ private @Nullable String vnetAddressPrefix; @@ -95,7 +95,7 @@ public Optional natGatewayName() { /** * @return Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. * */ public Optional noPublicIp() { @@ -160,7 +160,7 @@ public Optional virtualNetworkId() { /** * @return Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). * */ public Optional vnetAddressPrefix() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/devtest/Schedule.java b/sdk/java/src/main/java/com/pulumi/azure/devtest/Schedule.java index df79abd94a..6ce2ff3fa1 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/devtest/Schedule.java +++ b/sdk/java/src/main/java/com/pulumi/azure/devtest/Schedule.java @@ -68,6 +68,7 @@ * .location(example.location()) * .resourceGroupName(example.name()) * .labName(exampleLab.name()) + * .status("Enabled") * .weeklyRecurrence(ScheduleWeeklyRecurrenceArgs.builder() * .time("1100") * .weekDays( 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 5dfab633df..d9de1c43b4 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 @@ -11,6 +11,7 @@ import com.pulumi.azure.inputs.ProviderFeaturesLogAnalyticsWorkspaceArgs; import com.pulumi.azure.inputs.ProviderFeaturesManagedDiskArgs; import com.pulumi.azure.inputs.ProviderFeaturesPostgresqlFlexibleServerArgs; +import com.pulumi.azure.inputs.ProviderFeaturesRecoveryServiceArgs; import com.pulumi.azure.inputs.ProviderFeaturesResourceGroupArgs; import com.pulumi.azure.inputs.ProviderFeaturesSubscriptionArgs; import com.pulumi.azure.inputs.ProviderFeaturesTemplateDeploymentArgs; @@ -83,6 +84,13 @@ public Optional> postgresql return Optional.ofNullable(this.postgresqlFlexibleServer); } + @Import(name="recoveryService") + private @Nullable Output recoveryService; + + public Optional> recoveryService() { + return Optional.ofNullable(this.recoveryService); + } + @Import(name="resourceGroup") private @Nullable Output resourceGroup; @@ -129,6 +137,7 @@ private ProviderFeaturesArgs(ProviderFeaturesArgs $) { this.logAnalyticsWorkspace = $.logAnalyticsWorkspace; this.managedDisk = $.managedDisk; this.postgresqlFlexibleServer = $.postgresqlFlexibleServer; + this.recoveryService = $.recoveryService; this.resourceGroup = $.resourceGroup; this.subscription = $.subscription; this.templateDeployment = $.templateDeployment; @@ -226,6 +235,15 @@ public Builder postgresqlFlexibleServer(ProviderFeaturesPostgresqlFlexibleServer return postgresqlFlexibleServer(Output.of(postgresqlFlexibleServer)); } + public Builder recoveryService(@Nullable Output recoveryService) { + $.recoveryService = recoveryService; + return this; + } + + public Builder recoveryService(ProviderFeaturesRecoveryServiceArgs recoveryService) { + return recoveryService(Output.of(recoveryService)); + } + public Builder resourceGroup(@Nullable Output resourceGroup) { $.resourceGroup = resourceGroup; return this; diff --git a/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesRecoveryServiceArgs.java b/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesRecoveryServiceArgs.java new file mode 100644 index 0000000000..456ee2c9b5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/inputs/ProviderFeaturesRecoveryServiceArgs.java @@ -0,0 +1,80 @@ +// *** 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 ProviderFeaturesRecoveryServiceArgs extends com.pulumi.resources.ResourceArgs { + + public static final ProviderFeaturesRecoveryServiceArgs Empty = new ProviderFeaturesRecoveryServiceArgs(); + + @Import(name="purgeProtectedItemsFromVaultOnDestroy") + private @Nullable Output purgeProtectedItemsFromVaultOnDestroy; + + public Optional> purgeProtectedItemsFromVaultOnDestroy() { + return Optional.ofNullable(this.purgeProtectedItemsFromVaultOnDestroy); + } + + @Import(name="vmBackupStopProtectionAndRetainDataOnDestroy") + private @Nullable Output vmBackupStopProtectionAndRetainDataOnDestroy; + + public Optional> vmBackupStopProtectionAndRetainDataOnDestroy() { + return Optional.ofNullable(this.vmBackupStopProtectionAndRetainDataOnDestroy); + } + + private ProviderFeaturesRecoveryServiceArgs() {} + + private ProviderFeaturesRecoveryServiceArgs(ProviderFeaturesRecoveryServiceArgs $) { + this.purgeProtectedItemsFromVaultOnDestroy = $.purgeProtectedItemsFromVaultOnDestroy; + this.vmBackupStopProtectionAndRetainDataOnDestroy = $.vmBackupStopProtectionAndRetainDataOnDestroy; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ProviderFeaturesRecoveryServiceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ProviderFeaturesRecoveryServiceArgs $; + + public Builder() { + $ = new ProviderFeaturesRecoveryServiceArgs(); + } + + public Builder(ProviderFeaturesRecoveryServiceArgs defaults) { + $ = new ProviderFeaturesRecoveryServiceArgs(Objects.requireNonNull(defaults)); + } + + public Builder purgeProtectedItemsFromVaultOnDestroy(@Nullable Output purgeProtectedItemsFromVaultOnDestroy) { + $.purgeProtectedItemsFromVaultOnDestroy = purgeProtectedItemsFromVaultOnDestroy; + return this; + } + + public Builder purgeProtectedItemsFromVaultOnDestroy(Boolean purgeProtectedItemsFromVaultOnDestroy) { + return purgeProtectedItemsFromVaultOnDestroy(Output.of(purgeProtectedItemsFromVaultOnDestroy)); + } + + public Builder vmBackupStopProtectionAndRetainDataOnDestroy(@Nullable Output vmBackupStopProtectionAndRetainDataOnDestroy) { + $.vmBackupStopProtectionAndRetainDataOnDestroy = vmBackupStopProtectionAndRetainDataOnDestroy; + return this; + } + + public Builder vmBackupStopProtectionAndRetainDataOnDestroy(Boolean vmBackupStopProtectionAndRetainDataOnDestroy) { + return vmBackupStopProtectionAndRetainDataOnDestroy(Output.of(vmBackupStopProtectionAndRetainDataOnDestroy)); + } + + public ProviderFeaturesRecoveryServiceArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2.java b/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2.java index 843b4bc789..9e155e15dd 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2.java +++ b/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2.java @@ -8,6 +8,7 @@ import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2State; import com.pulumi.azure.monitoring.outputs.ScheduledQueryRulesAlertV2Action; import com.pulumi.azure.monitoring.outputs.ScheduledQueryRulesAlertV2Criteria; +import com.pulumi.azure.monitoring.outputs.ScheduledQueryRulesAlertV2Identity; import com.pulumi.core.Output; import com.pulumi.core.annotations.Export; import com.pulumi.core.annotations.ResourceType; @@ -38,11 +39,16 @@ * import com.pulumi.azure.appinsights.InsightsArgs; * import com.pulumi.azure.monitoring.ActionGroup; * import com.pulumi.azure.monitoring.ActionGroupArgs; + * import com.pulumi.azure.authorization.UserAssignedIdentity; + * import com.pulumi.azure.authorization.UserAssignedIdentityArgs; + * import com.pulumi.azure.authorization.Assignment; + * import com.pulumi.azure.authorization.AssignmentArgs; * import com.pulumi.azure.monitoring.ScheduledQueryRulesAlertV2; * import com.pulumi.azure.monitoring.ScheduledQueryRulesAlertV2Args; * import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaArgs; * import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs; * import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2ActionArgs; + * import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2IdentityArgs; * import java.util.List; * import java.util.ArrayList; * import java.util.Map; @@ -74,6 +80,18 @@ * .shortName("test mag") * .build()); * + * var exampleUserAssignedIdentity = new UserAssignedIdentity("exampleUserAssignedIdentity", UserAssignedIdentityArgs.builder() + * .name("example-uai") + * .location(example.location()) + * .resourceGroupName(example.name()) + * .build()); + * + * var exampleAssignment = new Assignment("exampleAssignment", AssignmentArgs.builder() + * .scope(exampleInsights.id()) + * .roleDefinitionName("Reader") + * .principalId(exampleUserAssignedIdentity.principalId()) + * .build()); + * * var exampleScheduledQueryRulesAlertV2 = new ScheduledQueryRulesAlertV2("exampleScheduledQueryRulesAlertV2", ScheduledQueryRulesAlertV2Args.builder() * .name("example-msqrv2") * .resourceGroupName(example.name()) @@ -116,6 +134,10 @@ * Map.entry("key2", "value2") * )) * .build()) + * .identity(ScheduledQueryRulesAlertV2IdentityArgs.builder() + * .type("UserAssigned") + * .identityIds(exampleUserAssignedIdentity.id()) + * .build()) * .tags(Map.ofEntries( * Map.entry("key", "value"), * Map.entry("key2", "value2") @@ -258,6 +280,20 @@ public Output> enabled() { public Output> evaluationFrequency() { return Codegen.optional(this.evaluationFrequency); } + /** + * An `identity` block as defined below. + * + */ + @Export(name="identity", refs={ScheduledQueryRulesAlertV2Identity.class}, tree="[0]") + private Output identity; + + /** + * @return An `identity` block as defined below. + * + */ + public Output> identity() { + return Codegen.optional(this.identity); + } /** * True if this alert rule is a legacy Log Analytic Rule. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2Args.java b/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2Args.java index 8fe40d43ad..f8189e38d9 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2Args.java +++ b/sdk/java/src/main/java/com/pulumi/azure/monitoring/ScheduledQueryRulesAlertV2Args.java @@ -5,6 +5,7 @@ import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2ActionArgs; import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaArgs; +import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2IdentityArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import com.pulumi.exceptions.MissingRequiredPropertyException; @@ -135,6 +136,21 @@ public Optional> evaluationFrequency() { return Optional.ofNullable(this.evaluationFrequency); } + /** + * An `identity` block as defined below. + * + */ + @Import(name="identity") + private @Nullable Output identity; + + /** + * @return An `identity` block as defined below. + * + */ + public Optional> identity() { + return Optional.ofNullable(this.identity); + } + /** * Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. * @@ -333,6 +349,7 @@ private ScheduledQueryRulesAlertV2Args(ScheduledQueryRulesAlertV2Args $) { this.displayName = $.displayName; this.enabled = $.enabled; this.evaluationFrequency = $.evaluationFrequency; + this.identity = $.identity; this.location = $.location; this.muteActionsAfterAlertDuration = $.muteActionsAfterAlertDuration; this.name = $.name; @@ -530,6 +547,27 @@ public Builder evaluationFrequency(String evaluationFrequency) { return evaluationFrequency(Output.of(evaluationFrequency)); } + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(@Nullable Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(ScheduledQueryRulesAlertV2IdentityArgs identity) { + return identity(Output.of(identity)); + } + /** * @param location Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/monitoring/inputs/ScheduledQueryRulesAlertV2IdentityArgs.java b/sdk/java/src/main/java/com/pulumi/azure/monitoring/inputs/ScheduledQueryRulesAlertV2IdentityArgs.java new file mode 100644 index 0000000000..da71aa2a0b --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/monitoring/inputs/ScheduledQueryRulesAlertV2IdentityArgs.java @@ -0,0 +1,219 @@ +// *** 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.monitoring.inputs; + +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 ScheduledQueryRulesAlertV2IdentityArgs extends com.pulumi.resources.ResourceArgs { + + public static final ScheduledQueryRulesAlertV2IdentityArgs Empty = new ScheduledQueryRulesAlertV2IdentityArgs(); + + /** + * A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + * + */ + @Import(name="identityIds") + private @Nullable Output> identityIds; + + /** + * @return A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + * + */ + public Optional>> identityIds() { + return Optional.ofNullable(this.identityIds); + } + + /** + * The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + @Import(name="principalId") + private @Nullable Output principalId; + + /** + * @return The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + public Optional> principalId() { + return Optional.ofNullable(this.principalId); + } + + /** + * The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + @Import(name="tenantId") + private @Nullable Output tenantId; + + /** + * @return The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + public Optional> tenantId() { + return Optional.ofNullable(this.tenantId); + } + + /** + * Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + * + */ + public Output type() { + return this.type; + } + + private ScheduledQueryRulesAlertV2IdentityArgs() {} + + private ScheduledQueryRulesAlertV2IdentityArgs(ScheduledQueryRulesAlertV2IdentityArgs $) { + this.identityIds = $.identityIds; + this.principalId = $.principalId; + this.tenantId = $.tenantId; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ScheduledQueryRulesAlertV2IdentityArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ScheduledQueryRulesAlertV2IdentityArgs $; + + public Builder() { + $ = new ScheduledQueryRulesAlertV2IdentityArgs(); + } + + public Builder(ScheduledQueryRulesAlertV2IdentityArgs defaults) { + $ = new ScheduledQueryRulesAlertV2IdentityArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param identityIds A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + * + * @return builder + * + */ + public Builder identityIds(@Nullable Output> identityIds) { + $.identityIds = identityIds; + return this; + } + + /** + * @param identityIds A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + * + * @return builder + * + */ + public Builder identityIds(List identityIds) { + return identityIds(Output.of(identityIds)); + } + + /** + * @param identityIds A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + * + * @return builder + * + */ + public Builder identityIds(String... identityIds) { + return identityIds(List.of(identityIds)); + } + + /** + * @param principalId The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + * @return builder + * + */ + public Builder principalId(@Nullable Output principalId) { + $.principalId = principalId; + return this; + } + + /** + * @param principalId The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + * @return builder + * + */ + public Builder principalId(String principalId) { + return principalId(Output.of(principalId)); + } + + /** + * @param tenantId The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + * @return builder + * + */ + public Builder tenantId(@Nullable Output tenantId) { + $.tenantId = tenantId; + return this; + } + + /** + * @param tenantId The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + * @return builder + * + */ + public Builder tenantId(String tenantId) { + return tenantId(Output.of(tenantId)); + } + + /** + * @param type Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public ScheduledQueryRulesAlertV2IdentityArgs build() { + if ($.type == null) { + throw new MissingRequiredPropertyException("ScheduledQueryRulesAlertV2IdentityArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/monitoring/inputs/ScheduledQueryRulesAlertV2State.java b/sdk/java/src/main/java/com/pulumi/azure/monitoring/inputs/ScheduledQueryRulesAlertV2State.java index 1beda81073..6471be24d9 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/monitoring/inputs/ScheduledQueryRulesAlertV2State.java +++ b/sdk/java/src/main/java/com/pulumi/azure/monitoring/inputs/ScheduledQueryRulesAlertV2State.java @@ -5,6 +5,7 @@ import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2ActionArgs; import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2CriteriaArgs; +import com.pulumi.azure.monitoring.inputs.ScheduledQueryRulesAlertV2IdentityArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.Boolean; @@ -149,6 +150,21 @@ public Optional> evaluationFrequency() { return Optional.ofNullable(this.evaluationFrequency); } + /** + * An `identity` block as defined below. + * + */ + @Import(name="identity") + private @Nullable Output identity; + + /** + * @return An `identity` block as defined below. + * + */ + public Optional> identity() { + return Optional.ofNullable(this.identity); + } + /** * True if this alert rule is a legacy Log Analytic Rule. * @@ -378,6 +394,7 @@ private ScheduledQueryRulesAlertV2State(ScheduledQueryRulesAlertV2State $) { this.displayName = $.displayName; this.enabled = $.enabled; this.evaluationFrequency = $.evaluationFrequency; + this.identity = $.identity; this.isALegacyLogAnalyticsRule = $.isALegacyLogAnalyticsRule; this.isWorkspaceAlertsStorageConfigured = $.isWorkspaceAlertsStorageConfigured; this.location = $.location; @@ -598,6 +615,27 @@ public Builder evaluationFrequency(String evaluationFrequency) { return evaluationFrequency(Output.of(evaluationFrequency)); } + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(@Nullable Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(ScheduledQueryRulesAlertV2IdentityArgs identity) { + return identity(Output.of(identity)); + } + /** * @param isALegacyLogAnalyticsRule True if this alert rule is a legacy Log Analytic Rule. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/monitoring/outputs/ScheduledQueryRulesAlertV2Identity.java b/sdk/java/src/main/java/com/pulumi/azure/monitoring/outputs/ScheduledQueryRulesAlertV2Identity.java new file mode 100644 index 0000000000..cf7e0625c8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/monitoring/outputs/ScheduledQueryRulesAlertV2Identity.java @@ -0,0 +1,131 @@ +// *** 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.monitoring.outputs; + +import com.pulumi.core.annotations.CustomType; +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; + +@CustomType +public final class ScheduledQueryRulesAlertV2Identity { + /** + * @return A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + * + */ + private @Nullable List identityIds; + /** + * @return The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + private @Nullable String principalId; + /** + * @return The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + private @Nullable String tenantId; + /** + * @return Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + * + */ + private String type; + + private ScheduledQueryRulesAlertV2Identity() {} + /** + * @return A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + * + */ + public List identityIds() { + return this.identityIds == null ? List.of() : this.identityIds; + } + /** + * @return The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + public Optional principalId() { + return Optional.ofNullable(this.principalId); + } + /** + * @return The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + * + */ + public Optional tenantId() { + return Optional.ofNullable(this.tenantId); + } + /** + * @return Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ScheduledQueryRulesAlertV2Identity defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private @Nullable List identityIds; + private @Nullable String principalId; + private @Nullable String tenantId; + private String type; + public Builder() {} + public Builder(ScheduledQueryRulesAlertV2Identity defaults) { + Objects.requireNonNull(defaults); + this.identityIds = defaults.identityIds; + this.principalId = defaults.principalId; + this.tenantId = defaults.tenantId; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder identityIds(@Nullable List identityIds) { + + this.identityIds = identityIds; + return this; + } + public Builder identityIds(String... identityIds) { + return identityIds(List.of(identityIds)); + } + @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("ScheduledQueryRulesAlertV2Identity", "type"); + } + this.type = type; + return this; + } + public ScheduledQueryRulesAlertV2Identity build() { + final var _resultValue = new ScheduledQueryRulesAlertV2Identity(); + _resultValue.identityIds = identityIds; + _resultValue.principalId = principalId; + _resultValue.tenantId = tenantId; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/Database.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/Database.java index 8d35b8e013..8846ecdb72 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/Database.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/Database.java @@ -312,26 +312,30 @@ public Output> elasticPoolId() { return Codegen.optional(this.elasticPoolId); } /** - * Specifies the type of enclave to be used by the database. Possible value `VBS`. + * Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * */ @Export(name="enclaveType", refs={String.class}, tree="[0]") - private Output enclaveType; + private Output enclaveType; /** - * @return Specifies the type of enclave to be used by the database. Possible value `VBS`. + * @return Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * */ - public Output> enclaveType() { - return Codegen.optional(this.enclaveType); + public Output enclaveType() { + return this.enclaveType; } /** * A boolean that specifies if the Geo Backup Policy is enabled. Defaults to `true`. @@ -597,6 +601,20 @@ public Output restorePointInTime() { public Output sampleName() { return this.sampleName; } + /** + * How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + */ + @Export(name="secondaryType", refs={String.class}, tree="[0]") + private Output secondaryType; + + /** + * @return How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + */ + public Output secondaryType() { + return this.secondaryType; + } /** * The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/DatabaseArgs.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/DatabaseArgs.java index 8c2b814a48..051d95a2f6 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/DatabaseArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/DatabaseArgs.java @@ -105,23 +105,27 @@ public Optional> elasticPoolId() { } /** - * Specifies the type of enclave to be used by the database. Possible value `VBS`. + * Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * */ @Import(name="enclaveType") private @Nullable Output enclaveType; /** - * @return Specifies the type of enclave to be used by the database. Possible value `VBS`. + * @return Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * */ public Optional> enclaveType() { return Optional.ofNullable(this.enclaveType); @@ -409,6 +413,21 @@ public Optional> sampleName() { return Optional.ofNullable(this.sampleName); } + /** + * How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + */ + @Import(name="secondaryType") + private @Nullable Output secondaryType; + + /** + * @return How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + */ + public Optional> secondaryType() { + return Optional.ofNullable(this.secondaryType); + } + /** * The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. * @@ -602,6 +621,7 @@ private DatabaseArgs(DatabaseArgs $) { this.restoreLongTermRetentionBackupId = $.restoreLongTermRetentionBackupId; this.restorePointInTime = $.restorePointInTime; this.sampleName = $.sampleName; + this.secondaryType = $.secondaryType; this.serverId = $.serverId; this.shortTermRetentionPolicy = $.shortTermRetentionPolicy; this.skuName = $.skuName; @@ -742,12 +762,14 @@ public Builder elasticPoolId(String elasticPoolId) { } /** - * @param enclaveType Specifies the type of enclave to be used by the database. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -757,12 +779,14 @@ public Builder enclaveType(@Nullable Output enclaveType) { } /** - * @param enclaveType Specifies the type of enclave to be used by the database. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -1160,6 +1184,27 @@ public Builder sampleName(String sampleName) { return sampleName(Output.of(sampleName)); } + /** + * @param secondaryType How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder secondaryType(@Nullable Output secondaryType) { + $.secondaryType = secondaryType; + return this; + } + + /** + * @param secondaryType How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder secondaryType(String secondaryType) { + return secondaryType(Output.of(secondaryType)); + } + /** * @param serverId The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPool.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPool.java index 56a5d48d8e..e42b5025f9 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPool.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPool.java @@ -103,26 +103,30 @@ @ResourceType(type="azure:mssql/elasticPool:ElasticPool") public class ElasticPool extends com.pulumi.resources.CustomResource { /** - * Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * */ @Export(name="enclaveType", refs={String.class}, tree="[0]") - private Output enclaveType; + private Output enclaveType; /** - * @return Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * @return Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * */ - public Output> enclaveType() { - return Codegen.optional(this.enclaveType); + public Output enclaveType() { + return this.enclaveType; } /** * Specifies the license type applied to this database. Possible values are `LicenseIncluded` and `BasePrice`. @@ -153,14 +157,14 @@ public Output location() { return this.location; } /** - * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * */ @Export(name="maintenanceConfigurationName", refs={String.class}, tree="[0]") private Output maintenanceConfigurationName; /** - * @return The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * @return The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * */ public Output> maintenanceConfigurationName() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPoolArgs.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPoolArgs.java index 016ceddc92..59c861a9e1 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPoolArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/ElasticPoolArgs.java @@ -23,23 +23,27 @@ public final class ElasticPoolArgs extends com.pulumi.resources.ResourceArgs { public static final ElasticPoolArgs Empty = new ElasticPoolArgs(); /** - * Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * */ @Import(name="enclaveType") private @Nullable Output enclaveType; /** - * @return Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * @return Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * */ public Optional> enclaveType() { return Optional.ofNullable(this.enclaveType); @@ -76,14 +80,14 @@ public Optional> location() { } /** - * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * */ @Import(name="maintenanceConfigurationName") private @Nullable Output maintenanceConfigurationName; /** - * @return The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * @return The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * */ public Optional> maintenanceConfigurationName() { @@ -266,12 +270,14 @@ public Builder(ElasticPoolArgs defaults) { } /** - * @param enclaveType Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -281,12 +287,14 @@ public Builder enclaveType(@Nullable Output enclaveType) { } /** - * @param enclaveType Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -337,7 +345,7 @@ public Builder location(String location) { } /** - * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * * @return builder * @@ -348,7 +356,7 @@ public Builder maintenanceConfigurationName(@Nullable Output maintenance } /** - * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicy.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicy.java index 29f145df73..fe5161d3aa 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicy.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicy.java @@ -234,6 +234,20 @@ */ @ResourceType(type="azure:mssql/serverExtendedAuditingPolicy:ServerExtendedAuditingPolicy") public class ServerExtendedAuditingPolicy extends com.pulumi.resources.CustomResource { + /** + * A list of Actions-Groups and Actions to audit. + * + */ + @Export(name="auditActionsAndGroups", refs={List.class,String.class}, tree="[0,1]") + private Output> auditActionsAndGroups; + + /** + * @return A list of Actions-Groups and Actions to audit. + * + */ + public Output> auditActionsAndGroups() { + return this.auditActionsAndGroups; + } /** * Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. * @@ -266,6 +280,20 @@ public Output> enabled() { public Output> logMonitoringEnabled() { return Codegen.optional(this.logMonitoringEnabled); } + /** + * Specifies condition of where clause when creating an audit. + * + */ + @Export(name="predicateExpression", refs={String.class}, tree="[0]") + private Output predicateExpression; + + /** + * @return Specifies condition of where clause when creating an audit. + * + */ + public Output> predicateExpression() { + return Codegen.optional(this.predicateExpression); + } /** * The number of days to retain logs for in the storage account. Defaults to `0`. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicyArgs.java index dd13fdb391..d3429be3e4 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicyArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/ServerExtendedAuditingPolicyArgs.java @@ -9,6 +9,7 @@ import java.lang.Boolean; import java.lang.Integer; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -18,6 +19,21 @@ public final class ServerExtendedAuditingPolicyArgs extends com.pulumi.resources public static final ServerExtendedAuditingPolicyArgs Empty = new ServerExtendedAuditingPolicyArgs(); + /** + * A list of Actions-Groups and Actions to audit. + * + */ + @Import(name="auditActionsAndGroups") + private @Nullable Output> auditActionsAndGroups; + + /** + * @return A list of Actions-Groups and Actions to audit. + * + */ + public Optional>> auditActionsAndGroups() { + return Optional.ofNullable(this.auditActionsAndGroups); + } + /** * Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. * @@ -52,6 +68,21 @@ public Optional> logMonitoringEnabled() { return Optional.ofNullable(this.logMonitoringEnabled); } + /** + * Specifies condition of where clause when creating an audit. + * + */ + @Import(name="predicateExpression") + private @Nullable Output predicateExpression; + + /** + * @return Specifies condition of where clause when creating an audit. + * + */ + public Optional> predicateExpression() { + return Optional.ofNullable(this.predicateExpression); + } + /** * The number of days to retain logs for in the storage account. Defaults to `0`. * @@ -145,8 +176,10 @@ public Optional> storageEndpoint() { private ServerExtendedAuditingPolicyArgs() {} private ServerExtendedAuditingPolicyArgs(ServerExtendedAuditingPolicyArgs $) { + this.auditActionsAndGroups = $.auditActionsAndGroups; this.enabled = $.enabled; this.logMonitoringEnabled = $.logMonitoringEnabled; + this.predicateExpression = $.predicateExpression; this.retentionInDays = $.retentionInDays; this.serverId = $.serverId; this.storageAccountAccessKey = $.storageAccountAccessKey; @@ -173,6 +206,37 @@ public Builder(ServerExtendedAuditingPolicyArgs defaults) { $ = new ServerExtendedAuditingPolicyArgs(Objects.requireNonNull(defaults)); } + /** + * @param auditActionsAndGroups A list of Actions-Groups and Actions to audit. + * + * @return builder + * + */ + public Builder auditActionsAndGroups(@Nullable Output> auditActionsAndGroups) { + $.auditActionsAndGroups = auditActionsAndGroups; + return this; + } + + /** + * @param auditActionsAndGroups A list of Actions-Groups and Actions to audit. + * + * @return builder + * + */ + public Builder auditActionsAndGroups(List auditActionsAndGroups) { + return auditActionsAndGroups(Output.of(auditActionsAndGroups)); + } + + /** + * @param auditActionsAndGroups A list of Actions-Groups and Actions to audit. + * + * @return builder + * + */ + public Builder auditActionsAndGroups(String... auditActionsAndGroups) { + return auditActionsAndGroups(List.of(auditActionsAndGroups)); + } + /** * @param enabled Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. * @@ -219,6 +283,27 @@ public Builder logMonitoringEnabled(Boolean logMonitoringEnabled) { return logMonitoringEnabled(Output.of(logMonitoringEnabled)); } + /** + * @param predicateExpression Specifies condition of where clause when creating an audit. + * + * @return builder + * + */ + public Builder predicateExpression(@Nullable Output predicateExpression) { + $.predicateExpression = predicateExpression; + return this; + } + + /** + * @param predicateExpression Specifies condition of where clause when creating an audit. + * + * @return builder + * + */ + public Builder predicateExpression(String predicateExpression) { + return predicateExpression(Output.of(predicateExpression)); + } + /** * @param retentionInDays The number of days to retain logs for in the storage account. Defaults to `0`. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/DatabaseState.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/DatabaseState.java index 3645823968..f0224a61cb 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/DatabaseState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/DatabaseState.java @@ -104,23 +104,27 @@ public Optional> elasticPoolId() { } /** - * Specifies the type of enclave to be used by the database. Possible value `VBS`. + * Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * */ @Import(name="enclaveType") private @Nullable Output enclaveType; /** - * @return Specifies the type of enclave to be used by the database. Possible value `VBS`. + * @return Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * */ public Optional> enclaveType() { return Optional.ofNullable(this.enclaveType); @@ -408,6 +412,21 @@ public Optional> sampleName() { return Optional.ofNullable(this.sampleName); } + /** + * How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + */ + @Import(name="secondaryType") + private @Nullable Output secondaryType; + + /** + * @return How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + */ + public Optional> secondaryType() { + return Optional.ofNullable(this.secondaryType); + } + /** * The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. * @@ -601,6 +620,7 @@ private DatabaseState(DatabaseState $) { this.restoreLongTermRetentionBackupId = $.restoreLongTermRetentionBackupId; this.restorePointInTime = $.restorePointInTime; this.sampleName = $.sampleName; + this.secondaryType = $.secondaryType; this.serverId = $.serverId; this.shortTermRetentionPolicy = $.shortTermRetentionPolicy; this.skuName = $.skuName; @@ -741,12 +761,14 @@ public Builder elasticPoolId(String elasticPoolId) { } /** - * @param enclaveType Specifies the type of enclave to be used by the database. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -756,12 +778,14 @@ public Builder enclaveType(@Nullable Output enclaveType) { } /** - * @param enclaveType Specifies the type of enclave to be used by the database. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** `enclave_type` is currently not supported for DW (e.g, DataWarehouse) and DC-series SKUs. * * > **NOTE:** Geo Replicated and Failover databases must have the same `enclave_type`. * + * > **NOTE:** The default value for the `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -1159,6 +1183,27 @@ public Builder sampleName(String sampleName) { return sampleName(Output.of(sampleName)); } + /** + * @param secondaryType How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder secondaryType(@Nullable Output secondaryType) { + $.secondaryType = secondaryType; + return this; + } + + /** + * @param secondaryType How do you want your replica to be made? Valid values include `Geo` and `Named`. Defaults to `Geo`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder secondaryType(String secondaryType) { + return secondaryType(Output.of(secondaryType)); + } + /** * @param serverId The id of the MS SQL Server on which to create the database. Changing this forces a new resource to be created. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ElasticPoolState.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ElasticPoolState.java index 570ac6cfdb..f1ede330ad 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ElasticPoolState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ElasticPoolState.java @@ -22,23 +22,27 @@ public final class ElasticPoolState extends com.pulumi.resources.ResourceArgs { public static final ElasticPoolState Empty = new ElasticPoolState(); /** - * Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * */ @Import(name="enclaveType") private @Nullable Output enclaveType; /** - * @return Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * @return Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * */ public Optional> enclaveType() { return Optional.ofNullable(this.enclaveType); @@ -75,14 +79,14 @@ public Optional> location() { } /** - * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * */ @Import(name="maintenanceConfigurationName") private @Nullable Output maintenanceConfigurationName; /** - * @return The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * @return The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * */ public Optional> maintenanceConfigurationName() { @@ -265,12 +269,14 @@ public Builder(ElasticPoolState defaults) { } /** - * @param enclaveType Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -280,12 +286,14 @@ public Builder enclaveType(@Nullable Output enclaveType) { } /** - * @param enclaveType Specifies the type of enclave to be used by the elastic pool. Possible value `VBS`. + * @param enclaveType Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the elastic pool. <!-- TODO: Uncomment in 4.0: Once enabled (e.g., by specifying `Default` or `VBS`) removing the `enclave_type` field from the configuration file will force the creation of a new resource.-> Possible values are `Default` or `VBS`. * * > **NOTE:** All databases that are added to the elastic pool must have the same `enclave_type` as the elastic pool. * * > **NOTE:** `enclave_type` is not supported for DC-series SKUs. * + * > **NOTE:** The default value for `enclave_type` field is unset not `Default`. + * * @return builder * */ @@ -336,7 +344,7 @@ public Builder location(String location) { } /** - * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * * @return builder * @@ -347,7 +355,7 @@ public Builder maintenanceConfigurationName(@Nullable Output maintenance } /** - * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`. Defaults to `SQL_Default`. + * @param maintenanceConfigurationName The name of the Public Maintenance Configuration window to apply to the elastic pool. Valid values include `SQL_Default`, `SQL_EastUS_DB_1`, `SQL_EastUS2_DB_1`, `SQL_SoutheastAsia_DB_1`, `SQL_AustraliaEast_DB_1`, `SQL_NorthEurope_DB_1`, `SQL_SouthCentralUS_DB_1`, `SQL_WestUS2_DB_1`, `SQL_UKSouth_DB_1`, `SQL_WestEurope_DB_1`, `SQL_EastUS_DB_2`, `SQL_EastUS2_DB_2`, `SQL_WestUS2_DB_2`, `SQL_SoutheastAsia_DB_2`, `SQL_AustraliaEast_DB_2`, `SQL_NorthEurope_DB_2`, `SQL_SouthCentralUS_DB_2`, `SQL_UKSouth_DB_2`, `SQL_WestEurope_DB_2`, `SQL_AustraliaSoutheast_DB_1`, `SQL_BrazilSouth_DB_1`, `SQL_CanadaCentral_DB_1`, `SQL_CanadaEast_DB_1`, `SQL_CentralUS_DB_1`, `SQL_EastAsia_DB_1`, `SQL_FranceCentral_DB_1`, `SQL_GermanyWestCentral_DB_1`, `SQL_CentralIndia_DB_1`, `SQL_SouthIndia_DB_1`, `SQL_JapanEast_DB_1`, `SQL_JapanWest_DB_1`, `SQL_NorthCentralUS_DB_1`, `SQL_UKWest_DB_1`, `SQL_WestUS_DB_1`, `SQL_AustraliaSoutheast_DB_2`, `SQL_BrazilSouth_DB_2`, `SQL_CanadaCentral_DB_2`, `SQL_CanadaEast_DB_2`, `SQL_CentralUS_DB_2`, `SQL_EastAsia_DB_2`, `SQL_FranceCentral_DB_2`, `SQL_GermanyWestCentral_DB_2`, `SQL_CentralIndia_DB_2`, `SQL_SouthIndia_DB_2`, `SQL_JapanEast_DB_2`, `SQL_JapanWest_DB_2`, `SQL_NorthCentralUS_DB_2`, `SQL_UKWest_DB_2`, `SQL_WestUS_DB_2`, `SQL_WestCentralUS_DB_1`, `SQL_FranceSouth_DB_1`, `SQL_WestCentralUS_DB_2`, `SQL_FranceSouth_DB_2`, `SQL_SwitzerlandNorth_DB_1`, `SQL_SwitzerlandNorth_DB_2`, `SQL_BrazilSoutheast_DB_1`, `SQL_UAENorth_DB_1`, `SQL_BrazilSoutheast_DB_2`, `SQL_UAENorth_DB_2`, `SQL_SouthAfricaNorth_DB_1`, `SQL_SouthAfricaNorth_DB_2`, `SQL_WestUS3_DB_1`, `SQL_WestUS3_DB_2`. Defaults to `SQL_Default`. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ServerExtendedAuditingPolicyState.java b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ServerExtendedAuditingPolicyState.java index cd762b5195..31935a9285 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ServerExtendedAuditingPolicyState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/mssql/inputs/ServerExtendedAuditingPolicyState.java @@ -8,6 +8,7 @@ import java.lang.Boolean; import java.lang.Integer; import java.lang.String; +import java.util.List; import java.util.Objects; import java.util.Optional; import javax.annotation.Nullable; @@ -17,6 +18,21 @@ public final class ServerExtendedAuditingPolicyState extends com.pulumi.resource public static final ServerExtendedAuditingPolicyState Empty = new ServerExtendedAuditingPolicyState(); + /** + * A list of Actions-Groups and Actions to audit. + * + */ + @Import(name="auditActionsAndGroups") + private @Nullable Output> auditActionsAndGroups; + + /** + * @return A list of Actions-Groups and Actions to audit. + * + */ + public Optional>> auditActionsAndGroups() { + return Optional.ofNullable(this.auditActionsAndGroups); + } + /** * Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. * @@ -51,6 +67,21 @@ public Optional> logMonitoringEnabled() { return Optional.ofNullable(this.logMonitoringEnabled); } + /** + * Specifies condition of where clause when creating an audit. + * + */ + @Import(name="predicateExpression") + private @Nullable Output predicateExpression; + + /** + * @return Specifies condition of where clause when creating an audit. + * + */ + public Optional> predicateExpression() { + return Optional.ofNullable(this.predicateExpression); + } + /** * The number of days to retain logs for in the storage account. Defaults to `0`. * @@ -144,8 +175,10 @@ public Optional> storageEndpoint() { private ServerExtendedAuditingPolicyState() {} private ServerExtendedAuditingPolicyState(ServerExtendedAuditingPolicyState $) { + this.auditActionsAndGroups = $.auditActionsAndGroups; this.enabled = $.enabled; this.logMonitoringEnabled = $.logMonitoringEnabled; + this.predicateExpression = $.predicateExpression; this.retentionInDays = $.retentionInDays; this.serverId = $.serverId; this.storageAccountAccessKey = $.storageAccountAccessKey; @@ -172,6 +205,37 @@ public Builder(ServerExtendedAuditingPolicyState defaults) { $ = new ServerExtendedAuditingPolicyState(Objects.requireNonNull(defaults)); } + /** + * @param auditActionsAndGroups A list of Actions-Groups and Actions to audit. + * + * @return builder + * + */ + public Builder auditActionsAndGroups(@Nullable Output> auditActionsAndGroups) { + $.auditActionsAndGroups = auditActionsAndGroups; + return this; + } + + /** + * @param auditActionsAndGroups A list of Actions-Groups and Actions to audit. + * + * @return builder + * + */ + public Builder auditActionsAndGroups(List auditActionsAndGroups) { + return auditActionsAndGroups(Output.of(auditActionsAndGroups)); + } + + /** + * @param auditActionsAndGroups A list of Actions-Groups and Actions to audit. + * + * @return builder + * + */ + public Builder auditActionsAndGroups(String... auditActionsAndGroups) { + return auditActionsAndGroups(List.of(auditActionsAndGroups)); + } + /** * @param enabled Whether to enable the extended auditing policy. Possible values are `true` and `false`. Defaults to `true`. * @@ -218,6 +282,27 @@ public Builder logMonitoringEnabled(Boolean logMonitoringEnabled) { return logMonitoringEnabled(Output.of(logMonitoringEnabled)); } + /** + * @param predicateExpression Specifies condition of where clause when creating an audit. + * + * @return builder + * + */ + public Builder predicateExpression(@Nullable Output predicateExpression) { + $.predicateExpression = predicateExpression; + return this; + } + + /** + * @param predicateExpression Specifies condition of where clause when creating an audit. + * + * @return builder + * + */ + public Builder predicateExpression(String predicateExpression) { + return predicateExpression(Output.of(predicateExpression)); + } + /** * @param retentionInDays The number of days to retain logs for in the storage account. Defaults to `0`. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/netapp/Account.java b/sdk/java/src/main/java/com/pulumi/azure/netapp/Account.java index 6c638df968..d049f559da 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/netapp/Account.java +++ b/sdk/java/src/main/java/com/pulumi/azure/netapp/Account.java @@ -97,6 +97,8 @@ * $ pulumi import azure:netapp/account:Account example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.NetApp/netAppAccounts/account1 * ``` * + * ~> **IMPORTANT:** When importing a NetApp account, the `active_directory.password` and `active_directory.server_root_ca_certificate` values *cannot* be retrieved from the Azure API and will need to be redeclared within the resource. + * */ @ResourceType(type="azure:netapp/account:Account") public class Account extends com.pulumi.resources.CustomResource { diff --git a/sdk/java/src/main/java/com/pulumi/azure/netapp/Volume.java b/sdk/java/src/main/java/com/pulumi/azure/netapp/Volume.java index cc257595b2..32ea67c6ce 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/netapp/Volume.java +++ b/sdk/java/src/main/java/com/pulumi/azure/netapp/Volume.java @@ -132,6 +132,22 @@ public Output encryptionKeySource() { public Output>> exportPolicyRules() { return Codegen.optional(this.exportPolicyRules); } + /** + * Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + */ + @Export(name="kerberosEnabled", refs={Boolean.class}, tree="[0]") + private Output kerberosEnabled; + + /** + * @return Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + */ + public Output> kerberosEnabled() { + return Codegen.optional(this.kerberosEnabled); + } /** * The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. * @@ -286,6 +302,20 @@ public Output serviceLevel() { public Output> smbAccessBasedEnumerationEnabled() { return Codegen.optional(this.smbAccessBasedEnumerationEnabled); } + /** + * Enable SMB Continuous Availability. + * + */ + @Export(name="smbContinuousAvailabilityEnabled", refs={Boolean.class}, tree="[0]") + private Output smbContinuousAvailabilityEnabled; + + /** + * @return Enable SMB Continuous Availability. + * + */ + public Output> smbContinuousAvailabilityEnabled() { + return Codegen.optional(this.smbContinuousAvailabilityEnabled); + } /** * Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) * diff --git a/sdk/java/src/main/java/com/pulumi/azure/netapp/VolumeArgs.java b/sdk/java/src/main/java/com/pulumi/azure/netapp/VolumeArgs.java index 8ffa1b83ea..c0e7512880 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/netapp/VolumeArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/netapp/VolumeArgs.java @@ -129,6 +129,23 @@ public Optional>> exportPolicyRules() { return Optional.ofNullable(this.exportPolicyRules); } + /** + * Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + */ + @Import(name="kerberosEnabled") + private @Nullable Output kerberosEnabled; + + /** + * @return Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + */ + public Optional> kerberosEnabled() { + return Optional.ofNullable(this.kerberosEnabled); + } + /** * The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. * @@ -279,6 +296,21 @@ public Optional> smbAccessBasedEnumerationEnabled() { return Optional.ofNullable(this.smbAccessBasedEnumerationEnabled); } + /** + * Enable SMB Continuous Availability. + * + */ + @Import(name="smbContinuousAvailabilityEnabled") + private @Nullable Output smbContinuousAvailabilityEnabled; + + /** + * @return Enable SMB Continuous Availability. + * + */ + public Optional> smbContinuousAvailabilityEnabled() { + return Optional.ofNullable(this.smbContinuousAvailabilityEnabled); + } + /** * Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) * @@ -413,6 +445,7 @@ private VolumeArgs(VolumeArgs $) { this.dataProtectionSnapshotPolicy = $.dataProtectionSnapshotPolicy; this.encryptionKeySource = $.encryptionKeySource; this.exportPolicyRules = $.exportPolicyRules; + this.kerberosEnabled = $.kerberosEnabled; this.keyVaultPrivateEndpointId = $.keyVaultPrivateEndpointId; this.location = $.location; this.name = $.name; @@ -423,6 +456,7 @@ private VolumeArgs(VolumeArgs $) { this.securityStyle = $.securityStyle; this.serviceLevel = $.serviceLevel; this.smbAccessBasedEnumerationEnabled = $.smbAccessBasedEnumerationEnabled; + this.smbContinuousAvailabilityEnabled = $.smbContinuousAvailabilityEnabled; this.smbNonBrowsableEnabled = $.smbNonBrowsableEnabled; this.snapshotDirectoryVisible = $.snapshotDirectoryVisible; this.storageQuotaInGb = $.storageQuotaInGb; @@ -608,6 +642,29 @@ public Builder exportPolicyRules(VolumeExportPolicyRuleArgs... exportPolicyRules return exportPolicyRules(List.of(exportPolicyRules)); } + /** + * @param kerberosEnabled Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + * @return builder + * + */ + public Builder kerberosEnabled(@Nullable Output kerberosEnabled) { + $.kerberosEnabled = kerberosEnabled; + return this; + } + + /** + * @param kerberosEnabled Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + * @return builder + * + */ + public Builder kerberosEnabled(Boolean kerberosEnabled) { + return kerberosEnabled(Output.of(kerberosEnabled)); + } + /** * @param keyVaultPrivateEndpointId The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. * @@ -828,6 +885,27 @@ public Builder smbAccessBasedEnumerationEnabled(Boolean smbAccessBasedEnumeratio return smbAccessBasedEnumerationEnabled(Output.of(smbAccessBasedEnumerationEnabled)); } + /** + * @param smbContinuousAvailabilityEnabled Enable SMB Continuous Availability. + * + * @return builder + * + */ + public Builder smbContinuousAvailabilityEnabled(@Nullable Output smbContinuousAvailabilityEnabled) { + $.smbContinuousAvailabilityEnabled = smbContinuousAvailabilityEnabled; + return this; + } + + /** + * @param smbContinuousAvailabilityEnabled Enable SMB Continuous Availability. + * + * @return builder + * + */ + public Builder smbContinuousAvailabilityEnabled(Boolean smbContinuousAvailabilityEnabled) { + return smbContinuousAvailabilityEnabled(Output.of(smbContinuousAvailabilityEnabled)); + } + /** * @param smbNonBrowsableEnabled Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) * diff --git a/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeExportPolicyRuleArgs.java b/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeExportPolicyRuleArgs.java index a43aa7d769..690a39d313 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeExportPolicyRuleArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeExportPolicyRuleArgs.java @@ -34,6 +34,96 @@ public Output> allowedClients() { return this.allowedClients; } + /** + * Is Kerberos 5 read-only access permitted to this volume? + * + */ + @Import(name="kerberos5ReadOnlyEnabled") + private @Nullable Output kerberos5ReadOnlyEnabled; + + /** + * @return Is Kerberos 5 read-only access permitted to this volume? + * + */ + public Optional> kerberos5ReadOnlyEnabled() { + return Optional.ofNullable(this.kerberos5ReadOnlyEnabled); + } + + /** + * Is Kerberos 5 read/write permitted to this volume? + * + */ + @Import(name="kerberos5ReadWriteEnabled") + private @Nullable Output kerberos5ReadWriteEnabled; + + /** + * @return Is Kerberos 5 read/write permitted to this volume? + * + */ + public Optional> kerberos5ReadWriteEnabled() { + return Optional.ofNullable(this.kerberos5ReadWriteEnabled); + } + + /** + * Is Kerberos 5i read-only permitted to this volume? + * + */ + @Import(name="kerberos5iReadOnlyEnabled") + private @Nullable Output kerberos5iReadOnlyEnabled; + + /** + * @return Is Kerberos 5i read-only permitted to this volume? + * + */ + public Optional> kerberos5iReadOnlyEnabled() { + return Optional.ofNullable(this.kerberos5iReadOnlyEnabled); + } + + /** + * Is Kerberos 5i read/write permitted to this volume? + * + */ + @Import(name="kerberos5iReadWriteEnabled") + private @Nullable Output kerberos5iReadWriteEnabled; + + /** + * @return Is Kerberos 5i read/write permitted to this volume? + * + */ + public Optional> kerberos5iReadWriteEnabled() { + return Optional.ofNullable(this.kerberos5iReadWriteEnabled); + } + + /** + * Is Kerberos 5p read-only permitted to this volume? + * + */ + @Import(name="kerberos5pReadOnlyEnabled") + private @Nullable Output kerberos5pReadOnlyEnabled; + + /** + * @return Is Kerberos 5p read-only permitted to this volume? + * + */ + public Optional> kerberos5pReadOnlyEnabled() { + return Optional.ofNullable(this.kerberos5pReadOnlyEnabled); + } + + /** + * Is Kerberos 5p read/write permitted to this volume? + * + */ + @Import(name="kerberos5pReadWriteEnabled") + private @Nullable Output kerberos5pReadWriteEnabled; + + /** + * @return Is Kerberos 5p read/write permitted to this volume? + * + */ + public Optional> kerberos5pReadWriteEnabled() { + return Optional.ofNullable(this.kerberos5pReadWriteEnabled); + } + /** * A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`. * @@ -113,6 +203,12 @@ private VolumeExportPolicyRuleArgs() {} private VolumeExportPolicyRuleArgs(VolumeExportPolicyRuleArgs $) { this.allowedClients = $.allowedClients; + this.kerberos5ReadOnlyEnabled = $.kerberos5ReadOnlyEnabled; + this.kerberos5ReadWriteEnabled = $.kerberos5ReadWriteEnabled; + this.kerberos5iReadOnlyEnabled = $.kerberos5iReadOnlyEnabled; + this.kerberos5iReadWriteEnabled = $.kerberos5iReadWriteEnabled; + this.kerberos5pReadOnlyEnabled = $.kerberos5pReadOnlyEnabled; + this.kerberos5pReadWriteEnabled = $.kerberos5pReadWriteEnabled; this.protocolsEnabled = $.protocolsEnabled; this.rootAccessEnabled = $.rootAccessEnabled; this.ruleIndex = $.ruleIndex; @@ -169,6 +265,132 @@ public Builder allowedClients(String... allowedClients) { return allowedClients(List.of(allowedClients)); } + /** + * @param kerberos5ReadOnlyEnabled Is Kerberos 5 read-only access permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5ReadOnlyEnabled(@Nullable Output kerberos5ReadOnlyEnabled) { + $.kerberos5ReadOnlyEnabled = kerberos5ReadOnlyEnabled; + return this; + } + + /** + * @param kerberos5ReadOnlyEnabled Is Kerberos 5 read-only access permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5ReadOnlyEnabled(Boolean kerberos5ReadOnlyEnabled) { + return kerberos5ReadOnlyEnabled(Output.of(kerberos5ReadOnlyEnabled)); + } + + /** + * @param kerberos5ReadWriteEnabled Is Kerberos 5 read/write permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5ReadWriteEnabled(@Nullable Output kerberos5ReadWriteEnabled) { + $.kerberos5ReadWriteEnabled = kerberos5ReadWriteEnabled; + return this; + } + + /** + * @param kerberos5ReadWriteEnabled Is Kerberos 5 read/write permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5ReadWriteEnabled(Boolean kerberos5ReadWriteEnabled) { + return kerberos5ReadWriteEnabled(Output.of(kerberos5ReadWriteEnabled)); + } + + /** + * @param kerberos5iReadOnlyEnabled Is Kerberos 5i read-only permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5iReadOnlyEnabled(@Nullable Output kerberos5iReadOnlyEnabled) { + $.kerberos5iReadOnlyEnabled = kerberos5iReadOnlyEnabled; + return this; + } + + /** + * @param kerberos5iReadOnlyEnabled Is Kerberos 5i read-only permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5iReadOnlyEnabled(Boolean kerberos5iReadOnlyEnabled) { + return kerberos5iReadOnlyEnabled(Output.of(kerberos5iReadOnlyEnabled)); + } + + /** + * @param kerberos5iReadWriteEnabled Is Kerberos 5i read/write permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5iReadWriteEnabled(@Nullable Output kerberos5iReadWriteEnabled) { + $.kerberos5iReadWriteEnabled = kerberos5iReadWriteEnabled; + return this; + } + + /** + * @param kerberos5iReadWriteEnabled Is Kerberos 5i read/write permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5iReadWriteEnabled(Boolean kerberos5iReadWriteEnabled) { + return kerberos5iReadWriteEnabled(Output.of(kerberos5iReadWriteEnabled)); + } + + /** + * @param kerberos5pReadOnlyEnabled Is Kerberos 5p read-only permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5pReadOnlyEnabled(@Nullable Output kerberos5pReadOnlyEnabled) { + $.kerberos5pReadOnlyEnabled = kerberos5pReadOnlyEnabled; + return this; + } + + /** + * @param kerberos5pReadOnlyEnabled Is Kerberos 5p read-only permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5pReadOnlyEnabled(Boolean kerberos5pReadOnlyEnabled) { + return kerberos5pReadOnlyEnabled(Output.of(kerberos5pReadOnlyEnabled)); + } + + /** + * @param kerberos5pReadWriteEnabled Is Kerberos 5p read/write permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5pReadWriteEnabled(@Nullable Output kerberos5pReadWriteEnabled) { + $.kerberos5pReadWriteEnabled = kerberos5pReadWriteEnabled; + return this; + } + + /** + * @param kerberos5pReadWriteEnabled Is Kerberos 5p read/write permitted to this volume? + * + * @return builder + * + */ + public Builder kerberos5pReadWriteEnabled(Boolean kerberos5pReadWriteEnabled) { + return kerberos5pReadWriteEnabled(Output.of(kerberos5pReadWriteEnabled)); + } + /** * @param protocolsEnabled A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`. * diff --git a/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeState.java b/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeState.java index d20b2c3c7e..03f2879e3b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/netapp/inputs/VolumeState.java @@ -128,6 +128,23 @@ public Optional>> exportPolicyRules() { return Optional.ofNullable(this.exportPolicyRules); } + /** + * Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + */ + @Import(name="kerberosEnabled") + private @Nullable Output kerberosEnabled; + + /** + * @return Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + */ + public Optional> kerberosEnabled() { + return Optional.ofNullable(this.kerberosEnabled); + } + /** * The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. * @@ -293,6 +310,21 @@ public Optional> smbAccessBasedEnumerationEnabled() { return Optional.ofNullable(this.smbAccessBasedEnumerationEnabled); } + /** + * Enable SMB Continuous Availability. + * + */ + @Import(name="smbContinuousAvailabilityEnabled") + private @Nullable Output smbContinuousAvailabilityEnabled; + + /** + * @return Enable SMB Continuous Availability. + * + */ + public Optional> smbContinuousAvailabilityEnabled() { + return Optional.ofNullable(this.smbContinuousAvailabilityEnabled); + } + /** * Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) * @@ -427,6 +459,7 @@ private VolumeState(VolumeState $) { this.dataProtectionSnapshotPolicy = $.dataProtectionSnapshotPolicy; this.encryptionKeySource = $.encryptionKeySource; this.exportPolicyRules = $.exportPolicyRules; + this.kerberosEnabled = $.kerberosEnabled; this.keyVaultPrivateEndpointId = $.keyVaultPrivateEndpointId; this.location = $.location; this.mountIpAddresses = $.mountIpAddresses; @@ -438,6 +471,7 @@ private VolumeState(VolumeState $) { this.securityStyle = $.securityStyle; this.serviceLevel = $.serviceLevel; this.smbAccessBasedEnumerationEnabled = $.smbAccessBasedEnumerationEnabled; + this.smbContinuousAvailabilityEnabled = $.smbContinuousAvailabilityEnabled; this.smbNonBrowsableEnabled = $.smbNonBrowsableEnabled; this.snapshotDirectoryVisible = $.snapshotDirectoryVisible; this.storageQuotaInGb = $.storageQuotaInGb; @@ -623,6 +657,29 @@ public Builder exportPolicyRules(VolumeExportPolicyRuleArgs... exportPolicyRules return exportPolicyRules(List.of(exportPolicyRules)); } + /** + * @param kerberosEnabled Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + * @return builder + * + */ + public Builder kerberosEnabled(@Nullable Output kerberosEnabled) { + $.kerberosEnabled = kerberosEnabled; + return this; + } + + /** + * @param kerberosEnabled Enable to allow Kerberos secured volumes. Requires appropriate export rules as well as the parent + * `azurerm_netapp_account` having a defined AD connection. + * + * @return builder + * + */ + public Builder kerberosEnabled(Boolean kerberosEnabled) { + return kerberosEnabled(Output.of(kerberosEnabled)); + } + /** * @param keyVaultPrivateEndpointId The Private Endpoint ID for Key Vault, which is required when using customer-managed keys. This is required with `encryption_key_source`. Changing this forces a new resource to be created. * @@ -874,6 +931,27 @@ public Builder smbAccessBasedEnumerationEnabled(Boolean smbAccessBasedEnumeratio return smbAccessBasedEnumerationEnabled(Output.of(smbAccessBasedEnumerationEnabled)); } + /** + * @param smbContinuousAvailabilityEnabled Enable SMB Continuous Availability. + * + * @return builder + * + */ + public Builder smbContinuousAvailabilityEnabled(@Nullable Output smbContinuousAvailabilityEnabled) { + $.smbContinuousAvailabilityEnabled = smbContinuousAvailabilityEnabled; + return this; + } + + /** + * @param smbContinuousAvailabilityEnabled Enable SMB Continuous Availability. + * + * @return builder + * + */ + public Builder smbContinuousAvailabilityEnabled(Boolean smbContinuousAvailabilityEnabled) { + return smbContinuousAvailabilityEnabled(Output.of(smbContinuousAvailabilityEnabled)); + } + /** * @param smbNonBrowsableEnabled Limits clients from browsing for an SMB share by hiding the share from view in Windows Explorer or when listing shares in "net view." Only end users that know the absolute paths to the share are able to find the share. Defaults to `false`. For more information, please refer to [Understand NAS share permissions in Azure NetApp Files](https://learn.microsoft.com/en-us/azure/azure-netapp-files/network-attached-storage-permissions#:~:text=Non%2Dbrowsable%20shares,find%20the%20share.) * diff --git a/sdk/java/src/main/java/com/pulumi/azure/netapp/outputs/VolumeExportPolicyRule.java b/sdk/java/src/main/java/com/pulumi/azure/netapp/outputs/VolumeExportPolicyRule.java index 983f65f536..c3a412688f 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/netapp/outputs/VolumeExportPolicyRule.java +++ b/sdk/java/src/main/java/com/pulumi/azure/netapp/outputs/VolumeExportPolicyRule.java @@ -20,6 +20,36 @@ public final class VolumeExportPolicyRule { * */ private List allowedClients; + /** + * @return Is Kerberos 5 read-only access permitted to this volume? + * + */ + private @Nullable Boolean kerberos5ReadOnlyEnabled; + /** + * @return Is Kerberos 5 read/write permitted to this volume? + * + */ + private @Nullable Boolean kerberos5ReadWriteEnabled; + /** + * @return Is Kerberos 5i read-only permitted to this volume? + * + */ + private @Nullable Boolean kerberos5iReadOnlyEnabled; + /** + * @return Is Kerberos 5i read/write permitted to this volume? + * + */ + private @Nullable Boolean kerberos5iReadWriteEnabled; + /** + * @return Is Kerberos 5p read-only permitted to this volume? + * + */ + private @Nullable Boolean kerberos5pReadOnlyEnabled; + /** + * @return Is Kerberos 5p read/write permitted to this volume? + * + */ + private @Nullable Boolean kerberos5pReadWriteEnabled; /** * @return A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`. * @@ -54,6 +84,48 @@ private VolumeExportPolicyRule() {} public List allowedClients() { return this.allowedClients; } + /** + * @return Is Kerberos 5 read-only access permitted to this volume? + * + */ + public Optional kerberos5ReadOnlyEnabled() { + return Optional.ofNullable(this.kerberos5ReadOnlyEnabled); + } + /** + * @return Is Kerberos 5 read/write permitted to this volume? + * + */ + public Optional kerberos5ReadWriteEnabled() { + return Optional.ofNullable(this.kerberos5ReadWriteEnabled); + } + /** + * @return Is Kerberos 5i read-only permitted to this volume? + * + */ + public Optional kerberos5iReadOnlyEnabled() { + return Optional.ofNullable(this.kerberos5iReadOnlyEnabled); + } + /** + * @return Is Kerberos 5i read/write permitted to this volume? + * + */ + public Optional kerberos5iReadWriteEnabled() { + return Optional.ofNullable(this.kerberos5iReadWriteEnabled); + } + /** + * @return Is Kerberos 5p read-only permitted to this volume? + * + */ + public Optional kerberos5pReadOnlyEnabled() { + return Optional.ofNullable(this.kerberos5pReadOnlyEnabled); + } + /** + * @return Is Kerberos 5p read/write permitted to this volume? + * + */ + public Optional kerberos5pReadWriteEnabled() { + return Optional.ofNullable(this.kerberos5pReadWriteEnabled); + } /** * @return A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifs_enabled`, `nfsv3_enabled` and `nfsv4_enabled`. * @@ -100,6 +172,12 @@ public static Builder builder(VolumeExportPolicyRule defaults) { @CustomType.Builder public static final class Builder { private List allowedClients; + private @Nullable Boolean kerberos5ReadOnlyEnabled; + private @Nullable Boolean kerberos5ReadWriteEnabled; + private @Nullable Boolean kerberos5iReadOnlyEnabled; + private @Nullable Boolean kerberos5iReadWriteEnabled; + private @Nullable Boolean kerberos5pReadOnlyEnabled; + private @Nullable Boolean kerberos5pReadWriteEnabled; private @Nullable String protocolsEnabled; private @Nullable Boolean rootAccessEnabled; private Integer ruleIndex; @@ -109,6 +187,12 @@ public Builder() {} public Builder(VolumeExportPolicyRule defaults) { Objects.requireNonNull(defaults); this.allowedClients = defaults.allowedClients; + this.kerberos5ReadOnlyEnabled = defaults.kerberos5ReadOnlyEnabled; + this.kerberos5ReadWriteEnabled = defaults.kerberos5ReadWriteEnabled; + this.kerberos5iReadOnlyEnabled = defaults.kerberos5iReadOnlyEnabled; + this.kerberos5iReadWriteEnabled = defaults.kerberos5iReadWriteEnabled; + this.kerberos5pReadOnlyEnabled = defaults.kerberos5pReadOnlyEnabled; + this.kerberos5pReadWriteEnabled = defaults.kerberos5pReadWriteEnabled; this.protocolsEnabled = defaults.protocolsEnabled; this.rootAccessEnabled = defaults.rootAccessEnabled; this.ruleIndex = defaults.ruleIndex; @@ -128,6 +212,42 @@ public Builder allowedClients(String... allowedClients) { return allowedClients(List.of(allowedClients)); } @CustomType.Setter + public Builder kerberos5ReadOnlyEnabled(@Nullable Boolean kerberos5ReadOnlyEnabled) { + + this.kerberos5ReadOnlyEnabled = kerberos5ReadOnlyEnabled; + return this; + } + @CustomType.Setter + public Builder kerberos5ReadWriteEnabled(@Nullable Boolean kerberos5ReadWriteEnabled) { + + this.kerberos5ReadWriteEnabled = kerberos5ReadWriteEnabled; + return this; + } + @CustomType.Setter + public Builder kerberos5iReadOnlyEnabled(@Nullable Boolean kerberos5iReadOnlyEnabled) { + + this.kerberos5iReadOnlyEnabled = kerberos5iReadOnlyEnabled; + return this; + } + @CustomType.Setter + public Builder kerberos5iReadWriteEnabled(@Nullable Boolean kerberos5iReadWriteEnabled) { + + this.kerberos5iReadWriteEnabled = kerberos5iReadWriteEnabled; + return this; + } + @CustomType.Setter + public Builder kerberos5pReadOnlyEnabled(@Nullable Boolean kerberos5pReadOnlyEnabled) { + + this.kerberos5pReadOnlyEnabled = kerberos5pReadOnlyEnabled; + return this; + } + @CustomType.Setter + public Builder kerberos5pReadWriteEnabled(@Nullable Boolean kerberos5pReadWriteEnabled) { + + this.kerberos5pReadWriteEnabled = kerberos5pReadWriteEnabled; + return this; + } + @CustomType.Setter public Builder protocolsEnabled(@Nullable String protocolsEnabled) { this.protocolsEnabled = protocolsEnabled; @@ -162,6 +282,12 @@ public Builder unixReadWrite(@Nullable Boolean unixReadWrite) { public VolumeExportPolicyRule build() { final var _resultValue = new VolumeExportPolicyRule(); _resultValue.allowedClients = allowedClients; + _resultValue.kerberos5ReadOnlyEnabled = kerberos5ReadOnlyEnabled; + _resultValue.kerberos5ReadWriteEnabled = kerberos5ReadWriteEnabled; + _resultValue.kerberos5iReadOnlyEnabled = kerberos5iReadOnlyEnabled; + _resultValue.kerberos5iReadWriteEnabled = kerberos5iReadWriteEnabled; + _resultValue.kerberos5pReadOnlyEnabled = kerberos5pReadOnlyEnabled; + _resultValue.kerberos5pReadWriteEnabled = kerberos5pReadWriteEnabled; _resultValue.protocolsEnabled = protocolsEnabled; _resultValue.rootAccessEnabled = rootAccessEnabled; _resultValue.ruleIndex = ruleIndex; diff --git a/sdk/java/src/main/java/com/pulumi/azure/nginx/Deployment.java b/sdk/java/src/main/java/com/pulumi/azure/nginx/Deployment.java index 0b37835fb2..d5a13d007a 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/nginx/Deployment.java +++ b/sdk/java/src/main/java/com/pulumi/azure/nginx/Deployment.java @@ -427,14 +427,14 @@ public Output resourceGroupName() { return this.resourceGroupName; } /** - * Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * */ @Export(name="sku", refs={String.class}, tree="[0]") private Output sku; /** - * @return Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * @return Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * */ public Output sku() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/nginx/DeploymentArgs.java b/sdk/java/src/main/java/com/pulumi/azure/nginx/DeploymentArgs.java index 7277827c42..38f1a1ac6d 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/nginx/DeploymentArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/nginx/DeploymentArgs.java @@ -257,14 +257,14 @@ public Output resourceGroupName() { } /** - * Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * */ @Import(name="sku", required=true) private Output sku; /** - * @return Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * @return Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * */ public Output sku() { @@ -686,7 +686,7 @@ public Builder resourceGroupName(String resourceGroupName) { } /** - * @param sku Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * @param sku Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * * @return builder * @@ -697,7 +697,7 @@ public Builder sku(Output sku) { } /** - * @param sku Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * @param sku Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentFrontendPublicArgs.java b/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentFrontendPublicArgs.java index b43a203316..fa1fea9083 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentFrontendPublicArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentFrontendPublicArgs.java @@ -17,14 +17,14 @@ public final class DeploymentFrontendPublicArgs extends com.pulumi.resources.Res public static final DeploymentFrontendPublicArgs Empty = new DeploymentFrontendPublicArgs(); /** - * Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * Specifies a list of Public IP Resource ID to this Nginx Deployment. * */ @Import(name="ipAddresses") private @Nullable Output> ipAddresses; /** - * @return Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * @return Specifies a list of Public IP Resource ID to this Nginx Deployment. * */ public Optional>> ipAddresses() { @@ -56,7 +56,7 @@ public Builder(DeploymentFrontendPublicArgs defaults) { } /** - * @param ipAddresses Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * @param ipAddresses Specifies a list of Public IP Resource ID to this Nginx Deployment. * * @return builder * @@ -67,7 +67,7 @@ public Builder ipAddresses(@Nullable Output> ipAddresses) { } /** - * @param ipAddresses Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * @param ipAddresses Specifies a list of Public IP Resource ID to this Nginx Deployment. * * @return builder * @@ -77,7 +77,7 @@ public Builder ipAddresses(List ipAddresses) { } /** - * @param ipAddresses Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * @param ipAddresses Specifies a list of Public IP Resource ID to this Nginx Deployment. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentState.java b/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentState.java index f0414c7d63..af831a0a8e 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/nginx/inputs/DeploymentState.java @@ -286,14 +286,14 @@ public Optional> resourceGroupName() { } /** - * Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * */ @Import(name="sku") private @Nullable Output sku; /** - * @return Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * @return Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * */ public Optional> sku() { @@ -759,7 +759,7 @@ public Builder resourceGroupName(String resourceGroupName) { } /** - * @param sku Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * @param sku Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * * @return builder * @@ -770,7 +770,7 @@ public Builder sku(@Nullable Output sku) { } /** - * @param sku Specify the Name of Nginx deployment SKU. The possible value are `publicpreview_Monthly_gmz7xq9ge3py` and `standard_Monthly`. Changing this forces a new Nginx Deployment to be created. + * @param sku Specifies the Nginx Deployment SKU. Possible values include `standard_Monthly`. Changing this forces a new resource to be created. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/DeploymentFrontendPublic.java b/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/DeploymentFrontendPublic.java index cbce492617..9f00ef5090 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/DeploymentFrontendPublic.java +++ b/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/DeploymentFrontendPublic.java @@ -12,14 +12,14 @@ @CustomType public final class DeploymentFrontendPublic { /** - * @return Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * @return Specifies a list of Public IP Resource ID to this Nginx Deployment. * */ private @Nullable List ipAddresses; private DeploymentFrontendPublic() {} /** - * @return Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * @return Specifies a list of Public IP Resource ID to this Nginx Deployment. * */ public List ipAddresses() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/GetDeploymentResult.java b/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/GetDeploymentResult.java index eef48237a0..131b7df7e0 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/GetDeploymentResult.java +++ b/sdk/java/src/main/java/com/pulumi/azure/nginx/outputs/GetDeploymentResult.java @@ -102,7 +102,7 @@ public final class GetDeploymentResult { private String nginxVersion; private String resourceGroupName; /** - * @return Name of the SKU for this Nginx Deployment. + * @return The Nginx Deployment SKU. Possible values include `standard_Monthly`. * */ private String sku; @@ -229,7 +229,7 @@ public String resourceGroupName() { return this.resourceGroupName; } /** - * @return Name of the SKU for this Nginx Deployment. + * @return The Nginx Deployment SKU. Possible values include `standard_Monthly`. * */ public String sku() { diff --git a/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicy.java b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicy.java new file mode 100644 index 0000000000..c77a781df1 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicy.java @@ -0,0 +1,181 @@ +// *** 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.redis; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.redis.CacheAccessPolicyArgs; +import com.pulumi.azure.redis.inputs.CacheAccessPolicyState; +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 Redis Cache Access Policy + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * 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.redis.Cache; + * import com.pulumi.azure.redis.CacheArgs; + * import com.pulumi.azure.redis.inputs.CacheRedisConfigurationArgs; + * import com.pulumi.azure.redis.CacheAccessPolicy; + * import com.pulumi.azure.redis.CacheAccessPolicyArgs; + * 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("East US") + * .build()); + * + * var exampleCache = new Cache("exampleCache", CacheArgs.builder() + * .name("example") + * .location(example.location()) + * .resourceGroupName(example.name()) + * .capacity(1) + * .family("P") + * .skuName("Premium") + * .enableNonSslPort(false) + * .redisConfiguration(CacheRedisConfigurationArgs.builder() + * .maxmemoryReserved(2) + * .maxmemoryDelta(2) + * .maxmemoryPolicy("allkeys-lru") + * .build()) + * .build()); + * + * var exampleCacheAccessPolicy = new CacheAccessPolicy("exampleCacheAccessPolicy", CacheAccessPolicyArgs.builder() + * .name("example") + * .redisCacheId(exampleCache.id()) + * .permissions("+@read +@connection +cluster|info") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Redis Cache Access Policy can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:redis/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicies/policy1 + * ``` + * + */ +@ResourceType(type="azure:redis/cacheAccessPolicy:CacheAccessPolicy") +public class CacheAccessPolicy extends com.pulumi.resources.CustomResource { + /** + * The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Output name() { + return this.name; + } + /** + * Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Export(name="permissions", refs={String.class}, tree="[0]") + private Output permissions; + + /** + * @return Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Output permissions() { + return this.permissions; + } + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Export(name="redisCacheId", refs={String.class}, tree="[0]") + private Output redisCacheId; + + /** + * @return The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Output redisCacheId() { + return this.redisCacheId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public CacheAccessPolicy(String name) { + this(name, CacheAccessPolicyArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public CacheAccessPolicy(String name, CacheAccessPolicyArgs 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 CacheAccessPolicy(String name, CacheAccessPolicyArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:redis/cacheAccessPolicy:CacheAccessPolicy", name, args == null ? CacheAccessPolicyArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private CacheAccessPolicy(String name, Output id, @Nullable CacheAccessPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:redis/cacheAccessPolicy:CacheAccessPolicy", name, state, makeResourceOptions(options, id)); + } + + 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 CacheAccessPolicy get(String name, Output id, @Nullable CacheAccessPolicyState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new CacheAccessPolicy(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyArgs.java new file mode 100644 index 0000000000..d352b84aa5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyArgs.java @@ -0,0 +1,164 @@ +// *** 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.redis; + +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 CacheAccessPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final CacheAccessPolicyArgs Empty = new CacheAccessPolicyArgs(); + + /** + * The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Import(name="permissions", required=true) + private Output permissions; + + /** + * @return Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Output permissions() { + return this.permissions; + } + + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Import(name="redisCacheId", required=true) + private Output redisCacheId; + + /** + * @return The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Output redisCacheId() { + return this.redisCacheId; + } + + private CacheAccessPolicyArgs() {} + + private CacheAccessPolicyArgs(CacheAccessPolicyArgs $) { + this.name = $.name; + this.permissions = $.permissions; + this.redisCacheId = $.redisCacheId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CacheAccessPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CacheAccessPolicyArgs $; + + public Builder() { + $ = new CacheAccessPolicyArgs(); + } + + public Builder(CacheAccessPolicyArgs defaults) { + $ = new CacheAccessPolicyArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param name The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param permissions Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder permissions(Output permissions) { + $.permissions = permissions; + return this; + } + + /** + * @param permissions Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder permissions(String permissions) { + return permissions(Output.of(permissions)); + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder redisCacheId(Output redisCacheId) { + $.redisCacheId = redisCacheId; + return this; + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder redisCacheId(String redisCacheId) { + return redisCacheId(Output.of(redisCacheId)); + } + + public CacheAccessPolicyArgs build() { + if ($.permissions == null) { + throw new MissingRequiredPropertyException("CacheAccessPolicyArgs", "permissions"); + } + if ($.redisCacheId == null) { + throw new MissingRequiredPropertyException("CacheAccessPolicyArgs", "redisCacheId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyAssignment.java b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyAssignment.java new file mode 100644 index 0000000000..160363c28c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyAssignment.java @@ -0,0 +1,214 @@ +// *** 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.redis; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.redis.CacheAccessPolicyAssignmentArgs; +import com.pulumi.azure.redis.inputs.CacheAccessPolicyAssignmentState; +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 Redis Cache Access Policy Assignment + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.azure.core.CoreFunctions; + * import com.pulumi.azure.core.ResourceGroup; + * import com.pulumi.azure.core.ResourceGroupArgs; + * import com.pulumi.azure.redis.Cache; + * import com.pulumi.azure.redis.CacheArgs; + * import com.pulumi.azure.redis.inputs.CacheRedisConfigurationArgs; + * import com.pulumi.azure.redis.CacheAccessPolicyAssignment; + * import com.pulumi.azure.redis.CacheAccessPolicyAssignmentArgs; + * 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) { + * final var test = CoreFunctions.getClientConfig(); + * + * var example = new ResourceGroup("example", ResourceGroupArgs.builder() + * .name("example-resources") + * .location("East US") + * .build()); + * + * var exampleCache = new Cache("exampleCache", CacheArgs.builder() + * .name("example") + * .location(example.location()) + * .resourceGroupName(example.name()) + * .capacity(1) + * .family("P") + * .skuName("Premium") + * .enableNonSslPort(false) + * .redisConfiguration(CacheRedisConfigurationArgs.builder() + * .maxmemoryReserved(2) + * .maxmemoryDelta(2) + * .maxmemoryPolicy("allkeys-lru") + * .build()) + * .build()); + * + * var exampleCacheAccessPolicyAssignment = new CacheAccessPolicyAssignment("exampleCacheAccessPolicyAssignment", CacheAccessPolicyAssignmentArgs.builder() + * .name("example") + * .redisCacheId(exampleCache.id()) + * .accessPolicyName("Data Contributor") + * .objectId(test.applyValue(getClientConfigResult -> getClientConfigResult.objectId())) + * .objectIdAlias("ServicePrincipal") + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * Redis Cache Policy Assignment can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/assignment1 + * ``` + * + */ +@ResourceType(type="azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment") +public class CacheAccessPolicyAssignment extends com.pulumi.resources.CustomResource { + /** + * The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Export(name="accessPolicyName", refs={String.class}, tree="[0]") + private Output accessPolicyName; + + /** + * @return The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output accessPolicyName() { + return this.accessPolicyName; + } + /** + * The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Export(name="name", refs={String.class}, tree="[0]") + private Output name; + + /** + * @return The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output name() { + return this.name; + } + /** + * The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Export(name="objectId", refs={String.class}, tree="[0]") + private Output objectId; + + /** + * @return The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output objectId() { + return this.objectId; + } + /** + * The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Export(name="objectIdAlias", refs={String.class}, tree="[0]") + private Output objectIdAlias; + + /** + * @return The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output objectIdAlias() { + return this.objectIdAlias; + } + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Export(name="redisCacheId", refs={String.class}, tree="[0]") + private Output redisCacheId; + + /** + * @return The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output redisCacheId() { + return this.redisCacheId; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public CacheAccessPolicyAssignment(String name) { + this(name, CacheAccessPolicyAssignmentArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public CacheAccessPolicyAssignment(String name, CacheAccessPolicyAssignmentArgs 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 CacheAccessPolicyAssignment(String name, CacheAccessPolicyAssignmentArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment", name, args == null ? CacheAccessPolicyAssignmentArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private CacheAccessPolicyAssignment(String name, Output id, @Nullable CacheAccessPolicyAssignmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment", name, state, makeResourceOptions(options, id)); + } + + 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 CacheAccessPolicyAssignment get(String name, Output id, @Nullable CacheAccessPolicyAssignmentState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new CacheAccessPolicyAssignment(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyAssignmentArgs.java b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyAssignmentArgs.java new file mode 100644 index 0000000000..65f5054e66 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/redis/CacheAccessPolicyAssignmentArgs.java @@ -0,0 +1,244 @@ +// *** 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.redis; + +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 CacheAccessPolicyAssignmentArgs extends com.pulumi.resources.ResourceArgs { + + public static final CacheAccessPolicyAssignmentArgs Empty = new CacheAccessPolicyAssignmentArgs(); + + /** + * The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="accessPolicyName", required=true) + private Output accessPolicyName; + + /** + * @return The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output accessPolicyName() { + return this.accessPolicyName; + } + + /** + * The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="objectId", required=true) + private Output objectId; + + /** + * @return The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output objectId() { + return this.objectId; + } + + /** + * The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="objectIdAlias", required=true) + private Output objectIdAlias; + + /** + * @return The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output objectIdAlias() { + return this.objectIdAlias; + } + + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="redisCacheId", required=true) + private Output redisCacheId; + + /** + * @return The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Output redisCacheId() { + return this.redisCacheId; + } + + private CacheAccessPolicyAssignmentArgs() {} + + private CacheAccessPolicyAssignmentArgs(CacheAccessPolicyAssignmentArgs $) { + this.accessPolicyName = $.accessPolicyName; + this.name = $.name; + this.objectId = $.objectId; + this.objectIdAlias = $.objectIdAlias; + this.redisCacheId = $.redisCacheId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CacheAccessPolicyAssignmentArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CacheAccessPolicyAssignmentArgs $; + + public Builder() { + $ = new CacheAccessPolicyAssignmentArgs(); + } + + public Builder(CacheAccessPolicyAssignmentArgs defaults) { + $ = new CacheAccessPolicyAssignmentArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param accessPolicyName The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder accessPolicyName(Output accessPolicyName) { + $.accessPolicyName = accessPolicyName; + return this; + } + + /** + * @param accessPolicyName The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder accessPolicyName(String accessPolicyName) { + return accessPolicyName(Output.of(accessPolicyName)); + } + + /** + * @param name The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param objectId The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectId(Output objectId) { + $.objectId = objectId; + return this; + } + + /** + * @param objectId The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectId(String objectId) { + return objectId(Output.of(objectId)); + } + + /** + * @param objectIdAlias The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectIdAlias(Output objectIdAlias) { + $.objectIdAlias = objectIdAlias; + return this; + } + + /** + * @param objectIdAlias The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectIdAlias(String objectIdAlias) { + return objectIdAlias(Output.of(objectIdAlias)); + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder redisCacheId(Output redisCacheId) { + $.redisCacheId = redisCacheId; + return this; + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder redisCacheId(String redisCacheId) { + return redisCacheId(Output.of(redisCacheId)); + } + + public CacheAccessPolicyAssignmentArgs build() { + if ($.accessPolicyName == null) { + throw new MissingRequiredPropertyException("CacheAccessPolicyAssignmentArgs", "accessPolicyName"); + } + if ($.objectId == null) { + throw new MissingRequiredPropertyException("CacheAccessPolicyAssignmentArgs", "objectId"); + } + if ($.objectIdAlias == null) { + throw new MissingRequiredPropertyException("CacheAccessPolicyAssignmentArgs", "objectIdAlias"); + } + if ($.redisCacheId == null) { + throw new MissingRequiredPropertyException("CacheAccessPolicyAssignmentArgs", "redisCacheId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/redis/inputs/CacheAccessPolicyAssignmentState.java b/sdk/java/src/main/java/com/pulumi/azure/redis/inputs/CacheAccessPolicyAssignmentState.java new file mode 100644 index 0000000000..1aed73dc5f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/redis/inputs/CacheAccessPolicyAssignmentState.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.redis.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 CacheAccessPolicyAssignmentState extends com.pulumi.resources.ResourceArgs { + + public static final CacheAccessPolicyAssignmentState Empty = new CacheAccessPolicyAssignmentState(); + + /** + * The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="accessPolicyName") + private @Nullable Output accessPolicyName; + + /** + * @return The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Optional> accessPolicyName() { + return Optional.ofNullable(this.accessPolicyName); + } + + /** + * The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="objectId") + private @Nullable Output objectId; + + /** + * @return The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Optional> objectId() { + return Optional.ofNullable(this.objectId); + } + + /** + * The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="objectIdAlias") + private @Nullable Output objectIdAlias; + + /** + * @return The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Optional> objectIdAlias() { + return Optional.ofNullable(this.objectIdAlias); + } + + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + @Import(name="redisCacheId") + private @Nullable Output redisCacheId; + + /** + * @return The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + */ + public Optional> redisCacheId() { + return Optional.ofNullable(this.redisCacheId); + } + + private CacheAccessPolicyAssignmentState() {} + + private CacheAccessPolicyAssignmentState(CacheAccessPolicyAssignmentState $) { + this.accessPolicyName = $.accessPolicyName; + this.name = $.name; + this.objectId = $.objectId; + this.objectIdAlias = $.objectIdAlias; + this.redisCacheId = $.redisCacheId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CacheAccessPolicyAssignmentState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CacheAccessPolicyAssignmentState $; + + public Builder() { + $ = new CacheAccessPolicyAssignmentState(); + } + + public Builder(CacheAccessPolicyAssignmentState defaults) { + $ = new CacheAccessPolicyAssignmentState(Objects.requireNonNull(defaults)); + } + + /** + * @param accessPolicyName The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder accessPolicyName(@Nullable Output accessPolicyName) { + $.accessPolicyName = accessPolicyName; + return this; + } + + /** + * @param accessPolicyName The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder accessPolicyName(String accessPolicyName) { + return accessPolicyName(Output.of(accessPolicyName)); + } + + /** + * @param name The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param objectId The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectId(@Nullable Output objectId) { + $.objectId = objectId; + return this; + } + + /** + * @param objectId The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectId(String objectId) { + return objectId(Output.of(objectId)); + } + + /** + * @param objectIdAlias The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectIdAlias(@Nullable Output objectIdAlias) { + $.objectIdAlias = objectIdAlias; + return this; + } + + /** + * @param objectIdAlias The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder objectIdAlias(String objectIdAlias) { + return objectIdAlias(Output.of(objectIdAlias)); + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder redisCacheId(@Nullable Output redisCacheId) { + $.redisCacheId = redisCacheId; + return this; + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + * + * @return builder + * + */ + public Builder redisCacheId(String redisCacheId) { + return redisCacheId(Output.of(redisCacheId)); + } + + public CacheAccessPolicyAssignmentState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/redis/inputs/CacheAccessPolicyState.java b/sdk/java/src/main/java/com/pulumi/azure/redis/inputs/CacheAccessPolicyState.java new file mode 100644 index 0000000000..80b5eaaf12 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/redis/inputs/CacheAccessPolicyState.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.redis.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 CacheAccessPolicyState extends com.pulumi.resources.ResourceArgs { + + public static final CacheAccessPolicyState Empty = new CacheAccessPolicyState(); + + /** + * The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Import(name="permissions") + private @Nullable Output permissions; + + /** + * @return Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Optional> permissions() { + return Optional.ofNullable(this.permissions); + } + + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + @Import(name="redisCacheId") + private @Nullable Output redisCacheId; + + /** + * @return The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + */ + public Optional> redisCacheId() { + return Optional.ofNullable(this.redisCacheId); + } + + private CacheAccessPolicyState() {} + + private CacheAccessPolicyState(CacheAccessPolicyState $) { + this.name = $.name; + this.permissions = $.permissions; + this.redisCacheId = $.redisCacheId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CacheAccessPolicyState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CacheAccessPolicyState $; + + public Builder() { + $ = new CacheAccessPolicyState(); + } + + public Builder(CacheAccessPolicyState defaults) { + $ = new CacheAccessPolicyState(Objects.requireNonNull(defaults)); + } + + /** + * @param name The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param permissions Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder permissions(@Nullable Output permissions) { + $.permissions = permissions; + return this; + } + + /** + * @param permissions Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder permissions(String permissions) { + return permissions(Output.of(permissions)); + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder redisCacheId(@Nullable Output redisCacheId) { + $.redisCacheId = redisCacheId; + return this; + } + + /** + * @param redisCacheId The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + * + * @return builder + * + */ + public Builder redisCacheId(String redisCacheId) { + return redisCacheId(Output.of(redisCacheId)); + } + + public CacheAccessPolicyState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/HciCluster.java b/sdk/java/src/main/java/com/pulumi/azure/stack/HciCluster.java index dc5fa6e780..28b7bbfb7b 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/stack/HciCluster.java +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/HciCluster.java @@ -102,18 +102,18 @@ public Output> automanageConfigurationId() { return Codegen.optional(this.automanageConfigurationId); } /** - * The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * */ @Export(name="clientId", refs={String.class}, tree="[0]") - private Output clientId; + private Output clientId; /** - * @return The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * @return The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * */ - public Output clientId() { - return this.clientId; + public Output> clientId() { + return Codegen.optional(this.clientId); } /** * An immutable UUID for the Azure Stack HCI Cluster. diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/HciClusterArgs.java b/sdk/java/src/main/java/com/pulumi/azure/stack/HciClusterArgs.java index 06b164784c..2536072063 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/stack/HciClusterArgs.java +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/HciClusterArgs.java @@ -34,18 +34,18 @@ public Optional> automanageConfigurationId() { } /** - * The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * */ - @Import(name="clientId", required=true) - private Output clientId; + @Import(name="clientId") + private @Nullable Output clientId; /** - * @return The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * @return The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * */ - public Output clientId() { - return this.clientId; + public Optional> clientId() { + return Optional.ofNullable(this.clientId); } /** @@ -195,18 +195,18 @@ public Builder automanageConfigurationId(String automanageConfigurationId) { } /** - * @param clientId The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * @param clientId The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * * @return builder * */ - public Builder clientId(Output clientId) { + public Builder clientId(@Nullable Output clientId) { $.clientId = clientId; return this; } /** - * @param clientId The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * @param clientId The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * * @return builder * @@ -346,9 +346,6 @@ public Builder tenantId(String tenantId) { } public HciClusterArgs build() { - if ($.clientId == null) { - throw new MissingRequiredPropertyException("HciClusterArgs", "clientId"); - } if ($.resourceGroupName == null) { throw new MissingRequiredPropertyException("HciClusterArgs", "resourceGroupName"); } diff --git a/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciClusterState.java b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciClusterState.java index 6220025a0b..626a7885b0 100644 --- a/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciClusterState.java +++ b/sdk/java/src/main/java/com/pulumi/azure/stack/inputs/HciClusterState.java @@ -33,14 +33,14 @@ public Optional> automanageConfigurationId() { } /** - * The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * */ @Import(name="clientId") private @Nullable Output clientId; /** - * @return The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * @return The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * */ public Optional> clientId() { @@ -242,7 +242,7 @@ public Builder automanageConfigurationId(String automanageConfigurationId) { } /** - * @param clientId The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * @param clientId The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * * @return builder * @@ -253,7 +253,7 @@ public Builder clientId(@Nullable Output clientId) { } /** - * @param clientId The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * @param clientId The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. * * @return builder * diff --git a/sdk/java/src/main/java/com/pulumi/azure/systemcenter/SystemcenterFunctions.java b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/SystemcenterFunctions.java new file mode 100644 index 0000000000..3399261028 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/SystemcenterFunctions.java @@ -0,0 +1,181 @@ +// *** 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.systemcenter; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.systemcenter.inputs.GetVirtualMachineManagerInventoryItemsArgs; +import com.pulumi.azure.systemcenter.inputs.GetVirtualMachineManagerInventoryItemsPlainArgs; +import com.pulumi.azure.systemcenter.outputs.GetVirtualMachineManagerInventoryItemsResult; +import com.pulumi.core.Output; +import com.pulumi.core.TypeShape; +import com.pulumi.deployment.Deployment; +import com.pulumi.deployment.InvokeOptions; +import java.util.concurrent.CompletableFuture; + +public final class SystemcenterFunctions { + /** + * Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.azure.systemcenter.SystemcenterFunctions; + * import com.pulumi.azure.systemcenter.inputs.GetVirtualMachineManagerInventoryItemsArgs; + * 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) { + * final var example = SystemcenterFunctions.getVirtualMachineManagerInventoryItems(GetVirtualMachineManagerInventoryItemsArgs.builder() + * .inventoryType("Cloud") + * .systemCenterVirtualMachineManagerServerId(exampleAzurermSystemCenterVirtualMachineManagerServer.id()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static Output getVirtualMachineManagerInventoryItems(GetVirtualMachineManagerInventoryItemsArgs args) { + return getVirtualMachineManagerInventoryItems(args, InvokeOptions.Empty); + } + /** + * Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.azure.systemcenter.SystemcenterFunctions; + * import com.pulumi.azure.systemcenter.inputs.GetVirtualMachineManagerInventoryItemsArgs; + * 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) { + * final var example = SystemcenterFunctions.getVirtualMachineManagerInventoryItems(GetVirtualMachineManagerInventoryItemsArgs.builder() + * .inventoryType("Cloud") + * .systemCenterVirtualMachineManagerServerId(exampleAzurermSystemCenterVirtualMachineManagerServer.id()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getVirtualMachineManagerInventoryItemsPlain(GetVirtualMachineManagerInventoryItemsPlainArgs args) { + return getVirtualMachineManagerInventoryItemsPlain(args, InvokeOptions.Empty); + } + /** + * Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.azure.systemcenter.SystemcenterFunctions; + * import com.pulumi.azure.systemcenter.inputs.GetVirtualMachineManagerInventoryItemsArgs; + * 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) { + * final var example = SystemcenterFunctions.getVirtualMachineManagerInventoryItems(GetVirtualMachineManagerInventoryItemsArgs.builder() + * .inventoryType("Cloud") + * .systemCenterVirtualMachineManagerServerId(exampleAzurermSystemCenterVirtualMachineManagerServer.id()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static Output getVirtualMachineManagerInventoryItems(GetVirtualMachineManagerInventoryItemsArgs args, InvokeOptions options) { + return Deployment.getInstance().invoke("azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems", TypeShape.of(GetVirtualMachineManagerInventoryItemsResult.class), args, Utilities.withVersion(options)); + } + /** + * Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.azure.systemcenter.SystemcenterFunctions; + * import com.pulumi.azure.systemcenter.inputs.GetVirtualMachineManagerInventoryItemsArgs; + * 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) { + * final var example = SystemcenterFunctions.getVirtualMachineManagerInventoryItems(GetVirtualMachineManagerInventoryItemsArgs.builder() + * .inventoryType("Cloud") + * .systemCenterVirtualMachineManagerServerId(exampleAzurermSystemCenterVirtualMachineManagerServer.id()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + */ + public static CompletableFuture getVirtualMachineManagerInventoryItemsPlain(GetVirtualMachineManagerInventoryItemsPlainArgs args, InvokeOptions options) { + return Deployment.getInstance().invokeAsync("azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems", TypeShape.of(GetVirtualMachineManagerInventoryItemsResult.class), args, Utilities.withVersion(options)); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/systemcenter/inputs/GetVirtualMachineManagerInventoryItemsArgs.java b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/inputs/GetVirtualMachineManagerInventoryItemsArgs.java new file mode 100644 index 0000000000..661907472a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/inputs/GetVirtualMachineManagerInventoryItemsArgs.java @@ -0,0 +1,125 @@ +// *** 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.systemcenter.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 GetVirtualMachineManagerInventoryItemsArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetVirtualMachineManagerInventoryItemsArgs Empty = new GetVirtualMachineManagerInventoryItemsArgs(); + + /** + * The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + * + */ + @Import(name="inventoryType", required=true) + private Output inventoryType; + + /** + * @return The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + * + */ + public Output inventoryType() { + return this.inventoryType; + } + + /** + * The ID of the System Center Virtual Machine Manager Server. + * + */ + @Import(name="systemCenterVirtualMachineManagerServerId", required=true) + private Output systemCenterVirtualMachineManagerServerId; + + /** + * @return The ID of the System Center Virtual Machine Manager Server. + * + */ + public Output systemCenterVirtualMachineManagerServerId() { + return this.systemCenterVirtualMachineManagerServerId; + } + + private GetVirtualMachineManagerInventoryItemsArgs() {} + + private GetVirtualMachineManagerInventoryItemsArgs(GetVirtualMachineManagerInventoryItemsArgs $) { + this.inventoryType = $.inventoryType; + this.systemCenterVirtualMachineManagerServerId = $.systemCenterVirtualMachineManagerServerId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetVirtualMachineManagerInventoryItemsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetVirtualMachineManagerInventoryItemsArgs $; + + public Builder() { + $ = new GetVirtualMachineManagerInventoryItemsArgs(); + } + + public Builder(GetVirtualMachineManagerInventoryItemsArgs defaults) { + $ = new GetVirtualMachineManagerInventoryItemsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param inventoryType The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + * + * @return builder + * + */ + public Builder inventoryType(Output inventoryType) { + $.inventoryType = inventoryType; + return this; + } + + /** + * @param inventoryType The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + * + * @return builder + * + */ + public Builder inventoryType(String inventoryType) { + return inventoryType(Output.of(inventoryType)); + } + + /** + * @param systemCenterVirtualMachineManagerServerId The ID of the System Center Virtual Machine Manager Server. + * + * @return builder + * + */ + public Builder systemCenterVirtualMachineManagerServerId(Output systemCenterVirtualMachineManagerServerId) { + $.systemCenterVirtualMachineManagerServerId = systemCenterVirtualMachineManagerServerId; + return this; + } + + /** + * @param systemCenterVirtualMachineManagerServerId The ID of the System Center Virtual Machine Manager Server. + * + * @return builder + * + */ + public Builder systemCenterVirtualMachineManagerServerId(String systemCenterVirtualMachineManagerServerId) { + return systemCenterVirtualMachineManagerServerId(Output.of(systemCenterVirtualMachineManagerServerId)); + } + + public GetVirtualMachineManagerInventoryItemsArgs build() { + if ($.inventoryType == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsArgs", "inventoryType"); + } + if ($.systemCenterVirtualMachineManagerServerId == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsArgs", "systemCenterVirtualMachineManagerServerId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/systemcenter/inputs/GetVirtualMachineManagerInventoryItemsPlainArgs.java b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/inputs/GetVirtualMachineManagerInventoryItemsPlainArgs.java new file mode 100644 index 0000000000..3a43d698f8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/inputs/GetVirtualMachineManagerInventoryItemsPlainArgs.java @@ -0,0 +1,104 @@ +// *** 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.systemcenter.inputs; + +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + + +public final class GetVirtualMachineManagerInventoryItemsPlainArgs extends com.pulumi.resources.InvokeArgs { + + public static final GetVirtualMachineManagerInventoryItemsPlainArgs Empty = new GetVirtualMachineManagerInventoryItemsPlainArgs(); + + /** + * The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + * + */ + @Import(name="inventoryType", required=true) + private String inventoryType; + + /** + * @return The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + * + */ + public String inventoryType() { + return this.inventoryType; + } + + /** + * The ID of the System Center Virtual Machine Manager Server. + * + */ + @Import(name="systemCenterVirtualMachineManagerServerId", required=true) + private String systemCenterVirtualMachineManagerServerId; + + /** + * @return The ID of the System Center Virtual Machine Manager Server. + * + */ + public String systemCenterVirtualMachineManagerServerId() { + return this.systemCenterVirtualMachineManagerServerId; + } + + private GetVirtualMachineManagerInventoryItemsPlainArgs() {} + + private GetVirtualMachineManagerInventoryItemsPlainArgs(GetVirtualMachineManagerInventoryItemsPlainArgs $) { + this.inventoryType = $.inventoryType; + this.systemCenterVirtualMachineManagerServerId = $.systemCenterVirtualMachineManagerServerId; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(GetVirtualMachineManagerInventoryItemsPlainArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private GetVirtualMachineManagerInventoryItemsPlainArgs $; + + public Builder() { + $ = new GetVirtualMachineManagerInventoryItemsPlainArgs(); + } + + public Builder(GetVirtualMachineManagerInventoryItemsPlainArgs defaults) { + $ = new GetVirtualMachineManagerInventoryItemsPlainArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param inventoryType The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + * + * @return builder + * + */ + public Builder inventoryType(String inventoryType) { + $.inventoryType = inventoryType; + return this; + } + + /** + * @param systemCenterVirtualMachineManagerServerId The ID of the System Center Virtual Machine Manager Server. + * + * @return builder + * + */ + public Builder systemCenterVirtualMachineManagerServerId(String systemCenterVirtualMachineManagerServerId) { + $.systemCenterVirtualMachineManagerServerId = systemCenterVirtualMachineManagerServerId; + return this; + } + + public GetVirtualMachineManagerInventoryItemsPlainArgs build() { + if ($.inventoryType == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsPlainArgs", "inventoryType"); + } + if ($.systemCenterVirtualMachineManagerServerId == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsPlainArgs", "systemCenterVirtualMachineManagerServerId"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/systemcenter/outputs/GetVirtualMachineManagerInventoryItemsInventoryItem.java b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/outputs/GetVirtualMachineManagerInventoryItemsInventoryItem.java new file mode 100644 index 0000000000..72b51c3a1f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/outputs/GetVirtualMachineManagerInventoryItemsInventoryItem.java @@ -0,0 +1,104 @@ +// *** 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.systemcenter.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class GetVirtualMachineManagerInventoryItemsInventoryItem { + /** + * @return The ID of the System Center Virtual Machine Manager Inventory Item. + * + */ + private String id; + /** + * @return The name of the System Center Virtual Machine Manager Inventory Item. + * + */ + private String name; + /** + * @return The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + * + */ + private String uuid; + + private GetVirtualMachineManagerInventoryItemsInventoryItem() {} + /** + * @return The ID of the System Center Virtual Machine Manager Inventory Item. + * + */ + public String id() { + return this.id; + } + /** + * @return The name of the System Center Virtual Machine Manager Inventory Item. + * + */ + public String name() { + return this.name; + } + /** + * @return The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + * + */ + public String uuid() { + return this.uuid; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetVirtualMachineManagerInventoryItemsInventoryItem defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String id; + private String name; + private String uuid; + public Builder() {} + public Builder(GetVirtualMachineManagerInventoryItemsInventoryItem defaults) { + Objects.requireNonNull(defaults); + this.id = defaults.id; + this.name = defaults.name; + this.uuid = defaults.uuid; + } + + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsInventoryItem", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsInventoryItem", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder uuid(String uuid) { + if (uuid == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsInventoryItem", "uuid"); + } + this.uuid = uuid; + return this; + } + public GetVirtualMachineManagerInventoryItemsInventoryItem build() { + final var _resultValue = new GetVirtualMachineManagerInventoryItemsInventoryItem(); + _resultValue.id = id; + _resultValue.name = name; + _resultValue.uuid = uuid; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/systemcenter/outputs/GetVirtualMachineManagerInventoryItemsResult.java b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/outputs/GetVirtualMachineManagerInventoryItemsResult.java new file mode 100644 index 0000000000..8a10e1a5e8 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/systemcenter/outputs/GetVirtualMachineManagerInventoryItemsResult.java @@ -0,0 +1,116 @@ +// *** 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.systemcenter.outputs; + +import com.pulumi.azure.systemcenter.outputs.GetVirtualMachineManagerInventoryItemsInventoryItem; +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class GetVirtualMachineManagerInventoryItemsResult { + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + private String id; + /** + * @return One or more `inventory_items` blocks as defined below. + * + */ + private List inventoryItems; + private String inventoryType; + private String systemCenterVirtualMachineManagerServerId; + + private GetVirtualMachineManagerInventoryItemsResult() {} + /** + * @return The provider-assigned unique ID for this managed resource. + * + */ + public String id() { + return this.id; + } + /** + * @return One or more `inventory_items` blocks as defined below. + * + */ + public List inventoryItems() { + return this.inventoryItems; + } + public String inventoryType() { + return this.inventoryType; + } + public String systemCenterVirtualMachineManagerServerId() { + return this.systemCenterVirtualMachineManagerServerId; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(GetVirtualMachineManagerInventoryItemsResult defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String id; + private List inventoryItems; + private String inventoryType; + private String systemCenterVirtualMachineManagerServerId; + public Builder() {} + public Builder(GetVirtualMachineManagerInventoryItemsResult defaults) { + Objects.requireNonNull(defaults); + this.id = defaults.id; + this.inventoryItems = defaults.inventoryItems; + this.inventoryType = defaults.inventoryType; + this.systemCenterVirtualMachineManagerServerId = defaults.systemCenterVirtualMachineManagerServerId; + } + + @CustomType.Setter + public Builder id(String id) { + if (id == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsResult", "id"); + } + this.id = id; + return this; + } + @CustomType.Setter + public Builder inventoryItems(List inventoryItems) { + if (inventoryItems == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsResult", "inventoryItems"); + } + this.inventoryItems = inventoryItems; + return this; + } + public Builder inventoryItems(GetVirtualMachineManagerInventoryItemsInventoryItem... inventoryItems) { + return inventoryItems(List.of(inventoryItems)); + } + @CustomType.Setter + public Builder inventoryType(String inventoryType) { + if (inventoryType == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsResult", "inventoryType"); + } + this.inventoryType = inventoryType; + return this; + } + @CustomType.Setter + public Builder systemCenterVirtualMachineManagerServerId(String systemCenterVirtualMachineManagerServerId) { + if (systemCenterVirtualMachineManagerServerId == null) { + throw new MissingRequiredPropertyException("GetVirtualMachineManagerInventoryItemsResult", "systemCenterVirtualMachineManagerServerId"); + } + this.systemCenterVirtualMachineManagerServerId = systemCenterVirtualMachineManagerServerId; + return this; + } + public GetVirtualMachineManagerInventoryItemsResult build() { + final var _resultValue = new GetVirtualMachineManagerInventoryItemsResult(); + _resultValue.id = id; + _resultValue.inventoryItems = inventoryItems; + _resultValue.inventoryType = inventoryType; + _resultValue.systemCenterVirtualMachineManagerServerId = systemCenterVirtualMachineManagerServerId; + return _resultValue; + } + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/workloadssap/DiscoveryVirtualInstance.java b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/DiscoveryVirtualInstance.java new file mode 100644 index 0000000000..03e15817a6 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/DiscoveryVirtualInstance.java @@ -0,0 +1,275 @@ +// *** 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.workloadssap; + +import com.pulumi.azure.Utilities; +import com.pulumi.azure.workloadssap.DiscoveryVirtualInstanceArgs; +import com.pulumi.azure.workloadssap.inputs.DiscoveryVirtualInstanceState; +import com.pulumi.azure.workloadssap.outputs.DiscoveryVirtualInstanceIdentity; +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.Map; +import java.util.Optional; +import javax.annotation.Nullable; + +/** + * Manages an SAP Discovery Virtual Instance. + * + * > **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace "Microsoft.Workloads"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace "Microsoft.Workloads" --query "registrationState"`. Once this outputs "Registered" the Resource Provider is available for use. + * + * ## Example Usage + * + * <!--Start PulumiCodeChooser --> + * ```java + * 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.workloadssap.DiscoveryVirtualInstance; + * import com.pulumi.azure.workloadssap.DiscoveryVirtualInstanceArgs; + * import com.pulumi.azure.workloadssap.inputs.DiscoveryVirtualInstanceIdentityArgs; + * 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-sapvis") + * .location("West Europe") + * .build()); + * + * var exampleDiscoveryVirtualInstance = new DiscoveryVirtualInstance("exampleDiscoveryVirtualInstance", DiscoveryVirtualInstanceArgs.builder() + * .name("X01") + * .resourceGroupName(example.name()) + * .location(example.location()) + * .environment("NonProd") + * .sapProduct("S4HANA") + * .centralServerVirtualMachineId("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1") + * .managedStorageAccountName("managedsa") + * .identity(DiscoveryVirtualInstanceIdentityArgs.builder() + * .type("UserAssigned") + * .identityIds("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1") + * .build()) + * .build()); + * + * } + * } + * ``` + * <!--End PulumiCodeChooser --> + * + * ## Import + * + * SAP Discovery Virtual Instances can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1 + * ``` + * + */ +@ResourceType(type="azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance") +public class DiscoveryVirtualInstance extends com.pulumi.resources.CustomResource { + /** + * The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + */ + @Export(name="centralServerVirtualMachineId", refs={String.class}, tree="[0]") + private Output centralServerVirtualMachineId; + + /** + * @return The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + */ + public Output centralServerVirtualMachineId() { + return this.centralServerVirtualMachineId; + } + /** + * The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + */ + @Export(name="environment", refs={String.class}, tree="[0]") + private Output environment; + + /** + * @return The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + */ + public Output environment() { + return this.environment; + } + /** + * An `identity` block as defined below. + * + */ + @Export(name="identity", refs={DiscoveryVirtualInstanceIdentity.class}, tree="[0]") + private Output identity; + + /** + * @return An `identity` block as defined below. + * + */ + public Output> identity() { + return Codegen.optional(this.identity); + } + /** + * The Azure Region where the SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + public Output location() { + return this.location; + } + /** + * The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + @Export(name="managedResourceGroupName", refs={String.class}, tree="[0]") + private Output managedResourceGroupName; + + /** + * @return The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + public Output> managedResourceGroupName() { + return Codegen.optional(this.managedResourceGroupName); + } + /** + * The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + */ + @Export(name="managedStorageAccountName", refs={String.class}, tree="[0]") + private Output managedStorageAccountName; + + /** + * @return The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + */ + public Output> managedStorageAccountName() { + return Codegen.optional(this.managedStorageAccountName); + } + /** + * Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + public Output name() { + return this.name; + } + /** + * The name of the Resource Group where the SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + /** + * The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + */ + @Export(name="sapProduct", refs={String.class}, tree="[0]") + private Output sapProduct; + + /** + * @return The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + */ + public Output sapProduct() { + return this.sapProduct; + } + /** + * A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + */ + @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 SAP Discovery Virtual Instance. + * + */ + public Output>> tags() { + return Codegen.optional(this.tags); + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public DiscoveryVirtualInstance(String name) { + this(name, DiscoveryVirtualInstanceArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public DiscoveryVirtualInstance(String name, DiscoveryVirtualInstanceArgs 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 DiscoveryVirtualInstance(String name, DiscoveryVirtualInstanceArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance", name, args == null ? DiscoveryVirtualInstanceArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private DiscoveryVirtualInstance(String name, Output id, @Nullable DiscoveryVirtualInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance", name, state, makeResourceOptions(options, id)); + } + + 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 DiscoveryVirtualInstance get(String name, Output id, @Nullable DiscoveryVirtualInstanceState state, @Nullable com.pulumi.resources.CustomResourceOptions options) { + return new DiscoveryVirtualInstance(name, id, state, options); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/workloadssap/DiscoveryVirtualInstanceArgs.java b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/DiscoveryVirtualInstanceArgs.java new file mode 100644 index 0000000000..e2f380fe4a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/DiscoveryVirtualInstanceArgs.java @@ -0,0 +1,431 @@ +// *** 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.workloadssap; + +import com.pulumi.azure.workloadssap.inputs.DiscoveryVirtualInstanceIdentityArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DiscoveryVirtualInstanceArgs extends com.pulumi.resources.ResourceArgs { + + public static final DiscoveryVirtualInstanceArgs Empty = new DiscoveryVirtualInstanceArgs(); + + /** + * The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + */ + @Import(name="centralServerVirtualMachineId", required=true) + private Output centralServerVirtualMachineId; + + /** + * @return The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + */ + public Output centralServerVirtualMachineId() { + return this.centralServerVirtualMachineId; + } + + /** + * The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + */ + @Import(name="environment", required=true) + private Output environment; + + /** + * @return The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + */ + public Output environment() { + return this.environment; + } + + /** + * An `identity` block as defined below. + * + */ + @Import(name="identity") + private @Nullable Output identity; + + /** + * @return An `identity` block as defined below. + * + */ + public Optional> identity() { + return Optional.ofNullable(this.identity); + } + + /** + * The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + @Import(name="managedResourceGroupName") + private @Nullable Output managedResourceGroupName; + + /** + * @return The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + public Optional> managedResourceGroupName() { + return Optional.ofNullable(this.managedResourceGroupName); + } + + /** + * The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + */ + @Import(name="managedStorageAccountName") + private @Nullable Output managedStorageAccountName; + + /** + * @return The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + */ + public Optional> managedStorageAccountName() { + return Optional.ofNullable(this.managedStorageAccountName); + } + + /** + * Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + public Output resourceGroupName() { + return this.resourceGroupName; + } + + /** + * The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + */ + @Import(name="sapProduct", required=true) + private Output sapProduct; + + /** + * @return The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + */ + public Output sapProduct() { + return this.sapProduct; + } + + /** + * A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private DiscoveryVirtualInstanceArgs() {} + + private DiscoveryVirtualInstanceArgs(DiscoveryVirtualInstanceArgs $) { + this.centralServerVirtualMachineId = $.centralServerVirtualMachineId; + this.environment = $.environment; + this.identity = $.identity; + this.location = $.location; + this.managedResourceGroupName = $.managedResourceGroupName; + this.managedStorageAccountName = $.managedStorageAccountName; + this.name = $.name; + this.resourceGroupName = $.resourceGroupName; + this.sapProduct = $.sapProduct; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DiscoveryVirtualInstanceArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DiscoveryVirtualInstanceArgs $; + + public Builder() { + $ = new DiscoveryVirtualInstanceArgs(); + } + + public Builder(DiscoveryVirtualInstanceArgs defaults) { + $ = new DiscoveryVirtualInstanceArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param centralServerVirtualMachineId The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder centralServerVirtualMachineId(Output centralServerVirtualMachineId) { + $.centralServerVirtualMachineId = centralServerVirtualMachineId; + return this; + } + + /** + * @param centralServerVirtualMachineId The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder centralServerVirtualMachineId(String centralServerVirtualMachineId) { + return centralServerVirtualMachineId(Output.of(centralServerVirtualMachineId)); + } + + /** + * @param environment The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder environment(Output environment) { + $.environment = environment; + return this; + } + + /** + * @param environment The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder environment(String environment) { + return environment(Output.of(environment)); + } + + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(@Nullable Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(DiscoveryVirtualInstanceIdentityArgs identity) { + return identity(Output.of(identity)); + } + + /** + * @param location The Azure Region where the SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param managedResourceGroupName The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedResourceGroupName(@Nullable Output managedResourceGroupName) { + $.managedResourceGroupName = managedResourceGroupName; + return this; + } + + /** + * @param managedResourceGroupName The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedResourceGroupName(String managedResourceGroupName) { + return managedResourceGroupName(Output.of(managedResourceGroupName)); + } + + /** + * @param managedStorageAccountName The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedStorageAccountName(@Nullable Output managedStorageAccountName) { + $.managedStorageAccountName = managedStorageAccountName; + return this; + } + + /** + * @param managedStorageAccountName The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedStorageAccountName(String managedStorageAccountName) { + return managedStorageAccountName(Output.of(managedStorageAccountName)); + } + + /** + * @param name Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param sapProduct The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sapProduct(Output sapProduct) { + $.sapProduct = sapProduct; + return this; + } + + /** + * @param sapProduct The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sapProduct(String sapProduct) { + return sapProduct(Output.of(sapProduct)); + } + + /** + * @param tags A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public DiscoveryVirtualInstanceArgs build() { + if ($.centralServerVirtualMachineId == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceArgs", "centralServerVirtualMachineId"); + } + if ($.environment == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceArgs", "environment"); + } + if ($.resourceGroupName == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceArgs", "resourceGroupName"); + } + if ($.sapProduct == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceArgs", "sapProduct"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/workloadssap/inputs/DiscoveryVirtualInstanceIdentityArgs.java b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/inputs/DiscoveryVirtualInstanceIdentityArgs.java new file mode 100644 index 0000000000..d140796d7c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/inputs/DiscoveryVirtualInstanceIdentityArgs.java @@ -0,0 +1,136 @@ +// *** 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.workloadssap.inputs; + +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; + + +public final class DiscoveryVirtualInstanceIdentityArgs extends com.pulumi.resources.ResourceArgs { + + public static final DiscoveryVirtualInstanceIdentityArgs Empty = new DiscoveryVirtualInstanceIdentityArgs(); + + /** + * A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + * + */ + @Import(name="identityIds", required=true) + private Output> identityIds; + + /** + * @return A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + * + */ + public Output> identityIds() { + return this.identityIds; + } + + /** + * The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + * + */ + @Import(name="type", required=true) + private Output type; + + /** + * @return The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + * + */ + public Output type() { + return this.type; + } + + private DiscoveryVirtualInstanceIdentityArgs() {} + + private DiscoveryVirtualInstanceIdentityArgs(DiscoveryVirtualInstanceIdentityArgs $) { + this.identityIds = $.identityIds; + this.type = $.type; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DiscoveryVirtualInstanceIdentityArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DiscoveryVirtualInstanceIdentityArgs $; + + public Builder() { + $ = new DiscoveryVirtualInstanceIdentityArgs(); + } + + public Builder(DiscoveryVirtualInstanceIdentityArgs defaults) { + $ = new DiscoveryVirtualInstanceIdentityArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param identityIds A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + * + * @return builder + * + */ + public Builder identityIds(Output> identityIds) { + $.identityIds = identityIds; + return this; + } + + /** + * @param identityIds A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + * + * @return builder + * + */ + public Builder identityIds(List identityIds) { + return identityIds(Output.of(identityIds)); + } + + /** + * @param identityIds A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + * + * @return builder + * + */ + public Builder identityIds(String... identityIds) { + return identityIds(List.of(identityIds)); + } + + /** + * @param type The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + * + * @return builder + * + */ + public Builder type(Output type) { + $.type = type; + return this; + } + + /** + * @param type The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + * + * @return builder + * + */ + public Builder type(String type) { + return type(Output.of(type)); + } + + public DiscoveryVirtualInstanceIdentityArgs build() { + if ($.identityIds == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceIdentityArgs", "identityIds"); + } + if ($.type == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceIdentityArgs", "type"); + } + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/workloadssap/inputs/DiscoveryVirtualInstanceState.java b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/inputs/DiscoveryVirtualInstanceState.java new file mode 100644 index 0000000000..fe8ccb4a7f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/inputs/DiscoveryVirtualInstanceState.java @@ -0,0 +1,418 @@ +// *** 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.workloadssap.inputs; + +import com.pulumi.azure.workloadssap.inputs.DiscoveryVirtualInstanceIdentityArgs; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class DiscoveryVirtualInstanceState extends com.pulumi.resources.ResourceArgs { + + public static final DiscoveryVirtualInstanceState Empty = new DiscoveryVirtualInstanceState(); + + /** + * The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + */ + @Import(name="centralServerVirtualMachineId") + private @Nullable Output centralServerVirtualMachineId; + + /** + * @return The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + */ + public Optional> centralServerVirtualMachineId() { + return Optional.ofNullable(this.centralServerVirtualMachineId); + } + + /** + * The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + */ + @Import(name="environment") + private @Nullable Output environment; + + /** + * @return The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + */ + public Optional> environment() { + return Optional.ofNullable(this.environment); + } + + /** + * An `identity` block as defined below. + * + */ + @Import(name="identity") + private @Nullable Output identity; + + /** + * @return An `identity` block as defined below. + * + */ + public Optional> identity() { + return Optional.ofNullable(this.identity); + } + + /** + * The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + @Import(name="location") + private @Nullable Output location; + + /** + * @return The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + public Optional> location() { + return Optional.ofNullable(this.location); + } + + /** + * The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + @Import(name="managedResourceGroupName") + private @Nullable Output managedResourceGroupName; + + /** + * @return The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + public Optional> managedResourceGroupName() { + return Optional.ofNullable(this.managedResourceGroupName); + } + + /** + * The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + */ + @Import(name="managedStorageAccountName") + private @Nullable Output managedStorageAccountName; + + /** + * @return The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + */ + public Optional> managedStorageAccountName() { + return Optional.ofNullable(this.managedStorageAccountName); + } + + /** + * Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + */ + public Optional> resourceGroupName() { + return Optional.ofNullable(this.resourceGroupName); + } + + /** + * The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + */ + @Import(name="sapProduct") + private @Nullable Output sapProduct; + + /** + * @return The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + */ + public Optional> sapProduct() { + return Optional.ofNullable(this.sapProduct); + } + + /** + * A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + */ + @Import(name="tags") + private @Nullable Output> tags; + + /** + * @return A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + */ + public Optional>> tags() { + return Optional.ofNullable(this.tags); + } + + private DiscoveryVirtualInstanceState() {} + + private DiscoveryVirtualInstanceState(DiscoveryVirtualInstanceState $) { + this.centralServerVirtualMachineId = $.centralServerVirtualMachineId; + this.environment = $.environment; + this.identity = $.identity; + this.location = $.location; + this.managedResourceGroupName = $.managedResourceGroupName; + this.managedStorageAccountName = $.managedStorageAccountName; + this.name = $.name; + this.resourceGroupName = $.resourceGroupName; + this.sapProduct = $.sapProduct; + this.tags = $.tags; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(DiscoveryVirtualInstanceState defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private DiscoveryVirtualInstanceState $; + + public Builder() { + $ = new DiscoveryVirtualInstanceState(); + } + + public Builder(DiscoveryVirtualInstanceState defaults) { + $ = new DiscoveryVirtualInstanceState(Objects.requireNonNull(defaults)); + } + + /** + * @param centralServerVirtualMachineId The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder centralServerVirtualMachineId(@Nullable Output centralServerVirtualMachineId) { + $.centralServerVirtualMachineId = centralServerVirtualMachineId; + return this; + } + + /** + * @param centralServerVirtualMachineId The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder centralServerVirtualMachineId(String centralServerVirtualMachineId) { + return centralServerVirtualMachineId(Output.of(centralServerVirtualMachineId)); + } + + /** + * @param environment The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder environment(@Nullable Output environment) { + $.environment = environment; + return this; + } + + /** + * @param environment The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder environment(String environment) { + return environment(Output.of(environment)); + } + + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(@Nullable Output identity) { + $.identity = identity; + return this; + } + + /** + * @param identity An `identity` block as defined below. + * + * @return builder + * + */ + public Builder identity(DiscoveryVirtualInstanceIdentityArgs identity) { + return identity(Output.of(identity)); + } + + /** + * @param location The Azure Region where the SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder location(String location) { + return location(Output.of(location)); + } + + /** + * @param managedResourceGroupName The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedResourceGroupName(@Nullable Output managedResourceGroupName) { + $.managedResourceGroupName = managedResourceGroupName; + return this; + } + + /** + * @param managedResourceGroupName The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedResourceGroupName(String managedResourceGroupName) { + return managedResourceGroupName(Output.of(managedResourceGroupName)); + } + + /** + * @param managedStorageAccountName The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedStorageAccountName(@Nullable Output managedStorageAccountName) { + $.managedStorageAccountName = managedStorageAccountName; + return this; + } + + /** + * @param managedStorageAccountName The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder managedStorageAccountName(String managedStorageAccountName) { + return managedStorageAccountName(Output.of(managedStorageAccountName)); + } + + /** + * @param name Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder resourceGroupName(String resourceGroupName) { + return resourceGroupName(Output.of(resourceGroupName)); + } + + /** + * @param sapProduct The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sapProduct(@Nullable Output sapProduct) { + $.sapProduct = sapProduct; + return this; + } + + /** + * @param sapProduct The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + * + * @return builder + * + */ + public Builder sapProduct(String sapProduct) { + return sapProduct(Output.of(sapProduct)); + } + + /** + * @param tags A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + * @return builder + * + */ + public Builder tags(@Nullable Output> tags) { + $.tags = tags; + return this; + } + + /** + * @param tags A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + * + * @return builder + * + */ + public Builder tags(Map tags) { + return tags(Output.of(tags)); + } + + public DiscoveryVirtualInstanceState build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/azure/workloadssap/outputs/DiscoveryVirtualInstanceIdentity.java b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/outputs/DiscoveryVirtualInstanceIdentity.java new file mode 100644 index 0000000000..e4962aeb0c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/azure/workloadssap/outputs/DiscoveryVirtualInstanceIdentity.java @@ -0,0 +1,85 @@ +// *** 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.workloadssap.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.String; +import java.util.List; +import java.util.Objects; + +@CustomType +public final class DiscoveryVirtualInstanceIdentity { + /** + * @return A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + * + */ + private List identityIds; + /** + * @return The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + * + */ + private String type; + + private DiscoveryVirtualInstanceIdentity() {} + /** + * @return A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + * + */ + public List identityIds() { + return this.identityIds; + } + /** + * @return The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + * + */ + public String type() { + return this.type; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(DiscoveryVirtualInstanceIdentity defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private List identityIds; + private String type; + public Builder() {} + public Builder(DiscoveryVirtualInstanceIdentity defaults) { + Objects.requireNonNull(defaults); + this.identityIds = defaults.identityIds; + this.type = defaults.type; + } + + @CustomType.Setter + public Builder identityIds(List identityIds) { + if (identityIds == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceIdentity", "identityIds"); + } + this.identityIds = identityIds; + return this; + } + public Builder identityIds(String... identityIds) { + return identityIds(List.of(identityIds)); + } + @CustomType.Setter + public Builder type(String type) { + if (type == null) { + throw new MissingRequiredPropertyException("DiscoveryVirtualInstanceIdentity", "type"); + } + this.type = type; + return this; + } + public DiscoveryVirtualInstanceIdentity build() { + final var _resultValue = new DiscoveryVirtualInstanceIdentity(); + _resultValue.identityIds = identityIds; + _resultValue.type = type; + return _resultValue; + } + } +} diff --git a/sdk/nodejs/appinsights/smartDetectionRule.ts b/sdk/nodejs/appinsights/smartDetectionRule.ts index 4bbe31da09..94746bae9a 100644 --- a/sdk/nodejs/appinsights/smartDetectionRule.ts +++ b/sdk/nodejs/appinsights/smartDetectionRule.ts @@ -37,7 +37,7 @@ import * as utilities from "../utilities"; * Application Insights Smart Detection Rules can be imported using the `resource id`, e.g. * * ```sh - * $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/smartDetectionRule/myrule1 + * $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/proactiveDetectionConfig/myrule1 * ``` */ export class SmartDetectionRule extends pulumi.CustomResource { diff --git a/sdk/nodejs/appservice/index.ts b/sdk/nodejs/appservice/index.ts index 7ccf99ad2e..4a44ad26d2 100644 --- a/sdk/nodejs/appservice/index.ts +++ b/sdk/nodejs/appservice/index.ts @@ -256,6 +256,11 @@ export type StaticWebAppCustomDomain = import("./staticWebAppCustomDomain").Stat export const StaticWebAppCustomDomain: typeof import("./staticWebAppCustomDomain").StaticWebAppCustomDomain = null as any; utilities.lazyLoad(exports, ["StaticWebAppCustomDomain"], () => require("./staticWebAppCustomDomain")); +export { StaticWebAppFunctionAppRegistrationArgs, StaticWebAppFunctionAppRegistrationState } from "./staticWebAppFunctionAppRegistration"; +export type StaticWebAppFunctionAppRegistration = import("./staticWebAppFunctionAppRegistration").StaticWebAppFunctionAppRegistration; +export const StaticWebAppFunctionAppRegistration: typeof import("./staticWebAppFunctionAppRegistration").StaticWebAppFunctionAppRegistration = null as any; +utilities.lazyLoad(exports, ["StaticWebAppFunctionAppRegistration"], () => require("./staticWebAppFunctionAppRegistration")); + export { VirtualNetworkSwiftConnectionArgs, VirtualNetworkSwiftConnectionState } from "./virtualNetworkSwiftConnection"; export type VirtualNetworkSwiftConnection = import("./virtualNetworkSwiftConnection").VirtualNetworkSwiftConnection; export const VirtualNetworkSwiftConnection: typeof import("./virtualNetworkSwiftConnection").VirtualNetworkSwiftConnection = null as any; @@ -370,6 +375,8 @@ const _module = { return new StaticWebApp(name, undefined, { urn }) case "azure:appservice/staticWebAppCustomDomain:StaticWebAppCustomDomain": return new StaticWebAppCustomDomain(name, undefined, { urn }) + case "azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration": + return new StaticWebAppFunctionAppRegistration(name, undefined, { urn }) case "azure:appservice/virtualNetworkSwiftConnection:VirtualNetworkSwiftConnection": return new VirtualNetworkSwiftConnection(name, undefined, { urn }) case "azure:appservice/webAppActiveSlot:WebAppActiveSlot": @@ -424,6 +431,7 @@ pulumi.runtime.registerResourceModule("azure", "appservice/staticSite", _module) pulumi.runtime.registerResourceModule("azure", "appservice/staticSiteCustomDomain", _module) pulumi.runtime.registerResourceModule("azure", "appservice/staticWebApp", _module) pulumi.runtime.registerResourceModule("azure", "appservice/staticWebAppCustomDomain", _module) +pulumi.runtime.registerResourceModule("azure", "appservice/staticWebAppFunctionAppRegistration", _module) pulumi.runtime.registerResourceModule("azure", "appservice/virtualNetworkSwiftConnection", _module) pulumi.runtime.registerResourceModule("azure", "appservice/webAppActiveSlot", _module) pulumi.runtime.registerResourceModule("azure", "appservice/webAppHybridConnection", _module) diff --git a/sdk/nodejs/appservice/staticWebAppFunctionAppRegistration.ts b/sdk/nodejs/appservice/staticWebAppFunctionAppRegistration.ts new file mode 100644 index 0000000000..b43a34fb66 --- /dev/null +++ b/sdk/nodejs/appservice/staticWebAppFunctionAppRegistration.ts @@ -0,0 +1,172 @@ +// *** 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 an App Service Static Web App Function App Registration. + * + * > **NOTE:** This resource registers the specified Function App to the `Production` build of the Static Web App. + * + * ## 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 exampleStaticWebApp = new azure.appservice.StaticWebApp("example", { + * name: "example", + * resourceGroupName: example.name, + * location: example.location, + * }); + * const exampleAccount = new azure.storage.Account("example", { + * name: "examplesstorageacc", + * resourceGroupName: example.name, + * location: example.location, + * accountTier: "Standard", + * accountReplicationType: "LRS", + * }); + * const exampleServicePlan = new azure.appservice.ServicePlan("example", { + * name: "example-service-plan", + * location: example.location, + * resourceGroupName: example.name, + * osType: "Linux", + * skuName: "S1", + * }); + * const exampleLinuxFunctionApp = new azure.appservice.LinuxFunctionApp("example", { + * name: "example-function-app", + * location: example.location, + * resourceGroupName: example.name, + * servicePlanId: exampleServicePlan.id, + * storageAccountName: exampleAccount.name, + * storageAccountAccessKey: exampleAccount.primaryAccessKey, + * siteConfig: {}, + * }); + * const exampleStaticWebAppFunctionAppRegistration = new azure.appservice.StaticWebAppFunctionAppRegistration("example", { + * staticWebAppId: exampleStaticWebApp.id, + * functionAppId: exampleLinuxFunctionApp.id, + * }); + * ``` + * + * + * ## Import + * + * Static Web App Function App Registration can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/userProvidedFunctionApps/myFunctionApp + * ``` + */ +export class StaticWebAppFunctionAppRegistration extends pulumi.CustomResource { + /** + * Get an existing StaticWebAppFunctionAppRegistration 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?: StaticWebAppFunctionAppRegistrationState, opts?: pulumi.CustomResourceOptions): StaticWebAppFunctionAppRegistration { + return new StaticWebAppFunctionAppRegistration(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration'; + + /** + * Returns true if the given object is an instance of StaticWebAppFunctionAppRegistration. 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 StaticWebAppFunctionAppRegistration { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === StaticWebAppFunctionAppRegistration.__pulumiType; + } + + /** + * The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + */ + public readonly functionAppId!: pulumi.Output; + /** + * The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + */ + public readonly staticWebAppId!: pulumi.Output; + + /** + * Create a StaticWebAppFunctionAppRegistration 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: StaticWebAppFunctionAppRegistrationArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: StaticWebAppFunctionAppRegistrationArgs | StaticWebAppFunctionAppRegistrationState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as StaticWebAppFunctionAppRegistrationState | undefined; + resourceInputs["functionAppId"] = state ? state.functionAppId : undefined; + resourceInputs["staticWebAppId"] = state ? state.staticWebAppId : undefined; + } else { + const args = argsOrState as StaticWebAppFunctionAppRegistrationArgs | undefined; + if ((!args || args.functionAppId === undefined) && !opts.urn) { + throw new Error("Missing required property 'functionAppId'"); + } + if ((!args || args.staticWebAppId === undefined) && !opts.urn) { + throw new Error("Missing required property 'staticWebAppId'"); + } + resourceInputs["functionAppId"] = args ? args.functionAppId : undefined; + resourceInputs["staticWebAppId"] = args ? args.staticWebAppId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(StaticWebAppFunctionAppRegistration.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering StaticWebAppFunctionAppRegistration resources. + */ +export interface StaticWebAppFunctionAppRegistrationState { + /** + * The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + */ + functionAppId?: pulumi.Input; + /** + * The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + */ + staticWebAppId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a StaticWebAppFunctionAppRegistration resource. + */ +export interface StaticWebAppFunctionAppRegistrationArgs { + /** + * The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + * + * > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + * + * > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azureStaticWebAppV2` which may need to be accounted for by the use of `ignoreChanges` depending on the existing `authSettingsV2` configuration of the target Function App. + */ + functionAppId: pulumi.Input; + /** + * The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + */ + staticWebAppId: pulumi.Input; +} diff --git a/sdk/nodejs/bot/channelsRegistration.ts b/sdk/nodejs/bot/channelsRegistration.ts index 1d23e240ee..4c7413894f 100644 --- a/sdk/nodejs/bot/channelsRegistration.ts +++ b/sdk/nodejs/bot/channelsRegistration.ts @@ -7,6 +7,8 @@ import * as utilities from "../utilities"; /** * Manages a Bot Channels Registration. * + * > **Note:** Bot Channels Registration has been [deprecated by Azure](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-resources-faq-azure?view=azure-bot-service-4.0#why-are-web-app-bot-and-bot-channel-registration-being-deprecated). New implementations should use the `azure.bot.ServiceAzureBot` resource. + * * ## Example Usage * * diff --git a/sdk/nodejs/bot/serviceAzureBot.ts b/sdk/nodejs/bot/serviceAzureBot.ts index 59ed8a309e..c8432e4cbb 100644 --- a/sdk/nodejs/bot/serviceAzureBot.ts +++ b/sdk/nodejs/bot/serviceAzureBot.ts @@ -88,6 +88,12 @@ export class ServiceAzureBot extends pulumi.CustomResource { return obj['__pulumiType'] === ServiceAzureBot.__pulumiType; } + /** + * The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `azure.keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + */ + public readonly cmkKeyVaultKeyUrl!: pulumi.Output; /** * The Application Insights API Key to associate with this Azure Bot Service. */ @@ -182,6 +188,7 @@ export class ServiceAzureBot extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as ServiceAzureBotState | undefined; + resourceInputs["cmkKeyVaultKeyUrl"] = state ? state.cmkKeyVaultKeyUrl : undefined; resourceInputs["developerAppInsightsApiKey"] = state ? state.developerAppInsightsApiKey : undefined; resourceInputs["developerAppInsightsApplicationId"] = state ? state.developerAppInsightsApplicationId : undefined; resourceInputs["developerAppInsightsKey"] = state ? state.developerAppInsightsKey : undefined; @@ -213,6 +220,7 @@ export class ServiceAzureBot extends pulumi.CustomResource { if ((!args || args.sku === undefined) && !opts.urn) { throw new Error("Missing required property 'sku'"); } + resourceInputs["cmkKeyVaultKeyUrl"] = args ? args.cmkKeyVaultKeyUrl : undefined; resourceInputs["developerAppInsightsApiKey"] = args?.developerAppInsightsApiKey ? pulumi.secret(args.developerAppInsightsApiKey) : undefined; resourceInputs["developerAppInsightsApplicationId"] = args ? args.developerAppInsightsApplicationId : undefined; resourceInputs["developerAppInsightsKey"] = args ? args.developerAppInsightsKey : undefined; @@ -245,6 +253,12 @@ export class ServiceAzureBot extends pulumi.CustomResource { * Input properties used for looking up and filtering ServiceAzureBot resources. */ export interface ServiceAzureBotState { + /** + * The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `azure.keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + */ + cmkKeyVaultKeyUrl?: pulumi.Input; /** * The Application Insights API Key to associate with this Azure Bot Service. */ @@ -331,6 +345,12 @@ export interface ServiceAzureBotState { * The set of arguments for constructing a ServiceAzureBot resource. */ export interface ServiceAzureBotArgs { + /** + * The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + * + * > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `softDeleteEnabled` and `purgeProtectionEnabled` on the `azure.keyvault.KeyVault` that `cmkKeyVaultKeyUrl` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + */ + cmkKeyVaultKeyUrl?: pulumi.Input; /** * The Application Insights API Key to associate with this Azure Bot Service. */ diff --git a/sdk/nodejs/chaosstudio/target.ts b/sdk/nodejs/chaosstudio/target.ts index a682665e78..d454510740 100644 --- a/sdk/nodejs/chaosstudio/target.ts +++ b/sdk/nodejs/chaosstudio/target.ts @@ -9,39 +9,6 @@ import * as utilities from "../utilities"; * * Manages a Chaos Studio Target. * - * ## Example Usage - * - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as azure from "@pulumi/azure"; - * - * const exampleResourceGroup = new azure.core.ResourceGroup("example", { - * name: "example-resources", - * location: "West Europe", - * }); - * const example = new azure.containerservice.KubernetesCluster("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * dnsPrefix: "acctestaksexample", - * defaultNodePool: { - * name: "example-value", - * nodeCount: "example-value", - * vmSize: "example-value", - * }, - * identity: { - * type: "example-value", - * }, - * }); - * const exampleTarget = new azure.chaosstudio.Target("example", { - * location: exampleResourceGroup.location, - * targetResourceId: example.id, - * targetType: "example-value", - * }); - * ``` - * - * * ## Import * * An existing Chaos Studio Target can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/nodejs/compute/getSharedImageVersion.ts b/sdk/nodejs/compute/getSharedImageVersion.ts index 700c2263c3..16bea278ff 100644 --- a/sdk/nodejs/compute/getSharedImageVersion.ts +++ b/sdk/nodejs/compute/getSharedImageVersion.ts @@ -34,6 +34,7 @@ export function getSharedImageVersion(args: GetSharedImageVersionArgs, opts?: pu "name": args.name, "resourceGroupName": args.resourceGroupName, "sortVersionsBySemver": args.sortVersionsBySemver, + "tags": args.tags, }, opts); } @@ -65,6 +66,10 @@ export interface GetSharedImageVersionArgs { * Sort available versions taking SemVer versioning scheme into account. Defaults to `false`. */ sortVersionsBySemver?: boolean; + /** + * A mapping of tags assigned to the Shared Image. + */ + tags?: {[key: string]: string}; } /** @@ -106,7 +111,7 @@ export interface GetSharedImageVersionResult { /** * A mapping of tags assigned to the Shared Image. */ - readonly tags: {[key: string]: string}; + readonly tags?: {[key: string]: string}; /** * One or more `targetRegion` blocks as documented below. */ @@ -163,4 +168,8 @@ export interface GetSharedImageVersionOutputArgs { * Sort available versions taking SemVer versioning scheme into account. Defaults to `false`. */ sortVersionsBySemver?: pulumi.Input; + /** + * A mapping of tags assigned to the Shared Image. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; } diff --git a/sdk/nodejs/containerservice/clusterTrustedAccessRoleBinding.ts b/sdk/nodejs/containerservice/clusterTrustedAccessRoleBinding.ts index 5bba9e4a22..929371fb24 100644 --- a/sdk/nodejs/containerservice/clusterTrustedAccessRoleBinding.ts +++ b/sdk/nodejs/containerservice/clusterTrustedAccessRoleBinding.ts @@ -11,79 +11,6 @@ import * as utilities from "../utilities"; * > **Note:** This Resource is in **Preview** to use this you must be opted into the Preview. You can do this by running `az feature register --namespace Microsoft.ContainerService --name TrustedAccessPreview` and then `az provider register -n Microsoft.ContainerService` * . * - * ## Example Usage - * - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as azure from "@pulumi/azure"; - * - * const exampleResourceGroup = new azure.core.ResourceGroup("example", { - * name: "example-resources", - * location: "West Europe", - * }); - * const example = new azure.appinsights.Insights("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * applicationType: "example-value", - * }); - * const test = azure.core.getClientConfig({}); - * const exampleKeyVault = new azure.keyvault.KeyVault("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * tenantId: exampleAzurermClientConfig.tenantId, - * skuName: "example-value", - * softDeleteRetentionDays: "example-value", - * }); - * const exampleAccessPolicy = new azure.keyvault.AccessPolicy("example", { - * keyVaultId: exampleKeyVault.id, - * tenantId: exampleAzurermClientConfig.tenantId, - * objectId: exampleAzurermClientConfig.objectId, - * keyPermissions: "example-value", - * }); - * const exampleKubernetesCluster = new azure.containerservice.KubernetesCluster("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * dnsPrefix: "acctestaksexample", - * defaultNodePool: { - * name: "example-value", - * nodeCount: "example-value", - * vmSize: "example-value", - * }, - * identity: { - * type: "example-value", - * }, - * }); - * const exampleAccount = new azure.storage.Account("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * accountTier: "example-value", - * accountReplicationType: "example-value", - * }); - * const exampleWorkspace = new azure.machinelearning.Workspace("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * keyVaultId: exampleKeyVault.id, - * storageAccountId: exampleAccount.id, - * applicationInsightsId: example.id, - * identity: { - * type: "example-value", - * }, - * }); - * const exampleClusterTrustedAccessRoleBinding = new azure.containerservice.ClusterTrustedAccessRoleBinding("example", { - * kubernetesClusterId: exampleKubernetesCluster.id, - * name: "example", - * roles: "example-value", - * sourceResourceId: exampleWorkspace.id, - * }); - * ``` - * - * * ## Import * * An existing Kubernetes Cluster Trusted Access Role Binding can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/nodejs/containerservice/fleetMember.ts b/sdk/nodejs/containerservice/fleetMember.ts index 54cdb7fc13..4c2c88d954 100644 --- a/sdk/nodejs/containerservice/fleetMember.ts +++ b/sdk/nodejs/containerservice/fleetMember.ts @@ -9,44 +9,6 @@ import * as utilities from "../utilities"; * * Manages a Kubernetes Fleet Member. * - * ## Example Usage - * - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as azure from "@pulumi/azure"; - * - * const exampleResourceGroup = new azure.core.ResourceGroup("example", { - * name: "example-resources", - * location: "West Europe", - * }); - * const example = new azure.containerservice.KubernetesCluster("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * dnsPrefix: "acctestaksexample", - * defaultNodePool: { - * name: "example-value", - * nodeCount: "example-value", - * vmSize: "example-value", - * }, - * identity: { - * type: "example-value", - * }, - * }); - * const exampleKubernetesFleetManager = new azure.containerservice.KubernetesFleetManager("example", { - * name: "example", - * location: exampleResourceGroup.location, - * resourceGroupName: exampleResourceGroup.name, - * }); - * const exampleFleetMember = new azure.containerservice.FleetMember("example", { - * kubernetesClusterId: example.id, - * kubernetesFleetId: exampleKubernetesFleetManager.id, - * name: "example", - * }); - * ``` - * - * * ## Import * * An existing Kubernetes Fleet Member can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/nodejs/databricks/workspace.ts b/sdk/nodejs/databricks/workspace.ts index 3aa7bdffb0..93e94b5084 100644 --- a/sdk/nodejs/databricks/workspace.ts +++ b/sdk/nodejs/databricks/workspace.ts @@ -67,6 +67,7 @@ export class Workspace extends pulumi.CustomResource { * Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. */ public readonly location!: pulumi.Output; + public readonly managedDiskCmkKeyVaultId!: pulumi.Output; /** * Customer managed encryption properties for the Databricks Workspace managed disks. */ @@ -86,9 +87,10 @@ export class Workspace extends pulumi.CustomResource { /** * The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. */ public readonly managedResourceGroupName!: pulumi.Output; + public readonly managedServicesCmkKeyVaultId!: pulumi.Output; /** * Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). */ @@ -112,7 +114,7 @@ export class Workspace extends pulumi.CustomResource { /** * The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. */ public readonly sku!: pulumi.Output; /** @@ -151,11 +153,13 @@ export class Workspace extends pulumi.CustomResource { resourceInputs["infrastructureEncryptionEnabled"] = state ? state.infrastructureEncryptionEnabled : undefined; resourceInputs["loadBalancerBackendAddressPoolId"] = state ? state.loadBalancerBackendAddressPoolId : undefined; resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["managedDiskCmkKeyVaultId"] = state ? state.managedDiskCmkKeyVaultId : undefined; resourceInputs["managedDiskCmkKeyVaultKeyId"] = state ? state.managedDiskCmkKeyVaultKeyId : undefined; resourceInputs["managedDiskCmkRotationToLatestVersionEnabled"] = state ? state.managedDiskCmkRotationToLatestVersionEnabled : undefined; resourceInputs["managedDiskIdentities"] = state ? state.managedDiskIdentities : undefined; resourceInputs["managedResourceGroupId"] = state ? state.managedResourceGroupId : undefined; resourceInputs["managedResourceGroupName"] = state ? state.managedResourceGroupName : undefined; + resourceInputs["managedServicesCmkKeyVaultId"] = state ? state.managedServicesCmkKeyVaultId : undefined; resourceInputs["managedServicesCmkKeyVaultKeyId"] = state ? state.managedServicesCmkKeyVaultKeyId : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["networkSecurityGroupRulesRequired"] = state ? state.networkSecurityGroupRulesRequired : undefined; @@ -179,9 +183,11 @@ export class Workspace extends pulumi.CustomResource { resourceInputs["infrastructureEncryptionEnabled"] = args ? args.infrastructureEncryptionEnabled : undefined; resourceInputs["loadBalancerBackendAddressPoolId"] = args ? args.loadBalancerBackendAddressPoolId : undefined; resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["managedDiskCmkKeyVaultId"] = args ? args.managedDiskCmkKeyVaultId : undefined; resourceInputs["managedDiskCmkKeyVaultKeyId"] = args ? args.managedDiskCmkKeyVaultKeyId : undefined; resourceInputs["managedDiskCmkRotationToLatestVersionEnabled"] = args ? args.managedDiskCmkRotationToLatestVersionEnabled : undefined; resourceInputs["managedResourceGroupName"] = args ? args.managedResourceGroupName : undefined; + resourceInputs["managedServicesCmkKeyVaultId"] = args ? args.managedServicesCmkKeyVaultId : undefined; resourceInputs["managedServicesCmkKeyVaultKeyId"] = args ? args.managedServicesCmkKeyVaultKeyId : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["networkSecurityGroupRulesRequired"] = args ? args.networkSecurityGroupRulesRequired : undefined; @@ -229,6 +235,7 @@ export interface WorkspaceState { * Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; + managedDiskCmkKeyVaultId?: pulumi.Input; /** * Customer managed encryption properties for the Databricks Workspace managed disks. */ @@ -248,9 +255,10 @@ export interface WorkspaceState { /** * The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. */ managedResourceGroupName?: pulumi.Input; + managedServicesCmkKeyVaultId?: pulumi.Input; /** * Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). */ @@ -274,7 +282,7 @@ export interface WorkspaceState { /** * The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. */ sku?: pulumi.Input; /** @@ -319,6 +327,7 @@ export interface WorkspaceArgs { * Specifies the supported Azure location where the resource has to be created. Changing this forces a new resource to be created. */ location?: pulumi.Input; + managedDiskCmkKeyVaultId?: pulumi.Input; /** * Customer managed encryption properties for the Databricks Workspace managed disks. */ @@ -330,9 +339,10 @@ export interface WorkspaceArgs { /** * The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. * - * > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. + * > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managedResourceGroupName` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manageResourceGroupName` may result in some resources that cannot be deleted. */ managedResourceGroupName?: pulumi.Input; + managedServicesCmkKeyVaultId?: pulumi.Input; /** * Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). */ @@ -356,7 +366,7 @@ export interface WorkspaceArgs { /** * The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. * - * > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + * > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. */ sku: pulumi.Input; /** diff --git a/sdk/nodejs/databricks/workspaceRootDbfsCustomerManagedKey.ts b/sdk/nodejs/databricks/workspaceRootDbfsCustomerManagedKey.ts index fe33f18a86..13bd182c73 100644 --- a/sdk/nodejs/databricks/workspaceRootDbfsCustomerManagedKey.ts +++ b/sdk/nodejs/databricks/workspaceRootDbfsCustomerManagedKey.ts @@ -5,7 +5,7 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; /** - * Manages a Customer Managed Key for the Databricks Workspaces root Databricks File System(DBFS) + * Manages a Customer Managed Key for the Databricks Workspaces Root Databricks File System(DBFS) * * ## Example Usage * @@ -95,7 +95,7 @@ import * as utilities from "../utilities"; * ## Example HCL Configurations * * * Databricks Workspace with Root Databricks File System Customer Managed Keys - * * Databricks Workspace with Customer Managed Keys for Managed Services + * * Databricks Workspace with Root Databricks File System Customer Managed Keys in a Different Subscription * * Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys * * ## Import @@ -134,6 +134,7 @@ export class WorkspaceRootDbfsCustomerManagedKey extends pulumi.CustomResource { return obj['__pulumiType'] === WorkspaceRootDbfsCustomerManagedKey.__pulumiType; } + public readonly keyVaultId!: pulumi.Output; /** * The resource ID of the Key Vault Key to be used. */ @@ -156,6 +157,7 @@ export class WorkspaceRootDbfsCustomerManagedKey extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as WorkspaceRootDbfsCustomerManagedKeyState | undefined; + resourceInputs["keyVaultId"] = state ? state.keyVaultId : undefined; resourceInputs["keyVaultKeyId"] = state ? state.keyVaultKeyId : undefined; resourceInputs["workspaceId"] = state ? state.workspaceId : undefined; } else { @@ -166,6 +168,7 @@ export class WorkspaceRootDbfsCustomerManagedKey extends pulumi.CustomResource { if ((!args || args.workspaceId === undefined) && !opts.urn) { throw new Error("Missing required property 'workspaceId'"); } + resourceInputs["keyVaultId"] = args ? args.keyVaultId : undefined; resourceInputs["keyVaultKeyId"] = args ? args.keyVaultKeyId : undefined; resourceInputs["workspaceId"] = args ? args.workspaceId : undefined; } @@ -178,6 +181,7 @@ export class WorkspaceRootDbfsCustomerManagedKey extends pulumi.CustomResource { * Input properties used for looking up and filtering WorkspaceRootDbfsCustomerManagedKey resources. */ export interface WorkspaceRootDbfsCustomerManagedKeyState { + keyVaultId?: pulumi.Input; /** * The resource ID of the Key Vault Key to be used. */ @@ -192,6 +196,7 @@ export interface WorkspaceRootDbfsCustomerManagedKeyState { * The set of arguments for constructing a WorkspaceRootDbfsCustomerManagedKey resource. */ export interface WorkspaceRootDbfsCustomerManagedKeyArgs { + keyVaultId?: pulumi.Input; /** * The resource ID of the Key Vault Key to be used. */ diff --git a/sdk/nodejs/devtest/schedule.ts b/sdk/nodejs/devtest/schedule.ts index 395ce918b3..ab901480f7 100644 --- a/sdk/nodejs/devtest/schedule.ts +++ b/sdk/nodejs/devtest/schedule.ts @@ -30,6 +30,7 @@ import * as utilities from "../utilities"; * location: example.location, * resourceGroupName: example.name, * labName: exampleLab.name, + * status: "Enabled", * weeklyRecurrence: { * time: "1100", * weekDays: [ diff --git a/sdk/nodejs/monitoring/scheduledQueryRulesAlertV2.ts b/sdk/nodejs/monitoring/scheduledQueryRulesAlertV2.ts index 77a9c867bc..07cf57813d 100644 --- a/sdk/nodejs/monitoring/scheduledQueryRulesAlertV2.ts +++ b/sdk/nodejs/monitoring/scheduledQueryRulesAlertV2.ts @@ -31,6 +31,16 @@ import * as utilities from "../utilities"; * resourceGroupName: example.name, * shortName: "test mag", * }); + * const exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity("example", { + * name: "example-uai", + * location: example.location, + * resourceGroupName: example.name, + * }); + * const exampleAssignment = new azure.authorization.Assignment("example", { + * scope: exampleInsights.id, + * roleDefinitionName: "Reader", + * principalId: exampleUserAssignedIdentity.principalId, + * }); * const exampleScheduledQueryRulesAlertV2 = new azure.monitoring.ScheduledQueryRulesAlertV2("example", { * name: "example-msqrv2", * resourceGroupName: example.name, @@ -72,6 +82,10 @@ import * as utilities from "../utilities"; * key2: "value2", * }, * }, + * identity: { + * type: "UserAssigned", + * identityIds: [exampleUserAssignedIdentity.id], + * }, * tags: { * key: "value", * key2: "value2", @@ -152,6 +166,10 @@ export class ScheduledQueryRulesAlertV2 extends pulumi.CustomResource { * > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. */ public readonly evaluationFrequency!: pulumi.Output; + /** + * An `identity` block as defined below. + */ + public readonly identity!: pulumi.Output; /** * True if this alert rule is a legacy Log Analytic Rule. */ @@ -234,6 +252,7 @@ export class ScheduledQueryRulesAlertV2 extends pulumi.CustomResource { resourceInputs["displayName"] = state ? state.displayName : undefined; resourceInputs["enabled"] = state ? state.enabled : undefined; resourceInputs["evaluationFrequency"] = state ? state.evaluationFrequency : undefined; + resourceInputs["identity"] = state ? state.identity : undefined; resourceInputs["isALegacyLogAnalyticsRule"] = state ? state.isALegacyLogAnalyticsRule : undefined; resourceInputs["isWorkspaceAlertsStorageConfigured"] = state ? state.isWorkspaceAlertsStorageConfigured : undefined; resourceInputs["location"] = state ? state.location : undefined; @@ -272,6 +291,7 @@ export class ScheduledQueryRulesAlertV2 extends pulumi.CustomResource { resourceInputs["displayName"] = args ? args.displayName : undefined; resourceInputs["enabled"] = args ? args.enabled : undefined; resourceInputs["evaluationFrequency"] = args ? args.evaluationFrequency : undefined; + resourceInputs["identity"] = args ? args.identity : undefined; resourceInputs["location"] = args ? args.location : undefined; resourceInputs["muteActionsAfterAlertDuration"] = args ? args.muteActionsAfterAlertDuration : undefined; resourceInputs["name"] = args ? args.name : undefined; @@ -333,6 +353,10 @@ export interface ScheduledQueryRulesAlertV2State { * > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. */ evaluationFrequency?: pulumi.Input; + /** + * An `identity` block as defined below. + */ + identity?: pulumi.Input; /** * True if this alert rule is a legacy Log Analytic Rule. */ @@ -431,6 +455,10 @@ export interface ScheduledQueryRulesAlertV2Args { * > **Note** `evaluationFrequency` cannot be greater than the `muteActionsAfterAlertDuration`. */ evaluationFrequency?: pulumi.Input; + /** + * An `identity` block as defined below. + */ + identity?: pulumi.Input; /** * Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. */ diff --git a/sdk/nodejs/mssql/database.ts b/sdk/nodejs/mssql/database.ts index 2a0b1b6fff..6251da446b 100644 --- a/sdk/nodejs/mssql/database.ts +++ b/sdk/nodejs/mssql/database.ts @@ -207,13 +207,15 @@ export class Database extends pulumi.CustomResource { */ public readonly elasticPoolId!: pulumi.Output; /** - * Specifies the type of enclave to be used by the database. Possible value `VBS`. + * Specifies the type of enclave to be used by the elastic pool. When `enclaveType` is not specified (e.g., the default) enclaves are not enabled on the database. + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-resources", + * location: "East US", + * }); + * const exampleCache = new azure.redis.Cache("example", { + * name: "example", + * location: example.location, + * resourceGroupName: example.name, + * capacity: 1, + * family: "P", + * skuName: "Premium", + * enableNonSslPort: false, + * redisConfiguration: { + * maxmemoryReserved: 2, + * maxmemoryDelta: 2, + * maxmemoryPolicy: "allkeys-lru", + * }, + * }); + * const exampleCacheAccessPolicy = new azure.redis.CacheAccessPolicy("example", { + * name: "example", + * redisCacheId: exampleCache.id, + * permissions: "+@read +@connection +cluster|info", + * }); + * ``` + * + * + * ## Import + * + * Redis Cache Access Policy can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:redis/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicies/policy1 + * ``` + */ +export class CacheAccessPolicy extends pulumi.CustomResource { + /** + * Get an existing CacheAccessPolicy 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?: CacheAccessPolicyState, opts?: pulumi.CustomResourceOptions): CacheAccessPolicy { + return new CacheAccessPolicy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:redis/cacheAccessPolicy:CacheAccessPolicy'; + + /** + * Returns true if the given object is an instance of CacheAccessPolicy. 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 CacheAccessPolicy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CacheAccessPolicy.__pulumiType; + } + + /** + * The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + */ + public readonly name!: pulumi.Output; + /** + * Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + */ + public readonly permissions!: pulumi.Output; + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + */ + public readonly redisCacheId!: pulumi.Output; + + /** + * Create a CacheAccessPolicy 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: CacheAccessPolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CacheAccessPolicyArgs | CacheAccessPolicyState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CacheAccessPolicyState | undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["permissions"] = state ? state.permissions : undefined; + resourceInputs["redisCacheId"] = state ? state.redisCacheId : undefined; + } else { + const args = argsOrState as CacheAccessPolicyArgs | undefined; + if ((!args || args.permissions === undefined) && !opts.urn) { + throw new Error("Missing required property 'permissions'"); + } + if ((!args || args.redisCacheId === undefined) && !opts.urn) { + throw new Error("Missing required property 'redisCacheId'"); + } + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["permissions"] = args ? args.permissions : undefined; + resourceInputs["redisCacheId"] = args ? args.redisCacheId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CacheAccessPolicy.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CacheAccessPolicy resources. + */ +export interface CacheAccessPolicyState { + /** + * The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + */ + name?: pulumi.Input; + /** + * Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + */ + permissions?: pulumi.Input; + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + */ + redisCacheId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a CacheAccessPolicy resource. + */ +export interface CacheAccessPolicyArgs { + /** + * The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + */ + name?: pulumi.Input; + /** + * Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + */ + permissions: pulumi.Input; + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + */ + redisCacheId: pulumi.Input; +} diff --git a/sdk/nodejs/redis/cacheAccessPolicyAssignment.ts b/sdk/nodejs/redis/cacheAccessPolicyAssignment.ts new file mode 100644 index 0000000000..2af9a841d5 --- /dev/null +++ b/sdk/nodejs/redis/cacheAccessPolicyAssignment.ts @@ -0,0 +1,196 @@ +// *** 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 Redis Cache Access Policy Assignment + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const test = azure.core.getClientConfig({}); + * const example = new azure.core.ResourceGroup("example", { + * name: "example-resources", + * location: "East US", + * }); + * const exampleCache = new azure.redis.Cache("example", { + * name: "example", + * location: example.location, + * resourceGroupName: example.name, + * capacity: 1, + * family: "P", + * skuName: "Premium", + * enableNonSslPort: false, + * redisConfiguration: { + * maxmemoryReserved: 2, + * maxmemoryDelta: 2, + * maxmemoryPolicy: "allkeys-lru", + * }, + * }); + * const exampleCacheAccessPolicyAssignment = new azure.redis.CacheAccessPolicyAssignment("example", { + * name: "example", + * redisCacheId: exampleCache.id, + * accessPolicyName: "Data Contributor", + * objectId: test.then(test => test.objectId), + * objectIdAlias: "ServicePrincipal", + * }); + * ``` + * + * + * ## Import + * + * Redis Cache Policy Assignment can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/assignment1 + * ``` + */ +export class CacheAccessPolicyAssignment extends pulumi.CustomResource { + /** + * Get an existing CacheAccessPolicyAssignment 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?: CacheAccessPolicyAssignmentState, opts?: pulumi.CustomResourceOptions): CacheAccessPolicyAssignment { + return new CacheAccessPolicyAssignment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment'; + + /** + * Returns true if the given object is an instance of CacheAccessPolicyAssignment. 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 CacheAccessPolicyAssignment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CacheAccessPolicyAssignment.__pulumiType; + } + + /** + * The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + public readonly accessPolicyName!: pulumi.Output; + /** + * The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + public readonly name!: pulumi.Output; + /** + * The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + public readonly objectId!: pulumi.Output; + /** + * The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + public readonly objectIdAlias!: pulumi.Output; + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + public readonly redisCacheId!: pulumi.Output; + + /** + * Create a CacheAccessPolicyAssignment 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: CacheAccessPolicyAssignmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CacheAccessPolicyAssignmentArgs | CacheAccessPolicyAssignmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CacheAccessPolicyAssignmentState | undefined; + resourceInputs["accessPolicyName"] = state ? state.accessPolicyName : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["objectId"] = state ? state.objectId : undefined; + resourceInputs["objectIdAlias"] = state ? state.objectIdAlias : undefined; + resourceInputs["redisCacheId"] = state ? state.redisCacheId : undefined; + } else { + const args = argsOrState as CacheAccessPolicyAssignmentArgs | undefined; + if ((!args || args.accessPolicyName === undefined) && !opts.urn) { + throw new Error("Missing required property 'accessPolicyName'"); + } + if ((!args || args.objectId === undefined) && !opts.urn) { + throw new Error("Missing required property 'objectId'"); + } + if ((!args || args.objectIdAlias === undefined) && !opts.urn) { + throw new Error("Missing required property 'objectIdAlias'"); + } + if ((!args || args.redisCacheId === undefined) && !opts.urn) { + throw new Error("Missing required property 'redisCacheId'"); + } + resourceInputs["accessPolicyName"] = args ? args.accessPolicyName : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["objectId"] = args ? args.objectId : undefined; + resourceInputs["objectIdAlias"] = args ? args.objectIdAlias : undefined; + resourceInputs["redisCacheId"] = args ? args.redisCacheId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CacheAccessPolicyAssignment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CacheAccessPolicyAssignment resources. + */ +export interface CacheAccessPolicyAssignmentState { + /** + * The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + accessPolicyName?: pulumi.Input; + /** + * The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + name?: pulumi.Input; + /** + * The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + objectId?: pulumi.Input; + /** + * The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + objectIdAlias?: pulumi.Input; + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + redisCacheId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a CacheAccessPolicyAssignment resource. + */ +export interface CacheAccessPolicyAssignmentArgs { + /** + * The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + accessPolicyName: pulumi.Input; + /** + * The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + name?: pulumi.Input; + /** + * The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + objectId: pulumi.Input; + /** + * The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + objectIdAlias: pulumi.Input; + /** + * The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + */ + redisCacheId: pulumi.Input; +} diff --git a/sdk/nodejs/redis/index.ts b/sdk/nodejs/redis/index.ts index 81d701393d..834caf5514 100644 --- a/sdk/nodejs/redis/index.ts +++ b/sdk/nodejs/redis/index.ts @@ -10,6 +10,16 @@ export type Cache = import("./cache").Cache; export const Cache: typeof import("./cache").Cache = null as any; utilities.lazyLoad(exports, ["Cache"], () => require("./cache")); +export { CacheAccessPolicyArgs, CacheAccessPolicyState } from "./cacheAccessPolicy"; +export type CacheAccessPolicy = import("./cacheAccessPolicy").CacheAccessPolicy; +export const CacheAccessPolicy: typeof import("./cacheAccessPolicy").CacheAccessPolicy = null as any; +utilities.lazyLoad(exports, ["CacheAccessPolicy"], () => require("./cacheAccessPolicy")); + +export { CacheAccessPolicyAssignmentArgs, CacheAccessPolicyAssignmentState } from "./cacheAccessPolicyAssignment"; +export type CacheAccessPolicyAssignment = import("./cacheAccessPolicyAssignment").CacheAccessPolicyAssignment; +export const CacheAccessPolicyAssignment: typeof import("./cacheAccessPolicyAssignment").CacheAccessPolicyAssignment = null as any; +utilities.lazyLoad(exports, ["CacheAccessPolicyAssignment"], () => require("./cacheAccessPolicyAssignment")); + export { EnterpriseClusterArgs, EnterpriseClusterState } from "./enterpriseCluster"; export type EnterpriseCluster = import("./enterpriseCluster").EnterpriseCluster; export const EnterpriseCluster: typeof import("./enterpriseCluster").EnterpriseCluster = null as any; @@ -47,6 +57,10 @@ const _module = { switch (type) { case "azure:redis/cache:Cache": return new Cache(name, undefined, { urn }) + case "azure:redis/cacheAccessPolicy:CacheAccessPolicy": + return new CacheAccessPolicy(name, undefined, { urn }) + case "azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment": + return new CacheAccessPolicyAssignment(name, undefined, { urn }) case "azure:redis/enterpriseCluster:EnterpriseCluster": return new EnterpriseCluster(name, undefined, { urn }) case "azure:redis/enterpriseDatabase:EnterpriseDatabase": @@ -61,6 +75,8 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("azure", "redis/cache", _module) +pulumi.runtime.registerResourceModule("azure", "redis/cacheAccessPolicy", _module) +pulumi.runtime.registerResourceModule("azure", "redis/cacheAccessPolicyAssignment", _module) pulumi.runtime.registerResourceModule("azure", "redis/enterpriseCluster", _module) pulumi.runtime.registerResourceModule("azure", "redis/enterpriseDatabase", _module) pulumi.runtime.registerResourceModule("azure", "redis/firewallRule", _module) diff --git a/sdk/nodejs/stack/hciCluster.ts b/sdk/nodejs/stack/hciCluster.ts index 2a21fb0d8f..9e31f8843a 100644 --- a/sdk/nodejs/stack/hciCluster.ts +++ b/sdk/nodejs/stack/hciCluster.ts @@ -79,9 +79,9 @@ export class HciCluster extends pulumi.CustomResource { */ public readonly automanageConfigurationId!: pulumi.Output; /** - * The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. */ - public readonly clientId!: pulumi.Output; + public readonly clientId!: pulumi.Output; /** * An immutable UUID for the Azure Stack HCI Cluster. */ @@ -147,9 +147,6 @@ export class HciCluster extends pulumi.CustomResource { resourceInputs["tenantId"] = state ? state.tenantId : undefined; } else { const args = argsOrState as HciClusterArgs | undefined; - if ((!args || args.clientId === undefined) && !opts.urn) { - throw new Error("Missing required property 'clientId'"); - } if ((!args || args.resourceGroupName === undefined) && !opts.urn) { throw new Error("Missing required property 'resourceGroupName'"); } @@ -179,7 +176,7 @@ export interface HciClusterState { */ automanageConfigurationId?: pulumi.Input; /** - * The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. */ clientId?: pulumi.Input; /** @@ -231,9 +228,9 @@ export interface HciClusterArgs { */ automanageConfigurationId?: pulumi.Input; /** - * The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + * The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. */ - clientId: pulumi.Input; + clientId?: pulumi.Input; /** * An `identity` block as defined below. */ diff --git a/sdk/nodejs/systemcenter/getVirtualMachineManagerInventoryItems.ts b/sdk/nodejs/systemcenter/getVirtualMachineManagerInventoryItems.ts new file mode 100644 index 0000000000..bd2d53b252 --- /dev/null +++ b/sdk/nodejs/systemcenter/getVirtualMachineManagerInventoryItems.ts @@ -0,0 +1,97 @@ +// *** 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"; + +/** + * Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = azure.systemcenter.getVirtualMachineManagerInventoryItems({ + * inventoryType: "Cloud", + * systemCenterVirtualMachineManagerServerId: exampleAzurermSystemCenterVirtualMachineManagerServer.id, + * }); + * ``` + * + */ +export function getVirtualMachineManagerInventoryItems(args: GetVirtualMachineManagerInventoryItemsArgs, opts?: pulumi.InvokeOptions): Promise { + + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems", { + "inventoryType": args.inventoryType, + "systemCenterVirtualMachineManagerServerId": args.systemCenterVirtualMachineManagerServerId, + }, opts); +} + +/** + * A collection of arguments for invoking getVirtualMachineManagerInventoryItems. + */ +export interface GetVirtualMachineManagerInventoryItemsArgs { + /** + * The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + */ + inventoryType: string; + /** + * The ID of the System Center Virtual Machine Manager Server. + */ + systemCenterVirtualMachineManagerServerId: string; +} + +/** + * A collection of values returned by getVirtualMachineManagerInventoryItems. + */ +export interface GetVirtualMachineManagerInventoryItemsResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * One or more `inventoryItems` blocks as defined below. + */ + readonly inventoryItems: outputs.systemcenter.GetVirtualMachineManagerInventoryItemsInventoryItem[]; + readonly inventoryType: string; + readonly systemCenterVirtualMachineManagerServerId: string; +} +/** + * Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = azure.systemcenter.getVirtualMachineManagerInventoryItems({ + * inventoryType: "Cloud", + * systemCenterVirtualMachineManagerServerId: exampleAzurermSystemCenterVirtualMachineManagerServer.id, + * }); + * ``` + * + */ +export function getVirtualMachineManagerInventoryItemsOutput(args: GetVirtualMachineManagerInventoryItemsOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + return pulumi.output(args).apply((a: any) => getVirtualMachineManagerInventoryItems(a, opts)) +} + +/** + * A collection of arguments for invoking getVirtualMachineManagerInventoryItems. + */ +export interface GetVirtualMachineManagerInventoryItemsOutputArgs { + /** + * The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + */ + inventoryType: pulumi.Input; + /** + * The ID of the System Center Virtual Machine Manager Server. + */ + systemCenterVirtualMachineManagerServerId: pulumi.Input; +} diff --git a/sdk/nodejs/systemcenter/index.ts b/sdk/nodejs/systemcenter/index.ts index 40f9111da9..9bd982acf3 100644 --- a/sdk/nodejs/systemcenter/index.ts +++ b/sdk/nodejs/systemcenter/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { GetVirtualMachineManagerInventoryItemsArgs, GetVirtualMachineManagerInventoryItemsResult, GetVirtualMachineManagerInventoryItemsOutputArgs } from "./getVirtualMachineManagerInventoryItems"; +export const getVirtualMachineManagerInventoryItems: typeof import("./getVirtualMachineManagerInventoryItems").getVirtualMachineManagerInventoryItems = null as any; +export const getVirtualMachineManagerInventoryItemsOutput: typeof import("./getVirtualMachineManagerInventoryItems").getVirtualMachineManagerInventoryItemsOutput = null as any; +utilities.lazyLoad(exports, ["getVirtualMachineManagerInventoryItems","getVirtualMachineManagerInventoryItemsOutput"], () => require("./getVirtualMachineManagerInventoryItems")); + export { VirtualMachineManagerAvailabilitySetArgs, VirtualMachineManagerAvailabilitySetState } from "./virtualMachineManagerAvailabilitySet"; export type VirtualMachineManagerAvailabilitySet = import("./virtualMachineManagerAvailabilitySet").VirtualMachineManagerAvailabilitySet; export const VirtualMachineManagerAvailabilitySet: typeof import("./virtualMachineManagerAvailabilitySet").VirtualMachineManagerAvailabilitySet = null as any; diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 0b73f241c5..c9e571222e 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -180,6 +180,7 @@ "appservice/staticSiteCustomDomain.ts", "appservice/staticWebApp.ts", "appservice/staticWebAppCustomDomain.ts", + "appservice/staticWebAppFunctionAppRegistration.ts", "appservice/virtualNetworkSwiftConnection.ts", "appservice/webAppActiveSlot.ts", "appservice/webAppHybridConnection.ts", @@ -1359,6 +1360,8 @@ "redhatopenshift/cluster.ts", "redhatopenshift/index.ts", "redis/cache.ts", + "redis/cacheAccessPolicy.ts", + "redis/cacheAccessPolicyAssignment.ts", "redis/enterpriseCluster.ts", "redis/enterpriseDatabase.ts", "redis/firewallRule.ts", @@ -1588,6 +1591,7 @@ "synapse/workspaceSecurityAlertPolicy.ts", "synapse/workspaceSqlAadAdmin.ts", "synapse/workspaceVulnerabilityAssessment.ts", + "systemcenter/getVirtualMachineManagerInventoryItems.ts", "systemcenter/index.ts", "systemcenter/virtualMachineManagerAvailabilitySet.ts", "systemcenter/virtualMachineManagerServer.ts", @@ -1617,6 +1621,7 @@ "webpubsub/networkAcl.ts", "webpubsub/service.ts", "webpubsub/sharedPrivateLinkResource.ts", + "workloadssap/discoveryVirtualInstance.ts", "workloadssap/index.ts", "workloadssap/singleNodeVirtualInstance.ts", "workloadssap/threeTierVirtualInstance.ts" diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 7f75682121..f8109d42a5 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -14,6 +14,7 @@ export interface ProviderFeatures { logAnalyticsWorkspace?: pulumi.Input; managedDisk?: pulumi.Input; postgresqlFlexibleServer?: pulumi.Input; + recoveryService?: pulumi.Input; resourceGroup?: pulumi.Input; subscription?: pulumi.Input; templateDeployment?: pulumi.Input; @@ -90,6 +91,11 @@ export interface ProviderFeaturesPostgresqlFlexibleServer { restartServerOnConfigurationValueChange?: pulumi.Input; } +export interface ProviderFeaturesRecoveryService { + purgeProtectedItemsFromVaultOnDestroy?: pulumi.Input; + vmBackupStopProtectionAndRetainDataOnDestroy?: pulumi.Input; +} + export interface ProviderFeaturesResourceGroup { preventDeletionIfContainsResources?: pulumi.Input; } @@ -17884,7 +17890,7 @@ export namespace compute { export interface CapacityReservationSku { /** - * Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. */ capacity: pulumi.Input; /** @@ -21726,15 +21732,29 @@ export namespace containerapp { export interface AppSecret { /** - * The Secret name. + * The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `keyVaultSecretId` + */ + identity?: pulumi.Input; + /** + * The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `keyVaultSecretId`, `ignoreChanges` should be used to ignore any changes to `value`. + */ + keyVaultSecretId?: pulumi.Input; + /** + * The secret name. */ name: pulumi.Input; /** * The value for this secret. * + * !> **Note:** `value` will be ignored if `keyVaultSecretId` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. */ - value: pulumi.Input; + value?: pulumi.Input; } export interface AppTemplate { @@ -22235,6 +22255,14 @@ export namespace containerapp { } export interface EnvironmentDaprComponentSecret { + /** + * The identity to use for accessing key vault reference. + */ + identity?: pulumi.Input; + /** + * The Key Vault Secret ID. Could be either one of `id` or `versionlessId`. + */ + keyVaultSecretId?: pulumi.Input; /** * The Secret name. */ @@ -22242,7 +22270,7 @@ export namespace containerapp { /** * The value for this secret. */ - value: pulumi.Input; + value?: pulumi.Input; } export interface EnvironmentWorkloadProfile { @@ -26365,7 +26393,7 @@ export namespace databricks { /** * Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. */ noPublicIp?: pulumi.Input; /** @@ -26403,7 +26431,7 @@ export namespace databricks { /** * Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). */ vnetAddressPrefix?: pulumi.Input; } @@ -41762,6 +41790,27 @@ export namespace monitoring { numberOfEvaluationPeriods: pulumi.Input; } + export interface ScheduledQueryRulesAlertV2Identity { + /** + * A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + */ + identityIds?: pulumi.Input[]>; + /** + * The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + */ + principalId?: pulumi.Input; + /** + * The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + */ + tenantId?: pulumi.Input; + /** + * Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + */ + type: pulumi.Input; + } + export interface ScheduledQueryRulesLogCriteria { /** * A `dimension` block as defined below. @@ -42797,6 +42846,30 @@ export namespace netapp { * A list of allowed clients IPv4 addresses. */ allowedClients: pulumi.Input[]>; + /** + * Is Kerberos 5 read-only access permitted to this volume? + */ + kerberos5ReadOnlyEnabled?: pulumi.Input; + /** + * Is Kerberos 5 read/write permitted to this volume? + */ + kerberos5ReadWriteEnabled?: pulumi.Input; + /** + * Is Kerberos 5i read-only permitted to this volume? + */ + kerberos5iReadOnlyEnabled?: pulumi.Input; + /** + * Is Kerberos 5i read/write permitted to this volume? + */ + kerberos5iReadWriteEnabled?: pulumi.Input; + /** + * Is Kerberos 5p read-only permitted to this volume? + */ + kerberos5pReadOnlyEnabled?: pulumi.Input; + /** + * Is Kerberos 5p read/write permitted to this volume? + */ + kerberos5pReadWriteEnabled?: pulumi.Input; /** * A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifsEnabled`, `nfsv3Enabled` and `nfsv4Enabled`. */ @@ -46617,7 +46690,7 @@ export namespace nginx { export interface DeploymentFrontendPublic { /** - * Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * Specifies a list of Public IP Resource ID to this Nginx Deployment. */ ipAddresses?: pulumi.Input[]>; } @@ -52083,6 +52156,9 @@ export namespace synapse { } } +export namespace systemcenter { +} + export namespace trafficmanager { export interface ProfileDnsConfig { /** @@ -52551,6 +52627,17 @@ export namespace webpubsub { } export namespace workloadssap { + export interface DiscoveryVirtualInstanceIdentity { + /** + * A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + */ + identityIds: pulumi.Input[]>; + /** + * The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + */ + type: pulumi.Input; + } + export interface SingleNodeVirtualInstanceIdentity { /** * A list of User Assigned Managed Identity IDs to be assigned to this SAP Single Node Virtual Instance. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index f937eb440e..58f8eadb07 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -24066,7 +24066,7 @@ export namespace compute { export interface CapacityReservationSku { /** - * Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + * Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. */ capacity: number; /** @@ -28020,6 +28020,7 @@ export namespace config { logAnalyticsWorkspace?: outputs.config.FeaturesLogAnalyticsWorkspace; managedDisk?: outputs.config.FeaturesManagedDisk; postgresqlFlexibleServer?: outputs.config.FeaturesPostgresqlFlexibleServer; + recoveryService?: outputs.config.FeaturesRecoveryService; resourceGroup?: outputs.config.FeaturesResourceGroup; subscription?: outputs.config.FeaturesSubscription; templateDeployment?: outputs.config.FeaturesTemplateDeployment; @@ -28096,6 +28097,11 @@ export namespace config { restartServerOnConfigurationValueChange?: boolean; } + export interface FeaturesRecoveryService { + purgeProtectedItemsFromVaultOnDestroy?: boolean; + vmBackupStopProtectionAndRetainDataOnDestroy?: boolean; + } + export interface FeaturesResourceGroup { preventDeletionIfContainsResources?: boolean; } @@ -28918,15 +28924,29 @@ export namespace containerapp { export interface AppSecret { /** - * The Secret name. + * The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + * + * !> **Note:** `identity` must be used together with `keyVaultSecretId` + */ + identity?: string; + /** + * The ID of a Key Vault secret. This can be a versioned or version-less ID. + * + * !> **Note:** When using `keyVaultSecretId`, `ignoreChanges` should be used to ignore any changes to `value`. + */ + keyVaultSecretId?: string; + /** + * The secret name. */ name: string; /** * The value for this secret. * + * !> **Note:** `value` will be ignored if `keyVaultSecretId` and `identity` are provided. + * * !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. */ - value: string; + value?: string; } export interface AppTemplate { @@ -29427,6 +29447,14 @@ export namespace containerapp { } export interface EnvironmentDaprComponentSecret { + /** + * The identity to use for accessing key vault reference. + */ + identity?: string; + /** + * The Key Vault Secret ID. Could be either one of `id` or `versionlessId`. + */ + keyVaultSecretId?: string; /** * The Secret name. */ @@ -29434,7 +29462,7 @@ export namespace containerapp { /** * The value for this secret. */ - value: string; + value?: string; } export interface EnvironmentWorkloadProfile { @@ -29600,6 +29628,14 @@ export namespace containerapp { } export interface GetAppSecret { + /** + * Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + */ + identity: string; + /** + * The ID of a Key Vault secret. + */ + keyVaultSecretId: string; /** * The name of the Container App. */ @@ -34857,7 +34893,7 @@ export namespace databricks { /** * Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. * - * > **NOTE** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + * > **Note:** Updating `noPublicIp` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. */ noPublicIp: boolean; /** @@ -34895,7 +34931,7 @@ export namespace databricks { /** * Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. * - * > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + * > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtualNetworkId` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). */ vnetAddressPrefix: string; } @@ -52608,6 +52644,27 @@ export namespace monitoring { numberOfEvaluationPeriods: number; } + export interface ScheduledQueryRulesAlertV2Identity { + /** + * A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + * + * > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + */ + identityIds?: string[]; + /** + * The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + */ + principalId: string; + /** + * The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + */ + tenantId: string; + /** + * Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + */ + type: string; + } + export interface ScheduledQueryRulesLogCriteria { /** * A `dimension` block as defined below. @@ -54010,6 +54067,30 @@ export namespace netapp { * A list of allowed clients IPv4 addresses. */ allowedClients: string[]; + /** + * Is Kerberos 5 read-only access permitted to this volume? + */ + kerberos5ReadOnlyEnabled?: boolean; + /** + * Is Kerberos 5 read/write permitted to this volume? + */ + kerberos5ReadWriteEnabled?: boolean; + /** + * Is Kerberos 5i read-only permitted to this volume? + */ + kerberos5iReadOnlyEnabled?: boolean; + /** + * Is Kerberos 5i read/write permitted to this volume? + */ + kerberos5iReadWriteEnabled?: boolean; + /** + * Is Kerberos 5p read-only permitted to this volume? + */ + kerberos5pReadOnlyEnabled?: boolean; + /** + * Is Kerberos 5p read/write permitted to this volume? + */ + kerberos5pReadWriteEnabled?: boolean; /** * A list of allowed protocols. Valid values include `CIFS`, `NFSv3`, or `NFSv4.1`. Only one value is supported at this time. This replaces the previous arguments: `cifsEnabled`, `nfsv3Enabled` and `nfsv4Enabled`. */ @@ -59471,7 +59552,7 @@ export namespace nginx { export interface DeploymentFrontendPublic { /** - * Specifies a list of Public IP Resouce ID to this Nginx Deployment. + * Specifies a list of Public IP Resource ID to this Nginx Deployment. */ ipAddresses?: string[]; } @@ -65897,6 +65978,24 @@ export namespace synapse { } +export namespace systemcenter { + export interface GetVirtualMachineManagerInventoryItemsInventoryItem { + /** + * The ID of the System Center Virtual Machine Manager Inventory Item. + */ + id: string; + /** + * The name of the System Center Virtual Machine Manager Inventory Item. + */ + name: string; + /** + * The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + */ + uuid: string; + } + +} + export namespace trafficmanager { export interface ProfileDnsConfig { /** @@ -66381,6 +66480,17 @@ export namespace webpubsub { } export namespace workloadssap { + export interface DiscoveryVirtualInstanceIdentity { + /** + * A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + */ + identityIds: string[]; + /** + * The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + */ + type: string; + } + export interface SingleNodeVirtualInstanceIdentity { /** * A list of User Assigned Managed Identity IDs to be assigned to this SAP Single Node Virtual Instance. diff --git a/sdk/nodejs/workloadssap/discoveryVirtualInstance.ts b/sdk/nodejs/workloadssap/discoveryVirtualInstance.ts new file mode 100644 index 0000000000..e1f951d410 --- /dev/null +++ b/sdk/nodejs/workloadssap/discoveryVirtualInstance.ts @@ -0,0 +1,261 @@ +// *** 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 SAP Discovery Virtual Instance. + * + * > **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace "Microsoft.Workloads"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace "Microsoft.Workloads" --query "registrationState"`. Once this outputs "Registered" the Resource Provider is available for use. + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as azure from "@pulumi/azure"; + * + * const example = new azure.core.ResourceGroup("example", { + * name: "example-sapvis", + * location: "West Europe", + * }); + * const exampleDiscoveryVirtualInstance = new azure.workloadssap.DiscoveryVirtualInstance("example", { + * name: "X01", + * resourceGroupName: example.name, + * location: example.location, + * environment: "NonProd", + * sapProduct: "S4HANA", + * centralServerVirtualMachineId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1", + * managedStorageAccountName: "managedsa", + * identity: { + * type: "UserAssigned", + * identityIds: ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1"], + * }, + * }); + * ``` + * + * + * ## Import + * + * SAP Discovery Virtual Instances can be imported using the `resource id`, e.g. + * + * ```sh + * $ pulumi import azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1 + * ``` + */ +export class DiscoveryVirtualInstance extends pulumi.CustomResource { + /** + * Get an existing DiscoveryVirtualInstance 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?: DiscoveryVirtualInstanceState, opts?: pulumi.CustomResourceOptions): DiscoveryVirtualInstance { + return new DiscoveryVirtualInstance(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance'; + + /** + * Returns true if the given object is an instance of DiscoveryVirtualInstance. 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 DiscoveryVirtualInstance { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === DiscoveryVirtualInstance.__pulumiType; + } + + /** + * The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + */ + public readonly centralServerVirtualMachineId!: pulumi.Output; + /** + * The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + */ + public readonly environment!: pulumi.Output; + /** + * An `identity` block as defined below. + */ + public readonly identity!: pulumi.Output; + /** + * The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + */ + public readonly location!: pulumi.Output; + /** + * The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + */ + public readonly managedResourceGroupName!: pulumi.Output; + /** + * The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + */ + public readonly managedStorageAccountName!: pulumi.Output; + /** + * Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + */ + public readonly name!: pulumi.Output; + /** + * The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + */ + public readonly resourceGroupName!: pulumi.Output; + /** + * The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + */ + public readonly sapProduct!: pulumi.Output; + /** + * A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + + /** + * Create a DiscoveryVirtualInstance 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: DiscoveryVirtualInstanceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DiscoveryVirtualInstanceArgs | DiscoveryVirtualInstanceState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as DiscoveryVirtualInstanceState | undefined; + resourceInputs["centralServerVirtualMachineId"] = state ? state.centralServerVirtualMachineId : undefined; + resourceInputs["environment"] = state ? state.environment : undefined; + resourceInputs["identity"] = state ? state.identity : undefined; + resourceInputs["location"] = state ? state.location : undefined; + resourceInputs["managedResourceGroupName"] = state ? state.managedResourceGroupName : undefined; + resourceInputs["managedStorageAccountName"] = state ? state.managedStorageAccountName : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["resourceGroupName"] = state ? state.resourceGroupName : undefined; + resourceInputs["sapProduct"] = state ? state.sapProduct : undefined; + resourceInputs["tags"] = state ? state.tags : undefined; + } else { + const args = argsOrState as DiscoveryVirtualInstanceArgs | undefined; + if ((!args || args.centralServerVirtualMachineId === undefined) && !opts.urn) { + throw new Error("Missing required property 'centralServerVirtualMachineId'"); + } + if ((!args || args.environment === undefined) && !opts.urn) { + throw new Error("Missing required property 'environment'"); + } + if ((!args || args.resourceGroupName === undefined) && !opts.urn) { + throw new Error("Missing required property 'resourceGroupName'"); + } + if ((!args || args.sapProduct === undefined) && !opts.urn) { + throw new Error("Missing required property 'sapProduct'"); + } + resourceInputs["centralServerVirtualMachineId"] = args ? args.centralServerVirtualMachineId : undefined; + resourceInputs["environment"] = args ? args.environment : undefined; + resourceInputs["identity"] = args ? args.identity : undefined; + resourceInputs["location"] = args ? args.location : undefined; + resourceInputs["managedResourceGroupName"] = args ? args.managedResourceGroupName : undefined; + resourceInputs["managedStorageAccountName"] = args ? args.managedStorageAccountName : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["resourceGroupName"] = args ? args.resourceGroupName : undefined; + resourceInputs["sapProduct"] = args ? args.sapProduct : undefined; + resourceInputs["tags"] = args ? args.tags : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(DiscoveryVirtualInstance.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering DiscoveryVirtualInstance resources. + */ +export interface DiscoveryVirtualInstanceState { + /** + * The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + */ + centralServerVirtualMachineId?: pulumi.Input; + /** + * The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + */ + environment?: pulumi.Input; + /** + * An `identity` block as defined below. + */ + identity?: pulumi.Input; + /** + * The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + */ + managedResourceGroupName?: pulumi.Input; + /** + * The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + */ + managedStorageAccountName?: pulumi.Input; + /** + * Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + */ + resourceGroupName?: pulumi.Input; + /** + * The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + */ + sapProduct?: pulumi.Input; + /** + * A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a DiscoveryVirtualInstance resource. + */ +export interface DiscoveryVirtualInstanceArgs { + /** + * The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + */ + centralServerVirtualMachineId: pulumi.Input; + /** + * The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + */ + environment: pulumi.Input; + /** + * An `identity` block as defined below. + */ + identity?: pulumi.Input; + /** + * The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + */ + location?: pulumi.Input; + /** + * The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + */ + managedResourceGroupName?: pulumi.Input; + /** + * The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + */ + managedStorageAccountName?: pulumi.Input; + /** + * Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + */ + name?: pulumi.Input; + /** + * The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + */ + resourceGroupName: pulumi.Input; + /** + * The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + */ + sapProduct: pulumi.Input; + /** + * A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/workloadssap/index.ts b/sdk/nodejs/workloadssap/index.ts index 79c3b99988..7f122c2fae 100644 --- a/sdk/nodejs/workloadssap/index.ts +++ b/sdk/nodejs/workloadssap/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { DiscoveryVirtualInstanceArgs, DiscoveryVirtualInstanceState } from "./discoveryVirtualInstance"; +export type DiscoveryVirtualInstance = import("./discoveryVirtualInstance").DiscoveryVirtualInstance; +export const DiscoveryVirtualInstance: typeof import("./discoveryVirtualInstance").DiscoveryVirtualInstance = null as any; +utilities.lazyLoad(exports, ["DiscoveryVirtualInstance"], () => require("./discoveryVirtualInstance")); + export { SingleNodeVirtualInstanceArgs, SingleNodeVirtualInstanceState } from "./singleNodeVirtualInstance"; export type SingleNodeVirtualInstance = import("./singleNodeVirtualInstance").SingleNodeVirtualInstance; export const SingleNodeVirtualInstance: typeof import("./singleNodeVirtualInstance").SingleNodeVirtualInstance = null as any; @@ -20,6 +25,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance": + return new DiscoveryVirtualInstance(name, undefined, { urn }) case "azure:workloadssap/singleNodeVirtualInstance:SingleNodeVirtualInstance": return new SingleNodeVirtualInstance(name, undefined, { urn }) case "azure:workloadssap/threeTierVirtualInstance:ThreeTierVirtualInstance": @@ -29,5 +36,6 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("azure", "workloadssap/discoveryVirtualInstance", _module) pulumi.runtime.registerResourceModule("azure", "workloadssap/singleNodeVirtualInstance", _module) pulumi.runtime.registerResourceModule("azure", "workloadssap/threeTierVirtualInstance", _module) diff --git a/sdk/python/pulumi_azure/__init__.py b/sdk/python/pulumi_azure/__init__.py index a4622ff3a9..616878e324 100644 --- a/sdk/python/pulumi_azure/__init__.py +++ b/sdk/python/pulumi_azure/__init__.py @@ -1433,6 +1433,14 @@ "azure:appservice/staticWebAppCustomDomain:StaticWebAppCustomDomain": "StaticWebAppCustomDomain" } }, + { + "pkg": "azure", + "mod": "appservice/staticWebAppFunctionAppRegistration", + "fqn": "pulumi_azure.appservice", + "classes": { + "azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration": "StaticWebAppFunctionAppRegistration" + } + }, { "pkg": "azure", "mod": "appservice/virtualNetworkSwiftConnection", @@ -7689,6 +7697,22 @@ "azure:redis/cache:Cache": "Cache" } }, + { + "pkg": "azure", + "mod": "redis/cacheAccessPolicy", + "fqn": "pulumi_azure.redis", + "classes": { + "azure:redis/cacheAccessPolicy:CacheAccessPolicy": "CacheAccessPolicy" + } + }, + { + "pkg": "azure", + "mod": "redis/cacheAccessPolicyAssignment", + "fqn": "pulumi_azure.redis", + "classes": { + "azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment": "CacheAccessPolicyAssignment" + } + }, { "pkg": "azure", "mod": "redis/enterpriseCluster", @@ -9185,6 +9209,14 @@ "azure:webpubsub/sharedPrivateLinkResource:SharedPrivateLinkResource": "SharedPrivateLinkResource" } }, + { + "pkg": "azure", + "mod": "workloadssap/discoveryVirtualInstance", + "fqn": "pulumi_azure.workloadssap", + "classes": { + "azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance": "DiscoveryVirtualInstance" + } + }, { "pkg": "azure", "mod": "workloadssap/singleNodeVirtualInstance", diff --git a/sdk/python/pulumi_azure/_inputs.py b/sdk/python/pulumi_azure/_inputs.py index 661cedabb4..3056ac5172 100644 --- a/sdk/python/pulumi_azure/_inputs.py +++ b/sdk/python/pulumi_azure/_inputs.py @@ -19,6 +19,7 @@ 'ProviderFeaturesLogAnalyticsWorkspaceArgs', 'ProviderFeaturesManagedDiskArgs', 'ProviderFeaturesPostgresqlFlexibleServerArgs', + 'ProviderFeaturesRecoveryServiceArgs', 'ProviderFeaturesResourceGroupArgs', 'ProviderFeaturesSubscriptionArgs', 'ProviderFeaturesTemplateDeploymentArgs', @@ -37,6 +38,7 @@ def __init__(__self__, *, log_analytics_workspace: Optional[pulumi.Input['ProviderFeaturesLogAnalyticsWorkspaceArgs']] = None, managed_disk: Optional[pulumi.Input['ProviderFeaturesManagedDiskArgs']] = None, postgresql_flexible_server: Optional[pulumi.Input['ProviderFeaturesPostgresqlFlexibleServerArgs']] = None, + recovery_service: Optional[pulumi.Input['ProviderFeaturesRecoveryServiceArgs']] = None, resource_group: Optional[pulumi.Input['ProviderFeaturesResourceGroupArgs']] = None, subscription: Optional[pulumi.Input['ProviderFeaturesSubscriptionArgs']] = None, template_deployment: Optional[pulumi.Input['ProviderFeaturesTemplateDeploymentArgs']] = None, @@ -58,6 +60,8 @@ def __init__(__self__, *, pulumi.set(__self__, "managed_disk", managed_disk) if postgresql_flexible_server is not None: pulumi.set(__self__, "postgresql_flexible_server", postgresql_flexible_server) + if recovery_service is not None: + pulumi.set(__self__, "recovery_service", recovery_service) if resource_group is not None: pulumi.set(__self__, "resource_group", resource_group) if subscription is not None: @@ -141,6 +145,15 @@ def postgresql_flexible_server(self) -> Optional[pulumi.Input['ProviderFeaturesP def postgresql_flexible_server(self, value: Optional[pulumi.Input['ProviderFeaturesPostgresqlFlexibleServerArgs']]): pulumi.set(self, "postgresql_flexible_server", value) + @property + @pulumi.getter(name="recoveryService") + def recovery_service(self) -> Optional[pulumi.Input['ProviderFeaturesRecoveryServiceArgs']]: + return pulumi.get(self, "recovery_service") + + @recovery_service.setter + def recovery_service(self, value: Optional[pulumi.Input['ProviderFeaturesRecoveryServiceArgs']]): + pulumi.set(self, "recovery_service", value) + @property @pulumi.getter(name="resourceGroup") def resource_group(self) -> Optional[pulumi.Input['ProviderFeaturesResourceGroupArgs']]: @@ -481,6 +494,35 @@ def restart_server_on_configuration_value_change(self, value: Optional[pulumi.In pulumi.set(self, "restart_server_on_configuration_value_change", value) +@pulumi.input_type +class ProviderFeaturesRecoveryServiceArgs: + def __init__(__self__, *, + purge_protected_items_from_vault_on_destroy: Optional[pulumi.Input[bool]] = None, + vm_backup_stop_protection_and_retain_data_on_destroy: Optional[pulumi.Input[bool]] = None): + if purge_protected_items_from_vault_on_destroy is not None: + pulumi.set(__self__, "purge_protected_items_from_vault_on_destroy", purge_protected_items_from_vault_on_destroy) + if vm_backup_stop_protection_and_retain_data_on_destroy is not None: + pulumi.set(__self__, "vm_backup_stop_protection_and_retain_data_on_destroy", vm_backup_stop_protection_and_retain_data_on_destroy) + + @property + @pulumi.getter(name="purgeProtectedItemsFromVaultOnDestroy") + def purge_protected_items_from_vault_on_destroy(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "purge_protected_items_from_vault_on_destroy") + + @purge_protected_items_from_vault_on_destroy.setter + def purge_protected_items_from_vault_on_destroy(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "purge_protected_items_from_vault_on_destroy", value) + + @property + @pulumi.getter(name="vmBackupStopProtectionAndRetainDataOnDestroy") + def vm_backup_stop_protection_and_retain_data_on_destroy(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "vm_backup_stop_protection_and_retain_data_on_destroy") + + @vm_backup_stop_protection_and_retain_data_on_destroy.setter + def vm_backup_stop_protection_and_retain_data_on_destroy(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "vm_backup_stop_protection_and_retain_data_on_destroy", value) + + @pulumi.input_type class ProviderFeaturesResourceGroupArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_azure/appinsights/smart_detection_rule.py b/sdk/python/pulumi_azure/appinsights/smart_detection_rule.py index b6d51ff1e7..e03dff3200 100644 --- a/sdk/python/pulumi_azure/appinsights/smart_detection_rule.py +++ b/sdk/python/pulumi_azure/appinsights/smart_detection_rule.py @@ -235,7 +235,7 @@ def __init__(__self__, Application Insights Smart Detection Rules can be imported using the `resource id`, e.g. ```sh - $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/smartDetectionRule/myrule1 + $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/proactiveDetectionConfig/myrule1 ``` :param str resource_name: The name of the resource. @@ -284,7 +284,7 @@ def __init__(__self__, Application Insights Smart Detection Rules can be imported using the `resource id`, e.g. ```sh - $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/smartDetectionRule/myrule1 + $ pulumi import azure:appinsights/smartDetectionRule:SmartDetectionRule rule1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Insights/components/mycomponent1/proactiveDetectionConfig/myrule1 ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_azure/appservice/__init__.py b/sdk/python/pulumi_azure/appservice/__init__.py index 0b280482c7..553efe0350 100644 --- a/sdk/python/pulumi_azure/appservice/__init__.py +++ b/sdk/python/pulumi_azure/appservice/__init__.py @@ -55,6 +55,7 @@ from .static_site_custom_domain import * from .static_web_app import * from .static_web_app_custom_domain import * +from .static_web_app_function_app_registration import * from .virtual_network_swift_connection import * from .web_app_active_slot import * from .web_app_hybrid_connection import * diff --git a/sdk/python/pulumi_azure/appservice/static_web_app_function_app_registration.py b/sdk/python/pulumi_azure/appservice/static_web_app_function_app_registration.py new file mode 100644 index 0000000000..3611c6f599 --- /dev/null +++ b/sdk/python/pulumi_azure/appservice/static_web_app_function_app_registration.py @@ -0,0 +1,322 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['StaticWebAppFunctionAppRegistrationArgs', 'StaticWebAppFunctionAppRegistration'] + +@pulumi.input_type +class StaticWebAppFunctionAppRegistrationArgs: + def __init__(__self__, *, + function_app_id: pulumi.Input[str], + static_web_app_id: pulumi.Input[str]): + """ + The set of arguments for constructing a StaticWebAppFunctionAppRegistration resource. + :param pulumi.Input[str] function_app_id: The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + + > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + + > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + :param pulumi.Input[str] static_web_app_id: The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + """ + pulumi.set(__self__, "function_app_id", function_app_id) + pulumi.set(__self__, "static_web_app_id", static_web_app_id) + + @property + @pulumi.getter(name="functionAppId") + def function_app_id(self) -> pulumi.Input[str]: + """ + The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + + > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + + > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + """ + return pulumi.get(self, "function_app_id") + + @function_app_id.setter + def function_app_id(self, value: pulumi.Input[str]): + pulumi.set(self, "function_app_id", value) + + @property + @pulumi.getter(name="staticWebAppId") + def static_web_app_id(self) -> pulumi.Input[str]: + """ + The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "static_web_app_id") + + @static_web_app_id.setter + def static_web_app_id(self, value: pulumi.Input[str]): + pulumi.set(self, "static_web_app_id", value) + + +@pulumi.input_type +class _StaticWebAppFunctionAppRegistrationState: + def __init__(__self__, *, + function_app_id: Optional[pulumi.Input[str]] = None, + static_web_app_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering StaticWebAppFunctionAppRegistration resources. + :param pulumi.Input[str] function_app_id: The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + + > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + + > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + :param pulumi.Input[str] static_web_app_id: The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + """ + if function_app_id is not None: + pulumi.set(__self__, "function_app_id", function_app_id) + if static_web_app_id is not None: + pulumi.set(__self__, "static_web_app_id", static_web_app_id) + + @property + @pulumi.getter(name="functionAppId") + def function_app_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + + > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + + > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + """ + return pulumi.get(self, "function_app_id") + + @function_app_id.setter + def function_app_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "function_app_id", value) + + @property + @pulumi.getter(name="staticWebAppId") + def static_web_app_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "static_web_app_id") + + @static_web_app_id.setter + def static_web_app_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "static_web_app_id", value) + + +class StaticWebAppFunctionAppRegistration(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + function_app_id: Optional[pulumi.Input[str]] = None, + static_web_app_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages an App Service Static Web App Function App Registration. + + > **NOTE:** This resource registers the specified Function App to the `Production` build of the Static Web App. + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_static_web_app = azure.appservice.StaticWebApp("example", + name="example", + resource_group_name=example.name, + location=example.location) + example_account = azure.storage.Account("example", + name="examplesstorageacc", + resource_group_name=example.name, + location=example.location, + account_tier="Standard", + account_replication_type="LRS") + example_service_plan = azure.appservice.ServicePlan("example", + name="example-service-plan", + location=example.location, + resource_group_name=example.name, + os_type="Linux", + sku_name="S1") + example_linux_function_app = azure.appservice.LinuxFunctionApp("example", + name="example-function-app", + location=example.location, + resource_group_name=example.name, + service_plan_id=example_service_plan.id, + storage_account_name=example_account.name, + storage_account_access_key=example_account.primary_access_key, + site_config=azure.appservice.LinuxFunctionAppSiteConfigArgs()) + example_static_web_app_function_app_registration = azure.appservice.StaticWebAppFunctionAppRegistration("example", + static_web_app_id=example_static_web_app.id, + function_app_id=example_linux_function_app.id) + ``` + + + ## Import + + Static Web App Function App Registration can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/userProvidedFunctionApps/myFunctionApp + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] function_app_id: The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + + > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + + > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + :param pulumi.Input[str] static_web_app_id: The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: StaticWebAppFunctionAppRegistrationArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages an App Service Static Web App Function App Registration. + + > **NOTE:** This resource registers the specified Function App to the `Production` build of the Static Web App. + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="West Europe") + example_static_web_app = azure.appservice.StaticWebApp("example", + name="example", + resource_group_name=example.name, + location=example.location) + example_account = azure.storage.Account("example", + name="examplesstorageacc", + resource_group_name=example.name, + location=example.location, + account_tier="Standard", + account_replication_type="LRS") + example_service_plan = azure.appservice.ServicePlan("example", + name="example-service-plan", + location=example.location, + resource_group_name=example.name, + os_type="Linux", + sku_name="S1") + example_linux_function_app = azure.appservice.LinuxFunctionApp("example", + name="example-function-app", + location=example.location, + resource_group_name=example.name, + service_plan_id=example_service_plan.id, + storage_account_name=example_account.name, + storage_account_access_key=example_account.primary_access_key, + site_config=azure.appservice.LinuxFunctionAppSiteConfigArgs()) + example_static_web_app_function_app_registration = azure.appservice.StaticWebAppFunctionAppRegistration("example", + static_web_app_id=example_static_web_app.id, + function_app_id=example_linux_function_app.id) + ``` + + + ## Import + + Static Web App Function App Registration can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.Web/staticSites/my-static-site1/userProvidedFunctionApps/myFunctionApp + ``` + + :param str resource_name: The name of the resource. + :param StaticWebAppFunctionAppRegistrationArgs 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(StaticWebAppFunctionAppRegistrationArgs, 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, + function_app_id: Optional[pulumi.Input[str]] = None, + static_web_app_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__ = StaticWebAppFunctionAppRegistrationArgs.__new__(StaticWebAppFunctionAppRegistrationArgs) + + if function_app_id is None and not opts.urn: + raise TypeError("Missing required property 'function_app_id'") + __props__.__dict__["function_app_id"] = function_app_id + if static_web_app_id is None and not opts.urn: + raise TypeError("Missing required property 'static_web_app_id'") + __props__.__dict__["static_web_app_id"] = static_web_app_id + super(StaticWebAppFunctionAppRegistration, __self__).__init__( + 'azure:appservice/staticWebAppFunctionAppRegistration:StaticWebAppFunctionAppRegistration', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + function_app_id: Optional[pulumi.Input[str]] = None, + static_web_app_id: Optional[pulumi.Input[str]] = None) -> 'StaticWebAppFunctionAppRegistration': + """ + Get an existing StaticWebAppFunctionAppRegistration 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] function_app_id: The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + + > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + + > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + :param pulumi.Input[str] static_web_app_id: The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _StaticWebAppFunctionAppRegistrationState.__new__(_StaticWebAppFunctionAppRegistrationState) + + __props__.__dict__["function_app_id"] = function_app_id + __props__.__dict__["static_web_app_id"] = static_web_app_id + return StaticWebAppFunctionAppRegistration(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="functionAppId") + def function_app_id(self) -> pulumi.Output[str]: + """ + The ID of a Linux or Windows Function App to connect to the Static Web App as a Backend. Changing this forces a new resource to be created. + + > **NOTE:** Only one Function App can be connected to a Static Web App. Multiple Function Apps are not currently supported. + + > **NOTE:** Connecting a Function App resource to a Static Web App resource updates the Function App to use AuthV2 and configures the `azure_static_web_app_v2` which may need to be accounted for by the use of `ignore_changes` depending on the existing `auth_settings_v2` configuration of the target Function App. + """ + return pulumi.get(self, "function_app_id") + + @property + @pulumi.getter(name="staticWebAppId") + def static_web_app_id(self) -> pulumi.Output[str]: + """ + The ID of the Static Web App to register the Function App to as a backend. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "static_web_app_id") + diff --git a/sdk/python/pulumi_azure/bot/channels_registration.py b/sdk/python/pulumi_azure/bot/channels_registration.py index f3757b711f..8407308d43 100644 --- a/sdk/python/pulumi_azure/bot/channels_registration.py +++ b/sdk/python/pulumi_azure/bot/channels_registration.py @@ -630,6 +630,8 @@ def __init__(__self__, """ Manages a Bot Channels Registration. + > **Note:** Bot Channels Registration has been [deprecated by Azure](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-resources-faq-azure?view=azure-bot-service-4.0#why-are-web-app-bot-and-bot-channel-registration-being-deprecated). New implementations should use the `bot.ServiceAzureBot` resource. + ## Example Usage @@ -693,6 +695,8 @@ def __init__(__self__, """ Manages a Bot Channels Registration. + > **Note:** Bot Channels Registration has been [deprecated by Azure](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-resources-faq-azure?view=azure-bot-service-4.0#why-are-web-app-bot-and-bot-channel-registration-being-deprecated). New implementations should use the `bot.ServiceAzureBot` resource. + ## Example Usage diff --git a/sdk/python/pulumi_azure/bot/service_azure_bot.py b/sdk/python/pulumi_azure/bot/service_azure_bot.py index b75f4abe3a..25c24ae3b3 100644 --- a/sdk/python/pulumi_azure/bot/service_azure_bot.py +++ b/sdk/python/pulumi_azure/bot/service_azure_bot.py @@ -17,6 +17,7 @@ def __init__(__self__, *, microsoft_app_id: pulumi.Input[str], resource_group_name: pulumi.Input[str], sku: pulumi.Input[str], + cmk_key_vault_key_url: Optional[pulumi.Input[str]] = None, developer_app_insights_api_key: Optional[pulumi.Input[str]] = None, developer_app_insights_application_id: Optional[pulumi.Input[str]] = None, developer_app_insights_key: Optional[pulumi.Input[str]] = None, @@ -39,6 +40,9 @@ def __init__(__self__, *, :param pulumi.Input[str] microsoft_app_id: The Microsoft Application ID for the Azure Bot Service. 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 Bot Service should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] sku: The SKU of the Azure Bot Service. Accepted values are `F0` or `S1`. Changing this forces a new resource to be created. + :param pulumi.Input[str] cmk_key_vault_key_url: The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + + > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) :param pulumi.Input[str] developer_app_insights_api_key: The Application Insights API Key to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_application_id: The resource ID of the Application Insights instance to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_key: The Application Insight Key to associate with this Azure Bot Service. @@ -60,6 +64,8 @@ def __init__(__self__, *, pulumi.set(__self__, "microsoft_app_id", microsoft_app_id) pulumi.set(__self__, "resource_group_name", resource_group_name) pulumi.set(__self__, "sku", sku) + if cmk_key_vault_key_url is not None: + pulumi.set(__self__, "cmk_key_vault_key_url", cmk_key_vault_key_url) if developer_app_insights_api_key is not None: pulumi.set(__self__, "developer_app_insights_api_key", developer_app_insights_api_key) if developer_app_insights_application_id is not None: @@ -131,6 +137,20 @@ def sku(self) -> pulumi.Input[str]: def sku(self, value: pulumi.Input[str]): pulumi.set(self, "sku", value) + @property + @pulumi.getter(name="cmkKeyVaultKeyUrl") + def cmk_key_vault_key_url(self) -> Optional[pulumi.Input[str]]: + """ + The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + + > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + """ + return pulumi.get(self, "cmk_key_vault_key_url") + + @cmk_key_vault_key_url.setter + def cmk_key_vault_key_url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cmk_key_vault_key_url", value) + @property @pulumi.getter(name="developerAppInsightsApiKey") def developer_app_insights_api_key(self) -> Optional[pulumi.Input[str]]: @@ -339,6 +359,7 @@ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): @pulumi.input_type class _ServiceAzureBotState: def __init__(__self__, *, + cmk_key_vault_key_url: Optional[pulumi.Input[str]] = None, developer_app_insights_api_key: Optional[pulumi.Input[str]] = None, developer_app_insights_application_id: Optional[pulumi.Input[str]] = None, developer_app_insights_key: Optional[pulumi.Input[str]] = None, @@ -361,6 +382,9 @@ def __init__(__self__, *, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering ServiceAzureBot resources. + :param pulumi.Input[str] cmk_key_vault_key_url: The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + + > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) :param pulumi.Input[str] developer_app_insights_api_key: The Application Insights API Key to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_application_id: The resource ID of the Application Insights instance to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_key: The Application Insight Key to associate with this Azure Bot Service. @@ -382,6 +406,8 @@ def __init__(__self__, *, :param pulumi.Input[bool] streaming_endpoint_enabled: Is the streaming endpoint enabled for this Azure Bot Service. Defaults to `false`. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags which should be assigned to this Azure Bot Service. """ + if cmk_key_vault_key_url is not None: + pulumi.set(__self__, "cmk_key_vault_key_url", cmk_key_vault_key_url) if developer_app_insights_api_key is not None: pulumi.set(__self__, "developer_app_insights_api_key", developer_app_insights_api_key) if developer_app_insights_application_id is not None: @@ -423,6 +449,20 @@ def __init__(__self__, *, if tags is not None: pulumi.set(__self__, "tags", tags) + @property + @pulumi.getter(name="cmkKeyVaultKeyUrl") + def cmk_key_vault_key_url(self) -> Optional[pulumi.Input[str]]: + """ + The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + + > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + """ + return pulumi.get(self, "cmk_key_vault_key_url") + + @cmk_key_vault_key_url.setter + def cmk_key_vault_key_url(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cmk_key_vault_key_url", value) + @property @pulumi.getter(name="developerAppInsightsApiKey") def developer_app_insights_api_key(self) -> Optional[pulumi.Input[str]]: @@ -669,6 +709,7 @@ class ServiceAzureBot(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + cmk_key_vault_key_url: Optional[pulumi.Input[str]] = None, developer_app_insights_api_key: Optional[pulumi.Input[str]] = None, developer_app_insights_application_id: Optional[pulumi.Input[str]] = None, developer_app_insights_key: Optional[pulumi.Input[str]] = None, @@ -744,6 +785,9 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] cmk_key_vault_key_url: The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + + > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) :param pulumi.Input[str] developer_app_insights_api_key: The Application Insights API Key to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_application_id: The resource ID of the Application Insights instance to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_key: The Application Insight Key to associate with this Azure Bot Service. @@ -838,6 +882,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + cmk_key_vault_key_url: Optional[pulumi.Input[str]] = None, developer_app_insights_api_key: Optional[pulumi.Input[str]] = None, developer_app_insights_application_id: Optional[pulumi.Input[str]] = None, developer_app_insights_key: Optional[pulumi.Input[str]] = None, @@ -867,6 +912,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ServiceAzureBotArgs.__new__(ServiceAzureBotArgs) + __props__.__dict__["cmk_key_vault_key_url"] = cmk_key_vault_key_url __props__.__dict__["developer_app_insights_api_key"] = None if developer_app_insights_api_key is None else pulumi.Output.secret(developer_app_insights_api_key) __props__.__dict__["developer_app_insights_application_id"] = developer_app_insights_application_id __props__.__dict__["developer_app_insights_key"] = developer_app_insights_key @@ -905,6 +951,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + cmk_key_vault_key_url: Optional[pulumi.Input[str]] = None, developer_app_insights_api_key: Optional[pulumi.Input[str]] = None, developer_app_insights_application_id: Optional[pulumi.Input[str]] = None, developer_app_insights_key: Optional[pulumi.Input[str]] = None, @@ -932,6 +979,9 @@ def get(resource_name: str, :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] cmk_key_vault_key_url: The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + + > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) :param pulumi.Input[str] developer_app_insights_api_key: The Application Insights API Key to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_application_id: The resource ID of the Application Insights instance to associate with this Azure Bot Service. :param pulumi.Input[str] developer_app_insights_key: The Application Insight Key to associate with this Azure Bot Service. @@ -957,6 +1007,7 @@ def get(resource_name: str, __props__ = _ServiceAzureBotState.__new__(_ServiceAzureBotState) + __props__.__dict__["cmk_key_vault_key_url"] = cmk_key_vault_key_url __props__.__dict__["developer_app_insights_api_key"] = developer_app_insights_api_key __props__.__dict__["developer_app_insights_application_id"] = developer_app_insights_application_id __props__.__dict__["developer_app_insights_key"] = developer_app_insights_key @@ -979,6 +1030,16 @@ def get(resource_name: str, __props__.__dict__["tags"] = tags return ServiceAzureBot(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="cmkKeyVaultKeyUrl") + def cmk_key_vault_key_url(self) -> pulumi.Output[Optional[str]]: + """ + The CMK Key Vault Key URL that will be used to encrypt the Bot with the Customer Managed Encryption Key. + + > **Note:** In order to utilize CMEK, you must add the `Key Vault Crypto Service Encryption User` role to the Azure-defined `Bot Service CMEK Prod` Service Principal. You must also enable `soft_delete_enabled` and `purge_protection_enabled` on the `keyvault.KeyVault` that `cmk_key_vault_key_url` refers to. [See Azure Documentation](https://learn.microsoft.com/en-us/azure/bot-service/bot-service-encryption?view=azure-bot-service-4.0#how-to-configure-your-azure-key-vault-instance) + """ + return pulumi.get(self, "cmk_key_vault_key_url") + @property @pulumi.getter(name="developerAppInsightsApiKey") def developer_app_insights_api_key(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_azure/chaosstudio/target.py b/sdk/python/pulumi_azure/chaosstudio/target.py index 59c09099d0..412915b864 100644 --- a/sdk/python/pulumi_azure/chaosstudio/target.py +++ b/sdk/python/pulumi_azure/chaosstudio/target.py @@ -135,36 +135,6 @@ def __init__(__self__, Manages a Chaos Studio Target. - ## Example Usage - - - ```python - import pulumi - import pulumi_azure as azure - - example_resource_group = azure.core.ResourceGroup("example", - name="example-resources", - location="West Europe") - example = azure.containerservice.KubernetesCluster("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - dns_prefix="acctestaksexample", - default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs( - name="example-value", - node_count="example-value", - vm_size="example-value", - ), - identity=azure.containerservice.KubernetesClusterIdentityArgs( - type="example-value", - )) - example_target = azure.chaosstudio.Target("example", - location=example_resource_group.location, - target_resource_id=example.id, - target_type="example-value") - ``` - - ## Import An existing Chaos Studio Target can be imported into Terraform using the `resource id`, e.g. @@ -194,36 +164,6 @@ def __init__(__self__, Manages a Chaos Studio Target. - ## Example Usage - - - ```python - import pulumi - import pulumi_azure as azure - - example_resource_group = azure.core.ResourceGroup("example", - name="example-resources", - location="West Europe") - example = azure.containerservice.KubernetesCluster("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - dns_prefix="acctestaksexample", - default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs( - name="example-value", - node_count="example-value", - vm_size="example-value", - ), - identity=azure.containerservice.KubernetesClusterIdentityArgs( - type="example-value", - )) - example_target = azure.chaosstudio.Target("example", - location=example_resource_group.location, - target_resource_id=example.id, - target_type="example-value") - ``` - - ## Import An existing Chaos Studio Target can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/python/pulumi_azure/compute/_inputs.py b/sdk/python/pulumi_azure/compute/_inputs.py index f55bbbebf5..7bbc71e640 100644 --- a/sdk/python/pulumi_azure/compute/_inputs.py +++ b/sdk/python/pulumi_azure/compute/_inputs.py @@ -248,7 +248,7 @@ def __init__(__self__, *, capacity: pulumi.Input[int], name: pulumi.Input[str]): """ - :param pulumi.Input[int] capacity: Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + :param pulumi.Input[int] capacity: Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. :param pulumi.Input[str] name: Name of the sku, such as `Standard_F2`. Changing this forces a new resource to be created. """ pulumi.set(__self__, "capacity", capacity) @@ -258,7 +258,7 @@ def __init__(__self__, *, @pulumi.getter def capacity(self) -> pulumi.Input[int]: """ - Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. """ return pulumi.get(self, "capacity") diff --git a/sdk/python/pulumi_azure/compute/get_shared_image_version.py b/sdk/python/pulumi_azure/compute/get_shared_image_version.py index 27b91b2405..53599803cb 100644 --- a/sdk/python/pulumi_azure/compute/get_shared_image_version.py +++ b/sdk/python/pulumi_azure/compute/get_shared_image_version.py @@ -141,7 +141,7 @@ def sort_versions_by_semver(self) -> Optional[bool]: @property @pulumi.getter - def tags(self) -> Mapping[str, str]: + def tags(self) -> Optional[Mapping[str, str]]: """ A mapping of tags assigned to the Shared Image. """ @@ -182,6 +182,7 @@ def get_shared_image_version(gallery_name: Optional[str] = None, name: Optional[str] = None, resource_group_name: Optional[str] = None, sort_versions_by_semver: Optional[bool] = None, + tags: Optional[Mapping[str, str]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSharedImageVersionResult: """ Use this data source to access information about an existing Version of a Shared Image within a Shared Image Gallery. @@ -210,6 +211,7 @@ def get_shared_image_version(gallery_name: Optional[str] = None, > **Note:** In 3.0, `latest` may return an image version with `exclude_from_latest` set to `true`. Starting from 4.0 onwards `latest` will not return image versions with `exlude_from_latest` set to `true`. :param str resource_group_name: The name of the Resource Group in which the Shared Image Gallery exists. :param bool sort_versions_by_semver: Sort available versions taking SemVer versioning scheme into account. Defaults to `false`. + :param Mapping[str, str] tags: A mapping of tags assigned to the Shared Image. """ __args__ = dict() __args__['galleryName'] = gallery_name @@ -217,6 +219,7 @@ def get_shared_image_version(gallery_name: Optional[str] = None, __args__['name'] = name __args__['resourceGroupName'] = resource_group_name __args__['sortVersionsBySemver'] = sort_versions_by_semver + __args__['tags'] = tags opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) __ret__ = pulumi.runtime.invoke('azure:compute/getSharedImageVersion:getSharedImageVersion', __args__, opts=opts, typ=GetSharedImageVersionResult).value @@ -242,6 +245,7 @@ def get_shared_image_version_output(gallery_name: Optional[pulumi.Input[str]] = name: Optional[pulumi.Input[str]] = None, resource_group_name: Optional[pulumi.Input[str]] = None, sort_versions_by_semver: Optional[pulumi.Input[Optional[bool]]] = None, + tags: Optional[pulumi.Input[Optional[Mapping[str, str]]]] = None, opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSharedImageVersionResult]: """ Use this data source to access information about an existing Version of a Shared Image within a Shared Image Gallery. @@ -270,5 +274,6 @@ def get_shared_image_version_output(gallery_name: Optional[pulumi.Input[str]] = > **Note:** In 3.0, `latest` may return an image version with `exclude_from_latest` set to `true`. Starting from 4.0 onwards `latest` will not return image versions with `exlude_from_latest` set to `true`. :param str resource_group_name: The name of the Resource Group in which the Shared Image Gallery exists. :param bool sort_versions_by_semver: Sort available versions taking SemVer versioning scheme into account. Defaults to `false`. + :param Mapping[str, str] tags: A mapping of tags assigned to the Shared Image. """ ... diff --git a/sdk/python/pulumi_azure/compute/outputs.py b/sdk/python/pulumi_azure/compute/outputs.py index 92c686c087..33fc699138 100644 --- a/sdk/python/pulumi_azure/compute/outputs.py +++ b/sdk/python/pulumi_azure/compute/outputs.py @@ -288,7 +288,7 @@ def __init__(__self__, *, capacity: int, name: str): """ - :param int capacity: Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + :param int capacity: Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. :param str name: Name of the sku, such as `Standard_F2`. Changing this forces a new resource to be created. """ pulumi.set(__self__, "capacity", capacity) @@ -298,7 +298,7 @@ def __init__(__self__, *, @pulumi.getter def capacity(self) -> int: """ - Specifies the number of instances to be reserved. It must be a positive `integer` and not exceed the quota in the subscription. + Specifies the number of instances to be reserved. It must be greater than or equal to `0` and not exceed the quota in the subscription. """ return pulumi.get(self, "capacity") diff --git a/sdk/python/pulumi_azure/config/outputs.py b/sdk/python/pulumi_azure/config/outputs.py index a7f10ce434..34a5af9ad8 100644 --- a/sdk/python/pulumi_azure/config/outputs.py +++ b/sdk/python/pulumi_azure/config/outputs.py @@ -20,6 +20,7 @@ 'FeaturesLogAnalyticsWorkspace', 'FeaturesManagedDisk', 'FeaturesPostgresqlFlexibleServer', + 'FeaturesRecoveryService', 'FeaturesResourceGroup', 'FeaturesSubscription', 'FeaturesTemplateDeployment', @@ -38,6 +39,7 @@ def __init__(__self__, *, log_analytics_workspace: Optional['outputs.FeaturesLogAnalyticsWorkspace'] = None, managed_disk: Optional['outputs.FeaturesManagedDisk'] = None, postgresql_flexible_server: Optional['outputs.FeaturesPostgresqlFlexibleServer'] = None, + recovery_service: Optional['outputs.FeaturesRecoveryService'] = None, resource_group: Optional['outputs.FeaturesResourceGroup'] = None, subscription: Optional['outputs.FeaturesSubscription'] = None, template_deployment: Optional['outputs.FeaturesTemplateDeployment'] = None, @@ -59,6 +61,8 @@ def __init__(__self__, *, pulumi.set(__self__, "managed_disk", managed_disk) if postgresql_flexible_server is not None: pulumi.set(__self__, "postgresql_flexible_server", postgresql_flexible_server) + if recovery_service is not None: + pulumi.set(__self__, "recovery_service", recovery_service) if resource_group is not None: pulumi.set(__self__, "resource_group", resource_group) if subscription is not None: @@ -110,6 +114,11 @@ def managed_disk(self) -> Optional['outputs.FeaturesManagedDisk']: def postgresql_flexible_server(self) -> Optional['outputs.FeaturesPostgresqlFlexibleServer']: return pulumi.get(self, "postgresql_flexible_server") + @property + @pulumi.getter(name="recoveryService") + def recovery_service(self) -> Optional['outputs.FeaturesRecoveryService']: + return pulumi.get(self, "recovery_service") + @property @pulumi.getter(name="resourceGroup") def resource_group(self) -> Optional['outputs.FeaturesResourceGroup']: @@ -358,6 +367,27 @@ def restart_server_on_configuration_value_change(self) -> Optional[bool]: return pulumi.get(self, "restart_server_on_configuration_value_change") +@pulumi.output_type +class FeaturesRecoveryService(dict): + def __init__(__self__, *, + purge_protected_items_from_vault_on_destroy: Optional[bool] = None, + vm_backup_stop_protection_and_retain_data_on_destroy: Optional[bool] = None): + if purge_protected_items_from_vault_on_destroy is not None: + pulumi.set(__self__, "purge_protected_items_from_vault_on_destroy", purge_protected_items_from_vault_on_destroy) + if vm_backup_stop_protection_and_retain_data_on_destroy is not None: + pulumi.set(__self__, "vm_backup_stop_protection_and_retain_data_on_destroy", vm_backup_stop_protection_and_retain_data_on_destroy) + + @property + @pulumi.getter(name="purgeProtectedItemsFromVaultOnDestroy") + def purge_protected_items_from_vault_on_destroy(self) -> Optional[bool]: + return pulumi.get(self, "purge_protected_items_from_vault_on_destroy") + + @property + @pulumi.getter(name="vmBackupStopProtectionAndRetainDataOnDestroy") + def vm_backup_stop_protection_and_retain_data_on_destroy(self) -> Optional[bool]: + return pulumi.get(self, "vm_backup_stop_protection_and_retain_data_on_destroy") + + @pulumi.output_type class FeaturesResourceGroup(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_azure/containerapp/_inputs.py b/sdk/python/pulumi_azure/containerapp/_inputs.py index 1d83855ed5..4e1b90e5bd 100644 --- a/sdk/python/pulumi_azure/containerapp/_inputs.py +++ b/sdk/python/pulumi_azure/containerapp/_inputs.py @@ -605,21 +605,36 @@ def username(self, value: Optional[pulumi.Input[str]]): class AppSecretArgs: def __init__(__self__, *, name: pulumi.Input[str], - value: pulumi.Input[str]): + identity: Optional[pulumi.Input[str]] = None, + key_vault_secret_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] name: The Secret name. + :param pulumi.Input[str] name: The secret name. + :param pulumi.Input[str] identity: The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + + !> **Note:** `identity` must be used together with `key_vault_secret_id` + :param pulumi.Input[str] key_vault_secret_id: The ID of a Key Vault secret. This can be a versioned or version-less ID. + + !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. :param pulumi.Input[str] value: The value for this secret. + !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. """ pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + if identity is not None: + pulumi.set(__self__, "identity", identity) + if key_vault_secret_id is not None: + pulumi.set(__self__, "key_vault_secret_id", key_vault_secret_id) + if value is not None: + pulumi.set(__self__, "value", value) @property @pulumi.getter def name(self) -> pulumi.Input[str]: """ - The Secret name. + The secret name. """ return pulumi.get(self, "name") @@ -629,16 +644,46 @@ def name(self, value: pulumi.Input[str]): @property @pulumi.getter - def value(self) -> pulumi.Input[str]: + def identity(self) -> Optional[pulumi.Input[str]]: + """ + The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + + !> **Note:** `identity` must be used together with `key_vault_secret_id` + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "identity", value) + + @property + @pulumi.getter(name="keyVaultSecretId") + def key_vault_secret_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of a Key Vault secret. This can be a versioned or version-less ID. + + !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + """ + return pulumi.get(self, "key_vault_secret_id") + + @key_vault_secret_id.setter + def key_vault_secret_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key_vault_secret_id", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: """ The value for this secret. + !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. """ return pulumi.get(self, "value") @value.setter - def value(self, value: pulumi.Input[str]): + def value(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "value", value) @@ -2443,13 +2488,22 @@ def value(self, value: Optional[pulumi.Input[str]]): class EnvironmentDaprComponentSecretArgs: def __init__(__self__, *, name: pulumi.Input[str], - value: pulumi.Input[str]): + identity: Optional[pulumi.Input[str]] = None, + key_vault_secret_id: Optional[pulumi.Input[str]] = None, + value: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] name: The Secret name. + :param pulumi.Input[str] identity: The identity to use for accessing key vault reference. + :param pulumi.Input[str] key_vault_secret_id: The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. :param pulumi.Input[str] value: The value for this secret. """ pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + if identity is not None: + pulumi.set(__self__, "identity", identity) + if key_vault_secret_id is not None: + pulumi.set(__self__, "key_vault_secret_id", key_vault_secret_id) + if value is not None: + pulumi.set(__self__, "value", value) @property @pulumi.getter @@ -2465,14 +2519,38 @@ def name(self, value: pulumi.Input[str]): @property @pulumi.getter - def value(self) -> pulumi.Input[str]: + def identity(self) -> Optional[pulumi.Input[str]]: + """ + The identity to use for accessing key vault reference. + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "identity", value) + + @property + @pulumi.getter(name="keyVaultSecretId") + def key_vault_secret_id(self) -> Optional[pulumi.Input[str]]: + """ + The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + """ + return pulumi.get(self, "key_vault_secret_id") + + @key_vault_secret_id.setter + def key_vault_secret_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key_vault_secret_id", value) + + @property + @pulumi.getter + def value(self) -> Optional[pulumi.Input[str]]: """ The value for this secret. """ return pulumi.get(self, "value") @value.setter - def value(self, value: pulumi.Input[str]): + def value(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "value", value) diff --git a/sdk/python/pulumi_azure/containerapp/outputs.py b/sdk/python/pulumi_azure/containerapp/outputs.py index 8ddcd1563e..0bff479154 100644 --- a/sdk/python/pulumi_azure/containerapp/outputs.py +++ b/sdk/python/pulumi_azure/containerapp/outputs.py @@ -650,32 +650,86 @@ def username(self) -> Optional[str]: @pulumi.output_type class AppSecret(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "keyVaultSecretId": + suggest = "key_vault_secret_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in AppSecret. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + AppSecret.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + AppSecret.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, name: str, - value: str): + identity: Optional[str] = None, + key_vault_secret_id: Optional[str] = None, + value: Optional[str] = None): """ - :param str name: The Secret name. + :param str name: The secret name. + :param str identity: The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + + !> **Note:** `identity` must be used together with `key_vault_secret_id` + :param str key_vault_secret_id: The ID of a Key Vault secret. This can be a versioned or version-less ID. + + !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. :param str value: The value for this secret. + !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. """ pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + if identity is not None: + pulumi.set(__self__, "identity", identity) + if key_vault_secret_id is not None: + pulumi.set(__self__, "key_vault_secret_id", key_vault_secret_id) + if value is not None: + pulumi.set(__self__, "value", value) @property @pulumi.getter def name(self) -> str: """ - The Secret name. + The secret name. """ return pulumi.get(self, "name") @property @pulumi.getter - def value(self) -> str: + def identity(self) -> Optional[str]: + """ + The identity to use for accessing the Key Vault secret reference. This can either be the Resource ID of a User Assigned Identity, or `System` for the System Assigned Identity. + + !> **Note:** `identity` must be used together with `key_vault_secret_id` + """ + return pulumi.get(self, "identity") + + @property + @pulumi.getter(name="keyVaultSecretId") + def key_vault_secret_id(self) -> Optional[str]: + """ + The ID of a Key Vault secret. This can be a versioned or version-less ID. + + !> **Note:** When using `key_vault_secret_id`, `ignore_changes` should be used to ignore any changes to `value`. + """ + return pulumi.get(self, "key_vault_secret_id") + + @property + @pulumi.getter + def value(self) -> Optional[str]: """ The value for this secret. + !> **Note:** `value` will be ignored if `key_vault_secret_id` and `identity` are provided. + !> **Note:** Secrets cannot be removed from the service once added, attempting to do so will result in an error. Their values may be zeroed, i.e. set to `""`, but the named secret must persist. This is due to a technical limitation on the service which causes the service to become unmanageable. See [this issue](https://github.com/microsoft/azure-container-apps/issues/395) for more details. """ return pulumi.get(self, "value") @@ -2424,15 +2478,41 @@ def value(self) -> Optional[str]: @pulumi.output_type class EnvironmentDaprComponentSecret(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "keyVaultSecretId": + suggest = "key_vault_secret_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in EnvironmentDaprComponentSecret. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + EnvironmentDaprComponentSecret.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + EnvironmentDaprComponentSecret.__key_warning(key) + return super().get(key, default) + def __init__(__self__, *, name: str, - value: str): + identity: Optional[str] = None, + key_vault_secret_id: Optional[str] = None, + value: Optional[str] = None): """ :param str name: The Secret name. + :param str identity: The identity to use for accessing key vault reference. + :param str key_vault_secret_id: The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. :param str value: The value for this secret. """ pulumi.set(__self__, "name", name) - pulumi.set(__self__, "value", value) + if identity is not None: + pulumi.set(__self__, "identity", identity) + if key_vault_secret_id is not None: + pulumi.set(__self__, "key_vault_secret_id", key_vault_secret_id) + if value is not None: + pulumi.set(__self__, "value", value) @property @pulumi.getter @@ -2444,7 +2524,23 @@ def name(self) -> str: @property @pulumi.getter - def value(self) -> str: + def identity(self) -> Optional[str]: + """ + The identity to use for accessing key vault reference. + """ + return pulumi.get(self, "identity") + + @property + @pulumi.getter(name="keyVaultSecretId") + def key_vault_secret_id(self) -> Optional[str]: + """ + The Key Vault Secret ID. Could be either one of `id` or `versionless_id`. + """ + return pulumi.get(self, "key_vault_secret_id") + + @property + @pulumi.getter + def value(self) -> Optional[str]: """ The value for this secret. """ @@ -2918,15 +3014,37 @@ def username(self) -> str: @pulumi.output_type class GetAppSecretResult(dict): def __init__(__self__, *, + identity: str, + key_vault_secret_id: str, name: str, value: str): """ + :param str identity: Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + :param str key_vault_secret_id: The ID of a Key Vault secret. :param str name: The name of the Container App. :param str value: The HTTP Header value. """ + pulumi.set(__self__, "identity", identity) + pulumi.set(__self__, "key_vault_secret_id", key_vault_secret_id) pulumi.set(__self__, "name", name) pulumi.set(__self__, "value", value) + @property + @pulumi.getter + def identity(self) -> str: + """ + Resource ID for the User Assigned Managed identity to use when pulling from the Container Registry. + """ + return pulumi.get(self, "identity") + + @property + @pulumi.getter(name="keyVaultSecretId") + def key_vault_secret_id(self) -> str: + """ + The ID of a Key Vault secret. + """ + return pulumi.get(self, "key_vault_secret_id") + @property @pulumi.getter def name(self) -> str: diff --git a/sdk/python/pulumi_azure/containerservice/cluster_trusted_access_role_binding.py b/sdk/python/pulumi_azure/containerservice/cluster_trusted_access_role_binding.py index b08829b876..f5678f3cd9 100644 --- a/sdk/python/pulumi_azure/containerservice/cluster_trusted_access_role_binding.py +++ b/sdk/python/pulumi_azure/containerservice/cluster_trusted_access_role_binding.py @@ -169,71 +169,6 @@ def __init__(__self__, > **Note:** This Resource is in **Preview** to use this you must be opted into the Preview. You can do this by running `az feature register --namespace Microsoft.ContainerService --name TrustedAccessPreview` and then `az provider register -n Microsoft.ContainerService` . - ## Example Usage - - - ```python - import pulumi - import pulumi_azure as azure - - example_resource_group = azure.core.ResourceGroup("example", - name="example-resources", - location="West Europe") - example = azure.appinsights.Insights("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - application_type="example-value") - test = azure.core.get_client_config() - example_key_vault = azure.keyvault.KeyVault("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - tenant_id=example_azurerm_client_config["tenantId"], - sku_name="example-value", - soft_delete_retention_days="example-value") - example_access_policy = azure.keyvault.AccessPolicy("example", - key_vault_id=example_key_vault.id, - tenant_id=example_azurerm_client_config["tenantId"], - object_id=example_azurerm_client_config["objectId"], - key_permissions="example-value") - example_kubernetes_cluster = azure.containerservice.KubernetesCluster("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - dns_prefix="acctestaksexample", - default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs( - name="example-value", - node_count="example-value", - vm_size="example-value", - ), - identity=azure.containerservice.KubernetesClusterIdentityArgs( - type="example-value", - )) - example_account = azure.storage.Account("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - account_tier="example-value", - account_replication_type="example-value") - example_workspace = azure.machinelearning.Workspace("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - key_vault_id=example_key_vault.id, - storage_account_id=example_account.id, - application_insights_id=example.id, - identity=azure.machinelearning.WorkspaceIdentityArgs( - type="example-value", - )) - example_cluster_trusted_access_role_binding = azure.containerservice.ClusterTrustedAccessRoleBinding("example", - kubernetes_cluster_id=example_kubernetes_cluster.id, - name="example", - roles="example-value", - source_resource_id=example_workspace.id) - ``` - - ## Import An existing Kubernetes Cluster Trusted Access Role Binding can be imported into Terraform using the `resource id`, e.g. @@ -270,71 +205,6 @@ def __init__(__self__, > **Note:** This Resource is in **Preview** to use this you must be opted into the Preview. You can do this by running `az feature register --namespace Microsoft.ContainerService --name TrustedAccessPreview` and then `az provider register -n Microsoft.ContainerService` . - ## Example Usage - - - ```python - import pulumi - import pulumi_azure as azure - - example_resource_group = azure.core.ResourceGroup("example", - name="example-resources", - location="West Europe") - example = azure.appinsights.Insights("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - application_type="example-value") - test = azure.core.get_client_config() - example_key_vault = azure.keyvault.KeyVault("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - tenant_id=example_azurerm_client_config["tenantId"], - sku_name="example-value", - soft_delete_retention_days="example-value") - example_access_policy = azure.keyvault.AccessPolicy("example", - key_vault_id=example_key_vault.id, - tenant_id=example_azurerm_client_config["tenantId"], - object_id=example_azurerm_client_config["objectId"], - key_permissions="example-value") - example_kubernetes_cluster = azure.containerservice.KubernetesCluster("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - dns_prefix="acctestaksexample", - default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs( - name="example-value", - node_count="example-value", - vm_size="example-value", - ), - identity=azure.containerservice.KubernetesClusterIdentityArgs( - type="example-value", - )) - example_account = azure.storage.Account("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - account_tier="example-value", - account_replication_type="example-value") - example_workspace = azure.machinelearning.Workspace("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - key_vault_id=example_key_vault.id, - storage_account_id=example_account.id, - application_insights_id=example.id, - identity=azure.machinelearning.WorkspaceIdentityArgs( - type="example-value", - )) - example_cluster_trusted_access_role_binding = azure.containerservice.ClusterTrustedAccessRoleBinding("example", - kubernetes_cluster_id=example_kubernetes_cluster.id, - name="example", - roles="example-value", - source_resource_id=example_workspace.id) - ``` - - ## Import An existing Kubernetes Cluster Trusted Access Role Binding can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/python/pulumi_azure/containerservice/fleet_member.py b/sdk/python/pulumi_azure/containerservice/fleet_member.py index e97faeb1f1..2388dec588 100644 --- a/sdk/python/pulumi_azure/containerservice/fleet_member.py +++ b/sdk/python/pulumi_azure/containerservice/fleet_member.py @@ -168,40 +168,6 @@ def __init__(__self__, Manages a Kubernetes Fleet Member. - ## Example Usage - - - ```python - import pulumi - import pulumi_azure as azure - - example_resource_group = azure.core.ResourceGroup("example", - name="example-resources", - location="West Europe") - example = azure.containerservice.KubernetesCluster("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - dns_prefix="acctestaksexample", - default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs( - name="example-value", - node_count="example-value", - vm_size="example-value", - ), - identity=azure.containerservice.KubernetesClusterIdentityArgs( - type="example-value", - )) - example_kubernetes_fleet_manager = azure.containerservice.KubernetesFleetManager("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name) - example_fleet_member = azure.containerservice.FleetMember("example", - kubernetes_cluster_id=example.id, - kubernetes_fleet_id=example_kubernetes_fleet_manager.id, - name="example") - ``` - - ## Import An existing Kubernetes Fleet Member can be imported into Terraform using the `resource id`, e.g. @@ -236,40 +202,6 @@ def __init__(__self__, Manages a Kubernetes Fleet Member. - ## Example Usage - - - ```python - import pulumi - import pulumi_azure as azure - - example_resource_group = azure.core.ResourceGroup("example", - name="example-resources", - location="West Europe") - example = azure.containerservice.KubernetesCluster("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name, - dns_prefix="acctestaksexample", - default_node_pool=azure.containerservice.KubernetesClusterDefaultNodePoolArgs( - name="example-value", - node_count="example-value", - vm_size="example-value", - ), - identity=azure.containerservice.KubernetesClusterIdentityArgs( - type="example-value", - )) - example_kubernetes_fleet_manager = azure.containerservice.KubernetesFleetManager("example", - name="example", - location=example_resource_group.location, - resource_group_name=example_resource_group.name) - example_fleet_member = azure.containerservice.FleetMember("example", - kubernetes_cluster_id=example.id, - kubernetes_fleet_id=example_kubernetes_fleet_manager.id, - name="example") - ``` - - ## Import An existing Kubernetes Fleet Member can be imported into Terraform using the `resource id`, e.g. diff --git a/sdk/python/pulumi_azure/databricks/_inputs.py b/sdk/python/pulumi_azure/databricks/_inputs.py index 74a17f2796..ec4959e34a 100644 --- a/sdk/python/pulumi_azure/databricks/_inputs.py +++ b/sdk/python/pulumi_azure/databricks/_inputs.py @@ -110,7 +110,7 @@ def __init__(__self__, *, :param pulumi.Input[str] nat_gateway_name: Name of the NAT gateway for Secure Cluster Connectivity (No Public IP) workspace subnets. Defaults to `nat-gateway`. Changing this forces a new resource to be created. :param pulumi.Input[bool] no_public_ip: Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. - > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. :param pulumi.Input[str] private_subnet_name: The name of the Private Subnet within the Virtual Network. Required if `virtual_network_id` is set. Changing this forces a new resource to be created. :param pulumi.Input[str] private_subnet_network_security_group_association_id: The resource ID of the `network.SubnetNetworkSecurityGroupAssociation` resource which is referred to by the `private_subnet_name` field. This is the same as the ID of the subnet referred to by the `private_subnet_name` field. Required if `virtual_network_id` is set. :param pulumi.Input[str] public_ip_name: Name of the Public IP for No Public IP workspace with managed vNet. Defaults to `nat-gw-public-ip`. Changing this forces a new resource to be created. @@ -121,7 +121,7 @@ def __init__(__self__, *, :param pulumi.Input[str] virtual_network_id: The ID of a Virtual Network where this Databricks Cluster should be created. Changing this forces a new resource to be created. :param pulumi.Input[str] vnet_address_prefix: Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. - > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). """ if machine_learning_workspace_id is not None: pulumi.set(__self__, "machine_learning_workspace_id", machine_learning_workspace_id) @@ -178,7 +178,7 @@ def no_public_ip(self) -> Optional[pulumi.Input[bool]]: """ Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. - > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. """ return pulumi.get(self, "no_public_ip") @@ -288,7 +288,7 @@ def vnet_address_prefix(self) -> Optional[pulumi.Input[str]]: """ Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. - > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). """ return pulumi.get(self, "vnet_address_prefix") diff --git a/sdk/python/pulumi_azure/databricks/outputs.py b/sdk/python/pulumi_azure/databricks/outputs.py index 1dea5cad3e..eb6d6f6471 100644 --- a/sdk/python/pulumi_azure/databricks/outputs.py +++ b/sdk/python/pulumi_azure/databricks/outputs.py @@ -158,7 +158,7 @@ def __init__(__self__, *, :param str nat_gateway_name: Name of the NAT gateway for Secure Cluster Connectivity (No Public IP) workspace subnets. Defaults to `nat-gateway`. Changing this forces a new resource to be created. :param bool no_public_ip: Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. - > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. :param str private_subnet_name: The name of the Private Subnet within the Virtual Network. Required if `virtual_network_id` is set. Changing this forces a new resource to be created. :param str private_subnet_network_security_group_association_id: The resource ID of the `network.SubnetNetworkSecurityGroupAssociation` resource which is referred to by the `private_subnet_name` field. This is the same as the ID of the subnet referred to by the `private_subnet_name` field. Required if `virtual_network_id` is set. :param str public_ip_name: Name of the Public IP for No Public IP workspace with managed vNet. Defaults to `nat-gw-public-ip`. Changing this forces a new resource to be created. @@ -169,7 +169,7 @@ def __init__(__self__, *, :param str virtual_network_id: The ID of a Virtual Network where this Databricks Cluster should be created. Changing this forces a new resource to be created. :param str vnet_address_prefix: Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. - > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). """ if machine_learning_workspace_id is not None: pulumi.set(__self__, "machine_learning_workspace_id", machine_learning_workspace_id) @@ -218,7 +218,7 @@ def no_public_ip(self) -> Optional[bool]: """ Are public IP Addresses not allowed? Possible values are `true` or `false`. Defaults to `false`. - > **NOTE** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. + > **Note:** Updating `no_public_ip` parameter is only allowed if the value is changing from `false` to `true` and and only for VNet-injected workspaces. """ return pulumi.get(self, "no_public_ip") @@ -292,7 +292,7 @@ def vnet_address_prefix(self) -> Optional[str]: """ Address prefix for Managed virtual network. Defaults to `10.139`. Changing this forces a new resource to be created. - > **NOTE** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). + > **Note:** Databricks requires that a network security group is associated with the `public` and `private` subnets when a `virtual_network_id` has been defined. Both `public` and `private` subnets must be delegated to `Microsoft.Databricks/workspaces`. For more information about subnet delegation see the [product documentation](https://docs.microsoft.com/azure/virtual-network/subnet-delegation-overview). """ return pulumi.get(self, "vnet_address_prefix") diff --git a/sdk/python/pulumi_azure/databricks/workspace.py b/sdk/python/pulumi_azure/databricks/workspace.py index 26037cb5e3..3f80e110da 100644 --- a/sdk/python/pulumi_azure/databricks/workspace.py +++ b/sdk/python/pulumi_azure/databricks/workspace.py @@ -23,9 +23,11 @@ def __init__(__self__, *, infrastructure_encryption_enabled: Optional[pulumi.Input[bool]] = None, load_balancer_backend_address_pool_id: Optional[pulumi.Input[str]] = None, location: Optional[pulumi.Input[str]] = None, + managed_disk_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_rotation_to_latest_version_enabled: Optional[pulumi.Input[bool]] = None, managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_services_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_services_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network_security_group_rules_required: Optional[pulumi.Input[str]] = None, @@ -36,7 +38,7 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_group_name: The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] sku: The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. - > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. :param pulumi.Input['WorkspaceCustomParametersArgs'] custom_parameters: A `custom_parameters` block as documented below. :param pulumi.Input[bool] customer_managed_key_enabled: Is the workspace enabled for customer managed key encryption? If `true` this enables the Managed Identity for the managed storage account. Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. :param pulumi.Input[bool] infrastructure_encryption_enabled: Is the Databricks File System root file system enabled with a secondary layer of encryption with platform managed keys? Possible values are `true` or `false`. Defaults to `false`. This field is only valid if the Databricks Workspace `sku` is set to `premium`. Changing this forces a new resource to be created. @@ -46,7 +48,7 @@ def __init__(__self__, *, :param pulumi.Input[bool] managed_disk_cmk_rotation_to_latest_version_enabled: Whether customer managed keys for disk encryption will automatically be rotated to the latest version. :param pulumi.Input[str] managed_resource_group_name: The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. - > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. :param pulumi.Input[str] managed_services_cmk_key_vault_key_id: Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). :param pulumi.Input[str] name: Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. :param pulumi.Input[str] network_security_group_rules_required: Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`. @@ -65,12 +67,16 @@ def __init__(__self__, *, pulumi.set(__self__, "load_balancer_backend_address_pool_id", load_balancer_backend_address_pool_id) if location is not None: pulumi.set(__self__, "location", location) + if managed_disk_cmk_key_vault_id is not None: + pulumi.set(__self__, "managed_disk_cmk_key_vault_id", managed_disk_cmk_key_vault_id) if managed_disk_cmk_key_vault_key_id is not None: pulumi.set(__self__, "managed_disk_cmk_key_vault_key_id", managed_disk_cmk_key_vault_key_id) if managed_disk_cmk_rotation_to_latest_version_enabled is not None: pulumi.set(__self__, "managed_disk_cmk_rotation_to_latest_version_enabled", managed_disk_cmk_rotation_to_latest_version_enabled) if managed_resource_group_name is not None: pulumi.set(__self__, "managed_resource_group_name", managed_resource_group_name) + if managed_services_cmk_key_vault_id is not None: + pulumi.set(__self__, "managed_services_cmk_key_vault_id", managed_services_cmk_key_vault_id) if managed_services_cmk_key_vault_key_id is not None: pulumi.set(__self__, "managed_services_cmk_key_vault_key_id", managed_services_cmk_key_vault_key_id) if name is not None: @@ -100,7 +106,7 @@ def sku(self) -> pulumi.Input[str]: """ The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. - > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. """ return pulumi.get(self, "sku") @@ -168,6 +174,15 @@ def location(self) -> Optional[pulumi.Input[str]]: def location(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "location", value) + @property + @pulumi.getter(name="managedDiskCmkKeyVaultId") + def managed_disk_cmk_key_vault_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "managed_disk_cmk_key_vault_id") + + @managed_disk_cmk_key_vault_id.setter + def managed_disk_cmk_key_vault_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_disk_cmk_key_vault_id", value) + @property @pulumi.getter(name="managedDiskCmkKeyVaultKeyId") def managed_disk_cmk_key_vault_key_id(self) -> Optional[pulumi.Input[str]]: @@ -198,7 +213,7 @@ def managed_resource_group_name(self) -> Optional[pulumi.Input[str]]: """ The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. - > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. """ return pulumi.get(self, "managed_resource_group_name") @@ -206,6 +221,15 @@ def managed_resource_group_name(self) -> Optional[pulumi.Input[str]]: def managed_resource_group_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "managed_resource_group_name", value) + @property + @pulumi.getter(name="managedServicesCmkKeyVaultId") + def managed_services_cmk_key_vault_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "managed_services_cmk_key_vault_id") + + @managed_services_cmk_key_vault_id.setter + def managed_services_cmk_key_vault_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_services_cmk_key_vault_id", value) + @property @pulumi.getter(name="managedServicesCmkKeyVaultKeyId") def managed_services_cmk_key_vault_key_id(self) -> Optional[pulumi.Input[str]]: @@ -276,11 +300,13 @@ def __init__(__self__, *, infrastructure_encryption_enabled: Optional[pulumi.Input[bool]] = None, load_balancer_backend_address_pool_id: Optional[pulumi.Input[str]] = None, location: Optional[pulumi.Input[str]] = None, + managed_disk_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_rotation_to_latest_version_enabled: Optional[pulumi.Input[bool]] = None, managed_disk_identities: Optional[pulumi.Input[Sequence[pulumi.Input['WorkspaceManagedDiskIdentityArgs']]]] = None, managed_resource_group_id: Optional[pulumi.Input[str]] = None, managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_services_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_services_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network_security_group_rules_required: Optional[pulumi.Input[str]] = None, @@ -305,7 +331,7 @@ def __init__(__self__, *, :param pulumi.Input[str] managed_resource_group_id: The ID of the Managed Resource Group created by the Databricks Workspace. :param pulumi.Input[str] managed_resource_group_name: The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. - > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. :param pulumi.Input[str] managed_services_cmk_key_vault_key_id: Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). :param pulumi.Input[str] name: Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. :param pulumi.Input[str] network_security_group_rules_required: Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`. @@ -313,7 +339,7 @@ def __init__(__self__, *, :param pulumi.Input[str] resource_group_name: The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] sku: The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. - > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. :param pulumi.Input[Sequence[pulumi.Input['WorkspaceStorageAccountIdentityArgs']]] storage_account_identities: A `storage_account_identity` block as documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. :param pulumi.Input[str] workspace_id: The unique identifier of the databricks workspace in Databricks control plane. @@ -331,6 +357,8 @@ def __init__(__self__, *, pulumi.set(__self__, "load_balancer_backend_address_pool_id", load_balancer_backend_address_pool_id) if location is not None: pulumi.set(__self__, "location", location) + if managed_disk_cmk_key_vault_id is not None: + pulumi.set(__self__, "managed_disk_cmk_key_vault_id", managed_disk_cmk_key_vault_id) if managed_disk_cmk_key_vault_key_id is not None: pulumi.set(__self__, "managed_disk_cmk_key_vault_key_id", managed_disk_cmk_key_vault_key_id) if managed_disk_cmk_rotation_to_latest_version_enabled is not None: @@ -341,6 +369,8 @@ def __init__(__self__, *, pulumi.set(__self__, "managed_resource_group_id", managed_resource_group_id) if managed_resource_group_name is not None: pulumi.set(__self__, "managed_resource_group_name", managed_resource_group_name) + if managed_services_cmk_key_vault_id is not None: + pulumi.set(__self__, "managed_services_cmk_key_vault_id", managed_services_cmk_key_vault_id) if managed_services_cmk_key_vault_key_id is not None: pulumi.set(__self__, "managed_services_cmk_key_vault_key_id", managed_services_cmk_key_vault_key_id) if name is not None: @@ -434,6 +464,15 @@ def location(self) -> Optional[pulumi.Input[str]]: def location(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "location", value) + @property + @pulumi.getter(name="managedDiskCmkKeyVaultId") + def managed_disk_cmk_key_vault_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "managed_disk_cmk_key_vault_id") + + @managed_disk_cmk_key_vault_id.setter + def managed_disk_cmk_key_vault_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_disk_cmk_key_vault_id", value) + @property @pulumi.getter(name="managedDiskCmkKeyVaultKeyId") def managed_disk_cmk_key_vault_key_id(self) -> Optional[pulumi.Input[str]]: @@ -488,7 +527,7 @@ def managed_resource_group_name(self) -> Optional[pulumi.Input[str]]: """ The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. - > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. """ return pulumi.get(self, "managed_resource_group_name") @@ -496,6 +535,15 @@ def managed_resource_group_name(self) -> Optional[pulumi.Input[str]]: def managed_resource_group_name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "managed_resource_group_name", value) + @property + @pulumi.getter(name="managedServicesCmkKeyVaultId") + def managed_services_cmk_key_vault_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "managed_services_cmk_key_vault_id") + + @managed_services_cmk_key_vault_id.setter + def managed_services_cmk_key_vault_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_services_cmk_key_vault_id", value) + @property @pulumi.getter(name="managedServicesCmkKeyVaultKeyId") def managed_services_cmk_key_vault_key_id(self) -> Optional[pulumi.Input[str]]: @@ -562,7 +610,7 @@ def sku(self) -> Optional[pulumi.Input[str]]: """ The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. - > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. """ return pulumi.get(self, "sku") @@ -629,9 +677,11 @@ def __init__(__self__, infrastructure_encryption_enabled: Optional[pulumi.Input[bool]] = None, load_balancer_backend_address_pool_id: Optional[pulumi.Input[str]] = None, location: Optional[pulumi.Input[str]] = None, + managed_disk_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_rotation_to_latest_version_enabled: Optional[pulumi.Input[bool]] = None, managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_services_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_services_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network_security_group_rules_required: Optional[pulumi.Input[str]] = None, @@ -660,7 +710,7 @@ def __init__(__self__, :param pulumi.Input[bool] managed_disk_cmk_rotation_to_latest_version_enabled: Whether customer managed keys for disk encryption will automatically be rotated to the latest version. :param pulumi.Input[str] managed_resource_group_name: The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. - > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. :param pulumi.Input[str] managed_services_cmk_key_vault_key_id: Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). :param pulumi.Input[str] name: Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. :param pulumi.Input[str] network_security_group_rules_required: Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`. @@ -668,7 +718,7 @@ def __init__(__self__, :param pulumi.Input[str] resource_group_name: The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] sku: The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. - > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. """ ... @@ -706,9 +756,11 @@ def _internal_init(__self__, infrastructure_encryption_enabled: Optional[pulumi.Input[bool]] = None, load_balancer_backend_address_pool_id: Optional[pulumi.Input[str]] = None, location: Optional[pulumi.Input[str]] = None, + managed_disk_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_rotation_to_latest_version_enabled: Optional[pulumi.Input[bool]] = None, managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_services_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_services_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network_security_group_rules_required: Optional[pulumi.Input[str]] = None, @@ -730,9 +782,11 @@ def _internal_init(__self__, __props__.__dict__["infrastructure_encryption_enabled"] = infrastructure_encryption_enabled __props__.__dict__["load_balancer_backend_address_pool_id"] = load_balancer_backend_address_pool_id __props__.__dict__["location"] = location + __props__.__dict__["managed_disk_cmk_key_vault_id"] = managed_disk_cmk_key_vault_id __props__.__dict__["managed_disk_cmk_key_vault_key_id"] = managed_disk_cmk_key_vault_key_id __props__.__dict__["managed_disk_cmk_rotation_to_latest_version_enabled"] = managed_disk_cmk_rotation_to_latest_version_enabled __props__.__dict__["managed_resource_group_name"] = managed_resource_group_name + __props__.__dict__["managed_services_cmk_key_vault_id"] = managed_services_cmk_key_vault_id __props__.__dict__["managed_services_cmk_key_vault_key_id"] = managed_services_cmk_key_vault_key_id __props__.__dict__["name"] = name __props__.__dict__["network_security_group_rules_required"] = network_security_group_rules_required @@ -766,11 +820,13 @@ def get(resource_name: str, infrastructure_encryption_enabled: Optional[pulumi.Input[bool]] = None, load_balancer_backend_address_pool_id: Optional[pulumi.Input[str]] = None, location: Optional[pulumi.Input[str]] = None, + managed_disk_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, managed_disk_cmk_rotation_to_latest_version_enabled: Optional[pulumi.Input[bool]] = None, managed_disk_identities: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkspaceManagedDiskIdentityArgs']]]]] = None, managed_resource_group_id: Optional[pulumi.Input[str]] = None, managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_services_cmk_key_vault_id: Optional[pulumi.Input[str]] = None, managed_services_cmk_key_vault_key_id: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, network_security_group_rules_required: Optional[pulumi.Input[str]] = None, @@ -800,7 +856,7 @@ def get(resource_name: str, :param pulumi.Input[str] managed_resource_group_id: The ID of the Managed Resource Group created by the Databricks Workspace. :param pulumi.Input[str] managed_resource_group_name: The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. - > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. :param pulumi.Input[str] managed_services_cmk_key_vault_key_id: Customer managed encryption properties for the Databricks Workspace managed resources(e.g. Notebooks and Artifacts). :param pulumi.Input[str] name: Specifies the name of the Databricks Workspace resource. Changing this forces a new resource to be created. :param pulumi.Input[str] network_security_group_rules_required: Does the data plane (clusters) to control plane communication happen over private link endpoint only or publicly? Possible values `AllRules`, `NoAzureDatabricksRules` or `NoAzureServiceRules`. Required when `public_network_access_enabled` is set to `false`. @@ -808,7 +864,7 @@ def get(resource_name: str, :param pulumi.Input[str] resource_group_name: The name of the Resource Group in which the Databricks Workspace should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] sku: The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. - > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkspaceStorageAccountIdentityArgs']]]] storage_account_identities: A `storage_account_identity` block as documented below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A mapping of tags to assign to the resource. :param pulumi.Input[str] workspace_id: The unique identifier of the databricks workspace in Databricks control plane. @@ -824,11 +880,13 @@ def get(resource_name: str, __props__.__dict__["infrastructure_encryption_enabled"] = infrastructure_encryption_enabled __props__.__dict__["load_balancer_backend_address_pool_id"] = load_balancer_backend_address_pool_id __props__.__dict__["location"] = location + __props__.__dict__["managed_disk_cmk_key_vault_id"] = managed_disk_cmk_key_vault_id __props__.__dict__["managed_disk_cmk_key_vault_key_id"] = managed_disk_cmk_key_vault_key_id __props__.__dict__["managed_disk_cmk_rotation_to_latest_version_enabled"] = managed_disk_cmk_rotation_to_latest_version_enabled __props__.__dict__["managed_disk_identities"] = managed_disk_identities __props__.__dict__["managed_resource_group_id"] = managed_resource_group_id __props__.__dict__["managed_resource_group_name"] = managed_resource_group_name + __props__.__dict__["managed_services_cmk_key_vault_id"] = managed_services_cmk_key_vault_id __props__.__dict__["managed_services_cmk_key_vault_key_id"] = managed_services_cmk_key_vault_key_id __props__.__dict__["name"] = name __props__.__dict__["network_security_group_rules_required"] = network_security_group_rules_required @@ -889,6 +947,11 @@ def location(self) -> pulumi.Output[str]: """ return pulumi.get(self, "location") + @property + @pulumi.getter(name="managedDiskCmkKeyVaultId") + def managed_disk_cmk_key_vault_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "managed_disk_cmk_key_vault_id") + @property @pulumi.getter(name="managedDiskCmkKeyVaultKeyId") def managed_disk_cmk_key_vault_key_id(self) -> pulumi.Output[Optional[str]]: @@ -927,10 +990,15 @@ def managed_resource_group_name(self) -> pulumi.Output[str]: """ The name of the resource group where Azure should place the managed Databricks resources. Changing this forces a new resource to be created. - > **NOTE** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. + > **Note:** Make sure that this field is unique if you have multiple Databrick Workspaces deployed in your subscription and choose to not have the `managed_resource_group_name` auto generated by the Azure Resource Provider. Having multiple Databrick Workspaces deployed in the same subscription with the same `manage_resource_group_name` may result in some resources that cannot be deleted. """ return pulumi.get(self, "managed_resource_group_name") + @property + @pulumi.getter(name="managedServicesCmkKeyVaultId") + def managed_services_cmk_key_vault_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "managed_services_cmk_key_vault_id") + @property @pulumi.getter(name="managedServicesCmkKeyVaultKeyId") def managed_services_cmk_key_vault_key_id(self) -> pulumi.Output[Optional[str]]: @@ -977,7 +1045,7 @@ def sku(self) -> pulumi.Output[str]: """ The `sku` to use for the Databricks Workspace. Possible values are `standard`, `premium`, or `trial`. - > **NOTE** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. + > **Note:** Downgrading to a `trial sku` from a `standard` or `premium sku` will force a new resource to be created. """ return pulumi.get(self, "sku") diff --git a/sdk/python/pulumi_azure/databricks/workspace_root_dbfs_customer_managed_key.py b/sdk/python/pulumi_azure/databricks/workspace_root_dbfs_customer_managed_key.py index 5d067150f5..c56a307891 100644 --- a/sdk/python/pulumi_azure/databricks/workspace_root_dbfs_customer_managed_key.py +++ b/sdk/python/pulumi_azure/databricks/workspace_root_dbfs_customer_managed_key.py @@ -15,7 +15,8 @@ class WorkspaceRootDbfsCustomerManagedKeyArgs: def __init__(__self__, *, key_vault_key_id: pulumi.Input[str], - workspace_id: pulumi.Input[str]): + workspace_id: pulumi.Input[str], + key_vault_id: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a WorkspaceRootDbfsCustomerManagedKey resource. :param pulumi.Input[str] key_vault_key_id: The resource ID of the Key Vault Key to be used. @@ -23,6 +24,8 @@ def __init__(__self__, *, """ pulumi.set(__self__, "key_vault_key_id", key_vault_key_id) pulumi.set(__self__, "workspace_id", workspace_id) + if key_vault_id is not None: + pulumi.set(__self__, "key_vault_id", key_vault_id) @property @pulumi.getter(name="keyVaultKeyId") @@ -48,10 +51,20 @@ def workspace_id(self) -> pulumi.Input[str]: def workspace_id(self, value: pulumi.Input[str]): pulumi.set(self, "workspace_id", value) + @property + @pulumi.getter(name="keyVaultId") + def key_vault_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "key_vault_id") + + @key_vault_id.setter + def key_vault_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key_vault_id", value) + @pulumi.input_type class _WorkspaceRootDbfsCustomerManagedKeyState: def __init__(__self__, *, + key_vault_id: Optional[pulumi.Input[str]] = None, key_vault_key_id: Optional[pulumi.Input[str]] = None, workspace_id: Optional[pulumi.Input[str]] = None): """ @@ -59,11 +72,22 @@ def __init__(__self__, *, :param pulumi.Input[str] key_vault_key_id: The resource ID of the Key Vault Key to be used. :param pulumi.Input[str] workspace_id: The resource ID of the Databricks Workspace. """ + if key_vault_id is not None: + pulumi.set(__self__, "key_vault_id", key_vault_id) if key_vault_key_id is not None: pulumi.set(__self__, "key_vault_key_id", key_vault_key_id) if workspace_id is not None: pulumi.set(__self__, "workspace_id", workspace_id) + @property + @pulumi.getter(name="keyVaultId") + def key_vault_id(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "key_vault_id") + + @key_vault_id.setter + def key_vault_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "key_vault_id", value) + @property @pulumi.getter(name="keyVaultKeyId") def key_vault_key_id(self) -> Optional[pulumi.Input[str]]: @@ -94,11 +118,12 @@ class WorkspaceRootDbfsCustomerManagedKey(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + key_vault_id: Optional[pulumi.Input[str]] = None, key_vault_key_id: Optional[pulumi.Input[str]] = None, workspace_id: Optional[pulumi.Input[str]] = None, __props__=None): """ - Manages a Customer Managed Key for the Databricks Workspaces root Databricks File System(DBFS) + Manages a Customer Managed Key for the Databricks Workspaces Root Databricks File System(DBFS) ## Example Usage @@ -181,7 +206,7 @@ def __init__(__self__, ## Example HCL Configurations * Databricks Workspace with Root Databricks File System Customer Managed Keys - * Databricks Workspace with Customer Managed Keys for Managed Services + * Databricks Workspace with Root Databricks File System Customer Managed Keys in a Different Subscription * Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys ## Import @@ -204,7 +229,7 @@ def __init__(__self__, args: WorkspaceRootDbfsCustomerManagedKeyArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Manages a Customer Managed Key for the Databricks Workspaces root Databricks File System(DBFS) + Manages a Customer Managed Key for the Databricks Workspaces Root Databricks File System(DBFS) ## Example Usage @@ -287,7 +312,7 @@ def __init__(__self__, ## Example HCL Configurations * Databricks Workspace with Root Databricks File System Customer Managed Keys - * Databricks Workspace with Customer Managed Keys for Managed Services + * Databricks Workspace with Root Databricks File System Customer Managed Keys in a Different Subscription * Databricks Workspace with Private Endpoint, Customer Managed Keys for Managed Services and Root Databricks File System Customer Managed Keys ## Import @@ -313,6 +338,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + key_vault_id: Optional[pulumi.Input[str]] = None, key_vault_key_id: Optional[pulumi.Input[str]] = None, workspace_id: Optional[pulumi.Input[str]] = None, __props__=None): @@ -324,6 +350,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = WorkspaceRootDbfsCustomerManagedKeyArgs.__new__(WorkspaceRootDbfsCustomerManagedKeyArgs) + __props__.__dict__["key_vault_id"] = key_vault_id if key_vault_key_id is None and not opts.urn: raise TypeError("Missing required property 'key_vault_key_id'") __props__.__dict__["key_vault_key_id"] = key_vault_key_id @@ -340,6 +367,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + key_vault_id: Optional[pulumi.Input[str]] = None, key_vault_key_id: Optional[pulumi.Input[str]] = None, workspace_id: Optional[pulumi.Input[str]] = None) -> 'WorkspaceRootDbfsCustomerManagedKey': """ @@ -356,10 +384,16 @@ def get(resource_name: str, __props__ = _WorkspaceRootDbfsCustomerManagedKeyState.__new__(_WorkspaceRootDbfsCustomerManagedKeyState) + __props__.__dict__["key_vault_id"] = key_vault_id __props__.__dict__["key_vault_key_id"] = key_vault_key_id __props__.__dict__["workspace_id"] = workspace_id return WorkspaceRootDbfsCustomerManagedKey(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="keyVaultId") + def key_vault_id(self) -> pulumi.Output[Optional[str]]: + return pulumi.get(self, "key_vault_id") + @property @pulumi.getter(name="keyVaultKeyId") def key_vault_key_id(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_azure/devtest/schedule.py b/sdk/python/pulumi_azure/devtest/schedule.py index 0284a3a0be..db70785e71 100644 --- a/sdk/python/pulumi_azure/devtest/schedule.py +++ b/sdk/python/pulumi_azure/devtest/schedule.py @@ -448,6 +448,7 @@ def __init__(__self__, location=example.location, resource_group_name=example.name, lab_name=example_lab.name, + status="Enabled", weekly_recurrence=azure.devtest.ScheduleWeeklyRecurrenceArgs( time="1100", week_days=[ @@ -515,6 +516,7 @@ def __init__(__self__, location=example.location, resource_group_name=example.name, lab_name=example_lab.name, + status="Enabled", weekly_recurrence=azure.devtest.ScheduleWeeklyRecurrenceArgs( time="1100", week_days=[ diff --git a/sdk/python/pulumi_azure/monitoring/_inputs.py b/sdk/python/pulumi_azure/monitoring/_inputs.py index 6b60c35a4f..9bf9e3c2b2 100644 --- a/sdk/python/pulumi_azure/monitoring/_inputs.py +++ b/sdk/python/pulumi_azure/monitoring/_inputs.py @@ -152,6 +152,7 @@ 'ScheduledQueryRulesAlertV2CriteriaArgs', 'ScheduledQueryRulesAlertV2CriteriaDimensionArgs', 'ScheduledQueryRulesAlertV2CriteriaFailingPeriodsArgs', + 'ScheduledQueryRulesAlertV2IdentityArgs', 'ScheduledQueryRulesLogCriteriaArgs', 'ScheduledQueryRulesLogCriteriaDimensionArgs', 'SmartDetectorAlertRuleActionGroupArgs', @@ -8591,6 +8592,80 @@ def number_of_evaluation_periods(self, value: pulumi.Input[int]): pulumi.set(self, "number_of_evaluation_periods", value) +@pulumi.input_type +class ScheduledQueryRulesAlertV2IdentityArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + identity_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + principal_id: Optional[pulumi.Input[str]] = None, + tenant_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] type: Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] identity_ids: A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + + > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + :param pulumi.Input[str] principal_id: The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + :param pulumi.Input[str] tenant_id: The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + """ + pulumi.set(__self__, "type", type) + if identity_ids is not None: + pulumi.set(__self__, "identity_ids", identity_ids) + 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]: + """ + Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="identityIds") + def identity_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + + > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + """ + return pulumi.get(self, "identity_ids") + + @identity_ids.setter + def identity_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "identity_ids", value) + + @property + @pulumi.getter(name="principalId") + def principal_id(self) -> Optional[pulumi.Input[str]]: + """ + The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + """ + 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]]: + """ + The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + """ + return pulumi.get(self, "tenant_id") + + @tenant_id.setter + def tenant_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "tenant_id", value) + + @pulumi.input_type class ScheduledQueryRulesLogCriteriaArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_azure/monitoring/outputs.py b/sdk/python/pulumi_azure/monitoring/outputs.py index 8a5b6ea355..ac17af448b 100644 --- a/sdk/python/pulumi_azure/monitoring/outputs.py +++ b/sdk/python/pulumi_azure/monitoring/outputs.py @@ -153,6 +153,7 @@ 'ScheduledQueryRulesAlertV2Criteria', 'ScheduledQueryRulesAlertV2CriteriaDimension', 'ScheduledQueryRulesAlertV2CriteriaFailingPeriods', + 'ScheduledQueryRulesAlertV2Identity', 'ScheduledQueryRulesLogCriteria', 'ScheduledQueryRulesLogCriteriaDimension', 'SmartDetectorAlertRuleActionGroup', @@ -8377,6 +8378,85 @@ def number_of_evaluation_periods(self) -> int: return pulumi.get(self, "number_of_evaluation_periods") +@pulumi.output_type +class ScheduledQueryRulesAlertV2Identity(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "identityIds": + suggest = "identity_ids" + elif key == "principalId": + suggest = "principal_id" + elif key == "tenantId": + suggest = "tenant_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ScheduledQueryRulesAlertV2Identity. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ScheduledQueryRulesAlertV2Identity.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ScheduledQueryRulesAlertV2Identity.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + type: str, + identity_ids: Optional[Sequence[str]] = None, + principal_id: Optional[str] = None, + tenant_id: Optional[str] = None): + """ + :param str type: Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + :param Sequence[str] identity_ids: A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + + > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + :param str principal_id: The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + :param str tenant_id: The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + """ + pulumi.set(__self__, "type", type) + if identity_ids is not None: + pulumi.set(__self__, "identity_ids", identity_ids) + 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: + """ + Specifies the type of Managed Service Identity that should be configured on this Scheduled Query Rule. Possible values are `SystemAssigned`, `UserAssigned`. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="identityIds") + def identity_ids(self) -> Optional[Sequence[str]]: + """ + A list of User Assigned Managed Identity IDs to be assigned to this Scheduled Query Rule. + + > **NOTE:** This is required when `type` is set to `UserAssigned`. The identity associated must have required roles, read the [Azure documentation](https://learn.microsoft.com/en-us/azure/azure-monitor/alerts/alerts-create-log-alert-rule#configure-the-alert-rule-details) for more information. + """ + return pulumi.get(self, "identity_ids") + + @property + @pulumi.getter(name="principalId") + def principal_id(self) -> Optional[str]: + """ + The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + """ + return pulumi.get(self, "principal_id") + + @property + @pulumi.getter(name="tenantId") + def tenant_id(self) -> Optional[str]: + """ + The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service slot. + """ + return pulumi.get(self, "tenant_id") + + @pulumi.output_type class ScheduledQueryRulesLogCriteria(dict): @staticmethod diff --git a/sdk/python/pulumi_azure/monitoring/scheduled_query_rules_alert_v2.py b/sdk/python/pulumi_azure/monitoring/scheduled_query_rules_alert_v2.py index e37259ad2c..8391e79dfa 100644 --- a/sdk/python/pulumi_azure/monitoring/scheduled_query_rules_alert_v2.py +++ b/sdk/python/pulumi_azure/monitoring/scheduled_query_rules_alert_v2.py @@ -27,6 +27,7 @@ def __init__(__self__, *, display_name: Optional[pulumi.Input[str]] = None, enabled: Optional[pulumi.Input[bool]] = None, evaluation_frequency: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs']] = None, location: Optional[pulumi.Input[str]] = None, mute_actions_after_alert_duration: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -52,6 +53,7 @@ def __init__(__self__, *, > **Note** `evaluation_frequency` cannot be greater than the query look back which is `window_duration`*`number_of_evaluation_periods`. > **Note** `evaluation_frequency` cannot be greater than the `mute_actions_after_alert_duration`. + :param pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs'] identity: An `identity` block as defined below. :param pulumi.Input[str] location: Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] mute_actions_after_alert_duration: Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D` and `P2D`. @@ -82,6 +84,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enabled", enabled) if evaluation_frequency is not None: pulumi.set(__self__, "evaluation_frequency", evaluation_frequency) + if identity is not None: + pulumi.set(__self__, "identity", identity) if location is not None: pulumi.set(__self__, "location", location) if mute_actions_after_alert_duration is not None: @@ -235,6 +239,18 @@ def evaluation_frequency(self) -> Optional[pulumi.Input[str]]: def evaluation_frequency(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "evaluation_frequency", value) + @property + @pulumi.getter + def identity(self) -> Optional[pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs']]: + """ + An `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: Optional[pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs']]): + pulumi.set(self, "identity", value) + @property @pulumi.getter def location(self) -> Optional[pulumi.Input[str]]: @@ -347,6 +363,7 @@ def __init__(__self__, *, display_name: Optional[pulumi.Input[str]] = None, enabled: Optional[pulumi.Input[bool]] = None, evaluation_frequency: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs']] = None, is_a_legacy_log_analytics_rule: Optional[pulumi.Input[bool]] = None, is_workspace_alerts_storage_configured: Optional[pulumi.Input[bool]] = None, location: Optional[pulumi.Input[str]] = None, @@ -375,6 +392,7 @@ def __init__(__self__, *, > **Note** `evaluation_frequency` cannot be greater than the query look back which is `window_duration`*`number_of_evaluation_periods`. > **Note** `evaluation_frequency` cannot be greater than the `mute_actions_after_alert_duration`. + :param pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs'] identity: An `identity` block as defined below. :param pulumi.Input[bool] is_a_legacy_log_analytics_rule: True if this alert rule is a legacy Log Analytic Rule. :param pulumi.Input[bool] is_workspace_alerts_storage_configured: The flag indicates whether this Scheduled Query Rule has been configured to be stored in the customer's storage. :param pulumi.Input[str] location: Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. @@ -410,6 +428,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enabled", enabled) if evaluation_frequency is not None: pulumi.set(__self__, "evaluation_frequency", evaluation_frequency) + if identity is not None: + pulumi.set(__self__, "identity", identity) if is_a_legacy_log_analytics_rule is not None: pulumi.set(__self__, "is_a_legacy_log_analytics_rule", is_a_legacy_log_analytics_rule) if is_workspace_alerts_storage_configured is not None: @@ -539,6 +559,18 @@ def evaluation_frequency(self) -> Optional[pulumi.Input[str]]: def evaluation_frequency(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "evaluation_frequency", value) + @property + @pulumi.getter + def identity(self) -> Optional[pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs']]: + """ + An `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: Optional[pulumi.Input['ScheduledQueryRulesAlertV2IdentityArgs']]): + pulumi.set(self, "identity", value) + @property @pulumi.getter(name="isALegacyLogAnalyticsRule") def is_a_legacy_log_analytics_rule(self) -> Optional[pulumi.Input[bool]]: @@ -724,6 +756,7 @@ def __init__(__self__, display_name: Optional[pulumi.Input[str]] = None, enabled: Optional[pulumi.Input[bool]] = None, evaluation_frequency: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[pulumi.InputType['ScheduledQueryRulesAlertV2IdentityArgs']]] = None, location: Optional[pulumi.Input[str]] = None, mute_actions_after_alert_duration: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -759,6 +792,14 @@ def __init__(__self__, name="example-mag", resource_group_name=example.name, short_name="test mag") + example_user_assigned_identity = azure.authorization.UserAssignedIdentity("example", + name="example-uai", + location=example.location, + resource_group_name=example.name) + example_assignment = azure.authorization.Assignment("example", + scope=example_insights.id, + role_definition_name="Reader", + principal_id=example_user_assigned_identity.principal_id) example_scheduled_query_rules_alert_v2 = azure.monitoring.ScheduledQueryRulesAlertV2("example", name="example-msqrv2", resource_group_name=example.name, @@ -800,6 +841,10 @@ def __init__(__self__, "key2": "value2", }, ), + identity=azure.monitoring.ScheduledQueryRulesAlertV2IdentityArgs( + type="UserAssigned", + identity_ids=[example_user_assigned_identity.id], + ), tags={ "key": "value", "key2": "value2", @@ -828,6 +873,7 @@ def __init__(__self__, > **Note** `evaluation_frequency` cannot be greater than the query look back which is `window_duration`*`number_of_evaluation_periods`. > **Note** `evaluation_frequency` cannot be greater than the `mute_actions_after_alert_duration`. + :param pulumi.Input[pulumi.InputType['ScheduledQueryRulesAlertV2IdentityArgs']] identity: An `identity` block as defined below. :param pulumi.Input[str] location: Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] mute_actions_after_alert_duration: Mute actions for the chosen period of time in ISO 8601 duration format after the alert is fired. Possible values are `PT5M`, `PT10M`, `PT15M`, `PT30M`, `PT45M`, `PT1H`, `PT2H`, `PT3H`, `PT4H`, `PT5H`, `PT6H`, `P1D` and `P2D`. @@ -873,6 +919,14 @@ def __init__(__self__, name="example-mag", resource_group_name=example.name, short_name="test mag") + example_user_assigned_identity = azure.authorization.UserAssignedIdentity("example", + name="example-uai", + location=example.location, + resource_group_name=example.name) + example_assignment = azure.authorization.Assignment("example", + scope=example_insights.id, + role_definition_name="Reader", + principal_id=example_user_assigned_identity.principal_id) example_scheduled_query_rules_alert_v2 = azure.monitoring.ScheduledQueryRulesAlertV2("example", name="example-msqrv2", resource_group_name=example.name, @@ -914,6 +968,10 @@ def __init__(__self__, "key2": "value2", }, ), + identity=azure.monitoring.ScheduledQueryRulesAlertV2IdentityArgs( + type="UserAssigned", + identity_ids=[example_user_assigned_identity.id], + ), tags={ "key": "value", "key2": "value2", @@ -951,6 +1009,7 @@ def _internal_init(__self__, display_name: Optional[pulumi.Input[str]] = None, enabled: Optional[pulumi.Input[bool]] = None, evaluation_frequency: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[pulumi.InputType['ScheduledQueryRulesAlertV2IdentityArgs']]] = None, location: Optional[pulumi.Input[str]] = None, mute_actions_after_alert_duration: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -981,6 +1040,7 @@ def _internal_init(__self__, __props__.__dict__["display_name"] = display_name __props__.__dict__["enabled"] = enabled __props__.__dict__["evaluation_frequency"] = evaluation_frequency + __props__.__dict__["identity"] = identity __props__.__dict__["location"] = location __props__.__dict__["mute_actions_after_alert_duration"] = mute_actions_after_alert_duration __props__.__dict__["name"] = name @@ -1022,6 +1082,7 @@ def get(resource_name: str, display_name: Optional[pulumi.Input[str]] = None, enabled: Optional[pulumi.Input[bool]] = None, evaluation_frequency: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[pulumi.InputType['ScheduledQueryRulesAlertV2IdentityArgs']]] = None, is_a_legacy_log_analytics_rule: Optional[pulumi.Input[bool]] = None, is_workspace_alerts_storage_configured: Optional[pulumi.Input[bool]] = None, location: Optional[pulumi.Input[str]] = None, @@ -1055,6 +1116,7 @@ def get(resource_name: str, > **Note** `evaluation_frequency` cannot be greater than the query look back which is `window_duration`*`number_of_evaluation_periods`. > **Note** `evaluation_frequency` cannot be greater than the `mute_actions_after_alert_duration`. + :param pulumi.Input[pulumi.InputType['ScheduledQueryRulesAlertV2IdentityArgs']] identity: An `identity` block as defined below. :param pulumi.Input[bool] is_a_legacy_log_analytics_rule: True if this alert rule is a legacy Log Analytic Rule. :param pulumi.Input[bool] is_workspace_alerts_storage_configured: The flag indicates whether this Scheduled Query Rule has been configured to be stored in the customer's storage. :param pulumi.Input[str] location: Specifies the Azure Region where the Monitor Scheduled Query Rule should exist. Changing this forces a new resource to be created. @@ -1086,6 +1148,7 @@ def get(resource_name: str, __props__.__dict__["display_name"] = display_name __props__.__dict__["enabled"] = enabled __props__.__dict__["evaluation_frequency"] = evaluation_frequency + __props__.__dict__["identity"] = identity __props__.__dict__["is_a_legacy_log_analytics_rule"] = is_a_legacy_log_analytics_rule __props__.__dict__["is_workspace_alerts_storage_configured"] = is_workspace_alerts_storage_configured __props__.__dict__["location"] = location @@ -1170,6 +1233,14 @@ def evaluation_frequency(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "evaluation_frequency") + @property + @pulumi.getter + def identity(self) -> pulumi.Output[Optional['outputs.ScheduledQueryRulesAlertV2Identity']]: + """ + An `identity` block as defined below. + """ + return pulumi.get(self, "identity") + @property @pulumi.getter(name="isALegacyLogAnalyticsRule") def is_a_legacy_log_analytics_rule(self) -> pulumi.Output[bool]: diff --git a/sdk/python/pulumi_azure/mssql/database.py b/sdk/python/pulumi_azure/mssql/database.py index b7b7f2a5c4..0d77555186 100644 --- a/sdk/python/pulumi_azure/mssql/database.py +++ b/sdk/python/pulumi_azure/mssql/database.py @@ -41,6 +41,7 @@ def __init__(__self__, *, restore_long_term_retention_backup_id: Optional[pulumi.Input[str]] = None, restore_point_in_time: Optional[pulumi.Input[str]] = None, sample_name: Optional[pulumi.Input[str]] = None, + secondary_type: Optional[pulumi.Input[str]] = None, short_term_retention_policy: Optional[pulumi.Input['DatabaseShortTermRetentionPolicyArgs']] = None, sku_name: Optional[pulumi.Input[str]] = None, storage_account_type: Optional[pulumi.Input[str]] = None, @@ -62,11 +63,13 @@ def __init__(__self__, *, > **NOTE:** When configuring a secondary database, please be aware of the constraints for the `sku_name` property, as noted below, for both the primary and secondary databases. The `sku_name` of the secondary database may be inadvertently changed to match that of the primary when an incompatible combination of SKUs is detected by the provider. :param pulumi.Input[str] elastic_pool_id: Specifies the ID of the elastic pool containing this database. - :param pulumi.Input[str] enclave_type: Specifies the type of enclave to be used by the database. Possible value `VBS`. + :param pulumi.Input[str] enclave_type: Specifies the type of enclave to be used by the elastic pool. When `enclave_type` is not specified (e.g., the default) enclaves are not enabled on the database. + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="East US") + example_cache = azure.redis.Cache("example", + name="example", + location=example.location, + resource_group_name=example.name, + capacity=1, + family="P", + sku_name="Premium", + enable_non_ssl_port=False, + redis_configuration=azure.redis.CacheRedisConfigurationArgs( + maxmemory_reserved=2, + maxmemory_delta=2, + maxmemory_policy="allkeys-lru", + )) + example_cache_access_policy = azure.redis.CacheAccessPolicy("example", + name="example", + redis_cache_id=example_cache.id, + permissions="+@read +@connection +cluster|info") + ``` + + + ## Import + + Redis Cache Access Policy can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:redis/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicies/policy1 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + :param pulumi.Input[str] permissions: Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + :param pulumi.Input[str] redis_cache_id: The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CacheAccessPolicyArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages a Redis Cache Access Policy + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-resources", + location="East US") + example_cache = azure.redis.Cache("example", + name="example", + location=example.location, + resource_group_name=example.name, + capacity=1, + family="P", + sku_name="Premium", + enable_non_ssl_port=False, + redis_configuration=azure.redis.CacheRedisConfigurationArgs( + maxmemory_reserved=2, + maxmemory_delta=2, + maxmemory_policy="allkeys-lru", + )) + example_cache_access_policy = azure.redis.CacheAccessPolicy("example", + name="example", + redis_cache_id=example_cache.id, + permissions="+@read +@connection +cluster|info") + ``` + + + ## Import + + Redis Cache Access Policy can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:redis/cacheAccessPolicy:CacheAccessPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicies/policy1 + ``` + + :param str resource_name: The name of the resource. + :param CacheAccessPolicyArgs 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(CacheAccessPolicyArgs, 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, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[str]] = None, + redis_cache_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__ = CacheAccessPolicyArgs.__new__(CacheAccessPolicyArgs) + + __props__.__dict__["name"] = name + if permissions is None and not opts.urn: + raise TypeError("Missing required property 'permissions'") + __props__.__dict__["permissions"] = permissions + if redis_cache_id is None and not opts.urn: + raise TypeError("Missing required property 'redis_cache_id'") + __props__.__dict__["redis_cache_id"] = redis_cache_id + super(CacheAccessPolicy, __self__).__init__( + 'azure:redis/cacheAccessPolicy:CacheAccessPolicy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + permissions: Optional[pulumi.Input[str]] = None, + redis_cache_id: Optional[pulumi.Input[str]] = None) -> 'CacheAccessPolicy': + """ + Get an existing CacheAccessPolicy 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] name: The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + :param pulumi.Input[str] permissions: Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + :param pulumi.Input[str] redis_cache_id: The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CacheAccessPolicyState.__new__(_CacheAccessPolicyState) + + __props__.__dict__["name"] = name + __props__.__dict__["permissions"] = permissions + __props__.__dict__["redis_cache_id"] = redis_cache_id + return CacheAccessPolicy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def permissions(self) -> pulumi.Output[str]: + """ + Permissions that are going to be assigned to this Redis Cache Access Policy. Changing this forces a new Redis Cache Access Policy to be created. + """ + return pulumi.get(self, "permissions") + + @property + @pulumi.getter(name="redisCacheId") + def redis_cache_id(self) -> pulumi.Output[str]: + """ + The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy to be created. + """ + return pulumi.get(self, "redis_cache_id") + diff --git a/sdk/python/pulumi_azure/redis/cache_access_policy_assignment.py b/sdk/python/pulumi_azure/redis/cache_access_policy_assignment.py new file mode 100644 index 0000000000..26d6728fd3 --- /dev/null +++ b/sdk/python/pulumi_azure/redis/cache_access_policy_assignment.py @@ -0,0 +1,419 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['CacheAccessPolicyAssignmentArgs', 'CacheAccessPolicyAssignment'] + +@pulumi.input_type +class CacheAccessPolicyAssignmentArgs: + def __init__(__self__, *, + access_policy_name: pulumi.Input[str], + object_id: pulumi.Input[str], + object_id_alias: pulumi.Input[str], + redis_cache_id: pulumi.Input[str], + name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a CacheAccessPolicyAssignment resource. + :param pulumi.Input[str] access_policy_name: The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id: The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id_alias: The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] redis_cache_id: The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] name: The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + pulumi.set(__self__, "access_policy_name", access_policy_name) + pulumi.set(__self__, "object_id", object_id) + pulumi.set(__self__, "object_id_alias", object_id_alias) + pulumi.set(__self__, "redis_cache_id", redis_cache_id) + if name is not None: + pulumi.set(__self__, "name", name) + + @property + @pulumi.getter(name="accessPolicyName") + def access_policy_name(self) -> pulumi.Input[str]: + """ + The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "access_policy_name") + + @access_policy_name.setter + def access_policy_name(self, value: pulumi.Input[str]): + pulumi.set(self, "access_policy_name", value) + + @property + @pulumi.getter(name="objectId") + def object_id(self) -> pulumi.Input[str]: + """ + The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "object_id") + + @object_id.setter + def object_id(self, value: pulumi.Input[str]): + pulumi.set(self, "object_id", value) + + @property + @pulumi.getter(name="objectIdAlias") + def object_id_alias(self) -> pulumi.Input[str]: + """ + The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "object_id_alias") + + @object_id_alias.setter + def object_id_alias(self, value: pulumi.Input[str]): + pulumi.set(self, "object_id_alias", value) + + @property + @pulumi.getter(name="redisCacheId") + def redis_cache_id(self) -> pulumi.Input[str]: + """ + The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "redis_cache_id") + + @redis_cache_id.setter + def redis_cache_id(self, value: pulumi.Input[str]): + pulumi.set(self, "redis_cache_id", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment 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 _CacheAccessPolicyAssignmentState: + def __init__(__self__, *, + access_policy_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + object_id: Optional[pulumi.Input[str]] = None, + object_id_alias: Optional[pulumi.Input[str]] = None, + redis_cache_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering CacheAccessPolicyAssignment resources. + :param pulumi.Input[str] access_policy_name: The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] name: The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id: The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id_alias: The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] redis_cache_id: The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + if access_policy_name is not None: + pulumi.set(__self__, "access_policy_name", access_policy_name) + if name is not None: + pulumi.set(__self__, "name", name) + if object_id is not None: + pulumi.set(__self__, "object_id", object_id) + if object_id_alias is not None: + pulumi.set(__self__, "object_id_alias", object_id_alias) + if redis_cache_id is not None: + pulumi.set(__self__, "redis_cache_id", redis_cache_id) + + @property + @pulumi.getter(name="accessPolicyName") + def access_policy_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "access_policy_name") + + @access_policy_name.setter + def access_policy_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_policy_name", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment 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="objectId") + def object_id(self) -> Optional[pulumi.Input[str]]: + """ + The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "object_id") + + @object_id.setter + def object_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "object_id", value) + + @property + @pulumi.getter(name="objectIdAlias") + def object_id_alias(self) -> Optional[pulumi.Input[str]]: + """ + The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "object_id_alias") + + @object_id_alias.setter + def object_id_alias(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "object_id_alias", value) + + @property + @pulumi.getter(name="redisCacheId") + def redis_cache_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "redis_cache_id") + + @redis_cache_id.setter + def redis_cache_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "redis_cache_id", value) + + +class CacheAccessPolicyAssignment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_policy_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + object_id: Optional[pulumi.Input[str]] = None, + object_id_alias: Optional[pulumi.Input[str]] = None, + redis_cache_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Manages a Redis Cache Access Policy Assignment + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + test = azure.core.get_client_config() + example = azure.core.ResourceGroup("example", + name="example-resources", + location="East US") + example_cache = azure.redis.Cache("example", + name="example", + location=example.location, + resource_group_name=example.name, + capacity=1, + family="P", + sku_name="Premium", + enable_non_ssl_port=False, + redis_configuration=azure.redis.CacheRedisConfigurationArgs( + maxmemory_reserved=2, + maxmemory_delta=2, + maxmemory_policy="allkeys-lru", + )) + example_cache_access_policy_assignment = azure.redis.CacheAccessPolicyAssignment("example", + name="example", + redis_cache_id=example_cache.id, + access_policy_name="Data Contributor", + object_id=test.object_id, + object_id_alias="ServicePrincipal") + ``` + + + ## Import + + Redis Cache Policy Assignment can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/assignment1 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] access_policy_name: The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] name: The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id: The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id_alias: The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] redis_cache_id: The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CacheAccessPolicyAssignmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages a Redis Cache Access Policy Assignment + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + test = azure.core.get_client_config() + example = azure.core.ResourceGroup("example", + name="example-resources", + location="East US") + example_cache = azure.redis.Cache("example", + name="example", + location=example.location, + resource_group_name=example.name, + capacity=1, + family="P", + sku_name="Premium", + enable_non_ssl_port=False, + redis_configuration=azure.redis.CacheRedisConfigurationArgs( + maxmemory_reserved=2, + maxmemory_delta=2, + maxmemory_policy="allkeys-lru", + )) + example_cache_access_policy_assignment = azure.redis.CacheAccessPolicyAssignment("example", + name="example", + redis_cache_id=example_cache.id, + access_policy_name="Data Contributor", + object_id=test.object_id, + object_id_alias="ServicePrincipal") + ``` + + + ## Import + + Redis Cache Policy Assignment can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Cache/redis/cache1/accessPolicyAssignments/assignment1 + ``` + + :param str resource_name: The name of the resource. + :param CacheAccessPolicyAssignmentArgs 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(CacheAccessPolicyAssignmentArgs, 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, + access_policy_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + object_id: Optional[pulumi.Input[str]] = None, + object_id_alias: Optional[pulumi.Input[str]] = None, + redis_cache_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__ = CacheAccessPolicyAssignmentArgs.__new__(CacheAccessPolicyAssignmentArgs) + + if access_policy_name is None and not opts.urn: + raise TypeError("Missing required property 'access_policy_name'") + __props__.__dict__["access_policy_name"] = access_policy_name + __props__.__dict__["name"] = name + if object_id is None and not opts.urn: + raise TypeError("Missing required property 'object_id'") + __props__.__dict__["object_id"] = object_id + if object_id_alias is None and not opts.urn: + raise TypeError("Missing required property 'object_id_alias'") + __props__.__dict__["object_id_alias"] = object_id_alias + if redis_cache_id is None and not opts.urn: + raise TypeError("Missing required property 'redis_cache_id'") + __props__.__dict__["redis_cache_id"] = redis_cache_id + super(CacheAccessPolicyAssignment, __self__).__init__( + 'azure:redis/cacheAccessPolicyAssignment:CacheAccessPolicyAssignment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + access_policy_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + object_id: Optional[pulumi.Input[str]] = None, + object_id_alias: Optional[pulumi.Input[str]] = None, + redis_cache_id: Optional[pulumi.Input[str]] = None) -> 'CacheAccessPolicyAssignment': + """ + Get an existing CacheAccessPolicyAssignment 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] access_policy_name: The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] name: The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id: The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] object_id_alias: The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + :param pulumi.Input[str] redis_cache_id: The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CacheAccessPolicyAssignmentState.__new__(_CacheAccessPolicyAssignmentState) + + __props__.__dict__["access_policy_name"] = access_policy_name + __props__.__dict__["name"] = name + __props__.__dict__["object_id"] = object_id + __props__.__dict__["object_id_alias"] = object_id_alias + __props__.__dict__["redis_cache_id"] = redis_cache_id + return CacheAccessPolicyAssignment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="accessPolicyName") + def access_policy_name(self) -> pulumi.Output[str]: + """ + The name of the Access Policy to be assigned. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "access_policy_name") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the Redis Cache Access Policy Assignment. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="objectId") + def object_id(self) -> pulumi.Output[str]: + """ + The principal ID to be assigned the Access Policy. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "object_id") + + @property + @pulumi.getter(name="objectIdAlias") + def object_id_alias(self) -> pulumi.Output[str]: + """ + The alias of the principal ID. Possible values are `ServicePrincipal` and `UserMSI`. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "object_id_alias") + + @property + @pulumi.getter(name="redisCacheId") + def redis_cache_id(self) -> pulumi.Output[str]: + """ + The ID of the Redis Cache. Changing this forces a new Redis Cache Access Policy Assignment to be created. + """ + return pulumi.get(self, "redis_cache_id") + diff --git a/sdk/python/pulumi_azure/stack/hci_cluster.py b/sdk/python/pulumi_azure/stack/hci_cluster.py index 68970e0b96..331f05814d 100644 --- a/sdk/python/pulumi_azure/stack/hci_cluster.py +++ b/sdk/python/pulumi_azure/stack/hci_cluster.py @@ -16,9 +16,9 @@ @pulumi.input_type class HciClusterArgs: def __init__(__self__, *, - client_id: pulumi.Input[str], resource_group_name: pulumi.Input[str], automanage_configuration_id: Optional[pulumi.Input[str]] = None, + client_id: Optional[pulumi.Input[str]] = None, identity: Optional[pulumi.Input['HciClusterIdentityArgs']] = None, location: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, @@ -26,9 +26,9 @@ def __init__(__self__, *, tenant_id: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a HciCluster resource. - :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] automanage_configuration_id: The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. + :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. :param pulumi.Input['HciClusterIdentityArgs'] identity: An `identity` block as defined below. :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] name: The name which should be used for this Azure Stack HCI Cluster. Changing this forces a new resource to be created. @@ -37,10 +37,11 @@ def __init__(__self__, *, > **NOTE** If unspecified the Tenant ID of the Provider will be used. """ - pulumi.set(__self__, "client_id", client_id) pulumi.set(__self__, "resource_group_name", resource_group_name) if automanage_configuration_id is not None: pulumi.set(__self__, "automanage_configuration_id", automanage_configuration_id) + if client_id is not None: + pulumi.set(__self__, "client_id", client_id) if identity is not None: pulumi.set(__self__, "identity", identity) if location is not None: @@ -52,18 +53,6 @@ def __init__(__self__, *, if tenant_id is not None: pulumi.set(__self__, "tenant_id", tenant_id) - @property - @pulumi.getter(name="clientId") - def client_id(self) -> pulumi.Input[str]: - """ - The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. - """ - return pulumi.get(self, "client_id") - - @client_id.setter - def client_id(self, value: pulumi.Input[str]): - pulumi.set(self, "client_id", value) - @property @pulumi.getter(name="resourceGroupName") def resource_group_name(self) -> pulumi.Input[str]: @@ -88,6 +77,18 @@ def automanage_configuration_id(self) -> Optional[pulumi.Input[str]]: def automanage_configuration_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "automanage_configuration_id", value) + @property + @pulumi.getter(name="clientId") + def client_id(self) -> Optional[pulumi.Input[str]]: + """ + The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "client_id") + + @client_id.setter + def client_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "client_id", value) + @property @pulumi.getter def identity(self) -> Optional[pulumi.Input['HciClusterIdentityArgs']]: @@ -168,7 +169,7 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering HciCluster resources. :param pulumi.Input[str] automanage_configuration_id: The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. - :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. :param pulumi.Input[str] cloud_id: An immutable UUID for the Azure Stack HCI Cluster. :param pulumi.Input['HciClusterIdentityArgs'] identity: An `identity` block as defined below. :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created. @@ -220,7 +221,7 @@ def automanage_configuration_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="clientId") def client_id(self) -> Optional[pulumi.Input[str]]: """ - The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. """ return pulumi.get(self, "client_id") @@ -392,7 +393,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] automanage_configuration_id: The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. - :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. :param pulumi.Input[pulumi.InputType['HciClusterIdentityArgs']] identity: An `identity` block as defined below. :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created. :param pulumi.Input[str] name: The name which should be used for this Azure Stack HCI Cluster. Changing this forces a new resource to be created. @@ -477,8 +478,6 @@ def _internal_init(__self__, __props__ = HciClusterArgs.__new__(HciClusterArgs) __props__.__dict__["automanage_configuration_id"] = automanage_configuration_id - if client_id is None and not opts.urn: - raise TypeError("Missing required property 'client_id'") __props__.__dict__["client_id"] = client_id __props__.__dict__["identity"] = identity __props__.__dict__["location"] = location @@ -520,7 +519,7 @@ def get(resource_name: str, :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] automanage_configuration_id: The ID of the Automanage Configuration assigned to the Azure Stack HCI Cluster. - :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + :param pulumi.Input[str] client_id: The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. :param pulumi.Input[str] cloud_id: An immutable UUID for the Azure Stack HCI Cluster. :param pulumi.Input[pulumi.InputType['HciClusterIdentityArgs']] identity: An `identity` block as defined below. :param pulumi.Input[str] location: The Azure Region where the Azure Stack HCI Cluster should exist. Changing this forces a new resource to be created. @@ -560,9 +559,9 @@ def automanage_configuration_id(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="clientId") - def client_id(self) -> pulumi.Output[str]: + def client_id(self) -> pulumi.Output[Optional[str]]: """ - The Client ID of the Azure Active Directory which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. + The Client ID of the Azure Active Directory Application which is used by the Azure Stack HCI Cluster. Changing this forces a new resource to be created. """ return pulumi.get(self, "client_id") diff --git a/sdk/python/pulumi_azure/systemcenter/__init__.py b/sdk/python/pulumi_azure/systemcenter/__init__.py index c60d2c719c..50ea9e1fb6 100644 --- a/sdk/python/pulumi_azure/systemcenter/__init__.py +++ b/sdk/python/pulumi_azure/systemcenter/__init__.py @@ -5,5 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from .get_virtual_machine_manager_inventory_items import * from .virtual_machine_manager_availability_set import * from .virtual_machine_manager_server import * +from . import outputs diff --git a/sdk/python/pulumi_azure/systemcenter/get_virtual_machine_manager_inventory_items.py b/sdk/python/pulumi_azure/systemcenter/get_virtual_machine_manager_inventory_items.py new file mode 100644 index 0000000000..fff36dfb61 --- /dev/null +++ b/sdk/python/pulumi_azure/systemcenter/get_virtual_machine_manager_inventory_items.py @@ -0,0 +1,136 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs + +__all__ = [ + 'GetVirtualMachineManagerInventoryItemsResult', + 'AwaitableGetVirtualMachineManagerInventoryItemsResult', + 'get_virtual_machine_manager_inventory_items', + 'get_virtual_machine_manager_inventory_items_output', +] + +@pulumi.output_type +class GetVirtualMachineManagerInventoryItemsResult: + """ + A collection of values returned by getVirtualMachineManagerInventoryItems. + """ + def __init__(__self__, id=None, inventory_items=None, inventory_type=None, system_center_virtual_machine_manager_server_id=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if inventory_items and not isinstance(inventory_items, list): + raise TypeError("Expected argument 'inventory_items' to be a list") + pulumi.set(__self__, "inventory_items", inventory_items) + if inventory_type and not isinstance(inventory_type, str): + raise TypeError("Expected argument 'inventory_type' to be a str") + pulumi.set(__self__, "inventory_type", inventory_type) + if system_center_virtual_machine_manager_server_id and not isinstance(system_center_virtual_machine_manager_server_id, str): + raise TypeError("Expected argument 'system_center_virtual_machine_manager_server_id' to be a str") + pulumi.set(__self__, "system_center_virtual_machine_manager_server_id", system_center_virtual_machine_manager_server_id) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="inventoryItems") + def inventory_items(self) -> Sequence['outputs.GetVirtualMachineManagerInventoryItemsInventoryItemResult']: + """ + One or more `inventory_items` blocks as defined below. + """ + return pulumi.get(self, "inventory_items") + + @property + @pulumi.getter(name="inventoryType") + def inventory_type(self) -> str: + return pulumi.get(self, "inventory_type") + + @property + @pulumi.getter(name="systemCenterVirtualMachineManagerServerId") + def system_center_virtual_machine_manager_server_id(self) -> str: + return pulumi.get(self, "system_center_virtual_machine_manager_server_id") + + +class AwaitableGetVirtualMachineManagerInventoryItemsResult(GetVirtualMachineManagerInventoryItemsResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetVirtualMachineManagerInventoryItemsResult( + id=self.id, + inventory_items=self.inventory_items, + inventory_type=self.inventory_type, + system_center_virtual_machine_manager_server_id=self.system_center_virtual_machine_manager_server_id) + + +def get_virtual_machine_manager_inventory_items(inventory_type: Optional[str] = None, + system_center_virtual_machine_manager_server_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetVirtualMachineManagerInventoryItemsResult: + """ + Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.systemcenter.get_virtual_machine_manager_inventory_items(inventory_type="Cloud", + system_center_virtual_machine_manager_server_id=example_azurerm_system_center_virtual_machine_manager_server["id"]) + ``` + + + + :param str inventory_type: The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + :param str system_center_virtual_machine_manager_server_id: The ID of the System Center Virtual Machine Manager Server. + """ + __args__ = dict() + __args__['inventoryType'] = inventory_type + __args__['systemCenterVirtualMachineManagerServerId'] = system_center_virtual_machine_manager_server_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('azure:systemcenter/getVirtualMachineManagerInventoryItems:getVirtualMachineManagerInventoryItems', __args__, opts=opts, typ=GetVirtualMachineManagerInventoryItemsResult).value + + return AwaitableGetVirtualMachineManagerInventoryItemsResult( + id=pulumi.get(__ret__, 'id'), + inventory_items=pulumi.get(__ret__, 'inventory_items'), + inventory_type=pulumi.get(__ret__, 'inventory_type'), + system_center_virtual_machine_manager_server_id=pulumi.get(__ret__, 'system_center_virtual_machine_manager_server_id')) + + +@_utilities.lift_output_func(get_virtual_machine_manager_inventory_items) +def get_virtual_machine_manager_inventory_items_output(inventory_type: Optional[pulumi.Input[str]] = None, + system_center_virtual_machine_manager_server_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetVirtualMachineManagerInventoryItemsResult]: + """ + Use this data source to access information about existing System Center Virtual Machine Manager Inventory Items. + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.systemcenter.get_virtual_machine_manager_inventory_items(inventory_type="Cloud", + system_center_virtual_machine_manager_server_id=example_azurerm_system_center_virtual_machine_manager_server["id"]) + ``` + + + + :param str inventory_type: The inventory type of the System Center Virtual Machine Manager Inventory Item. Possible values are `Cloud`, `VirtualMachine`, `VirtualMachineTemplate` and `VirtualNetwork`. + :param str system_center_virtual_machine_manager_server_id: The ID of the System Center Virtual Machine Manager Server. + """ + ... diff --git a/sdk/python/pulumi_azure/systemcenter/outputs.py b/sdk/python/pulumi_azure/systemcenter/outputs.py new file mode 100644 index 0000000000..0ce7bf7fab --- /dev/null +++ b/sdk/python/pulumi_azure/systemcenter/outputs.py @@ -0,0 +1,55 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = [ + 'GetVirtualMachineManagerInventoryItemsInventoryItemResult', +] + +@pulumi.output_type +class GetVirtualMachineManagerInventoryItemsInventoryItemResult(dict): + def __init__(__self__, *, + id: str, + name: str, + uuid: str): + """ + :param str id: The ID of the System Center Virtual Machine Manager Inventory Item. + :param str name: The name of the System Center Virtual Machine Manager Inventory Item. + :param str uuid: The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + """ + pulumi.set(__self__, "id", id) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "uuid", uuid) + + @property + @pulumi.getter + def id(self) -> str: + """ + The ID of the System Center Virtual Machine Manager Inventory Item. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the System Center Virtual Machine Manager Inventory Item. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def uuid(self) -> str: + """ + The UUID of the System Center Virtual Machine Manager Inventory Item that is assigned by System Center Virtual Machine Manager. + """ + return pulumi.get(self, "uuid") + + diff --git a/sdk/python/pulumi_azure/workloadssap/__init__.py b/sdk/python/pulumi_azure/workloadssap/__init__.py index 67e4afb93a..edcbfaf21d 100644 --- a/sdk/python/pulumi_azure/workloadssap/__init__.py +++ b/sdk/python/pulumi_azure/workloadssap/__init__.py @@ -5,6 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from .discovery_virtual_instance import * from .single_node_virtual_instance import * from .three_tier_virtual_instance import * from ._inputs import * diff --git a/sdk/python/pulumi_azure/workloadssap/_inputs.py b/sdk/python/pulumi_azure/workloadssap/_inputs.py index 3bba39b2fb..a61c4cdf3f 100644 --- a/sdk/python/pulumi_azure/workloadssap/_inputs.py +++ b/sdk/python/pulumi_azure/workloadssap/_inputs.py @@ -10,6 +10,7 @@ from .. import _utilities __all__ = [ + 'DiscoveryVirtualInstanceIdentityArgs', 'SingleNodeVirtualInstanceIdentityArgs', 'SingleNodeVirtualInstanceSingleServerConfigurationArgs', 'SingleNodeVirtualInstanceSingleServerConfigurationDiskVolumeConfigurationArgs', @@ -49,6 +50,43 @@ 'ThreeTierVirtualInstanceThreeTierConfigurationTransportCreateAndMountArgs', ] +@pulumi.input_type +class DiscoveryVirtualInstanceIdentityArgs: + def __init__(__self__, *, + identity_ids: pulumi.Input[Sequence[pulumi.Input[str]]], + type: pulumi.Input[str]): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] identity_ids: A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + :param pulumi.Input[str] type: The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + """ + pulumi.set(__self__, "identity_ids", identity_ids) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="identityIds") + def identity_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + """ + return pulumi.get(self, "identity_ids") + + @identity_ids.setter + def identity_ids(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "identity_ids", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @pulumi.input_type class SingleNodeVirtualInstanceIdentityArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_azure/workloadssap/discovery_virtual_instance.py b/sdk/python/pulumi_azure/workloadssap/discovery_virtual_instance.py new file mode 100644 index 0000000000..84d7d9f917 --- /dev/null +++ b/sdk/python/pulumi_azure/workloadssap/discovery_virtual_instance.py @@ -0,0 +1,644 @@ +# 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 pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['DiscoveryVirtualInstanceArgs', 'DiscoveryVirtualInstance'] + +@pulumi.input_type +class DiscoveryVirtualInstanceArgs: + def __init__(__self__, *, + central_server_virtual_machine_id: pulumi.Input[str], + environment: pulumi.Input[str], + resource_group_name: pulumi.Input[str], + sap_product: pulumi.Input[str], + identity: Optional[pulumi.Input['DiscoveryVirtualInstanceIdentityArgs']] = None, + location: Optional[pulumi.Input[str]] = None, + managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_storage_account_name: 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 DiscoveryVirtualInstance resource. + :param pulumi.Input[str] central_server_virtual_machine_id: The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + :param pulumi.Input[str] environment: The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] sap_product: The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + :param pulumi.Input['DiscoveryVirtualInstanceIdentityArgs'] identity: An `identity` block as defined below. + :param pulumi.Input[str] location: The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_resource_group_name: The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_storage_account_name: The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance. + """ + pulumi.set(__self__, "central_server_virtual_machine_id", central_server_virtual_machine_id) + pulumi.set(__self__, "environment", environment) + pulumi.set(__self__, "resource_group_name", resource_group_name) + pulumi.set(__self__, "sap_product", sap_product) + if identity is not None: + pulumi.set(__self__, "identity", identity) + if location is not None: + pulumi.set(__self__, "location", location) + if managed_resource_group_name is not None: + pulumi.set(__self__, "managed_resource_group_name", managed_resource_group_name) + if managed_storage_account_name is not None: + pulumi.set(__self__, "managed_storage_account_name", managed_storage_account_name) + if name is not None: + pulumi.set(__self__, "name", name) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="centralServerVirtualMachineId") + def central_server_virtual_machine_id(self) -> pulumi.Input[str]: + """ + The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "central_server_virtual_machine_id") + + @central_server_virtual_machine_id.setter + def central_server_virtual_machine_id(self, value: pulumi.Input[str]): + pulumi.set(self, "central_server_virtual_machine_id", value) + + @property + @pulumi.getter + def environment(self) -> pulumi.Input[str]: + """ + The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "environment") + + @environment.setter + def environment(self, value: pulumi.Input[str]): + pulumi.set(self, "environment", value) + + @property + @pulumi.getter(name="resourceGroupName") + def resource_group_name(self) -> pulumi.Input[str]: + """ + The name of the Resource Group where the SAP Discovery Virtual Instance 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="sapProduct") + def sap_product(self) -> pulumi.Input[str]: + """ + The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "sap_product") + + @sap_product.setter + def sap_product(self, value: pulumi.Input[str]): + pulumi.set(self, "sap_product", value) + + @property + @pulumi.getter + def identity(self) -> Optional[pulumi.Input['DiscoveryVirtualInstanceIdentityArgs']]: + """ + An `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: Optional[pulumi.Input['DiscoveryVirtualInstanceIdentityArgs']]): + pulumi.set(self, "identity", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The Azure Region where the SAP Discovery Virtual Instance 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="managedResourceGroupName") + def managed_resource_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "managed_resource_group_name") + + @managed_resource_group_name.setter + def managed_resource_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_resource_group_name", value) + + @property + @pulumi.getter(name="managedStorageAccountName") + def managed_storage_account_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "managed_storage_account_name") + + @managed_storage_account_name.setter + def managed_storage_account_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_storage_account_name", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance. + """ + 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 _DiscoveryVirtualInstanceState: + def __init__(__self__, *, + central_server_virtual_machine_id: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input['DiscoveryVirtualInstanceIdentityArgs']] = None, + location: Optional[pulumi.Input[str]] = None, + managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_storage_account_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + sap_product: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None): + """ + Input properties used for looking up and filtering DiscoveryVirtualInstance resources. + :param pulumi.Input[str] central_server_virtual_machine_id: The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + :param pulumi.Input[str] environment: The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + :param pulumi.Input['DiscoveryVirtualInstanceIdentityArgs'] identity: An `identity` block as defined below. + :param pulumi.Input[str] location: The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_resource_group_name: The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_storage_account_name: The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] sap_product: The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. 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 SAP Discovery Virtual Instance. + """ + if central_server_virtual_machine_id is not None: + pulumi.set(__self__, "central_server_virtual_machine_id", central_server_virtual_machine_id) + if environment is not None: + pulumi.set(__self__, "environment", environment) + if identity is not None: + pulumi.set(__self__, "identity", identity) + if location is not None: + pulumi.set(__self__, "location", location) + if managed_resource_group_name is not None: + pulumi.set(__self__, "managed_resource_group_name", managed_resource_group_name) + if managed_storage_account_name is not None: + pulumi.set(__self__, "managed_storage_account_name", managed_storage_account_name) + 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 sap_product is not None: + pulumi.set(__self__, "sap_product", sap_product) + if tags is not None: + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter(name="centralServerVirtualMachineId") + def central_server_virtual_machine_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "central_server_virtual_machine_id") + + @central_server_virtual_machine_id.setter + def central_server_virtual_machine_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "central_server_virtual_machine_id", value) + + @property + @pulumi.getter + def environment(self) -> Optional[pulumi.Input[str]]: + """ + The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "environment") + + @environment.setter + def environment(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "environment", value) + + @property + @pulumi.getter + def identity(self) -> Optional[pulumi.Input['DiscoveryVirtualInstanceIdentityArgs']]: + """ + An `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @identity.setter + def identity(self, value: Optional[pulumi.Input['DiscoveryVirtualInstanceIdentityArgs']]): + pulumi.set(self, "identity", value) + + @property + @pulumi.getter + def location(self) -> Optional[pulumi.Input[str]]: + """ + The Azure Region where the SAP Discovery Virtual Instance 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="managedResourceGroupName") + def managed_resource_group_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "managed_resource_group_name") + + @managed_resource_group_name.setter + def managed_resource_group_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_resource_group_name", value) + + @property + @pulumi.getter(name="managedStorageAccountName") + def managed_storage_account_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "managed_storage_account_name") + + @managed_storage_account_name.setter + def managed_storage_account_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_storage_account_name", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance 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(name="sapProduct") + def sap_product(self) -> Optional[pulumi.Input[str]]: + """ + The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "sap_product") + + @sap_product.setter + def sap_product(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sap_product", 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 SAP Discovery Virtual Instance. + """ + 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 DiscoveryVirtualInstance(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + central_server_virtual_machine_id: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[pulumi.InputType['DiscoveryVirtualInstanceIdentityArgs']]] = None, + location: Optional[pulumi.Input[str]] = None, + managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_storage_account_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + sap_product: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None): + """ + Manages an SAP Discovery Virtual Instance. + + > **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace "Microsoft.Workloads"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace "Microsoft.Workloads" --query "registrationState"`. Once this outputs "Registered" the Resource Provider is available for use. + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-sapvis", + location="West Europe") + example_discovery_virtual_instance = azure.workloadssap.DiscoveryVirtualInstance("example", + name="X01", + resource_group_name=example.name, + location=example.location, + environment="NonProd", + sap_product="S4HANA", + central_server_virtual_machine_id="/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1", + managed_storage_account_name="managedsa", + identity=azure.workloadssap.DiscoveryVirtualInstanceIdentityArgs( + type="UserAssigned", + identity_ids=["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1"], + )) + ``` + + + ## Import + + SAP Discovery Virtual Instances can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] central_server_virtual_machine_id: The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + :param pulumi.Input[str] environment: The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + :param pulumi.Input[pulumi.InputType['DiscoveryVirtualInstanceIdentityArgs']] identity: An `identity` block as defined below. + :param pulumi.Input[str] location: The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_resource_group_name: The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_storage_account_name: The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] sap_product: The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. 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 SAP Discovery Virtual Instance. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: DiscoveryVirtualInstanceArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Manages an SAP Discovery Virtual Instance. + + > **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace "Microsoft.Workloads"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace "Microsoft.Workloads" --query "registrationState"`. Once this outputs "Registered" the Resource Provider is available for use. + + ## Example Usage + + + ```python + import pulumi + import pulumi_azure as azure + + example = azure.core.ResourceGroup("example", + name="example-sapvis", + location="West Europe") + example_discovery_virtual_instance = azure.workloadssap.DiscoveryVirtualInstance("example", + name="X01", + resource_group_name=example.name, + location=example.location, + environment="NonProd", + sap_product="S4HANA", + central_server_virtual_machine_id="/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/csvm1", + managed_storage_account_name="managedsa", + identity=azure.workloadssap.DiscoveryVirtualInstanceIdentityArgs( + type="UserAssigned", + identity_ids=["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/uai1"], + )) + ``` + + + ## Import + + SAP Discovery Virtual Instances can be imported using the `resource id`, e.g. + + ```sh + $ pulumi import azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1 + ``` + + :param str resource_name: The name of the resource. + :param DiscoveryVirtualInstanceArgs 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(DiscoveryVirtualInstanceArgs, 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, + central_server_virtual_machine_id: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[pulumi.InputType['DiscoveryVirtualInstanceIdentityArgs']]] = None, + location: Optional[pulumi.Input[str]] = None, + managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_storage_account_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + sap_product: 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__ = DiscoveryVirtualInstanceArgs.__new__(DiscoveryVirtualInstanceArgs) + + if central_server_virtual_machine_id is None and not opts.urn: + raise TypeError("Missing required property 'central_server_virtual_machine_id'") + __props__.__dict__["central_server_virtual_machine_id"] = central_server_virtual_machine_id + if environment is None and not opts.urn: + raise TypeError("Missing required property 'environment'") + __props__.__dict__["environment"] = environment + __props__.__dict__["identity"] = identity + __props__.__dict__["location"] = location + __props__.__dict__["managed_resource_group_name"] = managed_resource_group_name + __props__.__dict__["managed_storage_account_name"] = managed_storage_account_name + __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 + if sap_product is None and not opts.urn: + raise TypeError("Missing required property 'sap_product'") + __props__.__dict__["sap_product"] = sap_product + __props__.__dict__["tags"] = tags + super(DiscoveryVirtualInstance, __self__).__init__( + 'azure:workloadssap/discoveryVirtualInstance:DiscoveryVirtualInstance', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + central_server_virtual_machine_id: Optional[pulumi.Input[str]] = None, + environment: Optional[pulumi.Input[str]] = None, + identity: Optional[pulumi.Input[pulumi.InputType['DiscoveryVirtualInstanceIdentityArgs']]] = None, + location: Optional[pulumi.Input[str]] = None, + managed_resource_group_name: Optional[pulumi.Input[str]] = None, + managed_storage_account_name: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_group_name: Optional[pulumi.Input[str]] = None, + sap_product: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'DiscoveryVirtualInstance': + """ + Get an existing DiscoveryVirtualInstance 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] central_server_virtual_machine_id: The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + :param pulumi.Input[str] environment: The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + :param pulumi.Input[pulumi.InputType['DiscoveryVirtualInstanceIdentityArgs']] identity: An `identity` block as defined below. + :param pulumi.Input[str] location: The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_resource_group_name: The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + :param pulumi.Input[str] managed_storage_account_name: The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + :param pulumi.Input[str] name: Specifies the name of the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + :param pulumi.Input[str] resource_group_name: The name of the Resource Group where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + :param pulumi.Input[str] sap_product: The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. 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 SAP Discovery Virtual Instance. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _DiscoveryVirtualInstanceState.__new__(_DiscoveryVirtualInstanceState) + + __props__.__dict__["central_server_virtual_machine_id"] = central_server_virtual_machine_id + __props__.__dict__["environment"] = environment + __props__.__dict__["identity"] = identity + __props__.__dict__["location"] = location + __props__.__dict__["managed_resource_group_name"] = managed_resource_group_name + __props__.__dict__["managed_storage_account_name"] = managed_storage_account_name + __props__.__dict__["name"] = name + __props__.__dict__["resource_group_name"] = resource_group_name + __props__.__dict__["sap_product"] = sap_product + __props__.__dict__["tags"] = tags + return DiscoveryVirtualInstance(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="centralServerVirtualMachineId") + def central_server_virtual_machine_id(self) -> pulumi.Output[str]: + """ + The ID of the Virtual Machine of the Central Server. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "central_server_virtual_machine_id") + + @property + @pulumi.getter + def environment(self) -> pulumi.Output[str]: + """ + The environment type for the SAP Discovery Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "environment") + + @property + @pulumi.getter + def identity(self) -> pulumi.Output[Optional['outputs.DiscoveryVirtualInstanceIdentity']]: + """ + An `identity` block as defined below. + """ + return pulumi.get(self, "identity") + + @property + @pulumi.getter + def location(self) -> pulumi.Output[str]: + """ + The Azure Region where the SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "location") + + @property + @pulumi.getter(name="managedResourceGroupName") + def managed_resource_group_name(self) -> pulumi.Output[Optional[str]]: + """ + The name of the managed Resource Group for the SAP Discovery Virtual Instance. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "managed_resource_group_name") + + @property + @pulumi.getter(name="managedStorageAccountName") + def managed_storage_account_name(self) -> pulumi.Output[Optional[str]]: + """ + The name of the custom Storage Account created by the service in the managed Resource Group. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "managed_storage_account_name") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Specifies the name of the SAP Discovery Virtual Instance. 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 SAP Discovery Virtual Instance should exist. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "resource_group_name") + + @property + @pulumi.getter(name="sapProduct") + def sap_product(self) -> pulumi.Output[str]: + """ + The SAP Product type for the SAP Discovery Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. + """ + return pulumi.get(self, "sap_product") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A mapping of tags which should be assigned to the SAP Discovery Virtual Instance. + """ + return pulumi.get(self, "tags") + diff --git a/sdk/python/pulumi_azure/workloadssap/outputs.py b/sdk/python/pulumi_azure/workloadssap/outputs.py index 3ae0b622bc..e9a669e18d 100644 --- a/sdk/python/pulumi_azure/workloadssap/outputs.py +++ b/sdk/python/pulumi_azure/workloadssap/outputs.py @@ -11,6 +11,7 @@ from . import outputs __all__ = [ + 'DiscoveryVirtualInstanceIdentity', 'SingleNodeVirtualInstanceIdentity', 'SingleNodeVirtualInstanceSingleServerConfiguration', 'SingleNodeVirtualInstanceSingleServerConfigurationDiskVolumeConfiguration', @@ -50,6 +51,52 @@ 'ThreeTierVirtualInstanceThreeTierConfigurationTransportCreateAndMount', ] +@pulumi.output_type +class DiscoveryVirtualInstanceIdentity(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "identityIds": + suggest = "identity_ids" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in DiscoveryVirtualInstanceIdentity. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + DiscoveryVirtualInstanceIdentity.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + DiscoveryVirtualInstanceIdentity.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + identity_ids: Sequence[str], + type: str): + """ + :param Sequence[str] identity_ids: A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + :param str type: The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + """ + pulumi.set(__self__, "identity_ids", identity_ids) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter(name="identityIds") + def identity_ids(self) -> Sequence[str]: + """ + A list of User Assigned Managed Identity IDs to be assigned to this SAP Discovery Virtual Instance. + """ + return pulumi.get(self, "identity_ids") + + @property + @pulumi.getter + def type(self) -> str: + """ + The type of Managed Service Identity that should be configured on this SAP Discovery Virtual Instance. The only possible value is `UserAssigned`. + """ + return pulumi.get(self, "type") + + @pulumi.output_type class SingleNodeVirtualInstanceIdentity(dict): @staticmethod diff --git a/upstream b/upstream index 412483bbe4..c23baefbcc 160000 --- a/upstream +++ b/upstream @@ -1 +1 @@ -Subproject commit 412483bbe495b857ac81cd89148eaa534a465e71 +Subproject commit c23baefbccbbe56f46924130a21f90d1784afc14