From 881f636d8c4e223a2967f343e938afa93bbcbe43 Mon Sep 17 00:00:00 2001 From: jackofallops Date: Wed, 22 May 2024 15:54:48 +0200 Subject: [PATCH] add new HSM Key feature option --- internal/provider/framework/config.go | 6 ++++ internal/provider/framework/config_test.go | 4 +++ internal/provider/framework/model.go | 38 ++++++++++++---------- 3 files changed, 30 insertions(+), 18 deletions(-) diff --git a/internal/provider/framework/config.go b/internal/provider/framework/config.go index 776b5532f2b7f..3bc6875c1fd4e 100644 --- a/internal/provider/framework/config.go +++ b/internal/provider/framework/config.go @@ -385,6 +385,11 @@ func (p *ProviderConfig) Load(ctx context.Context, data *ProviderModel, tfVersio f.KeyVault.PurgeSoftDeletedHSMsOnDestroy = feature[0].PurgeSoftDeletedHardwareSecurityModulesOnDestroy.ValueBool() } + f.KeyVault.PurgeSoftDeletedHSMKeysOnDestroy = true + if !feature[0].PurgeSoftDeletedHardwareSecurityModulesKeysOnDestroy.IsNull() && !feature[0].PurgeSoftDeletedHardwareSecurityModulesKeysOnDestroy.IsUnknown() { + f.KeyVault.PurgeSoftDeletedHSMKeysOnDestroy = feature[0].PurgeSoftDeletedHardwareSecurityModulesKeysOnDestroy.ValueBool() + } + f.KeyVault.RecoverSoftDeletedCerts = true if !feature[0].RecoverSoftDeletedCertificates.IsNull() && !feature[0].RecoverSoftDeletedCertificates.IsUnknown() { f.KeyVault.RecoverSoftDeletedCerts = feature[0].RecoverSoftDeletedCertificates.ValueBool() @@ -410,6 +415,7 @@ func (p *ProviderConfig) Load(ctx context.Context, data *ProviderModel, tfVersio f.KeyVault.PurgeSoftDeletedKeysOnDestroy = true f.KeyVault.PurgeSoftDeletedSecretsOnDestroy = true f.KeyVault.PurgeSoftDeletedHSMsOnDestroy = true + f.KeyVault.PurgeSoftDeletedHSMKeysOnDestroy = true f.KeyVault.RecoverSoftDeletedCerts = true f.KeyVault.RecoverSoftDeletedKeyVaults = true f.KeyVault.RecoverSoftDeletedKeys = true diff --git a/internal/provider/framework/config_test.go b/internal/provider/framework/config_test.go index d898662a61991..f2d212160b1a6 100644 --- a/internal/provider/framework/config_test.go +++ b/internal/provider/framework/config_test.go @@ -110,6 +110,10 @@ func TestProviderConfig_LoadDefault(t *testing.T) { t.Errorf("expected key_vault.purge_soft_deleted_hardware_security_modules_on_destroy to be true") } + if !features.KeyVault.PurgeSoftDeletedHSMKeysOnDestroy { + t.Errorf("expected key_vault.purge_soft_deleted_hardware_security_module_keys_on_destroy to be true") + } + if !features.KeyVault.RecoverSoftDeletedCerts { t.Errorf("expected key_vault.recover_soft_deleted_certificates to be true") } diff --git a/internal/provider/framework/model.go b/internal/provider/framework/model.go index 2a4cda3750543..8817470319ac0 100644 --- a/internal/provider/framework/model.go +++ b/internal/provider/framework/model.go @@ -112,27 +112,29 @@ var CognitiveAccountAttributes = map[string]attr.Type{ } type KeyVault struct { - PurgeSoftDeleteOnDestroy types.Bool `tfsdk:"purge_soft_delete_on_destroy"` - PurgeSoftDeletedCertificatesOnDestroy types.Bool `tfsdk:"purge_soft_deleted_certificates_on_destroy"` - PurgeSoftDeletedKeysOnDestroy types.Bool `tfsdk:"purge_soft_deleted_keys_on_destroy"` - PurgeSoftDeletedSecretsOnDestroy types.Bool `tfsdk:"purge_soft_deleted_secrets_on_destroy"` - PurgeSoftDeletedHardwareSecurityModulesOnDestroy types.Bool `tfsdk:"purge_soft_deleted_hardware_security_modules_on_destroy"` - RecoverSoftDeletedCertificates types.Bool `tfsdk:"recover_soft_deleted_certificates"` - RecoverSoftDeletedKeyVaults types.Bool `tfsdk:"recover_soft_deleted_key_vaults"` - RecoverSoftDeletedKeys types.Bool `tfsdk:"recover_soft_deleted_keys"` - RecoverSoftDeletedSecrets types.Bool `tfsdk:"recover_soft_deleted_secrets"` + PurgeSoftDeleteOnDestroy types.Bool `tfsdk:"purge_soft_delete_on_destroy"` + PurgeSoftDeletedCertificatesOnDestroy types.Bool `tfsdk:"purge_soft_deleted_certificates_on_destroy"` + PurgeSoftDeletedKeysOnDestroy types.Bool `tfsdk:"purge_soft_deleted_keys_on_destroy"` + PurgeSoftDeletedSecretsOnDestroy types.Bool `tfsdk:"purge_soft_deleted_secrets_on_destroy"` + PurgeSoftDeletedHardwareSecurityModulesOnDestroy types.Bool `tfsdk:"purge_soft_deleted_hardware_security_modules_on_destroy"` + PurgeSoftDeletedHardwareSecurityModulesKeysOnDestroy types.Bool `tfsdk:"purge_soft_deleted_hardware_security_module_keys_on_destroy"` + RecoverSoftDeletedCertificates types.Bool `tfsdk:"recover_soft_deleted_certificates"` + RecoverSoftDeletedKeyVaults types.Bool `tfsdk:"recover_soft_deleted_key_vaults"` + RecoverSoftDeletedKeys types.Bool `tfsdk:"recover_soft_deleted_keys"` + RecoverSoftDeletedSecrets types.Bool `tfsdk:"recover_soft_deleted_secrets"` } var KeyVaultAttributes = map[string]attr.Type{ - "purge_soft_delete_on_destroy": types.BoolType, - "purge_soft_deleted_certificates_on_destroy": types.BoolType, - "purge_soft_deleted_keys_on_destroy": types.BoolType, - "purge_soft_deleted_secrets_on_destroy": types.BoolType, - "purge_soft_deleted_hardware_security_modules_on_destroy": types.BoolType, - "recover_soft_deleted_certificates": types.BoolType, - "recover_soft_deleted_key_vaults": types.BoolType, - "recover_soft_deleted_keys": types.BoolType, - "recover_soft_deleted_secrets": types.BoolType, + "purge_soft_delete_on_destroy": types.BoolType, + "purge_soft_deleted_certificates_on_destroy": types.BoolType, + "purge_soft_deleted_keys_on_destroy": types.BoolType, + "purge_soft_deleted_secrets_on_destroy": types.BoolType, + "purge_soft_deleted_hardware_security_modules_on_destroy": types.BoolType, + "purge_soft_deleted_hardware_security_module_keys_on_destroy": types.BoolType, + "recover_soft_deleted_certificates": types.BoolType, + "recover_soft_deleted_key_vaults": types.BoolType, + "recover_soft_deleted_keys": types.BoolType, + "recover_soft_deleted_secrets": types.BoolType, } type LogAnalyticsWorkspace struct {