pulumi-gcp 8.35.0a1750142992__py3-none-any.whl → 8.35.0a1750225231__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 (52) hide show
  1. pulumi_gcp/__init__.py +8 -0
  2. pulumi_gcp/backupdisasterrecovery/backup_plan.py +100 -7
  3. pulumi_gcp/backupdisasterrecovery/backup_plan_association.py +35 -7
  4. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +12 -1
  5. pulumi_gcp/bigqueryanalyticshub/listing.py +108 -0
  6. pulumi_gcp/compute/_inputs.py +2028 -175
  7. pulumi_gcp/compute/disk.py +7 -7
  8. pulumi_gcp/compute/outputs.py +1483 -110
  9. pulumi_gcp/compute/region_url_map.py +344 -0
  10. pulumi_gcp/compute/target_http_proxy.py +118 -0
  11. pulumi_gcp/compute/target_https_proxy.py +132 -0
  12. pulumi_gcp/compute/url_map.py +344 -0
  13. pulumi_gcp/compute/vpn_tunnel.py +178 -0
  14. pulumi_gcp/dataplex/__init__.py +1 -0
  15. pulumi_gcp/dataplex/get_data_quality_rules.py +169 -0
  16. pulumi_gcp/dataplex/outputs.py +420 -0
  17. pulumi_gcp/diagflow/__init__.py +1 -0
  18. pulumi_gcp/diagflow/_inputs.py +939 -0
  19. pulumi_gcp/diagflow/cx_agent.py +34 -0
  20. pulumi_gcp/diagflow/cx_tool.py +899 -0
  21. pulumi_gcp/diagflow/outputs.py +780 -0
  22. pulumi_gcp/firestore/field.py +6 -6
  23. pulumi_gcp/gkehub/membership_binding.py +6 -6
  24. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  25. pulumi_gcp/gkehub/namespace.py +4 -4
  26. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  27. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  28. pulumi_gcp/integrationconnectors/_inputs.py +24 -1
  29. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  30. pulumi_gcp/integrationconnectors/outputs.py +15 -1
  31. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  32. pulumi_gcp/managedkafka/connector.py +4 -4
  33. pulumi_gcp/netapp/_inputs.py +23 -0
  34. pulumi_gcp/netapp/outputs.py +16 -0
  35. pulumi_gcp/netapp/storage_pool.py +108 -0
  36. pulumi_gcp/networkconnectivity/_inputs.py +71 -1
  37. pulumi_gcp/networkconnectivity/outputs.py +64 -1
  38. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  39. pulumi_gcp/notebooks/runtime.py +4 -0
  40. pulumi_gcp/orgpolicy/policy.py +2 -2
  41. pulumi_gcp/pubsub/subscription.py +6 -6
  42. pulumi_gcp/pulumi-plugin.json +1 -1
  43. pulumi_gcp/redis/_inputs.py +77 -0
  44. pulumi_gcp/redis/cluster.py +32 -0
  45. pulumi_gcp/redis/outputs.py +63 -0
  46. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  47. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  48. pulumi_gcp/vertex/ai_index_endpoint_deployed_index.py +99 -64
  49. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750225231.dist-info}/METADATA +1 -1
  50. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750225231.dist-info}/RECORD +52 -50
  51. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750225231.dist-info}/WHEEL +0 -0
  52. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750225231.dist-info}/top_level.txt +0 -0
@@ -28,6 +28,8 @@ class StoragePoolArgs:
28
28
  allow_auto_tiering: Optional[pulumi.Input[builtins.bool]] = None,
29
29
  custom_performance_enabled: Optional[pulumi.Input[builtins.bool]] = None,
30
30
  description: Optional[pulumi.Input[builtins.str]] = None,
31
+ enable_hot_tier_auto_resize: Optional[pulumi.Input[builtins.bool]] = None,
32
+ hot_tier_size_gib: Optional[pulumi.Input[builtins.str]] = None,
31
33
  kms_config: Optional[pulumi.Input[builtins.str]] = None,
32
34
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
33
35
  ldap_enabled: Optional[pulumi.Input[builtins.bool]] = None,
@@ -50,6 +52,10 @@ class StoragePoolArgs:
50
52
  Auto-tiering can be enabled after storage pool creation but it can't be disabled once enabled.
51
53
  :param pulumi.Input[builtins.bool] custom_performance_enabled: Optional. True if using Independent Scaling of capacity and performance (Hyperdisk). Default is false.
52
54
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
55
+ :param pulumi.Input[builtins.bool] enable_hot_tier_auto_resize: Flag indicating that the hot-tier threshold will be auto-increased by 10% of the hot-tier when it hits 100%. Default is true.
56
+ The increment will kick in only if the new size after increment is still less than or equal to storage pool size.
57
+ :param pulumi.Input[builtins.str] hot_tier_size_gib: Total hot tier capacity for the Storage Pool. It is applicable only to Flex service level.
58
+ It should be less than the minimum storage pool size and cannot be more than the current storage pool size. It cannot be decreased once set.
53
59
  :param pulumi.Input[builtins.str] kms_config: Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`.
54
60
  The policy needs to be in the same location as the storage pool.
55
61
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
@@ -84,6 +90,10 @@ class StoragePoolArgs:
84
90
  pulumi.set(__self__, "custom_performance_enabled", custom_performance_enabled)
85
91
  if description is not None:
86
92
  pulumi.set(__self__, "description", description)
93
+ if enable_hot_tier_auto_resize is not None:
94
+ pulumi.set(__self__, "enable_hot_tier_auto_resize", enable_hot_tier_auto_resize)
95
+ if hot_tier_size_gib is not None:
96
+ pulumi.set(__self__, "hot_tier_size_gib", hot_tier_size_gib)
87
97
  if kms_config is not None:
88
98
  pulumi.set(__self__, "kms_config", kms_config)
89
99
  if labels is not None:
@@ -202,6 +212,32 @@ class StoragePoolArgs:
202
212
  def description(self, value: Optional[pulumi.Input[builtins.str]]):
203
213
  pulumi.set(self, "description", value)
204
214
 
215
+ @property
216
+ @pulumi.getter(name="enableHotTierAutoResize")
217
+ def enable_hot_tier_auto_resize(self) -> Optional[pulumi.Input[builtins.bool]]:
218
+ """
219
+ Flag indicating that the hot-tier threshold will be auto-increased by 10% of the hot-tier when it hits 100%. Default is true.
220
+ The increment will kick in only if the new size after increment is still less than or equal to storage pool size.
221
+ """
222
+ return pulumi.get(self, "enable_hot_tier_auto_resize")
223
+
224
+ @enable_hot_tier_auto_resize.setter
225
+ def enable_hot_tier_auto_resize(self, value: Optional[pulumi.Input[builtins.bool]]):
226
+ pulumi.set(self, "enable_hot_tier_auto_resize", value)
227
+
228
+ @property
229
+ @pulumi.getter(name="hotTierSizeGib")
230
+ def hot_tier_size_gib(self) -> Optional[pulumi.Input[builtins.str]]:
231
+ """
232
+ Total hot tier capacity for the Storage Pool. It is applicable only to Flex service level.
233
+ It should be less than the minimum storage pool size and cannot be more than the current storage pool size. It cannot be decreased once set.
234
+ """
235
+ return pulumi.get(self, "hot_tier_size_gib")
236
+
237
+ @hot_tier_size_gib.setter
238
+ def hot_tier_size_gib(self, value: Optional[pulumi.Input[builtins.str]]):
239
+ pulumi.set(self, "hot_tier_size_gib", value)
240
+
205
241
  @property
206
242
  @pulumi.getter(name="kmsConfig")
207
243
  def kms_config(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -332,7 +368,9 @@ class _StoragePoolState:
332
368
  custom_performance_enabled: Optional[pulumi.Input[builtins.bool]] = None,
333
369
  description: Optional[pulumi.Input[builtins.str]] = None,
334
370
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
371
+ enable_hot_tier_auto_resize: Optional[pulumi.Input[builtins.bool]] = None,
335
372
  encryption_type: Optional[pulumi.Input[builtins.str]] = None,
373
+ hot_tier_size_gib: Optional[pulumi.Input[builtins.str]] = None,
336
374
  kms_config: Optional[pulumi.Input[builtins.str]] = None,
337
375
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
338
376
  ldap_enabled: Optional[pulumi.Input[builtins.bool]] = None,
@@ -358,7 +396,11 @@ class _StoragePoolState:
358
396
  :param pulumi.Input[builtins.bool] custom_performance_enabled: Optional. True if using Independent Scaling of capacity and performance (Hyperdisk). Default is false.
359
397
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
360
398
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
399
+ :param pulumi.Input[builtins.bool] enable_hot_tier_auto_resize: Flag indicating that the hot-tier threshold will be auto-increased by 10% of the hot-tier when it hits 100%. Default is true.
400
+ The increment will kick in only if the new size after increment is still less than or equal to storage pool size.
361
401
  :param pulumi.Input[builtins.str] encryption_type: Reports if volumes in the pool are encrypted using a Google-managed encryption key or CMEK.
402
+ :param pulumi.Input[builtins.str] hot_tier_size_gib: Total hot tier capacity for the Storage Pool. It is applicable only to Flex service level.
403
+ It should be less than the minimum storage pool size and cannot be more than the current storage pool size. It cannot be decreased once set.
362
404
  :param pulumi.Input[builtins.str] kms_config: Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`.
363
405
  The policy needs to be in the same location as the storage pool.
364
406
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
@@ -401,8 +443,12 @@ class _StoragePoolState:
401
443
  pulumi.set(__self__, "description", description)
402
444
  if effective_labels is not None:
403
445
  pulumi.set(__self__, "effective_labels", effective_labels)
446
+ if enable_hot_tier_auto_resize is not None:
447
+ pulumi.set(__self__, "enable_hot_tier_auto_resize", enable_hot_tier_auto_resize)
404
448
  if encryption_type is not None:
405
449
  pulumi.set(__self__, "encryption_type", encryption_type)
450
+ if hot_tier_size_gib is not None:
451
+ pulumi.set(__self__, "hot_tier_size_gib", hot_tier_size_gib)
406
452
  if kms_config is not None:
407
453
  pulumi.set(__self__, "kms_config", kms_config)
408
454
  if labels is not None:
@@ -508,6 +554,19 @@ class _StoragePoolState:
508
554
  def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
509
555
  pulumi.set(self, "effective_labels", value)
510
556
 
557
+ @property
558
+ @pulumi.getter(name="enableHotTierAutoResize")
559
+ def enable_hot_tier_auto_resize(self) -> Optional[pulumi.Input[builtins.bool]]:
560
+ """
561
+ Flag indicating that the hot-tier threshold will be auto-increased by 10% of the hot-tier when it hits 100%. Default is true.
562
+ The increment will kick in only if the new size after increment is still less than or equal to storage pool size.
563
+ """
564
+ return pulumi.get(self, "enable_hot_tier_auto_resize")
565
+
566
+ @enable_hot_tier_auto_resize.setter
567
+ def enable_hot_tier_auto_resize(self, value: Optional[pulumi.Input[builtins.bool]]):
568
+ pulumi.set(self, "enable_hot_tier_auto_resize", value)
569
+
511
570
  @property
512
571
  @pulumi.getter(name="encryptionType")
513
572
  def encryption_type(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -520,6 +579,19 @@ class _StoragePoolState:
520
579
  def encryption_type(self, value: Optional[pulumi.Input[builtins.str]]):
521
580
  pulumi.set(self, "encryption_type", value)
522
581
 
582
+ @property
583
+ @pulumi.getter(name="hotTierSizeGib")
584
+ def hot_tier_size_gib(self) -> Optional[pulumi.Input[builtins.str]]:
585
+ """
586
+ Total hot tier capacity for the Storage Pool. It is applicable only to Flex service level.
587
+ It should be less than the minimum storage pool size and cannot be more than the current storage pool size. It cannot be decreased once set.
588
+ """
589
+ return pulumi.get(self, "hot_tier_size_gib")
590
+
591
+ @hot_tier_size_gib.setter
592
+ def hot_tier_size_gib(self, value: Optional[pulumi.Input[builtins.str]]):
593
+ pulumi.set(self, "hot_tier_size_gib", value)
594
+
523
595
  @property
524
596
  @pulumi.getter(name="kmsConfig")
525
597
  def kms_config(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -726,6 +798,8 @@ class StoragePool(pulumi.CustomResource):
726
798
  capacity_gib: Optional[pulumi.Input[builtins.str]] = None,
727
799
  custom_performance_enabled: Optional[pulumi.Input[builtins.bool]] = None,
728
800
  description: Optional[pulumi.Input[builtins.str]] = None,
801
+ enable_hot_tier_auto_resize: Optional[pulumi.Input[builtins.bool]] = None,
802
+ hot_tier_size_gib: Optional[pulumi.Input[builtins.str]] = None,
729
803
  kms_config: Optional[pulumi.Input[builtins.str]] = None,
730
804
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
731
805
  ldap_enabled: Optional[pulumi.Input[builtins.bool]] = None,
@@ -814,6 +888,10 @@ class StoragePool(pulumi.CustomResource):
814
888
  :param pulumi.Input[builtins.str] capacity_gib: Capacity of the storage pool (in GiB).
815
889
  :param pulumi.Input[builtins.bool] custom_performance_enabled: Optional. True if using Independent Scaling of capacity and performance (Hyperdisk). Default is false.
816
890
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
891
+ :param pulumi.Input[builtins.bool] enable_hot_tier_auto_resize: Flag indicating that the hot-tier threshold will be auto-increased by 10% of the hot-tier when it hits 100%. Default is true.
892
+ The increment will kick in only if the new size after increment is still less than or equal to storage pool size.
893
+ :param pulumi.Input[builtins.str] hot_tier_size_gib: Total hot tier capacity for the Storage Pool. It is applicable only to Flex service level.
894
+ It should be less than the minimum storage pool size and cannot be more than the current storage pool size. It cannot be decreased once set.
817
895
  :param pulumi.Input[builtins.str] kms_config: Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`.
818
896
  The policy needs to be in the same location as the storage pool.
819
897
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
@@ -932,6 +1010,8 @@ class StoragePool(pulumi.CustomResource):
932
1010
  capacity_gib: Optional[pulumi.Input[builtins.str]] = None,
933
1011
  custom_performance_enabled: Optional[pulumi.Input[builtins.bool]] = None,
934
1012
  description: Optional[pulumi.Input[builtins.str]] = None,
1013
+ enable_hot_tier_auto_resize: Optional[pulumi.Input[builtins.bool]] = None,
1014
+ hot_tier_size_gib: Optional[pulumi.Input[builtins.str]] = None,
935
1015
  kms_config: Optional[pulumi.Input[builtins.str]] = None,
936
1016
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
937
1017
  ldap_enabled: Optional[pulumi.Input[builtins.bool]] = None,
@@ -960,6 +1040,8 @@ class StoragePool(pulumi.CustomResource):
960
1040
  __props__.__dict__["capacity_gib"] = capacity_gib
961
1041
  __props__.__dict__["custom_performance_enabled"] = custom_performance_enabled
962
1042
  __props__.__dict__["description"] = description
1043
+ __props__.__dict__["enable_hot_tier_auto_resize"] = enable_hot_tier_auto_resize
1044
+ __props__.__dict__["hot_tier_size_gib"] = hot_tier_size_gib
963
1045
  __props__.__dict__["kms_config"] = kms_config
964
1046
  __props__.__dict__["labels"] = labels
965
1047
  __props__.__dict__["ldap_enabled"] = ldap_enabled
@@ -1001,7 +1083,9 @@ class StoragePool(pulumi.CustomResource):
1001
1083
  custom_performance_enabled: Optional[pulumi.Input[builtins.bool]] = None,
1002
1084
  description: Optional[pulumi.Input[builtins.str]] = None,
1003
1085
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1086
+ enable_hot_tier_auto_resize: Optional[pulumi.Input[builtins.bool]] = None,
1004
1087
  encryption_type: Optional[pulumi.Input[builtins.str]] = None,
1088
+ hot_tier_size_gib: Optional[pulumi.Input[builtins.str]] = None,
1005
1089
  kms_config: Optional[pulumi.Input[builtins.str]] = None,
1006
1090
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1007
1091
  ldap_enabled: Optional[pulumi.Input[builtins.bool]] = None,
@@ -1032,7 +1116,11 @@ class StoragePool(pulumi.CustomResource):
1032
1116
  :param pulumi.Input[builtins.bool] custom_performance_enabled: Optional. True if using Independent Scaling of capacity and performance (Hyperdisk). Default is false.
1033
1117
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
1034
1118
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
1119
+ :param pulumi.Input[builtins.bool] enable_hot_tier_auto_resize: Flag indicating that the hot-tier threshold will be auto-increased by 10% of the hot-tier when it hits 100%. Default is true.
1120
+ The increment will kick in only if the new size after increment is still less than or equal to storage pool size.
1035
1121
  :param pulumi.Input[builtins.str] encryption_type: Reports if volumes in the pool are encrypted using a Google-managed encryption key or CMEK.
1122
+ :param pulumi.Input[builtins.str] hot_tier_size_gib: Total hot tier capacity for the Storage Pool. It is applicable only to Flex service level.
1123
+ It should be less than the minimum storage pool size and cannot be more than the current storage pool size. It cannot be decreased once set.
1036
1124
  :param pulumi.Input[builtins.str] kms_config: Specifies the CMEK policy to be used for volume encryption. Format: `projects/{{project}}/locations/{{location}}/kmsConfigs/{{name}}`.
1037
1125
  The policy needs to be in the same location as the storage pool.
1038
1126
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
@@ -1073,7 +1161,9 @@ class StoragePool(pulumi.CustomResource):
1073
1161
  __props__.__dict__["custom_performance_enabled"] = custom_performance_enabled
1074
1162
  __props__.__dict__["description"] = description
1075
1163
  __props__.__dict__["effective_labels"] = effective_labels
1164
+ __props__.__dict__["enable_hot_tier_auto_resize"] = enable_hot_tier_auto_resize
1076
1165
  __props__.__dict__["encryption_type"] = encryption_type
1166
+ __props__.__dict__["hot_tier_size_gib"] = hot_tier_size_gib
1077
1167
  __props__.__dict__["kms_config"] = kms_config
1078
1168
  __props__.__dict__["labels"] = labels
1079
1169
  __props__.__dict__["ldap_enabled"] = ldap_enabled
@@ -1141,6 +1231,15 @@ class StoragePool(pulumi.CustomResource):
1141
1231
  """
1142
1232
  return pulumi.get(self, "effective_labels")
1143
1233
 
1234
+ @property
1235
+ @pulumi.getter(name="enableHotTierAutoResize")
1236
+ def enable_hot_tier_auto_resize(self) -> pulumi.Output[Optional[builtins.bool]]:
1237
+ """
1238
+ Flag indicating that the hot-tier threshold will be auto-increased by 10% of the hot-tier when it hits 100%. Default is true.
1239
+ The increment will kick in only if the new size after increment is still less than or equal to storage pool size.
1240
+ """
1241
+ return pulumi.get(self, "enable_hot_tier_auto_resize")
1242
+
1144
1243
  @property
1145
1244
  @pulumi.getter(name="encryptionType")
1146
1245
  def encryption_type(self) -> pulumi.Output[builtins.str]:
@@ -1149,6 +1248,15 @@ class StoragePool(pulumi.CustomResource):
1149
1248
  """
1150
1249
  return pulumi.get(self, "encryption_type")
1151
1250
 
1251
+ @property
1252
+ @pulumi.getter(name="hotTierSizeGib")
1253
+ def hot_tier_size_gib(self) -> pulumi.Output[Optional[builtins.str]]:
1254
+ """
1255
+ Total hot tier capacity for the Storage Pool. It is applicable only to Flex service level.
1256
+ It should be less than the minimum storage pool size and cannot be more than the current storage pool size. It cannot be decreased once set.
1257
+ """
1258
+ return pulumi.get(self, "hot_tier_size_gib")
1259
+
1152
1260
  @property
1153
1261
  @pulumi.getter(name="kmsConfig")
1154
1262
  def kms_config(self) -> pulumi.Output[Optional[builtins.str]]:
@@ -436,10 +436,28 @@ if not MYPY:
436
436
  """
437
437
  IDs of the subnetworks or fully qualified identifiers for the subnetworks
438
438
  """
439
+ allowed_google_producers_resource_hierarchy_levels: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
440
+ """
441
+ List of Projects, Folders, or Organizations from where the Producer instance can be within. For example,
442
+ a network administrator can provide both 'organizations/foo' and 'projects/bar' as
443
+ allowed_google_producers_resource_hierarchy_levels. This allowlists this network to connect with any Producer
444
+ instance within the 'foo' organization or the 'bar' project. By default,
445
+ allowedGoogleProducersResourceHierarchyLevel is empty. The format for each
446
+ allowedGoogleProducersResourceHierarchyLevel is / where is one of 'projects', 'folders', or 'organizations'
447
+ and is either the ID or the number of the resource type. Format for each
448
+ allowedGoogleProducersResourceHierarchyLevel value: 'projects/' or 'folders/' or 'organizations/' Eg.
449
+ [projects/my-project-id, projects/567, folders/891, organizations/123]
450
+ """
439
451
  limit: NotRequired[pulumi.Input[builtins.str]]
440
452
  """
441
453
  Max number of PSC connections for this policy.
442
454
  """
455
+ producer_instance_location: NotRequired[pulumi.Input[builtins.str]]
456
+ """
457
+ ProducerInstanceLocation is used to specify which authorization mechanism to use to determine which projects
458
+ the Producer instance can be within.
459
+ Possible values are: `PRODUCER_INSTANCE_LOCATION_UNSPECIFIED`, `CUSTOM_RESOURCE_HIERARCHY_LEVELS`.
460
+ """
443
461
  elif False:
444
462
  ServiceConnectionPolicyPscConfigArgsDict: TypeAlias = Mapping[str, Any]
445
463
 
@@ -447,14 +465,32 @@ elif False:
447
465
  class ServiceConnectionPolicyPscConfigArgs:
448
466
  def __init__(__self__, *,
449
467
  subnetworks: pulumi.Input[Sequence[pulumi.Input[builtins.str]]],
450
- limit: Optional[pulumi.Input[builtins.str]] = None):
468
+ allowed_google_producers_resource_hierarchy_levels: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
469
+ limit: Optional[pulumi.Input[builtins.str]] = None,
470
+ producer_instance_location: Optional[pulumi.Input[builtins.str]] = None):
451
471
  """
452
472
  :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] subnetworks: IDs of the subnetworks or fully qualified identifiers for the subnetworks
473
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] allowed_google_producers_resource_hierarchy_levels: List of Projects, Folders, or Organizations from where the Producer instance can be within. For example,
474
+ a network administrator can provide both 'organizations/foo' and 'projects/bar' as
475
+ allowed_google_producers_resource_hierarchy_levels. This allowlists this network to connect with any Producer
476
+ instance within the 'foo' organization or the 'bar' project. By default,
477
+ allowedGoogleProducersResourceHierarchyLevel is empty. The format for each
478
+ allowedGoogleProducersResourceHierarchyLevel is / where is one of 'projects', 'folders', or 'organizations'
479
+ and is either the ID or the number of the resource type. Format for each
480
+ allowedGoogleProducersResourceHierarchyLevel value: 'projects/' or 'folders/' or 'organizations/' Eg.
481
+ [projects/my-project-id, projects/567, folders/891, organizations/123]
453
482
  :param pulumi.Input[builtins.str] limit: Max number of PSC connections for this policy.
483
+ :param pulumi.Input[builtins.str] producer_instance_location: ProducerInstanceLocation is used to specify which authorization mechanism to use to determine which projects
484
+ the Producer instance can be within.
485
+ Possible values are: `PRODUCER_INSTANCE_LOCATION_UNSPECIFIED`, `CUSTOM_RESOURCE_HIERARCHY_LEVELS`.
454
486
  """
455
487
  pulumi.set(__self__, "subnetworks", subnetworks)
488
+ if allowed_google_producers_resource_hierarchy_levels is not None:
489
+ pulumi.set(__self__, "allowed_google_producers_resource_hierarchy_levels", allowed_google_producers_resource_hierarchy_levels)
456
490
  if limit is not None:
457
491
  pulumi.set(__self__, "limit", limit)
492
+ if producer_instance_location is not None:
493
+ pulumi.set(__self__, "producer_instance_location", producer_instance_location)
458
494
 
459
495
  @property
460
496
  @pulumi.getter
@@ -468,6 +504,26 @@ class ServiceConnectionPolicyPscConfigArgs:
468
504
  def subnetworks(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
469
505
  pulumi.set(self, "subnetworks", value)
470
506
 
507
+ @property
508
+ @pulumi.getter(name="allowedGoogleProducersResourceHierarchyLevels")
509
+ def allowed_google_producers_resource_hierarchy_levels(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
510
+ """
511
+ List of Projects, Folders, or Organizations from where the Producer instance can be within. For example,
512
+ a network administrator can provide both 'organizations/foo' and 'projects/bar' as
513
+ allowed_google_producers_resource_hierarchy_levels. This allowlists this network to connect with any Producer
514
+ instance within the 'foo' organization or the 'bar' project. By default,
515
+ allowedGoogleProducersResourceHierarchyLevel is empty. The format for each
516
+ allowedGoogleProducersResourceHierarchyLevel is / where is one of 'projects', 'folders', or 'organizations'
517
+ and is either the ID or the number of the resource type. Format for each
518
+ allowedGoogleProducersResourceHierarchyLevel value: 'projects/' or 'folders/' or 'organizations/' Eg.
519
+ [projects/my-project-id, projects/567, folders/891, organizations/123]
520
+ """
521
+ return pulumi.get(self, "allowed_google_producers_resource_hierarchy_levels")
522
+
523
+ @allowed_google_producers_resource_hierarchy_levels.setter
524
+ def allowed_google_producers_resource_hierarchy_levels(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
525
+ pulumi.set(self, "allowed_google_producers_resource_hierarchy_levels", value)
526
+
471
527
  @property
472
528
  @pulumi.getter
473
529
  def limit(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -480,6 +536,20 @@ class ServiceConnectionPolicyPscConfigArgs:
480
536
  def limit(self, value: Optional[pulumi.Input[builtins.str]]):
481
537
  pulumi.set(self, "limit", value)
482
538
 
539
+ @property
540
+ @pulumi.getter(name="producerInstanceLocation")
541
+ def producer_instance_location(self) -> Optional[pulumi.Input[builtins.str]]:
542
+ """
543
+ ProducerInstanceLocation is used to specify which authorization mechanism to use to determine which projects
544
+ the Producer instance can be within.
545
+ Possible values are: `PRODUCER_INSTANCE_LOCATION_UNSPECIFIED`, `CUSTOM_RESOURCE_HIERARCHY_LEVELS`.
546
+ """
547
+ return pulumi.get(self, "producer_instance_location")
548
+
549
+ @producer_instance_location.setter
550
+ def producer_instance_location(self, value: Optional[pulumi.Input[builtins.str]]):
551
+ pulumi.set(self, "producer_instance_location", value)
552
+
483
553
 
484
554
  if not MYPY:
485
555
  class ServiceConnectionPolicyPscConnectionArgsDict(TypedDict):
@@ -319,16 +319,53 @@ class PolicyBasedRouteWarning(dict):
319
319
 
320
320
  @pulumi.output_type
321
321
  class ServiceConnectionPolicyPscConfig(dict):
322
+ @staticmethod
323
+ def __key_warning(key: str):
324
+ suggest = None
325
+ if key == "allowedGoogleProducersResourceHierarchyLevels":
326
+ suggest = "allowed_google_producers_resource_hierarchy_levels"
327
+ elif key == "producerInstanceLocation":
328
+ suggest = "producer_instance_location"
329
+
330
+ if suggest:
331
+ pulumi.log.warn(f"Key '{key}' not found in ServiceConnectionPolicyPscConfig. Access the value via the '{suggest}' property getter instead.")
332
+
333
+ def __getitem__(self, key: str) -> Any:
334
+ ServiceConnectionPolicyPscConfig.__key_warning(key)
335
+ return super().__getitem__(key)
336
+
337
+ def get(self, key: str, default = None) -> Any:
338
+ ServiceConnectionPolicyPscConfig.__key_warning(key)
339
+ return super().get(key, default)
340
+
322
341
  def __init__(__self__, *,
323
342
  subnetworks: Sequence[builtins.str],
324
- limit: Optional[builtins.str] = None):
343
+ allowed_google_producers_resource_hierarchy_levels: Optional[Sequence[builtins.str]] = None,
344
+ limit: Optional[builtins.str] = None,
345
+ producer_instance_location: Optional[builtins.str] = None):
325
346
  """
326
347
  :param Sequence[builtins.str] subnetworks: IDs of the subnetworks or fully qualified identifiers for the subnetworks
348
+ :param Sequence[builtins.str] allowed_google_producers_resource_hierarchy_levels: List of Projects, Folders, or Organizations from where the Producer instance can be within. For example,
349
+ a network administrator can provide both 'organizations/foo' and 'projects/bar' as
350
+ allowed_google_producers_resource_hierarchy_levels. This allowlists this network to connect with any Producer
351
+ instance within the 'foo' organization or the 'bar' project. By default,
352
+ allowedGoogleProducersResourceHierarchyLevel is empty. The format for each
353
+ allowedGoogleProducersResourceHierarchyLevel is / where is one of 'projects', 'folders', or 'organizations'
354
+ and is either the ID or the number of the resource type. Format for each
355
+ allowedGoogleProducersResourceHierarchyLevel value: 'projects/' or 'folders/' or 'organizations/' Eg.
356
+ [projects/my-project-id, projects/567, folders/891, organizations/123]
327
357
  :param builtins.str limit: Max number of PSC connections for this policy.
358
+ :param builtins.str producer_instance_location: ProducerInstanceLocation is used to specify which authorization mechanism to use to determine which projects
359
+ the Producer instance can be within.
360
+ Possible values are: `PRODUCER_INSTANCE_LOCATION_UNSPECIFIED`, `CUSTOM_RESOURCE_HIERARCHY_LEVELS`.
328
361
  """
329
362
  pulumi.set(__self__, "subnetworks", subnetworks)
363
+ if allowed_google_producers_resource_hierarchy_levels is not None:
364
+ pulumi.set(__self__, "allowed_google_producers_resource_hierarchy_levels", allowed_google_producers_resource_hierarchy_levels)
330
365
  if limit is not None:
331
366
  pulumi.set(__self__, "limit", limit)
367
+ if producer_instance_location is not None:
368
+ pulumi.set(__self__, "producer_instance_location", producer_instance_location)
332
369
 
333
370
  @property
334
371
  @pulumi.getter
@@ -338,6 +375,22 @@ class ServiceConnectionPolicyPscConfig(dict):
338
375
  """
339
376
  return pulumi.get(self, "subnetworks")
340
377
 
378
+ @property
379
+ @pulumi.getter(name="allowedGoogleProducersResourceHierarchyLevels")
380
+ def allowed_google_producers_resource_hierarchy_levels(self) -> Optional[Sequence[builtins.str]]:
381
+ """
382
+ List of Projects, Folders, or Organizations from where the Producer instance can be within. For example,
383
+ a network administrator can provide both 'organizations/foo' and 'projects/bar' as
384
+ allowed_google_producers_resource_hierarchy_levels. This allowlists this network to connect with any Producer
385
+ instance within the 'foo' organization or the 'bar' project. By default,
386
+ allowedGoogleProducersResourceHierarchyLevel is empty. The format for each
387
+ allowedGoogleProducersResourceHierarchyLevel is / where is one of 'projects', 'folders', or 'organizations'
388
+ and is either the ID or the number of the resource type. Format for each
389
+ allowedGoogleProducersResourceHierarchyLevel value: 'projects/' or 'folders/' or 'organizations/' Eg.
390
+ [projects/my-project-id, projects/567, folders/891, organizations/123]
391
+ """
392
+ return pulumi.get(self, "allowed_google_producers_resource_hierarchy_levels")
393
+
341
394
  @property
342
395
  @pulumi.getter
343
396
  def limit(self) -> Optional[builtins.str]:
@@ -346,6 +399,16 @@ class ServiceConnectionPolicyPscConfig(dict):
346
399
  """
347
400
  return pulumi.get(self, "limit")
348
401
 
402
+ @property
403
+ @pulumi.getter(name="producerInstanceLocation")
404
+ def producer_instance_location(self) -> Optional[builtins.str]:
405
+ """
406
+ ProducerInstanceLocation is used to specify which authorization mechanism to use to determine which projects
407
+ the Producer instance can be within.
408
+ Possible values are: `PRODUCER_INSTANCE_LOCATION_UNSPECIFIED`, `CUSTOM_RESOURCE_HIERARCHY_LEVELS`.
409
+ """
410
+ return pulumi.get(self, "producer_instance_location")
411
+
349
412
 
350
413
  @pulumi.output_type
351
414
  class ServiceConnectionPolicyPscConnection(dict):
@@ -689,15 +689,15 @@ class Spoke(pulumi.CustomResource):
689
689
  import pulumi_gcp as gcp
690
690
 
691
691
  network = gcp.compute.Network("network",
692
- name="tf-test-network_35305",
692
+ name="tf-test-network_62793",
693
693
  auto_create_subnetworks=False)
694
694
  subnetwork = gcp.compute.Subnetwork("subnetwork",
695
- name="tf-test-subnet_62793",
695
+ name="tf-test-subnet_55438",
696
696
  ip_cidr_range="10.0.0.0/28",
697
697
  region="us-central1",
698
698
  network=network.self_link)
699
699
  instance = gcp.compute.Instance("instance",
700
- name="tf-test-instance_55438",
700
+ name="tf-test-instance_32706",
701
701
  machine_type="e2-medium",
702
702
  can_ip_forward=True,
703
703
  zone="us-central1-a",
@@ -714,13 +714,13 @@ class Spoke(pulumi.CustomResource):
714
714
  }],
715
715
  }])
716
716
  basic_hub = gcp.networkconnectivity.Hub("basic_hub",
717
- name="tf-test-hub_32706",
717
+ name="tf-test-hub_49082",
718
718
  description="A sample hub",
719
719
  labels={
720
720
  "label-two": "value-one",
721
721
  })
722
722
  primary = gcp.networkconnectivity.Spoke("primary",
723
- name="tf-test-name_49082",
723
+ name="tf-test-name_60365",
724
724
  location="us-central1",
725
725
  description="A sample spoke with a linked routher appliance instance",
726
726
  labels={
@@ -952,8 +952,8 @@ class Spoke(pulumi.CustomResource):
952
952
  hub=star_hub.id,
953
953
  auto_accept={
954
954
  "auto_accept_projects": [
955
- "foo_60365",
956
- "bar_80215",
955
+ "foo_80215",
956
+ "bar_59033",
957
957
  ],
958
958
  })
959
959
  primary = gcp.networkconnectivity.Spoke("primary",
@@ -1150,15 +1150,15 @@ class Spoke(pulumi.CustomResource):
1150
1150
  import pulumi_gcp as gcp
1151
1151
 
1152
1152
  network = gcp.compute.Network("network",
1153
- name="tf-test-network_35305",
1153
+ name="tf-test-network_62793",
1154
1154
  auto_create_subnetworks=False)
1155
1155
  subnetwork = gcp.compute.Subnetwork("subnetwork",
1156
- name="tf-test-subnet_62793",
1156
+ name="tf-test-subnet_55438",
1157
1157
  ip_cidr_range="10.0.0.0/28",
1158
1158
  region="us-central1",
1159
1159
  network=network.self_link)
1160
1160
  instance = gcp.compute.Instance("instance",
1161
- name="tf-test-instance_55438",
1161
+ name="tf-test-instance_32706",
1162
1162
  machine_type="e2-medium",
1163
1163
  can_ip_forward=True,
1164
1164
  zone="us-central1-a",
@@ -1175,13 +1175,13 @@ class Spoke(pulumi.CustomResource):
1175
1175
  }],
1176
1176
  }])
1177
1177
  basic_hub = gcp.networkconnectivity.Hub("basic_hub",
1178
- name="tf-test-hub_32706",
1178
+ name="tf-test-hub_49082",
1179
1179
  description="A sample hub",
1180
1180
  labels={
1181
1181
  "label-two": "value-one",
1182
1182
  })
1183
1183
  primary = gcp.networkconnectivity.Spoke("primary",
1184
- name="tf-test-name_49082",
1184
+ name="tf-test-name_60365",
1185
1185
  location="us-central1",
1186
1186
  description="A sample spoke with a linked routher appliance instance",
1187
1187
  labels={
@@ -1413,8 +1413,8 @@ class Spoke(pulumi.CustomResource):
1413
1413
  hub=star_hub.id,
1414
1414
  auto_accept={
1415
1415
  "auto_accept_projects": [
1416
- "foo_60365",
1417
- "bar_80215",
1416
+ "foo_80215",
1417
+ "bar_59033",
1418
1418
  ],
1419
1419
  })
1420
1420
  primary = gcp.networkconnectivity.Spoke("primary",
@@ -423,6 +423,8 @@ class Runtime(pulumi.CustomResource):
423
423
  virtual_machine: Optional[pulumi.Input[Union['RuntimeVirtualMachineArgs', 'RuntimeVirtualMachineArgsDict']]] = None,
424
424
  __props__=None):
425
425
  """
426
+ > **Warning:** `google_notebook_runtime` is deprecated and will be removed in a future major release. Use `workbench.Instance` instead.
427
+
426
428
  A Cloud AI Platform Notebook runtime.
427
429
 
428
430
  > **Note:** Due to limitations of the Notebooks Runtime API, many fields
@@ -651,6 +653,8 @@ class Runtime(pulumi.CustomResource):
651
653
  args: RuntimeArgs,
652
654
  opts: Optional[pulumi.ResourceOptions] = None):
653
655
  """
656
+ > **Warning:** `google_notebook_runtime` is deprecated and will be removed in a future major release. Use `workbench.Instance` instead.
657
+
654
658
  A Cloud AI Platform Notebook runtime.
655
659
 
656
660
  > **Note:** Due to limitations of the Notebooks Runtime API, many fields
@@ -315,7 +315,7 @@ class Policy(pulumi.CustomResource):
315
315
  import pulumi_gcp as gcp
316
316
 
317
317
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
318
- name="custom.disableGkeAutoUpgrade_32081",
318
+ name="custom.disableGkeAutoUpgrade_10393",
319
319
  parent="organizations/123456789",
320
320
  display_name="Disable GKE auto upgrade",
321
321
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
@@ -504,7 +504,7 @@ class Policy(pulumi.CustomResource):
504
504
  import pulumi_gcp as gcp
505
505
 
506
506
  constraint = gcp.orgpolicy.CustomConstraint("constraint",
507
- name="custom.disableGkeAutoUpgrade_32081",
507
+ name="custom.disableGkeAutoUpgrade_10393",
508
508
  parent="organizations/123456789",
509
509
  display_name="Disable GKE auto upgrade",
510
510
  description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
@@ -1156,7 +1156,7 @@ class Subscription(pulumi.CustomResource):
1156
1156
  cloud_storage_config={
1157
1157
  "bucket": example.name,
1158
1158
  "filename_prefix": "pre-",
1159
- "filename_suffix": "-_10393",
1159
+ "filename_suffix": "-_33052",
1160
1160
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1161
1161
  "max_bytes": 1000,
1162
1162
  "max_duration": "300s",
@@ -1189,7 +1189,7 @@ class Subscription(pulumi.CustomResource):
1189
1189
  cloud_storage_config={
1190
1190
  "bucket": example.name,
1191
1191
  "filename_prefix": "pre-",
1192
- "filename_suffix": "-_33052",
1192
+ "filename_suffix": "-_3684",
1193
1193
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1194
1194
  "max_bytes": 1000,
1195
1195
  "max_duration": "300s",
@@ -1228,7 +1228,7 @@ class Subscription(pulumi.CustomResource):
1228
1228
  cloud_storage_config={
1229
1229
  "bucket": example.name,
1230
1230
  "filename_prefix": "pre-",
1231
- "filename_suffix": "-_3684",
1231
+ "filename_suffix": "-_10719",
1232
1232
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1233
1233
  "max_bytes": 1000,
1234
1234
  "max_duration": "300s",
@@ -1599,7 +1599,7 @@ class Subscription(pulumi.CustomResource):
1599
1599
  cloud_storage_config={
1600
1600
  "bucket": example.name,
1601
1601
  "filename_prefix": "pre-",
1602
- "filename_suffix": "-_10393",
1602
+ "filename_suffix": "-_33052",
1603
1603
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1604
1604
  "max_bytes": 1000,
1605
1605
  "max_duration": "300s",
@@ -1632,7 +1632,7 @@ class Subscription(pulumi.CustomResource):
1632
1632
  cloud_storage_config={
1633
1633
  "bucket": example.name,
1634
1634
  "filename_prefix": "pre-",
1635
- "filename_suffix": "-_33052",
1635
+ "filename_suffix": "-_3684",
1636
1636
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1637
1637
  "max_bytes": 1000,
1638
1638
  "max_duration": "300s",
@@ -1671,7 +1671,7 @@ class Subscription(pulumi.CustomResource):
1671
1671
  cloud_storage_config={
1672
1672
  "bucket": example.name,
1673
1673
  "filename_prefix": "pre-",
1674
- "filename_suffix": "-_3684",
1674
+ "filename_suffix": "-_10719",
1675
1675
  "filename_datetime_format": "YYYY-MM-DD/hh_mm_ssZ",
1676
1676
  "max_bytes": 1000,
1677
1677
  "max_duration": "300s",
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "gcp",
4
- "version": "8.35.0-alpha.1750142992"
4
+ "version": "8.35.0-alpha.1750225231"
5
5
  }