pulumi-gcp 8.41.0a1755297349__py3-none-any.whl → 8.41.0a1755638986__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 (42) hide show
  1. pulumi_gcp/__init__.py +16 -0
  2. pulumi_gcp/artifactregistry/__init__.py +3 -0
  3. pulumi_gcp/artifactregistry/get_package.py +220 -0
  4. pulumi_gcp/artifactregistry/get_repositories.py +160 -0
  5. pulumi_gcp/artifactregistry/get_version.py +261 -0
  6. pulumi_gcp/artifactregistry/outputs.py +100 -0
  7. pulumi_gcp/backupdisasterrecovery/backup_plan.py +114 -7
  8. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +12 -1
  9. pulumi_gcp/bigquery/dataset.py +2 -2
  10. pulumi_gcp/composer/user_workloads_config_map.py +26 -2
  11. pulumi_gcp/compute/_inputs.py +355 -0
  12. pulumi_gcp/compute/get_region_backend_service.py +12 -1
  13. pulumi_gcp/compute/outputs.py +404 -0
  14. pulumi_gcp/compute/region_backend_service.py +257 -0
  15. pulumi_gcp/compute/region_security_policy.py +54 -0
  16. pulumi_gcp/compute/service_attachment.py +126 -0
  17. pulumi_gcp/container/_inputs.py +435 -15
  18. pulumi_gcp/container/outputs.py +494 -13
  19. pulumi_gcp/diagflow/__init__.py +1 -0
  20. pulumi_gcp/diagflow/_inputs.py +168 -0
  21. pulumi_gcp/diagflow/cx_playbook.py +967 -0
  22. pulumi_gcp/diagflow/outputs.py +117 -0
  23. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +24 -3
  24. pulumi_gcp/memorystore/get_instance.py +12 -1
  25. pulumi_gcp/memorystore/instance.py +70 -0
  26. pulumi_gcp/pubsub/subscription.py +84 -0
  27. pulumi_gcp/pubsub/topic.py +80 -0
  28. pulumi_gcp/pulumi-plugin.json +1 -1
  29. pulumi_gcp/sql/_inputs.py +82 -4
  30. pulumi_gcp/sql/database_instance.py +108 -7
  31. pulumi_gcp/sql/get_database_instance.py +12 -1
  32. pulumi_gcp/sql/outputs.py +154 -7
  33. pulumi_gcp/storage/_inputs.py +104 -12
  34. pulumi_gcp/storage/outputs.py +84 -7
  35. pulumi_gcp/vertex/__init__.py +1 -0
  36. pulumi_gcp/vertex/_inputs.py +122 -0
  37. pulumi_gcp/vertex/ai_rag_engine_config.py +354 -0
  38. pulumi_gcp/vertex/outputs.py +69 -0
  39. {pulumi_gcp-8.41.0a1755297349.dist-info → pulumi_gcp-8.41.0a1755638986.dist-info}/METADATA +1 -1
  40. {pulumi_gcp-8.41.0a1755297349.dist-info → pulumi_gcp-8.41.0a1755638986.dist-info}/RECORD +42 -37
  41. {pulumi_gcp-8.41.0a1755297349.dist-info → pulumi_gcp-8.41.0a1755638986.dist-info}/WHEEL +0 -0
  42. {pulumi_gcp-8.41.0a1755297349.dist-info → pulumi_gcp-8.41.0a1755638986.dist-info}/top_level.txt +0 -0
@@ -170,6 +170,9 @@ __all__ = [
170
170
  'CxPageTransitionRouteTriggerFulfillmentMessageTelephonyTransferCall',
171
171
  'CxPageTransitionRouteTriggerFulfillmentMessageText',
172
172
  'CxPageTransitionRouteTriggerFulfillmentSetParameterAction',
173
+ 'CxPlaybookInstruction',
174
+ 'CxPlaybookInstructionStep',
175
+ 'CxPlaybookLlmModelSettings',
173
176
  'CxSecuritySettingsAudioExportSettings',
174
177
  'CxSecuritySettingsInsightsExportSettings',
175
178
  'CxTestCaseLastTestResult',
@@ -9561,6 +9564,120 @@ class CxPageTransitionRouteTriggerFulfillmentSetParameterAction(dict):
9561
9564
  return pulumi.get(self, "value")
9562
9565
 
9563
9566
 
9567
+ @pulumi.output_type
9568
+ class CxPlaybookInstruction(dict):
9569
+ def __init__(__self__, *,
9570
+ guidelines: Optional[_builtins.str] = None,
9571
+ steps: Optional[Sequence['outputs.CxPlaybookInstructionStep']] = None):
9572
+ """
9573
+ :param _builtins.str guidelines: General guidelines for the playbook. These are unstructured instructions that are not directly part of the goal, e.g. "Always be polite". It's valid for this text to be long and used instead of steps altogether.
9574
+ :param Sequence['CxPlaybookInstructionStepArgs'] steps: Ordered list of step by step execution instructions to accomplish target goal.
9575
+ Structure is documented below.
9576
+ """
9577
+ if guidelines is not None:
9578
+ pulumi.set(__self__, "guidelines", guidelines)
9579
+ if steps is not None:
9580
+ pulumi.set(__self__, "steps", steps)
9581
+
9582
+ @_builtins.property
9583
+ @pulumi.getter
9584
+ def guidelines(self) -> Optional[_builtins.str]:
9585
+ """
9586
+ General guidelines for the playbook. These are unstructured instructions that are not directly part of the goal, e.g. "Always be polite". It's valid for this text to be long and used instead of steps altogether.
9587
+ """
9588
+ return pulumi.get(self, "guidelines")
9589
+
9590
+ @_builtins.property
9591
+ @pulumi.getter
9592
+ def steps(self) -> Optional[Sequence['outputs.CxPlaybookInstructionStep']]:
9593
+ """
9594
+ Ordered list of step by step execution instructions to accomplish target goal.
9595
+ Structure is documented below.
9596
+ """
9597
+ return pulumi.get(self, "steps")
9598
+
9599
+
9600
+ @pulumi.output_type
9601
+ class CxPlaybookInstructionStep(dict):
9602
+ def __init__(__self__, *,
9603
+ steps: Optional[_builtins.str] = None,
9604
+ text: Optional[_builtins.str] = None):
9605
+ """
9606
+ :param _builtins.str steps: Sub-processing needed to execute the current step.
9607
+ This field uses JSON data as a string. The value provided must be a valid JSON representation documented in [Step](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.playbooks#step).
9608
+ :param _builtins.str text: Step instruction in text format.
9609
+ """
9610
+ if steps is not None:
9611
+ pulumi.set(__self__, "steps", steps)
9612
+ if text is not None:
9613
+ pulumi.set(__self__, "text", text)
9614
+
9615
+ @_builtins.property
9616
+ @pulumi.getter
9617
+ def steps(self) -> Optional[_builtins.str]:
9618
+ """
9619
+ Sub-processing needed to execute the current step.
9620
+ This field uses JSON data as a string. The value provided must be a valid JSON representation documented in [Step](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.playbooks#step).
9621
+ """
9622
+ return pulumi.get(self, "steps")
9623
+
9624
+ @_builtins.property
9625
+ @pulumi.getter
9626
+ def text(self) -> Optional[_builtins.str]:
9627
+ """
9628
+ Step instruction in text format.
9629
+ """
9630
+ return pulumi.get(self, "text")
9631
+
9632
+
9633
+ @pulumi.output_type
9634
+ class CxPlaybookLlmModelSettings(dict):
9635
+ @staticmethod
9636
+ def __key_warning(key: str):
9637
+ suggest = None
9638
+ if key == "promptText":
9639
+ suggest = "prompt_text"
9640
+
9641
+ if suggest:
9642
+ pulumi.log.warn(f"Key '{key}' not found in CxPlaybookLlmModelSettings. Access the value via the '{suggest}' property getter instead.")
9643
+
9644
+ def __getitem__(self, key: str) -> Any:
9645
+ CxPlaybookLlmModelSettings.__key_warning(key)
9646
+ return super().__getitem__(key)
9647
+
9648
+ def get(self, key: str, default = None) -> Any:
9649
+ CxPlaybookLlmModelSettings.__key_warning(key)
9650
+ return super().get(key, default)
9651
+
9652
+ def __init__(__self__, *,
9653
+ model: Optional[_builtins.str] = None,
9654
+ prompt_text: Optional[_builtins.str] = None):
9655
+ """
9656
+ :param _builtins.str model: The selected LLM model.
9657
+ :param _builtins.str prompt_text: The custom prompt to use.
9658
+ """
9659
+ if model is not None:
9660
+ pulumi.set(__self__, "model", model)
9661
+ if prompt_text is not None:
9662
+ pulumi.set(__self__, "prompt_text", prompt_text)
9663
+
9664
+ @_builtins.property
9665
+ @pulumi.getter
9666
+ def model(self) -> Optional[_builtins.str]:
9667
+ """
9668
+ The selected LLM model.
9669
+ """
9670
+ return pulumi.get(self, "model")
9671
+
9672
+ @_builtins.property
9673
+ @pulumi.getter(name="promptText")
9674
+ def prompt_text(self) -> Optional[_builtins.str]:
9675
+ """
9676
+ The custom prompt to use.
9677
+ """
9678
+ return pulumi.get(self, "prompt_text")
9679
+
9680
+
9564
9681
  @pulumi.output_type
9565
9682
  class CxSecuritySettingsAudioExportSettings(dict):
9566
9683
  @staticmethod
@@ -31,6 +31,7 @@ class VmwareAdminClusterArgs:
31
31
  bootstrap_cluster_membership: Optional[pulumi.Input[_builtins.str]] = None,
32
32
  control_plane_node: Optional[pulumi.Input['VmwareAdminClusterControlPlaneNodeArgs']] = None,
33
33
  description: Optional[pulumi.Input[_builtins.str]] = None,
34
+ enable_advanced_cluster: Optional[pulumi.Input[_builtins.bool]] = None,
34
35
  image_type: Optional[pulumi.Input[_builtins.str]] = None,
35
36
  load_balancer: Optional[pulumi.Input['VmwareAdminClusterLoadBalancerArgs']] = None,
36
37
  name: Optional[pulumi.Input[_builtins.str]] = None,
@@ -68,6 +69,7 @@ class VmwareAdminClusterArgs:
68
69
  :param pulumi.Input['VmwareAdminClusterControlPlaneNodeArgs'] control_plane_node: The VMware admin cluster control plane node configuration.
69
70
  Structure is documented below.
70
71
  :param pulumi.Input[_builtins.str] description: A human readable description of this VMware admin cluster.
72
+ :param pulumi.Input[_builtins.bool] enable_advanced_cluster: If set, the advanced cluster feature is enabled.
71
73
  :param pulumi.Input[_builtins.str] image_type: The OS image type for the VMware admin cluster.
72
74
  :param pulumi.Input['VmwareAdminClusterLoadBalancerArgs'] load_balancer: Specifies the load balancer configuration for VMware admin cluster.
73
75
  Structure is documented below.
@@ -100,6 +102,8 @@ class VmwareAdminClusterArgs:
100
102
  pulumi.set(__self__, "control_plane_node", control_plane_node)
101
103
  if description is not None:
102
104
  pulumi.set(__self__, "description", description)
105
+ if enable_advanced_cluster is not None:
106
+ pulumi.set(__self__, "enable_advanced_cluster", enable_advanced_cluster)
103
107
  if image_type is not None:
104
108
  pulumi.set(__self__, "image_type", image_type)
105
109
  if load_balancer is not None:
@@ -254,6 +258,18 @@ class VmwareAdminClusterArgs:
254
258
  def description(self, value: Optional[pulumi.Input[_builtins.str]]):
255
259
  pulumi.set(self, "description", value)
256
260
 
261
+ @_builtins.property
262
+ @pulumi.getter(name="enableAdvancedCluster")
263
+ def enable_advanced_cluster(self) -> Optional[pulumi.Input[_builtins.bool]]:
264
+ """
265
+ If set, the advanced cluster feature is enabled.
266
+ """
267
+ return pulumi.get(self, "enable_advanced_cluster")
268
+
269
+ @enable_advanced_cluster.setter
270
+ def enable_advanced_cluster(self, value: Optional[pulumi.Input[_builtins.bool]]):
271
+ pulumi.set(self, "enable_advanced_cluster", value)
272
+
257
273
  @_builtins.property
258
274
  @pulumi.getter(name="imageType")
259
275
  def image_type(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -930,6 +946,7 @@ class VmwareAdminCluster(pulumi.CustomResource):
930
946
  bootstrap_cluster_membership: Optional[pulumi.Input[_builtins.str]] = None,
931
947
  control_plane_node: Optional[pulumi.Input[Union['VmwareAdminClusterControlPlaneNodeArgs', 'VmwareAdminClusterControlPlaneNodeArgsDict']]] = None,
932
948
  description: Optional[pulumi.Input[_builtins.str]] = None,
949
+ enable_advanced_cluster: Optional[pulumi.Input[_builtins.bool]] = None,
933
950
  image_type: Optional[pulumi.Input[_builtins.str]] = None,
934
951
  load_balancer: Optional[pulumi.Input[Union['VmwareAdminClusterLoadBalancerArgs', 'VmwareAdminClusterLoadBalancerArgsDict']]] = None,
935
952
  location: Optional[pulumi.Input[_builtins.str]] = None,
@@ -1108,8 +1125,9 @@ class VmwareAdminCluster(pulumi.CustomResource):
1108
1125
  location="us-west1",
1109
1126
  description="test admin cluster",
1110
1127
  bootstrap_cluster_membership="projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
1111
- on_prem_version="1.31.0-gke.35",
1128
+ on_prem_version="1.33.0-gke.35",
1112
1129
  image_type="ubuntu_containerd",
1130
+ enable_advanced_cluster=True,
1113
1131
  vcenter={
1114
1132
  "resource_pool": "test resource pool",
1115
1133
  "datastore": "test data store",
@@ -1196,6 +1214,7 @@ class VmwareAdminCluster(pulumi.CustomResource):
1196
1214
  :param pulumi.Input[Union['VmwareAdminClusterControlPlaneNodeArgs', 'VmwareAdminClusterControlPlaneNodeArgsDict']] control_plane_node: The VMware admin cluster control plane node configuration.
1197
1215
  Structure is documented below.
1198
1216
  :param pulumi.Input[_builtins.str] description: A human readable description of this VMware admin cluster.
1217
+ :param pulumi.Input[_builtins.bool] enable_advanced_cluster: If set, the advanced cluster feature is enabled.
1199
1218
  :param pulumi.Input[_builtins.str] image_type: The OS image type for the VMware admin cluster.
1200
1219
  :param pulumi.Input[Union['VmwareAdminClusterLoadBalancerArgs', 'VmwareAdminClusterLoadBalancerArgsDict']] load_balancer: Specifies the load balancer configuration for VMware admin cluster.
1201
1220
  Structure is documented below.
@@ -1386,8 +1405,9 @@ class VmwareAdminCluster(pulumi.CustomResource):
1386
1405
  location="us-west1",
1387
1406
  description="test admin cluster",
1388
1407
  bootstrap_cluster_membership="projects/870316890899/locations/global/memberships/gkeonprem-terraform-test",
1389
- on_prem_version="1.31.0-gke.35",
1408
+ on_prem_version="1.33.0-gke.35",
1390
1409
  image_type="ubuntu_containerd",
1410
+ enable_advanced_cluster=True,
1391
1411
  vcenter={
1392
1412
  "resource_pool": "test resource pool",
1393
1413
  "datastore": "test data store",
@@ -1471,6 +1491,7 @@ class VmwareAdminCluster(pulumi.CustomResource):
1471
1491
  bootstrap_cluster_membership: Optional[pulumi.Input[_builtins.str]] = None,
1472
1492
  control_plane_node: Optional[pulumi.Input[Union['VmwareAdminClusterControlPlaneNodeArgs', 'VmwareAdminClusterControlPlaneNodeArgsDict']]] = None,
1473
1493
  description: Optional[pulumi.Input[_builtins.str]] = None,
1494
+ enable_advanced_cluster: Optional[pulumi.Input[_builtins.bool]] = None,
1474
1495
  image_type: Optional[pulumi.Input[_builtins.str]] = None,
1475
1496
  load_balancer: Optional[pulumi.Input[Union['VmwareAdminClusterLoadBalancerArgs', 'VmwareAdminClusterLoadBalancerArgsDict']]] = None,
1476
1497
  location: Optional[pulumi.Input[_builtins.str]] = None,
@@ -1498,6 +1519,7 @@ class VmwareAdminCluster(pulumi.CustomResource):
1498
1519
  __props__.__dict__["bootstrap_cluster_membership"] = bootstrap_cluster_membership
1499
1520
  __props__.__dict__["control_plane_node"] = control_plane_node
1500
1521
  __props__.__dict__["description"] = description
1522
+ __props__.__dict__["enable_advanced_cluster"] = enable_advanced_cluster
1501
1523
  __props__.__dict__["image_type"] = image_type
1502
1524
  __props__.__dict__["load_balancer"] = load_balancer
1503
1525
  if location is None and not opts.urn:
@@ -1514,7 +1536,6 @@ class VmwareAdminCluster(pulumi.CustomResource):
1514
1536
  __props__.__dict__["vcenter"] = vcenter
1515
1537
  __props__.__dict__["create_time"] = None
1516
1538
  __props__.__dict__["effective_annotations"] = None
1517
- __props__.__dict__["enable_advanced_cluster"] = None
1518
1539
  __props__.__dict__["endpoint"] = None
1519
1540
  __props__.__dict__["etag"] = None
1520
1541
  __props__.__dict__["fleets"] = None
@@ -27,7 +27,10 @@ class GetInstanceResult:
27
27
  """
28
28
  A collection of values returned by getInstance.
29
29
  """
30
- def __init__(__self__, authorization_mode=None, automated_backup_configs=None, backup_collection=None, create_time=None, cross_instance_replication_configs=None, deletion_protection_enabled=None, desired_auto_created_endpoints=None, desired_psc_auto_connections=None, discovery_endpoints=None, effective_labels=None, endpoints=None, engine_configs=None, engine_version=None, gcs_sources=None, id=None, instance_id=None, kms_key=None, labels=None, location=None, maintenance_policies=None, maintenance_schedules=None, managed_backup_sources=None, managed_server_cas=None, mode=None, name=None, node_configs=None, node_type=None, persistence_configs=None, project=None, psc_attachment_details=None, psc_auto_connections=None, pulumi_labels=None, replica_count=None, shard_count=None, state=None, state_infos=None, transit_encryption_mode=None, uid=None, update_time=None, zone_distribution_configs=None):
30
+ def __init__(__self__, allow_fewer_zones_deployment=None, authorization_mode=None, automated_backup_configs=None, backup_collection=None, create_time=None, cross_instance_replication_configs=None, deletion_protection_enabled=None, desired_auto_created_endpoints=None, desired_psc_auto_connections=None, discovery_endpoints=None, effective_labels=None, endpoints=None, engine_configs=None, engine_version=None, gcs_sources=None, id=None, instance_id=None, kms_key=None, labels=None, location=None, maintenance_policies=None, maintenance_schedules=None, managed_backup_sources=None, managed_server_cas=None, mode=None, name=None, node_configs=None, node_type=None, persistence_configs=None, project=None, psc_attachment_details=None, psc_auto_connections=None, pulumi_labels=None, replica_count=None, shard_count=None, state=None, state_infos=None, transit_encryption_mode=None, uid=None, update_time=None, zone_distribution_configs=None):
31
+ if allow_fewer_zones_deployment and not isinstance(allow_fewer_zones_deployment, bool):
32
+ raise TypeError("Expected argument 'allow_fewer_zones_deployment' to be a bool")
33
+ pulumi.set(__self__, "allow_fewer_zones_deployment", allow_fewer_zones_deployment)
31
34
  if authorization_mode and not isinstance(authorization_mode, str):
32
35
  raise TypeError("Expected argument 'authorization_mode' to be a str")
33
36
  pulumi.set(__self__, "authorization_mode", authorization_mode)
@@ -149,6 +152,11 @@ class GetInstanceResult:
149
152
  raise TypeError("Expected argument 'zone_distribution_configs' to be a list")
150
153
  pulumi.set(__self__, "zone_distribution_configs", zone_distribution_configs)
151
154
 
155
+ @_builtins.property
156
+ @pulumi.getter(name="allowFewerZonesDeployment")
157
+ def allow_fewer_zones_deployment(self) -> _builtins.bool:
158
+ return pulumi.get(self, "allow_fewer_zones_deployment")
159
+
152
160
  @_builtins.property
153
161
  @pulumi.getter(name="authorizationMode")
154
162
  def authorization_mode(self) -> _builtins.str:
@@ -359,6 +367,7 @@ class AwaitableGetInstanceResult(GetInstanceResult):
359
367
  if False:
360
368
  yield self
361
369
  return GetInstanceResult(
370
+ allow_fewer_zones_deployment=self.allow_fewer_zones_deployment,
362
371
  authorization_mode=self.authorization_mode,
363
372
  automated_backup_configs=self.automated_backup_configs,
364
373
  backup_collection=self.backup_collection,
@@ -433,6 +442,7 @@ def get_instance(instance_id: Optional[_builtins.str] = None,
433
442
  __ret__ = pulumi.runtime.invoke('gcp:memorystore/getInstance:getInstance', __args__, opts=opts, typ=GetInstanceResult).value
434
443
 
435
444
  return AwaitableGetInstanceResult(
445
+ allow_fewer_zones_deployment=pulumi.get(__ret__, 'allow_fewer_zones_deployment'),
436
446
  authorization_mode=pulumi.get(__ret__, 'authorization_mode'),
437
447
  automated_backup_configs=pulumi.get(__ret__, 'automated_backup_configs'),
438
448
  backup_collection=pulumi.get(__ret__, 'backup_collection'),
@@ -504,6 +514,7 @@ def get_instance_output(instance_id: Optional[pulumi.Input[_builtins.str]] = Non
504
514
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
505
515
  __ret__ = pulumi.runtime.invoke_output('gcp:memorystore/getInstance:getInstance', __args__, opts=opts, typ=GetInstanceResult)
506
516
  return __ret__.apply(lambda __response__: GetInstanceResult(
517
+ allow_fewer_zones_deployment=pulumi.get(__response__, 'allow_fewer_zones_deployment'),
507
518
  authorization_mode=pulumi.get(__response__, 'authorization_mode'),
508
519
  automated_backup_configs=pulumi.get(__response__, 'automated_backup_configs'),
509
520
  backup_collection=pulumi.get(__response__, 'backup_collection'),
@@ -24,6 +24,7 @@ class InstanceArgs:
24
24
  instance_id: pulumi.Input[_builtins.str],
25
25
  location: pulumi.Input[_builtins.str],
26
26
  shard_count: pulumi.Input[_builtins.int],
27
+ allow_fewer_zones_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
27
28
  authorization_mode: Optional[pulumi.Input[_builtins.str]] = None,
28
29
  automated_backup_config: Optional[pulumi.Input['InstanceAutomatedBackupConfigArgs']] = None,
29
30
  cross_instance_replication_config: Optional[pulumi.Input['InstanceCrossInstanceReplicationConfigArgs']] = None,
@@ -56,6 +57,10 @@ class InstanceArgs:
56
57
  * Must be unique within a location
57
58
  :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. See documentation for resource type `memorystore.googleapis.com/CertificateAuthority`.
58
59
  :param pulumi.Input[_builtins.int] shard_count: Required. Number of shards for the instance.
60
+ :param pulumi.Input[_builtins.bool] allow_fewer_zones_deployment: Allows customers to specify if they are okay with deploying a multi-zone
61
+ instance in less than 3 zones. Once set, if there is a zonal outage during
62
+ the instance creation, the instance will only be deployed in 2 zones, and
63
+ stay within the 2 zones for its lifecycle.
59
64
  :param pulumi.Input[_builtins.str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
60
65
  AUTH_DISABLED
61
66
  IAM_AUTH
@@ -104,6 +109,8 @@ class InstanceArgs:
104
109
  pulumi.set(__self__, "instance_id", instance_id)
105
110
  pulumi.set(__self__, "location", location)
106
111
  pulumi.set(__self__, "shard_count", shard_count)
112
+ if allow_fewer_zones_deployment is not None:
113
+ pulumi.set(__self__, "allow_fewer_zones_deployment", allow_fewer_zones_deployment)
107
114
  if authorization_mode is not None:
108
115
  pulumi.set(__self__, "authorization_mode", authorization_mode)
109
116
  if automated_backup_config is not None:
@@ -191,6 +198,21 @@ class InstanceArgs:
191
198
  def shard_count(self, value: pulumi.Input[_builtins.int]):
192
199
  pulumi.set(self, "shard_count", value)
193
200
 
201
+ @_builtins.property
202
+ @pulumi.getter(name="allowFewerZonesDeployment")
203
+ def allow_fewer_zones_deployment(self) -> Optional[pulumi.Input[_builtins.bool]]:
204
+ """
205
+ Allows customers to specify if they are okay with deploying a multi-zone
206
+ instance in less than 3 zones. Once set, if there is a zonal outage during
207
+ the instance creation, the instance will only be deployed in 2 zones, and
208
+ stay within the 2 zones for its lifecycle.
209
+ """
210
+ return pulumi.get(self, "allow_fewer_zones_deployment")
211
+
212
+ @allow_fewer_zones_deployment.setter
213
+ def allow_fewer_zones_deployment(self, value: Optional[pulumi.Input[_builtins.bool]]):
214
+ pulumi.set(self, "allow_fewer_zones_deployment", value)
215
+
194
216
  @_builtins.property
195
217
  @pulumi.getter(name="authorizationMode")
196
218
  def authorization_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -460,6 +482,7 @@ class InstanceArgs:
460
482
  @pulumi.input_type
461
483
  class _InstanceState:
462
484
  def __init__(__self__, *,
485
+ allow_fewer_zones_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
463
486
  authorization_mode: Optional[pulumi.Input[_builtins.str]] = None,
464
487
  automated_backup_config: Optional[pulumi.Input['InstanceAutomatedBackupConfigArgs']] = None,
465
488
  backup_collection: Optional[pulumi.Input[_builtins.str]] = None,
@@ -501,6 +524,10 @@ class _InstanceState:
501
524
  zone_distribution_config: Optional[pulumi.Input['InstanceZoneDistributionConfigArgs']] = None):
502
525
  """
503
526
  Input properties used for looking up and filtering Instance resources.
527
+ :param pulumi.Input[_builtins.bool] allow_fewer_zones_deployment: Allows customers to specify if they are okay with deploying a multi-zone
528
+ instance in less than 3 zones. Once set, if there is a zonal outage during
529
+ the instance creation, the instance will only be deployed in 2 zones, and
530
+ stay within the 2 zones for its lifecycle.
504
531
  :param pulumi.Input[_builtins.str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
505
532
  AUTH_DISABLED
506
533
  IAM_AUTH
@@ -590,6 +617,8 @@ class _InstanceState:
590
617
  :param pulumi.Input['InstanceZoneDistributionConfigArgs'] zone_distribution_config: Zone distribution configuration for allocation of instance resources.
591
618
  Structure is documented below.
592
619
  """
620
+ if allow_fewer_zones_deployment is not None:
621
+ pulumi.set(__self__, "allow_fewer_zones_deployment", allow_fewer_zones_deployment)
593
622
  if authorization_mode is not None:
594
623
  pulumi.set(__self__, "authorization_mode", authorization_mode)
595
624
  if automated_backup_config is not None:
@@ -678,6 +707,21 @@ class _InstanceState:
678
707
  if zone_distribution_config is not None:
679
708
  pulumi.set(__self__, "zone_distribution_config", zone_distribution_config)
680
709
 
710
+ @_builtins.property
711
+ @pulumi.getter(name="allowFewerZonesDeployment")
712
+ def allow_fewer_zones_deployment(self) -> Optional[pulumi.Input[_builtins.bool]]:
713
+ """
714
+ Allows customers to specify if they are okay with deploying a multi-zone
715
+ instance in less than 3 zones. Once set, if there is a zonal outage during
716
+ the instance creation, the instance will only be deployed in 2 zones, and
717
+ stay within the 2 zones for its lifecycle.
718
+ """
719
+ return pulumi.get(self, "allow_fewer_zones_deployment")
720
+
721
+ @allow_fewer_zones_deployment.setter
722
+ def allow_fewer_zones_deployment(self, value: Optional[pulumi.Input[_builtins.bool]]):
723
+ pulumi.set(self, "allow_fewer_zones_deployment", value)
724
+
681
725
  @_builtins.property
682
726
  @pulumi.getter(name="authorizationMode")
683
727
  def authorization_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -1205,6 +1249,7 @@ class Instance(pulumi.CustomResource):
1205
1249
  def __init__(__self__,
1206
1250
  resource_name: str,
1207
1251
  opts: Optional[pulumi.ResourceOptions] = None,
1252
+ allow_fewer_zones_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
1208
1253
  authorization_mode: Optional[pulumi.Input[_builtins.str]] = None,
1209
1254
  automated_backup_config: Optional[pulumi.Input[Union['InstanceAutomatedBackupConfigArgs', 'InstanceAutomatedBackupConfigArgsDict']]] = None,
1210
1255
  cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
@@ -1326,6 +1371,7 @@ class Instance(pulumi.CustomResource):
1326
1371
  engine_configs={
1327
1372
  "maxmemory-policy": "volatile-ttl",
1328
1373
  },
1374
+ allow_fewer_zones_deployment=True,
1329
1375
  zone_distribution_config={
1330
1376
  "mode": "SINGLE_ZONE",
1331
1377
  "zone": "us-central1-b",
@@ -1536,6 +1582,10 @@ class Instance(pulumi.CustomResource):
1536
1582
 
1537
1583
  :param str resource_name: The name of the resource.
1538
1584
  :param pulumi.ResourceOptions opts: Options for the resource.
1585
+ :param pulumi.Input[_builtins.bool] allow_fewer_zones_deployment: Allows customers to specify if they are okay with deploying a multi-zone
1586
+ instance in less than 3 zones. Once set, if there is a zonal outage during
1587
+ the instance creation, the instance will only be deployed in 2 zones, and
1588
+ stay within the 2 zones for its lifecycle.
1539
1589
  :param pulumi.Input[_builtins.str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
1540
1590
  AUTH_DISABLED
1541
1591
  IAM_AUTH
@@ -1694,6 +1744,7 @@ class Instance(pulumi.CustomResource):
1694
1744
  engine_configs={
1695
1745
  "maxmemory-policy": "volatile-ttl",
1696
1746
  },
1747
+ allow_fewer_zones_deployment=True,
1697
1748
  zone_distribution_config={
1698
1749
  "mode": "SINGLE_ZONE",
1699
1750
  "zone": "us-central1-b",
@@ -1917,6 +1968,7 @@ class Instance(pulumi.CustomResource):
1917
1968
  def _internal_init(__self__,
1918
1969
  resource_name: str,
1919
1970
  opts: Optional[pulumi.ResourceOptions] = None,
1971
+ allow_fewer_zones_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
1920
1972
  authorization_mode: Optional[pulumi.Input[_builtins.str]] = None,
1921
1973
  automated_backup_config: Optional[pulumi.Input[Union['InstanceAutomatedBackupConfigArgs', 'InstanceAutomatedBackupConfigArgsDict']]] = None,
1922
1974
  cross_instance_replication_config: Optional[pulumi.Input[Union['InstanceCrossInstanceReplicationConfigArgs', 'InstanceCrossInstanceReplicationConfigArgsDict']]] = None,
@@ -1949,6 +2001,7 @@ class Instance(pulumi.CustomResource):
1949
2001
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1950
2002
  __props__ = InstanceArgs.__new__(InstanceArgs)
1951
2003
 
2004
+ __props__.__dict__["allow_fewer_zones_deployment"] = allow_fewer_zones_deployment
1952
2005
  __props__.__dict__["authorization_mode"] = authorization_mode
1953
2006
  __props__.__dict__["automated_backup_config"] = automated_backup_config
1954
2007
  __props__.__dict__["cross_instance_replication_config"] = cross_instance_replication_config
@@ -2006,6 +2059,7 @@ class Instance(pulumi.CustomResource):
2006
2059
  def get(resource_name: str,
2007
2060
  id: pulumi.Input[str],
2008
2061
  opts: Optional[pulumi.ResourceOptions] = None,
2062
+ allow_fewer_zones_deployment: Optional[pulumi.Input[_builtins.bool]] = None,
2009
2063
  authorization_mode: Optional[pulumi.Input[_builtins.str]] = None,
2010
2064
  automated_backup_config: Optional[pulumi.Input[Union['InstanceAutomatedBackupConfigArgs', 'InstanceAutomatedBackupConfigArgsDict']]] = None,
2011
2065
  backup_collection: Optional[pulumi.Input[_builtins.str]] = None,
@@ -2052,6 +2106,10 @@ class Instance(pulumi.CustomResource):
2052
2106
  :param str resource_name: The unique name of the resulting resource.
2053
2107
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
2054
2108
  :param pulumi.ResourceOptions opts: Options for the resource.
2109
+ :param pulumi.Input[_builtins.bool] allow_fewer_zones_deployment: Allows customers to specify if they are okay with deploying a multi-zone
2110
+ instance in less than 3 zones. Once set, if there is a zonal outage during
2111
+ the instance creation, the instance will only be deployed in 2 zones, and
2112
+ stay within the 2 zones for its lifecycle.
2055
2113
  :param pulumi.Input[_builtins.str] authorization_mode: Optional. Immutable. Authorization mode of the instance. Possible values:
2056
2114
  AUTH_DISABLED
2057
2115
  IAM_AUTH
@@ -2145,6 +2203,7 @@ class Instance(pulumi.CustomResource):
2145
2203
 
2146
2204
  __props__ = _InstanceState.__new__(_InstanceState)
2147
2205
 
2206
+ __props__.__dict__["allow_fewer_zones_deployment"] = allow_fewer_zones_deployment
2148
2207
  __props__.__dict__["authorization_mode"] = authorization_mode
2149
2208
  __props__.__dict__["automated_backup_config"] = automated_backup_config
2150
2209
  __props__.__dict__["backup_collection"] = backup_collection
@@ -2186,6 +2245,17 @@ class Instance(pulumi.CustomResource):
2186
2245
  __props__.__dict__["zone_distribution_config"] = zone_distribution_config
2187
2246
  return Instance(resource_name, opts=opts, __props__=__props__)
2188
2247
 
2248
+ @_builtins.property
2249
+ @pulumi.getter(name="allowFewerZonesDeployment")
2250
+ def allow_fewer_zones_deployment(self) -> pulumi.Output[Optional[_builtins.bool]]:
2251
+ """
2252
+ Allows customers to specify if they are okay with deploying a multi-zone
2253
+ instance in less than 3 zones. Once set, if there is a zonal outage during
2254
+ the instance creation, the instance will only be deployed in 2 zones, and
2255
+ stay within the 2 zones for its lifecycle.
2256
+ """
2257
+ return pulumi.get(self, "allow_fewer_zones_deployment")
2258
+
2189
2259
  @_builtins.property
2190
2260
  @pulumi.getter(name="authorizationMode")
2191
2261
  def authorization_mode(self) -> pulumi.Output[_builtins.str]:
@@ -1249,6 +1249,48 @@ class Subscription(pulumi.CustomResource):
1249
1249
  },
1250
1250
  }])
1251
1251
  ```
1252
+ ### Pubsub Subscription Multiple Smts
1253
+
1254
+ ```python
1255
+ import pulumi
1256
+ import pulumi_gcp as gcp
1257
+
1258
+ example = gcp.pubsub.Topic("example", name="example-topic")
1259
+ example_subscription = gcp.pubsub.Subscription("example",
1260
+ name="example-subscription",
1261
+ topic=example.id,
1262
+ message_transforms=[
1263
+ {
1264
+ "javascript_udf": {
1265
+ "function_name": "redactSSN",
1266
+ "code": \"\"\"function redactSSN(message, metadata) {
1267
+ const data = JSON.parse(message.data);
1268
+ delete data['ssn'];
1269
+ message.data = JSON.stringify(data);
1270
+ return message;
1271
+ }
1272
+ \"\"\",
1273
+ },
1274
+ },
1275
+ {
1276
+ "javascript_udf": {
1277
+ "function_name": "otherFunc",
1278
+ "code": \"\"\"function otherFunc(message, metadata) {
1279
+ return null;
1280
+ }
1281
+ \"\"\",
1282
+ },
1283
+ },
1284
+ {
1285
+ "disabled": True,
1286
+ "javascript_udf": {
1287
+ "function_name": "someSMTWeDisabled",
1288
+ "code": "...",
1289
+ },
1290
+ },
1291
+ ])
1292
+ ```
1293
+
1252
1294
  ## Import
1253
1295
 
1254
1296
  Subscription can be imported using any of these accepted formats:
@@ -1709,6 +1751,48 @@ class Subscription(pulumi.CustomResource):
1709
1751
  },
1710
1752
  }])
1711
1753
  ```
1754
+ ### Pubsub Subscription Multiple Smts
1755
+
1756
+ ```python
1757
+ import pulumi
1758
+ import pulumi_gcp as gcp
1759
+
1760
+ example = gcp.pubsub.Topic("example", name="example-topic")
1761
+ example_subscription = gcp.pubsub.Subscription("example",
1762
+ name="example-subscription",
1763
+ topic=example.id,
1764
+ message_transforms=[
1765
+ {
1766
+ "javascript_udf": {
1767
+ "function_name": "redactSSN",
1768
+ "code": \"\"\"function redactSSN(message, metadata) {
1769
+ const data = JSON.parse(message.data);
1770
+ delete data['ssn'];
1771
+ message.data = JSON.stringify(data);
1772
+ return message;
1773
+ }
1774
+ \"\"\",
1775
+ },
1776
+ },
1777
+ {
1778
+ "javascript_udf": {
1779
+ "function_name": "otherFunc",
1780
+ "code": \"\"\"function otherFunc(message, metadata) {
1781
+ return null;
1782
+ }
1783
+ \"\"\",
1784
+ },
1785
+ },
1786
+ {
1787
+ "disabled": True,
1788
+ "javascript_udf": {
1789
+ "function_name": "someSMTWeDisabled",
1790
+ "code": "...",
1791
+ },
1792
+ },
1793
+ ])
1794
+ ```
1795
+
1712
1796
  ## Import
1713
1797
 
1714
1798
  Subscription can be imported using any of these accepted formats:
@@ -661,6 +661,46 @@ class Topic(pulumi.CustomResource):
661
661
  },
662
662
  }])
663
663
  ```
664
+ ### Pubsub Topic Multiple Smts
665
+
666
+ ```python
667
+ import pulumi
668
+ import pulumi_gcp as gcp
669
+
670
+ example = gcp.pubsub.Topic("example",
671
+ name="example-topic",
672
+ message_transforms=[
673
+ {
674
+ "javascript_udf": {
675
+ "function_name": "redactSSN",
676
+ "code": \"\"\"function redactSSN(message, metadata) {
677
+ const data = JSON.parse(message.data);
678
+ delete data['ssn'];
679
+ message.data = JSON.stringify(data);
680
+ return message;
681
+ }
682
+ \"\"\",
683
+ },
684
+ },
685
+ {
686
+ "javascript_udf": {
687
+ "function_name": "otherFunc",
688
+ "code": \"\"\"function otherFunc(message, metadata) {
689
+ return null;
690
+ }
691
+ \"\"\",
692
+ },
693
+ },
694
+ {
695
+ "disabled": True,
696
+ "javascript_udf": {
697
+ "function_name": "someSMTWeDisabled",
698
+ "code": "...",
699
+ },
700
+ },
701
+ ])
702
+ ```
703
+
664
704
  ## Import
665
705
 
666
706
  Topic can be imported using any of these accepted formats:
@@ -926,6 +966,46 @@ class Topic(pulumi.CustomResource):
926
966
  },
927
967
  }])
928
968
  ```
969
+ ### Pubsub Topic Multiple Smts
970
+
971
+ ```python
972
+ import pulumi
973
+ import pulumi_gcp as gcp
974
+
975
+ example = gcp.pubsub.Topic("example",
976
+ name="example-topic",
977
+ message_transforms=[
978
+ {
979
+ "javascript_udf": {
980
+ "function_name": "redactSSN",
981
+ "code": \"\"\"function redactSSN(message, metadata) {
982
+ const data = JSON.parse(message.data);
983
+ delete data['ssn'];
984
+ message.data = JSON.stringify(data);
985
+ return message;
986
+ }
987
+ \"\"\",
988
+ },
989
+ },
990
+ {
991
+ "javascript_udf": {
992
+ "function_name": "otherFunc",
993
+ "code": \"\"\"function otherFunc(message, metadata) {
994
+ return null;
995
+ }
996
+ \"\"\",
997
+ },
998
+ },
999
+ {
1000
+ "disabled": True,
1001
+ "javascript_udf": {
1002
+ "function_name": "someSMTWeDisabled",
1003
+ "code": "...",
1004
+ },
1005
+ },
1006
+ ])
1007
+ ```
1008
+
929
1009
  ## Import
930
1010
 
931
1011
  Topic can be imported using any of these accepted formats: