pulumi-gcp 7.31.0a1720850808__py3-none-any.whl → 7.31.0a1721039192__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 (86) hide show
  1. pulumi_gcp/__init__.py +40 -0
  2. pulumi_gcp/applicationintegration/auth_config.py +2 -2
  3. pulumi_gcp/bigquery/reservation_assignment.py +48 -30
  4. pulumi_gcp/certificateauthority/certificate_template.py +2 -2
  5. pulumi_gcp/certificatemanager/_inputs.py +33 -0
  6. pulumi_gcp/certificatemanager/outputs.py +36 -0
  7. pulumi_gcp/certificatemanager/trust_config.py +107 -0
  8. pulumi_gcp/compute/_inputs.py +3 -6
  9. pulumi_gcp/compute/ca_external_account_key.py +2 -2
  10. pulumi_gcp/compute/get_health_check.py +11 -1
  11. pulumi_gcp/compute/global_forwarding_rule.py +2 -4
  12. pulumi_gcp/compute/health_check.py +124 -0
  13. pulumi_gcp/compute/instance.py +14 -14
  14. pulumi_gcp/compute/instance_group_membership.py +2 -2
  15. pulumi_gcp/compute/outputs.py +4 -8
  16. pulumi_gcp/compute/region_network_endpoint.py +2 -2
  17. pulumi_gcp/compute/region_network_endpoint_group.py +2 -2
  18. pulumi_gcp/compute/subnetwork.py +2 -2
  19. pulumi_gcp/config/__init__.pyi +2 -0
  20. pulumi_gcp/config/vars.py +4 -0
  21. pulumi_gcp/container/_inputs.py +3 -3
  22. pulumi_gcp/container/outputs.py +4 -4
  23. pulumi_gcp/containeranalysis/note.py +2 -2
  24. pulumi_gcp/dataloss/_inputs.py +3 -0
  25. pulumi_gcp/dataloss/outputs.py +2 -0
  26. pulumi_gcp/dataloss/prevention_job_trigger.py +90 -0
  27. pulumi_gcp/dataplex/_inputs.py +56 -0
  28. pulumi_gcp/dataplex/datascan.py +12 -0
  29. pulumi_gcp/dataplex/outputs.py +52 -0
  30. pulumi_gcp/filestore/backup.py +2 -2
  31. pulumi_gcp/filestore/instance.py +2 -2
  32. pulumi_gcp/filestore/snapshot.py +2 -2
  33. pulumi_gcp/gkehub/_inputs.py +20 -0
  34. pulumi_gcp/gkehub/outputs.py +12 -0
  35. pulumi_gcp/kms/__init__.py +2 -0
  36. pulumi_gcp/kms/crypto_key.py +7 -7
  37. pulumi_gcp/kms/get_crypto_keys.py +143 -0
  38. pulumi_gcp/kms/get_key_rings.py +119 -0
  39. pulumi_gcp/kms/outputs.py +270 -0
  40. pulumi_gcp/logging/_inputs.py +12 -12
  41. pulumi_gcp/logging/folder_bucket_config.py +6 -6
  42. pulumi_gcp/logging/organization_bucket_config.py +6 -6
  43. pulumi_gcp/logging/outputs.py +8 -8
  44. pulumi_gcp/logging/project_bucket_config.py +6 -6
  45. pulumi_gcp/looker/instance.py +2 -2
  46. pulumi_gcp/monitoring/custom_service.py +2 -2
  47. pulumi_gcp/monitoring/generic_service.py +2 -2
  48. pulumi_gcp/monitoring/notification_channel.py +2 -2
  49. pulumi_gcp/monitoring/slo.py +2 -2
  50. pulumi_gcp/netapp/storage_pool.py +132 -53
  51. pulumi_gcp/netapp/volume.py +60 -4
  52. pulumi_gcp/networksecurity/address_group.py +85 -1
  53. pulumi_gcp/networksecurity/firewall_endpoint.py +2 -2
  54. pulumi_gcp/networksecurity/firewall_endpoint_association.py +2 -2
  55. pulumi_gcp/networksecurity/security_profile_group.py +2 -2
  56. pulumi_gcp/orgpolicy/_inputs.py +40 -10
  57. pulumi_gcp/orgpolicy/outputs.py +28 -8
  58. pulumi_gcp/orgpolicy/policy.py +52 -35
  59. pulumi_gcp/provider.py +20 -0
  60. pulumi_gcp/pubsub/_inputs.py +3 -3
  61. pulumi_gcp/pubsub/outputs.py +4 -4
  62. pulumi_gcp/pulumi-plugin.json +1 -1
  63. pulumi_gcp/securesourcemanager/__init__.py +5 -0
  64. pulumi_gcp/securesourcemanager/_inputs.py +284 -0
  65. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +177 -0
  66. pulumi_gcp/securesourcemanager/outputs.py +202 -0
  67. pulumi_gcp/securesourcemanager/repository.py +715 -0
  68. pulumi_gcp/securesourcemanager/repository_iam_binding.py +804 -0
  69. pulumi_gcp/securesourcemanager/repository_iam_member.py +804 -0
  70. pulumi_gcp/securesourcemanager/repository_iam_policy.py +643 -0
  71. pulumi_gcp/securitycenter/__init__.py +1 -0
  72. pulumi_gcp/securitycenter/_inputs.py +93 -0
  73. pulumi_gcp/securitycenter/outputs.py +59 -0
  74. pulumi_gcp/securitycenter/v2_organization_notification_config.py +576 -0
  75. pulumi_gcp/securityposture/posture_deployment.py +0 -78
  76. pulumi_gcp/servicenetworking/vpc_service_controls.py +2 -2
  77. pulumi_gcp/vertex/_inputs.py +21 -1
  78. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +222 -0
  79. pulumi_gcp/vertex/outputs.py +15 -1
  80. pulumi_gcp/workstations/_inputs.py +33 -1
  81. pulumi_gcp/workstations/outputs.py +23 -1
  82. pulumi_gcp/workstations/workstation_config.py +18 -0
  83. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/METADATA +1 -1
  84. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/RECORD +86 -78
  85. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/WHEEL +0 -0
  86. {pulumi_gcp-7.31.0a1720850808.dist-info → pulumi_gcp-7.31.0a1721039192.dist-info}/top_level.txt +0 -0
@@ -221,9 +221,9 @@ class VpcServiceControls(pulumi.CustomResource):
221
221
 
222
222
  * [API documentation](https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/v1/services)
223
223
  * How-to Guides
224
+ * [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
224
225
  * [Private Google Access with VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/private-connectivity)
225
226
  * [Set up private connectivity to Google APIs and services](https://cloud.google.com/vpc-service-controls/docs/set-up-private-connectivity)
226
- * [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
227
227
 
228
228
  > **Note:** Destroying a `servicenetworking.VpcServiceControls`
229
229
  resource will remove it from state, but will not change the
@@ -333,9 +333,9 @@ class VpcServiceControls(pulumi.CustomResource):
333
333
 
334
334
  * [API documentation](https://cloud.google.com/service-infrastructure/docs/service-networking/reference/rest/v1/services)
335
335
  * How-to Guides
336
+ * [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
336
337
  * [Private Google Access with VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/private-connectivity)
337
338
  * [Set up private connectivity to Google APIs and services](https://cloud.google.com/vpc-service-controls/docs/set-up-private-connectivity)
338
- * [Enable VPC Service Controls for service networking](https://cloud.google.com/sdk/gcloud/reference/services/vpc-peerings/enable-vpc-service-controls)
339
339
 
340
340
  > **Note:** Destroying a `servicenetworking.VpcServiceControls`
341
341
  resource will remove it from state, but will not change the
@@ -1615,18 +1615,26 @@ if not MYPY:
1615
1615
  List of features that need to be synced to Online Store.
1616
1616
  Structure is documented below.
1617
1617
  """
1618
+ project_number: NotRequired[pulumi.Input[str]]
1619
+ """
1620
+ The project number of the parent project of the feature Groups.
1621
+ """
1618
1622
  elif False:
1619
1623
  AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgsDict: TypeAlias = Mapping[str, Any]
1620
1624
 
1621
1625
  @pulumi.input_type
1622
1626
  class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs:
1623
1627
  def __init__(__self__, *,
1624
- feature_groups: pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]]):
1628
+ feature_groups: pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]],
1629
+ project_number: Optional[pulumi.Input[str]] = None):
1625
1630
  """
1626
1631
  :param pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]] feature_groups: List of features that need to be synced to Online Store.
1627
1632
  Structure is documented below.
1633
+ :param pulumi.Input[str] project_number: The project number of the parent project of the feature Groups.
1628
1634
  """
1629
1635
  pulumi.set(__self__, "feature_groups", feature_groups)
1636
+ if project_number is not None:
1637
+ pulumi.set(__self__, "project_number", project_number)
1630
1638
 
1631
1639
  @property
1632
1640
  @pulumi.getter(name="featureGroups")
@@ -1641,6 +1649,18 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceArgs:
1641
1649
  def feature_groups(self, value: pulumi.Input[Sequence[pulumi.Input['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs']]]):
1642
1650
  pulumi.set(self, "feature_groups", value)
1643
1651
 
1652
+ @property
1653
+ @pulumi.getter(name="projectNumber")
1654
+ def project_number(self) -> Optional[pulumi.Input[str]]:
1655
+ """
1656
+ The project number of the parent project of the feature Groups.
1657
+ """
1658
+ return pulumi.get(self, "project_number")
1659
+
1660
+ @project_number.setter
1661
+ def project_number(self, value: Optional[pulumi.Input[str]]):
1662
+ pulumi.set(self, "project_number", value)
1663
+
1644
1664
 
1645
1665
  if not MYPY:
1646
1666
  class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgsDict(TypedDict):
@@ -599,6 +599,117 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
599
599
  }],
600
600
  })
601
601
  ```
602
+ ### Vertex Ai Featureonlinestore Featureview Cross Project
603
+
604
+ ```python
605
+ import pulumi
606
+ import pulumi_gcp as gcp
607
+ import pulumi_time as time
608
+
609
+ test_project = gcp.organizations.get_project()
610
+ project = gcp.organizations.Project("project",
611
+ project_id="tf-test_55138",
612
+ name="tf-test_37559",
613
+ org_id="123456789",
614
+ billing_account="000000-0000000-0000000-000000")
615
+ wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s,
616
+ opts = pulumi.ResourceOptions(depends_on=[project]))
617
+ vertexai = gcp.projects.Service("vertexai",
618
+ service="aiplatform.googleapis.com",
619
+ project=project.project_id,
620
+ disable_on_destroy=False,
621
+ opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))
622
+ featureonlinestore = gcp.vertex.AiFeatureOnlineStore("featureonlinestore",
623
+ name="example_cross_project_featureview",
624
+ project=project.project_id,
625
+ labels={
626
+ "foo": "bar",
627
+ },
628
+ region="us-central1",
629
+ bigtable={
630
+ "autoScaling": {
631
+ "minNodeCount": 1,
632
+ "maxNodeCount": 2,
633
+ "cpuUtilizationTarget": 80,
634
+ },
635
+ },
636
+ opts = pulumi.ResourceOptions(depends_on=[vertexai]))
637
+ sample_dataset = gcp.bigquery.Dataset("sample_dataset",
638
+ dataset_id="example_cross_project_featureview",
639
+ friendly_name="test",
640
+ description="This is a test description",
641
+ location="US")
642
+ viewer = gcp.bigquery.DatasetIamMember("viewer",
643
+ project=test_project.project_id,
644
+ dataset_id=sample_dataset.dataset_id,
645
+ role="roles/bigquery.dataViewer",
646
+ member=project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com"),
647
+ opts = pulumi.ResourceOptions(depends_on=[featureonlinestore]))
648
+ wait30_seconds = time.index.Sleep("wait_30_seconds", create_duration=30s,
649
+ opts = pulumi.ResourceOptions(depends_on=[viewer]))
650
+ sample_table = gcp.bigquery.Table("sample_table",
651
+ deletion_protection=False,
652
+ dataset_id=sample_dataset.dataset_id,
653
+ table_id="example_cross_project_featureview",
654
+ schema=\"\"\"[
655
+ {
656
+ "name": "feature_id",
657
+ "type": "STRING",
658
+ "mode": "NULLABLE"
659
+ },
660
+ {
661
+ "name": "example_cross_project_featureview",
662
+ "type": "STRING",
663
+ "mode": "NULLABLE"
664
+ },
665
+ {
666
+ "name": "feature_timestamp",
667
+ "type": "TIMESTAMP",
668
+ "mode": "NULLABLE"
669
+ }
670
+ ]
671
+ \"\"\")
672
+ sample_feature_group = gcp.vertex.AiFeatureGroup("sample_feature_group",
673
+ name="example_cross_project_featureview",
674
+ description="A sample feature group",
675
+ region="us-central1",
676
+ labels={
677
+ "label-one": "value-one",
678
+ },
679
+ big_query={
680
+ "bigQuerySource": {
681
+ "inputUri": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f"bq://{project}.{dataset_id}.{table_id}"),
682
+ },
683
+ "entityIdColumns": ["feature_id"],
684
+ })
685
+ sample_feature = gcp.vertex.AiFeatureGroupFeature("sample_feature",
686
+ name="example_cross_project_featureview",
687
+ region="us-central1",
688
+ feature_group=sample_feature_group.name,
689
+ description="A sample feature",
690
+ labels={
691
+ "label-one": "value-one",
692
+ })
693
+ cross_project_featureview = gcp.vertex.AiFeatureOnlineStoreFeatureview("cross_project_featureview",
694
+ name="example_cross_project_featureview",
695
+ project=project.project_id,
696
+ region="us-central1",
697
+ feature_online_store=featureonlinestore.name,
698
+ sync_config={
699
+ "cron": "0 0 * * *",
700
+ },
701
+ feature_registry_source={
702
+ "featureGroups": [{
703
+ "featureGroupId": sample_feature_group.name,
704
+ "featureIds": [sample_feature.name],
705
+ }],
706
+ "projectNumber": test_project.number,
707
+ },
708
+ opts = pulumi.ResourceOptions(depends_on=[
709
+ vertexai,
710
+ wait30_seconds,
711
+ ]))
712
+ ```
602
713
  ### Vertex Ai Featureonlinestore Featureview With Vector Search
603
714
 
604
715
  ```python
@@ -912,6 +1023,117 @@ class AiFeatureOnlineStoreFeatureview(pulumi.CustomResource):
912
1023
  }],
913
1024
  })
914
1025
  ```
1026
+ ### Vertex Ai Featureonlinestore Featureview Cross Project
1027
+
1028
+ ```python
1029
+ import pulumi
1030
+ import pulumi_gcp as gcp
1031
+ import pulumi_time as time
1032
+
1033
+ test_project = gcp.organizations.get_project()
1034
+ project = gcp.organizations.Project("project",
1035
+ project_id="tf-test_55138",
1036
+ name="tf-test_37559",
1037
+ org_id="123456789",
1038
+ billing_account="000000-0000000-0000000-000000")
1039
+ wait60_seconds = time.index.Sleep("wait_60_seconds", create_duration=60s,
1040
+ opts = pulumi.ResourceOptions(depends_on=[project]))
1041
+ vertexai = gcp.projects.Service("vertexai",
1042
+ service="aiplatform.googleapis.com",
1043
+ project=project.project_id,
1044
+ disable_on_destroy=False,
1045
+ opts = pulumi.ResourceOptions(depends_on=[wait60_seconds]))
1046
+ featureonlinestore = gcp.vertex.AiFeatureOnlineStore("featureonlinestore",
1047
+ name="example_cross_project_featureview",
1048
+ project=project.project_id,
1049
+ labels={
1050
+ "foo": "bar",
1051
+ },
1052
+ region="us-central1",
1053
+ bigtable={
1054
+ "autoScaling": {
1055
+ "minNodeCount": 1,
1056
+ "maxNodeCount": 2,
1057
+ "cpuUtilizationTarget": 80,
1058
+ },
1059
+ },
1060
+ opts = pulumi.ResourceOptions(depends_on=[vertexai]))
1061
+ sample_dataset = gcp.bigquery.Dataset("sample_dataset",
1062
+ dataset_id="example_cross_project_featureview",
1063
+ friendly_name="test",
1064
+ description="This is a test description",
1065
+ location="US")
1066
+ viewer = gcp.bigquery.DatasetIamMember("viewer",
1067
+ project=test_project.project_id,
1068
+ dataset_id=sample_dataset.dataset_id,
1069
+ role="roles/bigquery.dataViewer",
1070
+ member=project.number.apply(lambda number: f"serviceAccount:service-{number}@gcp-sa-aiplatform.iam.gserviceaccount.com"),
1071
+ opts = pulumi.ResourceOptions(depends_on=[featureonlinestore]))
1072
+ wait30_seconds = time.index.Sleep("wait_30_seconds", create_duration=30s,
1073
+ opts = pulumi.ResourceOptions(depends_on=[viewer]))
1074
+ sample_table = gcp.bigquery.Table("sample_table",
1075
+ deletion_protection=False,
1076
+ dataset_id=sample_dataset.dataset_id,
1077
+ table_id="example_cross_project_featureview",
1078
+ schema=\"\"\"[
1079
+ {
1080
+ "name": "feature_id",
1081
+ "type": "STRING",
1082
+ "mode": "NULLABLE"
1083
+ },
1084
+ {
1085
+ "name": "example_cross_project_featureview",
1086
+ "type": "STRING",
1087
+ "mode": "NULLABLE"
1088
+ },
1089
+ {
1090
+ "name": "feature_timestamp",
1091
+ "type": "TIMESTAMP",
1092
+ "mode": "NULLABLE"
1093
+ }
1094
+ ]
1095
+ \"\"\")
1096
+ sample_feature_group = gcp.vertex.AiFeatureGroup("sample_feature_group",
1097
+ name="example_cross_project_featureview",
1098
+ description="A sample feature group",
1099
+ region="us-central1",
1100
+ labels={
1101
+ "label-one": "value-one",
1102
+ },
1103
+ big_query={
1104
+ "bigQuerySource": {
1105
+ "inputUri": pulumi.Output.all(sample_table.project, sample_table.dataset_id, sample_table.table_id).apply(lambda project, dataset_id, table_id: f"bq://{project}.{dataset_id}.{table_id}"),
1106
+ },
1107
+ "entityIdColumns": ["feature_id"],
1108
+ })
1109
+ sample_feature = gcp.vertex.AiFeatureGroupFeature("sample_feature",
1110
+ name="example_cross_project_featureview",
1111
+ region="us-central1",
1112
+ feature_group=sample_feature_group.name,
1113
+ description="A sample feature",
1114
+ labels={
1115
+ "label-one": "value-one",
1116
+ })
1117
+ cross_project_featureview = gcp.vertex.AiFeatureOnlineStoreFeatureview("cross_project_featureview",
1118
+ name="example_cross_project_featureview",
1119
+ project=project.project_id,
1120
+ region="us-central1",
1121
+ feature_online_store=featureonlinestore.name,
1122
+ sync_config={
1123
+ "cron": "0 0 * * *",
1124
+ },
1125
+ feature_registry_source={
1126
+ "featureGroups": [{
1127
+ "featureGroupId": sample_feature_group.name,
1128
+ "featureIds": [sample_feature.name],
1129
+ }],
1130
+ "projectNumber": test_project.number,
1131
+ },
1132
+ opts = pulumi.ResourceOptions(depends_on=[
1133
+ vertexai,
1134
+ wait30_seconds,
1135
+ ]))
1136
+ ```
915
1137
  ### Vertex Ai Featureonlinestore Featureview With Vector Search
916
1138
 
917
1139
  ```python
@@ -1336,6 +1336,8 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySource(dict):
1336
1336
  suggest = None
1337
1337
  if key == "featureGroups":
1338
1338
  suggest = "feature_groups"
1339
+ elif key == "projectNumber":
1340
+ suggest = "project_number"
1339
1341
 
1340
1342
  if suggest:
1341
1343
  pulumi.log.warn(f"Key '{key}' not found in AiFeatureOnlineStoreFeatureviewFeatureRegistrySource. Access the value via the '{suggest}' property getter instead.")
@@ -1349,12 +1351,16 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySource(dict):
1349
1351
  return super().get(key, default)
1350
1352
 
1351
1353
  def __init__(__self__, *,
1352
- feature_groups: Sequence['outputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroup']):
1354
+ feature_groups: Sequence['outputs.AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroup'],
1355
+ project_number: Optional[str] = None):
1353
1356
  """
1354
1357
  :param Sequence['AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroupArgs'] feature_groups: List of features that need to be synced to Online Store.
1355
1358
  Structure is documented below.
1359
+ :param str project_number: The project number of the parent project of the feature Groups.
1356
1360
  """
1357
1361
  pulumi.set(__self__, "feature_groups", feature_groups)
1362
+ if project_number is not None:
1363
+ pulumi.set(__self__, "project_number", project_number)
1358
1364
 
1359
1365
  @property
1360
1366
  @pulumi.getter(name="featureGroups")
@@ -1365,6 +1371,14 @@ class AiFeatureOnlineStoreFeatureviewFeatureRegistrySource(dict):
1365
1371
  """
1366
1372
  return pulumi.get(self, "feature_groups")
1367
1373
 
1374
+ @property
1375
+ @pulumi.getter(name="projectNumber")
1376
+ def project_number(self) -> Optional[str]:
1377
+ """
1378
+ The project number of the parent project of the feature Groups.
1379
+ """
1380
+ return pulumi.get(self, "project_number")
1381
+
1368
1382
 
1369
1383
  @pulumi.output_type
1370
1384
  class AiFeatureOnlineStoreFeatureviewFeatureRegistrySourceFeatureGroup(dict):
@@ -809,6 +809,14 @@ if not MYPY:
809
809
  """
810
810
  Network tags to add to the Compute Engine machines backing the Workstations.
811
811
  """
812
+ vm_tags: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
813
+ """
814
+ Resource manager tags to be bound to the VM instances backing the Workstations.
815
+ Tag keys and values have the same definition as
816
+ https://cloud.google.com/resource-manager/docs/tags/tags-overview
817
+ Keys must be in the format `tagKeys/{tag_key_id}`, and
818
+ values are in the format `tagValues/456`.
819
+ """
812
820
  elif False:
813
821
  WorkstationConfigHostGceInstanceArgsDict: TypeAlias = Mapping[str, Any]
814
822
 
@@ -827,7 +835,8 @@ class WorkstationConfigHostGceInstanceArgs:
827
835
  service_account: Optional[pulumi.Input[str]] = None,
828
836
  service_account_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
829
837
  shielded_instance_config: Optional[pulumi.Input['WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs']] = None,
830
- tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
838
+ tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
839
+ vm_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
831
840
  """
832
841
  :param pulumi.Input[Sequence[pulumi.Input['WorkstationConfigHostGceInstanceAcceleratorArgs']]] accelerators: An accelerator card attached to the instance.
833
842
  Structure is documented below.
@@ -847,6 +856,11 @@ class WorkstationConfigHostGceInstanceArgs:
847
856
  :param pulumi.Input['WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs'] shielded_instance_config: A set of Compute Engine Shielded instance options.
848
857
  Structure is documented below.
849
858
  :param pulumi.Input[Sequence[pulumi.Input[str]]] tags: Network tags to add to the Compute Engine machines backing the Workstations.
859
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] vm_tags: Resource manager tags to be bound to the VM instances backing the Workstations.
860
+ Tag keys and values have the same definition as
861
+ https://cloud.google.com/resource-manager/docs/tags/tags-overview
862
+ Keys must be in the format `tagKeys/{tag_key_id}`, and
863
+ values are in the format `tagValues/456`.
850
864
  """
851
865
  if accelerators is not None:
852
866
  pulumi.set(__self__, "accelerators", accelerators)
@@ -874,6 +888,8 @@ class WorkstationConfigHostGceInstanceArgs:
874
888
  pulumi.set(__self__, "shielded_instance_config", shielded_instance_config)
875
889
  if tags is not None:
876
890
  pulumi.set(__self__, "tags", tags)
891
+ if vm_tags is not None:
892
+ pulumi.set(__self__, "vm_tags", vm_tags)
877
893
 
878
894
  @property
879
895
  @pulumi.getter
@@ -1036,6 +1052,22 @@ class WorkstationConfigHostGceInstanceArgs:
1036
1052
  def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1037
1053
  pulumi.set(self, "tags", value)
1038
1054
 
1055
+ @property
1056
+ @pulumi.getter(name="vmTags")
1057
+ def vm_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
1058
+ """
1059
+ Resource manager tags to be bound to the VM instances backing the Workstations.
1060
+ Tag keys and values have the same definition as
1061
+ https://cloud.google.com/resource-manager/docs/tags/tags-overview
1062
+ Keys must be in the format `tagKeys/{tag_key_id}`, and
1063
+ values are in the format `tagValues/456`.
1064
+ """
1065
+ return pulumi.get(self, "vm_tags")
1066
+
1067
+ @vm_tags.setter
1068
+ def vm_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
1069
+ pulumi.set(self, "vm_tags", value)
1070
+
1039
1071
 
1040
1072
  if not MYPY:
1041
1073
  class WorkstationConfigHostGceInstanceAcceleratorArgsDict(TypedDict):
@@ -600,6 +600,8 @@ class WorkstationConfigHostGceInstance(dict):
600
600
  suggest = "service_account_scopes"
601
601
  elif key == "shieldedInstanceConfig":
602
602
  suggest = "shielded_instance_config"
603
+ elif key == "vmTags":
604
+ suggest = "vm_tags"
603
605
 
604
606
  if suggest:
605
607
  pulumi.log.warn(f"Key '{key}' not found in WorkstationConfigHostGceInstance. Access the value via the '{suggest}' property getter instead.")
@@ -625,7 +627,8 @@ class WorkstationConfigHostGceInstance(dict):
625
627
  service_account: Optional[str] = None,
626
628
  service_account_scopes: Optional[Sequence[str]] = None,
627
629
  shielded_instance_config: Optional['outputs.WorkstationConfigHostGceInstanceShieldedInstanceConfig'] = None,
628
- tags: Optional[Sequence[str]] = None):
630
+ tags: Optional[Sequence[str]] = None,
631
+ vm_tags: Optional[Mapping[str, str]] = None):
629
632
  """
630
633
  :param Sequence['WorkstationConfigHostGceInstanceAcceleratorArgs'] accelerators: An accelerator card attached to the instance.
631
634
  Structure is documented below.
@@ -645,6 +648,11 @@ class WorkstationConfigHostGceInstance(dict):
645
648
  :param 'WorkstationConfigHostGceInstanceShieldedInstanceConfigArgs' shielded_instance_config: A set of Compute Engine Shielded instance options.
646
649
  Structure is documented below.
647
650
  :param Sequence[str] tags: Network tags to add to the Compute Engine machines backing the Workstations.
651
+ :param Mapping[str, str] vm_tags: Resource manager tags to be bound to the VM instances backing the Workstations.
652
+ Tag keys and values have the same definition as
653
+ https://cloud.google.com/resource-manager/docs/tags/tags-overview
654
+ Keys must be in the format `tagKeys/{tag_key_id}`, and
655
+ values are in the format `tagValues/456`.
648
656
  """
649
657
  if accelerators is not None:
650
658
  pulumi.set(__self__, "accelerators", accelerators)
@@ -672,6 +680,8 @@ class WorkstationConfigHostGceInstance(dict):
672
680
  pulumi.set(__self__, "shielded_instance_config", shielded_instance_config)
673
681
  if tags is not None:
674
682
  pulumi.set(__self__, "tags", tags)
683
+ if vm_tags is not None:
684
+ pulumi.set(__self__, "vm_tags", vm_tags)
675
685
 
676
686
  @property
677
687
  @pulumi.getter
@@ -782,6 +792,18 @@ class WorkstationConfigHostGceInstance(dict):
782
792
  """
783
793
  return pulumi.get(self, "tags")
784
794
 
795
+ @property
796
+ @pulumi.getter(name="vmTags")
797
+ def vm_tags(self) -> Optional[Mapping[str, str]]:
798
+ """
799
+ Resource manager tags to be bound to the VM instances backing the Workstations.
800
+ Tag keys and values have the same definition as
801
+ https://cloud.google.com/resource-manager/docs/tags/tags-overview
802
+ Keys must be in the format `tagKeys/{tag_key_id}`, and
803
+ values are in the format `tagValues/456`.
804
+ """
805
+ return pulumi.get(self, "vm_tags")
806
+
785
807
 
786
808
  @pulumi.output_type
787
809
  class WorkstationConfigHostGceInstanceAccelerator(dict):
@@ -866,6 +866,12 @@ class WorkstationConfig(pulumi.CustomResource):
866
866
  import pulumi
867
867
  import pulumi_gcp as gcp
868
868
 
869
+ tag_key1 = gcp.tags.TagKey("tag_key1",
870
+ parent="organizations/123456789",
871
+ short_name="keyname")
872
+ tag_value1 = gcp.tags.TagValue("tag_value1",
873
+ parent=tag_key1.name.apply(lambda name: f"tagKeys/{name}"),
874
+ short_name="valuename")
869
875
  default = gcp.compute.Network("default",
870
876
  name="workstation-cluster",
871
877
  auto_create_subnetworks=False)
@@ -907,6 +913,9 @@ class WorkstationConfig(pulumi.CustomResource):
907
913
  "bootDiskSizeGb": 35,
908
914
  "disablePublicIpAddresses": True,
909
915
  "disableSsh": False,
916
+ "vmTags": pulumi.Output.all(tag_key1.name, tag_value1.name).apply(lambda tagKey1Name, tagValue1Name: {
917
+ f"tagKeys/{tag_key1_name}": f"tagValues/{tag_value1_name}",
918
+ }),
910
919
  },
911
920
  })
912
921
  ```
@@ -1316,6 +1325,12 @@ class WorkstationConfig(pulumi.CustomResource):
1316
1325
  import pulumi
1317
1326
  import pulumi_gcp as gcp
1318
1327
 
1328
+ tag_key1 = gcp.tags.TagKey("tag_key1",
1329
+ parent="organizations/123456789",
1330
+ short_name="keyname")
1331
+ tag_value1 = gcp.tags.TagValue("tag_value1",
1332
+ parent=tag_key1.name.apply(lambda name: f"tagKeys/{name}"),
1333
+ short_name="valuename")
1319
1334
  default = gcp.compute.Network("default",
1320
1335
  name="workstation-cluster",
1321
1336
  auto_create_subnetworks=False)
@@ -1357,6 +1372,9 @@ class WorkstationConfig(pulumi.CustomResource):
1357
1372
  "bootDiskSizeGb": 35,
1358
1373
  "disablePublicIpAddresses": True,
1359
1374
  "disableSsh": False,
1375
+ "vmTags": pulumi.Output.all(tag_key1.name, tag_value1.name).apply(lambda tagKey1Name, tagValue1Name: {
1376
+ f"tagKeys/{tag_key1_name}": f"tagValues/{tag_value1_name}",
1377
+ }),
1360
1378
  },
1361
1379
  })
1362
1380
  ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pulumi_gcp
3
- Version: 7.31.0a1720850808
3
+ Version: 7.31.0a1721039192
4
4
  Summary: A Pulumi package for creating and managing Google Cloud Platform resources.
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.io