pulumi-gcp 8.36.0a1750484065__py3-none-any.whl → 8.37.0__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 (117) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +26 -0
  3. pulumi_gcp/alloydb/outputs.py +34 -1
  4. pulumi_gcp/apihub/__init__.py +2 -0
  5. pulumi_gcp/apihub/_inputs.py +1658 -0
  6. pulumi_gcp/apihub/outputs.py +1374 -0
  7. pulumi_gcp/apihub/plugin.py +1146 -0
  8. pulumi_gcp/apihub/plugin_instance.py +808 -0
  9. pulumi_gcp/bigquery/table.py +16 -12
  10. pulumi_gcp/bigqueryanalyticshub/_inputs.py +56 -6
  11. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +73 -0
  12. pulumi_gcp/bigqueryanalyticshub/listing.py +201 -48
  13. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +28 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +50 -4
  15. pulumi_gcp/bigtable/table.py +82 -0
  16. pulumi_gcp/cloudidentity/group_membership.py +47 -0
  17. pulumi_gcp/cloudidentity/outputs.py +11 -0
  18. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +64 -8
  19. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  20. pulumi_gcp/cloudrunv2/job.py +44 -0
  21. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  22. pulumi_gcp/cloudrunv2/service.py +0 -2
  23. pulumi_gcp/cloudrunv2/worker_pool.py +18 -20
  24. pulumi_gcp/compute/__init__.py +1 -0
  25. pulumi_gcp/compute/_inputs.py +787 -18
  26. pulumi_gcp/compute/disk.py +35 -28
  27. pulumi_gcp/compute/firewall_policy_rule.py +207 -0
  28. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  29. pulumi_gcp/compute/get_region_disk.py +12 -1
  30. pulumi_gcp/compute/instance.py +2 -2
  31. pulumi_gcp/compute/instance_group_manager.py +165 -14
  32. pulumi_gcp/compute/instance_template.py +2 -2
  33. pulumi_gcp/compute/interconnect.py +43 -11
  34. pulumi_gcp/compute/network.py +56 -0
  35. pulumi_gcp/compute/network_firewall_policy.py +68 -0
  36. pulumi_gcp/compute/network_firewall_policy_with_rules.py +61 -0
  37. pulumi_gcp/compute/node_template.py +21 -0
  38. pulumi_gcp/compute/outputs.py +620 -12
  39. pulumi_gcp/compute/region_disk.py +114 -0
  40. pulumi_gcp/compute/region_network_firewall_policy.py +90 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +109 -0
  42. pulumi_gcp/compute/service_attachment.py +76 -8
  43. pulumi_gcp/compute/wire_group.py +751 -0
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/contactcenterinsights/__init__.py +9 -0
  47. pulumi_gcp/contactcenterinsights/view.py +526 -0
  48. pulumi_gcp/container/_inputs.py +207 -28
  49. pulumi_gcp/container/cluster.py +54 -0
  50. pulumi_gcp/container/get_cluster.py +12 -1
  51. pulumi_gcp/container/get_engine_versions.py +15 -1
  52. pulumi_gcp/container/node_pool.py +14 -0
  53. pulumi_gcp/container/outputs.py +295 -21
  54. pulumi_gcp/dataplex/_inputs.py +431 -6
  55. pulumi_gcp/dataplex/datascan.py +251 -0
  56. pulumi_gcp/dataplex/entry_type.py +2 -2
  57. pulumi_gcp/dataplex/glossary_category.py +8 -8
  58. pulumi_gcp/dataplex/glossary_term.py +8 -8
  59. pulumi_gcp/dataplex/outputs.py +353 -4
  60. pulumi_gcp/dataplex/task.py +16 -16
  61. pulumi_gcp/dataproc/__init__.py +1 -0
  62. pulumi_gcp/dataproc/_inputs.py +486 -0
  63. pulumi_gcp/dataproc/batch.py +10 -10
  64. pulumi_gcp/dataproc/outputs.py +407 -0
  65. pulumi_gcp/dataproc/session_template.py +1084 -0
  66. pulumi_gcp/diagflow/__init__.py +2 -0
  67. pulumi_gcp/diagflow/_inputs.py +479 -0
  68. pulumi_gcp/diagflow/cx_generative_settings.py +625 -0
  69. pulumi_gcp/diagflow/cx_tool.py +2 -2
  70. pulumi_gcp/diagflow/encryption_spec.py +382 -0
  71. pulumi_gcp/diagflow/outputs.py +416 -0
  72. pulumi_gcp/dns/record_set.py +4 -2
  73. pulumi_gcp/firestore/database.py +0 -9
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gkehub/membership_binding.py +6 -6
  76. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  77. pulumi_gcp/gkehub/namespace.py +4 -4
  78. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  79. pulumi_gcp/iam/_inputs.py +36 -0
  80. pulumi_gcp/iam/outputs.py +38 -0
  81. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +88 -2
  82. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  83. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  84. pulumi_gcp/kms/autokey_config.py +28 -0
  85. pulumi_gcp/kms/get_autokey_config.py +12 -1
  86. pulumi_gcp/lustre/get_instance.py +12 -1
  87. pulumi_gcp/lustre/instance.py +143 -86
  88. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  89. pulumi_gcp/managedkafka/connector.py +4 -4
  90. pulumi_gcp/memorystore/get_instance.py +12 -1
  91. pulumi_gcp/memorystore/instance.py +49 -0
  92. pulumi_gcp/monitoring/metric_descriptor.py +55 -57
  93. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  94. pulumi_gcp/notebooks/instance.py +8 -8
  95. pulumi_gcp/orgpolicy/policy.py +2 -2
  96. pulumi_gcp/provider.py +20 -0
  97. pulumi_gcp/pubsub/subscription.py +6 -6
  98. pulumi_gcp/pulumi-plugin.json +1 -1
  99. pulumi_gcp/redis/get_instance.py +12 -1
  100. pulumi_gcp/redis/instance.py +44 -0
  101. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  102. pulumi_gcp/secretmanager/outputs.py +7 -0
  103. pulumi_gcp/secretmanager/regional_secret.py +38 -2
  104. pulumi_gcp/spanner/_inputs.py +24 -1
  105. pulumi_gcp/spanner/outputs.py +17 -1
  106. pulumi_gcp/storage/_inputs.py +43 -3
  107. pulumi_gcp/storage/bucket_object.py +56 -0
  108. pulumi_gcp/storage/get_bucket_object.py +12 -1
  109. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  110. pulumi_gcp/storage/outputs.py +53 -3
  111. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  112. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  113. pulumi_gcp/workbench/instance.py +2 -0
  114. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/METADATA +2 -2
  115. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/RECORD +117 -109
  116. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/WHEEL +0 -0
  117. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/top_level.txt +0 -0
@@ -33,6 +33,7 @@ class InstanceGroupManagerArgs:
33
33
  named_ports: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerNamedPortArgs']]]] = None,
34
34
  params: Optional[pulumi.Input['InstanceGroupManagerParamsArgs']] = None,
35
35
  project: Optional[pulumi.Input[builtins.str]] = None,
36
+ resource_policies: Optional[pulumi.Input['InstanceGroupManagerResourcePoliciesArgs']] = None,
36
37
  standby_policy: Optional[pulumi.Input['InstanceGroupManagerStandbyPolicyArgs']] = None,
37
38
  stateful_disks: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerStatefulDiskArgs']]]] = None,
38
39
  stateful_external_ips: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerStatefulExternalIpArgs']]]] = None,
@@ -77,10 +78,11 @@ class InstanceGroupManagerArgs:
77
78
  :param pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerNamedPortArgs']]] named_ports: The named port configuration. See the section below
78
79
  for details on configuration.
79
80
  :param pulumi.Input['InstanceGroupManagerParamsArgs'] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert).
80
-
81
- - - -
82
81
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
83
82
  is not provided, the provider project is used.
83
+ :param pulumi.Input['InstanceGroupManagerResourcePoliciesArgs'] resource_policies: Resource policies for this managed instance group. Structure is documented below.
84
+
85
+ - - -
84
86
  :param pulumi.Input['InstanceGroupManagerStandbyPolicyArgs'] standby_policy: The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/suspended-and-stopped-vms-in-mig).
85
87
  :param pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerStatefulDiskArgs']]] stateful_disks: Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-disks-in-migs).
86
88
  :param pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerStatefulExternalIpArgs']]] stateful_external_ips: External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
@@ -125,6 +127,8 @@ class InstanceGroupManagerArgs:
125
127
  pulumi.set(__self__, "params", params)
126
128
  if project is not None:
127
129
  pulumi.set(__self__, "project", project)
130
+ if resource_policies is not None:
131
+ pulumi.set(__self__, "resource_policies", resource_policies)
128
132
  if standby_policy is not None:
129
133
  pulumi.set(__self__, "standby_policy", standby_policy)
130
134
  if stateful_disks is not None:
@@ -283,8 +287,6 @@ class InstanceGroupManagerArgs:
283
287
  def params(self) -> Optional[pulumi.Input['InstanceGroupManagerParamsArgs']]:
284
288
  """
285
289
  Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert).
286
-
287
- - - -
288
290
  """
289
291
  return pulumi.get(self, "params")
290
292
 
@@ -305,6 +307,20 @@ class InstanceGroupManagerArgs:
305
307
  def project(self, value: Optional[pulumi.Input[builtins.str]]):
306
308
  pulumi.set(self, "project", value)
307
309
 
310
+ @property
311
+ @pulumi.getter(name="resourcePolicies")
312
+ def resource_policies(self) -> Optional[pulumi.Input['InstanceGroupManagerResourcePoliciesArgs']]:
313
+ """
314
+ Resource policies for this managed instance group. Structure is documented below.
315
+
316
+ - - -
317
+ """
318
+ return pulumi.get(self, "resource_policies")
319
+
320
+ @resource_policies.setter
321
+ def resource_policies(self, value: Optional[pulumi.Input['InstanceGroupManagerResourcePoliciesArgs']]):
322
+ pulumi.set(self, "resource_policies", value)
323
+
308
324
  @property
309
325
  @pulumi.getter(name="standbyPolicy")
310
326
  def standby_policy(self) -> Optional[pulumi.Input['InstanceGroupManagerStandbyPolicyArgs']]:
@@ -479,6 +495,7 @@ class _InstanceGroupManagerState:
479
495
  operation: Optional[pulumi.Input[builtins.str]] = None,
480
496
  params: Optional[pulumi.Input['InstanceGroupManagerParamsArgs']] = None,
481
497
  project: Optional[pulumi.Input[builtins.str]] = None,
498
+ resource_policies: Optional[pulumi.Input['InstanceGroupManagerResourcePoliciesArgs']] = None,
482
499
  self_link: Optional[pulumi.Input[builtins.str]] = None,
483
500
  standby_policy: Optional[pulumi.Input['InstanceGroupManagerStandbyPolicyArgs']] = None,
484
501
  stateful_disks: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerStatefulDiskArgs']]]] = None,
@@ -527,10 +544,11 @@ class _InstanceGroupManagerState:
527
544
  :param pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerNamedPortArgs']]] named_ports: The named port configuration. See the section below
528
545
  for details on configuration.
529
546
  :param pulumi.Input['InstanceGroupManagerParamsArgs'] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert).
530
-
531
- - - -
532
547
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
533
548
  is not provided, the provider project is used.
549
+ :param pulumi.Input['InstanceGroupManagerResourcePoliciesArgs'] resource_policies: Resource policies for this managed instance group. Structure is documented below.
550
+
551
+ - - -
534
552
  :param pulumi.Input[builtins.str] self_link: The URL of the created resource.
535
553
  :param pulumi.Input['InstanceGroupManagerStandbyPolicyArgs'] standby_policy: The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/suspended-and-stopped-vms-in-mig).
536
554
  :param pulumi.Input[Sequence[pulumi.Input['InstanceGroupManagerStatefulDiskArgs']]] stateful_disks: Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-disks-in-migs).
@@ -590,6 +608,8 @@ class _InstanceGroupManagerState:
590
608
  pulumi.set(__self__, "params", params)
591
609
  if project is not None:
592
610
  pulumi.set(__self__, "project", project)
611
+ if resource_policies is not None:
612
+ pulumi.set(__self__, "resource_policies", resource_policies)
593
613
  if self_link is not None:
594
614
  pulumi.set(__self__, "self_link", self_link)
595
615
  if standby_policy is not None:
@@ -797,8 +817,6 @@ class _InstanceGroupManagerState:
797
817
  def params(self) -> Optional[pulumi.Input['InstanceGroupManagerParamsArgs']]:
798
818
  """
799
819
  Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert).
800
-
801
- - - -
802
820
  """
803
821
  return pulumi.get(self, "params")
804
822
 
@@ -819,6 +837,20 @@ class _InstanceGroupManagerState:
819
837
  def project(self, value: Optional[pulumi.Input[builtins.str]]):
820
838
  pulumi.set(self, "project", value)
821
839
 
840
+ @property
841
+ @pulumi.getter(name="resourcePolicies")
842
+ def resource_policies(self) -> Optional[pulumi.Input['InstanceGroupManagerResourcePoliciesArgs']]:
843
+ """
844
+ Resource policies for this managed instance group. Structure is documented below.
845
+
846
+ - - -
847
+ """
848
+ return pulumi.get(self, "resource_policies")
849
+
850
+ @resource_policies.setter
851
+ def resource_policies(self, value: Optional[pulumi.Input['InstanceGroupManagerResourcePoliciesArgs']]):
852
+ pulumi.set(self, "resource_policies", value)
853
+
822
854
  @property
823
855
  @pulumi.getter(name="selfLink")
824
856
  def self_link(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -1029,6 +1061,7 @@ class InstanceGroupManager(pulumi.CustomResource):
1029
1061
  named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerNamedPortArgs', 'InstanceGroupManagerNamedPortArgsDict']]]]] = None,
1030
1062
  params: Optional[pulumi.Input[Union['InstanceGroupManagerParamsArgs', 'InstanceGroupManagerParamsArgsDict']]] = None,
1031
1063
  project: Optional[pulumi.Input[builtins.str]] = None,
1064
+ resource_policies: Optional[pulumi.Input[Union['InstanceGroupManagerResourcePoliciesArgs', 'InstanceGroupManagerResourcePoliciesArgsDict']]] = None,
1032
1065
  standby_policy: Optional[pulumi.Input[Union['InstanceGroupManagerStandbyPolicyArgs', 'InstanceGroupManagerStandbyPolicyArgsDict']]] = None,
1033
1066
  stateful_disks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulDiskArgs', 'InstanceGroupManagerStatefulDiskArgsDict']]]]] = None,
1034
1067
  stateful_external_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulExternalIpArgs', 'InstanceGroupManagerStatefulExternalIpArgsDict']]]]] = None,
@@ -1143,6 +1176,58 @@ class InstanceGroupManager(pulumi.CustomResource):
1143
1176
  target_stopped_size=1)
1144
1177
  ```
1145
1178
 
1179
+ ### With Resource Policies (`Google` Provider)
1180
+ ```python
1181
+ import pulumi
1182
+ import pulumi_gcp as gcp
1183
+
1184
+ my_image = gcp.compute.get_image(family="debian-11",
1185
+ project="debian-cloud")
1186
+ workload_policy = gcp.compute.ResourcePolicy("workload_policy",
1187
+ name="tf-test-gce-policy",
1188
+ region="us-central1",
1189
+ workload_policy={
1190
+ "type": "HIGH_THROUGHPUT",
1191
+ })
1192
+ igm_basic = gcp.compute.InstanceTemplate("igm-basic",
1193
+ name="igm-instance-template",
1194
+ machine_type="a4-highgpu-8g",
1195
+ can_ip_forward=False,
1196
+ tags=[
1197
+ "foo",
1198
+ "bar",
1199
+ ],
1200
+ disks=[{
1201
+ "source_image": my_image.self_link,
1202
+ "auto_delete": True,
1203
+ "boot": True,
1204
+ "disk_type": "hyperdisk-balanced",
1205
+ }],
1206
+ network_interfaces=[{
1207
+ "network": "default",
1208
+ }],
1209
+ service_account={
1210
+ "scopes": [
1211
+ "userinfo-email",
1212
+ "compute-ro",
1213
+ "storage-ro",
1214
+ ],
1215
+ })
1216
+ igm_workload_policy = gcp.compute.InstanceGroupManager("igm-workload-policy",
1217
+ description="Terraform test instance group manager",
1218
+ name="igm-basic-workload-policy",
1219
+ versions=[{
1220
+ "name": "prod",
1221
+ "instance_template": igm_basic.self_link,
1222
+ }],
1223
+ base_instance_name="tf-test-igm-no-tp",
1224
+ zone="us-central1-b",
1225
+ target_size=0,
1226
+ resource_policies={
1227
+ "workload_policy": workload_policy.self_link,
1228
+ })
1229
+ ```
1230
+
1146
1231
  ## Import
1147
1232
 
1148
1233
  Instance group managers can be imported using any of these accepted formats:
@@ -1202,10 +1287,11 @@ class InstanceGroupManager(pulumi.CustomResource):
1202
1287
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerNamedPortArgs', 'InstanceGroupManagerNamedPortArgsDict']]]] named_ports: The named port configuration. See the section below
1203
1288
  for details on configuration.
1204
1289
  :param pulumi.Input[Union['InstanceGroupManagerParamsArgs', 'InstanceGroupManagerParamsArgsDict']] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert).
1205
-
1206
- - - -
1207
1290
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
1208
1291
  is not provided, the provider project is used.
1292
+ :param pulumi.Input[Union['InstanceGroupManagerResourcePoliciesArgs', 'InstanceGroupManagerResourcePoliciesArgsDict']] resource_policies: Resource policies for this managed instance group. Structure is documented below.
1293
+
1294
+ - - -
1209
1295
  :param pulumi.Input[Union['InstanceGroupManagerStandbyPolicyArgs', 'InstanceGroupManagerStandbyPolicyArgsDict']] standby_policy: The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/suspended-and-stopped-vms-in-mig).
1210
1296
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulDiskArgs', 'InstanceGroupManagerStatefulDiskArgsDict']]]] stateful_disks: Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-disks-in-migs).
1211
1297
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulExternalIpArgs', 'InstanceGroupManagerStatefulExternalIpArgsDict']]]] stateful_external_ips: External network IPs assigned to the instances that will be preserved on instance delete, update, etc. This map is keyed with the network interface name. Structure is documented below.
@@ -1339,6 +1425,58 @@ class InstanceGroupManager(pulumi.CustomResource):
1339
1425
  target_stopped_size=1)
1340
1426
  ```
1341
1427
 
1428
+ ### With Resource Policies (`Google` Provider)
1429
+ ```python
1430
+ import pulumi
1431
+ import pulumi_gcp as gcp
1432
+
1433
+ my_image = gcp.compute.get_image(family="debian-11",
1434
+ project="debian-cloud")
1435
+ workload_policy = gcp.compute.ResourcePolicy("workload_policy",
1436
+ name="tf-test-gce-policy",
1437
+ region="us-central1",
1438
+ workload_policy={
1439
+ "type": "HIGH_THROUGHPUT",
1440
+ })
1441
+ igm_basic = gcp.compute.InstanceTemplate("igm-basic",
1442
+ name="igm-instance-template",
1443
+ machine_type="a4-highgpu-8g",
1444
+ can_ip_forward=False,
1445
+ tags=[
1446
+ "foo",
1447
+ "bar",
1448
+ ],
1449
+ disks=[{
1450
+ "source_image": my_image.self_link,
1451
+ "auto_delete": True,
1452
+ "boot": True,
1453
+ "disk_type": "hyperdisk-balanced",
1454
+ }],
1455
+ network_interfaces=[{
1456
+ "network": "default",
1457
+ }],
1458
+ service_account={
1459
+ "scopes": [
1460
+ "userinfo-email",
1461
+ "compute-ro",
1462
+ "storage-ro",
1463
+ ],
1464
+ })
1465
+ igm_workload_policy = gcp.compute.InstanceGroupManager("igm-workload-policy",
1466
+ description="Terraform test instance group manager",
1467
+ name="igm-basic-workload-policy",
1468
+ versions=[{
1469
+ "name": "prod",
1470
+ "instance_template": igm_basic.self_link,
1471
+ }],
1472
+ base_instance_name="tf-test-igm-no-tp",
1473
+ zone="us-central1-b",
1474
+ target_size=0,
1475
+ resource_policies={
1476
+ "workload_policy": workload_policy.self_link,
1477
+ })
1478
+ ```
1479
+
1342
1480
  ## Import
1343
1481
 
1344
1482
  Instance group managers can be imported using any of these accepted formats:
@@ -1394,6 +1532,7 @@ class InstanceGroupManager(pulumi.CustomResource):
1394
1532
  named_ports: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerNamedPortArgs', 'InstanceGroupManagerNamedPortArgsDict']]]]] = None,
1395
1533
  params: Optional[pulumi.Input[Union['InstanceGroupManagerParamsArgs', 'InstanceGroupManagerParamsArgsDict']]] = None,
1396
1534
  project: Optional[pulumi.Input[builtins.str]] = None,
1535
+ resource_policies: Optional[pulumi.Input[Union['InstanceGroupManagerResourcePoliciesArgs', 'InstanceGroupManagerResourcePoliciesArgsDict']]] = None,
1397
1536
  standby_policy: Optional[pulumi.Input[Union['InstanceGroupManagerStandbyPolicyArgs', 'InstanceGroupManagerStandbyPolicyArgsDict']]] = None,
1398
1537
  stateful_disks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulDiskArgs', 'InstanceGroupManagerStatefulDiskArgsDict']]]]] = None,
1399
1538
  stateful_external_ips: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulExternalIpArgs', 'InstanceGroupManagerStatefulExternalIpArgsDict']]]]] = None,
@@ -1428,6 +1567,7 @@ class InstanceGroupManager(pulumi.CustomResource):
1428
1567
  __props__.__dict__["named_ports"] = named_ports
1429
1568
  __props__.__dict__["params"] = params
1430
1569
  __props__.__dict__["project"] = project
1570
+ __props__.__dict__["resource_policies"] = resource_policies
1431
1571
  __props__.__dict__["standby_policy"] = standby_policy
1432
1572
  __props__.__dict__["stateful_disks"] = stateful_disks
1433
1573
  __props__.__dict__["stateful_external_ips"] = stateful_external_ips
@@ -1475,6 +1615,7 @@ class InstanceGroupManager(pulumi.CustomResource):
1475
1615
  operation: Optional[pulumi.Input[builtins.str]] = None,
1476
1616
  params: Optional[pulumi.Input[Union['InstanceGroupManagerParamsArgs', 'InstanceGroupManagerParamsArgsDict']]] = None,
1477
1617
  project: Optional[pulumi.Input[builtins.str]] = None,
1618
+ resource_policies: Optional[pulumi.Input[Union['InstanceGroupManagerResourcePoliciesArgs', 'InstanceGroupManagerResourcePoliciesArgsDict']]] = None,
1478
1619
  self_link: Optional[pulumi.Input[builtins.str]] = None,
1479
1620
  standby_policy: Optional[pulumi.Input[Union['InstanceGroupManagerStandbyPolicyArgs', 'InstanceGroupManagerStandbyPolicyArgsDict']]] = None,
1480
1621
  stateful_disks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulDiskArgs', 'InstanceGroupManagerStatefulDiskArgsDict']]]]] = None,
@@ -1528,10 +1669,11 @@ class InstanceGroupManager(pulumi.CustomResource):
1528
1669
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerNamedPortArgs', 'InstanceGroupManagerNamedPortArgsDict']]]] named_ports: The named port configuration. See the section below
1529
1670
  for details on configuration.
1530
1671
  :param pulumi.Input[Union['InstanceGroupManagerParamsArgs', 'InstanceGroupManagerParamsArgsDict']] params: Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert).
1531
-
1532
- - - -
1533
1672
  :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs. If it
1534
1673
  is not provided, the provider project is used.
1674
+ :param pulumi.Input[Union['InstanceGroupManagerResourcePoliciesArgs', 'InstanceGroupManagerResourcePoliciesArgsDict']] resource_policies: Resource policies for this managed instance group. Structure is documented below.
1675
+
1676
+ - - -
1535
1677
  :param pulumi.Input[builtins.str] self_link: The URL of the created resource.
1536
1678
  :param pulumi.Input[Union['InstanceGroupManagerStandbyPolicyArgs', 'InstanceGroupManagerStandbyPolicyArgsDict']] standby_policy: The standby policy for stopped and suspended instances. Structure is documented below. For more information, see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/suspended-and-stopped-vms-in-mig).
1537
1679
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceGroupManagerStatefulDiskArgs', 'InstanceGroupManagerStatefulDiskArgsDict']]]] stateful_disks: Disks created on the instances that will be preserved on instance delete, update, etc. Structure is documented below. For more information see the [official documentation](https://cloud.google.com/compute/docs/instance-groups/configuring-stateful-disks-in-migs).
@@ -1580,6 +1722,7 @@ class InstanceGroupManager(pulumi.CustomResource):
1580
1722
  __props__.__dict__["operation"] = operation
1581
1723
  __props__.__dict__["params"] = params
1582
1724
  __props__.__dict__["project"] = project
1725
+ __props__.__dict__["resource_policies"] = resource_policies
1583
1726
  __props__.__dict__["self_link"] = self_link
1584
1727
  __props__.__dict__["standby_policy"] = standby_policy
1585
1728
  __props__.__dict__["stateful_disks"] = stateful_disks
@@ -1721,8 +1864,6 @@ class InstanceGroupManager(pulumi.CustomResource):
1721
1864
  def params(self) -> pulumi.Output[Optional['outputs.InstanceGroupManagerParams']]:
1722
1865
  """
1723
1866
  Input only additional params for instance group manager creation. Structure is documented below. For more information, see [API](https://cloud.google.com/compute/docs/reference/rest/beta/instanceGroupManagers/insert).
1724
-
1725
- - - -
1726
1867
  """
1727
1868
  return pulumi.get(self, "params")
1728
1869
 
@@ -1735,6 +1876,16 @@ class InstanceGroupManager(pulumi.CustomResource):
1735
1876
  """
1736
1877
  return pulumi.get(self, "project")
1737
1878
 
1879
+ @property
1880
+ @pulumi.getter(name="resourcePolicies")
1881
+ def resource_policies(self) -> pulumi.Output[Optional['outputs.InstanceGroupManagerResourcePolicies']]:
1882
+ """
1883
+ Resource policies for this managed instance group. Structure is documented below.
1884
+
1885
+ - - -
1886
+ """
1887
+ return pulumi.get(self, "resource_policies")
1888
+
1738
1889
  @property
1739
1890
  @pulumi.getter(name="selfLink")
1740
1891
  def self_link(self) -> pulumi.Output[builtins.str]:
@@ -1428,7 +1428,7 @@ class InstanceTemplate(pulumi.CustomResource):
1428
1428
  "confidential_instance_type": "SEV",
1429
1429
  },
1430
1430
  disks=[{
1431
- "source_image": "ubuntu-os-cloud/ubuntu-2004-lts",
1431
+ "source_image": "ubuntu-os-cloud/ubuntu-2204-lts",
1432
1432
  }],
1433
1433
  service_account={
1434
1434
  "email": default.email,
@@ -1760,7 +1760,7 @@ class InstanceTemplate(pulumi.CustomResource):
1760
1760
  "confidential_instance_type": "SEV",
1761
1761
  },
1762
1762
  disks=[{
1763
- "source_image": "ubuntu-os-cloud/ubuntu-2004-lts",
1763
+ "source_image": "ubuntu-os-cloud/ubuntu-2204-lts",
1764
1764
  }],
1765
1765
  service_account={
1766
1766
  "email": default.email,
@@ -92,7 +92,7 @@ class InterconnectArgs:
92
92
  specified, the default value is false, which allocates non-MACsec capable ports first if
93
93
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
94
94
  does not work with the API, and will be removed in an upcoming major version.
95
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
95
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
96
96
  """
97
97
  pulumi.set(__self__, "interconnect_type", interconnect_type)
98
98
  pulumi.set(__self__, "link_type", link_type)
@@ -332,7 +332,7 @@ class InterconnectArgs:
332
332
  specified, the default value is false, which allocates non-MACsec capable ports first if
333
333
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
334
334
  does not work with the API, and will be removed in an upcoming major version.
335
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
335
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
336
336
  """
337
337
  return pulumi.get(self, "requested_features")
338
338
 
@@ -374,7 +374,8 @@ class _InterconnectState:
374
374
  requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
375
375
  requested_link_count: Optional[pulumi.Input[builtins.int]] = None,
376
376
  satisfies_pzs: Optional[pulumi.Input[builtins.bool]] = None,
377
- state: Optional[pulumi.Input[builtins.str]] = None):
377
+ state: Optional[pulumi.Input[builtins.str]] = None,
378
+ wire_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
378
379
  """
379
380
  Input properties used for looking up and filtering Interconnect resources.
380
381
  :param pulumi.Input[builtins.bool] admin_enabled: Administrative status of the interconnect. When this is set to true, the Interconnect is
@@ -464,7 +465,7 @@ class _InterconnectState:
464
465
  specified, the default value is false, which allocates non-MACsec capable ports first if
465
466
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
466
467
  does not work with the API, and will be removed in an upcoming major version.
467
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
468
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
468
469
  :param pulumi.Input[builtins.int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
469
470
  :param pulumi.Input[builtins.bool] satisfies_pzs: Reserved for future use.
470
471
  :param pulumi.Input[builtins.str] state: (Output)
@@ -475,6 +476,8 @@ class _InterconnectState:
475
476
  - CANCELLED: The outage associated with this notification was cancelled before the
476
477
  outage was due to start.
477
478
  - COMPLETED: The outage associated with this notification is complete.
479
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] wire_groups: A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
480
+ deleted if this list is non-empty.
478
481
  """
479
482
  if admin_enabled is not None:
480
483
  pulumi.set(__self__, "admin_enabled", admin_enabled)
@@ -538,6 +541,8 @@ class _InterconnectState:
538
541
  pulumi.set(__self__, "satisfies_pzs", satisfies_pzs)
539
542
  if state is not None:
540
543
  pulumi.set(__self__, "state", state)
544
+ if wire_groups is not None:
545
+ pulumi.set(__self__, "wire_groups", wire_groups)
541
546
 
542
547
  @property
543
548
  @pulumi.getter(name="adminEnabled")
@@ -927,7 +932,7 @@ class _InterconnectState:
927
932
  specified, the default value is false, which allocates non-MACsec capable ports first if
928
933
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
929
934
  does not work with the API, and will be removed in an upcoming major version.
930
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
935
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
931
936
  """
932
937
  return pulumi.get(self, "requested_features")
933
938
 
@@ -978,6 +983,19 @@ class _InterconnectState:
978
983
  def state(self, value: Optional[pulumi.Input[builtins.str]]):
979
984
  pulumi.set(self, "state", value)
980
985
 
986
+ @property
987
+ @pulumi.getter(name="wireGroups")
988
+ def wire_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
989
+ """
990
+ A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
991
+ deleted if this list is non-empty.
992
+ """
993
+ return pulumi.get(self, "wire_groups")
994
+
995
+ @wire_groups.setter
996
+ def wire_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
997
+ pulumi.set(self, "wire_groups", value)
998
+
981
999
 
982
1000
  @pulumi.type_token("gcp:compute/interconnect:Interconnect")
983
1001
  class Interconnect(pulumi.CustomResource):
@@ -1025,7 +1043,7 @@ class Interconnect(pulumi.CustomResource):
1025
1043
  customer_name="example_customer",
1026
1044
  interconnect_type="DEDICATED",
1027
1045
  link_type="LINK_TYPE_ETHERNET_10G_LR",
1028
- location=f"https://www.googleapis.com/compute/v1/projects/{project.name}/global/interconnectLocations/iad-zone1-1",
1046
+ location=f"https://www.googleapis.com/compute/v1/{project.id}/global/interconnectLocations/iad-zone1-1",
1029
1047
  requested_link_count=1)
1030
1048
  ```
1031
1049
 
@@ -1107,7 +1125,7 @@ class Interconnect(pulumi.CustomResource):
1107
1125
  specified, the default value is false, which allocates non-MACsec capable ports first if
1108
1126
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
1109
1127
  does not work with the API, and will be removed in an upcoming major version.
1110
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
1128
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
1111
1129
  :param pulumi.Input[builtins.int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
1112
1130
  """
1113
1131
  ...
@@ -1140,7 +1158,7 @@ class Interconnect(pulumi.CustomResource):
1140
1158
  customer_name="example_customer",
1141
1159
  interconnect_type="DEDICATED",
1142
1160
  link_type="LINK_TYPE_ETHERNET_10G_LR",
1143
- location=f"https://www.googleapis.com/compute/v1/projects/{project.name}/global/interconnectLocations/iad-zone1-1",
1161
+ location=f"https://www.googleapis.com/compute/v1/{project.id}/global/interconnectLocations/iad-zone1-1",
1144
1162
  requested_link_count=1)
1145
1163
  ```
1146
1164
 
@@ -1246,6 +1264,7 @@ class Interconnect(pulumi.CustomResource):
1246
1264
  __props__.__dict__["pulumi_labels"] = None
1247
1265
  __props__.__dict__["satisfies_pzs"] = None
1248
1266
  __props__.__dict__["state"] = None
1267
+ __props__.__dict__["wire_groups"] = None
1249
1268
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
1250
1269
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
1251
1270
  super(Interconnect, __self__).__init__(
@@ -1288,7 +1307,8 @@ class Interconnect(pulumi.CustomResource):
1288
1307
  requested_features: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
1289
1308
  requested_link_count: Optional[pulumi.Input[builtins.int]] = None,
1290
1309
  satisfies_pzs: Optional[pulumi.Input[builtins.bool]] = None,
1291
- state: Optional[pulumi.Input[builtins.str]] = None) -> 'Interconnect':
1310
+ state: Optional[pulumi.Input[builtins.str]] = None,
1311
+ wire_groups: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None) -> 'Interconnect':
1292
1312
  """
1293
1313
  Get an existing Interconnect resource's state with the given name, id, and optional extra
1294
1314
  properties used to qualify the lookup.
@@ -1383,7 +1403,7 @@ class Interconnect(pulumi.CustomResource):
1383
1403
  specified, the default value is false, which allocates non-MACsec capable ports first if
1384
1404
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
1385
1405
  does not work with the API, and will be removed in an upcoming major version.
1386
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
1406
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
1387
1407
  :param pulumi.Input[builtins.int] requested_link_count: Target number of physical links in the link bundle, as requested by the customer.
1388
1408
  :param pulumi.Input[builtins.bool] satisfies_pzs: Reserved for future use.
1389
1409
  :param pulumi.Input[builtins.str] state: (Output)
@@ -1394,6 +1414,8 @@ class Interconnect(pulumi.CustomResource):
1394
1414
  - CANCELLED: The outage associated with this notification was cancelled before the
1395
1415
  outage was due to start.
1396
1416
  - COMPLETED: The outage associated with this notification is complete.
1417
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] wire_groups: A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
1418
+ deleted if this list is non-empty.
1397
1419
  """
1398
1420
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1399
1421
 
@@ -1430,6 +1452,7 @@ class Interconnect(pulumi.CustomResource):
1430
1452
  __props__.__dict__["requested_link_count"] = requested_link_count
1431
1453
  __props__.__dict__["satisfies_pzs"] = satisfies_pzs
1432
1454
  __props__.__dict__["state"] = state
1455
+ __props__.__dict__["wire_groups"] = wire_groups
1433
1456
  return Interconnect(resource_name, opts=opts, __props__=__props__)
1434
1457
 
1435
1458
  @property
@@ -1712,7 +1735,7 @@ class Interconnect(pulumi.CustomResource):
1712
1735
  specified, the default value is false, which allocates non-MACsec capable ports first if
1713
1736
  available). Note that MACSEC is still technically allowed for compatibility reasons, but it
1714
1737
  does not work with the API, and will be removed in an upcoming major version.
1715
- Each value may be one of: `MACSEC`, `IF_MACSEC`.
1738
+ Each value may be one of: `MACSEC`, `CROSS_SITE_NETWORK`, `IF_MACSEC`.
1716
1739
  """
1717
1740
  return pulumi.get(self, "requested_features")
1718
1741
 
@@ -1747,3 +1770,12 @@ class Interconnect(pulumi.CustomResource):
1747
1770
  """
1748
1771
  return pulumi.get(self, "state")
1749
1772
 
1773
+ @property
1774
+ @pulumi.getter(name="wireGroups")
1775
+ def wire_groups(self) -> pulumi.Output[Sequence[builtins.str]]:
1776
+ """
1777
+ A list of the URLs of all CrossSiteNetwork WireGroups configured to use this Interconnect. The Interconnect cannot be
1778
+ deleted if this list is non-empty.
1779
+ """
1780
+ return pulumi.get(self, "wire_groups")
1781
+