@@ -757,6 +757,33 @@ but not pem certificate for this CA itself.`,
757
757
be activated before they can issue certificates. Default value: "SELF_SIGNED" Possible values: ["SELF_SIGNED", "SUBORDINATE"]` ,
758
758
Default : "SELF_SIGNED" ,
759
759
},
760
+ "user_defined_access_urls" : {
761
+ Type : schema .TypeList ,
762
+ Optional : true ,
763
+ Description : `Custom URLs for accessing content published by this CA, such as the CA certificate and CRLs,
764
+ that can be specified by users.` ,
765
+ MaxItems : 1 ,
766
+ Elem : & schema.Resource {
767
+ Schema : map [string ]* schema.Schema {
768
+ "aia_issuing_certificate_urls" : {
769
+ Type : schema .TypeList ,
770
+ Optional : true ,
771
+ Description : `A list of URLs where this CertificateAuthority's CA certificate is published that is specified by users.` ,
772
+ Elem : & schema.Schema {
773
+ Type : schema .TypeString ,
774
+ },
775
+ },
776
+ "crl_access_urls" : {
777
+ Type : schema .TypeList ,
778
+ Optional : true ,
779
+ Description : `A list of URLs where this CertificateAuthority's CRLs are published that is specified by users.` ,
780
+ Elem : & schema.Schema {
781
+ Type : schema .TypeString ,
782
+ },
783
+ },
784
+ },
785
+ },
786
+ },
760
787
"access_urls" : {
761
788
Type : schema .TypeList ,
762
789
Computed : true ,
@@ -902,6 +929,12 @@ func resourcePrivatecaCertificateAuthorityCreate(d *schema.ResourceData, meta in
902
929
} else if v , ok := d .GetOkExists ("gcs_bucket" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (gcsBucketProp )) && (ok || ! reflect .DeepEqual (v , gcsBucketProp )) {
903
930
obj ["gcsBucket" ] = gcsBucketProp
904
931
}
932
+ userDefinedAccessUrlsProp , err := expandPrivatecaCertificateAuthorityUserDefinedAccessUrls (d .Get ("user_defined_access_urls" ), d , config )
933
+ if err != nil {
934
+ return err
935
+ } else if v , ok := d .GetOkExists ("user_defined_access_urls" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (userDefinedAccessUrlsProp )) && (ok || ! reflect .DeepEqual (v , userDefinedAccessUrlsProp )) {
936
+ obj ["userDefinedAccessUrls" ] = userDefinedAccessUrlsProp
937
+ }
905
938
labelsProp , err := expandPrivatecaCertificateAuthorityEffectiveLabels (d .Get ("effective_labels" ), d , config )
906
939
if err != nil {
907
940
return err
@@ -1112,6 +1145,9 @@ func resourcePrivatecaCertificateAuthorityRead(d *schema.ResourceData, meta inte
1112
1145
if err := d .Set ("labels" , flattenPrivatecaCertificateAuthorityLabels (res ["labels" ], d , config )); err != nil {
1113
1146
return fmt .Errorf ("Error reading CertificateAuthority: %s" , err )
1114
1147
}
1148
+ if err := d .Set ("user_defined_access_urls" , flattenPrivatecaCertificateAuthorityUserDefinedAccessUrls (res ["userDefinedAccessUrls" ], d , config )); err != nil {
1149
+ return fmt .Errorf ("Error reading CertificateAuthority: %s" , err )
1150
+ }
1115
1151
if err := d .Set ("terraform_labels" , flattenPrivatecaCertificateAuthorityTerraformLabels (res ["labels" ], d , config )); err != nil {
1116
1152
return fmt .Errorf ("Error reading CertificateAuthority: %s" , err )
1117
1153
}
@@ -1144,6 +1180,12 @@ func resourcePrivatecaCertificateAuthorityUpdate(d *schema.ResourceData, meta in
1144
1180
} else if v , ok := d .GetOkExists ("subordinate_config" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , subordinateConfigProp )) {
1145
1181
obj ["subordinateConfig" ] = subordinateConfigProp
1146
1182
}
1183
+ userDefinedAccessUrlsProp , err := expandPrivatecaCertificateAuthorityUserDefinedAccessUrls (d .Get ("user_defined_access_urls" ), d , config )
1184
+ if err != nil {
1185
+ return err
1186
+ } else if v , ok := d .GetOkExists ("user_defined_access_urls" ); ! tpgresource .IsEmptyValue (reflect .ValueOf (v )) && (ok || ! reflect .DeepEqual (v , userDefinedAccessUrlsProp )) {
1187
+ obj ["userDefinedAccessUrls" ] = userDefinedAccessUrlsProp
1188
+ }
1147
1189
labelsProp , err := expandPrivatecaCertificateAuthorityEffectiveLabels (d .Get ("effective_labels" ), d , config )
1148
1190
if err != nil {
1149
1191
return err
@@ -1164,6 +1206,10 @@ func resourcePrivatecaCertificateAuthorityUpdate(d *schema.ResourceData, meta in
1164
1206
updateMask = append (updateMask , "subordinateConfig" )
1165
1207
}
1166
1208
1209
+ if d .HasChange ("user_defined_access_urls" ) {
1210
+ updateMask = append (updateMask , "userDefinedAccessUrls" )
1211
+ }
1212
+
1167
1213
if d .HasChange ("effective_labels" ) {
1168
1214
updateMask = append (updateMask , "labels" )
1169
1215
}
@@ -1675,6 +1721,29 @@ func flattenPrivatecaCertificateAuthorityLabels(v interface{}, d *schema.Resourc
1675
1721
return transformed
1676
1722
}
1677
1723
1724
+ func flattenPrivatecaCertificateAuthorityUserDefinedAccessUrls (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1725
+ if v == nil {
1726
+ return nil
1727
+ }
1728
+ original := v .(map [string ]interface {})
1729
+ if len (original ) == 0 {
1730
+ return nil
1731
+ }
1732
+ transformed := make (map [string ]interface {})
1733
+ transformed ["aia_issuing_certificate_urls" ] =
1734
+ flattenPrivatecaCertificateAuthorityUserDefinedAccessUrlsAiaIssuingCertificateUrls (original ["aiaIssuingCertificateUrls" ], d , config )
1735
+ transformed ["crl_access_urls" ] =
1736
+ flattenPrivatecaCertificateAuthorityUserDefinedAccessUrlsCrlAccessUrls (original ["crlAccessUrls" ], d , config )
1737
+ return []interface {}{transformed }
1738
+ }
1739
+ func flattenPrivatecaCertificateAuthorityUserDefinedAccessUrlsAiaIssuingCertificateUrls (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1740
+ return v
1741
+ }
1742
+
1743
+ func flattenPrivatecaCertificateAuthorityUserDefinedAccessUrlsCrlAccessUrls (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1744
+ return v
1745
+ }
1746
+
1678
1747
func flattenPrivatecaCertificateAuthorityTerraformLabels (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1679
1748
if v == nil {
1680
1749
return v
@@ -2084,6 +2153,40 @@ func expandPrivatecaCertificateAuthorityGcsBucket(v interface{}, d tpgresource.T
2084
2153
return v , nil
2085
2154
}
2086
2155
2156
+ func expandPrivatecaCertificateAuthorityUserDefinedAccessUrls (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2157
+ l := v .([]interface {})
2158
+ if len (l ) == 0 || l [0 ] == nil {
2159
+ return nil , nil
2160
+ }
2161
+ raw := l [0 ]
2162
+ original := raw .(map [string ]interface {})
2163
+ transformed := make (map [string ]interface {})
2164
+
2165
+ transformedAiaIssuingCertificateUrls , err := expandPrivatecaCertificateAuthorityUserDefinedAccessUrlsAiaIssuingCertificateUrls (original ["aia_issuing_certificate_urls" ], d , config )
2166
+ if err != nil {
2167
+ return nil , err
2168
+ } else if val := reflect .ValueOf (transformedAiaIssuingCertificateUrls ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2169
+ transformed ["aiaIssuingCertificateUrls" ] = transformedAiaIssuingCertificateUrls
2170
+ }
2171
+
2172
+ transformedCrlAccessUrls , err := expandPrivatecaCertificateAuthorityUserDefinedAccessUrlsCrlAccessUrls (original ["crl_access_urls" ], d , config )
2173
+ if err != nil {
2174
+ return nil , err
2175
+ } else if val := reflect .ValueOf (transformedCrlAccessUrls ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
2176
+ transformed ["crlAccessUrls" ] = transformedCrlAccessUrls
2177
+ }
2178
+
2179
+ return transformed , nil
2180
+ }
2181
+
2182
+ func expandPrivatecaCertificateAuthorityUserDefinedAccessUrlsAiaIssuingCertificateUrls (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2183
+ return v , nil
2184
+ }
2185
+
2186
+ func expandPrivatecaCertificateAuthorityUserDefinedAccessUrlsCrlAccessUrls (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
2187
+ return v , nil
2188
+ }
2189
+
2087
2190
func expandPrivatecaCertificateAuthorityEffectiveLabels (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (map [string ]string , error ) {
2088
2191
if v == nil {
2089
2192
return map [string ]string {}, nil
0 commit comments