pulumi-gcp 8.3.1a1727284265__py3-none-any.whl → 8.4.0a1727795436__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 (49) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/apigee/nat_address.py +155 -2
  3. pulumi_gcp/bigquery/_inputs.py +102 -0
  4. pulumi_gcp/bigquery/outputs.py +83 -0
  5. pulumi_gcp/bigquery/table.py +47 -0
  6. pulumi_gcp/cloudrun/_inputs.py +26 -0
  7. pulumi_gcp/cloudrun/outputs.py +33 -0
  8. pulumi_gcp/cloudrun/service.py +76 -0
  9. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  10. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  11. pulumi_gcp/cloudrunv2/service.py +64 -0
  12. pulumi_gcp/compute/__init__.py +3 -0
  13. pulumi_gcp/compute/_inputs.py +1941 -2
  14. pulumi_gcp/compute/get_region_instance_group_manager.py +438 -0
  15. pulumi_gcp/compute/get_router_nat.py +11 -1
  16. pulumi_gcp/compute/instance.py +7 -7
  17. pulumi_gcp/compute/instance_from_machine_image.py +7 -7
  18. pulumi_gcp/compute/instance_from_template.py +7 -7
  19. pulumi_gcp/compute/interconnect.py +76 -64
  20. pulumi_gcp/compute/outputs.py +4637 -2640
  21. pulumi_gcp/compute/region_commitment.py +47 -0
  22. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +835 -0
  23. pulumi_gcp/compute/router_nat.py +56 -2
  24. pulumi_gcp/compute/router_nat_address.py +514 -0
  25. pulumi_gcp/compute/subnetwork.py +14 -14
  26. pulumi_gcp/container/_inputs.py +222 -0
  27. pulumi_gcp/container/outputs.py +279 -2
  28. pulumi_gcp/logging/__init__.py +1 -0
  29. pulumi_gcp/logging/log_scope.py +492 -0
  30. pulumi_gcp/looker/_inputs.py +157 -0
  31. pulumi_gcp/looker/instance.py +143 -0
  32. pulumi_gcp/looker/outputs.py +136 -0
  33. pulumi_gcp/networkconnectivity/_inputs.py +72 -3
  34. pulumi_gcp/networkconnectivity/outputs.py +51 -3
  35. pulumi_gcp/networkconnectivity/spoke.py +310 -0
  36. pulumi_gcp/networksecurity/security_profile.py +2 -2
  37. pulumi_gcp/privilegedaccessmanager/__init__.py +1 -0
  38. pulumi_gcp/privilegedaccessmanager/get_entitlement.py +219 -0
  39. pulumi_gcp/privilegedaccessmanager/outputs.py +312 -0
  40. pulumi_gcp/pulumi-plugin.json +1 -1
  41. pulumi_gcp/secretmanager/__init__.py +2 -0
  42. pulumi_gcp/secretmanager/get_regional_secret_version.py +2 -2
  43. pulumi_gcp/secretmanager/get_regional_secret_version_access.py +188 -0
  44. pulumi_gcp/secretmanager/get_regional_secrets.py +156 -0
  45. pulumi_gcp/secretmanager/outputs.py +265 -0
  46. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/METADATA +1 -1
  47. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/RECORD +49 -42
  48. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/WHEEL +0 -0
  49. {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,7 @@ class TableArgs:
23
23
  def __init__(__self__, *,
24
24
  dataset_id: pulumi.Input[str],
25
25
  table_id: pulumi.Input[str],
26
+ biglake_configuration: Optional[pulumi.Input['TableBiglakeConfigurationArgs']] = None,
26
27
  clusterings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
27
28
  deletion_protection: Optional[pulumi.Input[bool]] = None,
28
29
  description: Optional[pulumi.Input[str]] = None,
@@ -48,6 +49,7 @@ class TableArgs:
48
49
  Changing this forces a new resource to be created.
49
50
  :param pulumi.Input[str] table_id: A unique ID for the resource.
50
51
  Changing this forces a new resource to be created.
52
+ :param pulumi.Input['TableBiglakeConfigurationArgs'] biglake_configuration: Specifies the configuration of a BigLake managed table. Structure is documented below
51
53
  :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering.
52
54
  Up to four top-level columns are allowed, and should be specified in
53
55
  descending priority order.
@@ -102,6 +104,8 @@ class TableArgs:
102
104
  """
103
105
  pulumi.set(__self__, "dataset_id", dataset_id)
104
106
  pulumi.set(__self__, "table_id", table_id)
107
+ if biglake_configuration is not None:
108
+ pulumi.set(__self__, "biglake_configuration", biglake_configuration)
105
109
  if clusterings is not None:
106
110
  pulumi.set(__self__, "clusterings", clusterings)
107
111
  if deletion_protection is not None:
@@ -167,6 +171,18 @@ class TableArgs:
167
171
  def table_id(self, value: pulumi.Input[str]):
168
172
  pulumi.set(self, "table_id", value)
169
173
 
174
+ @property
175
+ @pulumi.getter(name="biglakeConfiguration")
176
+ def biglake_configuration(self) -> Optional[pulumi.Input['TableBiglakeConfigurationArgs']]:
177
+ """
178
+ Specifies the configuration of a BigLake managed table. Structure is documented below
179
+ """
180
+ return pulumi.get(self, "biglake_configuration")
181
+
182
+ @biglake_configuration.setter
183
+ def biglake_configuration(self, value: Optional[pulumi.Input['TableBiglakeConfigurationArgs']]):
184
+ pulumi.set(self, "biglake_configuration", value)
185
+
170
186
  @property
171
187
  @pulumi.getter
172
188
  def clusterings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -431,6 +447,7 @@ class TableArgs:
431
447
  @pulumi.input_type
432
448
  class _TableState:
433
449
  def __init__(__self__, *,
450
+ biglake_configuration: Optional[pulumi.Input['TableBiglakeConfigurationArgs']] = None,
434
451
  clusterings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
435
452
  creation_time: Optional[pulumi.Input[int]] = None,
436
453
  dataset_id: Optional[pulumi.Input[str]] = None,
@@ -465,6 +482,7 @@ class _TableState:
465
482
  view: Optional[pulumi.Input['TableViewArgs']] = None):
466
483
  """
467
484
  Input properties used for looking up and filtering Table resources.
485
+ :param pulumi.Input['TableBiglakeConfigurationArgs'] biglake_configuration: Specifies the configuration of a BigLake managed table. Structure is documented below
468
486
  :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering.
469
487
  Up to four top-level columns are allowed, and should be specified in
470
488
  descending priority order.
@@ -547,6 +565,8 @@ class _TableState:
547
565
  :param pulumi.Input['TableViewArgs'] view: If specified, configures this table as a view.
548
566
  Structure is documented below.
549
567
  """
568
+ if biglake_configuration is not None:
569
+ pulumi.set(__self__, "biglake_configuration", biglake_configuration)
550
570
  if clusterings is not None:
551
571
  pulumi.set(__self__, "clusterings", clusterings)
552
572
  if creation_time is not None:
@@ -612,6 +632,18 @@ class _TableState:
612
632
  if view is not None:
613
633
  pulumi.set(__self__, "view", view)
614
634
 
635
+ @property
636
+ @pulumi.getter(name="biglakeConfiguration")
637
+ def biglake_configuration(self) -> Optional[pulumi.Input['TableBiglakeConfigurationArgs']]:
638
+ """
639
+ Specifies the configuration of a BigLake managed table. Structure is documented below
640
+ """
641
+ return pulumi.get(self, "biglake_configuration")
642
+
643
+ @biglake_configuration.setter
644
+ def biglake_configuration(self, value: Optional[pulumi.Input['TableBiglakeConfigurationArgs']]):
645
+ pulumi.set(self, "biglake_configuration", value)
646
+
615
647
  @property
616
648
  @pulumi.getter
617
649
  def clusterings(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
@@ -1051,6 +1083,7 @@ class Table(pulumi.CustomResource):
1051
1083
  def __init__(__self__,
1052
1084
  resource_name: str,
1053
1085
  opts: Optional[pulumi.ResourceOptions] = None,
1086
+ biglake_configuration: Optional[pulumi.Input[Union['TableBiglakeConfigurationArgs', 'TableBiglakeConfigurationArgsDict']]] = None,
1054
1087
  clusterings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1055
1088
  dataset_id: Optional[pulumi.Input[str]] = None,
1056
1089
  deletion_protection: Optional[pulumi.Input[bool]] = None,
@@ -1160,6 +1193,7 @@ class Table(pulumi.CustomResource):
1160
1193
 
1161
1194
  :param str resource_name: The name of the resource.
1162
1195
  :param pulumi.ResourceOptions opts: Options for the resource.
1196
+ :param pulumi.Input[Union['TableBiglakeConfigurationArgs', 'TableBiglakeConfigurationArgsDict']] biglake_configuration: Specifies the configuration of a BigLake managed table. Structure is documented below
1163
1197
  :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering.
1164
1198
  Up to four top-level columns are allowed, and should be specified in
1165
1199
  descending priority order.
@@ -1322,6 +1356,7 @@ class Table(pulumi.CustomResource):
1322
1356
  def _internal_init(__self__,
1323
1357
  resource_name: str,
1324
1358
  opts: Optional[pulumi.ResourceOptions] = None,
1359
+ biglake_configuration: Optional[pulumi.Input[Union['TableBiglakeConfigurationArgs', 'TableBiglakeConfigurationArgsDict']]] = None,
1325
1360
  clusterings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1326
1361
  dataset_id: Optional[pulumi.Input[str]] = None,
1327
1362
  deletion_protection: Optional[pulumi.Input[bool]] = None,
@@ -1352,6 +1387,7 @@ class Table(pulumi.CustomResource):
1352
1387
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1353
1388
  __props__ = TableArgs.__new__(TableArgs)
1354
1389
 
1390
+ __props__.__dict__["biglake_configuration"] = biglake_configuration
1355
1391
  __props__.__dict__["clusterings"] = clusterings
1356
1392
  if dataset_id is None and not opts.urn:
1357
1393
  raise TypeError("Missing required property 'dataset_id'")
@@ -1400,6 +1436,7 @@ class Table(pulumi.CustomResource):
1400
1436
  def get(resource_name: str,
1401
1437
  id: pulumi.Input[str],
1402
1438
  opts: Optional[pulumi.ResourceOptions] = None,
1439
+ biglake_configuration: Optional[pulumi.Input[Union['TableBiglakeConfigurationArgs', 'TableBiglakeConfigurationArgsDict']]] = None,
1403
1440
  clusterings: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1404
1441
  creation_time: Optional[pulumi.Input[int]] = None,
1405
1442
  dataset_id: Optional[pulumi.Input[str]] = None,
@@ -1439,6 +1476,7 @@ class Table(pulumi.CustomResource):
1439
1476
  :param str resource_name: The unique name of the resulting resource.
1440
1477
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1441
1478
  :param pulumi.ResourceOptions opts: Options for the resource.
1479
+ :param pulumi.Input[Union['TableBiglakeConfigurationArgs', 'TableBiglakeConfigurationArgsDict']] biglake_configuration: Specifies the configuration of a BigLake managed table. Structure is documented below
1442
1480
  :param pulumi.Input[Sequence[pulumi.Input[str]]] clusterings: Specifies column names to use for data clustering.
1443
1481
  Up to four top-level columns are allowed, and should be specified in
1444
1482
  descending priority order.
@@ -1525,6 +1563,7 @@ class Table(pulumi.CustomResource):
1525
1563
 
1526
1564
  __props__ = _TableState.__new__(_TableState)
1527
1565
 
1566
+ __props__.__dict__["biglake_configuration"] = biglake_configuration
1528
1567
  __props__.__dict__["clusterings"] = clusterings
1529
1568
  __props__.__dict__["creation_time"] = creation_time
1530
1569
  __props__.__dict__["dataset_id"] = dataset_id
@@ -1559,6 +1598,14 @@ class Table(pulumi.CustomResource):
1559
1598
  __props__.__dict__["view"] = view
1560
1599
  return Table(resource_name, opts=opts, __props__=__props__)
1561
1600
 
1601
+ @property
1602
+ @pulumi.getter(name="biglakeConfiguration")
1603
+ def biglake_configuration(self) -> pulumi.Output[Optional['outputs.TableBiglakeConfiguration']]:
1604
+ """
1605
+ Specifies the configuration of a BigLake managed table. Structure is documented below
1606
+ """
1607
+ return pulumi.get(self, "biglake_configuration")
1608
+
1562
1609
  @property
1563
1610
  @pulumi.getter
1564
1611
  def clusterings(self) -> pulumi.Output[Optional[Sequence[str]]]:
@@ -1983,6 +1983,12 @@ if not MYPY:
1983
1983
  Containers defines the unit of execution for this Revision.
1984
1984
  Structure is documented below.
1985
1985
  """
1986
+ node_selector: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
1987
+ """
1988
+ Node Selector describes the hardware requirements of the resources.
1989
+ Use the following node selector keys to configure features on a Revision:
1990
+ - `run.googleapis.com/accelerator` sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.
1991
+ """
1986
1992
  service_account_name: NotRequired[pulumi.Input[str]]
1987
1993
  """
1988
1994
  Email address of the IAM service account associated with the revision of the
@@ -2017,6 +2023,7 @@ class ServiceTemplateSpecArgs:
2017
2023
  def __init__(__self__, *,
2018
2024
  container_concurrency: Optional[pulumi.Input[int]] = None,
2019
2025
  containers: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceTemplateSpecContainerArgs']]]] = None,
2026
+ node_selector: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
2020
2027
  service_account_name: Optional[pulumi.Input[str]] = None,
2021
2028
  serving_state: Optional[pulumi.Input[str]] = None,
2022
2029
  timeout_seconds: Optional[pulumi.Input[int]] = None,
@@ -2027,6 +2034,9 @@ class ServiceTemplateSpecArgs:
2027
2034
  requested CPU >= 1 and defaults to 1 when requested CPU < 1.
2028
2035
  :param pulumi.Input[Sequence[pulumi.Input['ServiceTemplateSpecContainerArgs']]] containers: Containers defines the unit of execution for this Revision.
2029
2036
  Structure is documented below.
2037
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] node_selector: Node Selector describes the hardware requirements of the resources.
2038
+ Use the following node selector keys to configure features on a Revision:
2039
+ - `run.googleapis.com/accelerator` sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.
2030
2040
  :param pulumi.Input[str] service_account_name: Email address of the IAM service account associated with the revision of the
2031
2041
  service. The service account represents the identity of the running revision,
2032
2042
  and determines what permissions the revision has. If not provided, the revision
@@ -2046,6 +2056,8 @@ class ServiceTemplateSpecArgs:
2046
2056
  pulumi.set(__self__, "container_concurrency", container_concurrency)
2047
2057
  if containers is not None:
2048
2058
  pulumi.set(__self__, "containers", containers)
2059
+ if node_selector is not None:
2060
+ pulumi.set(__self__, "node_selector", node_selector)
2049
2061
  if service_account_name is not None:
2050
2062
  pulumi.set(__self__, "service_account_name", service_account_name)
2051
2063
  if serving_state is not None:
@@ -2085,6 +2097,20 @@ class ServiceTemplateSpecArgs:
2085
2097
  def containers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServiceTemplateSpecContainerArgs']]]]):
2086
2098
  pulumi.set(self, "containers", value)
2087
2099
 
2100
+ @property
2101
+ @pulumi.getter(name="nodeSelector")
2102
+ def node_selector(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
2103
+ """
2104
+ Node Selector describes the hardware requirements of the resources.
2105
+ Use the following node selector keys to configure features on a Revision:
2106
+ - `run.googleapis.com/accelerator` sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.
2107
+ """
2108
+ return pulumi.get(self, "node_selector")
2109
+
2110
+ @node_selector.setter
2111
+ def node_selector(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
2112
+ pulumi.set(self, "node_selector", value)
2113
+
2088
2114
  @property
2089
2115
  @pulumi.getter(name="serviceAccountName")
2090
2116
  def service_account_name(self) -> Optional[pulumi.Input[str]]:
@@ -1400,6 +1400,8 @@ class ServiceTemplateSpec(dict):
1400
1400
  suggest = None
1401
1401
  if key == "containerConcurrency":
1402
1402
  suggest = "container_concurrency"
1403
+ elif key == "nodeSelector":
1404
+ suggest = "node_selector"
1403
1405
  elif key == "serviceAccountName":
1404
1406
  suggest = "service_account_name"
1405
1407
  elif key == "servingState":
@@ -1421,6 +1423,7 @@ class ServiceTemplateSpec(dict):
1421
1423
  def __init__(__self__, *,
1422
1424
  container_concurrency: Optional[int] = None,
1423
1425
  containers: Optional[Sequence['outputs.ServiceTemplateSpecContainer']] = None,
1426
+ node_selector: Optional[Mapping[str, str]] = None,
1424
1427
  service_account_name: Optional[str] = None,
1425
1428
  serving_state: Optional[str] = None,
1426
1429
  timeout_seconds: Optional[int] = None,
@@ -1431,6 +1434,9 @@ class ServiceTemplateSpec(dict):
1431
1434
  requested CPU >= 1 and defaults to 1 when requested CPU < 1.
1432
1435
  :param Sequence['ServiceTemplateSpecContainerArgs'] containers: Containers defines the unit of execution for this Revision.
1433
1436
  Structure is documented below.
1437
+ :param Mapping[str, str] node_selector: Node Selector describes the hardware requirements of the resources.
1438
+ Use the following node selector keys to configure features on a Revision:
1439
+ - `run.googleapis.com/accelerator` sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.
1434
1440
  :param str service_account_name: Email address of the IAM service account associated with the revision of the
1435
1441
  service. The service account represents the identity of the running revision,
1436
1442
  and determines what permissions the revision has. If not provided, the revision
@@ -1450,6 +1456,8 @@ class ServiceTemplateSpec(dict):
1450
1456
  pulumi.set(__self__, "container_concurrency", container_concurrency)
1451
1457
  if containers is not None:
1452
1458
  pulumi.set(__self__, "containers", containers)
1459
+ if node_selector is not None:
1460
+ pulumi.set(__self__, "node_selector", node_selector)
1453
1461
  if service_account_name is not None:
1454
1462
  pulumi.set(__self__, "service_account_name", service_account_name)
1455
1463
  if serving_state is not None:
@@ -1478,6 +1486,16 @@ class ServiceTemplateSpec(dict):
1478
1486
  """
1479
1487
  return pulumi.get(self, "containers")
1480
1488
 
1489
+ @property
1490
+ @pulumi.getter(name="nodeSelector")
1491
+ def node_selector(self) -> Optional[Mapping[str, str]]:
1492
+ """
1493
+ Node Selector describes the hardware requirements of the resources.
1494
+ Use the following node selector keys to configure features on a Revision:
1495
+ - `run.googleapis.com/accelerator` sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.
1496
+ """
1497
+ return pulumi.get(self, "node_selector")
1498
+
1481
1499
  @property
1482
1500
  @pulumi.getter(name="serviceAccountName")
1483
1501
  def service_account_name(self) -> Optional[str]:
@@ -3800,6 +3818,7 @@ class GetServiceTemplateSpecResult(dict):
3800
3818
  def __init__(__self__, *,
3801
3819
  container_concurrency: int,
3802
3820
  containers: Sequence['outputs.GetServiceTemplateSpecContainerResult'],
3821
+ node_selector: Mapping[str, str],
3803
3822
  service_account_name: str,
3804
3823
  serving_state: str,
3805
3824
  timeout_seconds: int,
@@ -3809,6 +3828,9 @@ class GetServiceTemplateSpecResult(dict):
3809
3828
  requests per container of the Revision. If not specified or 0, defaults to 80 when
3810
3829
  requested CPU >= 1 and defaults to 1 when requested CPU < 1.
3811
3830
  :param Sequence['GetServiceTemplateSpecContainerArgs'] containers: Containers defines the unit of execution for this Revision.
3831
+ :param Mapping[str, str] node_selector: Node Selector describes the hardware requirements of the resources.
3832
+ Use the following node selector keys to configure features on a Revision:
3833
+ - 'run.googleapis.com/accelerator' sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.
3812
3834
  :param str service_account_name: Email address of the IAM service account associated with the revision of the
3813
3835
  service. The service account represents the identity of the running revision,
3814
3836
  and determines what permissions the revision has. If not provided, the revision
@@ -3822,6 +3844,7 @@ class GetServiceTemplateSpecResult(dict):
3822
3844
  """
3823
3845
  pulumi.set(__self__, "container_concurrency", container_concurrency)
3824
3846
  pulumi.set(__self__, "containers", containers)
3847
+ pulumi.set(__self__, "node_selector", node_selector)
3825
3848
  pulumi.set(__self__, "service_account_name", service_account_name)
3826
3849
  pulumi.set(__self__, "serving_state", serving_state)
3827
3850
  pulumi.set(__self__, "timeout_seconds", timeout_seconds)
@@ -3845,6 +3868,16 @@ class GetServiceTemplateSpecResult(dict):
3845
3868
  """
3846
3869
  return pulumi.get(self, "containers")
3847
3870
 
3871
+ @property
3872
+ @pulumi.getter(name="nodeSelector")
3873
+ def node_selector(self) -> Mapping[str, str]:
3874
+ """
3875
+ Node Selector describes the hardware requirements of the resources.
3876
+ Use the following node selector keys to configure features on a Revision:
3877
+ - 'run.googleapis.com/accelerator' sets the [type of GPU](https://cloud.google.com/run/docs/configuring/services/gpu) required by the Revision to run.
3878
+ """
3879
+ return pulumi.get(self, "node_selector")
3880
+
3848
3881
  @property
3849
3882
  @pulumi.getter(name="serviceAccountName")
3850
3883
  def service_account_name(self) -> str:
@@ -413,6 +413,44 @@ class Service(pulumi.CustomResource):
413
413
  "latest_revision": True,
414
414
  }])
415
415
  ```
416
+ ### Cloud Run Service Gpu
417
+
418
+ ```python
419
+ import pulumi
420
+ import pulumi_gcp as gcp
421
+
422
+ default = gcp.cloudrun.Service("default",
423
+ name="cloudrun-srv",
424
+ location="us-central1",
425
+ metadata={
426
+ "annotations": {
427
+ "run_googleapis_com_launch_stage": "BETA",
428
+ },
429
+ },
430
+ template={
431
+ "metadata": {
432
+ "annotations": {
433
+ "autoscaling_knative_dev_max_scale": "1",
434
+ "run_googleapis_com_cpu_throttling": "false",
435
+ },
436
+ },
437
+ "spec": {
438
+ "containers": [{
439
+ "image": "gcr.io/cloudrun/hello",
440
+ "resources": {
441
+ "limits": {
442
+ "cpu": "4",
443
+ "memory": "16Gi",
444
+ "nvidia_com_gpu": "1",
445
+ },
446
+ },
447
+ }],
448
+ "node_selector": {
449
+ "run_googleapis_com_accelerator": "nvidia-l4",
450
+ },
451
+ },
452
+ })
453
+ ```
416
454
  ### Cloud Run Service Sql
417
455
 
418
456
  ```python
@@ -705,6 +743,44 @@ class Service(pulumi.CustomResource):
705
743
  "latest_revision": True,
706
744
  }])
707
745
  ```
746
+ ### Cloud Run Service Gpu
747
+
748
+ ```python
749
+ import pulumi
750
+ import pulumi_gcp as gcp
751
+
752
+ default = gcp.cloudrun.Service("default",
753
+ name="cloudrun-srv",
754
+ location="us-central1",
755
+ metadata={
756
+ "annotations": {
757
+ "run_googleapis_com_launch_stage": "BETA",
758
+ },
759
+ },
760
+ template={
761
+ "metadata": {
762
+ "annotations": {
763
+ "autoscaling_knative_dev_max_scale": "1",
764
+ "run_googleapis_com_cpu_throttling": "false",
765
+ },
766
+ },
767
+ "spec": {
768
+ "containers": [{
769
+ "image": "gcr.io/cloudrun/hello",
770
+ "resources": {
771
+ "limits": {
772
+ "cpu": "4",
773
+ "memory": "16Gi",
774
+ "nvidia_com_gpu": "1",
775
+ },
776
+ },
777
+ }],
778
+ "node_selector": {
779
+ "run_googleapis_com_accelerator": "nvidia-l4",
780
+ },
781
+ },
782
+ })
783
+ ```
708
784
  ### Cloud Run Service Sql
709
785
 
710
786
  ```python
@@ -109,6 +109,8 @@ __all__ = [
109
109
  'ServiceTemplateContainerStartupProbeTcpSocketArgsDict',
110
110
  'ServiceTemplateContainerVolumeMountArgs',
111
111
  'ServiceTemplateContainerVolumeMountArgsDict',
112
+ 'ServiceTemplateNodeSelectorArgs',
113
+ 'ServiceTemplateNodeSelectorArgsDict',
112
114
  'ServiceTemplateScalingArgs',
113
115
  'ServiceTemplateScalingArgsDict',
114
116
  'ServiceTemplateServiceMeshArgs',
@@ -2712,6 +2714,11 @@ if not MYPY:
2712
2714
  Sets the maximum number of requests that each serving instance can receive.
2713
2715
  If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1.
2714
2716
  """
2717
+ node_selector: NotRequired[pulumi.Input['ServiceTemplateNodeSelectorArgsDict']]
2718
+ """
2719
+ Node Selector describes the hardware requirements of the resources.
2720
+ Structure is documented below.
2721
+ """
2715
2722
  revision: NotRequired[pulumi.Input[str]]
2716
2723
  """
2717
2724
  The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.
@@ -2761,6 +2768,7 @@ class ServiceTemplateArgs:
2761
2768
  execution_environment: Optional[pulumi.Input[str]] = None,
2762
2769
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
2763
2770
  max_instance_request_concurrency: Optional[pulumi.Input[int]] = None,
2771
+ node_selector: Optional[pulumi.Input['ServiceTemplateNodeSelectorArgs']] = None,
2764
2772
  revision: Optional[pulumi.Input[str]] = None,
2765
2773
  scaling: Optional[pulumi.Input['ServiceTemplateScalingArgs']] = None,
2766
2774
  service_account: Optional[pulumi.Input[str]] = None,
@@ -2785,6 +2793,8 @@ class ServiceTemplateArgs:
2785
2793
  All system labels in v1 now have a corresponding field in v2 RevisionTemplate.
2786
2794
  :param pulumi.Input[int] max_instance_request_concurrency: Sets the maximum number of requests that each serving instance can receive.
2787
2795
  If not specified or 0, defaults to 80 when requested CPU >= 1 and defaults to 1 when requested CPU < 1.
2796
+ :param pulumi.Input['ServiceTemplateNodeSelectorArgs'] node_selector: Node Selector describes the hardware requirements of the resources.
2797
+ Structure is documented below.
2788
2798
  :param pulumi.Input[str] revision: The unique name for the revision. If this field is omitted, it will be automatically generated based on the Service name.
2789
2799
  :param pulumi.Input['ServiceTemplateScalingArgs'] scaling: Scaling settings for this Revision.
2790
2800
  Structure is documented below.
@@ -2811,6 +2821,8 @@ class ServiceTemplateArgs:
2811
2821
  pulumi.set(__self__, "labels", labels)
2812
2822
  if max_instance_request_concurrency is not None:
2813
2823
  pulumi.set(__self__, "max_instance_request_concurrency", max_instance_request_concurrency)
2824
+ if node_selector is not None:
2825
+ pulumi.set(__self__, "node_selector", node_selector)
2814
2826
  if revision is not None:
2815
2827
  pulumi.set(__self__, "revision", revision)
2816
2828
  if scaling is not None:
@@ -2909,6 +2921,19 @@ class ServiceTemplateArgs:
2909
2921
  def max_instance_request_concurrency(self, value: Optional[pulumi.Input[int]]):
2910
2922
  pulumi.set(self, "max_instance_request_concurrency", value)
2911
2923
 
2924
+ @property
2925
+ @pulumi.getter(name="nodeSelector")
2926
+ def node_selector(self) -> Optional[pulumi.Input['ServiceTemplateNodeSelectorArgs']]:
2927
+ """
2928
+ Node Selector describes the hardware requirements of the resources.
2929
+ Structure is documented below.
2930
+ """
2931
+ return pulumi.get(self, "node_selector")
2932
+
2933
+ @node_selector.setter
2934
+ def node_selector(self, value: Optional[pulumi.Input['ServiceTemplateNodeSelectorArgs']]):
2935
+ pulumi.set(self, "node_selector", value)
2936
+
2912
2937
  @property
2913
2938
  @pulumi.getter
2914
2939
  def revision(self) -> Optional[pulumi.Input[str]]:
@@ -3889,7 +3914,7 @@ if not MYPY:
3889
3914
  """
3890
3915
  limits: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
3891
3916
  """
3892
- Only memory and CPU are supported. Use key `cpu` for CPU limit and `memory` for memory limit. Note: The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
3917
+ Only memory, CPU, and nvidia.com/gpu are supported. Use key `cpu` for CPU limit, `memory` for memory limit, `nvidia.com/gpu` for gpu limit. Note: The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
3893
3918
  """
3894
3919
  startup_cpu_boost: NotRequired[pulumi.Input[bool]]
3895
3920
  """
@@ -3907,7 +3932,7 @@ class ServiceTemplateContainerResourcesArgs:
3907
3932
  """
3908
3933
  :param pulumi.Input[bool] cpu_idle: Determines whether CPU is only allocated during requests. True by default if the parent `resources` field is not set. However, if
3909
3934
  `resources` is set, this field must be explicitly set to true to preserve the default behavior.
3910
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] limits: Only memory and CPU are supported. Use key `cpu` for CPU limit and `memory` for memory limit. Note: The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
3935
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] limits: Only memory, CPU, and nvidia.com/gpu are supported. Use key `cpu` for CPU limit, `memory` for memory limit, `nvidia.com/gpu` for gpu limit. Note: The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
3911
3936
  :param pulumi.Input[bool] startup_cpu_boost: Determines whether CPU should be boosted on startup of a new container instance above the requested CPU threshold, this can help reduce cold-start latency.
3912
3937
  """
3913
3938
  if cpu_idle is not None:
@@ -3934,7 +3959,7 @@ class ServiceTemplateContainerResourcesArgs:
3934
3959
  @pulumi.getter
3935
3960
  def limits(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
3936
3961
  """
3937
- Only memory and CPU are supported. Use key `cpu` for CPU limit and `memory` for memory limit. Note: The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
3962
+ Only memory, CPU, and nvidia.com/gpu are supported. Use key `cpu` for CPU limit, `memory` for memory limit, `nvidia.com/gpu` for gpu limit. Note: The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. The values of the map is string form of the 'quantity' k8s type: https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/pkg/api/resource/quantity.go
3938
3963
  """
3939
3964
  return pulumi.get(self, "limits")
3940
3965
 
@@ -4391,6 +4416,43 @@ class ServiceTemplateContainerVolumeMountArgs:
4391
4416
  pulumi.set(self, "name", value)
4392
4417
 
4393
4418
 
4419
+ if not MYPY:
4420
+ class ServiceTemplateNodeSelectorArgsDict(TypedDict):
4421
+ accelerator: pulumi.Input[str]
4422
+ """
4423
+ The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/services/gpu for configuring GPU.
4424
+
4425
+ - - -
4426
+ """
4427
+ elif False:
4428
+ ServiceTemplateNodeSelectorArgsDict: TypeAlias = Mapping[str, Any]
4429
+
4430
+ @pulumi.input_type
4431
+ class ServiceTemplateNodeSelectorArgs:
4432
+ def __init__(__self__, *,
4433
+ accelerator: pulumi.Input[str]):
4434
+ """
4435
+ :param pulumi.Input[str] accelerator: The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/services/gpu for configuring GPU.
4436
+
4437
+ - - -
4438
+ """
4439
+ pulumi.set(__self__, "accelerator", accelerator)
4440
+
4441
+ @property
4442
+ @pulumi.getter
4443
+ def accelerator(self) -> pulumi.Input[str]:
4444
+ """
4445
+ The GPU to attach to an instance. See https://cloud.google.com/run/docs/configuring/services/gpu for configuring GPU.
4446
+
4447
+ - - -
4448
+ """
4449
+ return pulumi.get(self, "accelerator")
4450
+
4451
+ @accelerator.setter
4452
+ def accelerator(self, value: pulumi.Input[str]):
4453
+ pulumi.set(self, "accelerator", value)
4454
+
4455
+
4394
4456
  if not MYPY:
4395
4457
  class ServiceTemplateScalingArgsDict(TypedDict):
4396
4458
  max_instance_count: NotRequired[pulumi.Input[int]]
@@ -4448,8 +4510,6 @@ if not MYPY:
4448
4510
  mesh: NotRequired[pulumi.Input[str]]
4449
4511
  """
4450
4512
  The Mesh resource name. For more information see https://cloud.google.com/service-mesh/docs/reference/network-services/rest/v1/projects.locations.meshes#resource:-mesh.
4451
-
4452
- - - -
4453
4513
  """
4454
4514
  elif False:
4455
4515
  ServiceTemplateServiceMeshArgsDict: TypeAlias = Mapping[str, Any]
@@ -4460,8 +4520,6 @@ class ServiceTemplateServiceMeshArgs:
4460
4520
  mesh: Optional[pulumi.Input[str]] = None):
4461
4521
  """
4462
4522
  :param pulumi.Input[str] mesh: The Mesh resource name. For more information see https://cloud.google.com/service-mesh/docs/reference/network-services/rest/v1/projects.locations.meshes#resource:-mesh.
4463
-
4464
- - - -
4465
4523
  """
4466
4524
  if mesh is not None:
4467
4525
  pulumi.set(__self__, "mesh", mesh)
@@ -4471,8 +4529,6 @@ class ServiceTemplateServiceMeshArgs:
4471
4529
  def mesh(self) -> Optional[pulumi.Input[str]]:
4472
4530
  """
4473
4531
  The Mesh resource name. For more information see https://cloud.google.com/service-mesh/docs/reference/network-services/rest/v1/projects.locations.meshes#resource:-mesh.
4474
-
4475
- - - -
4476
4532
  """
4477
4533
  return pulumi.get(self, "mesh")
4478
4534