@@ -6,20 +6,21 @@ package dataprotection
66import (
77 "context"
88 "fmt"
9+ "regexp"
910 "time"
1011
1112 "github.com/hashicorp/go-azure-helpers/lang/pointer"
1213 "github.com/hashicorp/go-azure-helpers/lang/response"
1314 "github.com/hashicorp/go-azure-helpers/resourcemanager/commonids"
1415 "github.com/hashicorp/go-azure-helpers/resourcemanager/commonschema"
1516 "github.com/hashicorp/go-azure-helpers/resourcemanager/location"
17+ "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids"
1618 "github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2025-07-01/backupinstanceresources"
1719 "github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2025-07-01/backupvaultresources"
1820 "github.com/hashicorp/go-azure-sdk/resource-manager/dataprotection/2025-07-01/basebackuppolicyresources"
1921 "github.com/hashicorp/go-azure-sdk/sdk/client/pollers"
2022 "github.com/hashicorp/terraform-provider-azurerm/internal/sdk"
2123 "github.com/hashicorp/terraform-provider-azurerm/internal/services/dataprotection/custompollers"
22- storageValidate "github.com/hashicorp/terraform-provider-azurerm/internal/services/storage/validate"
2324 "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk"
2425 "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation"
2526)
@@ -34,9 +35,18 @@ type BackupInstanceDataLakeStorageModel struct {
3435 ProtectionState string `tfschema:"protection_state"`
3536}
3637
38+ //go:generate go run ../../tools/generator-tests resourceidentity -resource-name data_protection_backup_instance_data_lake_storage -service-package-name dataprotection -properties "name" -compare-values "subscription_id:data_protection_backup_vault_id,resource_group_name:data_protection_backup_vault_id,backup_vault_name:data_protection_backup_vault_id"
39+
3740type DataProtectionBackupInstanceDataLakeStorageResource struct {}
3841
39- var _ sdk.Resource = DataProtectionBackupInstanceDataLakeStorageResource {}
42+ var (
43+ _ sdk.Resource = DataProtectionBackupInstanceDataLakeStorageResource {}
44+ _ sdk.ResourceWithIdentity = DataProtectionBackupInstanceDataLakeStorageResource {}
45+ )
46+
47+ func (r DataProtectionBackupInstanceDataLakeStorageResource ) Identity () resourceids.ResourceId {
48+ return & backupinstanceresources.BackupInstanceId {}
49+ }
4050
4151func (r DataProtectionBackupInstanceDataLakeStorageResource ) ResourceType () string {
4252 return "azurerm_data_protection_backup_instance_data_lake_storage"
@@ -72,8 +82,11 @@ func (r DataProtectionBackupInstanceDataLakeStorageResource) Arguments() map[str
7282 Required : true ,
7383 MinItems : 1 ,
7484 Elem : & pluginsdk.Schema {
75- Type : pluginsdk .TypeString ,
76- ValidateFunc : storageValidate .StorageContainerName ,
85+ Type : pluginsdk .TypeString ,
86+ ValidateFunc : validation .All (
87+ validation .StringLenBetween (3 , 63 ),
88+ validation .StringMatch (regexp .MustCompile (`^[0-9a-z][0-9a-z-]*$` ), "only lowercase alphanumeric characters and hyphens are allowed, and the value must not start with a hyphen" ),
89+ ),
7790 },
7891 },
7992 }
@@ -176,6 +189,9 @@ func (r DataProtectionBackupInstanceDataLakeStorageResource) Create() sdk.Resour
176189 }
177190
178191 metadata .SetID (id )
192+ if err := pluginsdk .SetResourceIdentityData (metadata .ResourceData , & id ); err != nil {
193+ return err
194+ }
179195 return nil
180196 },
181197 }
@@ -238,6 +254,9 @@ func (r DataProtectionBackupInstanceDataLakeStorageResource) Read() sdk.Resource
238254 }
239255 }
240256
257+ if err := pluginsdk .SetResourceIdentityData (metadata .ResourceData , id ); err != nil {
258+ return err
259+ }
241260 return metadata .Encode (& state )
242261 },
243262 }
0 commit comments