From c49ef2a1a90e8d9a701ca65a3b14f546ad94b617 Mon Sep 17 00:00:00 2001 From: Steph Date: Mon, 24 Jun 2024 09:12:51 +0100 Subject: [PATCH] add configmodeattr to nested list properties --- .../site_recovery_replicated_vm_resource.go | 52 +++++++++++++++++-- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go index 84eab502dbd2..39f551a76983 100644 --- a/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go +++ b/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go @@ -390,10 +390,11 @@ func resourceSiteRecoveryReplicatedVM() *pluginsdk.Resource { }, "target_disk_encryption": { - Type: pluginsdk.TypeList, - Optional: true, - MaxItems: 1, - Elem: diskEncryptionResource(), + Type: pluginsdk.TypeList, + Optional: true, + MaxItems: 1, + ConfigMode: pluginsdk.SchemaConfigModeAttr, + Elem: diskEncryptionResource(), }, }, }, @@ -471,6 +472,49 @@ func networkInterfaceResource() *pluginsdk.Resource { } func diskEncryptionResource() *pluginsdk.Resource { + if !features.FourPointOhBeta() { + return &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "disk_encryption_key": { + Type: pluginsdk.TypeList, + Required: true, + MaxItems: 1, + ConfigMode: pluginsdk.SchemaConfigModeAttr, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "secret_url": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: keyVaultValidate.NestedItemId, + }, + + "vault_id": commonschema.ResourceIDReferenceRequiredForceNew(&commonids.KeyVaultId{}), + }, + }, + }, + + "key_encryption_key": { + Type: pluginsdk.TypeList, + Optional: true, + MaxItems: 1, + ConfigMode: pluginsdk.SchemaConfigModeAttr, + Elem: &pluginsdk.Resource{ + Schema: map[string]*pluginsdk.Schema{ + "key_url": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: keyVaultValidate.NestedItemId, + }, + + "vault_id": commonschema.ResourceIDReferenceRequiredForceNew(&commonids.KeyVaultId{}), + }, + }, + }, + }, + } + } return &pluginsdk.Resource{ Schema: map[string]*pluginsdk.Schema{ "disk_encryption_key": {