pulumi-gcp 8.18.0a1738588674__py3-none-any.whl → 8.18.0a1738676305__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 (69) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +28 -0
  3. pulumi_gcp/alloydb/user.py +10 -1
  4. pulumi_gcp/assuredworkloads/workload.py +7 -7
  5. pulumi_gcp/beyondcorp/__init__.py +4 -0
  6. pulumi_gcp/beyondcorp/_inputs.py +130 -0
  7. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +180 -0
  8. pulumi_gcp/beyondcorp/outputs.py +76 -0
  9. pulumi_gcp/beyondcorp/security_gateway.py +52 -25
  10. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +1075 -0
  11. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +1075 -0
  12. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +894 -0
  13. pulumi_gcp/bigquery/_inputs.py +33 -0
  14. pulumi_gcp/bigquery/dataset.py +7 -7
  15. pulumi_gcp/bigquery/outputs.py +36 -0
  16. pulumi_gcp/bigquery/table.py +61 -7
  17. pulumi_gcp/chronicle/retrohunt.py +0 -16
  18. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +23 -23
  19. pulumi_gcp/compute/_inputs.py +9 -9
  20. pulumi_gcp/compute/get_network.py +3 -3
  21. pulumi_gcp/compute/network.py +7 -7
  22. pulumi_gcp/compute/outputs.py +6 -6
  23. pulumi_gcp/compute/router_peer.py +112 -0
  24. pulumi_gcp/container/_inputs.py +79 -20
  25. pulumi_gcp/container/outputs.py +75 -12
  26. pulumi_gcp/dataproc/_inputs.py +34 -0
  27. pulumi_gcp/dataproc/outputs.py +37 -0
  28. pulumi_gcp/dataproc/workflow_template.py +47 -0
  29. pulumi_gcp/firestore/field.py +60 -0
  30. pulumi_gcp/gkehub/_inputs.py +20 -0
  31. pulumi_gcp/gkehub/membership_binding.py +6 -6
  32. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  33. pulumi_gcp/gkehub/namespace.py +4 -4
  34. pulumi_gcp/gkehub/outputs.py +26 -1
  35. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  36. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  37. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  38. pulumi_gcp/netapp/storage_pool.py +1 -1
  39. pulumi_gcp/networkconnectivity/spoke.py +76 -14
  40. pulumi_gcp/orgpolicy/policy.py +2 -2
  41. pulumi_gcp/parametermanager/__init__.py +3 -0
  42. pulumi_gcp/parametermanager/get_parameter_version.py +216 -0
  43. pulumi_gcp/parametermanager/get_parameters.py +140 -0
  44. pulumi_gcp/parametermanager/get_regional_parameter_version.py +235 -0
  45. pulumi_gcp/parametermanager/outputs.py +156 -0
  46. pulumi_gcp/pubsub/_inputs.py +264 -0
  47. pulumi_gcp/pubsub/outputs.py +353 -0
  48. pulumi_gcp/pubsub/subscription.py +6 -6
  49. pulumi_gcp/pubsub/topic.py +70 -0
  50. pulumi_gcp/pulumi-plugin.json +1 -1
  51. pulumi_gcp/resourcemanager/lien.py +12 -0
  52. pulumi_gcp/secretmanager/regional_secret.py +4 -0
  53. pulumi_gcp/secretmanager/regional_secret_version.py +12 -0
  54. pulumi_gcp/secretmanager/secret.py +4 -0
  55. pulumi_gcp/secretmanager/secret_version.py +12 -0
  56. pulumi_gcp/securityposture/posture.py +4 -0
  57. pulumi_gcp/securityposture/posture_deployment.py +4 -0
  58. pulumi_gcp/serviceaccount/get_s.py +98 -8
  59. pulumi_gcp/spanner/_inputs.py +68 -0
  60. pulumi_gcp/spanner/backup_schedule.py +70 -4
  61. pulumi_gcp/spanner/outputs.py +60 -0
  62. pulumi_gcp/storage/get_bucket_object_content.py +4 -4
  63. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  64. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  65. pulumi_gcp/workflows/workflow.py +175 -0
  66. {pulumi_gcp-8.18.0a1738588674.dist-info → pulumi_gcp-8.18.0a1738676305.dist-info}/METADATA +1 -1
  67. {pulumi_gcp-8.18.0a1738588674.dist-info → pulumi_gcp-8.18.0a1738676305.dist-info}/RECORD +69 -62
  68. {pulumi_gcp-8.18.0a1738588674.dist-info → pulumi_gcp-8.18.0a1738676305.dist-info}/WHEEL +0 -0
  69. {pulumi_gcp-8.18.0a1738588674.dist-info → pulumi_gcp-8.18.0a1738676305.dist-info}/top_level.txt +0 -0
@@ -5287,22 +5287,29 @@ class ClusterClusterAutoscalingResourceLimit(dict):
5287
5287
  return super().get(key, default)
5288
5288
 
5289
5289
  def __init__(__self__, *,
5290
+ maximum: int,
5290
5291
  resource_type: str,
5291
- maximum: Optional[int] = None,
5292
5292
  minimum: Optional[int] = None):
5293
5293
  """
5294
+ :param int maximum: Maximum amount of the resource in the cluster.
5294
5295
  :param str resource_type: The type of the resource. For example, `cpu` and
5295
5296
  `memory`. See the [guide to using Node Auto-Provisioning](https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-provisioning)
5296
5297
  for a list of types.
5297
- :param int maximum: Maximum amount of the resource in the cluster.
5298
5298
  :param int minimum: Minimum amount of the resource in the cluster.
5299
5299
  """
5300
+ pulumi.set(__self__, "maximum", maximum)
5300
5301
  pulumi.set(__self__, "resource_type", resource_type)
5301
- if maximum is not None:
5302
- pulumi.set(__self__, "maximum", maximum)
5303
5302
  if minimum is not None:
5304
5303
  pulumi.set(__self__, "minimum", minimum)
5305
5304
 
5305
+ @property
5306
+ @pulumi.getter
5307
+ def maximum(self) -> int:
5308
+ """
5309
+ Maximum amount of the resource in the cluster.
5310
+ """
5311
+ return pulumi.get(self, "maximum")
5312
+
5306
5313
  @property
5307
5314
  @pulumi.getter(name="resourceType")
5308
5315
  def resource_type(self) -> str:
@@ -5313,14 +5320,6 @@ class ClusterClusterAutoscalingResourceLimit(dict):
5313
5320
  """
5314
5321
  return pulumi.get(self, "resource_type")
5315
5322
 
5316
- @property
5317
- @pulumi.getter
5318
- def maximum(self) -> Optional[int]:
5319
- """
5320
- Maximum amount of the resource in the cluster.
5321
- """
5322
- return pulumi.get(self, "maximum")
5323
-
5324
5323
  @property
5325
5324
  @pulumi.getter
5326
5325
  def minimum(self) -> Optional[int]:
@@ -6925,6 +6924,8 @@ class ClusterNodeConfig(dict):
6925
6924
  suggest = "logging_variant"
6926
6925
  elif key == "machineType":
6927
6926
  suggest = "machine_type"
6927
+ elif key == "maxRunDuration":
6928
+ suggest = "max_run_duration"
6928
6929
  elif key == "minCpuPlatform":
6929
6930
  suggest = "min_cpu_platform"
6930
6931
  elif key == "nodeGroup":
@@ -6988,6 +6989,7 @@ class ClusterNodeConfig(dict):
6988
6989
  local_ssd_encryption_mode: Optional[str] = None,
6989
6990
  logging_variant: Optional[str] = None,
6990
6991
  machine_type: Optional[str] = None,
6992
+ max_run_duration: Optional[str] = None,
6991
6993
  metadata: Optional[Mapping[str, str]] = None,
6992
6994
  min_cpu_platform: Optional[str] = None,
6993
6995
  node_group: Optional[str] = None,
@@ -7065,6 +7067,7 @@ class ClusterNodeConfig(dict):
7065
7067
  :param str machine_type: The name of a Google Compute Engine machine type.
7066
7068
  Defaults to `e2-medium`. To create a custom machine type, value should be set as specified
7067
7069
  [here](https://cloud.google.com/compute/docs/reference/latest/instances#machineType).
7070
+ :param str max_run_duration: The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
7068
7071
  :param Mapping[str, str] metadata: The metadata key/value pairs assigned to instances in
7069
7072
  the cluster. From GKE `1.12` onwards, `disable-legacy-endpoints` is set to
7070
7073
  `true` by the API; if `metadata` is set but that default value is not
@@ -7159,6 +7162,8 @@ class ClusterNodeConfig(dict):
7159
7162
  pulumi.set(__self__, "logging_variant", logging_variant)
7160
7163
  if machine_type is not None:
7161
7164
  pulumi.set(__self__, "machine_type", machine_type)
7165
+ if max_run_duration is not None:
7166
+ pulumi.set(__self__, "max_run_duration", max_run_duration)
7162
7167
  if metadata is not None:
7163
7168
  pulumi.set(__self__, "metadata", metadata)
7164
7169
  if min_cpu_platform is not None:
@@ -7422,6 +7427,14 @@ class ClusterNodeConfig(dict):
7422
7427
  """
7423
7428
  return pulumi.get(self, "machine_type")
7424
7429
 
7430
+ @property
7431
+ @pulumi.getter(name="maxRunDuration")
7432
+ def max_run_duration(self) -> Optional[str]:
7433
+ """
7434
+ The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
7435
+ """
7436
+ return pulumi.get(self, "max_run_duration")
7437
+
7425
7438
  @property
7426
7439
  @pulumi.getter
7427
7440
  def metadata(self) -> Optional[Mapping[str, str]]:
@@ -10085,6 +10098,8 @@ class ClusterNodePoolNodeConfig(dict):
10085
10098
  suggest = "logging_variant"
10086
10099
  elif key == "machineType":
10087
10100
  suggest = "machine_type"
10101
+ elif key == "maxRunDuration":
10102
+ suggest = "max_run_duration"
10088
10103
  elif key == "minCpuPlatform":
10089
10104
  suggest = "min_cpu_platform"
10090
10105
  elif key == "nodeGroup":
@@ -10148,6 +10163,7 @@ class ClusterNodePoolNodeConfig(dict):
10148
10163
  local_ssd_encryption_mode: Optional[str] = None,
10149
10164
  logging_variant: Optional[str] = None,
10150
10165
  machine_type: Optional[str] = None,
10166
+ max_run_duration: Optional[str] = None,
10151
10167
  metadata: Optional[Mapping[str, str]] = None,
10152
10168
  min_cpu_platform: Optional[str] = None,
10153
10169
  node_group: Optional[str] = None,
@@ -10225,6 +10241,7 @@ class ClusterNodePoolNodeConfig(dict):
10225
10241
  :param str machine_type: The name of a Google Compute Engine machine type.
10226
10242
  Defaults to `e2-medium`. To create a custom machine type, value should be set as specified
10227
10243
  [here](https://cloud.google.com/compute/docs/reference/latest/instances#machineType).
10244
+ :param str max_run_duration: The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
10228
10245
  :param Mapping[str, str] metadata: The metadata key/value pairs assigned to instances in
10229
10246
  the cluster. From GKE `1.12` onwards, `disable-legacy-endpoints` is set to
10230
10247
  `true` by the API; if `metadata` is set but that default value is not
@@ -10319,6 +10336,8 @@ class ClusterNodePoolNodeConfig(dict):
10319
10336
  pulumi.set(__self__, "logging_variant", logging_variant)
10320
10337
  if machine_type is not None:
10321
10338
  pulumi.set(__self__, "machine_type", machine_type)
10339
+ if max_run_duration is not None:
10340
+ pulumi.set(__self__, "max_run_duration", max_run_duration)
10322
10341
  if metadata is not None:
10323
10342
  pulumi.set(__self__, "metadata", metadata)
10324
10343
  if min_cpu_platform is not None:
@@ -10582,6 +10601,14 @@ class ClusterNodePoolNodeConfig(dict):
10582
10601
  """
10583
10602
  return pulumi.get(self, "machine_type")
10584
10603
 
10604
+ @property
10605
+ @pulumi.getter(name="maxRunDuration")
10606
+ def max_run_duration(self) -> Optional[str]:
10607
+ """
10608
+ The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
10609
+ """
10610
+ return pulumi.get(self, "max_run_duration")
10611
+
10585
10612
  @property
10586
10613
  @pulumi.getter
10587
10614
  def metadata(self) -> Optional[Mapping[str, str]]:
@@ -13668,6 +13695,8 @@ class NodePoolNodeConfig(dict):
13668
13695
  suggest = "logging_variant"
13669
13696
  elif key == "machineType":
13670
13697
  suggest = "machine_type"
13698
+ elif key == "maxRunDuration":
13699
+ suggest = "max_run_duration"
13671
13700
  elif key == "minCpuPlatform":
13672
13701
  suggest = "min_cpu_platform"
13673
13702
  elif key == "nodeGroup":
@@ -13731,6 +13760,7 @@ class NodePoolNodeConfig(dict):
13731
13760
  local_ssd_encryption_mode: Optional[str] = None,
13732
13761
  logging_variant: Optional[str] = None,
13733
13762
  machine_type: Optional[str] = None,
13763
+ max_run_duration: Optional[str] = None,
13734
13764
  metadata: Optional[Mapping[str, str]] = None,
13735
13765
  min_cpu_platform: Optional[str] = None,
13736
13766
  node_group: Optional[str] = None,
@@ -13774,6 +13804,7 @@ class NodePoolNodeConfig(dict):
13774
13804
  :param str local_ssd_encryption_mode: LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.
13775
13805
  :param str logging_variant: Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
13776
13806
  :param str machine_type: The name of a Google Compute Engine machine type.
13807
+ :param str max_run_duration: The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
13777
13808
  :param Mapping[str, str] metadata: The metadata key/value pairs assigned to instances in the cluster.
13778
13809
  :param str min_cpu_platform: Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
13779
13810
  :param str node_group: Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
@@ -13844,6 +13875,8 @@ class NodePoolNodeConfig(dict):
13844
13875
  pulumi.set(__self__, "logging_variant", logging_variant)
13845
13876
  if machine_type is not None:
13846
13877
  pulumi.set(__self__, "machine_type", machine_type)
13878
+ if max_run_duration is not None:
13879
+ pulumi.set(__self__, "max_run_duration", max_run_duration)
13847
13880
  if metadata is not None:
13848
13881
  pulumi.set(__self__, "metadata", metadata)
13849
13882
  if min_cpu_platform is not None:
@@ -14073,6 +14106,14 @@ class NodePoolNodeConfig(dict):
14073
14106
  """
14074
14107
  return pulumi.get(self, "machine_type")
14075
14108
 
14109
+ @property
14110
+ @pulumi.getter(name="maxRunDuration")
14111
+ def max_run_duration(self) -> Optional[str]:
14112
+ """
14113
+ The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
14114
+ """
14115
+ return pulumi.get(self, "max_run_duration")
14116
+
14076
14117
  @property
14077
14118
  @pulumi.getter
14078
14119
  def metadata(self) -> Optional[Mapping[str, str]]:
@@ -17525,6 +17566,7 @@ class GetClusterNodeConfigResult(dict):
17525
17566
  local_ssd_encryption_mode: str,
17526
17567
  logging_variant: str,
17527
17568
  machine_type: str,
17569
+ max_run_duration: str,
17528
17570
  metadata: Mapping[str, str],
17529
17571
  min_cpu_platform: str,
17530
17572
  node_group: str,
@@ -17568,6 +17610,7 @@ class GetClusterNodeConfigResult(dict):
17568
17610
  :param str local_ssd_encryption_mode: LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.
17569
17611
  :param str logging_variant: Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
17570
17612
  :param str machine_type: The name of a Google Compute Engine machine type.
17613
+ :param str max_run_duration: The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
17571
17614
  :param Mapping[str, str] metadata: The metadata key/value pairs assigned to instances in the cluster.
17572
17615
  :param str min_cpu_platform: Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
17573
17616
  :param str node_group: Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
@@ -17611,6 +17654,7 @@ class GetClusterNodeConfigResult(dict):
17611
17654
  pulumi.set(__self__, "local_ssd_encryption_mode", local_ssd_encryption_mode)
17612
17655
  pulumi.set(__self__, "logging_variant", logging_variant)
17613
17656
  pulumi.set(__self__, "machine_type", machine_type)
17657
+ pulumi.set(__self__, "max_run_duration", max_run_duration)
17614
17658
  pulumi.set(__self__, "metadata", metadata)
17615
17659
  pulumi.set(__self__, "min_cpu_platform", min_cpu_platform)
17616
17660
  pulumi.set(__self__, "node_group", node_group)
@@ -17822,6 +17866,14 @@ class GetClusterNodeConfigResult(dict):
17822
17866
  """
17823
17867
  return pulumi.get(self, "machine_type")
17824
17868
 
17869
+ @property
17870
+ @pulumi.getter(name="maxRunDuration")
17871
+ def max_run_duration(self) -> str:
17872
+ """
17873
+ The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
17874
+ """
17875
+ return pulumi.get(self, "max_run_duration")
17876
+
17825
17877
  @property
17826
17878
  @pulumi.getter
17827
17879
  def metadata(self) -> Mapping[str, str]:
@@ -19523,6 +19575,7 @@ class GetClusterNodePoolNodeConfigResult(dict):
19523
19575
  local_ssd_encryption_mode: str,
19524
19576
  logging_variant: str,
19525
19577
  machine_type: str,
19578
+ max_run_duration: str,
19526
19579
  metadata: Mapping[str, str],
19527
19580
  min_cpu_platform: str,
19528
19581
  node_group: str,
@@ -19566,6 +19619,7 @@ class GetClusterNodePoolNodeConfigResult(dict):
19566
19619
  :param str local_ssd_encryption_mode: LocalSsdEncryptionMode specified the method used for encrypting the local SSDs attached to the node.
19567
19620
  :param str logging_variant: Type of logging agent that is used as the default value for node pools in the cluster. Valid values include DEFAULT and MAX_THROUGHPUT.
19568
19621
  :param str machine_type: The name of a Google Compute Engine machine type.
19622
+ :param str max_run_duration: The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
19569
19623
  :param Mapping[str, str] metadata: The metadata key/value pairs assigned to instances in the cluster.
19570
19624
  :param str min_cpu_platform: Minimum CPU platform to be used by this instance. The instance may be scheduled on the specified or newer CPU platform.
19571
19625
  :param str node_group: Setting this field will assign instances of this pool to run on the specified node group. This is useful for running workloads on sole tenant nodes.
@@ -19609,6 +19663,7 @@ class GetClusterNodePoolNodeConfigResult(dict):
19609
19663
  pulumi.set(__self__, "local_ssd_encryption_mode", local_ssd_encryption_mode)
19610
19664
  pulumi.set(__self__, "logging_variant", logging_variant)
19611
19665
  pulumi.set(__self__, "machine_type", machine_type)
19666
+ pulumi.set(__self__, "max_run_duration", max_run_duration)
19612
19667
  pulumi.set(__self__, "metadata", metadata)
19613
19668
  pulumi.set(__self__, "min_cpu_platform", min_cpu_platform)
19614
19669
  pulumi.set(__self__, "node_group", node_group)
@@ -19820,6 +19875,14 @@ class GetClusterNodePoolNodeConfigResult(dict):
19820
19875
  """
19821
19876
  return pulumi.get(self, "machine_type")
19822
19877
 
19878
+ @property
19879
+ @pulumi.getter(name="maxRunDuration")
19880
+ def max_run_duration(self) -> str:
19881
+ """
19882
+ The runtime of each node in the node pool in seconds, terminated by 's'. Example: "3600s".
19883
+ """
19884
+ return pulumi.get(self, "max_run_duration")
19885
+
19823
19886
  @property
19824
19887
  @pulumi.getter
19825
19888
  def metadata(self) -> Mapping[str, str]:
@@ -243,6 +243,8 @@ __all__ = [
243
243
  'MetastoreServiceScheduledBackupArgsDict',
244
244
  'MetastoreServiceTelemetryConfigArgs',
245
245
  'MetastoreServiceTelemetryConfigArgsDict',
246
+ 'WorkflowTemplateEncryptionConfigArgs',
247
+ 'WorkflowTemplateEncryptionConfigArgsDict',
246
248
  'WorkflowTemplateJobArgs',
247
249
  'WorkflowTemplateJobArgsDict',
248
250
  'WorkflowTemplateJobHadoopJobArgs',
@@ -10187,6 +10189,38 @@ class MetastoreServiceTelemetryConfigArgs:
10187
10189
  pulumi.set(self, "log_format", value)
10188
10190
 
10189
10191
 
10192
+ if not MYPY:
10193
+ class WorkflowTemplateEncryptionConfigArgsDict(TypedDict):
10194
+ kms_key: NotRequired[pulumi.Input[str]]
10195
+ """
10196
+ Optional. The Cloud KMS key name to use for encryption.
10197
+ """
10198
+ elif False:
10199
+ WorkflowTemplateEncryptionConfigArgsDict: TypeAlias = Mapping[str, Any]
10200
+
10201
+ @pulumi.input_type
10202
+ class WorkflowTemplateEncryptionConfigArgs:
10203
+ def __init__(__self__, *,
10204
+ kms_key: Optional[pulumi.Input[str]] = None):
10205
+ """
10206
+ :param pulumi.Input[str] kms_key: Optional. The Cloud KMS key name to use for encryption.
10207
+ """
10208
+ if kms_key is not None:
10209
+ pulumi.set(__self__, "kms_key", kms_key)
10210
+
10211
+ @property
10212
+ @pulumi.getter(name="kmsKey")
10213
+ def kms_key(self) -> Optional[pulumi.Input[str]]:
10214
+ """
10215
+ Optional. The Cloud KMS key name to use for encryption.
10216
+ """
10217
+ return pulumi.get(self, "kms_key")
10218
+
10219
+ @kms_key.setter
10220
+ def kms_key(self, value: Optional[pulumi.Input[str]]):
10221
+ pulumi.set(self, "kms_key", value)
10222
+
10223
+
10190
10224
  if not MYPY:
10191
10225
  class WorkflowTemplateJobArgsDict(TypedDict):
10192
10226
  step_id: pulumi.Input[str]
@@ -130,6 +130,7 @@ __all__ = [
130
130
  'MetastoreServiceScalingConfigAutoscalingConfigLimitConfig',
131
131
  'MetastoreServiceScheduledBackup',
132
132
  'MetastoreServiceTelemetryConfig',
133
+ 'WorkflowTemplateEncryptionConfig',
133
134
  'WorkflowTemplateJob',
134
135
  'WorkflowTemplateJobHadoopJob',
135
136
  'WorkflowTemplateJobHadoopJobLoggingConfig',
@@ -8160,6 +8161,42 @@ class MetastoreServiceTelemetryConfig(dict):
8160
8161
  return pulumi.get(self, "log_format")
8161
8162
 
8162
8163
 
8164
+ @pulumi.output_type
8165
+ class WorkflowTemplateEncryptionConfig(dict):
8166
+ @staticmethod
8167
+ def __key_warning(key: str):
8168
+ suggest = None
8169
+ if key == "kmsKey":
8170
+ suggest = "kms_key"
8171
+
8172
+ if suggest:
8173
+ pulumi.log.warn(f"Key '{key}' not found in WorkflowTemplateEncryptionConfig. Access the value via the '{suggest}' property getter instead.")
8174
+
8175
+ def __getitem__(self, key: str) -> Any:
8176
+ WorkflowTemplateEncryptionConfig.__key_warning(key)
8177
+ return super().__getitem__(key)
8178
+
8179
+ def get(self, key: str, default = None) -> Any:
8180
+ WorkflowTemplateEncryptionConfig.__key_warning(key)
8181
+ return super().get(key, default)
8182
+
8183
+ def __init__(__self__, *,
8184
+ kms_key: Optional[str] = None):
8185
+ """
8186
+ :param str kms_key: Optional. The Cloud KMS key name to use for encryption.
8187
+ """
8188
+ if kms_key is not None:
8189
+ pulumi.set(__self__, "kms_key", kms_key)
8190
+
8191
+ @property
8192
+ @pulumi.getter(name="kmsKey")
8193
+ def kms_key(self) -> Optional[str]:
8194
+ """
8195
+ Optional. The Cloud KMS key name to use for encryption.
8196
+ """
8197
+ return pulumi.get(self, "kms_key")
8198
+
8199
+
8163
8200
  @pulumi.output_type
8164
8201
  class WorkflowTemplateJob(dict):
8165
8202
  @staticmethod
@@ -25,6 +25,7 @@ class WorkflowTemplateArgs:
25
25
  location: pulumi.Input[str],
26
26
  placement: pulumi.Input['WorkflowTemplatePlacementArgs'],
27
27
  dag_timeout: Optional[pulumi.Input[str]] = None,
28
+ encryption_config: Optional[pulumi.Input['WorkflowTemplateEncryptionConfigArgs']] = None,
28
29
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
29
30
  name: Optional[pulumi.Input[str]] = None,
30
31
  parameters: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowTemplateParameterArgs']]]] = None,
@@ -42,6 +43,7 @@ class WorkflowTemplateArgs:
42
43
  on a [managed
43
44
  cluster](https://www.terraform.io/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster),
44
45
  the cluster is deleted.
46
+ :param pulumi.Input['WorkflowTemplateEncryptionConfigArgs'] encryption_config: Optional. The encryption configuration for the workflow template.
45
47
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created
46
48
  by the workflow instance. Label **keys** must contain 1 to 63 characters, and must conform to [RFC
47
49
  1035](https://www.ietf.org/rfc/rfc1035.txt). Label **values** may be empty, but, if present, must contain 1 to 63
@@ -59,6 +61,8 @@ class WorkflowTemplateArgs:
59
61
  pulumi.set(__self__, "placement", placement)
60
62
  if dag_timeout is not None:
61
63
  pulumi.set(__self__, "dag_timeout", dag_timeout)
64
+ if encryption_config is not None:
65
+ pulumi.set(__self__, "encryption_config", encryption_config)
62
66
  if labels is not None:
63
67
  pulumi.set(__self__, "labels", labels)
64
68
  if name is not None:
@@ -127,6 +131,18 @@ class WorkflowTemplateArgs:
127
131
  def dag_timeout(self, value: Optional[pulumi.Input[str]]):
128
132
  pulumi.set(self, "dag_timeout", value)
129
133
 
134
+ @property
135
+ @pulumi.getter(name="encryptionConfig")
136
+ def encryption_config(self) -> Optional[pulumi.Input['WorkflowTemplateEncryptionConfigArgs']]:
137
+ """
138
+ Optional. The encryption configuration for the workflow template.
139
+ """
140
+ return pulumi.get(self, "encryption_config")
141
+
142
+ @encryption_config.setter
143
+ def encryption_config(self, value: Optional[pulumi.Input['WorkflowTemplateEncryptionConfigArgs']]):
144
+ pulumi.set(self, "encryption_config", value)
145
+
130
146
  @property
131
147
  @pulumi.getter
132
148
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
@@ -201,6 +217,7 @@ class _WorkflowTemplateState:
201
217
  create_time: Optional[pulumi.Input[str]] = None,
202
218
  dag_timeout: Optional[pulumi.Input[str]] = None,
203
219
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
220
+ encryption_config: Optional[pulumi.Input['WorkflowTemplateEncryptionConfigArgs']] = None,
204
221
  jobs: Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowTemplateJobArgs']]]] = None,
205
222
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
206
223
  location: Optional[pulumi.Input[str]] = None,
@@ -221,6 +238,7 @@ class _WorkflowTemplateState:
221
238
  on a [managed
222
239
  cluster](https://www.terraform.io/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster),
223
240
  the cluster is deleted.
241
+ :param pulumi.Input['WorkflowTemplateEncryptionConfigArgs'] encryption_config: Optional. The encryption configuration for the workflow template.
224
242
  :param pulumi.Input[Sequence[pulumi.Input['WorkflowTemplateJobArgs']]] jobs: Required. The Directed Acyclic Graph of Jobs to submit.
225
243
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created
226
244
  by the workflow instance. Label **keys** must contain 1 to 63 characters, and must conform to [RFC
@@ -244,6 +262,8 @@ class _WorkflowTemplateState:
244
262
  pulumi.set(__self__, "dag_timeout", dag_timeout)
245
263
  if effective_labels is not None:
246
264
  pulumi.set(__self__, "effective_labels", effective_labels)
265
+ if encryption_config is not None:
266
+ pulumi.set(__self__, "encryption_config", encryption_config)
247
267
  if jobs is not None:
248
268
  pulumi.set(__self__, "jobs", jobs)
249
269
  if labels is not None:
@@ -307,6 +327,18 @@ class _WorkflowTemplateState:
307
327
  def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
308
328
  pulumi.set(self, "effective_labels", value)
309
329
 
330
+ @property
331
+ @pulumi.getter(name="encryptionConfig")
332
+ def encryption_config(self) -> Optional[pulumi.Input['WorkflowTemplateEncryptionConfigArgs']]:
333
+ """
334
+ Optional. The encryption configuration for the workflow template.
335
+ """
336
+ return pulumi.get(self, "encryption_config")
337
+
338
+ @encryption_config.setter
339
+ def encryption_config(self, value: Optional[pulumi.Input['WorkflowTemplateEncryptionConfigArgs']]):
340
+ pulumi.set(self, "encryption_config", value)
341
+
310
342
  @property
311
343
  @pulumi.getter
312
344
  def jobs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkflowTemplateJobArgs']]]]:
@@ -441,6 +473,7 @@ class WorkflowTemplate(pulumi.CustomResource):
441
473
  resource_name: str,
442
474
  opts: Optional[pulumi.ResourceOptions] = None,
443
475
  dag_timeout: Optional[pulumi.Input[str]] = None,
476
+ encryption_config: Optional[pulumi.Input[Union['WorkflowTemplateEncryptionConfigArgs', 'WorkflowTemplateEncryptionConfigArgsDict']]] = None,
444
477
  jobs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WorkflowTemplateJobArgs', 'WorkflowTemplateJobArgsDict']]]]] = None,
445
478
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
446
479
  location: Optional[pulumi.Input[str]] = None,
@@ -548,6 +581,7 @@ class WorkflowTemplate(pulumi.CustomResource):
548
581
  on a [managed
549
582
  cluster](https://www.terraform.io/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster),
550
583
  the cluster is deleted.
584
+ :param pulumi.Input[Union['WorkflowTemplateEncryptionConfigArgs', 'WorkflowTemplateEncryptionConfigArgsDict']] encryption_config: Optional. The encryption configuration for the workflow template.
551
585
  :param pulumi.Input[Sequence[pulumi.Input[Union['WorkflowTemplateJobArgs', 'WorkflowTemplateJobArgsDict']]]] jobs: Required. The Directed Acyclic Graph of Jobs to submit.
552
586
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created
553
587
  by the workflow instance. Label **keys** must contain 1 to 63 characters, and must conform to [RFC
@@ -674,6 +708,7 @@ class WorkflowTemplate(pulumi.CustomResource):
674
708
  resource_name: str,
675
709
  opts: Optional[pulumi.ResourceOptions] = None,
676
710
  dag_timeout: Optional[pulumi.Input[str]] = None,
711
+ encryption_config: Optional[pulumi.Input[Union['WorkflowTemplateEncryptionConfigArgs', 'WorkflowTemplateEncryptionConfigArgsDict']]] = None,
677
712
  jobs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WorkflowTemplateJobArgs', 'WorkflowTemplateJobArgsDict']]]]] = None,
678
713
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
679
714
  location: Optional[pulumi.Input[str]] = None,
@@ -692,6 +727,7 @@ class WorkflowTemplate(pulumi.CustomResource):
692
727
  __props__ = WorkflowTemplateArgs.__new__(WorkflowTemplateArgs)
693
728
 
694
729
  __props__.__dict__["dag_timeout"] = dag_timeout
730
+ __props__.__dict__["encryption_config"] = encryption_config
695
731
  if jobs is None and not opts.urn:
696
732
  raise TypeError("Missing required property 'jobs'")
697
733
  __props__.__dict__["jobs"] = jobs
@@ -725,6 +761,7 @@ class WorkflowTemplate(pulumi.CustomResource):
725
761
  create_time: Optional[pulumi.Input[str]] = None,
726
762
  dag_timeout: Optional[pulumi.Input[str]] = None,
727
763
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
764
+ encryption_config: Optional[pulumi.Input[Union['WorkflowTemplateEncryptionConfigArgs', 'WorkflowTemplateEncryptionConfigArgsDict']]] = None,
728
765
  jobs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WorkflowTemplateJobArgs', 'WorkflowTemplateJobArgsDict']]]]] = None,
729
766
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
730
767
  location: Optional[pulumi.Input[str]] = None,
@@ -750,6 +787,7 @@ class WorkflowTemplate(pulumi.CustomResource):
750
787
  on a [managed
751
788
  cluster](https://www.terraform.io/dataproc/docs/concepts/workflows/using-workflows#configuring_or_selecting_a_cluster),
752
789
  the cluster is deleted.
790
+ :param pulumi.Input[Union['WorkflowTemplateEncryptionConfigArgs', 'WorkflowTemplateEncryptionConfigArgsDict']] encryption_config: Optional. The encryption configuration for the workflow template.
753
791
  :param pulumi.Input[Sequence[pulumi.Input[Union['WorkflowTemplateJobArgs', 'WorkflowTemplateJobArgsDict']]]] jobs: Required. The Directed Acyclic Graph of Jobs to submit.
754
792
  :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. The labels to associate with this template. These labels will be propagated to all jobs and clusters created
755
793
  by the workflow instance. Label **keys** must contain 1 to 63 characters, and must conform to [RFC
@@ -774,6 +812,7 @@ class WorkflowTemplate(pulumi.CustomResource):
774
812
  __props__.__dict__["create_time"] = create_time
775
813
  __props__.__dict__["dag_timeout"] = dag_timeout
776
814
  __props__.__dict__["effective_labels"] = effective_labels
815
+ __props__.__dict__["encryption_config"] = encryption_config
777
816
  __props__.__dict__["jobs"] = jobs
778
817
  __props__.__dict__["labels"] = labels
779
818
  __props__.__dict__["location"] = location
@@ -813,6 +852,14 @@ class WorkflowTemplate(pulumi.CustomResource):
813
852
  def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
814
853
  return pulumi.get(self, "effective_labels")
815
854
 
855
+ @property
856
+ @pulumi.getter(name="encryptionConfig")
857
+ def encryption_config(self) -> pulumi.Output[Optional['outputs.WorkflowTemplateEncryptionConfig']]:
858
+ """
859
+ Optional. The encryption configuration for the workflow template.
860
+ """
861
+ return pulumi.get(self, "encryption_config")
862
+
816
863
  @property
817
864
  @pulumi.getter
818
865
  def jobs(self) -> pulumi.Output[Sequence['outputs.WorkflowTemplateJob']]:
@@ -391,6 +391,36 @@ class Field(pulumi.CustomResource):
391
391
  ],
392
392
  })
393
393
  ```
394
+ ### Firestore Field Wildcard
395
+
396
+ ```python
397
+ import pulumi
398
+ import pulumi_gcp as gcp
399
+
400
+ database = gcp.firestore.Database("database",
401
+ project="my-project-name",
402
+ name="database-id",
403
+ location_id="nam5",
404
+ type="FIRESTORE_NATIVE",
405
+ delete_protection_state="DELETE_PROTECTION_ENABLED",
406
+ deletion_policy="DELETE")
407
+ wildcard = gcp.firestore.Field("wildcard",
408
+ project="my-project-name",
409
+ database=database.name,
410
+ collection="chatrooms__75223",
411
+ field="*",
412
+ index_config={
413
+ "indexes": [
414
+ {
415
+ "order": "ASCENDING",
416
+ "query_scope": "COLLECTION_GROUP",
417
+ },
418
+ {
419
+ "array_config": "CONTAINS",
420
+ },
421
+ ],
422
+ })
423
+ ```
394
424
 
395
425
  ## Import
396
426
 
@@ -529,6 +559,36 @@ class Field(pulumi.CustomResource):
529
559
  ],
530
560
  })
531
561
  ```
562
+ ### Firestore Field Wildcard
563
+
564
+ ```python
565
+ import pulumi
566
+ import pulumi_gcp as gcp
567
+
568
+ database = gcp.firestore.Database("database",
569
+ project="my-project-name",
570
+ name="database-id",
571
+ location_id="nam5",
572
+ type="FIRESTORE_NATIVE",
573
+ delete_protection_state="DELETE_PROTECTION_ENABLED",
574
+ deletion_policy="DELETE")
575
+ wildcard = gcp.firestore.Field("wildcard",
576
+ project="my-project-name",
577
+ database=database.name,
578
+ collection="chatrooms__75223",
579
+ field="*",
580
+ index_config={
581
+ "indexes": [
582
+ {
583
+ "order": "ASCENDING",
584
+ "query_scope": "COLLECTION_GROUP",
585
+ },
586
+ {
587
+ "array_config": "CONTAINS",
588
+ },
589
+ ],
590
+ })
591
+ ```
532
592
 
533
593
  ## Import
534
594
 
@@ -333,6 +333,10 @@ if not MYPY:
333
333
  Git repo configuration for the cluster
334
334
  Structure is documented below.
335
335
  """
336
+ metrics_gcp_service_account_email: NotRequired[pulumi.Input[str]]
337
+ """
338
+ The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
339
+ """
336
340
  oci: NotRequired[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgsDict']]
337
341
  """
338
342
  OCI repo configuration for the cluster
@@ -354,6 +358,7 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
354
358
  def __init__(__self__, *,
355
359
  enabled: Optional[pulumi.Input[bool]] = None,
356
360
  git: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs']] = None,
361
+ metrics_gcp_service_account_email: Optional[pulumi.Input[str]] = None,
357
362
  oci: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs']] = None,
358
363
  prevent_drift: Optional[pulumi.Input[bool]] = None,
359
364
  source_format: Optional[pulumi.Input[str]] = None):
@@ -361,6 +366,7 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
361
366
  :param pulumi.Input[bool] enabled: Enables the installation of ConfigSync. If set to true, ConfigSync resources will be created and the other ConfigSync fields will be applied if exist. If set to false, all other ConfigSync fields will be ignored, ConfigSync resources will be deleted. If omitted, ConfigSync resources will be managed depends on the presence of the git or oci field.
362
367
  :param pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs'] git: Git repo configuration for the cluster
363
368
  Structure is documented below.
369
+ :param pulumi.Input[str] metrics_gcp_service_account_email: The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
364
370
  :param pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs'] oci: OCI repo configuration for the cluster
365
371
  Structure is documented below.
366
372
  :param pulumi.Input[bool] prevent_drift: Set to true to enable the Config Sync admission webhook to prevent drifts. If set to `false`, disables the Config Sync admission webhook and does not prevent drifts.
@@ -370,6 +376,8 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
370
376
  pulumi.set(__self__, "enabled", enabled)
371
377
  if git is not None:
372
378
  pulumi.set(__self__, "git", git)
379
+ if metrics_gcp_service_account_email is not None:
380
+ pulumi.set(__self__, "metrics_gcp_service_account_email", metrics_gcp_service_account_email)
373
381
  if oci is not None:
374
382
  pulumi.set(__self__, "oci", oci)
375
383
  if prevent_drift is not None:
@@ -402,6 +410,18 @@ class FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncArgs:
402
410
  def git(self, value: Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncGitArgs']]):
403
411
  pulumi.set(self, "git", value)
404
412
 
413
+ @property
414
+ @pulumi.getter(name="metricsGcpServiceAccountEmail")
415
+ def metrics_gcp_service_account_email(self) -> Optional[pulumi.Input[str]]:
416
+ """
417
+ The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring. The GSA should have the Monitoring Metric Writer(roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.
418
+ """
419
+ return pulumi.get(self, "metrics_gcp_service_account_email")
420
+
421
+ @metrics_gcp_service_account_email.setter
422
+ def metrics_gcp_service_account_email(self, value: Optional[pulumi.Input[str]]):
423
+ pulumi.set(self, "metrics_gcp_service_account_email", value)
424
+
405
425
  @property
406
426
  @pulumi.getter
407
427
  def oci(self) -> Optional[pulumi.Input['FeatureFleetDefaultMemberConfigConfigmanagementConfigSyncOciArgs']]: