@@ -339,7 +339,25 @@ snapshot versions.`,
339339 },
340340 },
341341 },
342- ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" },
342+ ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" , "remote_repository_config.0.common_repository" },
343+ },
344+ "common_repository" : {
345+ Type : schema .TypeList ,
346+ Optional : true ,
347+ ForceNew : true ,
348+ Description : `Specific settings for an Artifact Registory remote repository.` ,
349+ MaxItems : 1 ,
350+ Elem : & schema.Resource {
351+ Schema : map [string ]* schema.Schema {
352+ "uri" : {
353+ Type : schema .TypeString ,
354+ Required : true ,
355+ ForceNew : true ,
356+ Description : `Specific uri to the Artifact Registory repository, e.g. 'projects/UPSTREAM_PROJECT_ID/locations/REGION/repositories/UPSTREAM_REPOSITORY'` ,
357+ },
358+ },
359+ },
360+ ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" , "remote_repository_config.0.common_repository" },
343361 },
344362 "description" : {
345363 Type : schema .TypeString ,
@@ -390,7 +408,7 @@ not be validated.`,
390408 },
391409 },
392410 },
393- ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" },
411+ ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" , "remote_repository_config.0.common_repository" },
394412 },
395413 "maven_repository" : {
396414 Type : schema .TypeList ,
@@ -429,7 +447,7 @@ not be validated.`,
429447 },
430448 },
431449 },
432- ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" },
450+ ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" , "remote_repository_config.0.common_repository" },
433451 },
434452 "npm_repository" : {
435453 Type : schema .TypeList ,
@@ -468,7 +486,7 @@ not be validated.`,
468486 },
469487 },
470488 },
471- ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" },
489+ ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" , "remote_repository_config.0.common_repository" },
472490 },
473491 "python_repository" : {
474492 Type : schema .TypeList ,
@@ -507,7 +525,7 @@ not be validated.`,
507525 },
508526 },
509527 },
510- ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" },
528+ ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" , "remote_repository_config.0.common_repository" },
511529 },
512530 "upstream_credentials" : {
513531 Type : schema .TypeList ,
@@ -579,7 +597,7 @@ remote repository. Must be in the format of
579597 },
580598 },
581599 },
582- ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" },
600+ ExactlyOneOf : []string {"remote_repository_config.0.apt_repository" , "remote_repository_config.0.docker_repository" , "remote_repository_config.0.maven_repository" , "remote_repository_config.0.npm_repository" , "remote_repository_config.0.python_repository" , "remote_repository_config.0.yum_repository" , "remote_repository_config.0.common_repository" },
583601 },
584602 },
585603 },
@@ -1407,6 +1425,8 @@ func flattenArtifactRegistryRepositoryRemoteRepositoryConfig(v interface{}, d *s
14071425 flattenArtifactRegistryRepositoryRemoteRepositoryConfigPythonRepository (original ["pythonRepository" ], d , config )
14081426 transformed ["yum_repository" ] =
14091427 flattenArtifactRegistryRepositoryRemoteRepositoryConfigYumRepository (original ["yumRepository" ], d , config )
1428+ transformed ["common_repository" ] =
1429+ flattenArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepository (original ["commonRepository" ], d , config )
14101430 transformed ["upstream_credentials" ] =
14111431 flattenArtifactRegistryRepositoryRemoteRepositoryConfigUpstreamCredentials (original ["upstreamCredentials" ], d , config )
14121432 transformed ["disable_upstream_validation" ] =
@@ -1649,6 +1669,23 @@ func flattenArtifactRegistryRepositoryRemoteRepositoryConfigYumRepositoryPublicR
16491669 return v
16501670}
16511671
1672+ func flattenArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepository (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1673+ if v == nil {
1674+ return nil
1675+ }
1676+ original := v .(map [string ]interface {})
1677+ if len (original ) == 0 {
1678+ return nil
1679+ }
1680+ transformed := make (map [string ]interface {})
1681+ transformed ["uri" ] =
1682+ flattenArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepositoryUri (original ["uri" ], d , config )
1683+ return []interface {}{transformed }
1684+ }
1685+ func flattenArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepositoryUri (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1686+ return v
1687+ }
1688+
16521689func flattenArtifactRegistryRepositoryRemoteRepositoryConfigUpstreamCredentials (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
16531690 if v == nil {
16541691 return nil
@@ -2075,6 +2112,13 @@ func expandArtifactRegistryRepositoryRemoteRepositoryConfig(v interface{}, d tpg
20752112 transformed ["yumRepository" ] = transformedYumRepository
20762113 }
20772114
2115+ transformedCommonRepository , err := expandArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepository (original ["common_repository" ], d , config )
2116+ if err != nil {
2117+ return nil , err
2118+ } else if val := reflect .ValueOf (transformedCommonRepository ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2119+ transformed ["commonRepository" ] = transformedCommonRepository
2120+ }
2121+
20782122 transformedUpstreamCredentials , err := expandArtifactRegistryRepositoryRemoteRepositoryConfigUpstreamCredentials (original ["upstream_credentials" ], d , config )
20792123 if err != nil {
20802124 return nil , err
@@ -2414,6 +2458,29 @@ func expandArtifactRegistryRepositoryRemoteRepositoryConfigYumRepositoryPublicRe
24142458 return v , nil
24152459}
24162460
2461+ func expandArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepository (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2462+ l := v .([]interface {})
2463+ if len (l ) == 0 || l [0 ] == nil {
2464+ return nil , nil
2465+ }
2466+ raw := l [0 ]
2467+ original := raw .(map [string ]interface {})
2468+ transformed := make (map [string ]interface {})
2469+
2470+ transformedUri , err := expandArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepositoryUri (original ["uri" ], d , config )
2471+ if err != nil {
2472+ return nil , err
2473+ } else if val := reflect .ValueOf (transformedUri ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2474+ transformed ["uri" ] = transformedUri
2475+ }
2476+
2477+ return transformed , nil
2478+ }
2479+
2480+ func expandArtifactRegistryRepositoryRemoteRepositoryConfigCommonRepositoryUri (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2481+ return v , nil
2482+ }
2483+
24172484func expandArtifactRegistryRepositoryRemoteRepositoryConfigUpstreamCredentials (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
24182485 l := v .([]interface {})
24192486 if len (l ) == 0 || l [0 ] == nil {
0 commit comments