pulumi-gcp 8.2.0a1726671837__py3-none-any.whl → 8.3.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. pulumi_gcp/__init__.py +158 -0
  2. pulumi_gcp/alloydb/_inputs.py +20 -0
  3. pulumi_gcp/alloydb/instance.py +36 -0
  4. pulumi_gcp/alloydb/outputs.py +14 -0
  5. pulumi_gcp/bigquery/__init__.py +1 -0
  6. pulumi_gcp/bigquery/get_tables.py +143 -0
  7. pulumi_gcp/bigquery/outputs.py +30 -0
  8. pulumi_gcp/compute/__init__.py +2 -0
  9. pulumi_gcp/compute/_inputs.py +12481 -9158
  10. pulumi_gcp/compute/attached_disk.py +103 -0
  11. pulumi_gcp/compute/backend_service.py +29 -22
  12. pulumi_gcp/compute/firewall_policy_with_rules.py +769 -0
  13. pulumi_gcp/compute/get_instance.py +3 -0
  14. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  15. pulumi_gcp/compute/outputs.py +3695 -1293
  16. pulumi_gcp/compute/region_backend_service.py +29 -22
  17. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  18. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  19. pulumi_gcp/compute/router_nat.py +27 -66
  20. pulumi_gcp/compute/service_attachment.py +75 -0
  21. pulumi_gcp/compute/target_http_proxy.py +49 -28
  22. pulumi_gcp/compute/target_https_proxy.py +49 -28
  23. pulumi_gcp/config/__init__.pyi +6 -0
  24. pulumi_gcp/config/vars.py +12 -0
  25. pulumi_gcp/container/_inputs.py +168 -99
  26. pulumi_gcp/container/attached_cluster.py +54 -1
  27. pulumi_gcp/container/outputs.py +155 -70
  28. pulumi_gcp/databasemigrationservice/__init__.py +1 -0
  29. pulumi_gcp/databasemigrationservice/_inputs.py +362 -0
  30. pulumi_gcp/databasemigrationservice/migration_job.py +1739 -0
  31. pulumi_gcp/databasemigrationservice/outputs.py +268 -0
  32. pulumi_gcp/dataproc/get_metastore_service.py +11 -1
  33. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  34. pulumi_gcp/dataproc/metastore_service.py +95 -0
  35. pulumi_gcp/datastream/stream.py +21 -14
  36. pulumi_gcp/developerconnect/__init__.py +11 -0
  37. pulumi_gcp/developerconnect/_inputs.py +304 -0
  38. pulumi_gcp/developerconnect/connection.py +1037 -0
  39. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  40. pulumi_gcp/developerconnect/outputs.py +249 -0
  41. pulumi_gcp/discoveryengine/__init__.py +1 -0
  42. pulumi_gcp/discoveryengine/_inputs.py +131 -0
  43. pulumi_gcp/discoveryengine/outputs.py +131 -0
  44. pulumi_gcp/discoveryengine/target_site.py +870 -0
  45. pulumi_gcp/dns/managed_zone.py +1 -1
  46. pulumi_gcp/filestore/get_instance.py +21 -1
  47. pulumi_gcp/filestore/instance.py +94 -0
  48. pulumi_gcp/gkehub/feature_membership.py +140 -62
  49. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  50. pulumi_gcp/gkeonprem/outputs.py +2 -2
  51. pulumi_gcp/healthcare/__init__.py +1 -0
  52. pulumi_gcp/healthcare/_inputs.py +39 -0
  53. pulumi_gcp/healthcare/outputs.py +40 -0
  54. pulumi_gcp/healthcare/workspace.py +465 -0
  55. pulumi_gcp/looker/instance.py +81 -0
  56. pulumi_gcp/memorystore/__init__.py +10 -0
  57. pulumi_gcp/memorystore/_inputs.py +731 -0
  58. pulumi_gcp/memorystore/instance.py +1663 -0
  59. pulumi_gcp/memorystore/outputs.py +598 -0
  60. pulumi_gcp/netapp/_inputs.py +63 -0
  61. pulumi_gcp/netapp/outputs.py +57 -0
  62. pulumi_gcp/netapp/storage_pool.py +54 -0
  63. pulumi_gcp/netapp/volume.py +183 -0
  64. pulumi_gcp/organizations/folder.py +52 -33
  65. pulumi_gcp/provider.py +60 -0
  66. pulumi_gcp/pubsub/subscription.py +43 -7
  67. pulumi_gcp/pulumi-plugin.json +1 -1
  68. pulumi_gcp/secretmanager/__init__.py +8 -0
  69. pulumi_gcp/secretmanager/_inputs.py +308 -0
  70. pulumi_gcp/secretmanager/get_regional_secret.py +279 -0
  71. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +173 -0
  72. pulumi_gcp/secretmanager/get_regional_secret_version.py +241 -0
  73. pulumi_gcp/secretmanager/outputs.py +336 -0
  74. pulumi_gcp/secretmanager/regional_secret.py +1433 -0
  75. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +1082 -0
  76. pulumi_gcp/secretmanager/regional_secret_iam_member.py +1082 -0
  77. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +901 -0
  78. pulumi_gcp/secretmanager/regional_secret_version.py +753 -0
  79. pulumi_gcp/securitycenter/__init__.py +4 -0
  80. pulumi_gcp/securitycenter/folder_scc_big_query_export.py +795 -0
  81. pulumi_gcp/securitycenter/organization_scc_big_query_export.py +738 -0
  82. pulumi_gcp/securitycenter/project_scc_big_query_export.py +749 -0
  83. pulumi_gcp/securitycenter/v2_organization_scc_big_query_export.py +862 -0
  84. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +6 -2
  85. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  86. pulumi_gcp/siteverification/__init__.py +3 -0
  87. pulumi_gcp/siteverification/_inputs.py +85 -0
  88. pulumi_gcp/siteverification/outputs.py +57 -0
  89. pulumi_gcp/siteverification/web_resource.py +398 -0
  90. pulumi_gcp/spanner/__init__.py +1 -0
  91. pulumi_gcp/spanner/_inputs.py +129 -0
  92. pulumi_gcp/spanner/backup_schedule.py +748 -0
  93. pulumi_gcp/spanner/get_instance.py +11 -1
  94. pulumi_gcp/spanner/instance.py +56 -0
  95. pulumi_gcp/spanner/outputs.py +93 -0
  96. pulumi_gcp/vpcaccess/connector.py +21 -28
  97. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/METADATA +1 -1
  98. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/RECORD +100 -69
  99. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/WHEEL +0 -0
  100. {pulumi_gcp-8.2.0a1726671837.dist-info → pulumi_gcp-8.3.0.dist-info}/top_level.txt +0 -0
@@ -22,6 +22,7 @@ class RegionTargetHttpsProxyArgs:
22
22
  url_map: pulumi.Input[str],
23
23
  certificate_manager_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
24
24
  description: Optional[pulumi.Input[str]] = None,
25
+ http_keep_alive_timeout_sec: Optional[pulumi.Input[int]] = None,
25
26
  name: Optional[pulumi.Input[str]] = None,
26
27
  project: Optional[pulumi.Input[str]] = None,
27
28
  region: Optional[pulumi.Input[str]] = None,
@@ -39,6 +40,11 @@ class RegionTargetHttpsProxyArgs:
39
40
  sslCertificates and certificateManagerCertificates can't be defined together.
40
41
  Accepted format is `//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificates/{resourceName}` or just the self_link `projects/{project}/locations/{location}/certificates/{resourceName}`
41
42
  :param pulumi.Input[str] description: An optional description of this resource.
43
+ :param pulumi.Input[int] http_keep_alive_timeout_sec: Specifies how long to keep a connection open, after completing a response,
44
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
45
+ not specified, a default value (600 seconds) will be used. For Regioanl
46
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
47
+ maximum allowed value is 600 seconds.
42
48
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is
43
49
  created. The name must be 1-63 characters long, and comply with
44
50
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -75,6 +81,8 @@ class RegionTargetHttpsProxyArgs:
75
81
  pulumi.set(__self__, "certificate_manager_certificates", certificate_manager_certificates)
76
82
  if description is not None:
77
83
  pulumi.set(__self__, "description", description)
84
+ if http_keep_alive_timeout_sec is not None:
85
+ pulumi.set(__self__, "http_keep_alive_timeout_sec", http_keep_alive_timeout_sec)
78
86
  if name is not None:
79
87
  pulumi.set(__self__, "name", name)
80
88
  if project is not None:
@@ -130,6 +138,22 @@ class RegionTargetHttpsProxyArgs:
130
138
  def description(self, value: Optional[pulumi.Input[str]]):
131
139
  pulumi.set(self, "description", value)
132
140
 
141
+ @property
142
+ @pulumi.getter(name="httpKeepAliveTimeoutSec")
143
+ def http_keep_alive_timeout_sec(self) -> Optional[pulumi.Input[int]]:
144
+ """
145
+ Specifies how long to keep a connection open, after completing a response,
146
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
147
+ not specified, a default value (600 seconds) will be used. For Regioanl
148
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
149
+ maximum allowed value is 600 seconds.
150
+ """
151
+ return pulumi.get(self, "http_keep_alive_timeout_sec")
152
+
153
+ @http_keep_alive_timeout_sec.setter
154
+ def http_keep_alive_timeout_sec(self, value: Optional[pulumi.Input[int]]):
155
+ pulumi.set(self, "http_keep_alive_timeout_sec", value)
156
+
133
157
  @property
134
158
  @pulumi.getter
135
159
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -233,6 +257,7 @@ class _RegionTargetHttpsProxyState:
233
257
  certificate_manager_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
234
258
  creation_timestamp: Optional[pulumi.Input[str]] = None,
235
259
  description: Optional[pulumi.Input[str]] = None,
260
+ http_keep_alive_timeout_sec: Optional[pulumi.Input[int]] = None,
236
261
  name: Optional[pulumi.Input[str]] = None,
237
262
  project: Optional[pulumi.Input[str]] = None,
238
263
  proxy_id: Optional[pulumi.Input[int]] = None,
@@ -249,6 +274,11 @@ class _RegionTargetHttpsProxyState:
249
274
  Accepted format is `//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificates/{resourceName}` or just the self_link `projects/{project}/locations/{location}/certificates/{resourceName}`
250
275
  :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
251
276
  :param pulumi.Input[str] description: An optional description of this resource.
277
+ :param pulumi.Input[int] http_keep_alive_timeout_sec: Specifies how long to keep a connection open, after completing a response,
278
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
279
+ not specified, a default value (600 seconds) will be used. For Regioanl
280
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
281
+ maximum allowed value is 600 seconds.
252
282
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is
253
283
  created. The name must be 1-63 characters long, and comply with
254
284
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -293,6 +323,8 @@ class _RegionTargetHttpsProxyState:
293
323
  pulumi.set(__self__, "creation_timestamp", creation_timestamp)
294
324
  if description is not None:
295
325
  pulumi.set(__self__, "description", description)
326
+ if http_keep_alive_timeout_sec is not None:
327
+ pulumi.set(__self__, "http_keep_alive_timeout_sec", http_keep_alive_timeout_sec)
296
328
  if name is not None:
297
329
  pulumi.set(__self__, "name", name)
298
330
  if project is not None:
@@ -350,6 +382,22 @@ class _RegionTargetHttpsProxyState:
350
382
  def description(self, value: Optional[pulumi.Input[str]]):
351
383
  pulumi.set(self, "description", value)
352
384
 
385
+ @property
386
+ @pulumi.getter(name="httpKeepAliveTimeoutSec")
387
+ def http_keep_alive_timeout_sec(self) -> Optional[pulumi.Input[int]]:
388
+ """
389
+ Specifies how long to keep a connection open, after completing a response,
390
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
391
+ not specified, a default value (600 seconds) will be used. For Regioanl
392
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
393
+ maximum allowed value is 600 seconds.
394
+ """
395
+ return pulumi.get(self, "http_keep_alive_timeout_sec")
396
+
397
+ @http_keep_alive_timeout_sec.setter
398
+ def http_keep_alive_timeout_sec(self, value: Optional[pulumi.Input[int]]):
399
+ pulumi.set(self, "http_keep_alive_timeout_sec", value)
400
+
353
401
  @property
354
402
  @pulumi.getter
355
403
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -494,6 +542,7 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
494
542
  opts: Optional[pulumi.ResourceOptions] = None,
495
543
  certificate_manager_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
496
544
  description: Optional[pulumi.Input[str]] = None,
545
+ http_keep_alive_timeout_sec: Optional[pulumi.Input[int]] = None,
497
546
  name: Optional[pulumi.Input[str]] = None,
498
547
  project: Optional[pulumi.Input[str]] = None,
499
548
  region: Optional[pulumi.Input[str]] = None,
@@ -562,6 +611,56 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
562
611
  url_map=default_region_url_map.id,
563
612
  ssl_certificates=[default_region_ssl_certificate.id])
564
613
  ```
614
+ ### Region Target Https Proxy Http Keep Alive Timeout
615
+
616
+ ```python
617
+ import pulumi
618
+ import pulumi_gcp as gcp
619
+ import pulumi_std as std
620
+
621
+ default_region_ssl_certificate = gcp.compute.RegionSslCertificate("default",
622
+ region="us-central1",
623
+ name="my-certificate",
624
+ private_key=std.file(input="path/to/private.key").result,
625
+ certificate=std.file(input="path/to/certificate.crt").result)
626
+ default_region_health_check = gcp.compute.RegionHealthCheck("default",
627
+ region="us-central1",
628
+ name="http-health-check",
629
+ http_health_check={
630
+ "port": 80,
631
+ })
632
+ default_region_backend_service = gcp.compute.RegionBackendService("default",
633
+ region="us-central1",
634
+ name="backend-service",
635
+ port_name="http",
636
+ protocol="HTTP",
637
+ timeout_sec=10,
638
+ load_balancing_scheme="INTERNAL_MANAGED",
639
+ health_checks=default_region_health_check.id)
640
+ default_region_url_map = gcp.compute.RegionUrlMap("default",
641
+ region="us-central1",
642
+ name="url-map",
643
+ description="a description",
644
+ default_service=default_region_backend_service.id,
645
+ host_rules=[{
646
+ "hosts": ["mysite.com"],
647
+ "path_matcher": "allpaths",
648
+ }],
649
+ path_matchers=[{
650
+ "name": "allpaths",
651
+ "default_service": default_region_backend_service.id,
652
+ "path_rules": [{
653
+ "paths": ["/*"],
654
+ "service": default_region_backend_service.id,
655
+ }],
656
+ }])
657
+ default = gcp.compute.RegionTargetHttpsProxy("default",
658
+ region="us-central1",
659
+ name="test-http-keep-alive-timeout-proxy",
660
+ http_keep_alive_timeout_sec=600,
661
+ url_map=default_region_url_map.id,
662
+ ssl_certificates=[default_region_ssl_certificate.id])
663
+ ```
565
664
  ### Region Target Https Proxy Mtls
566
665
 
567
666
  ```python
@@ -705,6 +804,11 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
705
804
  sslCertificates and certificateManagerCertificates can't be defined together.
706
805
  Accepted format is `//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificates/{resourceName}` or just the self_link `projects/{project}/locations/{location}/certificates/{resourceName}`
707
806
  :param pulumi.Input[str] description: An optional description of this resource.
807
+ :param pulumi.Input[int] http_keep_alive_timeout_sec: Specifies how long to keep a connection open, after completing a response,
808
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
809
+ not specified, a default value (600 seconds) will be used. For Regioanl
810
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
811
+ maximum allowed value is 600 seconds.
708
812
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is
709
813
  created. The name must be 1-63 characters long, and comply with
710
814
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -807,6 +911,56 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
807
911
  url_map=default_region_url_map.id,
808
912
  ssl_certificates=[default_region_ssl_certificate.id])
809
913
  ```
914
+ ### Region Target Https Proxy Http Keep Alive Timeout
915
+
916
+ ```python
917
+ import pulumi
918
+ import pulumi_gcp as gcp
919
+ import pulumi_std as std
920
+
921
+ default_region_ssl_certificate = gcp.compute.RegionSslCertificate("default",
922
+ region="us-central1",
923
+ name="my-certificate",
924
+ private_key=std.file(input="path/to/private.key").result,
925
+ certificate=std.file(input="path/to/certificate.crt").result)
926
+ default_region_health_check = gcp.compute.RegionHealthCheck("default",
927
+ region="us-central1",
928
+ name="http-health-check",
929
+ http_health_check={
930
+ "port": 80,
931
+ })
932
+ default_region_backend_service = gcp.compute.RegionBackendService("default",
933
+ region="us-central1",
934
+ name="backend-service",
935
+ port_name="http",
936
+ protocol="HTTP",
937
+ timeout_sec=10,
938
+ load_balancing_scheme="INTERNAL_MANAGED",
939
+ health_checks=default_region_health_check.id)
940
+ default_region_url_map = gcp.compute.RegionUrlMap("default",
941
+ region="us-central1",
942
+ name="url-map",
943
+ description="a description",
944
+ default_service=default_region_backend_service.id,
945
+ host_rules=[{
946
+ "hosts": ["mysite.com"],
947
+ "path_matcher": "allpaths",
948
+ }],
949
+ path_matchers=[{
950
+ "name": "allpaths",
951
+ "default_service": default_region_backend_service.id,
952
+ "path_rules": [{
953
+ "paths": ["/*"],
954
+ "service": default_region_backend_service.id,
955
+ }],
956
+ }])
957
+ default = gcp.compute.RegionTargetHttpsProxy("default",
958
+ region="us-central1",
959
+ name="test-http-keep-alive-timeout-proxy",
960
+ http_keep_alive_timeout_sec=600,
961
+ url_map=default_region_url_map.id,
962
+ ssl_certificates=[default_region_ssl_certificate.id])
963
+ ```
810
964
  ### Region Target Https Proxy Mtls
811
965
 
812
966
  ```python
@@ -961,6 +1115,7 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
961
1115
  opts: Optional[pulumi.ResourceOptions] = None,
962
1116
  certificate_manager_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
963
1117
  description: Optional[pulumi.Input[str]] = None,
1118
+ http_keep_alive_timeout_sec: Optional[pulumi.Input[int]] = None,
964
1119
  name: Optional[pulumi.Input[str]] = None,
965
1120
  project: Optional[pulumi.Input[str]] = None,
966
1121
  region: Optional[pulumi.Input[str]] = None,
@@ -979,6 +1134,7 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
979
1134
 
980
1135
  __props__.__dict__["certificate_manager_certificates"] = certificate_manager_certificates
981
1136
  __props__.__dict__["description"] = description
1137
+ __props__.__dict__["http_keep_alive_timeout_sec"] = http_keep_alive_timeout_sec
982
1138
  __props__.__dict__["name"] = name
983
1139
  __props__.__dict__["project"] = project
984
1140
  __props__.__dict__["region"] = region
@@ -1004,6 +1160,7 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
1004
1160
  certificate_manager_certificates: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1005
1161
  creation_timestamp: Optional[pulumi.Input[str]] = None,
1006
1162
  description: Optional[pulumi.Input[str]] = None,
1163
+ http_keep_alive_timeout_sec: Optional[pulumi.Input[int]] = None,
1007
1164
  name: Optional[pulumi.Input[str]] = None,
1008
1165
  project: Optional[pulumi.Input[str]] = None,
1009
1166
  proxy_id: Optional[pulumi.Input[int]] = None,
@@ -1025,6 +1182,11 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
1025
1182
  Accepted format is `//certificatemanager.googleapis.com/projects/{project}/locations/{location}/certificates/{resourceName}` or just the self_link `projects/{project}/locations/{location}/certificates/{resourceName}`
1026
1183
  :param pulumi.Input[str] creation_timestamp: Creation timestamp in RFC3339 text format.
1027
1184
  :param pulumi.Input[str] description: An optional description of this resource.
1185
+ :param pulumi.Input[int] http_keep_alive_timeout_sec: Specifies how long to keep a connection open, after completing a response,
1186
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
1187
+ not specified, a default value (600 seconds) will be used. For Regioanl
1188
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
1189
+ maximum allowed value is 600 seconds.
1028
1190
  :param pulumi.Input[str] name: Name of the resource. Provided by the client when the resource is
1029
1191
  created. The name must be 1-63 characters long, and comply with
1030
1192
  RFC1035. Specifically, the name must be 1-63 characters long and match
@@ -1070,6 +1232,7 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
1070
1232
  __props__.__dict__["certificate_manager_certificates"] = certificate_manager_certificates
1071
1233
  __props__.__dict__["creation_timestamp"] = creation_timestamp
1072
1234
  __props__.__dict__["description"] = description
1235
+ __props__.__dict__["http_keep_alive_timeout_sec"] = http_keep_alive_timeout_sec
1073
1236
  __props__.__dict__["name"] = name
1074
1237
  __props__.__dict__["project"] = project
1075
1238
  __props__.__dict__["proxy_id"] = proxy_id
@@ -1107,6 +1270,18 @@ class RegionTargetHttpsProxy(pulumi.CustomResource):
1107
1270
  """
1108
1271
  return pulumi.get(self, "description")
1109
1272
 
1273
+ @property
1274
+ @pulumi.getter(name="httpKeepAliveTimeoutSec")
1275
+ def http_keep_alive_timeout_sec(self) -> pulumi.Output[Optional[int]]:
1276
+ """
1277
+ Specifies how long to keep a connection open, after completing a response,
1278
+ while there is no matching traffic (in seconds). If an HTTP keepalive is
1279
+ not specified, a default value (600 seconds) will be used. For Regioanl
1280
+ HTTP(S) load balancer, the minimum allowed value is 5 seconds and the
1281
+ maximum allowed value is 600 seconds.
1282
+ """
1283
+ return pulumi.get(self, "http_keep_alive_timeout_sec")
1284
+
1110
1285
  @property
1111
1286
  @pulumi.getter
1112
1287
  def name(self) -> pulumi.Output[str]:
@@ -93,6 +93,9 @@ class RouterNatArgs:
93
93
  Possible values are: `MANUAL_ONLY`, `AUTO_ONLY`.
94
94
  :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_ips: Self-links of NAT IPs. Only valid if natIpAllocateOption
95
95
  is set to MANUAL_ONLY.
96
+ If this field is used alongside with a count created list of address resources `google_compute_address.foobar.*.self_link`,
97
+ the access level resource for the address resource must have a `lifecycle` block with `create_before_destroy = true` so
98
+ the number of resources can be increased/decreased without triggering the `resourceInUseByAnotherResource` error.
96
99
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
97
100
  If it is not provided, the provider project is used.
98
101
  :param pulumi.Input[str] region: Region where the router and NAT reside.
@@ -354,6 +357,9 @@ class RouterNatArgs:
354
357
  """
355
358
  Self-links of NAT IPs. Only valid if natIpAllocateOption
356
359
  is set to MANUAL_ONLY.
360
+ If this field is used alongside with a count created list of address resources `google_compute_address.foobar.*.self_link`,
361
+ the access level resource for the address resource must have a `lifecycle` block with `create_before_destroy = true` so
362
+ the number of resources can be increased/decreased without triggering the `resourceInUseByAnotherResource` error.
357
363
  """
358
364
  return pulumi.get(self, "nat_ips")
359
365
 
@@ -542,6 +548,9 @@ class _RouterNatState:
542
548
  Possible values are: `MANUAL_ONLY`, `AUTO_ONLY`.
543
549
  :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_ips: Self-links of NAT IPs. Only valid if natIpAllocateOption
544
550
  is set to MANUAL_ONLY.
551
+ If this field is used alongside with a count created list of address resources `google_compute_address.foobar.*.self_link`,
552
+ the access level resource for the address resource must have a `lifecycle` block with `create_before_destroy = true` so
553
+ the number of resources can be increased/decreased without triggering the `resourceInUseByAnotherResource` error.
545
554
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
546
555
  If it is not provided, the provider project is used.
547
556
  :param pulumi.Input[str] region: Region where the router and NAT reside.
@@ -783,6 +792,9 @@ class _RouterNatState:
783
792
  """
784
793
  Self-links of NAT IPs. Only valid if natIpAllocateOption
785
794
  is set to MANUAL_ONLY.
795
+ If this field is used alongside with a count created list of address resources `google_compute_address.foobar.*.self_link`,
796
+ the access level resource for the address resource must have a `lifecycle` block with `create_before_destroy = true` so
797
+ the number of resources can be increased/decreased without triggering the `resourceInUseByAnotherResource` error.
786
798
  """
787
799
  return pulumi.get(self, "nat_ips")
788
800
 
@@ -980,6 +992,9 @@ class RouterNat(pulumi.CustomResource):
980
992
  """
981
993
  A NAT service created in a router.
982
994
 
995
+ > **Note:** Recreating a `compute.Address` that is being used by `compute.RouterNat` will give a `resourceInUseByAnotherResource` error.
996
+ Use `lifecycle.create_before_destroy` on this address resource to avoid this type of error as shown in the Manual Ips example.
997
+
983
998
  To get more information about RouterNat, see:
984
999
 
985
1000
  * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/routers)
@@ -1018,39 +1033,6 @@ class RouterNat(pulumi.CustomResource):
1018
1033
  "filter": "ERRORS_ONLY",
1019
1034
  })
1020
1035
  ```
1021
- ### Router Nat Manual Ips
1022
-
1023
- ```python
1024
- import pulumi
1025
- import pulumi_gcp as gcp
1026
-
1027
- net = gcp.compute.Network("net", name="my-network")
1028
- subnet = gcp.compute.Subnetwork("subnet",
1029
- name="my-subnetwork",
1030
- network=net.id,
1031
- ip_cidr_range="10.0.0.0/16",
1032
- region="us-central1")
1033
- router = gcp.compute.Router("router",
1034
- name="my-router",
1035
- region=subnet.region,
1036
- network=net.id)
1037
- address = []
1038
- for range in [{"value": i} for i in range(0, 2)]:
1039
- address.append(gcp.compute.Address(f"address-{range['value']}",
1040
- name=f"nat-manual-ip-{range['value']}",
1041
- region=subnet.region))
1042
- nat_manual = gcp.compute.RouterNat("nat_manual",
1043
- name="my-router-nat",
1044
- router=router.name,
1045
- region=router.region,
1046
- nat_ip_allocate_option="MANUAL_ONLY",
1047
- nat_ips=[__item.self_link for __item in address],
1048
- source_subnetwork_ip_ranges_to_nat="LIST_OF_SUBNETWORKS",
1049
- subnetworks=[{
1050
- "name": subnet.id,
1051
- "source_ip_ranges_to_nats": ["ALL_IP_RANGES"],
1052
- }])
1053
- ```
1054
1036
  ### Router Nat Rules
1055
1037
 
1056
1038
  ```python
@@ -1221,6 +1203,9 @@ class RouterNat(pulumi.CustomResource):
1221
1203
  Possible values are: `MANUAL_ONLY`, `AUTO_ONLY`.
1222
1204
  :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_ips: Self-links of NAT IPs. Only valid if natIpAllocateOption
1223
1205
  is set to MANUAL_ONLY.
1206
+ If this field is used alongside with a count created list of address resources `google_compute_address.foobar.*.self_link`,
1207
+ the access level resource for the address resource must have a `lifecycle` block with `create_before_destroy = true` so
1208
+ the number of resources can be increased/decreased without triggering the `resourceInUseByAnotherResource` error.
1224
1209
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1225
1210
  If it is not provided, the provider project is used.
1226
1211
  :param pulumi.Input[str] region: Region where the router and NAT reside.
@@ -1267,6 +1252,9 @@ class RouterNat(pulumi.CustomResource):
1267
1252
  """
1268
1253
  A NAT service created in a router.
1269
1254
 
1255
+ > **Note:** Recreating a `compute.Address` that is being used by `compute.RouterNat` will give a `resourceInUseByAnotherResource` error.
1256
+ Use `lifecycle.create_before_destroy` on this address resource to avoid this type of error as shown in the Manual Ips example.
1257
+
1270
1258
  To get more information about RouterNat, see:
1271
1259
 
1272
1260
  * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/routers)
@@ -1305,39 +1293,6 @@ class RouterNat(pulumi.CustomResource):
1305
1293
  "filter": "ERRORS_ONLY",
1306
1294
  })
1307
1295
  ```
1308
- ### Router Nat Manual Ips
1309
-
1310
- ```python
1311
- import pulumi
1312
- import pulumi_gcp as gcp
1313
-
1314
- net = gcp.compute.Network("net", name="my-network")
1315
- subnet = gcp.compute.Subnetwork("subnet",
1316
- name="my-subnetwork",
1317
- network=net.id,
1318
- ip_cidr_range="10.0.0.0/16",
1319
- region="us-central1")
1320
- router = gcp.compute.Router("router",
1321
- name="my-router",
1322
- region=subnet.region,
1323
- network=net.id)
1324
- address = []
1325
- for range in [{"value": i} for i in range(0, 2)]:
1326
- address.append(gcp.compute.Address(f"address-{range['value']}",
1327
- name=f"nat-manual-ip-{range['value']}",
1328
- region=subnet.region))
1329
- nat_manual = gcp.compute.RouterNat("nat_manual",
1330
- name="my-router-nat",
1331
- router=router.name,
1332
- region=router.region,
1333
- nat_ip_allocate_option="MANUAL_ONLY",
1334
- nat_ips=[__item.self_link for __item in address],
1335
- source_subnetwork_ip_ranges_to_nat="LIST_OF_SUBNETWORKS",
1336
- subnetworks=[{
1337
- "name": subnet.id,
1338
- "source_ip_ranges_to_nats": ["ALL_IP_RANGES"],
1339
- }])
1340
- ```
1341
1296
  ### Router Nat Rules
1342
1297
 
1343
1298
  ```python
@@ -1620,6 +1575,9 @@ class RouterNat(pulumi.CustomResource):
1620
1575
  Possible values are: `MANUAL_ONLY`, `AUTO_ONLY`.
1621
1576
  :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_ips: Self-links of NAT IPs. Only valid if natIpAllocateOption
1622
1577
  is set to MANUAL_ONLY.
1578
+ If this field is used alongside with a count created list of address resources `google_compute_address.foobar.*.self_link`,
1579
+ the access level resource for the address resource must have a `lifecycle` block with `create_before_destroy = true` so
1580
+ the number of resources can be increased/decreased without triggering the `resourceInUseByAnotherResource` error.
1623
1581
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1624
1582
  If it is not provided, the provider project is used.
1625
1583
  :param pulumi.Input[str] region: Region where the router and NAT reside.
@@ -1799,6 +1757,9 @@ class RouterNat(pulumi.CustomResource):
1799
1757
  """
1800
1758
  Self-links of NAT IPs. Only valid if natIpAllocateOption
1801
1759
  is set to MANUAL_ONLY.
1760
+ If this field is used alongside with a count created list of address resources `google_compute_address.foobar.*.self_link`,
1761
+ the access level resource for the address resource must have a `lifecycle` block with `create_before_destroy = true` so
1762
+ the number of resources can be increased/decreased without triggering the `resourceInUseByAnotherResource` error.
1802
1763
  """
1803
1764
  return pulumi.get(self, "nat_ips")
1804
1765
 
@@ -31,6 +31,7 @@ class ServiceAttachmentArgs:
31
31
  domain_names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
32
32
  name: Optional[pulumi.Input[str]] = None,
33
33
  project: Optional[pulumi.Input[str]] = None,
34
+ propagated_connection_limit: Optional[pulumi.Input[int]] = None,
34
35
  reconcile_connections: Optional[pulumi.Input[bool]] = None,
35
36
  region: Optional[pulumi.Input[str]] = None):
36
37
  """
@@ -63,6 +64,11 @@ class ServiceAttachmentArgs:
63
64
  except the last character, which cannot be a dash.
64
65
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
65
66
  If it is not provided, the provider project is used.
67
+ :param pulumi.Input[int] propagated_connection_limit: The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center.
68
+ This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer.
69
+ If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list.
70
+ If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
71
+ If unspecified, the default propagated connection limit is 250.
66
72
  :param pulumi.Input[bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
67
73
  If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified .
68
74
  If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list.
@@ -84,6 +90,8 @@ class ServiceAttachmentArgs:
84
90
  pulumi.set(__self__, "name", name)
85
91
  if project is not None:
86
92
  pulumi.set(__self__, "project", project)
93
+ if propagated_connection_limit is not None:
94
+ pulumi.set(__self__, "propagated_connection_limit", propagated_connection_limit)
87
95
  if reconcile_connections is not None:
88
96
  pulumi.set(__self__, "reconcile_connections", reconcile_connections)
89
97
  if region is not None:
@@ -227,6 +235,22 @@ class ServiceAttachmentArgs:
227
235
  def project(self, value: Optional[pulumi.Input[str]]):
228
236
  pulumi.set(self, "project", value)
229
237
 
238
+ @property
239
+ @pulumi.getter(name="propagatedConnectionLimit")
240
+ def propagated_connection_limit(self) -> Optional[pulumi.Input[int]]:
241
+ """
242
+ The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center.
243
+ This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer.
244
+ If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list.
245
+ If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
246
+ If unspecified, the default propagated connection limit is 250.
247
+ """
248
+ return pulumi.get(self, "propagated_connection_limit")
249
+
250
+ @propagated_connection_limit.setter
251
+ def propagated_connection_limit(self, value: Optional[pulumi.Input[int]]):
252
+ pulumi.set(self, "propagated_connection_limit", value)
253
+
230
254
  @property
231
255
  @pulumi.getter(name="reconcileConnections")
232
256
  def reconcile_connections(self) -> Optional[pulumi.Input[bool]]:
@@ -268,6 +292,7 @@ class _ServiceAttachmentState:
268
292
  name: Optional[pulumi.Input[str]] = None,
269
293
  nat_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
270
294
  project: Optional[pulumi.Input[str]] = None,
295
+ propagated_connection_limit: Optional[pulumi.Input[int]] = None,
271
296
  reconcile_connections: Optional[pulumi.Input[bool]] = None,
272
297
  region: Optional[pulumi.Input[str]] = None,
273
298
  self_link: Optional[pulumi.Input[str]] = None,
@@ -306,6 +331,11 @@ class _ServiceAttachmentState:
306
331
  :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_subnets: An array of subnets that is provided for NAT in this service attachment.
307
332
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
308
333
  If it is not provided, the provider project is used.
334
+ :param pulumi.Input[int] propagated_connection_limit: The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center.
335
+ This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer.
336
+ If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list.
337
+ If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
338
+ If unspecified, the default propagated connection limit is 250.
309
339
  :param pulumi.Input[bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
310
340
  If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified .
311
341
  If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list.
@@ -335,6 +365,8 @@ class _ServiceAttachmentState:
335
365
  pulumi.set(__self__, "nat_subnets", nat_subnets)
336
366
  if project is not None:
337
367
  pulumi.set(__self__, "project", project)
368
+ if propagated_connection_limit is not None:
369
+ pulumi.set(__self__, "propagated_connection_limit", propagated_connection_limit)
338
370
  if reconcile_connections is not None:
339
371
  pulumi.set(__self__, "reconcile_connections", reconcile_connections)
340
372
  if region is not None:
@@ -497,6 +529,22 @@ class _ServiceAttachmentState:
497
529
  def project(self, value: Optional[pulumi.Input[str]]):
498
530
  pulumi.set(self, "project", value)
499
531
 
532
+ @property
533
+ @pulumi.getter(name="propagatedConnectionLimit")
534
+ def propagated_connection_limit(self) -> Optional[pulumi.Input[int]]:
535
+ """
536
+ The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center.
537
+ This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer.
538
+ If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list.
539
+ If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
540
+ If unspecified, the default propagated connection limit is 250.
541
+ """
542
+ return pulumi.get(self, "propagated_connection_limit")
543
+
544
+ @propagated_connection_limit.setter
545
+ def propagated_connection_limit(self, value: Optional[pulumi.Input[int]]):
546
+ pulumi.set(self, "propagated_connection_limit", value)
547
+
500
548
  @property
501
549
  @pulumi.getter(name="reconcileConnections")
502
550
  def reconcile_connections(self) -> Optional[pulumi.Input[bool]]:
@@ -562,6 +610,7 @@ class ServiceAttachment(pulumi.CustomResource):
562
610
  name: Optional[pulumi.Input[str]] = None,
563
611
  nat_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
564
612
  project: Optional[pulumi.Input[str]] = None,
613
+ propagated_connection_limit: Optional[pulumi.Input[int]] = None,
565
614
  reconcile_connections: Optional[pulumi.Input[bool]] = None,
566
615
  region: Optional[pulumi.Input[str]] = None,
567
616
  target_service: Optional[pulumi.Input[str]] = None,
@@ -898,6 +947,11 @@ class ServiceAttachment(pulumi.CustomResource):
898
947
  :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_subnets: An array of subnets that is provided for NAT in this service attachment.
899
948
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
900
949
  If it is not provided, the provider project is used.
950
+ :param pulumi.Input[int] propagated_connection_limit: The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center.
951
+ This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer.
952
+ If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list.
953
+ If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
954
+ If unspecified, the default propagated connection limit is 250.
901
955
  :param pulumi.Input[bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
902
956
  If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified .
903
957
  If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list.
@@ -1237,6 +1291,7 @@ class ServiceAttachment(pulumi.CustomResource):
1237
1291
  name: Optional[pulumi.Input[str]] = None,
1238
1292
  nat_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1239
1293
  project: Optional[pulumi.Input[str]] = None,
1294
+ propagated_connection_limit: Optional[pulumi.Input[int]] = None,
1240
1295
  reconcile_connections: Optional[pulumi.Input[bool]] = None,
1241
1296
  region: Optional[pulumi.Input[str]] = None,
1242
1297
  target_service: Optional[pulumi.Input[str]] = None,
@@ -1264,6 +1319,7 @@ class ServiceAttachment(pulumi.CustomResource):
1264
1319
  raise TypeError("Missing required property 'nat_subnets'")
1265
1320
  __props__.__dict__["nat_subnets"] = nat_subnets
1266
1321
  __props__.__dict__["project"] = project
1322
+ __props__.__dict__["propagated_connection_limit"] = propagated_connection_limit
1267
1323
  __props__.__dict__["reconcile_connections"] = reconcile_connections
1268
1324
  __props__.__dict__["region"] = region
1269
1325
  if target_service is None and not opts.urn:
@@ -1293,6 +1349,7 @@ class ServiceAttachment(pulumi.CustomResource):
1293
1349
  name: Optional[pulumi.Input[str]] = None,
1294
1350
  nat_subnets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1295
1351
  project: Optional[pulumi.Input[str]] = None,
1352
+ propagated_connection_limit: Optional[pulumi.Input[int]] = None,
1296
1353
  reconcile_connections: Optional[pulumi.Input[bool]] = None,
1297
1354
  region: Optional[pulumi.Input[str]] = None,
1298
1355
  self_link: Optional[pulumi.Input[str]] = None,
@@ -1336,6 +1393,11 @@ class ServiceAttachment(pulumi.CustomResource):
1336
1393
  :param pulumi.Input[Sequence[pulumi.Input[str]]] nat_subnets: An array of subnets that is provided for NAT in this service attachment.
1337
1394
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1338
1395
  If it is not provided, the provider project is used.
1396
+ :param pulumi.Input[int] propagated_connection_limit: The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center.
1397
+ This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer.
1398
+ If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list.
1399
+ If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
1400
+ If unspecified, the default propagated connection limit is 250.
1339
1401
  :param pulumi.Input[bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
1340
1402
  If false, connection policy update will only affect existing PENDING PSC endpoints. Existing ACCEPTED/REJECTED endpoints will remain untouched regardless how the connection policy is modified .
1341
1403
  If true, update will affect both PENDING and ACCEPTED/REJECTED PSC endpoints. For example, an ACCEPTED PSC endpoint will be moved to REJECTED if its project is added to the reject list.
@@ -1358,6 +1420,7 @@ class ServiceAttachment(pulumi.CustomResource):
1358
1420
  __props__.__dict__["name"] = name
1359
1421
  __props__.__dict__["nat_subnets"] = nat_subnets
1360
1422
  __props__.__dict__["project"] = project
1423
+ __props__.__dict__["propagated_connection_limit"] = propagated_connection_limit
1361
1424
  __props__.__dict__["reconcile_connections"] = reconcile_connections
1362
1425
  __props__.__dict__["region"] = region
1363
1426
  __props__.__dict__["self_link"] = self_link
@@ -1473,6 +1536,18 @@ class ServiceAttachment(pulumi.CustomResource):
1473
1536
  """
1474
1537
  return pulumi.get(self, "project")
1475
1538
 
1539
+ @property
1540
+ @pulumi.getter(name="propagatedConnectionLimit")
1541
+ def propagated_connection_limit(self) -> pulumi.Output[int]:
1542
+ """
1543
+ The number of consumer spokes that connected Private Service Connect endpoints can be propagated to through Network Connectivity Center.
1544
+ This limit lets the service producer limit how many propagated Private Service Connect connections can be established to this service attachment from a single consumer.
1545
+ If the connection preference of the service attachment is ACCEPT_MANUAL, the limit applies to each project or network that is listed in the consumer accept list.
1546
+ If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
1547
+ If unspecified, the default propagated connection limit is 250.
1548
+ """
1549
+ return pulumi.get(self, "propagated_connection_limit")
1550
+
1476
1551
  @property
1477
1552
  @pulumi.getter(name="reconcileConnections")
1478
1553
  def reconcile_connections(self) -> pulumi.Output[bool]: