@@ -128,6 +128,12 @@ The limit is 64 IP ranges/addresses for each FileShareConfig among all NfsExport
128128 Type : schema .TypeString ,
129129 },
130130 },
131+ "network" : {
132+ Type : schema .TypeString ,
133+ Optional : true ,
134+ Description : `The source VPC network for 'ip_ranges'.
135+ Required for instances using Private Service Connect, optional otherwise.` ,
136+ },
131137 "squash_mode" : {
132138 Type : schema .TypeString ,
133139 Optional : true ,
@@ -193,6 +199,26 @@ If not provided, the connect mode defaults to
193199DIRECT_PEERING. Default value: "DIRECT_PEERING" Possible values: ["DIRECT_PEERING", "PRIVATE_SERVICE_ACCESS", "PRIVATE_SERVICE_CONNECT"]` ,
194200 Default : "DIRECT_PEERING" ,
195201 },
202+ "psc_config" : {
203+ Type : schema .TypeList ,
204+ Optional : true ,
205+ Description : `Private Service Connect configuration.
206+ Should only be set when connect_mode is PRIVATE_SERVICE_CONNECT.` ,
207+ MaxItems : 1 ,
208+ Elem : & schema.Resource {
209+ Schema : map [string ]* schema.Schema {
210+ "endpoint_project" : {
211+ Type : schema .TypeString ,
212+ Optional : true ,
213+ ForceNew : true ,
214+ Description : `Consumer service project in which the Private Service Connect endpoint
215+ would be set up. This is optional, and only relevant in case the network
216+ is a shared VPC. If this is not specified, the endpoint would be set up
217+ in the VPC host project.` ,
218+ },
219+ },
220+ },
221+ },
196222 "reserved_ip_range" : {
197223 Type : schema .TypeString ,
198224 Computed : true ,
@@ -1012,6 +1038,7 @@ func flattenFilestoreInstanceFileSharesNfsExportOptions(v interface{}, d *schema
10121038 "squash_mode" : flattenFilestoreInstanceFileSharesNfsExportOptionsSquashMode (original ["squashMode" ], d , config ),
10131039 "anon_uid" : flattenFilestoreInstanceFileSharesNfsExportOptionsAnonUid (original ["anonUid" ], d , config ),
10141040 "anon_gid" : flattenFilestoreInstanceFileSharesNfsExportOptionsAnonGid (original ["anonGid" ], d , config ),
1041+ "network" : flattenFilestoreInstanceFileSharesNfsExportOptionsNetwork (original ["network" ], d , config ),
10151042 })
10161043 }
10171044 return transformed
@@ -1062,6 +1089,10 @@ func flattenFilestoreInstanceFileSharesNfsExportOptionsAnonGid(v interface{}, d
10621089 return v // let terraform core handle it otherwise
10631090}
10641091
1092+ func flattenFilestoreInstanceFileSharesNfsExportOptionsNetwork (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1093+ return v
1094+ }
1095+
10651096func flattenFilestoreInstanceNetworks (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
10661097 if v == nil {
10671098 return v
@@ -1080,6 +1111,7 @@ func flattenFilestoreInstanceNetworks(v interface{}, d *schema.ResourceData, con
10801111 "reserved_ip_range" : flattenFilestoreInstanceNetworksReservedIpRange (original ["reservedIpRange" ], d , config ),
10811112 "ip_addresses" : flattenFilestoreInstanceNetworksIpAddresses (original ["ipAddresses" ], d , config ),
10821113 "connect_mode" : flattenFilestoreInstanceNetworksConnectMode (original ["connectMode" ], d , config ),
1114+ "psc_config" : flattenFilestoreInstanceNetworksPscConfig (original ["pscConfig" ], d , config ),
10831115 })
10841116 }
10851117 return transformed
@@ -1108,6 +1140,23 @@ func flattenFilestoreInstanceNetworksConnectMode(v interface{}, d *schema.Resour
11081140 return v
11091141}
11101142
1143+ func flattenFilestoreInstanceNetworksPscConfig (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1144+ if v == nil {
1145+ return nil
1146+ }
1147+ original := v .(map [string ]interface {})
1148+ if len (original ) == 0 {
1149+ return nil
1150+ }
1151+ transformed := make (map [string ]interface {})
1152+ transformed ["endpoint_project" ] =
1153+ flattenFilestoreInstanceNetworksPscConfigEndpointProject (original ["endpointProject" ], d , config )
1154+ return []interface {}{transformed }
1155+ }
1156+ func flattenFilestoreInstanceNetworksPscConfigEndpointProject (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
1157+ return v
1158+ }
1159+
11111160func flattenFilestoreInstanceEtag (v interface {}, d * schema.ResourceData , config * transport_tpg.Config ) interface {} {
11121161 return v
11131162}
@@ -1392,6 +1441,13 @@ func expandFilestoreInstanceFileSharesNfsExportOptions(v interface{}, d tpgresou
13921441 transformed ["anonGid" ] = transformedAnonGid
13931442 }
13941443
1444+ transformedNetwork , err := expandFilestoreInstanceFileSharesNfsExportOptionsNetwork (original ["network" ], d , config )
1445+ if err != nil {
1446+ return nil , err
1447+ } else if val := reflect .ValueOf (transformedNetwork ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
1448+ transformed ["network" ] = transformedNetwork
1449+ }
1450+
13951451 req = append (req , transformed )
13961452 }
13971453 return req , nil
@@ -1417,6 +1473,10 @@ func expandFilestoreInstanceFileSharesNfsExportOptionsAnonGid(v interface{}, d t
14171473 return v , nil
14181474}
14191475
1476+ func expandFilestoreInstanceFileSharesNfsExportOptionsNetwork (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
1477+ return v , nil
1478+ }
1479+
14201480func expandFilestoreInstanceNetworks (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
14211481 if v == nil {
14221482 return nil , nil
@@ -1465,6 +1525,13 @@ func expandFilestoreInstanceNetworks(v interface{}, d tpgresource.TerraformResou
14651525 transformed ["connectMode" ] = transformedConnectMode
14661526 }
14671527
1528+ transformedPscConfig , err := expandFilestoreInstanceNetworksPscConfig (original ["psc_config" ], d , config )
1529+ if err != nil {
1530+ return nil , err
1531+ } else if val := reflect .ValueOf (transformedPscConfig ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
1532+ transformed ["pscConfig" ] = transformedPscConfig
1533+ }
1534+
14681535 req = append (req , transformed )
14691536 }
14701537 return req , nil
@@ -1490,6 +1557,32 @@ func expandFilestoreInstanceNetworksConnectMode(v interface{}, d tpgresource.Ter
14901557 return v , nil
14911558}
14921559
1560+ func expandFilestoreInstanceNetworksPscConfig (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
1561+ if v == nil {
1562+ return nil , nil
1563+ }
1564+ l := v .([]interface {})
1565+ if len (l ) == 0 || l [0 ] == nil {
1566+ return nil , nil
1567+ }
1568+ raw := l [0 ]
1569+ original := raw .(map [string ]interface {})
1570+ transformed := make (map [string ]interface {})
1571+
1572+ transformedEndpointProject , err := expandFilestoreInstanceNetworksPscConfigEndpointProject (original ["endpoint_project" ], d , config )
1573+ if err != nil {
1574+ return nil , err
1575+ } else if val := reflect .ValueOf (transformedEndpointProject ); val .IsValid () && ! tpgresource .IsEmptyValue (val ) {
1576+ transformed ["endpointProject" ] = transformedEndpointProject
1577+ }
1578+
1579+ return transformed , nil
1580+ }
1581+
1582+ func expandFilestoreInstanceNetworksPscConfigEndpointProject (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
1583+ return v , nil
1584+ }
1585+
14931586func expandFilestoreInstanceKmsKeyName (v interface {}, d tpgresource.TerraformResourceData , config * transport_tpg.Config ) (interface {}, error ) {
14941587 return v , nil
14951588}
0 commit comments