pulumi-gcp 8.35.0a1750225231__py3-none-any.whl → 8.36.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 (76) hide show
  1. pulumi_gcp/__init__.py +43 -0
  2. pulumi_gcp/alloydb/_inputs.py +26 -0
  3. pulumi_gcp/alloydb/outputs.py +34 -1
  4. pulumi_gcp/apihub/__init__.py +1 -0
  5. pulumi_gcp/apihub/_inputs.py +983 -0
  6. pulumi_gcp/apihub/outputs.py +807 -0
  7. pulumi_gcp/apihub/plugin_instance.py +808 -0
  8. pulumi_gcp/bigquery/app_profile.py +16 -8
  9. pulumi_gcp/bigquery/table.py +16 -12
  10. pulumi_gcp/bigqueryanalyticshub/_inputs.py +56 -6
  11. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +73 -0
  12. pulumi_gcp/bigqueryanalyticshub/listing.py +201 -48
  13. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +28 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +50 -4
  15. pulumi_gcp/bigtable/__init__.py +1 -0
  16. pulumi_gcp/bigtable/_inputs.py +128 -0
  17. pulumi_gcp/bigtable/app_profile.py +1065 -0
  18. pulumi_gcp/bigtable/outputs.py +111 -0
  19. pulumi_gcp/bigtable/table.py +82 -0
  20. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +64 -8
  21. pulumi_gcp/compute/_inputs.py +24 -12
  22. pulumi_gcp/compute/instance.py +2 -2
  23. pulumi_gcp/compute/instance_template.py +2 -2
  24. pulumi_gcp/compute/interconnect.py +43 -11
  25. pulumi_gcp/compute/node_template.py +21 -0
  26. pulumi_gcp/compute/outputs.py +16 -8
  27. pulumi_gcp/compute/service_attachment.py +76 -8
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/contactcenterinsights/__init__.py +9 -0
  31. pulumi_gcp/contactcenterinsights/view.py +526 -0
  32. pulumi_gcp/container/_inputs.py +72 -12
  33. pulumi_gcp/container/get_engine_versions.py +15 -1
  34. pulumi_gcp/container/outputs.py +73 -9
  35. pulumi_gcp/dataplex/_inputs.py +431 -6
  36. pulumi_gcp/dataplex/datascan.py +251 -0
  37. pulumi_gcp/dataplex/entry_type.py +2 -2
  38. pulumi_gcp/dataplex/glossary_category.py +8 -8
  39. pulumi_gcp/dataplex/glossary_term.py +8 -8
  40. pulumi_gcp/dataplex/outputs.py +353 -4
  41. pulumi_gcp/dataplex/task.py +16 -16
  42. pulumi_gcp/dataproc/__init__.py +1 -0
  43. pulumi_gcp/dataproc/_inputs.py +486 -0
  44. pulumi_gcp/dataproc/batch.py +10 -10
  45. pulumi_gcp/dataproc/outputs.py +407 -0
  46. pulumi_gcp/dataproc/session_template.py +1084 -0
  47. pulumi_gcp/diagflow/__init__.py +1 -0
  48. pulumi_gcp/diagflow/_inputs.py +48 -0
  49. pulumi_gcp/diagflow/cx_tool.py +2 -2
  50. pulumi_gcp/diagflow/encryption_spec.py +382 -0
  51. pulumi_gcp/diagflow/outputs.py +46 -0
  52. pulumi_gcp/firestore/field.py +6 -6
  53. pulumi_gcp/gkehub/membership_binding.py +6 -6
  54. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  55. pulumi_gcp/gkehub/namespace.py +4 -4
  56. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  57. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  58. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  59. pulumi_gcp/lustre/get_instance.py +12 -1
  60. pulumi_gcp/lustre/instance.py +143 -86
  61. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  62. pulumi_gcp/managedkafka/connector.py +4 -4
  63. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  64. pulumi_gcp/orgpolicy/policy.py +2 -2
  65. pulumi_gcp/provider.py +20 -0
  66. pulumi_gcp/pubsub/subscription.py +6 -6
  67. pulumi_gcp/pulumi-plugin.json +1 -1
  68. pulumi_gcp/storage/bucket_object.py +56 -0
  69. pulumi_gcp/storage/get_bucket_object.py +12 -1
  70. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  71. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  72. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  73. {pulumi_gcp-8.35.0a1750225231.dist-info → pulumi_gcp-8.36.0.dist-info}/METADATA +2 -2
  74. {pulumi_gcp-8.35.0a1750225231.dist-info → pulumi_gcp-8.36.0.dist-info}/RECORD +76 -70
  75. {pulumi_gcp-8.35.0a1750225231.dist-info → pulumi_gcp-8.36.0.dist-info}/WHEEL +0 -0
  76. {pulumi_gcp-8.35.0a1750225231.dist-info → pulumi_gcp-8.36.0.dist-info}/top_level.txt +0 -0
@@ -1428,7 +1428,7 @@ class InstanceTemplate(pulumi.CustomResource):
1428
1428
  "confidential_instance_type": "SEV",
1429
1429
  },
1430
1430
  disks=[{
1431
- "source_image": "ubuntu-os-cloud/ubuntu-2004-lts",
1431
+ "source_image": "ubuntu-os-cloud/ubuntu-2204-lts",
1432
1432
  }],
1433
1433
  service_account={
1434
1434
  "email": default.email,
@@ -1760,7 +1760,7 @@ class InstanceTemplate(pulumi.CustomResource):
1760
1760
  "confidential_instance_type": "SEV",
1761
1761
  },
1762
1762
  disks=[{
1763
- "source_image": "ubuntu-os-cloud/ubuntu-2004-lts",
1763
+ "source_image": "ubuntu-os-cloud/ubuntu-2204-lts",
1764
1764
  }],
1765
1765
  service_account={
1766
1766
  "email": default.email,
@@ -92,7 +92,7 @@ class InterconnectArgs:
92
92
  specified, the default value is false, which allocates non-MACsec capable ports first if
93
93
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
94
94
  does not work with the API, and will be removed in an upcoming major version.
95
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
95
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
96
96
  """
97
97
  pulumi.set(__self__, "interconnect_type", interconnect_type)
98
98
  pulumi.set(__self__, "link_type", link_type)
@@ -332,7 +332,7 @@ class InterconnectArgs:
332
332
  specified, the default value is false, which allocates non-MACsec capable ports first if
333
333
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
334
334
  does not work with the API, and will be removed in an upcoming major version.
335
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
335
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
336
336
  """
337
337
  return pulumi.get(self, "requested_features")
338
338
 
@@ -374,7 +374,8 @@ class _InterconnectState:
374
374
  requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
375
375
  requested_link_count: Optional[pulumi.Input[builtins.int]] = None,
376
376
  satisfies_pzs: Optional[pulumi.Input[builtins.bool]] = None,
377
- state: Optional[pulumi.Input[builtins.str]] = None):
377
+ state: Optional[pulumi.Input[builtins.str]] = None,
378
+ wire_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
378
379
  """
379
380
  Input properties used for looking up and filtering Interconnect resources.
380
381
  :param pulumi.Input[builtins.bool] admin_enabled: Administrative status of the interconnect. When this is set to true, the Interconnect is
@@ -464,7 +465,7 @@ class _InterconnectState:
464
465
  specified, the default value is false, which allocates non-MACsec capable ports first if
465
466
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
466
467
  does not work with the API, and will be removed in an upcoming major version.
467
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
468
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
468
469
  :param pulumi.Input[builtins.int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
469
470
  :param pulumi.Input[builtins.bool] satisfies_pzs: Reserved for future use.
470
471
  :param pulumi.Input[builtins.str] state: (Output)
@@ -475,6 +476,8 @@ class _InterconnectState:
475
476
  - CANCELLED: The outage associated with this notification was cancelled before the
476
477
  outage was due to start.
477
478
  - COMPLETED: The outage associated with this notification is complete.
479
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] wire_groups: A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
480
+ deleted if this list is non-empty.
478
481
  """
479
482
  if admin_enabled is not None:
480
483
  pulumi.set(__self__, "admin_enabled", admin_enabled)
@@ -538,6 +541,8 @@ class _InterconnectState:
538
541
  pulumi.set(__self__, "satisfies_pzs", satisfies_pzs)
539
542
  if state is not None:
540
543
  pulumi.set(__self__, "state", state)
544
+ if wire_groups is not None:
545
+ pulumi.set(__self__, "wire_groups", wire_groups)
541
546
 
542
547
  @property
543
548
  @pulumi.getter(name="adminEnabled")
@@ -927,7 +932,7 @@ class _InterconnectState:
927
932
  specified, the default value is false, which allocates non-MACsec capable ports first if
928
933
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
929
934
  does not work with the API, and will be removed in an upcoming major version.
930
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
935
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
931
936
  """
932
937
  return pulumi.get(self, "requested_features")
933
938
 
@@ -978,6 +983,19 @@ class _InterconnectState:
978
983
  def state(self, value: Optional[pulumi.Input[builtins.str]]):
979
984
  pulumi.set(self, "state", value)
980
985
 
986
+ @property
987
+ @pulumi.getter(name="wireGroups")
988
+ def wire_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
989
+ """
990
+ A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
991
+ deleted if this list is non-empty.
992
+ """
993
+ return pulumi.get(self, "wire_groups")
994
+
995
+ @wire_groups.setter
996
+ def wire_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
997
+ pulumi.set(self, "wire_groups", value)
998
+
981
999
 
982
1000
  @pulumi.type_token("gcp:compute/interconnect:Interconnect")
983
1001
  class Interconnect(pulumi.CustomResource):
@@ -1025,7 +1043,7 @@ class Interconnect(pulumi.CustomResource):
1025
1043
  customer_name="example_customer",
1026
1044
  interconnect_type="DEDICATED",
1027
1045
  link_type="LINK_TYPE_ETHERNET_10G_LR",
1028
- location=f"https://www.googleapis.com/compute/v1/projects/{project.name}/global/interconnectLocations/iad-zone1-1",
1046
+ location=f"https://www.googleapis.com/compute/v1/{project.id}/global/interconnectLocations/iad-zone1-1",
1029
1047
  requested_link_count=1)
1030
1048
  ```
1031
1049
 
@@ -1107,7 +1125,7 @@ class Interconnect(pulumi.CustomResource):
1107
1125
  specified, the default value is false, which allocates non-MACsec capable ports first if
1108
1126
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
1109
1127
  does not work with the API, and will be removed in an upcoming major version.
1110
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
1128
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
1111
1129
  :param pulumi.Input[builtins.int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
1112
1130
  """
1113
1131
  ...
@@ -1140,7 +1158,7 @@ class Interconnect(pulumi.CustomResource):
1140
1158
  customer_name="example_customer",
1141
1159
  interconnect_type="DEDICATED",
1142
1160
  link_type="LINK_TYPE_ETHERNET_10G_LR",
1143
- location=f"https://www.googleapis.com/compute/v1/projects/{project.name}/global/interconnectLocations/iad-zone1-1",
1161
+ location=f"https://www.googleapis.com/compute/v1/{project.id}/global/interconnectLocations/iad-zone1-1",
1144
1162
  requested_link_count=1)
1145
1163
  ```
1146
1164
 
@@ -1246,6 +1264,7 @@ class Interconnect(pulumi.CustomResource):
1246
1264
  __props__.__dict__["pulumi_labels"] = None
1247
1265
  __props__.__dict__["satisfies_pzs"] = None
1248
1266
  __props__.__dict__["state"] = None
1267
+ __props__.__dict__["wire_groups"] = None
1249
1268
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
1250
1269
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1251
1270
  super(Interconnect, __self__).__init__(
@@ -1288,7 +1307,8 @@ class Interconnect(pulumi.CustomResource):
1288
1307
  requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1289
1308
  requested_link_count: Optional[pulumi.Input[builtins.int]] = None,
1290
1309
  satisfies_pzs: Optional[pulumi.Input[builtins.bool]] = None,
1291
- state: Optional[pulumi.Input[builtins.str]] = None) -> 'Interconnect':
1310
+ state: Optional[pulumi.Input[builtins.str]] = None,
1311
+ wire_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None) -> 'Interconnect':
1292
1312
  """
1293
1313
  Get an existing Interconnect resource's state with the given name, id, and optional extra
1294
1314
  properties used to qualify the lookup.
@@ -1383,7 +1403,7 @@ class Interconnect(pulumi.CustomResource):
1383
1403
  specified, the default value is false, which allocates non-MACsec capable ports first if
1384
1404
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
1385
1405
  does not work with the API, and will be removed in an upcoming major version.
1386
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
1406
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
1387
1407
  :param pulumi.Input[builtins.int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
1388
1408
  :param pulumi.Input[builtins.bool] satisfies_pzs: Reserved for future use.
1389
1409
  :param pulumi.Input[builtins.str] state: (Output)
@@ -1394,6 +1414,8 @@ class Interconnect(pulumi.CustomResource):
1394
1414
  - CANCELLED: The outage associated with this notification was cancelled before the
1395
1415
  outage was due to start.
1396
1416
  - COMPLETED: The outage associated with this notification is complete.
1417
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] wire_groups: A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
1418
+ deleted if this list is non-empty.
1397
1419
  """
1398
1420
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1399
1421
 
@@ -1430,6 +1452,7 @@ class Interconnect(pulumi.CustomResource):
1430
1452
  __props__.__dict__["requested_link_count"] = requested_link_count
1431
1453
  __props__.__dict__["satisfies_pzs"] = satisfies_pzs
1432
1454
  __props__.__dict__["state"] = state
1455
+ __props__.__dict__["wire_groups"] = wire_groups
1433
1456
  return Interconnect(resource_name, opts=opts, __props__=__props__)
1434
1457
 
1435
1458
  @property
@@ -1712,7 +1735,7 @@ class Interconnect(pulumi.CustomResource):
1712
1735
  specified, the default value is false, which allocates non-MACsec capable ports first if
1713
1736
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
1714
1737
  does not work with the API, and will be removed in an upcoming major version.
1715
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
1738
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
1716
1739
  """
1717
1740
  return pulumi.get(self, "requested_features")
1718
1741
 
@@ -1747,3 +1770,12 @@ class Interconnect(pulumi.CustomResource):
1747
1770
  """
1748
1771
  return pulumi.get(self, "state")
1749
1772
 
1773
+ @property
1774
+ @pulumi.getter(name="wireGroups")
1775
+ def wire_groups(self) -> pulumi.Output[Sequence[builtins.str]]:
1776
+ """
1777
+ A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
1778
+ deleted if this list is non-empty.
1779
+ """
1780
+ return pulumi.get(self, "wire_groups")
1781
+
@@ -46,6 +46,9 @@ class NodeTemplateArgs:
46
46
  node template
47
47
  Structure is documented below.
48
48
  :param pulumi.Input[builtins.str] name: Name of the resource.
49
+
50
+
51
+ - - -
49
52
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] node_affinity_labels: Labels to use for node affinity, which will be used in
50
53
  instance scheduling.
51
54
  :param pulumi.Input[builtins.str] node_type: Node type to use for nodes group that are created from this template.
@@ -145,6 +148,9 @@ class NodeTemplateArgs:
145
148
  def name(self) -> Optional[pulumi.Input[builtins.str]]:
146
149
  """
147
150
  Name of the resource.
151
+
152
+
153
+ - - -
148
154
  """
149
155
  return pulumi.get(self, "name")
150
156
 
@@ -265,6 +271,9 @@ class _NodeTemplateState:
265
271
  node template
266
272
  Structure is documented below.
267
273
  :param pulumi.Input[builtins.str] name: Name of the resource.
274
+
275
+
276
+ - - -
268
277
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] node_affinity_labels: Labels to use for node affinity, which will be used in
269
278
  instance scheduling.
270
279
  :param pulumi.Input[builtins.str] node_type: Node type to use for nodes group that are created from this template.
@@ -381,6 +390,9 @@ class _NodeTemplateState:
381
390
  def name(self) -> Optional[pulumi.Input[builtins.str]]:
382
391
  """
383
392
  Name of the resource.
393
+
394
+
395
+ - - -
384
396
  """
385
397
  return pulumi.get(self, "name")
386
398
 
@@ -620,6 +632,9 @@ class NodeTemplate(pulumi.CustomResource):
620
632
  node template
621
633
  Structure is documented below.
622
634
  :param pulumi.Input[builtins.str] name: Name of the resource.
635
+
636
+
637
+ - - -
623
638
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] node_affinity_labels: Labels to use for node affinity, which will be used in
624
639
  instance scheduling.
625
640
  :param pulumi.Input[builtins.str] node_type: Node type to use for nodes group that are created from this template.
@@ -839,6 +854,9 @@ class NodeTemplate(pulumi.CustomResource):
839
854
  node template
840
855
  Structure is documented below.
841
856
  :param pulumi.Input[builtins.str] name: Name of the resource.
857
+
858
+
859
+ - - -
842
860
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] node_affinity_labels: Labels to use for node affinity, which will be used in
843
861
  instance scheduling.
844
862
  :param pulumi.Input[builtins.str] node_type: Node type to use for nodes group that are created from this template.
@@ -927,6 +945,9 @@ class NodeTemplate(pulumi.CustomResource):
927
945
  def name(self) -> pulumi.Output[builtins.str]:
928
946
  """
929
947
  Name of the resource.
948
+
949
+
950
+ - - -
930
951
  """
931
952
  return pulumi.get(self, "name")
932
953
 
@@ -36815,8 +36815,9 @@ class RegionSecurityPolicyRuleRateLimitOptions(dict):
36815
36815
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
36816
36816
  * REGION_CODE: The country/region from which the request originates.
36817
36817
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
36818
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
36818
36819
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
36819
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
36820
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
36820
36821
  :param Sequence['RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs'] enforce_on_key_configs: If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
36821
36822
  You can specify up to 3 enforceOnKeyConfigs.
36822
36823
  If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
@@ -36888,8 +36889,9 @@ class RegionSecurityPolicyRuleRateLimitOptions(dict):
36888
36889
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
36889
36890
  * REGION_CODE: The country/region from which the request originates.
36890
36891
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
36892
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
36891
36893
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
36892
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
36894
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
36893
36895
  """
36894
36896
  return pulumi.get(self, "enforce_on_key")
36895
36897
 
@@ -37019,8 +37021,9 @@ class RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
37019
37021
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
37020
37022
  * REGION_CODE: The country/region from which the request originates.
37021
37023
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
37024
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
37022
37025
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
37023
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
37026
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
37024
37027
  """
37025
37028
  if enforce_on_key_name is not None:
37026
37029
  pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
@@ -37051,8 +37054,9 @@ class RegionSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
37051
37054
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
37052
37055
  * REGION_CODE: The country/region from which the request originates.
37053
37056
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
37057
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
37054
37058
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
37055
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
37059
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
37056
37060
  """
37057
37061
  return pulumi.get(self, "enforce_on_key_type")
37058
37062
 
@@ -48910,8 +48914,9 @@ class SecurityPolicyRuleRateLimitOptions(dict):
48910
48914
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
48911
48915
  * REGION_CODE: The country/region from which the request originates.
48912
48916
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
48917
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
48913
48918
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
48914
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
48919
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
48915
48920
  :param Sequence['SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfigArgs'] enforce_on_key_configs: If specified, any combination of values of enforceOnKeyType/enforceOnKeyName is treated as the key on which ratelimit threshold/action is enforced.
48916
48921
  You can specify up to 3 enforceOnKeyConfigs.
48917
48922
  If enforceOnKeyConfigs is specified, enforceOnKey must not be specified.
@@ -48987,8 +48992,9 @@ class SecurityPolicyRuleRateLimitOptions(dict):
48987
48992
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
48988
48993
  * REGION_CODE: The country/region from which the request originates.
48989
48994
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
48995
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
48990
48996
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
48991
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
48997
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
48992
48998
  """
48993
48999
  return pulumi.get(self, "enforce_on_key")
48994
49000
 
@@ -49127,8 +49133,9 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
49127
49133
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
49128
49134
  * REGION_CODE: The country/region from which the request originates.
49129
49135
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
49136
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
49130
49137
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
49131
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
49138
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
49132
49139
  """
49133
49140
  if enforce_on_key_name is not None:
49134
49141
  pulumi.set(__self__, "enforce_on_key_name", enforce_on_key_name)
@@ -49159,8 +49166,9 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig(dict):
49159
49166
  * SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session.
49160
49167
  * REGION_CODE: The country/region from which the request originates.
49161
49168
  * TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
49169
+ * TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL.
49162
49170
  * USER_IP: The IP address of the originating client, which is resolved based on "userIpRequestHeaders" configured with the security policy. If there is no "userIpRequestHeaders" configuration or an IP address cannot be resolved from it, the key type defaults to IP.
49163
- Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `USER_IP`.
49171
+ Possible values are: `ALL`, `IP`, `HTTP_HEADER`, `XFF_IP`, `HTTP_COOKIE`, `HTTP_PATH`, `SNI`, `REGION_CODE`, `TLS_JA3_FINGERPRINT`, `TLS_JA4_FINGERPRINT`, `USER_IP`.
49164
49172
  """
49165
49173
  return pulumi.get(self, "enforce_on_key_type")
49166
49174
 
@@ -34,7 +34,8 @@ class ServiceAttachmentArgs:
34
34
  project: Optional[pulumi.Input[builtins.str]] = None,
35
35
  propagated_connection_limit: Optional[pulumi.Input[builtins.int]] = None,
36
36
  reconcile_connections: Optional[pulumi.Input[builtins.bool]] = None,
37
- region: Optional[pulumi.Input[builtins.str]] = None):
37
+ region: Optional[pulumi.Input[builtins.str]] = None,
38
+ send_propagated_connection_limit_if_zero: Optional[pulumi.Input[builtins.bool]] = None):
38
39
  """
39
40
  The set of arguments for constructing a ServiceAttachment resource.
40
41
  :param pulumi.Input[builtins.str] connection_preference: The connection preference to use for this service attachment. Valid
@@ -69,11 +70,15 @@ class ServiceAttachmentArgs:
69
70
  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.
70
71
  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.
71
72
  If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
72
- If unspecified, the default propagated connection limit is 250.
73
+ If unspecified, the default propagated connection limit is 250. To explicitly send a zero value, set `send_propagated_connection_limit_if_zero = true`.
73
74
  :param pulumi.Input[builtins.bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
74
75
  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 .
75
76
  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.
76
77
  :param pulumi.Input[builtins.str] region: URL of the region where the resource resides.
78
+ :param pulumi.Input[builtins.bool] send_propagated_connection_limit_if_zero: Controls the behavior of propagated_connection_limit.
79
+ When false, setting propagated_connection_limit to zero causes the provider to use to the API's default value.
80
+ When true, the provider will set propagated_connection_limit to zero.
81
+ Defaults to false.
77
82
  """
78
83
  pulumi.set(__self__, "connection_preference", connection_preference)
79
84
  pulumi.set(__self__, "enable_proxy_protocol", enable_proxy_protocol)
@@ -97,6 +102,8 @@ class ServiceAttachmentArgs:
97
102
  pulumi.set(__self__, "reconcile_connections", reconcile_connections)
98
103
  if region is not None:
99
104
  pulumi.set(__self__, "region", region)
105
+ if send_propagated_connection_limit_if_zero is not None:
106
+ pulumi.set(__self__, "send_propagated_connection_limit_if_zero", send_propagated_connection_limit_if_zero)
100
107
 
101
108
  @property
102
109
  @pulumi.getter(name="connectionPreference")
@@ -244,7 +251,7 @@ class ServiceAttachmentArgs:
244
251
  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.
245
252
  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.
246
253
  If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
247
- If unspecified, the default propagated connection limit is 250.
254
+ If unspecified, the default propagated connection limit is 250. To explicitly send a zero value, set `send_propagated_connection_limit_if_zero = true`.
248
255
  """
249
256
  return pulumi.get(self, "propagated_connection_limit")
250
257
 
@@ -278,6 +285,21 @@ class ServiceAttachmentArgs:
278
285
  def region(self, value: Optional[pulumi.Input[builtins.str]]):
279
286
  pulumi.set(self, "region", value)
280
287
 
288
+ @property
289
+ @pulumi.getter(name="sendPropagatedConnectionLimitIfZero")
290
+ def send_propagated_connection_limit_if_zero(self) -> Optional[pulumi.Input[builtins.bool]]:
291
+ """
292
+ Controls the behavior of propagated_connection_limit.
293
+ When false, setting propagated_connection_limit to zero causes the provider to use to the API's default value.
294
+ When true, the provider will set propagated_connection_limit to zero.
295
+ Defaults to false.
296
+ """
297
+ return pulumi.get(self, "send_propagated_connection_limit_if_zero")
298
+
299
+ @send_propagated_connection_limit_if_zero.setter
300
+ def send_propagated_connection_limit_if_zero(self, value: Optional[pulumi.Input[builtins.bool]]):
301
+ pulumi.set(self, "send_propagated_connection_limit_if_zero", value)
302
+
281
303
 
282
304
  @pulumi.input_type
283
305
  class _ServiceAttachmentState:
@@ -297,6 +319,7 @@ class _ServiceAttachmentState:
297
319
  reconcile_connections: Optional[pulumi.Input[builtins.bool]] = None,
298
320
  region: Optional[pulumi.Input[builtins.str]] = None,
299
321
  self_link: Optional[pulumi.Input[builtins.str]] = None,
322
+ send_propagated_connection_limit_if_zero: Optional[pulumi.Input[builtins.bool]] = None,
300
323
  target_service: Optional[pulumi.Input[builtins.str]] = None):
301
324
  """
302
325
  Input properties used for looking up and filtering ServiceAttachment resources.
@@ -336,12 +359,16 @@ class _ServiceAttachmentState:
336
359
  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.
337
360
  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.
338
361
  If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
339
- If unspecified, the default propagated connection limit is 250.
362
+ If unspecified, the default propagated connection limit is 250. To explicitly send a zero value, set `send_propagated_connection_limit_if_zero = true`.
340
363
  :param pulumi.Input[builtins.bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
341
364
  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 .
342
365
  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.
343
366
  :param pulumi.Input[builtins.str] region: URL of the region where the resource resides.
344
367
  :param pulumi.Input[builtins.str] self_link: The URI of the created resource.
368
+ :param pulumi.Input[builtins.bool] send_propagated_connection_limit_if_zero: Controls the behavior of propagated_connection_limit.
369
+ When false, setting propagated_connection_limit to zero causes the provider to use to the API's default value.
370
+ When true, the provider will set propagated_connection_limit to zero.
371
+ Defaults to false.
345
372
  :param pulumi.Input[builtins.str] target_service: The URL of a service serving the endpoint identified by this service attachment.
346
373
  """
347
374
  if connected_endpoints is not None:
@@ -374,6 +401,8 @@ class _ServiceAttachmentState:
374
401
  pulumi.set(__self__, "region", region)
375
402
  if self_link is not None:
376
403
  pulumi.set(__self__, "self_link", self_link)
404
+ if send_propagated_connection_limit_if_zero is not None:
405
+ pulumi.set(__self__, "send_propagated_connection_limit_if_zero", send_propagated_connection_limit_if_zero)
377
406
  if target_service is not None:
378
407
  pulumi.set(__self__, "target_service", target_service)
379
408
 
@@ -538,7 +567,7 @@ class _ServiceAttachmentState:
538
567
  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.
539
568
  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.
540
569
  If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
541
- If unspecified, the default propagated connection limit is 250.
570
+ If unspecified, the default propagated connection limit is 250. To explicitly send a zero value, set `send_propagated_connection_limit_if_zero = true`.
542
571
  """
543
572
  return pulumi.get(self, "propagated_connection_limit")
544
573
 
@@ -584,6 +613,21 @@ class _ServiceAttachmentState:
584
613
  def self_link(self, value: Optional[pulumi.Input[builtins.str]]):
585
614
  pulumi.set(self, "self_link", value)
586
615
 
616
+ @property
617
+ @pulumi.getter(name="sendPropagatedConnectionLimitIfZero")
618
+ def send_propagated_connection_limit_if_zero(self) -> Optional[pulumi.Input[builtins.bool]]:
619
+ """
620
+ Controls the behavior of propagated_connection_limit.
621
+ When false, setting propagated_connection_limit to zero causes the provider to use to the API's default value.
622
+ When true, the provider will set propagated_connection_limit to zero.
623
+ Defaults to false.
624
+ """
625
+ return pulumi.get(self, "send_propagated_connection_limit_if_zero")
626
+
627
+ @send_propagated_connection_limit_if_zero.setter
628
+ def send_propagated_connection_limit_if_zero(self, value: Optional[pulumi.Input[builtins.bool]]):
629
+ pulumi.set(self, "send_propagated_connection_limit_if_zero", value)
630
+
587
631
  @property
588
632
  @pulumi.getter(name="targetService")
589
633
  def target_service(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -615,6 +659,7 @@ class ServiceAttachment(pulumi.CustomResource):
615
659
  propagated_connection_limit: Optional[pulumi.Input[builtins.int]] = None,
616
660
  reconcile_connections: Optional[pulumi.Input[builtins.bool]] = None,
617
661
  region: Optional[pulumi.Input[builtins.str]] = None,
662
+ send_propagated_connection_limit_if_zero: Optional[pulumi.Input[builtins.bool]] = None,
618
663
  target_service: Optional[pulumi.Input[builtins.str]] = None,
619
664
  __props__=None):
620
665
  """
@@ -953,11 +998,15 @@ class ServiceAttachment(pulumi.CustomResource):
953
998
  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.
954
999
  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.
955
1000
  If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
956
- If unspecified, the default propagated connection limit is 250.
1001
+ If unspecified, the default propagated connection limit is 250. To explicitly send a zero value, set `send_propagated_connection_limit_if_zero = true`.
957
1002
  :param pulumi.Input[builtins.bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
958
1003
  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 .
959
1004
  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.
960
1005
  :param pulumi.Input[builtins.str] region: URL of the region where the resource resides.
1006
+ :param pulumi.Input[builtins.bool] send_propagated_connection_limit_if_zero: Controls the behavior of propagated_connection_limit.
1007
+ When false, setting propagated_connection_limit to zero causes the provider to use to the API's default value.
1008
+ When true, the provider will set propagated_connection_limit to zero.
1009
+ Defaults to false.
961
1010
  :param pulumi.Input[builtins.str] target_service: The URL of a service serving the endpoint identified by this service attachment.
962
1011
  """
963
1012
  ...
@@ -1296,6 +1345,7 @@ class ServiceAttachment(pulumi.CustomResource):
1296
1345
  propagated_connection_limit: Optional[pulumi.Input[builtins.int]] = None,
1297
1346
  reconcile_connections: Optional[pulumi.Input[builtins.bool]] = None,
1298
1347
  region: Optional[pulumi.Input[builtins.str]] = None,
1348
+ send_propagated_connection_limit_if_zero: Optional[pulumi.Input[builtins.bool]] = None,
1299
1349
  target_service: Optional[pulumi.Input[builtins.str]] = None,
1300
1350
  __props__=None):
1301
1351
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -1324,6 +1374,7 @@ class ServiceAttachment(pulumi.CustomResource):
1324
1374
  __props__.__dict__["propagated_connection_limit"] = propagated_connection_limit
1325
1375
  __props__.__dict__["reconcile_connections"] = reconcile_connections
1326
1376
  __props__.__dict__["region"] = region
1377
+ __props__.__dict__["send_propagated_connection_limit_if_zero"] = send_propagated_connection_limit_if_zero
1327
1378
  if target_service is None and not opts.urn:
1328
1379
  raise TypeError("Missing required property 'target_service'")
1329
1380
  __props__.__dict__["target_service"] = target_service
@@ -1355,6 +1406,7 @@ class ServiceAttachment(pulumi.CustomResource):
1355
1406
  reconcile_connections: Optional[pulumi.Input[builtins.bool]] = None,
1356
1407
  region: Optional[pulumi.Input[builtins.str]] = None,
1357
1408
  self_link: Optional[pulumi.Input[builtins.str]] = None,
1409
+ send_propagated_connection_limit_if_zero: Optional[pulumi.Input[builtins.bool]] = None,
1358
1410
  target_service: Optional[pulumi.Input[builtins.str]] = None) -> 'ServiceAttachment':
1359
1411
  """
1360
1412
  Get an existing ServiceAttachment resource's state with the given name, id, and optional extra
@@ -1399,12 +1451,16 @@ class ServiceAttachment(pulumi.CustomResource):
1399
1451
  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.
1400
1452
  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.
1401
1453
  If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
1402
- If unspecified, the default propagated connection limit is 250.
1454
+ If unspecified, the default propagated connection limit is 250. To explicitly send a zero value, set `send_propagated_connection_limit_if_zero = true`.
1403
1455
  :param pulumi.Input[builtins.bool] reconcile_connections: This flag determines whether a consumer accept/reject list change can reconcile the statuses of existing ACCEPTED or REJECTED PSC endpoints.
1404
1456
  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 .
1405
1457
  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.
1406
1458
  :param pulumi.Input[builtins.str] region: URL of the region where the resource resides.
1407
1459
  :param pulumi.Input[builtins.str] self_link: The URI of the created resource.
1460
+ :param pulumi.Input[builtins.bool] send_propagated_connection_limit_if_zero: Controls the behavior of propagated_connection_limit.
1461
+ When false, setting propagated_connection_limit to zero causes the provider to use to the API's default value.
1462
+ When true, the provider will set propagated_connection_limit to zero.
1463
+ Defaults to false.
1408
1464
  :param pulumi.Input[builtins.str] target_service: The URL of a service serving the endpoint identified by this service attachment.
1409
1465
  """
1410
1466
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
@@ -1426,6 +1482,7 @@ class ServiceAttachment(pulumi.CustomResource):
1426
1482
  __props__.__dict__["reconcile_connections"] = reconcile_connections
1427
1483
  __props__.__dict__["region"] = region
1428
1484
  __props__.__dict__["self_link"] = self_link
1485
+ __props__.__dict__["send_propagated_connection_limit_if_zero"] = send_propagated_connection_limit_if_zero
1429
1486
  __props__.__dict__["target_service"] = target_service
1430
1487
  return ServiceAttachment(resource_name, opts=opts, __props__=__props__)
1431
1488
 
@@ -1546,7 +1603,7 @@ class ServiceAttachment(pulumi.CustomResource):
1546
1603
  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.
1547
1604
  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.
1548
1605
  If the connection preference of the service attachment is ACCEPT_AUTOMATIC, the limit applies to each project that contains a connected endpoint.
1549
- If unspecified, the default propagated connection limit is 250.
1606
+ If unspecified, the default propagated connection limit is 250. To explicitly send a zero value, set `send_propagated_connection_limit_if_zero = true`.
1550
1607
  """
1551
1608
  return pulumi.get(self, "propagated_connection_limit")
1552
1609
 
@@ -1576,6 +1633,17 @@ class ServiceAttachment(pulumi.CustomResource):
1576
1633
  """
1577
1634
  return pulumi.get(self, "self_link")
1578
1635
 
1636
+ @property
1637
+ @pulumi.getter(name="sendPropagatedConnectionLimitIfZero")
1638
+ def send_propagated_connection_limit_if_zero(self) -> pulumi.Output[Optional[builtins.bool]]:
1639
+ """
1640
+ Controls the behavior of propagated_connection_limit.
1641
+ When false, setting propagated_connection_limit to zero causes the provider to use to the API's default value.
1642
+ When true, the provider will set propagated_connection_limit to zero.
1643
+ Defaults to false.
1644
+ """
1645
+ return pulumi.get(self, "send_propagated_connection_limit_if_zero")
1646
+
1579
1647
  @property
1580
1648
  @pulumi.getter(name="targetService")
1581
1649
  def target_service(self) -> pulumi.Output[builtins.str]:
@@ -118,6 +118,8 @@ composerCustomEndpoint: Optional[str]
118
118
 
119
119
  computeCustomEndpoint: Optional[str]
120
120
 
121
+ contactCenterInsightsCustomEndpoint: Optional[str]
122
+
121
123
  containerAnalysisCustomEndpoint: Optional[str]
122
124
 
123
125
  containerAttachedCustomEndpoint: Optional[str]
pulumi_gcp/config/vars.py CHANGED
@@ -226,6 +226,10 @@ class _ExportableConfig(types.ModuleType):
226
226
  def compute_custom_endpoint(self) -> Optional[str]:
227
227
  return __config__.get('computeCustomEndpoint')
228
228
 
229
+ @property
230
+ def contact_center_insights_custom_endpoint(self) -> Optional[str]:
231
+ return __config__.get('contactCenterInsightsCustomEndpoint')
232
+
229
233
  @property
230
234
  def container_analysis_custom_endpoint(self) -> Optional[str]:
231
235
  return __config__.get('containerAnalysisCustomEndpoint')
@@ -0,0 +1,9 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ from .. import _utilities
7
+ import typing
8
+ # Export this package's modules as members:
9
+ from .view import *