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