@@ -61,6 +61,15 @@ func resourceArtifactRegistryRepository() *schema.Resource {
6161 Optional : true ,
6262 Description : `The user-provided description of the repository.` ,
6363 },
64+ "kms_key_name" : {
65+ Type : schema .TypeString ,
66+ Optional : true ,
67+ ForceNew : true ,
68+ Description : `The Cloud KMS resource name of the customer managed encryption key that’s
69+ used to encrypt the contents of the Repository. Has the form:
70+ 'projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key'.
71+ This value may not be changed after the Repository has been created.` ,
72+ },
6473 "labels" : {
6574 Type : schema .TypeMap ,
6675 Optional : true ,
@@ -126,6 +135,12 @@ func resourceArtifactRegistryRepositoryCreate(d *schema.ResourceData, meta inter
126135 } else if v , ok := d .GetOkExists ("labels" ); ! isEmptyValue (reflect .ValueOf (labelsProp )) && (ok || ! reflect .DeepEqual (v , labelsProp )) {
127136 obj ["labels" ] = labelsProp
128137 }
138+ kmsKeyNameProp , err := expandArtifactRegistryRepositoryKmsKeyName (d .Get ("kms_key_name" ), d , config )
139+ if err != nil {
140+ return err
141+ } else if v , ok := d .GetOkExists ("kms_key_name" ); ! isEmptyValue (reflect .ValueOf (kmsKeyNameProp )) && (ok || ! reflect .DeepEqual (v , kmsKeyNameProp )) {
142+ obj ["kmsKeyName" ] = kmsKeyNameProp
143+ }
129144
130145 url , err := replaceVars (d , config , "{{ArtifactRegistryBasePath}}projects/{{project}}/locations/{{location}}/repositories?repository_id={{repository_id}}" )
131146 if err != nil {
@@ -210,6 +225,9 @@ func resourceArtifactRegistryRepositoryRead(d *schema.ResourceData, meta interfa
210225 if err := d .Set ("labels" , flattenArtifactRegistryRepositoryLabels (res ["labels" ], d , config )); err != nil {
211226 return fmt .Errorf ("Error reading Repository: %s" , err )
212227 }
228+ if err := d .Set ("kms_key_name" , flattenArtifactRegistryRepositoryKmsKeyName (res ["kmsKeyName" ], d , config )); err != nil {
229+ return fmt .Errorf ("Error reading Repository: %s" , err )
230+ }
213231 if err := d .Set ("create_time" , flattenArtifactRegistryRepositoryCreateTime (res ["createTime" ], d , config )); err != nil {
214232 return fmt .Errorf ("Error reading Repository: %s" , err )
215233 }
@@ -247,6 +265,12 @@ func resourceArtifactRegistryRepositoryUpdate(d *schema.ResourceData, meta inter
247265 } else if v , ok := d .GetOkExists ("labels" ); ! isEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , labelsProp )) {
248266 obj ["labels" ] = labelsProp
249267 }
268+ kmsKeyNameProp , err := expandArtifactRegistryRepositoryKmsKeyName (d .Get ("kms_key_name" ), d , config )
269+ if err != nil {
270+ return err
271+ } else if v , ok := d .GetOkExists ("kms_key_name" ); ! isEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , kmsKeyNameProp )) {
272+ obj ["kmsKeyName" ] = kmsKeyNameProp
273+ }
250274
251275 url , err := replaceVars (d , config , "{{ArtifactRegistryBasePath}}projects/{{project}}/locations/{{location}}/repositories/{{name}}" )
252276 if err != nil {
@@ -343,6 +367,10 @@ func flattenArtifactRegistryRepositoryLabels(v interface{}, d *schema.ResourceDa
343367 return v
344368}
345369
370+ func flattenArtifactRegistryRepositoryKmsKeyName (v interface {}, d * schema.ResourceData , config * Config ) interface {} {
371+ return v
372+ }
373+
346374func flattenArtifactRegistryRepositoryCreateTime (v interface {}, d * schema.ResourceData , config * Config ) interface {} {
347375 return v
348376}
@@ -369,3 +397,7 @@ func expandArtifactRegistryRepositoryLabels(v interface{}, d TerraformResourceDa
369397 }
370398 return m , nil
371399}
400+
401+ func expandArtifactRegistryRepositoryKmsKeyName (v interface {}, d TerraformResourceData , config * Config ) (interface {}, error ) {
402+ return v , nil
403+ }
0 commit comments