pulumi-gcp 8.19.0a1739290509__py3-none-any.whl → 8.19.1a1739444689__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. pulumi_gcp/__init__.py +80 -0
  2. pulumi_gcp/_utilities.py +8 -4
  3. pulumi_gcp/accesscontextmanager/_inputs.py +288 -78
  4. pulumi_gcp/accesscontextmanager/outputs.py +186 -54
  5. pulumi_gcp/appengine/_inputs.py +3 -0
  6. pulumi_gcp/appengine/outputs.py +2 -0
  7. pulumi_gcp/beyondcorp/__init__.py +5 -0
  8. pulumi_gcp/beyondcorp/_inputs.py +189 -0
  9. pulumi_gcp/beyondcorp/application.py +604 -0
  10. pulumi_gcp/beyondcorp/application_iam_binding.py +1049 -0
  11. pulumi_gcp/beyondcorp/application_iam_member.py +1049 -0
  12. pulumi_gcp/beyondcorp/application_iam_policy.py +868 -0
  13. pulumi_gcp/beyondcorp/get_application_iam_policy.py +174 -0
  14. pulumi_gcp/beyondcorp/outputs.py +111 -0
  15. pulumi_gcp/bigqueryanalyticshub/__init__.py +1 -0
  16. pulumi_gcp/bigqueryanalyticshub/_inputs.py +318 -0
  17. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +808 -0
  18. pulumi_gcp/bigqueryanalyticshub/outputs.py +263 -0
  19. pulumi_gcp/certificateauthority/_inputs.py +54 -0
  20. pulumi_gcp/certificateauthority/authority.py +149 -3
  21. pulumi_gcp/certificateauthority/get_authority.py +15 -4
  22. pulumi_gcp/certificateauthority/outputs.py +81 -0
  23. pulumi_gcp/cloudrunv2/_inputs.py +112 -0
  24. pulumi_gcp/cloudrunv2/outputs.py +144 -1
  25. pulumi_gcp/cloudrunv2/service.py +2 -0
  26. pulumi_gcp/colab/__init__.py +2 -0
  27. pulumi_gcp/colab/_inputs.py +655 -0
  28. pulumi_gcp/colab/notebook_execution.py +1259 -0
  29. pulumi_gcp/colab/outputs.py +512 -0
  30. pulumi_gcp/colab/runtime.py +266 -2
  31. pulumi_gcp/colab/runtime_template.py +79 -3
  32. pulumi_gcp/colab/schedule.py +1318 -0
  33. pulumi_gcp/compute/__init__.py +1 -0
  34. pulumi_gcp/compute/_inputs.py +204 -0
  35. pulumi_gcp/compute/firewall_policy.py +54 -43
  36. pulumi_gcp/compute/forwarding_rule.py +103 -0
  37. pulumi_gcp/compute/get_forwarding_rule.py +12 -1
  38. pulumi_gcp/compute/interconnect_attachment.py +12 -0
  39. pulumi_gcp/compute/network_firewall_policy_packet_mirroring_rule.py +1011 -0
  40. pulumi_gcp/compute/outputs.py +187 -0
  41. pulumi_gcp/compute/public_advertised_prefix.py +35 -7
  42. pulumi_gcp/compute/public_delegated_prefix.py +171 -7
  43. pulumi_gcp/compute/region_resize_request.py +21 -22
  44. pulumi_gcp/compute/resize_request.py +22 -23
  45. pulumi_gcp/compute/subnetwork.py +14 -7
  46. pulumi_gcp/container/_inputs.py +54 -1
  47. pulumi_gcp/container/outputs.py +79 -1
  48. pulumi_gcp/datastream/connection_profile.py +120 -46
  49. pulumi_gcp/discoveryengine/chat_engine.py +7 -7
  50. pulumi_gcp/filestore/_inputs.py +222 -0
  51. pulumi_gcp/filestore/get_instance.py +23 -1
  52. pulumi_gcp/filestore/instance.py +86 -0
  53. pulumi_gcp/filestore/outputs.py +282 -0
  54. pulumi_gcp/gemini/__init__.py +2 -0
  55. pulumi_gcp/gemini/logging_setting.py +671 -0
  56. pulumi_gcp/gemini/release_channel_setting.py +639 -0
  57. pulumi_gcp/memorystore/_inputs.py +296 -0
  58. pulumi_gcp/memorystore/instance.py +32 -28
  59. pulumi_gcp/memorystore/outputs.py +224 -0
  60. pulumi_gcp/monitoring/_inputs.py +12 -9
  61. pulumi_gcp/monitoring/outputs.py +8 -6
  62. pulumi_gcp/networkservices/_inputs.py +89 -0
  63. pulumi_gcp/networkservices/outputs.py +75 -0
  64. pulumi_gcp/parametermanager/__init__.py +2 -0
  65. pulumi_gcp/parametermanager/get_parameter_version_render.py +199 -0
  66. pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +220 -0
  67. pulumi_gcp/privilegedaccessmanager/entitlement.py +14 -0
  68. pulumi_gcp/pulumi-plugin.json +1 -1
  69. pulumi_gcp/securesourcemanager/branch_rule.py +4 -0
  70. pulumi_gcp/securesourcemanager/repository.py +4 -0
  71. pulumi_gcp/storage/bucket_object.py +8 -0
  72. pulumi_gcp/workbench/instance.py +70 -2
  73. {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1a1739444689.dist-info}/METADATA +1 -1
  74. {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1a1739444689.dist-info}/RECORD +76 -63
  75. {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1a1739444689.dist-info}/WHEEL +0 -0
  76. {pulumi_gcp-8.19.0a1739290509.dist-info → pulumi_gcp-8.19.1a1739444689.dist-info}/top_level.txt +0 -0
@@ -80,10 +80,11 @@ class SubnetworkArgs:
80
80
  :param pulumi.Input[str] private_ipv6_google_access: The private IPv6 google access type for the VMs in this subnet.
81
81
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
82
82
  If it is not provided, the provider project is used.
83
- :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT` or `PRIVATE_NAT`.
83
+ :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT`, `PEER_MIGRATION` or `PRIVATE_NAT`.
84
84
  A subnet with purpose set to `REGIONAL_MANAGED_PROXY` is a user-created subnetwork that is reserved for regional Envoy-based load balancers.
85
85
  A subnetwork in a given region with purpose set to `GLOBAL_MANAGED_PROXY` is a proxy-only subnet and is shared between all the cross-regional Envoy-based load balancers.
86
86
  A subnetwork with purpose set to `PRIVATE_SERVICE_CONNECT` reserves the subnet for hosting a Private Service Connect published service.
87
+ A subnetwork with purpose set to `PEER_MIGRATION` is a user created subnetwork that is reserved for migrating resources from one peered network to another.
87
88
  A subnetwork with purpose set to `PRIVATE_NAT` is used as source range for Private NAT gateways.
88
89
  Note that `REGIONAL_MANAGED_PROXY` is the preferred setting for all regional Envoy load balancers.
89
90
  If unspecified, the purpose defaults to `PRIVATE`.
@@ -311,10 +312,11 @@ class SubnetworkArgs:
311
312
  @pulumi.getter
312
313
  def purpose(self) -> Optional[pulumi.Input[str]]:
313
314
  """
314
- The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT` or `PRIVATE_NAT`.
315
+ The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT`, `PEER_MIGRATION` or `PRIVATE_NAT`.
315
316
  A subnet with purpose set to `REGIONAL_MANAGED_PROXY` is a user-created subnetwork that is reserved for regional Envoy-based load balancers.
316
317
  A subnetwork in a given region with purpose set to `GLOBAL_MANAGED_PROXY` is a proxy-only subnet and is shared between all the cross-regional Envoy-based load balancers.
317
318
  A subnetwork with purpose set to `PRIVATE_SERVICE_CONNECT` reserves the subnet for hosting a Private Service Connect published service.
319
+ A subnetwork with purpose set to `PEER_MIGRATION` is a user created subnetwork that is reserved for migrating resources from one peered network to another.
318
320
  A subnetwork with purpose set to `PRIVATE_NAT` is used as source range for Private NAT gateways.
319
321
  Note that `REGIONAL_MANAGED_PROXY` is the preferred setting for all regional Envoy load balancers.
320
322
  If unspecified, the purpose defaults to `PRIVATE`.
@@ -490,10 +492,11 @@ class _SubnetworkState:
490
492
  :param pulumi.Input[str] private_ipv6_google_access: The private IPv6 google access type for the VMs in this subnet.
491
493
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
492
494
  If it is not provided, the provider project is used.
493
- :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT` or `PRIVATE_NAT`.
495
+ :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT`, `PEER_MIGRATION` or `PRIVATE_NAT`.
494
496
  A subnet with purpose set to `REGIONAL_MANAGED_PROXY` is a user-created subnetwork that is reserved for regional Envoy-based load balancers.
495
497
  A subnetwork in a given region with purpose set to `GLOBAL_MANAGED_PROXY` is a proxy-only subnet and is shared between all the cross-regional Envoy-based load balancers.
496
498
  A subnetwork with purpose set to `PRIVATE_SERVICE_CONNECT` reserves the subnet for hosting a Private Service Connect published service.
499
+ A subnetwork with purpose set to `PEER_MIGRATION` is a user created subnetwork that is reserved for migrating resources from one peered network to another.
497
500
  A subnetwork with purpose set to `PRIVATE_NAT` is used as source range for Private NAT gateways.
498
501
  Note that `REGIONAL_MANAGED_PROXY` is the preferred setting for all regional Envoy load balancers.
499
502
  If unspecified, the purpose defaults to `PRIVATE`.
@@ -803,10 +806,11 @@ class _SubnetworkState:
803
806
  @pulumi.getter
804
807
  def purpose(self) -> Optional[pulumi.Input[str]]:
805
808
  """
806
- The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT` or `PRIVATE_NAT`.
809
+ The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT`, `PEER_MIGRATION` or `PRIVATE_NAT`.
807
810
  A subnet with purpose set to `REGIONAL_MANAGED_PROXY` is a user-created subnetwork that is reserved for regional Envoy-based load balancers.
808
811
  A subnetwork in a given region with purpose set to `GLOBAL_MANAGED_PROXY` is a proxy-only subnet and is shared between all the cross-regional Envoy-based load balancers.
809
812
  A subnetwork with purpose set to `PRIVATE_SERVICE_CONNECT` reserves the subnet for hosting a Private Service Connect published service.
813
+ A subnetwork with purpose set to `PEER_MIGRATION` is a user created subnetwork that is reserved for migrating resources from one peered network to another.
810
814
  A subnetwork with purpose set to `PRIVATE_NAT` is used as source range for Private NAT gateways.
811
815
  Note that `REGIONAL_MANAGED_PROXY` is the preferred setting for all regional Envoy load balancers.
812
816
  If unspecified, the purpose defaults to `PRIVATE`.
@@ -1238,10 +1242,11 @@ class Subnetwork(pulumi.CustomResource):
1238
1242
  :param pulumi.Input[str] private_ipv6_google_access: The private IPv6 google access type for the VMs in this subnet.
1239
1243
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1240
1244
  If it is not provided, the provider project is used.
1241
- :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT` or `PRIVATE_NAT`.
1245
+ :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT`, `PEER_MIGRATION` or `PRIVATE_NAT`.
1242
1246
  A subnet with purpose set to `REGIONAL_MANAGED_PROXY` is a user-created subnetwork that is reserved for regional Envoy-based load balancers.
1243
1247
  A subnetwork in a given region with purpose set to `GLOBAL_MANAGED_PROXY` is a proxy-only subnet and is shared between all the cross-regional Envoy-based load balancers.
1244
1248
  A subnetwork with purpose set to `PRIVATE_SERVICE_CONNECT` reserves the subnet for hosting a Private Service Connect published service.
1249
+ A subnetwork with purpose set to `PEER_MIGRATION` is a user created subnetwork that is reserved for migrating resources from one peered network to another.
1245
1250
  A subnetwork with purpose set to `PRIVATE_NAT` is used as source range for Private NAT gateways.
1246
1251
  Note that `REGIONAL_MANAGED_PROXY` is the preferred setting for all regional Envoy load balancers.
1247
1252
  If unspecified, the purpose defaults to `PRIVATE`.
@@ -1673,10 +1678,11 @@ class Subnetwork(pulumi.CustomResource):
1673
1678
  :param pulumi.Input[str] private_ipv6_google_access: The private IPv6 google access type for the VMs in this subnet.
1674
1679
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1675
1680
  If it is not provided, the provider project is used.
1676
- :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT` or `PRIVATE_NAT`.
1681
+ :param pulumi.Input[str] purpose: The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT`, `PEER_MIGRATION` or `PRIVATE_NAT`.
1677
1682
  A subnet with purpose set to `REGIONAL_MANAGED_PROXY` is a user-created subnetwork that is reserved for regional Envoy-based load balancers.
1678
1683
  A subnetwork in a given region with purpose set to `GLOBAL_MANAGED_PROXY` is a proxy-only subnet and is shared between all the cross-regional Envoy-based load balancers.
1679
1684
  A subnetwork with purpose set to `PRIVATE_SERVICE_CONNECT` reserves the subnet for hosting a Private Service Connect published service.
1685
+ A subnetwork with purpose set to `PEER_MIGRATION` is a user created subnetwork that is reserved for migrating resources from one peered network to another.
1680
1686
  A subnetwork with purpose set to `PRIVATE_NAT` is used as source range for Private NAT gateways.
1681
1687
  Note that `REGIONAL_MANAGED_PROXY` is the preferred setting for all regional Envoy load balancers.
1682
1688
  If unspecified, the purpose defaults to `PRIVATE`.
@@ -1899,10 +1905,11 @@ class Subnetwork(pulumi.CustomResource):
1899
1905
  @pulumi.getter
1900
1906
  def purpose(self) -> pulumi.Output[str]:
1901
1907
  """
1902
- The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT` or `PRIVATE_NAT`.
1908
+ The purpose of the resource. This field can be either `PRIVATE`, `REGIONAL_MANAGED_PROXY`, `GLOBAL_MANAGED_PROXY`, `PRIVATE_SERVICE_CONNECT`, `PEER_MIGRATION` or `PRIVATE_NAT`.
1903
1909
  A subnet with purpose set to `REGIONAL_MANAGED_PROXY` is a user-created subnetwork that is reserved for regional Envoy-based load balancers.
1904
1910
  A subnetwork in a given region with purpose set to `GLOBAL_MANAGED_PROXY` is a proxy-only subnet and is shared between all the cross-regional Envoy-based load balancers.
1905
1911
  A subnetwork with purpose set to `PRIVATE_SERVICE_CONNECT` reserves the subnet for hosting a Private Service Connect published service.
1912
+ A subnetwork with purpose set to `PEER_MIGRATION` is a user created subnetwork that is reserved for migrating resources from one peered network to another.
1906
1913
  A subnetwork with purpose set to `PRIVATE_NAT` is used as source range for Private NAT gateways.
1907
1914
  Note that `REGIONAL_MANAGED_PROXY` is the preferred setting for all regional Envoy load balancers.
1908
1915
  If unspecified, the purpose defaults to `PRIVATE`.
@@ -271,6 +271,8 @@ __all__ = [
271
271
  'ClusterMonitoringConfigAdvancedDatapathObservabilityConfigArgsDict',
272
272
  'ClusterMonitoringConfigManagedPrometheusArgs',
273
273
  'ClusterMonitoringConfigManagedPrometheusArgsDict',
274
+ 'ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs',
275
+ 'ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgsDict',
274
276
  'ClusterNetworkPolicyArgs',
275
277
  'ClusterNetworkPolicyArgsDict',
276
278
  'ClusterNodeConfigArgs',
@@ -8282,17 +8284,25 @@ if not MYPY:
8282
8284
  """
8283
8285
  Whether or not the managed collection is enabled.
8284
8286
  """
8287
+ auto_monitoring_config: NotRequired[pulumi.Input['ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgsDict']]
8288
+ """
8289
+ Configuration options for GKE Auto-Monitoring.
8290
+ """
8285
8291
  elif False:
8286
8292
  ClusterMonitoringConfigManagedPrometheusArgsDict: TypeAlias = Mapping[str, Any]
8287
8293
 
8288
8294
  @pulumi.input_type
8289
8295
  class ClusterMonitoringConfigManagedPrometheusArgs:
8290
8296
  def __init__(__self__, *,
8291
- enabled: pulumi.Input[bool]):
8297
+ enabled: pulumi.Input[bool],
8298
+ auto_monitoring_config: Optional[pulumi.Input['ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs']] = None):
8292
8299
  """
8293
8300
  :param pulumi.Input[bool] enabled: Whether or not the managed collection is enabled.
8301
+ :param pulumi.Input['ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs'] auto_monitoring_config: Configuration options for GKE Auto-Monitoring.
8294
8302
  """
8295
8303
  pulumi.set(__self__, "enabled", enabled)
8304
+ if auto_monitoring_config is not None:
8305
+ pulumi.set(__self__, "auto_monitoring_config", auto_monitoring_config)
8296
8306
 
8297
8307
  @property
8298
8308
  @pulumi.getter
@@ -8306,6 +8316,49 @@ class ClusterMonitoringConfigManagedPrometheusArgs:
8306
8316
  def enabled(self, value: pulumi.Input[bool]):
8307
8317
  pulumi.set(self, "enabled", value)
8308
8318
 
8319
+ @property
8320
+ @pulumi.getter(name="autoMonitoringConfig")
8321
+ def auto_monitoring_config(self) -> Optional[pulumi.Input['ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs']]:
8322
+ """
8323
+ Configuration options for GKE Auto-Monitoring.
8324
+ """
8325
+ return pulumi.get(self, "auto_monitoring_config")
8326
+
8327
+ @auto_monitoring_config.setter
8328
+ def auto_monitoring_config(self, value: Optional[pulumi.Input['ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs']]):
8329
+ pulumi.set(self, "auto_monitoring_config", value)
8330
+
8331
+
8332
+ if not MYPY:
8333
+ class ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgsDict(TypedDict):
8334
+ scope: pulumi.Input[str]
8335
+ """
8336
+ Whether or not to enable GKE Auto-Monitoring. Supported values include: `ALL`, `NONE`.
8337
+ """
8338
+ elif False:
8339
+ ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgsDict: TypeAlias = Mapping[str, Any]
8340
+
8341
+ @pulumi.input_type
8342
+ class ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs:
8343
+ def __init__(__self__, *,
8344
+ scope: pulumi.Input[str]):
8345
+ """
8346
+ :param pulumi.Input[str] scope: Whether or not to enable GKE Auto-Monitoring. Supported values include: `ALL`, `NONE`.
8347
+ """
8348
+ pulumi.set(__self__, "scope", scope)
8349
+
8350
+ @property
8351
+ @pulumi.getter
8352
+ def scope(self) -> pulumi.Input[str]:
8353
+ """
8354
+ Whether or not to enable GKE Auto-Monitoring. Supported values include: `ALL`, `NONE`.
8355
+ """
8356
+ return pulumi.get(self, "scope")
8357
+
8358
+ @scope.setter
8359
+ def scope(self, value: pulumi.Input[str]):
8360
+ pulumi.set(self, "scope", value)
8361
+
8309
8362
 
8310
8363
  if not MYPY:
8311
8364
  class ClusterNetworkPolicyArgsDict(TypedDict):
@@ -144,6 +144,7 @@ __all__ = [
144
144
  'ClusterMonitoringConfig',
145
145
  'ClusterMonitoringConfigAdvancedDatapathObservabilityConfig',
146
146
  'ClusterMonitoringConfigManagedPrometheus',
147
+ 'ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig',
147
148
  'ClusterNetworkPolicy',
148
149
  'ClusterNodeConfig',
149
150
  'ClusterNodeConfigAdvancedMachineFeatures',
@@ -346,6 +347,7 @@ __all__ = [
346
347
  'GetClusterMonitoringConfigResult',
347
348
  'GetClusterMonitoringConfigAdvancedDatapathObservabilityConfigResult',
348
349
  'GetClusterMonitoringConfigManagedPrometheusResult',
350
+ 'GetClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigResult',
349
351
  'GetClusterNetworkPolicyResult',
350
352
  'GetClusterNodeConfigResult',
351
353
  'GetClusterNodeConfigAdvancedMachineFeatureResult',
@@ -6829,12 +6831,33 @@ class ClusterMonitoringConfigAdvancedDatapathObservabilityConfig(dict):
6829
6831
 
6830
6832
  @pulumi.output_type
6831
6833
  class ClusterMonitoringConfigManagedPrometheus(dict):
6834
+ @staticmethod
6835
+ def __key_warning(key: str):
6836
+ suggest = None
6837
+ if key == "autoMonitoringConfig":
6838
+ suggest = "auto_monitoring_config"
6839
+
6840
+ if suggest:
6841
+ pulumi.log.warn(f"Key '{key}' not found in ClusterMonitoringConfigManagedPrometheus. Access the value via the '{suggest}' property getter instead.")
6842
+
6843
+ def __getitem__(self, key: str) -> Any:
6844
+ ClusterMonitoringConfigManagedPrometheus.__key_warning(key)
6845
+ return super().__getitem__(key)
6846
+
6847
+ def get(self, key: str, default = None) -> Any:
6848
+ ClusterMonitoringConfigManagedPrometheus.__key_warning(key)
6849
+ return super().get(key, default)
6850
+
6832
6851
  def __init__(__self__, *,
6833
- enabled: bool):
6852
+ enabled: bool,
6853
+ auto_monitoring_config: Optional['outputs.ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig'] = None):
6834
6854
  """
6835
6855
  :param bool enabled: Whether or not the managed collection is enabled.
6856
+ :param 'ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs' auto_monitoring_config: Configuration options for GKE Auto-Monitoring.
6836
6857
  """
6837
6858
  pulumi.set(__self__, "enabled", enabled)
6859
+ if auto_monitoring_config is not None:
6860
+ pulumi.set(__self__, "auto_monitoring_config", auto_monitoring_config)
6838
6861
 
6839
6862
  @property
6840
6863
  @pulumi.getter
@@ -6844,6 +6867,32 @@ class ClusterMonitoringConfigManagedPrometheus(dict):
6844
6867
  """
6845
6868
  return pulumi.get(self, "enabled")
6846
6869
 
6870
+ @property
6871
+ @pulumi.getter(name="autoMonitoringConfig")
6872
+ def auto_monitoring_config(self) -> Optional['outputs.ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig']:
6873
+ """
6874
+ Configuration options for GKE Auto-Monitoring.
6875
+ """
6876
+ return pulumi.get(self, "auto_monitoring_config")
6877
+
6878
+
6879
+ @pulumi.output_type
6880
+ class ClusterMonitoringConfigManagedPrometheusAutoMonitoringConfig(dict):
6881
+ def __init__(__self__, *,
6882
+ scope: str):
6883
+ """
6884
+ :param str scope: Whether or not to enable GKE Auto-Monitoring. Supported values include: `ALL`, `NONE`.
6885
+ """
6886
+ pulumi.set(__self__, "scope", scope)
6887
+
6888
+ @property
6889
+ @pulumi.getter
6890
+ def scope(self) -> str:
6891
+ """
6892
+ Whether or not to enable GKE Auto-Monitoring. Supported values include: `ALL`, `NONE`.
6893
+ """
6894
+ return pulumi.get(self, "scope")
6895
+
6847
6896
 
6848
6897
  @pulumi.output_type
6849
6898
  class ClusterNetworkPolicy(dict):
@@ -17495,12 +17544,23 @@ class GetClusterMonitoringConfigAdvancedDatapathObservabilityConfigResult(dict):
17495
17544
  @pulumi.output_type
17496
17545
  class GetClusterMonitoringConfigManagedPrometheusResult(dict):
17497
17546
  def __init__(__self__, *,
17547
+ auto_monitoring_configs: Sequence['outputs.GetClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigResult'],
17498
17548
  enabled: bool):
17499
17549
  """
17550
+ :param Sequence['GetClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigArgs'] auto_monitoring_configs: Configuration for GKE Workload Auto-Monitoring.
17500
17551
  :param bool enabled: Whether or not the managed collection is enabled.
17501
17552
  """
17553
+ pulumi.set(__self__, "auto_monitoring_configs", auto_monitoring_configs)
17502
17554
  pulumi.set(__self__, "enabled", enabled)
17503
17555
 
17556
+ @property
17557
+ @pulumi.getter(name="autoMonitoringConfigs")
17558
+ def auto_monitoring_configs(self) -> Sequence['outputs.GetClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigResult']:
17559
+ """
17560
+ Configuration for GKE Workload Auto-Monitoring.
17561
+ """
17562
+ return pulumi.get(self, "auto_monitoring_configs")
17563
+
17504
17564
  @property
17505
17565
  @pulumi.getter
17506
17566
  def enabled(self) -> bool:
@@ -17510,6 +17570,24 @@ class GetClusterMonitoringConfigManagedPrometheusResult(dict):
17510
17570
  return pulumi.get(self, "enabled")
17511
17571
 
17512
17572
 
17573
+ @pulumi.output_type
17574
+ class GetClusterMonitoringConfigManagedPrometheusAutoMonitoringConfigResult(dict):
17575
+ def __init__(__self__, *,
17576
+ scope: str):
17577
+ """
17578
+ :param str scope: The scope of auto-monitoring.
17579
+ """
17580
+ pulumi.set(__self__, "scope", scope)
17581
+
17582
+ @property
17583
+ @pulumi.getter
17584
+ def scope(self) -> str:
17585
+ """
17586
+ The scope of auto-monitoring.
17587
+ """
17588
+ return pulumi.get(self, "scope")
17589
+
17590
+
17513
17591
  @pulumi.output_type
17514
17592
  class GetClusterNetworkPolicyResult(dict):
17515
17593
  def __init__(__self__, *,
@@ -634,18 +634,23 @@ class ConnectionProfile(pulumi.CustomResource):
634
634
  import pulumi_gcp as gcp
635
635
  import pulumi_random as random
636
636
 
637
- default = gcp.compute.Network("default", name="my-network")
637
+ default = gcp.compute.Network("default",
638
+ name="my-network",
639
+ auto_create_subnetworks=False)
640
+ default_subnetwork = gcp.compute.Subnetwork("default",
641
+ name="my-subnetwork",
642
+ ip_cidr_range="10.1.0.0/16",
643
+ region="us-central1",
644
+ network=default.id)
638
645
  private_connection = gcp.datastream.PrivateConnection("private_connection",
639
- display_name="Connection profile",
646
+ display_name="Private connection",
640
647
  location="us-central1",
641
648
  private_connection_id="my-connection",
642
- labels={
643
- "key": "value",
644
- },
645
649
  vpc_peering_config={
646
650
  "vpc": default.id,
647
651
  "subnet": "10.0.0.0/29",
648
652
  })
653
+ nat_vm_ip = gcp.compute.Address("nat_vm_ip", name="nat-vm-ip")
649
654
  instance = gcp.sql.DatabaseInstance("instance",
650
655
  name="my-instance",
651
656
  database_version="POSTGRES_14",
@@ -653,23 +658,9 @@ class ConnectionProfile(pulumi.CustomResource):
653
658
  settings={
654
659
  "tier": "db-f1-micro",
655
660
  "ip_configuration": {
656
- "authorized_networks": [
657
- {
658
- "value": "34.71.242.81",
659
- },
660
- {
661
- "value": "34.72.28.29",
662
- },
663
- {
664
- "value": "34.67.6.157",
665
- },
666
- {
667
- "value": "34.67.234.134",
668
- },
669
- {
670
- "value": "34.72.239.218",
671
- },
672
- ],
661
+ "authorized_networks": [{
662
+ "value": nat_vm_ip.address,
663
+ }],
673
664
  },
674
665
  },
675
666
  deletion_protection=True)
@@ -683,15 +674,61 @@ class ConnectionProfile(pulumi.CustomResource):
683
674
  name="user",
684
675
  instance=instance.name,
685
676
  password=pwd.result)
677
+ nat_vm = gcp.compute.Instance("nat_vm",
678
+ name="nat-vm",
679
+ machine_type="e2-medium",
680
+ zone="us-central1-a",
681
+ desired_status="RUNNING",
682
+ boot_disk={
683
+ "initialize_params": {
684
+ "image": "debian-cloud/debian-12",
685
+ },
686
+ },
687
+ network_interfaces=[{
688
+ "network": private_connection.vpc_peering_config.vpc,
689
+ "subnetwork": default_subnetwork.self_link,
690
+ "access_configs": [{
691
+ "nat_ip": nat_vm_ip.address,
692
+ }],
693
+ }],
694
+ metadata_startup_script=instance.public_ip_address.apply(lambda public_ip_address: f\"\"\"#! /bin/bash
695
+ # See https://cloud.google.com/datastream/docs/private-connectivity#set-up-reverse-proxy
696
+ export DB_ADDR={public_ip_address}
697
+ export DB_PORT=5432
698
+ echo 1 > /proc/sys/net/ipv4/ip_forward
699
+ md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance"
700
+ vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${{md_url_prefix}}/network-interfaces/0/ip)"
701
+ iptables -t nat -F
702
+ iptables -t nat -A PREROUTING \\
703
+ -p tcp --dport $DB_PORT \\
704
+ -j DNAT \\
705
+ --to-destination $DB_ADDR
706
+ iptables -t nat -A POSTROUTING \\
707
+ -p tcp --dport $DB_PORT \\
708
+ -j SNAT \\
709
+ --to-source $vm_nic_ip
710
+ iptables-save
711
+ \"\"\"))
712
+ rules = gcp.compute.Firewall("rules",
713
+ name="ingress-rule",
714
+ network=private_connection.vpc_peering_config.vpc,
715
+ description="Allow traffic into NAT VM",
716
+ direction="INGRESS",
717
+ allows=[{
718
+ "protocol": "tcp",
719
+ "ports": ["5432"],
720
+ }],
721
+ source_ranges=[private_connection.vpc_peering_config.subnet])
686
722
  default_connection_profile = gcp.datastream.ConnectionProfile("default",
687
723
  display_name="Connection profile",
688
724
  location="us-central1",
689
725
  connection_profile_id="my-profile",
690
726
  postgresql_profile={
691
- "hostname": instance.public_ip_address,
727
+ "hostname": nat_vm.network_interfaces[0].network_ip,
692
728
  "username": user.name,
693
729
  "password": user.password,
694
730
  "database": db.name,
731
+ "port": 5432,
695
732
  },
696
733
  private_connectivity={
697
734
  "private_connection": private_connection.id,
@@ -923,18 +960,23 @@ class ConnectionProfile(pulumi.CustomResource):
923
960
  import pulumi_gcp as gcp
924
961
  import pulumi_random as random
925
962
 
926
- default = gcp.compute.Network("default", name="my-network")
963
+ default = gcp.compute.Network("default",
964
+ name="my-network",
965
+ auto_create_subnetworks=False)
966
+ default_subnetwork = gcp.compute.Subnetwork("default",
967
+ name="my-subnetwork",
968
+ ip_cidr_range="10.1.0.0/16",
969
+ region="us-central1",
970
+ network=default.id)
927
971
  private_connection = gcp.datastream.PrivateConnection("private_connection",
928
- display_name="Connection profile",
972
+ display_name="Private connection",
929
973
  location="us-central1",
930
974
  private_connection_id="my-connection",
931
- labels={
932
- "key": "value",
933
- },
934
975
  vpc_peering_config={
935
976
  "vpc": default.id,
936
977
  "subnet": "10.0.0.0/29",
937
978
  })
979
+ nat_vm_ip = gcp.compute.Address("nat_vm_ip", name="nat-vm-ip")
938
980
  instance = gcp.sql.DatabaseInstance("instance",
939
981
  name="my-instance",
940
982
  database_version="POSTGRES_14",
@@ -942,23 +984,9 @@ class ConnectionProfile(pulumi.CustomResource):
942
984
  settings={
943
985
  "tier": "db-f1-micro",
944
986
  "ip_configuration": {
945
- "authorized_networks": [
946
- {
947
- "value": "34.71.242.81",
948
- },
949
- {
950
- "value": "34.72.28.29",
951
- },
952
- {
953
- "value": "34.67.6.157",
954
- },
955
- {
956
- "value": "34.67.234.134",
957
- },
958
- {
959
- "value": "34.72.239.218",
960
- },
961
- ],
987
+ "authorized_networks": [{
988
+ "value": nat_vm_ip.address,
989
+ }],
962
990
  },
963
991
  },
964
992
  deletion_protection=True)
@@ -972,15 +1000,61 @@ class ConnectionProfile(pulumi.CustomResource):
972
1000
  name="user",
973
1001
  instance=instance.name,
974
1002
  password=pwd.result)
1003
+ nat_vm = gcp.compute.Instance("nat_vm",
1004
+ name="nat-vm",
1005
+ machine_type="e2-medium",
1006
+ zone="us-central1-a",
1007
+ desired_status="RUNNING",
1008
+ boot_disk={
1009
+ "initialize_params": {
1010
+ "image": "debian-cloud/debian-12",
1011
+ },
1012
+ },
1013
+ network_interfaces=[{
1014
+ "network": private_connection.vpc_peering_config.vpc,
1015
+ "subnetwork": default_subnetwork.self_link,
1016
+ "access_configs": [{
1017
+ "nat_ip": nat_vm_ip.address,
1018
+ }],
1019
+ }],
1020
+ metadata_startup_script=instance.public_ip_address.apply(lambda public_ip_address: f\"\"\"#! /bin/bash
1021
+ # See https://cloud.google.com/datastream/docs/private-connectivity#set-up-reverse-proxy
1022
+ export DB_ADDR={public_ip_address}
1023
+ export DB_PORT=5432
1024
+ echo 1 > /proc/sys/net/ipv4/ip_forward
1025
+ md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance"
1026
+ vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${{md_url_prefix}}/network-interfaces/0/ip)"
1027
+ iptables -t nat -F
1028
+ iptables -t nat -A PREROUTING \\
1029
+ -p tcp --dport $DB_PORT \\
1030
+ -j DNAT \\
1031
+ --to-destination $DB_ADDR
1032
+ iptables -t nat -A POSTROUTING \\
1033
+ -p tcp --dport $DB_PORT \\
1034
+ -j SNAT \\
1035
+ --to-source $vm_nic_ip
1036
+ iptables-save
1037
+ \"\"\"))
1038
+ rules = gcp.compute.Firewall("rules",
1039
+ name="ingress-rule",
1040
+ network=private_connection.vpc_peering_config.vpc,
1041
+ description="Allow traffic into NAT VM",
1042
+ direction="INGRESS",
1043
+ allows=[{
1044
+ "protocol": "tcp",
1045
+ "ports": ["5432"],
1046
+ }],
1047
+ source_ranges=[private_connection.vpc_peering_config.subnet])
975
1048
  default_connection_profile = gcp.datastream.ConnectionProfile("default",
976
1049
  display_name="Connection profile",
977
1050
  location="us-central1",
978
1051
  connection_profile_id="my-profile",
979
1052
  postgresql_profile={
980
- "hostname": instance.public_ip_address,
1053
+ "hostname": nat_vm.network_interfaces[0].network_ip,
981
1054
  "username": user.name,
982
1055
  "password": user.password,
983
1056
  "database": db.name,
1057
+ "port": 5432,
984
1058
  },
985
1059
  private_connectivity={
986
1060
  "private_connection": private_connection.id,
@@ -35,7 +35,7 @@ class ChatEngineArgs:
35
35
  :param pulumi.Input['ChatEngineChatEngineConfigArgs'] chat_engine_config: Configurations for a chat Engine.
36
36
  Structure is documented below.
37
37
  :param pulumi.Input[str] collection_id: The collection ID.
38
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
38
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
39
39
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
40
40
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
41
41
  :param pulumi.Input[str] location: Location.
@@ -85,7 +85,7 @@ class ChatEngineArgs:
85
85
  @pulumi.getter(name="dataStoreIds")
86
86
  def data_store_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
87
87
  """
88
- The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
88
+ The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
89
89
  """
90
90
  return pulumi.get(self, "data_store_ids")
91
91
 
@@ -189,7 +189,7 @@ class _ChatEngineState:
189
189
  :param pulumi.Input[str] collection_id: The collection ID.
190
190
  :param pulumi.Input['ChatEngineCommonConfigArgs'] common_config: Common config spec that specifies the metadata of the engine.
191
191
  :param pulumi.Input[str] create_time: Timestamp the Engine was created at.
192
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
192
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
193
193
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
194
194
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
195
195
  :param pulumi.Input[str] industry_vertical: The industry vertical that the chat engine registers. Vertical on Engine has to match vertical of the DataStore linked
@@ -294,7 +294,7 @@ class _ChatEngineState:
294
294
  @pulumi.getter(name="dataStoreIds")
295
295
  def data_store_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
296
296
  """
297
- The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
297
+ The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
298
298
  """
299
299
  return pulumi.get(self, "data_store_ids")
300
300
 
@@ -518,7 +518,7 @@ class ChatEngine(pulumi.CustomResource):
518
518
  Structure is documented below.
519
519
  :param pulumi.Input[str] collection_id: The collection ID.
520
520
  :param pulumi.Input[Union['ChatEngineCommonConfigArgs', 'ChatEngineCommonConfigArgsDict']] common_config: Common config spec that specifies the metadata of the engine.
521
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
521
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
522
522
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
523
523
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
524
524
  :param pulumi.Input[str] industry_vertical: The industry vertical that the chat engine registers. Vertical on Engine has to match vertical of the DataStore linked
@@ -735,7 +735,7 @@ class ChatEngine(pulumi.CustomResource):
735
735
  :param pulumi.Input[str] collection_id: The collection ID.
736
736
  :param pulumi.Input[Union['ChatEngineCommonConfigArgs', 'ChatEngineCommonConfigArgsDict']] common_config: Common config spec that specifies the metadata of the engine.
737
737
  :param pulumi.Input[str] create_time: Timestamp the Engine was created at.
738
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
738
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
739
739
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
740
740
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
741
741
  :param pulumi.Input[str] industry_vertical: The industry vertical that the chat engine registers. Vertical on Engine has to match vertical of the DataStore linked
@@ -812,7 +812,7 @@ class ChatEngine(pulumi.CustomResource):
812
812
  @pulumi.getter(name="dataStoreIds")
813
813
  def data_store_ids(self) -> pulumi.Output[Sequence[str]]:
814
814
  """
815
- The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
815
+ The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
816
816
  """
817
817
  return pulumi.get(self, "data_store_ids")
818
818