@@ -909,6 +909,13 @@ bet set to True if any of the fields in the spec are set to non-default values.`
909909 Computed : true ,
910910 Description : `Time the AccessPolicy was created in UTC.` ,
911911 },
912+ "etag" : {
913+ Type : schema .TypeString ,
914+ Computed : true ,
915+ Description : `An opaque identifier for the current version of the ServicePerimeter. This
916+ identifier does not follow any specific format. If an etag is not provided, the
917+ operation will be performed as if a valid etag is provided.` ,
918+ },
912919 "update_time" : {
913920 Type : schema .TypeString ,
914921 Computed : true ,
@@ -963,6 +970,12 @@ func resourceAccessContextManagerServicePerimeterCreate(d *schema.ResourceData,
963970 } else if v , ok := d .GetOkExists ("use_explicit_dry_run_spec" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (useExplicitDryRunSpecProp )) && (ok || ! reflect .DeepEqual (v , useExplicitDryRunSpecProp )) {
964971 obj ["useExplicitDryRunSpec" ] = useExplicitDryRunSpecProp
965972 }
973+ etagProp , err := expandAccessContextManagerServicePerimeterEtag (d .Get ("etag" ), d , config )
974+ if err != nil {
975+ return err
976+ } else if v , ok := d .GetOkExists ("etag" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (etagProp )) && (ok || ! reflect .DeepEqual (v , etagProp )) {
977+ obj ["etag" ] = etagProp
978+ }
966979 parentProp , err := expandAccessContextManagerServicePerimeterParent (d .Get ("parent" ), d , config )
967980 if err != nil {
968981 return err
@@ -1108,6 +1121,9 @@ func resourceAccessContextManagerServicePerimeterRead(d *schema.ResourceData, me
11081121 if err := d .Set ("use_explicit_dry_run_spec" , flattenAccessContextManagerServicePerimeterUseExplicitDryRunSpec (res ["useExplicitDryRunSpec" ], d , config )); err != nil {
11091122 return fmt .Errorf ("Error reading ServicePerimeter: %s" , err )
11101123 }
1124+ if err := d .Set ("etag" , flattenAccessContextManagerServicePerimeterEtag (res ["etag" ], d , config )); err != nil {
1125+ return fmt .Errorf ("Error reading ServicePerimeter: %s" , err )
1126+ }
11111127 if err := d .Set ("name" , flattenAccessContextManagerServicePerimeterName (res ["name" ], d , config )); err != nil {
11121128 return fmt .Errorf ("Error reading ServicePerimeter: %s" , err )
11131129 }
@@ -1155,6 +1171,12 @@ func resourceAccessContextManagerServicePerimeterUpdate(d *schema.ResourceData,
11551171 } else if v , ok := d .GetOkExists ("use_explicit_dry_run_spec" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , useExplicitDryRunSpecProp )) {
11561172 obj ["useExplicitDryRunSpec" ] = useExplicitDryRunSpecProp
11571173 }
1174+ etagProp , err := expandAccessContextManagerServicePerimeterEtag (d .Get ("etag" ), d , config )
1175+ if err != nil {
1176+ return err
1177+ } else if v , ok := d .GetOkExists ("etag" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , etagProp )) {
1178+ obj ["etag" ] = etagProp
1179+ }
11581180
11591181 obj , err = resourceAccessContextManagerServicePerimeterEncoder (d , meta , obj )
11601182 if err != nil {
@@ -1196,12 +1218,21 @@ func resourceAccessContextManagerServicePerimeterUpdate(d *schema.ResourceData,
11961218 if d .HasChange ("use_explicit_dry_run_spec" ) {
11971219 updateMask = append (updateMask , "useExplicitDryRunSpec" )
11981220 }
1221+
1222+ if d .HasChange ("etag" ) {
1223+ updateMask = append (updateMask , "etag" )
1224+ }
11991225 // updateMask is a URL parameter but not present in the schema, so ReplaceVars
12001226 // won't set it
12011227 url , err = transport_tpg .AddQueryParams (url , map [string ]string {"updateMask" : strings .Join (updateMask , "," )})
12021228 if err != nil {
12031229 return err
12041230 }
1231+ if _ , ok := d .GetOkExists ("etag" ); ok {
1232+ updateMask = append (updateMask , "etag" )
1233+
1234+ url , err = transport_tpg .AddQueryParams (url , map [string ]string {"updateMask" : strings .Join (updateMask , "," )})
1235+ }
12051236
12061237 // err == nil indicates that the billing_project value was found
12071238 if bp , err := tpgresource .GetBillingProject (d , config ); err == nil {
@@ -2085,6 +2116,10 @@ func flattenAccessContextManagerServicePerimeterUseExplicitDryRunSpec(v interfac
20852116 return v
20862117}
20872118
2119+ func flattenAccessContextManagerServicePerimeterEtag (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
2120+ return v
2121+ }
2122+
20882123func flattenAccessContextManagerServicePerimeterName (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
20892124 return v
20902125}
@@ -3173,6 +3208,10 @@ func expandAccessContextManagerServicePerimeterUseExplicitDryRunSpec(v interface
31733208 return v , nil
31743209}
31753210
3211+ func expandAccessContextManagerServicePerimeterEtag (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
3212+ return v , nil
3213+ }
3214+
31763215func expandAccessContextManagerServicePerimeterParent (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
31773216 return v , nil
31783217}
0 commit comments