pulumi-gcp 8.2.0a1726589141__py3-none-any.whl → 8.2.0a1726675738__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 (43) hide show
  1. pulumi_gcp/__init__.py +38 -0
  2. pulumi_gcp/bigquery/__init__.py +1 -0
  3. pulumi_gcp/bigquery/get_tables.py +143 -0
  4. pulumi_gcp/bigquery/outputs.py +30 -0
  5. pulumi_gcp/compute/__init__.py +1 -0
  6. pulumi_gcp/compute/_inputs.py +2208 -285
  7. pulumi_gcp/compute/get_instance.py +3 -0
  8. pulumi_gcp/compute/network_firewall_policy_with_rules.py +826 -0
  9. pulumi_gcp/compute/outputs.py +1383 -0
  10. pulumi_gcp/compute/region_target_http_proxy.py +159 -0
  11. pulumi_gcp/compute/region_target_https_proxy.py +175 -0
  12. pulumi_gcp/compute/service_attachment.py +75 -0
  13. pulumi_gcp/compute/target_http_proxy.py +49 -28
  14. pulumi_gcp/compute/target_https_proxy.py +49 -28
  15. pulumi_gcp/config/__init__.pyi +4 -0
  16. pulumi_gcp/config/vars.py +8 -0
  17. pulumi_gcp/container/_inputs.py +96 -0
  18. pulumi_gcp/container/attached_cluster.py +54 -1
  19. pulumi_gcp/container/outputs.py +102 -0
  20. pulumi_gcp/dataproc/metastore_federation.py +8 -8
  21. pulumi_gcp/dataproc/metastore_service.py +2 -0
  22. pulumi_gcp/datastream/stream.py +21 -14
  23. pulumi_gcp/developerconnect/__init__.py +11 -0
  24. pulumi_gcp/developerconnect/_inputs.py +301 -0
  25. pulumi_gcp/developerconnect/connection.py +1034 -0
  26. pulumi_gcp/developerconnect/git_repository_link.py +873 -0
  27. pulumi_gcp/developerconnect/outputs.py +247 -0
  28. pulumi_gcp/gkeonprem/_inputs.py +3 -3
  29. pulumi_gcp/gkeonprem/outputs.py +2 -2
  30. pulumi_gcp/memorystore/__init__.py +10 -0
  31. pulumi_gcp/memorystore/_inputs.py +731 -0
  32. pulumi_gcp/memorystore/instance.py +1663 -0
  33. pulumi_gcp/memorystore/outputs.py +598 -0
  34. pulumi_gcp/netapp/volume.py +101 -0
  35. pulumi_gcp/organizations/folder.py +52 -33
  36. pulumi_gcp/provider.py +40 -0
  37. pulumi_gcp/pulumi-plugin.json +1 -1
  38. pulumi_gcp/securitycenter/v2_project_mute_config.py +2 -2
  39. pulumi_gcp/vpcaccess/connector.py +21 -28
  40. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/METADATA +1 -1
  41. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/RECORD +43 -32
  42. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/WHEEL +0 -0
  43. {pulumi_gcp-8.2.0a1726589141.dist-info → pulumi_gcp-8.2.0a1726675738.dist-info}/top_level.txt +0 -0
@@ -37,6 +37,8 @@ __all__ = [
37
37
  'AttachedClusterProxyConfigArgsDict',
38
38
  'AttachedClusterProxyConfigKubernetesSecretArgs',
39
39
  'AttachedClusterProxyConfigKubernetesSecretArgsDict',
40
+ 'AttachedClusterSecurityPostureConfigArgs',
41
+ 'AttachedClusterSecurityPostureConfigArgsDict',
40
42
  'AttachedClusterWorkloadIdentityConfigArgs',
41
43
  'AttachedClusterWorkloadIdentityConfigArgsDict',
42
44
  'AwsClusterAuthorizationArgs',
@@ -1018,6 +1020,40 @@ class AttachedClusterProxyConfigKubernetesSecretArgs:
1018
1020
  pulumi.set(self, "namespace", value)
1019
1021
 
1020
1022
 
1023
+ if not MYPY:
1024
+ class AttachedClusterSecurityPostureConfigArgsDict(TypedDict):
1025
+ vulnerability_mode: pulumi.Input[str]
1026
+ """
1027
+ Sets the mode of the Kubernetes security posture API's workload vulnerability scanning.
1028
+ Possible values are: `VULNERABILITY_DISABLED`, `VULNERABILITY_ENTERPRISE`.
1029
+ """
1030
+ elif False:
1031
+ AttachedClusterSecurityPostureConfigArgsDict: TypeAlias = Mapping[str, Any]
1032
+
1033
+ @pulumi.input_type
1034
+ class AttachedClusterSecurityPostureConfigArgs:
1035
+ def __init__(__self__, *,
1036
+ vulnerability_mode: pulumi.Input[str]):
1037
+ """
1038
+ :param pulumi.Input[str] vulnerability_mode: Sets the mode of the Kubernetes security posture API's workload vulnerability scanning.
1039
+ Possible values are: `VULNERABILITY_DISABLED`, `VULNERABILITY_ENTERPRISE`.
1040
+ """
1041
+ pulumi.set(__self__, "vulnerability_mode", vulnerability_mode)
1042
+
1043
+ @property
1044
+ @pulumi.getter(name="vulnerabilityMode")
1045
+ def vulnerability_mode(self) -> pulumi.Input[str]:
1046
+ """
1047
+ Sets the mode of the Kubernetes security posture API's workload vulnerability scanning.
1048
+ Possible values are: `VULNERABILITY_DISABLED`, `VULNERABILITY_ENTERPRISE`.
1049
+ """
1050
+ return pulumi.get(self, "vulnerability_mode")
1051
+
1052
+ @vulnerability_mode.setter
1053
+ def vulnerability_mode(self, value: pulumi.Input[str]):
1054
+ pulumi.set(self, "vulnerability_mode", value)
1055
+
1056
+
1021
1057
  if not MYPY:
1022
1058
  class AttachedClusterWorkloadIdentityConfigArgsDict(TypedDict):
1023
1059
  identity_provider: NotRequired[pulumi.Input[str]]
@@ -8203,6 +8239,10 @@ if not MYPY:
8203
8239
  See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)
8204
8240
  for more information. Defaults to false.
8205
8241
  """
8242
+ storage_pools: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
8243
+ """
8244
+ The list of Storage Pools where boot disks are provisioned.
8245
+ """
8206
8246
  tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
8207
8247
  """
8208
8248
  The list of instance tags applied to all nodes. Tags are used to identify
@@ -8267,6 +8307,7 @@ class ClusterNodeConfigArgs:
8267
8307
  shielded_instance_config: Optional[pulumi.Input['ClusterNodeConfigShieldedInstanceConfigArgs']] = None,
8268
8308
  sole_tenant_config: Optional[pulumi.Input['ClusterNodeConfigSoleTenantConfigArgs']] = None,
8269
8309
  spot: Optional[pulumi.Input[bool]] = None,
8310
+ storage_pools: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
8270
8311
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
8271
8312
  taints: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNodeConfigTaintArgs']]]] = None,
8272
8313
  workload_metadata_config: Optional[pulumi.Input['ClusterNodeConfigWorkloadMetadataConfigArgs']] = None):
@@ -8357,6 +8398,7 @@ class ClusterNodeConfigArgs:
8357
8398
  :param pulumi.Input[bool] spot: A boolean that represents whether the underlying node VMs are spot.
8358
8399
  See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)
8359
8400
  for more information. Defaults to false.
8401
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] storage_pools: The list of Storage Pools where boot disks are provisioned.
8360
8402
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The list of instance tags applied to all nodes. Tags are used to identify
8361
8403
  valid sources or targets for network firewalls.
8362
8404
  :param pulumi.Input[Sequence[pulumi.Input['ClusterNodeConfigTaintArgs']]] taints: A list of [Kubernetes taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)
@@ -8444,6 +8486,8 @@ class ClusterNodeConfigArgs:
8444
8486
  pulumi.set(__self__, "sole_tenant_config", sole_tenant_config)
8445
8487
  if spot is not None:
8446
8488
  pulumi.set(__self__, "spot", spot)
8489
+ if storage_pools is not None:
8490
+ pulumi.set(__self__, "storage_pools", storage_pools)
8447
8491
  if tags is not None:
8448
8492
  pulumi.set(__self__, "tags", tags)
8449
8493
  if taints is not None:
@@ -8944,6 +8988,18 @@ class ClusterNodeConfigArgs:
8944
8988
  def spot(self, value: Optional[pulumi.Input[bool]]):
8945
8989
  pulumi.set(self, "spot", value)
8946
8990
 
8991
+ @property
8992
+ @pulumi.getter(name="storagePools")
8993
+ def storage_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
8994
+ """
8995
+ The list of Storage Pools where boot disks are provisioned.
8996
+ """
8997
+ return pulumi.get(self, "storage_pools")
8998
+
8999
+ @storage_pools.setter
9000
+ def storage_pools(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
9001
+ pulumi.set(self, "storage_pools", value)
9002
+
8947
9003
  @property
8948
9004
  @pulumi.getter
8949
9005
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -12016,6 +12072,10 @@ if not MYPY:
12016
12072
  See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)
12017
12073
  for more information. Defaults to false.
12018
12074
  """
12075
+ storage_pools: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
12076
+ """
12077
+ The list of Storage Pools where boot disks are provisioned.
12078
+ """
12019
12079
  tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
12020
12080
  """
12021
12081
  The list of instance tags applied to all nodes. Tags are used to identify
@@ -12080,6 +12140,7 @@ class ClusterNodePoolNodeConfigArgs:
12080
12140
  shielded_instance_config: Optional[pulumi.Input['ClusterNodePoolNodeConfigShieldedInstanceConfigArgs']] = None,
12081
12141
  sole_tenant_config: Optional[pulumi.Input['ClusterNodePoolNodeConfigSoleTenantConfigArgs']] = None,
12082
12142
  spot: Optional[pulumi.Input[bool]] = None,
12143
+ storage_pools: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
12083
12144
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
12084
12145
  taints: Optional[pulumi.Input[Sequence[pulumi.Input['ClusterNodePoolNodeConfigTaintArgs']]]] = None,
12085
12146
  workload_metadata_config: Optional[pulumi.Input['ClusterNodePoolNodeConfigWorkloadMetadataConfigArgs']] = None):
@@ -12170,6 +12231,7 @@ class ClusterNodePoolNodeConfigArgs:
12170
12231
  :param pulumi.Input[bool] spot: A boolean that represents whether the underlying node VMs are spot.
12171
12232
  See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)
12172
12233
  for more information. Defaults to false.
12234
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] storage_pools: The list of Storage Pools where boot disks are provisioned.
12173
12235
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The list of instance tags applied to all nodes. Tags are used to identify
12174
12236
  valid sources or targets for network firewalls.
12175
12237
  :param pulumi.Input[Sequence[pulumi.Input['ClusterNodePoolNodeConfigTaintArgs']]] taints: A list of [Kubernetes taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)
@@ -12257,6 +12319,8 @@ class ClusterNodePoolNodeConfigArgs:
12257
12319
  pulumi.set(__self__, "sole_tenant_config", sole_tenant_config)
12258
12320
  if spot is not None:
12259
12321
  pulumi.set(__self__, "spot", spot)
12322
+ if storage_pools is not None:
12323
+ pulumi.set(__self__, "storage_pools", storage_pools)
12260
12324
  if tags is not None:
12261
12325
  pulumi.set(__self__, "tags", tags)
12262
12326
  if taints is not None:
@@ -12757,6 +12821,18 @@ class ClusterNodePoolNodeConfigArgs:
12757
12821
  def spot(self, value: Optional[pulumi.Input[bool]]):
12758
12822
  pulumi.set(self, "spot", value)
12759
12823
 
12824
+ @property
12825
+ @pulumi.getter(name="storagePools")
12826
+ def storage_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
12827
+ """
12828
+ The list of Storage Pools where boot disks are provisioned.
12829
+ """
12830
+ return pulumi.get(self, "storage_pools")
12831
+
12832
+ @storage_pools.setter
12833
+ def storage_pools(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
12834
+ pulumi.set(self, "storage_pools", value)
12835
+
12760
12836
  @property
12761
12837
  @pulumi.getter
12762
12838
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -16224,6 +16300,10 @@ if not MYPY:
16224
16300
  """
16225
16301
  Whether the nodes are created as spot VM instances.
16226
16302
  """
16303
+ storage_pools: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
16304
+ """
16305
+ The list of Storage Pools where boot disks are provisioned.
16306
+ """
16227
16307
  tags: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
16228
16308
  """
16229
16309
  The list of instance tags applied to all nodes.
@@ -16279,6 +16359,7 @@ class NodePoolNodeConfigArgs:
16279
16359
  shielded_instance_config: Optional[pulumi.Input['NodePoolNodeConfigShieldedInstanceConfigArgs']] = None,
16280
16360
  sole_tenant_config: Optional[pulumi.Input['NodePoolNodeConfigSoleTenantConfigArgs']] = None,
16281
16361
  spot: Optional[pulumi.Input[bool]] = None,
16362
+ storage_pools: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
16282
16363
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
16283
16364
  taints: Optional[pulumi.Input[Sequence[pulumi.Input['NodePoolNodeConfigTaintArgs']]]] = None,
16284
16365
  workload_metadata_config: Optional[pulumi.Input['NodePoolNodeConfigWorkloadMetadataConfigArgs']] = None):
@@ -16323,6 +16404,7 @@ class NodePoolNodeConfigArgs:
16323
16404
  :param pulumi.Input['NodePoolNodeConfigShieldedInstanceConfigArgs'] shielded_instance_config: Shielded Instance options.
16324
16405
  :param pulumi.Input['NodePoolNodeConfigSoleTenantConfigArgs'] sole_tenant_config: Node affinity options for sole tenant node pools.
16325
16406
  :param pulumi.Input[bool] spot: Whether the nodes are created as spot VM instances.
16407
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] storage_pools: The list of Storage Pools where boot disks are provisioned.
16326
16408
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: The list of instance tags applied to all nodes.
16327
16409
  :param pulumi.Input[Sequence[pulumi.Input['NodePoolNodeConfigTaintArgs']]] taints: List of Kubernetes taints to be applied to each node.
16328
16410
  :param pulumi.Input['NodePoolNodeConfigWorkloadMetadataConfigArgs'] workload_metadata_config: The workload metadata configuration for this node.
@@ -16401,6 +16483,8 @@ class NodePoolNodeConfigArgs:
16401
16483
  pulumi.set(__self__, "sole_tenant_config", sole_tenant_config)
16402
16484
  if spot is not None:
16403
16485
  pulumi.set(__self__, "spot", spot)
16486
+ if storage_pools is not None:
16487
+ pulumi.set(__self__, "storage_pools", storage_pools)
16404
16488
  if tags is not None:
16405
16489
  pulumi.set(__self__, "tags", tags)
16406
16490
  if taints is not None:
@@ -16855,6 +16939,18 @@ class NodePoolNodeConfigArgs:
16855
16939
  def spot(self, value: Optional[pulumi.Input[bool]]):
16856
16940
  pulumi.set(self, "spot", value)
16857
16941
 
16942
+ @property
16943
+ @pulumi.getter(name="storagePools")
16944
+ def storage_pools(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
16945
+ """
16946
+ The list of Storage Pools where boot disks are provisioned.
16947
+ """
16948
+ return pulumi.get(self, "storage_pools")
16949
+
16950
+ @storage_pools.setter
16951
+ def storage_pools(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
16952
+ pulumi.set(self, "storage_pools", value)
16953
+
16858
16954
  @property
16859
16955
  @pulumi.getter
16860
16956
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -35,7 +35,8 @@ class AttachedClusterArgs:
35
35
  monitoring_config: Optional[pulumi.Input['AttachedClusterMonitoringConfigArgs']] = None,
36
36
  name: Optional[pulumi.Input[str]] = None,
37
37
  project: Optional[pulumi.Input[str]] = None,
38
- proxy_config: Optional[pulumi.Input['AttachedClusterProxyConfigArgs']] = None):
38
+ proxy_config: Optional[pulumi.Input['AttachedClusterProxyConfigArgs']] = None,
39
+ security_posture_config: Optional[pulumi.Input['AttachedClusterSecurityPostureConfigArgs']] = None):
39
40
  """
40
41
  The set of arguments for constructing a AttachedCluster resource.
41
42
  :param pulumi.Input[str] distribution: The Kubernetes distribution of the underlying attached cluster. Supported values:
@@ -69,6 +70,7 @@ class AttachedClusterArgs:
69
70
  :param pulumi.Input['AttachedClusterMonitoringConfigArgs'] monitoring_config: Monitoring configuration.
70
71
  :param pulumi.Input[str] name: The name of this resource.
71
72
  :param pulumi.Input['AttachedClusterProxyConfigArgs'] proxy_config: Support for proxy configuration.
73
+ :param pulumi.Input['AttachedClusterSecurityPostureConfigArgs'] security_posture_config: Enable/Disable Security Posture API features for the cluster.
72
74
  """
73
75
  pulumi.set(__self__, "distribution", distribution)
74
76
  pulumi.set(__self__, "fleet", fleet)
@@ -95,6 +97,8 @@ class AttachedClusterArgs:
95
97
  pulumi.set(__self__, "project", project)
96
98
  if proxy_config is not None:
97
99
  pulumi.set(__self__, "proxy_config", proxy_config)
100
+ if security_posture_config is not None:
101
+ pulumi.set(__self__, "security_posture_config", security_posture_config)
98
102
 
99
103
  @property
100
104
  @pulumi.getter
@@ -290,6 +294,18 @@ class AttachedClusterArgs:
290
294
  def proxy_config(self, value: Optional[pulumi.Input['AttachedClusterProxyConfigArgs']]):
291
295
  pulumi.set(self, "proxy_config", value)
292
296
 
297
+ @property
298
+ @pulumi.getter(name="securityPostureConfig")
299
+ def security_posture_config(self) -> Optional[pulumi.Input['AttachedClusterSecurityPostureConfigArgs']]:
300
+ """
301
+ Enable/Disable Security Posture API features for the cluster.
302
+ """
303
+ return pulumi.get(self, "security_posture_config")
304
+
305
+ @security_posture_config.setter
306
+ def security_posture_config(self, value: Optional[pulumi.Input['AttachedClusterSecurityPostureConfigArgs']]):
307
+ pulumi.set(self, "security_posture_config", value)
308
+
293
309
 
294
310
  @pulumi.input_type
295
311
  class _AttachedClusterState:
@@ -315,6 +331,7 @@ class _AttachedClusterState:
315
331
  project: Optional[pulumi.Input[str]] = None,
316
332
  proxy_config: Optional[pulumi.Input['AttachedClusterProxyConfigArgs']] = None,
317
333
  reconciling: Optional[pulumi.Input[bool]] = None,
334
+ security_posture_config: Optional[pulumi.Input['AttachedClusterSecurityPostureConfigArgs']] = None,
318
335
  state: Optional[pulumi.Input[str]] = None,
319
336
  uid: Optional[pulumi.Input[str]] = None,
320
337
  update_time: Optional[pulumi.Input[str]] = None,
@@ -360,6 +377,7 @@ class _AttachedClusterState:
360
377
  :param pulumi.Input[str] platform_version: The platform version for the cluster (e.g. `1.23.0-gke.1`).
361
378
  :param pulumi.Input['AttachedClusterProxyConfigArgs'] proxy_config: Support for proxy configuration.
362
379
  :param pulumi.Input[bool] reconciling: If set, there are currently changes in flight to the cluster.
380
+ :param pulumi.Input['AttachedClusterSecurityPostureConfigArgs'] security_posture_config: Enable/Disable Security Posture API features for the cluster.
363
381
  :param pulumi.Input[str] state: The current state of the cluster. Possible values:
364
382
  STATE_UNSPECIFIED, PROVISIONING, RUNNING, RECONCILING, STOPPING, ERROR,
365
383
  DEGRADED
@@ -410,6 +428,8 @@ class _AttachedClusterState:
410
428
  pulumi.set(__self__, "proxy_config", proxy_config)
411
429
  if reconciling is not None:
412
430
  pulumi.set(__self__, "reconciling", reconciling)
431
+ if security_posture_config is not None:
432
+ pulumi.set(__self__, "security_posture_config", security_posture_config)
413
433
  if state is not None:
414
434
  pulumi.set(__self__, "state", state)
415
435
  if uid is not None:
@@ -685,6 +705,18 @@ class _AttachedClusterState:
685
705
  def reconciling(self, value: Optional[pulumi.Input[bool]]):
686
706
  pulumi.set(self, "reconciling", value)
687
707
 
708
+ @property
709
+ @pulumi.getter(name="securityPostureConfig")
710
+ def security_posture_config(self) -> Optional[pulumi.Input['AttachedClusterSecurityPostureConfigArgs']]:
711
+ """
712
+ Enable/Disable Security Posture API features for the cluster.
713
+ """
714
+ return pulumi.get(self, "security_posture_config")
715
+
716
+ @security_posture_config.setter
717
+ def security_posture_config(self, value: Optional[pulumi.Input['AttachedClusterSecurityPostureConfigArgs']]):
718
+ pulumi.set(self, "security_posture_config", value)
719
+
688
720
  @property
689
721
  @pulumi.getter
690
722
  def state(self) -> Optional[pulumi.Input[str]]:
@@ -757,6 +789,7 @@ class AttachedCluster(pulumi.CustomResource):
757
789
  platform_version: Optional[pulumi.Input[str]] = None,
758
790
  project: Optional[pulumi.Input[str]] = None,
759
791
  proxy_config: Optional[pulumi.Input[Union['AttachedClusterProxyConfigArgs', 'AttachedClusterProxyConfigArgsDict']]] = None,
792
+ security_posture_config: Optional[pulumi.Input[Union['AttachedClusterSecurityPostureConfigArgs', 'AttachedClusterSecurityPostureConfigArgsDict']]] = None,
760
793
  __props__=None):
761
794
  """
762
795
  An Anthos cluster running on customer owned infrastructure.
@@ -851,6 +884,9 @@ class AttachedCluster(pulumi.CustomResource):
851
884
  "name": "proxy-config",
852
885
  "namespace": "default",
853
886
  },
887
+ },
888
+ security_posture_config={
889
+ "vulnerability_mode": "VULNERABILITY_ENTERPRISE",
854
890
  })
855
891
  ```
856
892
  ### Container Attached Cluster Ignore Errors
@@ -935,6 +971,7 @@ class AttachedCluster(pulumi.CustomResource):
935
971
  Structure is documented below.
936
972
  :param pulumi.Input[str] platform_version: The platform version for the cluster (e.g. `1.23.0-gke.1`).
937
973
  :param pulumi.Input[Union['AttachedClusterProxyConfigArgs', 'AttachedClusterProxyConfigArgsDict']] proxy_config: Support for proxy configuration.
974
+ :param pulumi.Input[Union['AttachedClusterSecurityPostureConfigArgs', 'AttachedClusterSecurityPostureConfigArgsDict']] security_posture_config: Enable/Disable Security Posture API features for the cluster.
938
975
  """
939
976
  ...
940
977
  @overload
@@ -1035,6 +1072,9 @@ class AttachedCluster(pulumi.CustomResource):
1035
1072
  "name": "proxy-config",
1036
1073
  "namespace": "default",
1037
1074
  },
1075
+ },
1076
+ security_posture_config={
1077
+ "vulnerability_mode": "VULNERABILITY_ENTERPRISE",
1038
1078
  })
1039
1079
  ```
1040
1080
  ### Container Attached Cluster Ignore Errors
@@ -1116,6 +1156,7 @@ class AttachedCluster(pulumi.CustomResource):
1116
1156
  platform_version: Optional[pulumi.Input[str]] = None,
1117
1157
  project: Optional[pulumi.Input[str]] = None,
1118
1158
  proxy_config: Optional[pulumi.Input[Union['AttachedClusterProxyConfigArgs', 'AttachedClusterProxyConfigArgsDict']]] = None,
1159
+ security_posture_config: Optional[pulumi.Input[Union['AttachedClusterSecurityPostureConfigArgs', 'AttachedClusterSecurityPostureConfigArgsDict']]] = None,
1119
1160
  __props__=None):
1120
1161
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
1121
1162
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -1150,6 +1191,7 @@ class AttachedCluster(pulumi.CustomResource):
1150
1191
  __props__.__dict__["platform_version"] = platform_version
1151
1192
  __props__.__dict__["project"] = project
1152
1193
  __props__.__dict__["proxy_config"] = proxy_config
1194
+ __props__.__dict__["security_posture_config"] = security_posture_config
1153
1195
  __props__.__dict__["cluster_region"] = None
1154
1196
  __props__.__dict__["create_time"] = None
1155
1197
  __props__.__dict__["effective_annotations"] = None
@@ -1191,6 +1233,7 @@ class AttachedCluster(pulumi.CustomResource):
1191
1233
  project: Optional[pulumi.Input[str]] = None,
1192
1234
  proxy_config: Optional[pulumi.Input[Union['AttachedClusterProxyConfigArgs', 'AttachedClusterProxyConfigArgsDict']]] = None,
1193
1235
  reconciling: Optional[pulumi.Input[bool]] = None,
1236
+ security_posture_config: Optional[pulumi.Input[Union['AttachedClusterSecurityPostureConfigArgs', 'AttachedClusterSecurityPostureConfigArgsDict']]] = None,
1194
1237
  state: Optional[pulumi.Input[str]] = None,
1195
1238
  uid: Optional[pulumi.Input[str]] = None,
1196
1239
  update_time: Optional[pulumi.Input[str]] = None,
@@ -1241,6 +1284,7 @@ class AttachedCluster(pulumi.CustomResource):
1241
1284
  :param pulumi.Input[str] platform_version: The platform version for the cluster (e.g. `1.23.0-gke.1`).
1242
1285
  :param pulumi.Input[Union['AttachedClusterProxyConfigArgs', 'AttachedClusterProxyConfigArgsDict']] proxy_config: Support for proxy configuration.
1243
1286
  :param pulumi.Input[bool] reconciling: If set, there are currently changes in flight to the cluster.
1287
+ :param pulumi.Input[Union['AttachedClusterSecurityPostureConfigArgs', 'AttachedClusterSecurityPostureConfigArgsDict']] security_posture_config: Enable/Disable Security Posture API features for the cluster.
1244
1288
  :param pulumi.Input[str] state: The current state of the cluster. Possible values:
1245
1289
  STATE_UNSPECIFIED, PROVISIONING, RUNNING, RECONCILING, STOPPING, ERROR,
1246
1290
  DEGRADED
@@ -1274,6 +1318,7 @@ class AttachedCluster(pulumi.CustomResource):
1274
1318
  __props__.__dict__["project"] = project
1275
1319
  __props__.__dict__["proxy_config"] = proxy_config
1276
1320
  __props__.__dict__["reconciling"] = reconciling
1321
+ __props__.__dict__["security_posture_config"] = security_posture_config
1277
1322
  __props__.__dict__["state"] = state
1278
1323
  __props__.__dict__["uid"] = uid
1279
1324
  __props__.__dict__["update_time"] = update_time
@@ -1462,6 +1507,14 @@ class AttachedCluster(pulumi.CustomResource):
1462
1507
  """
1463
1508
  return pulumi.get(self, "reconciling")
1464
1509
 
1510
+ @property
1511
+ @pulumi.getter(name="securityPostureConfig")
1512
+ def security_posture_config(self) -> pulumi.Output['outputs.AttachedClusterSecurityPostureConfig']:
1513
+ """
1514
+ Enable/Disable Security Posture API features for the cluster.
1515
+ """
1516
+ return pulumi.get(self, "security_posture_config")
1517
+
1465
1518
  @property
1466
1519
  @pulumi.getter
1467
1520
  def state(self) -> pulumi.Output[str]:
@@ -27,6 +27,7 @@ __all__ = [
27
27
  'AttachedClusterOidcConfig',
28
28
  'AttachedClusterProxyConfig',
29
29
  'AttachedClusterProxyConfigKubernetesSecret',
30
+ 'AttachedClusterSecurityPostureConfig',
30
31
  'AttachedClusterWorkloadIdentityConfig',
31
32
  'AwsClusterAuthorization',
32
33
  'AwsClusterAuthorizationAdminGroup',
@@ -839,6 +840,43 @@ class AttachedClusterProxyConfigKubernetesSecret(dict):
839
840
  return pulumi.get(self, "namespace")
840
841
 
841
842
 
843
+ @pulumi.output_type
844
+ class AttachedClusterSecurityPostureConfig(dict):
845
+ @staticmethod
846
+ def __key_warning(key: str):
847
+ suggest = None
848
+ if key == "vulnerabilityMode":
849
+ suggest = "vulnerability_mode"
850
+
851
+ if suggest:
852
+ pulumi.log.warn(f"Key '{key}' not found in AttachedClusterSecurityPostureConfig. Access the value via the '{suggest}' property getter instead.")
853
+
854
+ def __getitem__(self, key: str) -> Any:
855
+ AttachedClusterSecurityPostureConfig.__key_warning(key)
856
+ return super().__getitem__(key)
857
+
858
+ def get(self, key: str, default = None) -> Any:
859
+ AttachedClusterSecurityPostureConfig.__key_warning(key)
860
+ return super().get(key, default)
861
+
862
+ def __init__(__self__, *,
863
+ vulnerability_mode: str):
864
+ """
865
+ :param str vulnerability_mode: Sets the mode of the Kubernetes security posture API's workload vulnerability scanning.
866
+ Possible values are: `VULNERABILITY_DISABLED`, `VULNERABILITY_ENTERPRISE`.
867
+ """
868
+ pulumi.set(__self__, "vulnerability_mode", vulnerability_mode)
869
+
870
+ @property
871
+ @pulumi.getter(name="vulnerabilityMode")
872
+ def vulnerability_mode(self) -> str:
873
+ """
874
+ Sets the mode of the Kubernetes security posture API's workload vulnerability scanning.
875
+ Possible values are: `VULNERABILITY_DISABLED`, `VULNERABILITY_ENTERPRISE`.
876
+ """
877
+ return pulumi.get(self, "vulnerability_mode")
878
+
879
+
842
880
  @pulumi.output_type
843
881
  class AttachedClusterWorkloadIdentityConfig(dict):
844
882
  @staticmethod
@@ -6631,6 +6669,8 @@ class ClusterNodeConfig(dict):
6631
6669
  suggest = "shielded_instance_config"
6632
6670
  elif key == "soleTenantConfig":
6633
6671
  suggest = "sole_tenant_config"
6672
+ elif key == "storagePools":
6673
+ suggest = "storage_pools"
6634
6674
  elif key == "workloadMetadataConfig":
6635
6675
  suggest = "workload_metadata_config"
6636
6676
 
@@ -6683,6 +6723,7 @@ class ClusterNodeConfig(dict):
6683
6723
  shielded_instance_config: Optional['outputs.ClusterNodeConfigShieldedInstanceConfig'] = None,
6684
6724
  sole_tenant_config: Optional['outputs.ClusterNodeConfigSoleTenantConfig'] = None,
6685
6725
  spot: Optional[bool] = None,
6726
+ storage_pools: Optional[Sequence[str]] = None,
6686
6727
  tags: Optional[Sequence[str]] = None,
6687
6728
  taints: Optional[Sequence['outputs.ClusterNodeConfigTaint']] = None,
6688
6729
  workload_metadata_config: Optional['outputs.ClusterNodeConfigWorkloadMetadataConfig'] = None):
@@ -6773,6 +6814,7 @@ class ClusterNodeConfig(dict):
6773
6814
  :param bool spot: A boolean that represents whether the underlying node VMs are spot.
6774
6815
  See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)
6775
6816
  for more information. Defaults to false.
6817
+ :param Sequence[str] storage_pools: The list of Storage Pools where boot disks are provisioned.
6776
6818
  :param Sequence[str] tags: The list of instance tags applied to all nodes. Tags are used to identify
6777
6819
  valid sources or targets for network firewalls.
6778
6820
  :param Sequence['ClusterNodeConfigTaintArgs'] taints: A list of [Kubernetes taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)
@@ -6860,6 +6902,8 @@ class ClusterNodeConfig(dict):
6860
6902
  pulumi.set(__self__, "sole_tenant_config", sole_tenant_config)
6861
6903
  if spot is not None:
6862
6904
  pulumi.set(__self__, "spot", spot)
6905
+ if storage_pools is not None:
6906
+ pulumi.set(__self__, "storage_pools", storage_pools)
6863
6907
  if tags is not None:
6864
6908
  pulumi.set(__self__, "tags", tags)
6865
6909
  if taints is not None:
@@ -7212,6 +7256,14 @@ class ClusterNodeConfig(dict):
7212
7256
  """
7213
7257
  return pulumi.get(self, "spot")
7214
7258
 
7259
+ @property
7260
+ @pulumi.getter(name="storagePools")
7261
+ def storage_pools(self) -> Optional[Sequence[str]]:
7262
+ """
7263
+ The list of Storage Pools where boot disks are provisioned.
7264
+ """
7265
+ return pulumi.get(self, "storage_pools")
7266
+
7215
7267
  @property
7216
7268
  @pulumi.getter
7217
7269
  def tags(self) -> Optional[Sequence[str]]:
@@ -9640,6 +9692,8 @@ class ClusterNodePoolNodeConfig(dict):
9640
9692
  suggest = "shielded_instance_config"
9641
9693
  elif key == "soleTenantConfig":
9642
9694
  suggest = "sole_tenant_config"
9695
+ elif key == "storagePools":
9696
+ suggest = "storage_pools"
9643
9697
  elif key == "workloadMetadataConfig":
9644
9698
  suggest = "workload_metadata_config"
9645
9699
 
@@ -9692,6 +9746,7 @@ class ClusterNodePoolNodeConfig(dict):
9692
9746
  shielded_instance_config: Optional['outputs.ClusterNodePoolNodeConfigShieldedInstanceConfig'] = None,
9693
9747
  sole_tenant_config: Optional['outputs.ClusterNodePoolNodeConfigSoleTenantConfig'] = None,
9694
9748
  spot: Optional[bool] = None,
9749
+ storage_pools: Optional[Sequence[str]] = None,
9695
9750
  tags: Optional[Sequence[str]] = None,
9696
9751
  taints: Optional[Sequence['outputs.ClusterNodePoolNodeConfigTaint']] = None,
9697
9752
  workload_metadata_config: Optional['outputs.ClusterNodePoolNodeConfigWorkloadMetadataConfig'] = None):
@@ -9782,6 +9837,7 @@ class ClusterNodePoolNodeConfig(dict):
9782
9837
  :param bool spot: A boolean that represents whether the underlying node VMs are spot.
9783
9838
  See the [official documentation](https://cloud.google.com/kubernetes-engine/docs/concepts/spot-vms)
9784
9839
  for more information. Defaults to false.
9840
+ :param Sequence[str] storage_pools: The list of Storage Pools where boot disks are provisioned.
9785
9841
  :param Sequence[str] tags: The list of instance tags applied to all nodes. Tags are used to identify
9786
9842
  valid sources or targets for network firewalls.
9787
9843
  :param Sequence['ClusterNodePoolNodeConfigTaintArgs'] taints: A list of [Kubernetes taints](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/)
@@ -9869,6 +9925,8 @@ class ClusterNodePoolNodeConfig(dict):
9869
9925
  pulumi.set(__self__, "sole_tenant_config", sole_tenant_config)
9870
9926
  if spot is not None:
9871
9927
  pulumi.set(__self__, "spot", spot)
9928
+ if storage_pools is not None:
9929
+ pulumi.set(__self__, "storage_pools", storage_pools)
9872
9930
  if tags is not None:
9873
9931
  pulumi.set(__self__, "tags", tags)
9874
9932
  if taints is not None:
@@ -10221,6 +10279,14 @@ class ClusterNodePoolNodeConfig(dict):
10221
10279
  """
10222
10280
  return pulumi.get(self, "spot")
10223
10281
 
10282
+ @property
10283
+ @pulumi.getter(name="storagePools")
10284
+ def storage_pools(self) -> Optional[Sequence[str]]:
10285
+ """
10286
+ The list of Storage Pools where boot disks are provisioned.
10287
+ """
10288
+ return pulumi.get(self, "storage_pools")
10289
+
10224
10290
  @property
10225
10291
  @pulumi.getter
10226
10292
  def tags(self) -> Optional[Sequence[str]]:
@@ -12996,6 +13062,8 @@ class NodePoolNodeConfig(dict):
12996
13062
  suggest = "shielded_instance_config"
12997
13063
  elif key == "soleTenantConfig":
12998
13064
  suggest = "sole_tenant_config"
13065
+ elif key == "storagePools":
13066
+ suggest = "storage_pools"
12999
13067
  elif key == "workloadMetadataConfig":
13000
13068
  suggest = "workload_metadata_config"
13001
13069
 
@@ -13048,6 +13116,7 @@ class NodePoolNodeConfig(dict):
13048
13116
  shielded_instance_config: Optional['outputs.NodePoolNodeConfigShieldedInstanceConfig'] = None,
13049
13117
  sole_tenant_config: Optional['outputs.NodePoolNodeConfigSoleTenantConfig'] = None,
13050
13118
  spot: Optional[bool] = None,
13119
+ storage_pools: Optional[Sequence[str]] = None,
13051
13120
  tags: Optional[Sequence[str]] = None,
13052
13121
  taints: Optional[Sequence['outputs.NodePoolNodeConfigTaint']] = None,
13053
13122
  workload_metadata_config: Optional['outputs.NodePoolNodeConfigWorkloadMetadataConfig'] = None):
@@ -13092,6 +13161,7 @@ class NodePoolNodeConfig(dict):
13092
13161
  :param 'NodePoolNodeConfigShieldedInstanceConfigArgs' shielded_instance_config: Shielded Instance options.
13093
13162
  :param 'NodePoolNodeConfigSoleTenantConfigArgs' sole_tenant_config: Node affinity options for sole tenant node pools.
13094
13163
  :param bool spot: Whether the nodes are created as spot VM instances.
13164
+ :param Sequence[str] storage_pools: The list of Storage Pools where boot disks are provisioned.
13095
13165
  :param Sequence[str] tags: The list of instance tags applied to all nodes.
13096
13166
  :param Sequence['NodePoolNodeConfigTaintArgs'] taints: List of Kubernetes taints to be applied to each node.
13097
13167
  :param 'NodePoolNodeConfigWorkloadMetadataConfigArgs' workload_metadata_config: The workload metadata configuration for this node.
@@ -13170,6 +13240,8 @@ class NodePoolNodeConfig(dict):
13170
13240
  pulumi.set(__self__, "sole_tenant_config", sole_tenant_config)
13171
13241
  if spot is not None:
13172
13242
  pulumi.set(__self__, "spot", spot)
13243
+ if storage_pools is not None:
13244
+ pulumi.set(__self__, "storage_pools", storage_pools)
13173
13245
  if tags is not None:
13174
13246
  pulumi.set(__self__, "tags", tags)
13175
13247
  if taints is not None:
@@ -13476,6 +13548,14 @@ class NodePoolNodeConfig(dict):
13476
13548
  """
13477
13549
  return pulumi.get(self, "spot")
13478
13550
 
13551
+ @property
13552
+ @pulumi.getter(name="storagePools")
13553
+ def storage_pools(self) -> Optional[Sequence[str]]:
13554
+ """
13555
+ The list of Storage Pools where boot disks are provisioned.
13556
+ """
13557
+ return pulumi.get(self, "storage_pools")
13558
+
13479
13559
  @property
13480
13560
  @pulumi.getter
13481
13561
  def tags(self) -> Optional[Sequence[str]]:
@@ -16643,6 +16723,7 @@ class GetClusterNodeConfigResult(dict):
16643
16723
  shielded_instance_configs: Sequence['outputs.GetClusterNodeConfigShieldedInstanceConfigResult'],
16644
16724
  sole_tenant_configs: Sequence['outputs.GetClusterNodeConfigSoleTenantConfigResult'],
16645
16725
  spot: bool,
16726
+ storage_pools: Sequence[str],
16646
16727
  tags: Sequence[str],
16647
16728
  taints: Sequence['outputs.GetClusterNodeConfigTaintResult'],
16648
16729
  workload_metadata_configs: Sequence['outputs.GetClusterNodeConfigWorkloadMetadataConfigResult']):
@@ -16684,6 +16765,7 @@ class GetClusterNodeConfigResult(dict):
16684
16765
  :param Sequence['GetClusterNodeConfigShieldedInstanceConfigArgs'] shielded_instance_configs: Shielded Instance options.
16685
16766
  :param Sequence['GetClusterNodeConfigSoleTenantConfigArgs'] sole_tenant_configs: Node affinity options for sole tenant node pools.
16686
16767
  :param bool spot: Whether the nodes are created as spot VM instances.
16768
+ :param Sequence[str] storage_pools: The list of Storage Pools where boot disks are provisioned.
16687
16769
  :param Sequence[str] tags: The list of instance tags applied to all nodes.
16688
16770
  :param Sequence['GetClusterNodeConfigTaintArgs'] taints: List of Kubernetes taints to be applied to each node.
16689
16771
  :param Sequence['GetClusterNodeConfigWorkloadMetadataConfigArgs'] workload_metadata_configs: The workload metadata configuration for this node.
@@ -16725,6 +16807,7 @@ class GetClusterNodeConfigResult(dict):
16725
16807
  pulumi.set(__self__, "shielded_instance_configs", shielded_instance_configs)
16726
16808
  pulumi.set(__self__, "sole_tenant_configs", sole_tenant_configs)
16727
16809
  pulumi.set(__self__, "spot", spot)
16810
+ pulumi.set(__self__, "storage_pools", storage_pools)
16728
16811
  pulumi.set(__self__, "tags", tags)
16729
16812
  pulumi.set(__self__, "taints", taints)
16730
16813
  pulumi.set(__self__, "workload_metadata_configs", workload_metadata_configs)
@@ -17025,6 +17108,14 @@ class GetClusterNodeConfigResult(dict):
17025
17108
  """
17026
17109
  return pulumi.get(self, "spot")
17027
17110
 
17111
+ @property
17112
+ @pulumi.getter(name="storagePools")
17113
+ def storage_pools(self) -> Sequence[str]:
17114
+ """
17115
+ The list of Storage Pools where boot disks are provisioned.
17116
+ """
17117
+ return pulumi.get(self, "storage_pools")
17118
+
17028
17119
  @property
17029
17120
  @pulumi.getter
17030
17121
  def tags(self) -> Sequence[str]:
@@ -18550,6 +18641,7 @@ class GetClusterNodePoolNodeConfigResult(dict):
18550
18641
  shielded_instance_configs: Sequence['outputs.GetClusterNodePoolNodeConfigShieldedInstanceConfigResult'],
18551
18642
  sole_tenant_configs: Sequence['outputs.GetClusterNodePoolNodeConfigSoleTenantConfigResult'],
18552
18643
  spot: bool,
18644
+ storage_pools: Sequence[str],
18553
18645
  tags: Sequence[str],
18554
18646
  taints: Sequence['outputs.GetClusterNodePoolNodeConfigTaintResult'],
18555
18647
  workload_metadata_configs: Sequence['outputs.GetClusterNodePoolNodeConfigWorkloadMetadataConfigResult']):
@@ -18591,6 +18683,7 @@ class GetClusterNodePoolNodeConfigResult(dict):
18591
18683
  :param Sequence['GetClusterNodePoolNodeConfigShieldedInstanceConfigArgs'] shielded_instance_configs: Shielded Instance options.
18592
18684
  :param Sequence['GetClusterNodePoolNodeConfigSoleTenantConfigArgs'] sole_tenant_configs: Node affinity options for sole tenant node pools.
18593
18685
  :param bool spot: Whether the nodes are created as spot VM instances.
18686
+ :param Sequence[str] storage_pools: The list of Storage Pools where boot disks are provisioned.
18594
18687
  :param Sequence[str] tags: The list of instance tags applied to all nodes.
18595
18688
  :param Sequence['GetClusterNodePoolNodeConfigTaintArgs'] taints: List of Kubernetes taints to be applied to each node.
18596
18689
  :param Sequence['GetClusterNodePoolNodeConfigWorkloadMetadataConfigArgs'] workload_metadata_configs: The workload metadata configuration for this node.
@@ -18632,6 +18725,7 @@ class GetClusterNodePoolNodeConfigResult(dict):
18632
18725
  pulumi.set(__self__, "shielded_instance_configs", shielded_instance_configs)
18633
18726
  pulumi.set(__self__, "sole_tenant_configs", sole_tenant_configs)
18634
18727
  pulumi.set(__self__, "spot", spot)
18728
+ pulumi.set(__self__, "storage_pools", storage_pools)
18635
18729
  pulumi.set(__self__, "tags", tags)
18636
18730
  pulumi.set(__self__, "taints", taints)
18637
18731
  pulumi.set(__self__, "workload_metadata_configs", workload_metadata_configs)
@@ -18932,6 +19026,14 @@ class GetClusterNodePoolNodeConfigResult(dict):
18932
19026
  """
18933
19027
  return pulumi.get(self, "spot")
18934
19028
 
19029
+ @property
19030
+ @pulumi.getter(name="storagePools")
19031
+ def storage_pools(self) -> Sequence[str]:
19032
+ """
19033
+ The list of Storage Pools where boot disks are provisioned.
19034
+ """
19035
+ return pulumi.get(self, "storage_pools")
19036
+
18935
19037
  @property
18936
19038
  @pulumi.getter
18937
19039
  def tags(self) -> Sequence[str]: