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
@@ -431,9 +431,9 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
431
431
  import pulumi
432
432
  import pulumi_gcp as gcp
433
433
 
434
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_80332")
434
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_76044")
435
435
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
436
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_13293",
436
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_69391",
437
437
  scope_id=scope.scope_id,
438
438
  user="test-email@gmail.com",
439
439
  role={
@@ -449,7 +449,7 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
449
449
  import pulumi
450
450
  import pulumi_gcp as gcp
451
451
 
452
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_40289")
452
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_8270")
453
453
  rbacrolebindingactuation = gcp.gkehub.Feature("rbacrolebindingactuation",
454
454
  name="rbacrolebindingactuation",
455
455
  location="global",
@@ -459,7 +459,7 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
459
459
  },
460
460
  })
461
461
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
462
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_33395",
462
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_41150",
463
463
  scope_id=scope.scope_id,
464
464
  user="test-email@gmail.com",
465
465
  role={
@@ -532,9 +532,9 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
532
532
  import pulumi
533
533
  import pulumi_gcp as gcp
534
534
 
535
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_80332")
535
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_76044")
536
536
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
537
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_13293",
537
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_69391",
538
538
  scope_id=scope.scope_id,
539
539
  user="test-email@gmail.com",
540
540
  role={
@@ -550,7 +550,7 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
550
550
  import pulumi
551
551
  import pulumi_gcp as gcp
552
552
 
553
- scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_40289")
553
+ scope = gcp.gkehub.Scope("scope", scope_id="tf-test-scope_8270")
554
554
  rbacrolebindingactuation = gcp.gkehub.Feature("rbacrolebindingactuation",
555
555
  name="rbacrolebindingactuation",
556
556
  location="global",
@@ -560,7 +560,7 @@ class ScopeRbacRoleBinding(pulumi.CustomResource):
560
560
  },
561
561
  })
562
562
  scope_rbac_role_binding = gcp.gkehub.ScopeRbacRoleBinding("scope_rbac_role_binding",
563
- scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_33395",
563
+ scope_rbac_role_binding_id="tf-test-scope-rbac-role-binding_41150",
564
564
  scope_id=scope.scope_id,
565
565
  user="test-email@gmail.com",
566
566
  role={
pulumi_gcp/iam/_inputs.py CHANGED
@@ -80,6 +80,8 @@ __all__ = [
80
80
  'WorkloadIdentityPoolInlineTrustConfigAdditionalTrustBundleArgsDict',
81
81
  'WorkloadIdentityPoolInlineTrustConfigAdditionalTrustBundleTrustAnchorArgs',
82
82
  'WorkloadIdentityPoolInlineTrustConfigAdditionalTrustBundleTrustAnchorArgsDict',
83
+ 'WorkloadIdentityPoolManagedIdentityAttestationRuleArgs',
84
+ 'WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict',
83
85
  'WorkloadIdentityPoolNamespaceOwnerServiceArgs',
84
86
  'WorkloadIdentityPoolNamespaceOwnerServiceArgsDict',
85
87
  'WorkloadIdentityPoolProviderAwsArgs',
@@ -2594,6 +2596,40 @@ class WorkloadIdentityPoolInlineTrustConfigAdditionalTrustBundleTrustAnchorArgs:
2594
2596
  pulumi.set(self, "pem_certificate", value)
2595
2597
 
2596
2598
 
2599
+ if not MYPY:
2600
+ class WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict(TypedDict):
2601
+ google_cloud_resource: pulumi.Input[builtins.str]
2602
+ """
2603
+ A single workload operating on Google Cloud. For example:
2604
+ `//compute.googleapis.com/projects/123/uid/zones/us-central1-a/instances/12345678`.
2605
+ """
2606
+ elif False:
2607
+ WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict: TypeAlias = Mapping[str, Any]
2608
+
2609
+ @pulumi.input_type
2610
+ class WorkloadIdentityPoolManagedIdentityAttestationRuleArgs:
2611
+ def __init__(__self__, *,
2612
+ google_cloud_resource: pulumi.Input[builtins.str]):
2613
+ """
2614
+ :param pulumi.Input[builtins.str] google_cloud_resource: A single workload operating on Google Cloud. For example:
2615
+ `//compute.googleapis.com/projects/123/uid/zones/us-central1-a/instances/12345678`.
2616
+ """
2617
+ pulumi.set(__self__, "google_cloud_resource", google_cloud_resource)
2618
+
2619
+ @property
2620
+ @pulumi.getter(name="googleCloudResource")
2621
+ def google_cloud_resource(self) -> pulumi.Input[builtins.str]:
2622
+ """
2623
+ A single workload operating on Google Cloud. For example:
2624
+ `//compute.googleapis.com/projects/123/uid/zones/us-central1-a/instances/12345678`.
2625
+ """
2626
+ return pulumi.get(self, "google_cloud_resource")
2627
+
2628
+ @google_cloud_resource.setter
2629
+ def google_cloud_resource(self, value: pulumi.Input[builtins.str]):
2630
+ pulumi.set(self, "google_cloud_resource", value)
2631
+
2632
+
2597
2633
  if not MYPY:
2598
2634
  class WorkloadIdentityPoolNamespaceOwnerServiceArgsDict(TypedDict):
2599
2635
  principal_subject: NotRequired[pulumi.Input[builtins.str]]
pulumi_gcp/iam/outputs.py CHANGED
@@ -49,6 +49,7 @@ __all__ = [
49
49
  'WorkloadIdentityPoolInlineTrustConfig',
50
50
  'WorkloadIdentityPoolInlineTrustConfigAdditionalTrustBundle',
51
51
  'WorkloadIdentityPoolInlineTrustConfigAdditionalTrustBundleTrustAnchor',
52
+ 'WorkloadIdentityPoolManagedIdentityAttestationRule',
52
53
  'WorkloadIdentityPoolNamespaceOwnerService',
53
54
  'WorkloadIdentityPoolProviderAws',
54
55
  'WorkloadIdentityPoolProviderOidc',
@@ -1968,6 +1969,43 @@ class WorkloadIdentityPoolInlineTrustConfigAdditionalTrustBundleTrustAnchor(dict
1968
1969
  return pulumi.get(self, "pem_certificate")
1969
1970
 
1970
1971
 
1972
+ @pulumi.output_type
1973
+ class WorkloadIdentityPoolManagedIdentityAttestationRule(dict):
1974
+ @staticmethod
1975
+ def __key_warning(key: str):
1976
+ suggest = None
1977
+ if key == "googleCloudResource":
1978
+ suggest = "google_cloud_resource"
1979
+
1980
+ if suggest:
1981
+ pulumi.log.warn(f"Key '{key}' not found in WorkloadIdentityPoolManagedIdentityAttestationRule. Access the value via the '{suggest}' property getter instead.")
1982
+
1983
+ def __getitem__(self, key: str) -> Any:
1984
+ WorkloadIdentityPoolManagedIdentityAttestationRule.__key_warning(key)
1985
+ return super().__getitem__(key)
1986
+
1987
+ def get(self, key: str, default = None) -> Any:
1988
+ WorkloadIdentityPoolManagedIdentityAttestationRule.__key_warning(key)
1989
+ return super().get(key, default)
1990
+
1991
+ def __init__(__self__, *,
1992
+ google_cloud_resource: builtins.str):
1993
+ """
1994
+ :param builtins.str google_cloud_resource: A single workload operating on Google Cloud. For example:
1995
+ `//compute.googleapis.com/projects/123/uid/zones/us-central1-a/instances/12345678`.
1996
+ """
1997
+ pulumi.set(__self__, "google_cloud_resource", google_cloud_resource)
1998
+
1999
+ @property
2000
+ @pulumi.getter(name="googleCloudResource")
2001
+ def google_cloud_resource(self) -> builtins.str:
2002
+ """
2003
+ A single workload operating on Google Cloud. For example:
2004
+ `//compute.googleapis.com/projects/123/uid/zones/us-central1-a/instances/12345678`.
2005
+ """
2006
+ return pulumi.get(self, "google_cloud_resource")
2007
+
2008
+
1971
2009
  @pulumi.output_type
1972
2010
  class WorkloadIdentityPoolNamespaceOwnerService(dict):
1973
2011
  @staticmethod
@@ -14,6 +14,8 @@ if sys.version_info >= (3, 11):
14
14
  else:
15
15
  from typing_extensions import NotRequired, TypedDict, TypeAlias
16
16
  from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
17
19
 
18
20
  __all__ = ['WorkloadIdentityPoolManagedIdentityArgs', 'WorkloadIdentityPoolManagedIdentity']
19
21
 
@@ -23,6 +25,7 @@ class WorkloadIdentityPoolManagedIdentityArgs:
23
25
  workload_identity_pool_id: pulumi.Input[builtins.str],
24
26
  workload_identity_pool_managed_identity_id: pulumi.Input[builtins.str],
25
27
  workload_identity_pool_namespace_id: pulumi.Input[builtins.str],
28
+ attestation_rules: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]]] = None,
26
29
  description: Optional[pulumi.Input[builtins.str]] = None,
27
30
  disabled: Optional[pulumi.Input[builtins.bool]] = None,
28
31
  project: Optional[pulumi.Input[builtins.str]] = None):
@@ -48,6 +51,10 @@ class WorkloadIdentityPoolManagedIdentityArgs:
48
51
  * end with an alphanumeric character
49
52
 
50
53
  The prefix `gcp-` will be reserved for future uses.
54
+ :param pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]] attestation_rules: Defines which workloads can receive an identity within a pool. When an AttestationRule is
55
+ defined under a managed identity, matching workloads may receive that identity. A maximum of
56
+ 50 AttestationRules can be set.
57
+ Structure is documented below.
51
58
  :param pulumi.Input[builtins.str] description: A description of the managed identity. Cannot exceed 256 characters.
52
59
  :param pulumi.Input[builtins.bool] disabled: Whether the managed identity is disabled. If disabled, credentials may no longer be issued for
53
60
  the identity, however existing credentials will still be accepted until they expire.
@@ -57,6 +64,8 @@ class WorkloadIdentityPoolManagedIdentityArgs:
57
64
  pulumi.set(__self__, "workload_identity_pool_id", workload_identity_pool_id)
58
65
  pulumi.set(__self__, "workload_identity_pool_managed_identity_id", workload_identity_pool_managed_identity_id)
59
66
  pulumi.set(__self__, "workload_identity_pool_namespace_id", workload_identity_pool_namespace_id)
67
+ if attestation_rules is not None:
68
+ pulumi.set(__self__, "attestation_rules", attestation_rules)
60
69
  if description is not None:
61
70
  pulumi.set(__self__, "description", description)
62
71
  if disabled is not None:
@@ -117,6 +126,21 @@ class WorkloadIdentityPoolManagedIdentityArgs:
117
126
  def workload_identity_pool_namespace_id(self, value: pulumi.Input[builtins.str]):
118
127
  pulumi.set(self, "workload_identity_pool_namespace_id", value)
119
128
 
129
+ @property
130
+ @pulumi.getter(name="attestationRules")
131
+ def attestation_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]]]:
132
+ """
133
+ Defines which workloads can receive an identity within a pool. When an AttestationRule is
134
+ defined under a managed identity, matching workloads may receive that identity. A maximum of
135
+ 50 AttestationRules can be set.
136
+ Structure is documented below.
137
+ """
138
+ return pulumi.get(self, "attestation_rules")
139
+
140
+ @attestation_rules.setter
141
+ def attestation_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]]]):
142
+ pulumi.set(self, "attestation_rules", value)
143
+
120
144
  @property
121
145
  @pulumi.getter
122
146
  def description(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -159,6 +183,7 @@ class WorkloadIdentityPoolManagedIdentityArgs:
159
183
  @pulumi.input_type
160
184
  class _WorkloadIdentityPoolManagedIdentityState:
161
185
  def __init__(__self__, *,
186
+ attestation_rules: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]]] = None,
162
187
  description: Optional[pulumi.Input[builtins.str]] = None,
163
188
  disabled: Optional[pulumi.Input[builtins.bool]] = None,
164
189
  name: Optional[pulumi.Input[builtins.str]] = None,
@@ -169,6 +194,10 @@ class _WorkloadIdentityPoolManagedIdentityState:
169
194
  workload_identity_pool_namespace_id: Optional[pulumi.Input[builtins.str]] = None):
170
195
  """
171
196
  Input properties used for looking up and filtering WorkloadIdentityPoolManagedIdentity resources.
197
+ :param pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]] attestation_rules: Defines which workloads can receive an identity within a pool. When an AttestationRule is
198
+ defined under a managed identity, matching workloads may receive that identity. A maximum of
199
+ 50 AttestationRules can be set.
200
+ Structure is documented below.
172
201
  :param pulumi.Input[builtins.str] description: A description of the managed identity. Cannot exceed 256 characters.
173
202
  :param pulumi.Input[builtins.bool] disabled: Whether the managed identity is disabled. If disabled, credentials may no longer be issued for
174
203
  the identity, however existing credentials will still be accepted until they expire.
@@ -203,6 +232,8 @@ class _WorkloadIdentityPoolManagedIdentityState:
203
232
 
204
233
  The prefix `gcp-` will be reserved for future uses.
205
234
  """
235
+ if attestation_rules is not None:
236
+ pulumi.set(__self__, "attestation_rules", attestation_rules)
206
237
  if description is not None:
207
238
  pulumi.set(__self__, "description", description)
208
239
  if disabled is not None:
@@ -220,6 +251,21 @@ class _WorkloadIdentityPoolManagedIdentityState:
220
251
  if workload_identity_pool_namespace_id is not None:
221
252
  pulumi.set(__self__, "workload_identity_pool_namespace_id", workload_identity_pool_namespace_id)
222
253
 
254
+ @property
255
+ @pulumi.getter(name="attestationRules")
256
+ def attestation_rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]]]:
257
+ """
258
+ Defines which workloads can receive an identity within a pool. When an AttestationRule is
259
+ defined under a managed identity, matching workloads may receive that identity. A maximum of
260
+ 50 AttestationRules can be set.
261
+ Structure is documented below.
262
+ """
263
+ return pulumi.get(self, "attestation_rules")
264
+
265
+ @attestation_rules.setter
266
+ def attestation_rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs']]]]):
267
+ pulumi.set(self, "attestation_rules", value)
268
+
223
269
  @property
224
270
  @pulumi.getter
225
271
  def description(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -348,6 +394,7 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
348
394
  def __init__(__self__,
349
395
  resource_name: str,
350
396
  opts: Optional[pulumi.ResourceOptions] = None,
397
+ attestation_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs', 'WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict']]]]] = None,
351
398
  description: Optional[pulumi.Input[builtins.str]] = None,
352
399
  disabled: Optional[pulumi.Input[builtins.bool]] = None,
353
400
  project: Optional[pulumi.Input[builtins.str]] = None,
@@ -392,7 +439,15 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
392
439
  workload_identity_pool_namespace_id=ns.workload_identity_pool_namespace_id,
393
440
  workload_identity_pool_managed_identity_id="example-managed-identity",
394
441
  description="Example Managed Identity in a Workload Identity Pool Namespace",
395
- disabled=True)
442
+ disabled=True,
443
+ attestation_rules=[
444
+ {
445
+ "google_cloud_resource": "//compute.googleapis.com/projects/1111111111111/uid/zones/us-central1-a/instances/12345678",
446
+ },
447
+ {
448
+ "google_cloud_resource": "//run.googleapis.com/projects/1111111111111/name/locations/us-east1/services/my-service",
449
+ },
450
+ ])
396
451
  ```
397
452
 
398
453
  ## Import
@@ -421,6 +476,10 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
421
476
 
422
477
  :param str resource_name: The name of the resource.
423
478
  :param pulumi.ResourceOptions opts: Options for the resource.
479
+ :param pulumi.Input[Sequence[pulumi.Input[Union['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs', 'WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict']]]] attestation_rules: Defines which workloads can receive an identity within a pool. When an AttestationRule is
480
+ defined under a managed identity, matching workloads may receive that identity. A maximum of
481
+ 50 AttestationRules can be set.
482
+ Structure is documented below.
424
483
  :param pulumi.Input[builtins.str] description: A description of the managed identity. Cannot exceed 256 characters.
425
484
  :param pulumi.Input[builtins.bool] disabled: Whether the managed identity is disabled. If disabled, credentials may no longer be issued for
426
485
  the identity, however existing credentials will still be accepted until they expire.
@@ -490,7 +549,15 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
490
549
  workload_identity_pool_namespace_id=ns.workload_identity_pool_namespace_id,
491
550
  workload_identity_pool_managed_identity_id="example-managed-identity",
492
551
  description="Example Managed Identity in a Workload Identity Pool Namespace",
493
- disabled=True)
552
+ disabled=True,
553
+ attestation_rules=[
554
+ {
555
+ "google_cloud_resource": "//compute.googleapis.com/projects/1111111111111/uid/zones/us-central1-a/instances/12345678",
556
+ },
557
+ {
558
+ "google_cloud_resource": "//run.googleapis.com/projects/1111111111111/name/locations/us-east1/services/my-service",
559
+ },
560
+ ])
494
561
  ```
495
562
 
496
563
  ## Import
@@ -532,6 +599,7 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
532
599
  def _internal_init(__self__,
533
600
  resource_name: str,
534
601
  opts: Optional[pulumi.ResourceOptions] = None,
602
+ attestation_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs', 'WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict']]]]] = None,
535
603
  description: Optional[pulumi.Input[builtins.str]] = None,
536
604
  disabled: Optional[pulumi.Input[builtins.bool]] = None,
537
605
  project: Optional[pulumi.Input[builtins.str]] = None,
@@ -547,6 +615,7 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
547
615
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
548
616
  __props__ = WorkloadIdentityPoolManagedIdentityArgs.__new__(WorkloadIdentityPoolManagedIdentityArgs)
549
617
 
618
+ __props__.__dict__["attestation_rules"] = attestation_rules
550
619
  __props__.__dict__["description"] = description
551
620
  __props__.__dict__["disabled"] = disabled
552
621
  __props__.__dict__["project"] = project
@@ -571,6 +640,7 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
571
640
  def get(resource_name: str,
572
641
  id: pulumi.Input[str],
573
642
  opts: Optional[pulumi.ResourceOptions] = None,
643
+ attestation_rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs', 'WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict']]]]] = None,
574
644
  description: Optional[pulumi.Input[builtins.str]] = None,
575
645
  disabled: Optional[pulumi.Input[builtins.bool]] = None,
576
646
  name: Optional[pulumi.Input[builtins.str]] = None,
@@ -586,6 +656,10 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
586
656
  :param str resource_name: The unique name of the resulting resource.
587
657
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
588
658
  :param pulumi.ResourceOptions opts: Options for the resource.
659
+ :param pulumi.Input[Sequence[pulumi.Input[Union['WorkloadIdentityPoolManagedIdentityAttestationRuleArgs', 'WorkloadIdentityPoolManagedIdentityAttestationRuleArgsDict']]]] attestation_rules: Defines which workloads can receive an identity within a pool. When an AttestationRule is
660
+ defined under a managed identity, matching workloads may receive that identity. A maximum of
661
+ 50 AttestationRules can be set.
662
+ Structure is documented below.
589
663
  :param pulumi.Input[builtins.str] description: A description of the managed identity. Cannot exceed 256 characters.
590
664
  :param pulumi.Input[builtins.bool] disabled: Whether the managed identity is disabled. If disabled, credentials may no longer be issued for
591
665
  the identity, however existing credentials will still be accepted until they expire.
@@ -624,6 +698,7 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
624
698
 
625
699
  __props__ = _WorkloadIdentityPoolManagedIdentityState.__new__(_WorkloadIdentityPoolManagedIdentityState)
626
700
 
701
+ __props__.__dict__["attestation_rules"] = attestation_rules
627
702
  __props__.__dict__["description"] = description
628
703
  __props__.__dict__["disabled"] = disabled
629
704
  __props__.__dict__["name"] = name
@@ -634,6 +709,17 @@ class WorkloadIdentityPoolManagedIdentity(pulumi.CustomResource):
634
709
  __props__.__dict__["workload_identity_pool_namespace_id"] = workload_identity_pool_namespace_id
635
710
  return WorkloadIdentityPoolManagedIdentity(resource_name, opts=opts, __props__=__props__)
636
711
 
712
+ @property
713
+ @pulumi.getter(name="attestationRules")
714
+ def attestation_rules(self) -> pulumi.Output[Optional[Sequence['outputs.WorkloadIdentityPoolManagedIdentityAttestationRule']]]:
715
+ """
716
+ Defines which workloads can receive an identity within a pool. When an AttestationRule is
717
+ defined under a managed identity, matching workloads may receive that identity. A maximum of
718
+ 50 AttestationRules can be set.
719
+ Structure is documented below.
720
+ """
721
+ return pulumi.get(self, "attestation_rules")
722
+
637
723
  @property
638
724
  @pulumi.getter
639
725
  def description(self) -> pulumi.Output[Optional[builtins.str]]:
@@ -255,7 +255,7 @@ class TunnelDestGroup(pulumi.CustomResource):
255
255
 
256
256
  dest_group = gcp.iap.TunnelDestGroup("dest_group",
257
257
  region="us-central1",
258
- group_name="testgroup_76044",
258
+ group_name="testgroup_89313",
259
259
  cidrs=[
260
260
  "10.1.0.0/16",
261
261
  "192.168.10.0/24",
@@ -341,7 +341,7 @@ class TunnelDestGroup(pulumi.CustomResource):
341
341
 
342
342
  dest_group = gcp.iap.TunnelDestGroup("dest_group",
343
343
  region="us-central1",
344
- group_name="testgroup_76044",
344
+ group_name="testgroup_89313",
345
345
  cidrs=[
346
346
  "10.1.0.0/16",
347
347
  "192.168.10.0/24",
@@ -380,8 +380,8 @@ class ManagedZone(pulumi.CustomResource):
380
380
  import pulumi_gcp as gcp
381
381
 
382
382
  target_project = gcp.organizations.Project("target_project",
383
- project_id="tf-test_69391",
384
- name="tf-test_8270",
383
+ project_id="tf-test_60646",
384
+ name="tf-test_9394",
385
385
  org_id="123456789",
386
386
  billing_account="000000-0000000-0000000-000000",
387
387
  deletion_policy="DELETE")
@@ -402,8 +402,8 @@ class ManagedZone(pulumi.CustomResource):
402
402
  auto_create_subnetworks=False,
403
403
  opts = pulumi.ResourceOptions(depends_on=[compute]))
404
404
  zone = gcp.dns.ManagedZone("zone",
405
- name="tf-test-dns_41150",
406
- dns_name="private_89313.example.com.",
405
+ name="tf-test-dns_11380",
406
+ dns_name="private_35305.example.com.",
407
407
  visibility="private",
408
408
  private_visibility_config={
409
409
  "networks": [{
@@ -491,8 +491,8 @@ class ManagedZone(pulumi.CustomResource):
491
491
  import pulumi_gcp as gcp
492
492
 
493
493
  target_project = gcp.organizations.Project("target_project",
494
- project_id="tf-test_69391",
495
- name="tf-test_8270",
494
+ project_id="tf-test_60646",
495
+ name="tf-test_9394",
496
496
  org_id="123456789",
497
497
  billing_account="000000-0000000-0000000-000000",
498
498
  deletion_policy="DELETE")
@@ -513,8 +513,8 @@ class ManagedZone(pulumi.CustomResource):
513
513
  auto_create_subnetworks=False,
514
514
  opts = pulumi.ResourceOptions(depends_on=[compute]))
515
515
  zone = gcp.dns.ManagedZone("zone",
516
- name="tf-test-dns_41150",
517
- dns_name="private_89313.example.com.",
516
+ name="tf-test-dns_11380",
517
+ dns_name="private_35305.example.com.",
518
518
  visibility="private",
519
519
  private_visibility_config={
520
520
  "networks": [{
@@ -69,10 +69,12 @@ class AutokeyConfigArgs:
69
69
  @pulumi.input_type
70
70
  class _AutokeyConfigState:
71
71
  def __init__(__self__, *,
72
+ etag: Optional[pulumi.Input[builtins.str]] = None,
72
73
  folder: Optional[pulumi.Input[builtins.str]] = None,
73
74
  key_project: Optional[pulumi.Input[builtins.str]] = None):
74
75
  """
75
76
  Input properties used for looking up and filtering AutokeyConfig resources.
77
+ :param pulumi.Input[builtins.str] etag: The etag of the AutokeyConfig for optimistic concurrency control.
76
78
  :param pulumi.Input[builtins.str] folder: The folder for which to retrieve config.
77
79
 
78
80
 
@@ -81,11 +83,25 @@ class _AutokeyConfigState:
81
83
  CryptoKey for any new KeyHandle the Developer creates. Should have the form
82
84
  `projects/<project_id_or_number>`.
83
85
  """
86
+ if etag is not None:
87
+ pulumi.set(__self__, "etag", etag)
84
88
  if folder is not None:
85
89
  pulumi.set(__self__, "folder", folder)
86
90
  if key_project is not None:
87
91
  pulumi.set(__self__, "key_project", key_project)
88
92
 
93
+ @property
94
+ @pulumi.getter
95
+ def etag(self) -> Optional[pulumi.Input[builtins.str]]:
96
+ """
97
+ The etag of the AutokeyConfig for optimistic concurrency control.
98
+ """
99
+ return pulumi.get(self, "etag")
100
+
101
+ @etag.setter
102
+ def etag(self, value: Optional[pulumi.Input[builtins.str]]):
103
+ pulumi.set(self, "etag", value)
104
+
89
105
  @property
90
106
  @pulumi.getter
91
107
  def folder(self) -> Optional[pulumi.Input[builtins.str]]:
@@ -327,6 +343,7 @@ class AutokeyConfig(pulumi.CustomResource):
327
343
  raise TypeError("Missing required property 'folder'")
328
344
  __props__.__dict__["folder"] = folder
329
345
  __props__.__dict__["key_project"] = key_project
346
+ __props__.__dict__["etag"] = None
330
347
  super(AutokeyConfig, __self__).__init__(
331
348
  'gcp:kms/autokeyConfig:AutokeyConfig',
332
349
  resource_name,
@@ -337,6 +354,7 @@ class AutokeyConfig(pulumi.CustomResource):
337
354
  def get(resource_name: str,
338
355
  id: pulumi.Input[str],
339
356
  opts: Optional[pulumi.ResourceOptions] = None,
357
+ etag: Optional[pulumi.Input[builtins.str]] = None,
340
358
  folder: Optional[pulumi.Input[builtins.str]] = None,
341
359
  key_project: Optional[pulumi.Input[builtins.str]] = None) -> 'AutokeyConfig':
342
360
  """
@@ -346,6 +364,7 @@ class AutokeyConfig(pulumi.CustomResource):
346
364
  :param str resource_name: The unique name of the resulting resource.
347
365
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
348
366
  :param pulumi.ResourceOptions opts: Options for the resource.
367
+ :param pulumi.Input[builtins.str] etag: The etag of the AutokeyConfig for optimistic concurrency control.
349
368
  :param pulumi.Input[builtins.str] folder: The folder for which to retrieve config.
350
369
 
351
370
 
@@ -358,10 +377,19 @@ class AutokeyConfig(pulumi.CustomResource):
358
377
 
359
378
  __props__ = _AutokeyConfigState.__new__(_AutokeyConfigState)
360
379
 
380
+ __props__.__dict__["etag"] = etag
361
381
  __props__.__dict__["folder"] = folder
362
382
  __props__.__dict__["key_project"] = key_project
363
383
  return AutokeyConfig(resource_name, opts=opts, __props__=__props__)
364
384
 
385
+ @property
386
+ @pulumi.getter
387
+ def etag(self) -> pulumi.Output[builtins.str]:
388
+ """
389
+ The etag of the AutokeyConfig for optimistic concurrency control.
390
+ """
391
+ return pulumi.get(self, "etag")
392
+
365
393
  @property
366
394
  @pulumi.getter
367
395
  def folder(self) -> pulumi.Output[builtins.str]:
@@ -27,7 +27,10 @@ class GetAutokeyConfigResult:
27
27
  """
28
28
  A collection of values returned by getAutokeyConfig.
29
29
  """
30
- def __init__(__self__, folder=None, id=None, key_project=None):
30
+ def __init__(__self__, etag=None, folder=None, id=None, key_project=None):
31
+ if etag and not isinstance(etag, str):
32
+ raise TypeError("Expected argument 'etag' to be a str")
33
+ pulumi.set(__self__, "etag", etag)
31
34
  if folder and not isinstance(folder, str):
32
35
  raise TypeError("Expected argument 'folder' to be a str")
33
36
  pulumi.set(__self__, "folder", folder)
@@ -38,6 +41,11 @@ class GetAutokeyConfigResult:
38
41
  raise TypeError("Expected argument 'key_project' to be a str")
39
42
  pulumi.set(__self__, "key_project", key_project)
40
43
 
44
+ @property
45
+ @pulumi.getter
46
+ def etag(self) -> builtins.str:
47
+ return pulumi.get(self, "etag")
48
+
41
49
  @property
42
50
  @pulumi.getter
43
51
  def folder(self) -> builtins.str:
@@ -66,6 +74,7 @@ class AwaitableGetAutokeyConfigResult(GetAutokeyConfigResult):
66
74
  if False:
67
75
  yield self
68
76
  return GetAutokeyConfigResult(
77
+ etag=self.etag,
69
78
  folder=self.folder,
70
79
  id=self.id,
71
80
  key_project=self.key_project)
@@ -93,6 +102,7 @@ def get_autokey_config(folder: Optional[builtins.str] = None,
93
102
  __ret__ = pulumi.runtime.invoke('gcp:kms/getAutokeyConfig:getAutokeyConfig', __args__, opts=opts, typ=GetAutokeyConfigResult).value
94
103
 
95
104
  return AwaitableGetAutokeyConfigResult(
105
+ etag=pulumi.get(__ret__, 'etag'),
96
106
  folder=pulumi.get(__ret__, 'folder'),
97
107
  id=pulumi.get(__ret__, 'id'),
98
108
  key_project=pulumi.get(__ret__, 'key_project'))
@@ -117,6 +127,7 @@ def get_autokey_config_output(folder: Optional[pulumi.Input[builtins.str]] = Non
117
127
  opts = pulumi.InvokeOutputOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
118
128
  __ret__ = pulumi.runtime.invoke_output('gcp:kms/getAutokeyConfig:getAutokeyConfig', __args__, opts=opts, typ=GetAutokeyConfigResult)
119
129
  return __ret__.apply(lambda __response__: GetAutokeyConfigResult(
130
+ etag=pulumi.get(__response__, 'etag'),
120
131
  folder=pulumi.get(__response__, 'folder'),
121
132
  id=pulumi.get(__response__, 'id'),
122
133
  key_project=pulumi.get(__response__, 'key_project')))
@@ -27,7 +27,7 @@ class GetInstanceResult:
27
27
  """
28
28
  A collection of values returned by getInstance.
29
29
  """
30
- def __init__(__self__, capacity_gib=None, create_time=None, description=None, effective_labels=None, filesystem=None, gke_support_enabled=None, id=None, instance_id=None, labels=None, location=None, mount_point=None, name=None, network=None, project=None, pulumi_labels=None, state=None, update_time=None, zone=None):
30
+ def __init__(__self__, capacity_gib=None, create_time=None, description=None, effective_labels=None, filesystem=None, gke_support_enabled=None, id=None, instance_id=None, labels=None, location=None, mount_point=None, name=None, network=None, per_unit_storage_throughput=None, project=None, pulumi_labels=None, state=None, update_time=None, zone=None):
31
31
  if capacity_gib and not isinstance(capacity_gib, str):
32
32
  raise TypeError("Expected argument 'capacity_gib' to be a str")
33
33
  pulumi.set(__self__, "capacity_gib", capacity_gib)
@@ -67,6 +67,9 @@ class GetInstanceResult:
67
67
  if network and not isinstance(network, str):
68
68
  raise TypeError("Expected argument 'network' to be a str")
69
69
  pulumi.set(__self__, "network", network)
70
+ if per_unit_storage_throughput and not isinstance(per_unit_storage_throughput, str):
71
+ raise TypeError("Expected argument 'per_unit_storage_throughput' to be a str")
72
+ pulumi.set(__self__, "per_unit_storage_throughput", per_unit_storage_throughput)
70
73
  if project and not isinstance(project, str):
71
74
  raise TypeError("Expected argument 'project' to be a str")
72
75
  pulumi.set(__self__, "project", project)
@@ -151,6 +154,11 @@ class GetInstanceResult:
151
154
  def network(self) -> builtins.str:
152
155
  return pulumi.get(self, "network")
153
156
 
157
+ @property
158
+ @pulumi.getter(name="perUnitStorageThroughput")
159
+ def per_unit_storage_throughput(self) -> builtins.str:
160
+ return pulumi.get(self, "per_unit_storage_throughput")
161
+
154
162
  @property
155
163
  @pulumi.getter
156
164
  def project(self) -> Optional[builtins.str]:
@@ -196,6 +204,7 @@ class AwaitableGetInstanceResult(GetInstanceResult):
196
204
  mount_point=self.mount_point,
197
205
  name=self.name,
198
206
  network=self.network,
207
+ per_unit_storage_throughput=self.per_unit_storage_throughput,
199
208
  project=self.project,
200
209
  pulumi_labels=self.pulumi_labels,
201
210
  state=self.state,
@@ -236,6 +245,7 @@ def get_instance(instance_id: Optional[builtins.str] = None,
236
245
  mount_point=pulumi.get(__ret__, 'mount_point'),
237
246
  name=pulumi.get(__ret__, 'name'),
238
247
  network=pulumi.get(__ret__, 'network'),
248
+ per_unit_storage_throughput=pulumi.get(__ret__, 'per_unit_storage_throughput'),
239
249
  project=pulumi.get(__ret__, 'project'),
240
250
  pulumi_labels=pulumi.get(__ret__, 'pulumi_labels'),
241
251
  state=pulumi.get(__ret__, 'state'),
@@ -273,6 +283,7 @@ def get_instance_output(instance_id: Optional[pulumi.Input[builtins.str]] = None
273
283
  mount_point=pulumi.get(__response__, 'mount_point'),
274
284
  name=pulumi.get(__response__, 'name'),
275
285
  network=pulumi.get(__response__, 'network'),
286
+ per_unit_storage_throughput=pulumi.get(__response__, 'per_unit_storage_throughput'),
276
287
  project=pulumi.get(__response__, 'project'),
277
288
  pulumi_labels=pulumi.get(__response__, 'pulumi_labels'),
278
289
  state=pulumi.get(__response__, 'state'),