pulumi-gcp 7.39.0a1726207510__py3-none-any.whl → 8.0.0a1__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 (167) hide show
  1. pulumi_gcp/__init__.py +32 -19
  2. pulumi_gcp/accesscontextmanager/access_policy.py +4 -2
  3. pulumi_gcp/activedirectory/domain.py +38 -2
  4. pulumi_gcp/activedirectory/domain_trust.py +0 -30
  5. pulumi_gcp/activedirectory/peering.py +0 -72
  6. pulumi_gcp/alloydb/cluster.py +12 -200
  7. pulumi_gcp/alloydb/instance.py +13 -5
  8. pulumi_gcp/alloydb/user.py +14 -6
  9. pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +4 -2
  10. pulumi_gcp/apigee/sync_authorization.py +4 -2
  11. pulumi_gcp/apigee/target_server.py +4 -2
  12. pulumi_gcp/appengine/firewall_rule.py +4 -2
  13. pulumi_gcp/appengine/flexible_app_version.py +4 -2
  14. pulumi_gcp/apphub/service.py +8 -4
  15. pulumi_gcp/apphub/service_project_attachment.py +8 -4
  16. pulumi_gcp/applicationintegration/client.py +0 -154
  17. pulumi_gcp/bigquery/_inputs.py +0 -70
  18. pulumi_gcp/bigquery/iam_binding.py +0 -260
  19. pulumi_gcp/bigquery/iam_member.py +0 -260
  20. pulumi_gcp/bigquery/iam_policy.py +0 -240
  21. pulumi_gcp/bigquery/outputs.py +0 -44
  22. pulumi_gcp/bigquery/reservation.py +0 -84
  23. pulumi_gcp/bigquery/table.py +0 -98
  24. pulumi_gcp/billing/project_info.py +4 -2
  25. pulumi_gcp/certificateauthority/get_authority.py +0 -20
  26. pulumi_gcp/certificatemanager/get_certificate_map.py +0 -14
  27. pulumi_gcp/cloudasset/folder_feed.py +4 -2
  28. pulumi_gcp/cloudidentity/get_group_lookup.py +0 -18
  29. pulumi_gcp/cloudidentity/get_group_memberships.py +0 -14
  30. pulumi_gcp/cloudidentity/get_groups.py +0 -14
  31. pulumi_gcp/cloudrunv2/_inputs.py +25 -25
  32. pulumi_gcp/cloudrunv2/get_job.py +11 -1
  33. pulumi_gcp/cloudrunv2/get_service.py +11 -1
  34. pulumi_gcp/cloudrunv2/job.py +50 -0
  35. pulumi_gcp/cloudrunv2/outputs.py +26 -26
  36. pulumi_gcp/cloudrunv2/service.py +54 -0
  37. pulumi_gcp/compute/_inputs.py +117 -54
  38. pulumi_gcp/compute/backend_service.py +52 -0
  39. pulumi_gcp/compute/disk_async_replication.py +0 -48
  40. pulumi_gcp/compute/firewall_policy_rule.py +4 -2
  41. pulumi_gcp/compute/forwarding_rule.py +42 -0
  42. pulumi_gcp/compute/get_backend_bucket.py +0 -14
  43. pulumi_gcp/compute/get_backend_service.py +0 -20
  44. pulumi_gcp/compute/get_certificate.py +0 -20
  45. pulumi_gcp/compute/get_forwarding_rule.py +11 -15
  46. pulumi_gcp/compute/get_forwarding_rules.py +0 -16
  47. pulumi_gcp/compute/get_global_forwarding_rule.py +0 -14
  48. pulumi_gcp/compute/get_hc_vpn_gateway.py +0 -14
  49. pulumi_gcp/compute/get_health_check.py +0 -14
  50. pulumi_gcp/compute/get_lbip_ranges.py +0 -32
  51. pulumi_gcp/compute/get_netblock_ip_ranges.py +0 -52
  52. pulumi_gcp/compute/get_network.py +0 -14
  53. pulumi_gcp/compute/get_networks.py +0 -14
  54. pulumi_gcp/compute/get_region_ssl_certificate.py +0 -20
  55. pulumi_gcp/compute/get_ssl_policy.py +0 -14
  56. pulumi_gcp/compute/get_vpn_gateway.py +0 -14
  57. pulumi_gcp/compute/global_address.py +8 -4
  58. pulumi_gcp/compute/global_forwarding_rule.py +7 -0
  59. pulumi_gcp/compute/instance_template.py +56 -63
  60. pulumi_gcp/compute/managed_ssl_certificate.py +1 -20
  61. pulumi_gcp/compute/manged_ssl_certificate.py +1 -20
  62. pulumi_gcp/compute/network_attachment.py +8 -4
  63. pulumi_gcp/compute/node_group.py +4 -2
  64. pulumi_gcp/compute/organization_security_policy_association.py +4 -2
  65. pulumi_gcp/compute/outputs.py +101 -42
  66. pulumi_gcp/compute/project_cloud_armor_tier.py +4 -2
  67. pulumi_gcp/compute/region_backend_service.py +36 -7
  68. pulumi_gcp/compute/region_instance_template.py +56 -7
  69. pulumi_gcp/compute/region_ssl_certificate.py +49 -7
  70. pulumi_gcp/compute/ssl_certificate.py +49 -7
  71. pulumi_gcp/compute/subnetwork.py +193 -23
  72. pulumi_gcp/config/__init__.pyi +3 -5
  73. pulumi_gcp/config/vars.py +6 -10
  74. pulumi_gcp/container/_inputs.py +19 -41
  75. pulumi_gcp/container/cluster.py +79 -0
  76. pulumi_gcp/container/get_cluster.py +21 -25
  77. pulumi_gcp/container/get_engine_versions.py +8 -2
  78. pulumi_gcp/container/outputs.py +17 -40
  79. pulumi_gcp/dataproc/get_metastore_service.py +0 -16
  80. pulumi_gcp/diagflow/intent.py +4 -2
  81. pulumi_gcp/dns/get_record_set.py +0 -20
  82. pulumi_gcp/edgenetwork/network.py +83 -0
  83. pulumi_gcp/edgenetwork/subnet.py +83 -0
  84. pulumi_gcp/filestore/get_instance.py +0 -20
  85. pulumi_gcp/firebase/database_instance.py +2 -0
  86. pulumi_gcp/firebase/hosting_custom_domain.py +4 -2
  87. pulumi_gcp/firebase/hosting_version.py +4 -2
  88. pulumi_gcp/firebase/project.py +2 -0
  89. pulumi_gcp/firestore/document.py +8 -4
  90. pulumi_gcp/folder/access_approval_settings.py +12 -6
  91. pulumi_gcp/gkeonprem/_inputs.py +11 -11
  92. pulumi_gcp/gkeonprem/outputs.py +9 -9
  93. pulumi_gcp/gkeonprem/v_mware_cluster.py +31 -31
  94. pulumi_gcp/gkeonprem/v_mware_node_pool.py +186 -0
  95. pulumi_gcp/iam/access_boundary_policy.py +4 -2
  96. pulumi_gcp/iam/deny_policy.py +4 -2
  97. pulumi_gcp/iam/get_workload_identity_pool.py +0 -14
  98. pulumi_gcp/iam/get_workload_identity_pool_provider.py +0 -16
  99. pulumi_gcp/iap/brand.py +4 -2
  100. pulumi_gcp/iap/client.py +4 -2
  101. pulumi_gcp/iap/get_client.py +0 -18
  102. pulumi_gcp/identityplatform/__init__.py +0 -1
  103. pulumi_gcp/identityplatform/_inputs.py +0 -396
  104. pulumi_gcp/identityplatform/config.py +2 -0
  105. pulumi_gcp/identityplatform/outputs.py +0 -313
  106. pulumi_gcp/integrationconnectors/managed_zone.py +4 -2
  107. pulumi_gcp/kms/__init__.py +4 -0
  108. pulumi_gcp/kms/_inputs.py +130 -0
  109. pulumi_gcp/kms/autokey_config.py +6 -2
  110. pulumi_gcp/kms/ekm_connection_iam_binding.py +1097 -0
  111. pulumi_gcp/kms/ekm_connection_iam_member.py +1097 -0
  112. pulumi_gcp/kms/ekm_connection_iam_policy.py +916 -0
  113. pulumi_gcp/kms/get_ekm_connection_iam_policy.py +177 -0
  114. pulumi_gcp/kms/key_handle.py +8 -2
  115. pulumi_gcp/kms/outputs.py +76 -0
  116. pulumi_gcp/logging/folder_settings.py +4 -2
  117. pulumi_gcp/monitoring/get_secret_version.py +2 -2
  118. pulumi_gcp/monitoring/monitored_project.py +4 -2
  119. pulumi_gcp/networksecurity/firewall_endpoint_association.py +12 -44
  120. pulumi_gcp/networkservices/_inputs.py +23 -0
  121. pulumi_gcp/networkservices/outputs.py +17 -1
  122. pulumi_gcp/networkservices/tcp_route.py +2 -0
  123. pulumi_gcp/organizations/access_approval_settings.py +4 -2
  124. pulumi_gcp/organizations/folder.py +35 -1
  125. pulumi_gcp/organizations/get_active_folder.py +0 -16
  126. pulumi_gcp/organizations/get_client_config.py +16 -15
  127. pulumi_gcp/organizations/get_folder.py +11 -1
  128. pulumi_gcp/organizations/get_project.py +3 -13
  129. pulumi_gcp/organizations/project.py +3 -87
  130. pulumi_gcp/orgpolicy/policy.py +12 -6
  131. pulumi_gcp/projects/api_key.py +2 -52
  132. pulumi_gcp/provider.py +32 -52
  133. pulumi_gcp/pubsub/topic.py +1 -1
  134. pulumi_gcp/pulumi-plugin.json +1 -1
  135. pulumi_gcp/redis/cluster.py +58 -0
  136. pulumi_gcp/redis/get_instance.py +0 -20
  137. pulumi_gcp/resourcemanager/lien.py +4 -2
  138. pulumi_gcp/secretmanager/get_secret_version.py +2 -2
  139. pulumi_gcp/securitycenter/__init__.py +1 -0
  140. pulumi_gcp/securitycenter/folder_custom_module.py +8 -4
  141. pulumi_gcp/securitycenter/management_folder_security_health_analytics_custom_module.py +8 -4
  142. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +862 -0
  143. pulumi_gcp/serviceusage/consumer_quota_override.py +12 -6
  144. pulumi_gcp/spanner/get_instance.py +0 -14
  145. pulumi_gcp/sql/_inputs.py +3 -36
  146. pulumi_gcp/sql/outputs.py +6 -49
  147. pulumi_gcp/storage/_inputs.py +23 -23
  148. pulumi_gcp/storage/bucket.py +6 -6
  149. pulumi_gcp/storage/outputs.py +27 -27
  150. pulumi_gcp/tags/get_tag_key.py +0 -30
  151. pulumi_gcp/tags/get_tag_keys.py +0 -26
  152. pulumi_gcp/tags/get_tag_value.py +0 -16
  153. pulumi_gcp/tags/get_tag_values.py +0 -14
  154. pulumi_gcp/tags/tag_binding.py +4 -2
  155. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -2
  156. pulumi_gcp/vmwareengine/network.py +4 -2
  157. pulumi_gcp/vpcaccess/connector.py +14 -6
  158. pulumi_gcp/vpcaccess/get_connector.py +6 -2
  159. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0a1.dist-info}/METADATA +1 -1
  160. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0a1.dist-info}/RECORD +162 -162
  161. pulumi_gcp/datastore/__init__.py +0 -10
  162. pulumi_gcp/datastore/_inputs.py +0 -76
  163. pulumi_gcp/datastore/data_store_index.py +0 -515
  164. pulumi_gcp/datastore/outputs.py +0 -51
  165. pulumi_gcp/identityplatform/project_default_config.py +0 -357
  166. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0a1.dist-info}/WHEEL +0 -0
  167. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0a1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,177 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = [
18
+ 'GetEkmConnectionIamPolicyResult',
19
+ 'AwaitableGetEkmConnectionIamPolicyResult',
20
+ 'get_ekm_connection_iam_policy',
21
+ 'get_ekm_connection_iam_policy_output',
22
+ ]
23
+
24
+ @pulumi.output_type
25
+ class GetEkmConnectionIamPolicyResult:
26
+ """
27
+ A collection of values returned by getEkmConnectionIamPolicy.
28
+ """
29
+ def __init__(__self__, etag=None, id=None, location=None, name=None, policy_data=None, project=None):
30
+ if etag and not isinstance(etag, str):
31
+ raise TypeError("Expected argument 'etag' to be a str")
32
+ pulumi.set(__self__, "etag", etag)
33
+ if id and not isinstance(id, str):
34
+ raise TypeError("Expected argument 'id' to be a str")
35
+ pulumi.set(__self__, "id", id)
36
+ if location and not isinstance(location, str):
37
+ raise TypeError("Expected argument 'location' to be a str")
38
+ pulumi.set(__self__, "location", location)
39
+ if name and not isinstance(name, str):
40
+ raise TypeError("Expected argument 'name' to be a str")
41
+ pulumi.set(__self__, "name", name)
42
+ if policy_data and not isinstance(policy_data, str):
43
+ raise TypeError("Expected argument 'policy_data' to be a str")
44
+ pulumi.set(__self__, "policy_data", policy_data)
45
+ if project and not isinstance(project, str):
46
+ raise TypeError("Expected argument 'project' to be a str")
47
+ pulumi.set(__self__, "project", project)
48
+
49
+ @property
50
+ @pulumi.getter
51
+ def etag(self) -> str:
52
+ """
53
+ (Computed) The etag of the IAM policy.
54
+ """
55
+ return pulumi.get(self, "etag")
56
+
57
+ @property
58
+ @pulumi.getter
59
+ def id(self) -> str:
60
+ """
61
+ The provider-assigned unique ID for this managed resource.
62
+ """
63
+ return pulumi.get(self, "id")
64
+
65
+ @property
66
+ @pulumi.getter
67
+ def location(self) -> str:
68
+ return pulumi.get(self, "location")
69
+
70
+ @property
71
+ @pulumi.getter
72
+ def name(self) -> str:
73
+ return pulumi.get(self, "name")
74
+
75
+ @property
76
+ @pulumi.getter(name="policyData")
77
+ def policy_data(self) -> str:
78
+ """
79
+ (Required only by `kms.EkmConnectionIamPolicy`) The policy data generated by
80
+ a `organizations_get_iam_policy` data source.
81
+ """
82
+ return pulumi.get(self, "policy_data")
83
+
84
+ @property
85
+ @pulumi.getter
86
+ def project(self) -> str:
87
+ return pulumi.get(self, "project")
88
+
89
+
90
+ class AwaitableGetEkmConnectionIamPolicyResult(GetEkmConnectionIamPolicyResult):
91
+ # pylint: disable=using-constant-test
92
+ def __await__(self):
93
+ if False:
94
+ yield self
95
+ return GetEkmConnectionIamPolicyResult(
96
+ etag=self.etag,
97
+ id=self.id,
98
+ location=self.location,
99
+ name=self.name,
100
+ policy_data=self.policy_data,
101
+ project=self.project)
102
+
103
+
104
+ def get_ekm_connection_iam_policy(location: Optional[str] = None,
105
+ name: Optional[str] = None,
106
+ project: Optional[str] = None,
107
+ opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEkmConnectionIamPolicyResult:
108
+ """
109
+ Retrieves the current IAM policy data for ekmconnection
110
+
111
+ ## example
112
+
113
+ ```python
114
+ import pulumi
115
+ import pulumi_gcp as gcp
116
+
117
+ policy = gcp.kms.get_ekm_connection_iam_policy(project=example_ekmconnection["project"],
118
+ location=example_ekmconnection["location"],
119
+ name=example_ekmconnection["name"])
120
+ ```
121
+
122
+
123
+ :param str location: The location for the EkmConnection.
124
+ A full list of valid locations can be found by running `gcloud kms locations list`.
125
+ Used to find the parent resource to bind the IAM policy to. If not specified,
126
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
127
+ location is specified, it is taken from the provider configuration.
128
+ :param str name: Used to find the parent resource to bind the IAM policy to
129
+ :param str project: The ID of the project in which the resource belongs.
130
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
131
+ """
132
+ __args__ = dict()
133
+ __args__['location'] = location
134
+ __args__['name'] = name
135
+ __args__['project'] = project
136
+ opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
137
+ __ret__ = pulumi.runtime.invoke('gcp:kms/getEkmConnectionIamPolicy:getEkmConnectionIamPolicy', __args__, opts=opts, typ=GetEkmConnectionIamPolicyResult).value
138
+
139
+ return AwaitableGetEkmConnectionIamPolicyResult(
140
+ etag=pulumi.get(__ret__, 'etag'),
141
+ id=pulumi.get(__ret__, 'id'),
142
+ location=pulumi.get(__ret__, 'location'),
143
+ name=pulumi.get(__ret__, 'name'),
144
+ policy_data=pulumi.get(__ret__, 'policy_data'),
145
+ project=pulumi.get(__ret__, 'project'))
146
+
147
+
148
+ @_utilities.lift_output_func(get_ekm_connection_iam_policy)
149
+ def get_ekm_connection_iam_policy_output(location: Optional[pulumi.Input[Optional[str]]] = None,
150
+ name: Optional[pulumi.Input[str]] = None,
151
+ project: Optional[pulumi.Input[Optional[str]]] = None,
152
+ opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEkmConnectionIamPolicyResult]:
153
+ """
154
+ Retrieves the current IAM policy data for ekmconnection
155
+
156
+ ## example
157
+
158
+ ```python
159
+ import pulumi
160
+ import pulumi_gcp as gcp
161
+
162
+ policy = gcp.kms.get_ekm_connection_iam_policy(project=example_ekmconnection["project"],
163
+ location=example_ekmconnection["location"],
164
+ name=example_ekmconnection["name"])
165
+ ```
166
+
167
+
168
+ :param str location: The location for the EkmConnection.
169
+ A full list of valid locations can be found by running `gcloud kms locations list`.
170
+ Used to find the parent resource to bind the IAM policy to. If not specified,
171
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
172
+ location is specified, it is taken from the provider configuration.
173
+ :param str name: Used to find the parent resource to bind the IAM policy to
174
+ :param str project: The ID of the project in which the resource belongs.
175
+ If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
176
+ """
177
+ ...
@@ -225,13 +225,15 @@ class KeyHandle(pulumi.CustomResource):
225
225
  # Create Folder in GCP Organization
226
226
  autokms_folder = gcp.organizations.Folder("autokms_folder",
227
227
  display_name="folder-example",
228
- parent="organizations/123456789")
228
+ parent="organizations/123456789",
229
+ deletion_protection=False)
229
230
  # Create the key project
230
231
  key_project = gcp.organizations.Project("key_project",
231
232
  project_id="key-proj",
232
233
  name="key-proj",
233
234
  folder_id=autokms_folder.folder_id,
234
235
  billing_account="000000-0000000-0000000-000000",
236
+ deletion_policy="DELETE",
235
237
  opts = pulumi.ResourceOptions(depends_on=[autokms_folder]))
236
238
  # Create the resource project
237
239
  resource_project = gcp.organizations.Project("resource_project",
@@ -239,6 +241,7 @@ class KeyHandle(pulumi.CustomResource):
239
241
  name="resources",
240
242
  folder_id=autokms_folder.folder_id,
241
243
  billing_account="000000-0000000-0000000-000000",
244
+ deletion_policy="DELETE",
242
245
  opts = pulumi.ResourceOptions(depends_on=[autokms_folder]))
243
246
  # Enable the Cloud KMS API
244
247
  kms_api_service = gcp.projects.Service("kms_api_service",
@@ -338,13 +341,15 @@ class KeyHandle(pulumi.CustomResource):
338
341
  # Create Folder in GCP Organization
339
342
  autokms_folder = gcp.organizations.Folder("autokms_folder",
340
343
  display_name="folder-example",
341
- parent="organizations/123456789")
344
+ parent="organizations/123456789",
345
+ deletion_protection=False)
342
346
  # Create the key project
343
347
  key_project = gcp.organizations.Project("key_project",
344
348
  project_id="key-proj",
345
349
  name="key-proj",
346
350
  folder_id=autokms_folder.folder_id,
347
351
  billing_account="000000-0000000-0000000-000000",
352
+ deletion_policy="DELETE",
348
353
  opts = pulumi.ResourceOptions(depends_on=[autokms_folder]))
349
354
  # Create the resource project
350
355
  resource_project = gcp.organizations.Project("resource_project",
@@ -352,6 +357,7 @@ class KeyHandle(pulumi.CustomResource):
352
357
  name="resources",
353
358
  folder_id=autokms_folder.folder_id,
354
359
  billing_account="000000-0000000-0000000-000000",
360
+ deletion_policy="DELETE",
355
361
  opts = pulumi.ResourceOptions(depends_on=[autokms_folder]))
356
362
  # Enable the Cloud KMS API
357
363
  kms_api_service = gcp.projects.Service("kms_api_service",
pulumi_gcp/kms/outputs.py CHANGED
@@ -25,6 +25,8 @@ __all__ = [
25
25
  'CryptoKeyVersionAttestationExternalProtectionLevelOptions',
26
26
  'CryptoKeyVersionExternalProtectionLevelOptions',
27
27
  'CryptoKeyVersionTemplate',
28
+ 'EkmConnectionIamBindingCondition',
29
+ 'EkmConnectionIamMemberCondition',
28
30
  'EkmConnectionServiceResolver',
29
31
  'EkmConnectionServiceResolverServerCertificate',
30
32
  'KeyRingIAMBindingCondition',
@@ -509,6 +511,80 @@ class CryptoKeyVersionTemplate(dict):
509
511
  return pulumi.get(self, "protection_level")
510
512
 
511
513
 
514
+ @pulumi.output_type
515
+ class EkmConnectionIamBindingCondition(dict):
516
+ def __init__(__self__, *,
517
+ expression: str,
518
+ title: str,
519
+ description: Optional[str] = None):
520
+ """
521
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
522
+ :param str title: A title for the expression, i.e. a short string describing its purpose.
523
+ """
524
+ pulumi.set(__self__, "expression", expression)
525
+ pulumi.set(__self__, "title", title)
526
+ if description is not None:
527
+ pulumi.set(__self__, "description", description)
528
+
529
+ @property
530
+ @pulumi.getter
531
+ def expression(self) -> str:
532
+ """
533
+ Textual representation of an expression in Common Expression Language syntax.
534
+ """
535
+ return pulumi.get(self, "expression")
536
+
537
+ @property
538
+ @pulumi.getter
539
+ def title(self) -> str:
540
+ """
541
+ A title for the expression, i.e. a short string describing its purpose.
542
+ """
543
+ return pulumi.get(self, "title")
544
+
545
+ @property
546
+ @pulumi.getter
547
+ def description(self) -> Optional[str]:
548
+ return pulumi.get(self, "description")
549
+
550
+
551
+ @pulumi.output_type
552
+ class EkmConnectionIamMemberCondition(dict):
553
+ def __init__(__self__, *,
554
+ expression: str,
555
+ title: str,
556
+ description: Optional[str] = None):
557
+ """
558
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
559
+ :param str title: A title for the expression, i.e. a short string describing its purpose.
560
+ """
561
+ pulumi.set(__self__, "expression", expression)
562
+ pulumi.set(__self__, "title", title)
563
+ if description is not None:
564
+ pulumi.set(__self__, "description", description)
565
+
566
+ @property
567
+ @pulumi.getter
568
+ def expression(self) -> str:
569
+ """
570
+ Textual representation of an expression in Common Expression Language syntax.
571
+ """
572
+ return pulumi.get(self, "expression")
573
+
574
+ @property
575
+ @pulumi.getter
576
+ def title(self) -> str:
577
+ """
578
+ A title for the expression, i.e. a short string describing its purpose.
579
+ """
580
+ return pulumi.get(self, "title")
581
+
582
+ @property
583
+ @pulumi.getter
584
+ def description(self) -> Optional[str]:
585
+ return pulumi.get(self, "description")
586
+
587
+
512
588
  @pulumi.output_type
513
589
  class EkmConnectionServiceResolver(dict):
514
590
  @staticmethod
@@ -248,7 +248,8 @@ class FolderSettings(pulumi.CustomResource):
248
248
 
249
249
  my_folder = gcp.organizations.Folder("my_folder",
250
250
  display_name="folder-name",
251
- parent="organizations/123456789")
251
+ parent="organizations/123456789",
252
+ deletion_protection=False)
252
253
  settings = gcp.logging.get_folder_settings_output(folder=my_folder.folder_id)
253
254
  iam = gcp.kms.CryptoKeyIAMMember("iam",
254
255
  crypto_key_id="kms-key",
@@ -315,7 +316,8 @@ class FolderSettings(pulumi.CustomResource):
315
316
 
316
317
  my_folder = gcp.organizations.Folder("my_folder",
317
318
  display_name="folder-name",
318
- parent="organizations/123456789")
319
+ parent="organizations/123456789",
320
+ deletion_protection=False)
319
321
  settings = gcp.logging.get_folder_settings_output(folder=my_folder.folder_id)
320
322
  iam = gcp.kms.CryptoKeyIAMMember("iam",
321
323
  crypto_key_id="kms-key",
@@ -144,7 +144,7 @@ def get_secret_version(project: Optional[str] = None,
144
144
  version: Optional[str] = None,
145
145
  opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetSecretVersionResult:
146
146
  """
147
- Get the value and metadata from a Secret Manager secret version. For more information see the [official documentation](https://cloud.google.com/secret-manager/docs/) and [API](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets.versions). If you don't need the metadata (i.e., if you want to use a more limited role to access the secret version only), see also the secretmanager_get_secret_version_access datasource.
147
+ Get the value and metadata from a Secret Manager secret version. For more information see the official documentation datasource.
148
148
 
149
149
  ## Example Usage
150
150
 
@@ -188,7 +188,7 @@ def get_secret_version_output(project: Optional[pulumi.Input[Optional[str]]] = N
188
188
  version: Optional[pulumi.Input[Optional[str]]] = None,
189
189
  opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetSecretVersionResult]:
190
190
  """
191
- Get the value and metadata from a Secret Manager secret version. For more information see the [official documentation](https://cloud.google.com/secret-manager/docs/) and [API](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets.versions). If you don't need the metadata (i.e., if you want to use a more limited role to access the secret version only), see also the secretmanager_get_secret_version_access datasource.
191
+ Get the value and metadata from a Secret Manager secret version. For more information see the official documentation datasource.
192
192
 
193
193
  ## Example Usage
194
194
 
@@ -151,7 +151,8 @@ class MonitoredProject(pulumi.CustomResource):
151
151
  basic = gcp.organizations.Project("basic",
152
152
  project_id="m-id",
153
153
  name="m-id-display",
154
- org_id="123456789")
154
+ org_id="123456789",
155
+ deletion_policy="DELETE")
155
156
  primary = gcp.monitoring.MonitoredProject("primary",
156
157
  metrics_scope="my-project-name",
157
158
  name=basic.project_id)
@@ -209,7 +210,8 @@ class MonitoredProject(pulumi.CustomResource):
209
210
  basic = gcp.organizations.Project("basic",
210
211
  project_id="m-id",
211
212
  name="m-id-display",
212
- org_id="123456789")
213
+ org_id="123456789",
214
+ deletion_policy="DELETE")
213
215
  primary = gcp.monitoring.MonitoredProject("primary",
214
216
  metrics_scope="my-project-name",
215
217
  name=basic.project_id)
@@ -462,29 +462,13 @@ class FirewallEndpointAssociation(pulumi.CustomResource):
462
462
  * [Create and associate firewall endpoints](https://cloud.google.com/firewall/docs/configure-firewall-endpoints)
463
463
  * [Firewall endpoint overview](https://cloud.google.com/firewall/docs/about-firewall-endpoints)
464
464
 
465
- ## Example Usage
465
+ > **Warning:** If you are using User ADCs (Application Default Credentials) with this resource,
466
+ you must specify a `billing_project_id` and set `user_project_override` to true
467
+ in the provider configuration. Otherwise the ACM API will return a 403 error.
468
+ Your account must have the `serviceusage.services.use` permission on the
469
+ `billing_project_id` you defined.
466
470
 
467
- ### Network Security Firewall Endpoint Association Basic
468
-
469
- ```python
470
- import pulumi
471
- import pulumi_gcp as gcp
472
-
473
- default = gcp.networksecurity.FirewallEndpoint("default",
474
- name="my-firewall-endpoint",
475
- parent="organizations/123456789",
476
- location="us-central1-a",
477
- labels={
478
- "foo": "bar",
479
- })
480
- default_association = gcp.networksecurity.FirewallEndpointAssociation("default_association",
481
- name="my-firewall-endpoint-association",
482
- parent="projects/my-project-name",
483
- location="us-central1-a",
484
- labels={
485
- "foo": "bar",
486
- })
487
- ```
471
+ ## Example Usage
488
472
 
489
473
  ## Import
490
474
 
@@ -537,29 +521,13 @@ class FirewallEndpointAssociation(pulumi.CustomResource):
537
521
  * [Create and associate firewall endpoints](https://cloud.google.com/firewall/docs/configure-firewall-endpoints)
538
522
  * [Firewall endpoint overview](https://cloud.google.com/firewall/docs/about-firewall-endpoints)
539
523
 
540
- ## Example Usage
524
+ > **Warning:** If you are using User ADCs (Application Default Credentials) with this resource,
525
+ you must specify a `billing_project_id` and set `user_project_override` to true
526
+ in the provider configuration. Otherwise the ACM API will return a 403 error.
527
+ Your account must have the `serviceusage.services.use` permission on the
528
+ `billing_project_id` you defined.
541
529
 
542
- ### Network Security Firewall Endpoint Association Basic
543
-
544
- ```python
545
- import pulumi
546
- import pulumi_gcp as gcp
547
-
548
- default = gcp.networksecurity.FirewallEndpoint("default",
549
- name="my-firewall-endpoint",
550
- parent="organizations/123456789",
551
- location="us-central1-a",
552
- labels={
553
- "foo": "bar",
554
- })
555
- default_association = gcp.networksecurity.FirewallEndpointAssociation("default_association",
556
- name="my-firewall-endpoint-association",
557
- parent="projects/my-project-name",
558
- location="us-central1-a",
559
- labels={
560
- "foo": "bar",
561
- })
562
- ```
530
+ ## Example Usage
563
531
 
564
532
  ## Import
565
533
 
@@ -6476,6 +6476,11 @@ if not MYPY:
6476
6476
  The destination services to which traffic should be forwarded. At least one destination service is required.
6477
6477
  Structure is documented below.
6478
6478
  """
6479
+ idle_timeout: NotRequired[pulumi.Input[str]]
6480
+ """
6481
+ Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
6482
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
6483
+ """
6479
6484
  original_destination: NotRequired[pulumi.Input[bool]]
6480
6485
  """
6481
6486
  If true, Router will use the destination IP and port of the original connection as the destination of the request.
@@ -6487,14 +6492,19 @@ elif False:
6487
6492
  class TcpRouteRuleActionArgs:
6488
6493
  def __init__(__self__, *,
6489
6494
  destinations: Optional[pulumi.Input[Sequence[pulumi.Input['TcpRouteRuleActionDestinationArgs']]]] = None,
6495
+ idle_timeout: Optional[pulumi.Input[str]] = None,
6490
6496
  original_destination: Optional[pulumi.Input[bool]] = None):
6491
6497
  """
6492
6498
  :param pulumi.Input[Sequence[pulumi.Input['TcpRouteRuleActionDestinationArgs']]] destinations: The destination services to which traffic should be forwarded. At least one destination service is required.
6493
6499
  Structure is documented below.
6500
+ :param pulumi.Input[str] idle_timeout: Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
6501
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
6494
6502
  :param pulumi.Input[bool] original_destination: If true, Router will use the destination IP and port of the original connection as the destination of the request.
6495
6503
  """
6496
6504
  if destinations is not None:
6497
6505
  pulumi.set(__self__, "destinations", destinations)
6506
+ if idle_timeout is not None:
6507
+ pulumi.set(__self__, "idle_timeout", idle_timeout)
6498
6508
  if original_destination is not None:
6499
6509
  pulumi.set(__self__, "original_destination", original_destination)
6500
6510
 
@@ -6511,6 +6521,19 @@ class TcpRouteRuleActionArgs:
6511
6521
  def destinations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TcpRouteRuleActionDestinationArgs']]]]):
6512
6522
  pulumi.set(self, "destinations", value)
6513
6523
 
6524
+ @property
6525
+ @pulumi.getter(name="idleTimeout")
6526
+ def idle_timeout(self) -> Optional[pulumi.Input[str]]:
6527
+ """
6528
+ Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
6529
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
6530
+ """
6531
+ return pulumi.get(self, "idle_timeout")
6532
+
6533
+ @idle_timeout.setter
6534
+ def idle_timeout(self, value: Optional[pulumi.Input[str]]):
6535
+ pulumi.set(self, "idle_timeout", value)
6536
+
6514
6537
  @property
6515
6538
  @pulumi.getter(name="originalDestination")
6516
6539
  def original_destination(self) -> Optional[pulumi.Input[bool]]:
@@ -5077,7 +5077,9 @@ class TcpRouteRuleAction(dict):
5077
5077
  @staticmethod
5078
5078
  def __key_warning(key: str):
5079
5079
  suggest = None
5080
- if key == "originalDestination":
5080
+ if key == "idleTimeout":
5081
+ suggest = "idle_timeout"
5082
+ elif key == "originalDestination":
5081
5083
  suggest = "original_destination"
5082
5084
 
5083
5085
  if suggest:
@@ -5093,14 +5095,19 @@ class TcpRouteRuleAction(dict):
5093
5095
 
5094
5096
  def __init__(__self__, *,
5095
5097
  destinations: Optional[Sequence['outputs.TcpRouteRuleActionDestination']] = None,
5098
+ idle_timeout: Optional[str] = None,
5096
5099
  original_destination: Optional[bool] = None):
5097
5100
  """
5098
5101
  :param Sequence['TcpRouteRuleActionDestinationArgs'] destinations: The destination services to which traffic should be forwarded. At least one destination service is required.
5099
5102
  Structure is documented below.
5103
+ :param str idle_timeout: Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
5104
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
5100
5105
  :param bool original_destination: If true, Router will use the destination IP and port of the original connection as the destination of the request.
5101
5106
  """
5102
5107
  if destinations is not None:
5103
5108
  pulumi.set(__self__, "destinations", destinations)
5109
+ if idle_timeout is not None:
5110
+ pulumi.set(__self__, "idle_timeout", idle_timeout)
5104
5111
  if original_destination is not None:
5105
5112
  pulumi.set(__self__, "original_destination", original_destination)
5106
5113
 
@@ -5113,6 +5120,15 @@ class TcpRouteRuleAction(dict):
5113
5120
  """
5114
5121
  return pulumi.get(self, "destinations")
5115
5122
 
5123
+ @property
5124
+ @pulumi.getter(name="idleTimeout")
5125
+ def idle_timeout(self) -> Optional[str]:
5126
+ """
5127
+ Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.
5128
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
5129
+ """
5130
+ return pulumi.get(self, "idle_timeout")
5131
+
5116
5132
  @property
5117
5133
  @pulumi.getter(name="originalDestination")
5118
5134
  def original_destination(self) -> Optional[bool]:
@@ -440,6 +440,7 @@ class TcpRoute(pulumi.CustomResource):
440
440
  "weight": 1,
441
441
  }],
442
442
  "original_destination": False,
443
+ "idle_timeout": "60s",
443
444
  },
444
445
  }])
445
446
  ```
@@ -640,6 +641,7 @@ class TcpRoute(pulumi.CustomResource):
640
641
  "weight": 1,
641
642
  }],
642
643
  "original_destination": False,
644
+ "idle_timeout": "60s",
643
645
  },
644
646
  }])
645
647
  ```
@@ -306,7 +306,8 @@ class AccessApprovalSettings(pulumi.CustomResource):
306
306
  my_project = gcp.organizations.Project("my_project",
307
307
  name="My Project",
308
308
  project_id="your-project-id",
309
- org_id="123456789")
309
+ org_id="123456789",
310
+ deletion_policy="DELETE")
310
311
  key_ring = gcp.kms.KeyRing("key_ring",
311
312
  name="key-ring",
312
313
  location="global",
@@ -411,7 +412,8 @@ class AccessApprovalSettings(pulumi.CustomResource):
411
412
  my_project = gcp.organizations.Project("my_project",
412
413
  name="My Project",
413
414
  project_id="your-project-id",
414
- org_id="123456789")
415
+ org_id="123456789",
416
+ deletion_policy="DELETE")
415
417
  key_ring = gcp.kms.KeyRing("key_ring",
416
418
  name="key-ring",
417
419
  location="global",