pulumi-gcp 8.22.0a1741790977__py3-none-any.whl → 8.22.0a1741888019__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 (75) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/alloydb/_inputs.py +66 -0
  3. pulumi_gcp/alloydb/outputs.py +95 -0
  4. pulumi_gcp/backupdisasterrecovery/_inputs.py +3 -3
  5. pulumi_gcp/backupdisasterrecovery/outputs.py +4 -4
  6. pulumi_gcp/certificatemanager/certificate.py +53 -7
  7. pulumi_gcp/certificatemanager/outputs.py +8 -2
  8. pulumi_gcp/compute/__init__.py +1 -0
  9. pulumi_gcp/compute/_inputs.py +600 -17
  10. pulumi_gcp/compute/backend_service.py +195 -7
  11. pulumi_gcp/compute/disk.py +108 -0
  12. pulumi_gcp/compute/firewall_policy_association.py +28 -2
  13. pulumi_gcp/compute/get_backend_service.py +12 -1
  14. pulumi_gcp/compute/get_disk.py +23 -1
  15. pulumi_gcp/compute/get_region_disk.py +23 -1
  16. pulumi_gcp/compute/get_region_ssl_policy.py +203 -0
  17. pulumi_gcp/compute/outputs.py +623 -23
  18. pulumi_gcp/compute/region_backend_service.py +193 -7
  19. pulumi_gcp/compute/region_disk.py +114 -0
  20. pulumi_gcp/compute/shared_vpc_service_project.py +0 -4
  21. pulumi_gcp/compute/subnetwork.py +147 -0
  22. pulumi_gcp/container/_inputs.py +3 -3
  23. pulumi_gcp/container/outputs.py +4 -4
  24. pulumi_gcp/datastream/_inputs.py +273 -0
  25. pulumi_gcp/datastream/connection_profile.py +54 -2
  26. pulumi_gcp/datastream/outputs.py +224 -0
  27. pulumi_gcp/eventarc/__init__.py +1 -0
  28. pulumi_gcp/eventarc/_inputs.py +40 -0
  29. pulumi_gcp/eventarc/channel.py +85 -93
  30. pulumi_gcp/eventarc/google_api_source.py +997 -0
  31. pulumi_gcp/eventarc/outputs.py +41 -0
  32. pulumi_gcp/firebase/data_connect_service.py +40 -2
  33. pulumi_gcp/iam/__init__.py +2 -0
  34. pulumi_gcp/iam/_inputs.py +51 -18
  35. pulumi_gcp/iam/folders_policy_binding.py +10 -26
  36. pulumi_gcp/iam/oauth_client.py +979 -0
  37. pulumi_gcp/iam/oauth_client_credential.py +641 -0
  38. pulumi_gcp/iam/organizations_policy_binding.py +8 -24
  39. pulumi_gcp/iam/outputs.py +34 -12
  40. pulumi_gcp/iam/principal_access_boundary_policy.py +58 -22
  41. pulumi_gcp/iam/projects_policy_binding.py +8 -24
  42. pulumi_gcp/kms/crypto_key_version.py +14 -7
  43. pulumi_gcp/monitoring/_inputs.py +15 -18
  44. pulumi_gcp/monitoring/alert_policy.py +46 -0
  45. pulumi_gcp/monitoring/outputs.py +10 -12
  46. pulumi_gcp/networksecurity/__init__.py +1 -0
  47. pulumi_gcp/networksecurity/_inputs.py +30 -18
  48. pulumi_gcp/networksecurity/backend_authentication_config.py +847 -0
  49. pulumi_gcp/networksecurity/intercept_deployment.py +178 -94
  50. pulumi_gcp/networksecurity/intercept_deployment_group.py +161 -77
  51. pulumi_gcp/networksecurity/intercept_endpoint_group.py +161 -66
  52. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +137 -80
  53. pulumi_gcp/networksecurity/mirroring_deployment.py +178 -94
  54. pulumi_gcp/networksecurity/mirroring_deployment_group.py +161 -77
  55. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +161 -80
  56. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +137 -105
  57. pulumi_gcp/networksecurity/outputs.py +20 -12
  58. pulumi_gcp/networkservices/endpoint_policy.py +12 -0
  59. pulumi_gcp/networkservices/grpc_route.py +12 -0
  60. pulumi_gcp/networkservices/http_route.py +16 -0
  61. pulumi_gcp/networkservices/mesh.py +16 -0
  62. pulumi_gcp/networkservices/service_binding.py +14 -0
  63. pulumi_gcp/networkservices/tcp_route.py +16 -0
  64. pulumi_gcp/networkservices/tls_route.py +12 -0
  65. pulumi_gcp/pulumi-plugin.json +1 -1
  66. pulumi_gcp/tpu/_inputs.py +21 -1
  67. pulumi_gcp/tpu/outputs.py +13 -1
  68. pulumi_gcp/tpu/v2_vm.py +2 -0
  69. pulumi_gcp/vmwareengine/_inputs.py +6 -0
  70. pulumi_gcp/vmwareengine/outputs.py +8 -0
  71. pulumi_gcp/workstations/workstation_cluster.py +137 -1
  72. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.22.0a1741888019.dist-info}/METADATA +1 -1
  73. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.22.0a1741888019.dist-info}/RECORD +75 -70
  74. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.22.0a1741888019.dist-info}/WHEEL +0 -0
  75. {pulumi_gcp-8.22.0a1741790977.dist-info → pulumi_gcp-8.22.0a1741888019.dist-info}/top_level.txt +0 -0
@@ -455,6 +455,12 @@ class EndpointPolicy(pulumi.CustomResource):
455
455
  type: Optional[pulumi.Input[str]] = None,
456
456
  __props__=None):
457
457
  """
458
+ EndpointPolicy is a resource that helps apply desired configuration on the endpoints that match specific criteria.
459
+
460
+ To get more information about EndpointPolicy, see:
461
+
462
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.endpointPolicies)
463
+
458
464
  ## Example Usage
459
465
 
460
466
  ### Network Services Endpoint Policy Basic
@@ -556,6 +562,12 @@ class EndpointPolicy(pulumi.CustomResource):
556
562
  args: EndpointPolicyArgs,
557
563
  opts: Optional[pulumi.ResourceOptions] = None):
558
564
  """
565
+ EndpointPolicy is a resource that helps apply desired configuration on the endpoints that match specific criteria.
566
+
567
+ To get more information about EndpointPolicy, see:
568
+
569
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.endpointPolicies)
570
+
559
571
  ## Example Usage
560
572
 
561
573
  ### Network Services Endpoint Policy Basic
@@ -426,6 +426,12 @@ class GrpcRoute(pulumi.CustomResource):
426
426
  rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['GrpcRouteRuleArgs', 'GrpcRouteRuleArgsDict']]]]] = None,
427
427
  __props__=None):
428
428
  """
429
+ GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.
430
+
431
+ To get more information about GrpcRoute, see:
432
+
433
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.grpcRoutes)
434
+
429
435
  ## Example Usage
430
436
 
431
437
  ### Network Services Grpc Route Basic
@@ -611,6 +617,12 @@ class GrpcRoute(pulumi.CustomResource):
611
617
  args: GrpcRouteArgs,
612
618
  opts: Optional[pulumi.ResourceOptions] = None):
613
619
  """
620
+ GrpcRoute is the resource defining how gRPC traffic routed by a Mesh or Gateway resource is routed.
621
+
622
+ To get more information about GrpcRoute, see:
623
+
624
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.grpcRoutes)
625
+
614
626
  ## Example Usage
615
627
 
616
628
  ### Network Services Grpc Route Basic
@@ -405,6 +405,14 @@ class HttpRoute(pulumi.CustomResource):
405
405
  rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['HttpRouteRuleArgs', 'HttpRouteRuleArgsDict']]]]] = None,
406
406
  __props__=None):
407
407
  """
408
+ HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh or Gateway resource.
409
+
410
+ To get more information about HttpRoute, see:
411
+
412
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.httpRoutes)
413
+ * How-to Guides
414
+ * [Setup HTTP Services](https://cloud.google.com/traffic-director/docs/set-up-envoy-http-mesh)
415
+
408
416
  ## Example Usage
409
417
 
410
418
  ### Network Services Http Route Basic
@@ -690,6 +698,14 @@ class HttpRoute(pulumi.CustomResource):
690
698
  args: HttpRouteArgs,
691
699
  opts: Optional[pulumi.ResourceOptions] = None):
692
700
  """
701
+ HttpRoute is the resource defining how HTTP traffic should be routed by a Mesh or Gateway resource.
702
+
703
+ To get more information about HttpRoute, see:
704
+
705
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.httpRoutes)
706
+ * How-to Guides
707
+ * [Setup HTTP Services](https://cloud.google.com/traffic-director/docs/set-up-envoy-http-mesh)
708
+
693
709
  ## Example Usage
694
710
 
695
711
  ### Network Services Http Route Basic
@@ -359,6 +359,14 @@ class Mesh(pulumi.CustomResource):
359
359
  project: Optional[pulumi.Input[str]] = None,
360
360
  __props__=None):
361
361
  """
362
+ Mesh represents a logical configuration grouping for workload to workload communication within a
363
+ service mesh. Routes that point to mesh dictate how requests are routed within this logical
364
+ mesh boundary.
365
+
366
+ To get more information about Mesh, see:
367
+
368
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.meshes)
369
+
362
370
  ## Example Usage
363
371
 
364
372
  ### Network Services Mesh Basic
@@ -449,6 +457,14 @@ class Mesh(pulumi.CustomResource):
449
457
  args: Optional[MeshArgs] = None,
450
458
  opts: Optional[pulumi.ResourceOptions] = None):
451
459
  """
460
+ Mesh represents a logical configuration grouping for workload to workload communication within a
461
+ service mesh. Routes that point to mesh dictate how requests are routed within this logical
462
+ mesh boundary.
463
+
464
+ To get more information about Mesh, see:
465
+
466
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.meshes)
467
+
452
468
  ## Example Usage
453
469
 
454
470
  ### Network Services Mesh Basic
@@ -297,6 +297,13 @@ class ServiceBinding(pulumi.CustomResource):
297
297
  service: Optional[pulumi.Input[str]] = None,
298
298
  __props__=None):
299
299
  """
300
+ ServiceBinding is the resource that defines a Service Directory Service to be used in a
301
+ BackendService resource.
302
+
303
+ To get more information about ServiceBinding, see:
304
+
305
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.serviceBindings)
306
+
300
307
  ## Example Usage
301
308
 
302
309
  ### Network Services Service Binding Basic
@@ -370,6 +377,13 @@ class ServiceBinding(pulumi.CustomResource):
370
377
  args: ServiceBindingArgs,
371
378
  opts: Optional[pulumi.ResourceOptions] = None):
372
379
  """
380
+ ServiceBinding is the resource that defines a Service Directory Service to be used in a
381
+ BackendService resource.
382
+
383
+ To get more information about ServiceBinding, see:
384
+
385
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.serviceBindings)
386
+
373
387
  ## Example Usage
374
388
 
375
389
  ### Network Services Service Binding Basic
@@ -377,6 +377,14 @@ class TcpRoute(pulumi.CustomResource):
377
377
  rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TcpRouteRuleArgs', 'TcpRouteRuleArgsDict']]]]] = None,
378
378
  __props__=None):
379
379
  """
380
+ TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.
381
+
382
+ To get more information about TcpRoute, see:
383
+
384
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.tcpRoutes)
385
+ * How-to Guides
386
+ * [Setup TCP Services](https://cloud.google.com/traffic-director/docs/set-up-tcp-route)
387
+
380
388
  ## Example Usage
381
389
 
382
390
  ### Network Services Tcp Route Basic
@@ -578,6 +586,14 @@ class TcpRoute(pulumi.CustomResource):
578
586
  args: TcpRouteArgs,
579
587
  opts: Optional[pulumi.ResourceOptions] = None):
580
588
  """
589
+ TcpRoute is the resource defining how TCP traffic should be routed by a Mesh/Gateway resource.
590
+
591
+ To get more information about TcpRoute, see:
592
+
593
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.tcpRoutes)
594
+ * How-to Guides
595
+ * [Setup TCP Services](https://cloud.google.com/traffic-director/docs/set-up-tcp-route)
596
+
581
597
  ## Example Usage
582
598
 
583
599
  ### Network Services Tcp Route Basic
@@ -298,6 +298,12 @@ class TlsRoute(pulumi.CustomResource):
298
298
  rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TlsRouteRuleArgs', 'TlsRouteRuleArgsDict']]]]] = None,
299
299
  __props__=None):
300
300
  """
301
+ TlsRoute defines how traffic should be routed based on SNI and other matching L3 attributes.
302
+
303
+ To get more information about TlsRoute, see:
304
+
305
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.tlsRoutes)
306
+
301
307
  ## Example Usage
302
308
 
303
309
  ### Network Services Tls Route Basic
@@ -452,6 +458,12 @@ class TlsRoute(pulumi.CustomResource):
452
458
  args: TlsRouteArgs,
453
459
  opts: Optional[pulumi.ResourceOptions] = None):
454
460
  """
461
+ TlsRoute defines how traffic should be routed based on SNI and other matching L3 attributes.
462
+
463
+ To get more information about TlsRoute, see:
464
+
465
+ * [API documentation](https://cloud.google.com/traffic-director/docs/reference/network-services/rest/v1beta1/projects.locations.tlsRoutes)
466
+
455
467
  ## Example Usage
456
468
 
457
469
  ### Network Services Tls Route Basic
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "gcp",
4
- "version": "8.22.0-alpha.1741790977"
4
+ "version": "8.22.0-alpha.1741888019"
5
5
  }
pulumi_gcp/tpu/_inputs.py CHANGED
@@ -830,6 +830,10 @@ if not MYPY:
830
830
  """
831
831
  Whether the node is created under a reservation.
832
832
  """
833
+ spot: NotRequired[pulumi.Input[bool]]
834
+ """
835
+ Optional. Defines whether the node is Spot VM.
836
+ """
833
837
  elif False:
834
838
  V2VmSchedulingConfigArgsDict: TypeAlias = Mapping[str, Any]
835
839
 
@@ -837,15 +841,19 @@ elif False:
837
841
  class V2VmSchedulingConfigArgs:
838
842
  def __init__(__self__, *,
839
843
  preemptible: Optional[pulumi.Input[bool]] = None,
840
- reserved: Optional[pulumi.Input[bool]] = None):
844
+ reserved: Optional[pulumi.Input[bool]] = None,
845
+ spot: Optional[pulumi.Input[bool]] = None):
841
846
  """
842
847
  :param pulumi.Input[bool] preemptible: Defines whether the node is preemptible.
843
848
  :param pulumi.Input[bool] reserved: Whether the node is created under a reservation.
849
+ :param pulumi.Input[bool] spot: Optional. Defines whether the node is Spot VM.
844
850
  """
845
851
  if preemptible is not None:
846
852
  pulumi.set(__self__, "preemptible", preemptible)
847
853
  if reserved is not None:
848
854
  pulumi.set(__self__, "reserved", reserved)
855
+ if spot is not None:
856
+ pulumi.set(__self__, "spot", spot)
849
857
 
850
858
  @property
851
859
  @pulumi.getter
@@ -871,6 +879,18 @@ class V2VmSchedulingConfigArgs:
871
879
  def reserved(self, value: Optional[pulumi.Input[bool]]):
872
880
  pulumi.set(self, "reserved", value)
873
881
 
882
+ @property
883
+ @pulumi.getter
884
+ def spot(self) -> Optional[pulumi.Input[bool]]:
885
+ """
886
+ Optional. Defines whether the node is Spot VM.
887
+ """
888
+ return pulumi.get(self, "spot")
889
+
890
+ @spot.setter
891
+ def spot(self, value: Optional[pulumi.Input[bool]]):
892
+ pulumi.set(self, "spot", value)
893
+
874
894
 
875
895
  if not MYPY:
876
896
  class V2VmServiceAccountArgsDict(TypedDict):
pulumi_gcp/tpu/outputs.py CHANGED
@@ -666,15 +666,19 @@ class V2VmNetworkEndpointAccessConfig(dict):
666
666
  class V2VmSchedulingConfig(dict):
667
667
  def __init__(__self__, *,
668
668
  preemptible: Optional[bool] = None,
669
- reserved: Optional[bool] = None):
669
+ reserved: Optional[bool] = None,
670
+ spot: Optional[bool] = None):
670
671
  """
671
672
  :param bool preemptible: Defines whether the node is preemptible.
672
673
  :param bool reserved: Whether the node is created under a reservation.
674
+ :param bool spot: Optional. Defines whether the node is Spot VM.
673
675
  """
674
676
  if preemptible is not None:
675
677
  pulumi.set(__self__, "preemptible", preemptible)
676
678
  if reserved is not None:
677
679
  pulumi.set(__self__, "reserved", reserved)
680
+ if spot is not None:
681
+ pulumi.set(__self__, "spot", spot)
678
682
 
679
683
  @property
680
684
  @pulumi.getter
@@ -692,6 +696,14 @@ class V2VmSchedulingConfig(dict):
692
696
  """
693
697
  return pulumi.get(self, "reserved")
694
698
 
699
+ @property
700
+ @pulumi.getter
701
+ def spot(self) -> Optional[bool]:
702
+ """
703
+ Optional. Defines whether the node is Spot VM.
704
+ """
705
+ return pulumi.get(self, "spot")
706
+
695
707
 
696
708
  @pulumi.output_type
697
709
  class V2VmServiceAccount(dict):
pulumi_gcp/tpu/v2_vm.py CHANGED
@@ -919,6 +919,7 @@ class V2Vm(pulumi.CustomResource):
919
919
  },
920
920
  scheduling_config={
921
921
  "preemptible": True,
922
+ "spot": True,
922
923
  },
923
924
  shielded_instance_config={
924
925
  "enable_secure_boot": True,
@@ -1082,6 +1083,7 @@ class V2Vm(pulumi.CustomResource):
1082
1083
  },
1083
1084
  scheduling_config={
1084
1085
  "preemptible": True,
1086
+ "spot": True,
1085
1087
  },
1086
1088
  shielded_instance_config={
1087
1089
  "enable_secure_boot": True,
@@ -1593,10 +1593,12 @@ if not MYPY:
1593
1593
  preferred_location: NotRequired[pulumi.Input[str]]
1594
1594
  """
1595
1595
  Zone that will remain operational when connection between the two zones is lost.
1596
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1596
1597
  """
1597
1598
  secondary_location: NotRequired[pulumi.Input[str]]
1598
1599
  """
1599
1600
  Additional zone for a higher level of availability and load balancing.
1601
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1600
1602
  """
1601
1603
  elif False:
1602
1604
  PrivateCloudManagementClusterStretchedClusterConfigArgsDict: TypeAlias = Mapping[str, Any]
@@ -1608,7 +1610,9 @@ class PrivateCloudManagementClusterStretchedClusterConfigArgs:
1608
1610
  secondary_location: Optional[pulumi.Input[str]] = None):
1609
1611
  """
1610
1612
  :param pulumi.Input[str] preferred_location: Zone that will remain operational when connection between the two zones is lost.
1613
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1611
1614
  :param pulumi.Input[str] secondary_location: Additional zone for a higher level of availability and load balancing.
1615
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1612
1616
  """
1613
1617
  if preferred_location is not None:
1614
1618
  pulumi.set(__self__, "preferred_location", preferred_location)
@@ -1620,6 +1624,7 @@ class PrivateCloudManagementClusterStretchedClusterConfigArgs:
1620
1624
  def preferred_location(self) -> Optional[pulumi.Input[str]]:
1621
1625
  """
1622
1626
  Zone that will remain operational when connection between the two zones is lost.
1627
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1623
1628
  """
1624
1629
  return pulumi.get(self, "preferred_location")
1625
1630
 
@@ -1632,6 +1637,7 @@ class PrivateCloudManagementClusterStretchedClusterConfigArgs:
1632
1637
  def secondary_location(self) -> Optional[pulumi.Input[str]]:
1633
1638
  """
1634
1639
  Additional zone for a higher level of availability and load balancing.
1640
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1635
1641
  """
1636
1642
  return pulumi.get(self, "secondary_location")
1637
1643
 
@@ -1338,7 +1338,9 @@ class PrivateCloudManagementClusterStretchedClusterConfig(dict):
1338
1338
  secondary_location: Optional[str] = None):
1339
1339
  """
1340
1340
  :param str preferred_location: Zone that will remain operational when connection between the two zones is lost.
1341
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1341
1342
  :param str secondary_location: Additional zone for a higher level of availability and load balancing.
1343
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1342
1344
  """
1343
1345
  if preferred_location is not None:
1344
1346
  pulumi.set(__self__, "preferred_location", preferred_location)
@@ -1350,6 +1352,7 @@ class PrivateCloudManagementClusterStretchedClusterConfig(dict):
1350
1352
  def preferred_location(self) -> Optional[str]:
1351
1353
  """
1352
1354
  Zone that will remain operational when connection between the two zones is lost.
1355
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1353
1356
  """
1354
1357
  return pulumi.get(self, "preferred_location")
1355
1358
 
@@ -1358,6 +1361,7 @@ class PrivateCloudManagementClusterStretchedClusterConfig(dict):
1358
1361
  def secondary_location(self) -> Optional[str]:
1359
1362
  """
1360
1363
  Additional zone for a higher level of availability and load balancing.
1364
+ Specify the zone in the following format: projects/{project}/locations/{location}.
1361
1365
  """
1362
1366
  return pulumi.get(self, "secondary_location")
1363
1367
 
@@ -2513,7 +2517,9 @@ class GetPrivateCloudManagementClusterStretchedClusterConfigResult(dict):
2513
2517
  secondary_location: str):
2514
2518
  """
2515
2519
  :param str preferred_location: Zone that will remain operational when connection between the two zones is lost.
2520
+ Specify the zone in the following format: projects/{project}/locations/{location}.
2516
2521
  :param str secondary_location: Additional zone for a higher level of availability and load balancing.
2522
+ Specify the zone in the following format: projects/{project}/locations/{location}.
2517
2523
  """
2518
2524
  pulumi.set(__self__, "preferred_location", preferred_location)
2519
2525
  pulumi.set(__self__, "secondary_location", secondary_location)
@@ -2523,6 +2529,7 @@ class GetPrivateCloudManagementClusterStretchedClusterConfigResult(dict):
2523
2529
  def preferred_location(self) -> str:
2524
2530
  """
2525
2531
  Zone that will remain operational when connection between the two zones is lost.
2532
+ Specify the zone in the following format: projects/{project}/locations/{location}.
2526
2533
  """
2527
2534
  return pulumi.get(self, "preferred_location")
2528
2535
 
@@ -2531,6 +2538,7 @@ class GetPrivateCloudManagementClusterStretchedClusterConfigResult(dict):
2531
2538
  def secondary_location(self) -> str:
2532
2539
  """
2533
2540
  Additional zone for a higher level of availability and load balancing.
2541
+ Specify the zone in the following format: projects/{project}/locations/{location}.
2534
2542
  """
2535
2543
  return pulumi.get(self, "secondary_location")
2536
2544
 
@@ -30,7 +30,8 @@ class WorkstationClusterArgs:
30
30
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
31
31
  location: Optional[pulumi.Input[str]] = None,
32
32
  private_cluster_config: Optional[pulumi.Input['WorkstationClusterPrivateClusterConfigArgs']] = None,
33
- project: Optional[pulumi.Input[str]] = None):
33
+ project: Optional[pulumi.Input[str]] = None,
34
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
34
35
  """
35
36
  The set of arguments for constructing a WorkstationCluster resource.
36
37
  :param pulumi.Input[str] network: The relative resource name of the VPC network on which the instance can be accessed.
@@ -55,6 +56,10 @@ class WorkstationClusterArgs:
55
56
  Structure is documented below.
56
57
  :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
57
58
  If it is not provided, the provider project is used.
59
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource manager tags bound to this resource.
60
+ For example:
61
+ "123/environment": "production",
62
+ "123/costCenter": "marketing"
58
63
  """
59
64
  pulumi.set(__self__, "network", network)
60
65
  pulumi.set(__self__, "subnetwork", subnetwork)
@@ -73,6 +78,8 @@ class WorkstationClusterArgs:
73
78
  pulumi.set(__self__, "private_cluster_config", private_cluster_config)
74
79
  if project is not None:
75
80
  pulumi.set(__self__, "project", project)
81
+ if tags is not None:
82
+ pulumi.set(__self__, "tags", tags)
76
83
 
77
84
  @property
78
85
  @pulumi.getter
@@ -206,6 +213,21 @@ class WorkstationClusterArgs:
206
213
  def project(self, value: Optional[pulumi.Input[str]]):
207
214
  pulumi.set(self, "project", value)
208
215
 
216
+ @property
217
+ @pulumi.getter
218
+ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
219
+ """
220
+ Resource manager tags bound to this resource.
221
+ For example:
222
+ "123/environment": "production",
223
+ "123/costCenter": "marketing"
224
+ """
225
+ return pulumi.get(self, "tags")
226
+
227
+ @tags.setter
228
+ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
229
+ pulumi.set(self, "tags", value)
230
+
209
231
 
210
232
  @pulumi.input_type
211
233
  class _WorkstationClusterState:
@@ -228,6 +250,7 @@ class _WorkstationClusterState:
228
250
  project: Optional[pulumi.Input[str]] = None,
229
251
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
230
252
  subnetwork: Optional[pulumi.Input[str]] = None,
253
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
231
254
  uid: Optional[pulumi.Input[str]] = None,
232
255
  workstation_cluster_id: Optional[pulumi.Input[str]] = None):
233
256
  """
@@ -263,6 +286,10 @@ class _WorkstationClusterState:
263
286
  and default labels configured on the provider.
264
287
  :param pulumi.Input[str] subnetwork: Name of the Compute Engine subnetwork in which instances associated with this cluster will be created.
265
288
  Must be part of the subnetwork specified for this cluster.
289
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource manager tags bound to this resource.
290
+ For example:
291
+ "123/environment": "production",
292
+ "123/costCenter": "marketing"
266
293
  :param pulumi.Input[str] uid: The system-generated UID of the resource.
267
294
  :param pulumi.Input[str] workstation_cluster_id: ID to use for the workstation cluster.
268
295
 
@@ -305,6 +332,8 @@ class _WorkstationClusterState:
305
332
  pulumi.set(__self__, "pulumi_labels", pulumi_labels)
306
333
  if subnetwork is not None:
307
334
  pulumi.set(__self__, "subnetwork", subnetwork)
335
+ if tags is not None:
336
+ pulumi.set(__self__, "tags", tags)
308
337
  if uid is not None:
309
338
  pulumi.set(__self__, "uid", uid)
310
339
  if workstation_cluster_id is not None:
@@ -537,6 +566,21 @@ class _WorkstationClusterState:
537
566
  def subnetwork(self, value: Optional[pulumi.Input[str]]):
538
567
  pulumi.set(self, "subnetwork", value)
539
568
 
569
+ @property
570
+ @pulumi.getter
571
+ def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
572
+ """
573
+ Resource manager tags bound to this resource.
574
+ For example:
575
+ "123/environment": "production",
576
+ "123/costCenter": "marketing"
577
+ """
578
+ return pulumi.get(self, "tags")
579
+
580
+ @tags.setter
581
+ def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
582
+ pulumi.set(self, "tags", value)
583
+
540
584
  @property
541
585
  @pulumi.getter
542
586
  def uid(self) -> Optional[pulumi.Input[str]]:
@@ -579,6 +623,7 @@ class WorkstationCluster(pulumi.CustomResource):
579
623
  private_cluster_config: Optional[pulumi.Input[Union['WorkstationClusterPrivateClusterConfigArgs', 'WorkstationClusterPrivateClusterConfigArgsDict']]] = None,
580
624
  project: Optional[pulumi.Input[str]] = None,
581
625
  subnetwork: Optional[pulumi.Input[str]] = None,
626
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
582
627
  workstation_cluster_id: Optional[pulumi.Input[str]] = None,
583
628
  __props__=None):
584
629
  """
@@ -674,6 +719,40 @@ class WorkstationCluster(pulumi.CustomResource):
674
719
  })
675
720
  project = gcp.organizations.get_project()
676
721
  ```
722
+ ### Workstation Cluster Tags
723
+
724
+ ```python
725
+ import pulumi
726
+ import pulumi_gcp as gcp
727
+
728
+ project = gcp.organizations.get_project()
729
+ tag_key = gcp.tags.TagKey("tag_key",
730
+ parent=f"projects/{project.number}",
731
+ short_name="keyname")
732
+ tag_value = gcp.tags.TagValue("tag_value",
733
+ parent=tag_key.name.apply(lambda name: f"tagKeys/{name}"),
734
+ short_name="valuename")
735
+ default_network = gcp.compute.Network("default",
736
+ name="workstation-cluster-tags",
737
+ auto_create_subnetworks=False)
738
+ default_subnetwork = gcp.compute.Subnetwork("default",
739
+ name="workstation-cluster-tags",
740
+ ip_cidr_range="10.0.0.0/24",
741
+ region="us-central1",
742
+ network=default_network.name)
743
+ default = gcp.workstations.WorkstationCluster("default",
744
+ workstation_cluster_id="workstation-cluster-tags",
745
+ network=default_network.id,
746
+ subnetwork=default_subnetwork.id,
747
+ location="us-central1",
748
+ tags=pulumi.Output.all(
749
+ tagKeyShort_name=tag_key.short_name,
750
+ tagValueShort_name=tag_value.short_name
751
+ ).apply(lambda resolved_outputs: {
752
+ f"{project.project_id}/{resolved_outputs['tagKeyShort_name']}": resolved_outputs['tagValueShort_name'],
753
+ })
754
+ )
755
+ ```
677
756
 
678
757
  ## Import
679
758
 
@@ -719,6 +798,10 @@ class WorkstationCluster(pulumi.CustomResource):
719
798
  If it is not provided, the provider project is used.
720
799
  :param pulumi.Input[str] subnetwork: Name of the Compute Engine subnetwork in which instances associated with this cluster will be created.
721
800
  Must be part of the subnetwork specified for this cluster.
801
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource manager tags bound to this resource.
802
+ For example:
803
+ "123/environment": "production",
804
+ "123/costCenter": "marketing"
722
805
  :param pulumi.Input[str] workstation_cluster_id: ID to use for the workstation cluster.
723
806
 
724
807
 
@@ -823,6 +906,40 @@ class WorkstationCluster(pulumi.CustomResource):
823
906
  })
824
907
  project = gcp.organizations.get_project()
825
908
  ```
909
+ ### Workstation Cluster Tags
910
+
911
+ ```python
912
+ import pulumi
913
+ import pulumi_gcp as gcp
914
+
915
+ project = gcp.organizations.get_project()
916
+ tag_key = gcp.tags.TagKey("tag_key",
917
+ parent=f"projects/{project.number}",
918
+ short_name="keyname")
919
+ tag_value = gcp.tags.TagValue("tag_value",
920
+ parent=tag_key.name.apply(lambda name: f"tagKeys/{name}"),
921
+ short_name="valuename")
922
+ default_network = gcp.compute.Network("default",
923
+ name="workstation-cluster-tags",
924
+ auto_create_subnetworks=False)
925
+ default_subnetwork = gcp.compute.Subnetwork("default",
926
+ name="workstation-cluster-tags",
927
+ ip_cidr_range="10.0.0.0/24",
928
+ region="us-central1",
929
+ network=default_network.name)
930
+ default = gcp.workstations.WorkstationCluster("default",
931
+ workstation_cluster_id="workstation-cluster-tags",
932
+ network=default_network.id,
933
+ subnetwork=default_subnetwork.id,
934
+ location="us-central1",
935
+ tags=pulumi.Output.all(
936
+ tagKeyShort_name=tag_key.short_name,
937
+ tagValueShort_name=tag_value.short_name
938
+ ).apply(lambda resolved_outputs: {
939
+ f"{project.project_id}/{resolved_outputs['tagKeyShort_name']}": resolved_outputs['tagValueShort_name'],
940
+ })
941
+ )
942
+ ```
826
943
 
827
944
  ## Import
828
945
 
@@ -872,6 +989,7 @@ class WorkstationCluster(pulumi.CustomResource):
872
989
  private_cluster_config: Optional[pulumi.Input[Union['WorkstationClusterPrivateClusterConfigArgs', 'WorkstationClusterPrivateClusterConfigArgsDict']]] = None,
873
990
  project: Optional[pulumi.Input[str]] = None,
874
991
  subnetwork: Optional[pulumi.Input[str]] = None,
992
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
875
993
  workstation_cluster_id: Optional[pulumi.Input[str]] = None,
876
994
  __props__=None):
877
995
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
@@ -895,6 +1013,7 @@ class WorkstationCluster(pulumi.CustomResource):
895
1013
  if subnetwork is None and not opts.urn:
896
1014
  raise TypeError("Missing required property 'subnetwork'")
897
1015
  __props__.__dict__["subnetwork"] = subnetwork
1016
+ __props__.__dict__["tags"] = tags
898
1017
  if workstation_cluster_id is None and not opts.urn:
899
1018
  raise TypeError("Missing required property 'workstation_cluster_id'")
900
1019
  __props__.__dict__["workstation_cluster_id"] = workstation_cluster_id
@@ -938,6 +1057,7 @@ class WorkstationCluster(pulumi.CustomResource):
938
1057
  project: Optional[pulumi.Input[str]] = None,
939
1058
  pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
940
1059
  subnetwork: Optional[pulumi.Input[str]] = None,
1060
+ tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
941
1061
  uid: Optional[pulumi.Input[str]] = None,
942
1062
  workstation_cluster_id: Optional[pulumi.Input[str]] = None) -> 'WorkstationCluster':
943
1063
  """
@@ -978,6 +1098,10 @@ class WorkstationCluster(pulumi.CustomResource):
978
1098
  and default labels configured on the provider.
979
1099
  :param pulumi.Input[str] subnetwork: Name of the Compute Engine subnetwork in which instances associated with this cluster will be created.
980
1100
  Must be part of the subnetwork specified for this cluster.
1101
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Resource manager tags bound to this resource.
1102
+ For example:
1103
+ "123/environment": "production",
1104
+ "123/costCenter": "marketing"
981
1105
  :param pulumi.Input[str] uid: The system-generated UID of the resource.
982
1106
  :param pulumi.Input[str] workstation_cluster_id: ID to use for the workstation cluster.
983
1107
 
@@ -1006,6 +1130,7 @@ class WorkstationCluster(pulumi.CustomResource):
1006
1130
  __props__.__dict__["project"] = project
1007
1131
  __props__.__dict__["pulumi_labels"] = pulumi_labels
1008
1132
  __props__.__dict__["subnetwork"] = subnetwork
1133
+ __props__.__dict__["tags"] = tags
1009
1134
  __props__.__dict__["uid"] = uid
1010
1135
  __props__.__dict__["workstation_cluster_id"] = workstation_cluster_id
1011
1136
  return WorkstationCluster(resource_name, opts=opts, __props__=__props__)
@@ -1165,6 +1290,17 @@ class WorkstationCluster(pulumi.CustomResource):
1165
1290
  """
1166
1291
  return pulumi.get(self, "subnetwork")
1167
1292
 
1293
+ @property
1294
+ @pulumi.getter
1295
+ def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1296
+ """
1297
+ Resource manager tags bound to this resource.
1298
+ For example:
1299
+ "123/environment": "production",
1300
+ "123/costCenter": "marketing"
1301
+ """
1302
+ return pulumi.get(self, "tags")
1303
+
1168
1304
  @property
1169
1305
  @pulumi.getter
1170
1306
  def uid(self) -> pulumi.Output[str]: