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,916 @@
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__ = ['EkmConnectionIamPolicyArgs', 'EkmConnectionIamPolicy']
18
+
19
+ @pulumi.input_type
20
+ class EkmConnectionIamPolicyArgs:
21
+ def __init__(__self__, *,
22
+ policy_data: pulumi.Input[str],
23
+ location: Optional[pulumi.Input[str]] = None,
24
+ name: Optional[pulumi.Input[str]] = None,
25
+ project: Optional[pulumi.Input[str]] = None):
26
+ """
27
+ The set of arguments for constructing a EkmConnectionIamPolicy resource.
28
+ :param pulumi.Input[str] policy_data: The policy data generated by
29
+ a `organizations_get_iam_policy` data source.
30
+ :param pulumi.Input[str] location: The location for the EkmConnection.
31
+ A full list of valid locations can be found by running `gcloud kms locations list`.
32
+ Used to find the parent resource to bind the IAM policy to. If not specified,
33
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
34
+ location is specified, it is taken from the provider configuration.
35
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
36
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
37
+ 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.
38
+ """
39
+ pulumi.set(__self__, "policy_data", policy_data)
40
+ if location is not None:
41
+ pulumi.set(__self__, "location", location)
42
+ if name is not None:
43
+ pulumi.set(__self__, "name", name)
44
+ if project is not None:
45
+ pulumi.set(__self__, "project", project)
46
+
47
+ @property
48
+ @pulumi.getter(name="policyData")
49
+ def policy_data(self) -> pulumi.Input[str]:
50
+ """
51
+ The policy data generated by
52
+ a `organizations_get_iam_policy` data source.
53
+ """
54
+ return pulumi.get(self, "policy_data")
55
+
56
+ @policy_data.setter
57
+ def policy_data(self, value: pulumi.Input[str]):
58
+ pulumi.set(self, "policy_data", value)
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def location(self) -> Optional[pulumi.Input[str]]:
63
+ """
64
+ The location for the EkmConnection.
65
+ A full list of valid locations can be found by running `gcloud kms locations list`.
66
+ Used to find the parent resource to bind the IAM policy to. If not specified,
67
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
68
+ location is specified, it is taken from the provider configuration.
69
+ """
70
+ return pulumi.get(self, "location")
71
+
72
+ @location.setter
73
+ def location(self, value: Optional[pulumi.Input[str]]):
74
+ pulumi.set(self, "location", value)
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def name(self) -> Optional[pulumi.Input[str]]:
79
+ """
80
+ Used to find the parent resource to bind the IAM policy to
81
+ """
82
+ return pulumi.get(self, "name")
83
+
84
+ @name.setter
85
+ def name(self, value: Optional[pulumi.Input[str]]):
86
+ pulumi.set(self, "name", value)
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def project(self) -> Optional[pulumi.Input[str]]:
91
+ """
92
+ The ID of the project in which the resource belongs.
93
+ 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.
94
+ """
95
+ return pulumi.get(self, "project")
96
+
97
+ @project.setter
98
+ def project(self, value: Optional[pulumi.Input[str]]):
99
+ pulumi.set(self, "project", value)
100
+
101
+
102
+ @pulumi.input_type
103
+ class _EkmConnectionIamPolicyState:
104
+ def __init__(__self__, *,
105
+ etag: Optional[pulumi.Input[str]] = None,
106
+ location: Optional[pulumi.Input[str]] = None,
107
+ name: Optional[pulumi.Input[str]] = None,
108
+ policy_data: Optional[pulumi.Input[str]] = None,
109
+ project: Optional[pulumi.Input[str]] = None):
110
+ """
111
+ Input properties used for looking up and filtering EkmConnectionIamPolicy resources.
112
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
113
+ :param pulumi.Input[str] location: The location for the EkmConnection.
114
+ A full list of valid locations can be found by running `gcloud kms locations list`.
115
+ Used to find the parent resource to bind the IAM policy to. If not specified,
116
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
117
+ location is specified, it is taken from the provider configuration.
118
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
119
+ :param pulumi.Input[str] policy_data: The policy data generated by
120
+ a `organizations_get_iam_policy` data source.
121
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
122
+ 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.
123
+ """
124
+ if etag is not None:
125
+ pulumi.set(__self__, "etag", etag)
126
+ if location is not None:
127
+ pulumi.set(__self__, "location", location)
128
+ if name is not None:
129
+ pulumi.set(__self__, "name", name)
130
+ if policy_data is not None:
131
+ pulumi.set(__self__, "policy_data", policy_data)
132
+ if project is not None:
133
+ pulumi.set(__self__, "project", project)
134
+
135
+ @property
136
+ @pulumi.getter
137
+ def etag(self) -> Optional[pulumi.Input[str]]:
138
+ """
139
+ (Computed) The etag of the IAM policy.
140
+ """
141
+ return pulumi.get(self, "etag")
142
+
143
+ @etag.setter
144
+ def etag(self, value: Optional[pulumi.Input[str]]):
145
+ pulumi.set(self, "etag", value)
146
+
147
+ @property
148
+ @pulumi.getter
149
+ def location(self) -> Optional[pulumi.Input[str]]:
150
+ """
151
+ The location for the EkmConnection.
152
+ A full list of valid locations can be found by running `gcloud kms locations list`.
153
+ Used to find the parent resource to bind the IAM policy to. If not specified,
154
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
155
+ location is specified, it is taken from the provider configuration.
156
+ """
157
+ return pulumi.get(self, "location")
158
+
159
+ @location.setter
160
+ def location(self, value: Optional[pulumi.Input[str]]):
161
+ pulumi.set(self, "location", value)
162
+
163
+ @property
164
+ @pulumi.getter
165
+ def name(self) -> Optional[pulumi.Input[str]]:
166
+ """
167
+ Used to find the parent resource to bind the IAM policy to
168
+ """
169
+ return pulumi.get(self, "name")
170
+
171
+ @name.setter
172
+ def name(self, value: Optional[pulumi.Input[str]]):
173
+ pulumi.set(self, "name", value)
174
+
175
+ @property
176
+ @pulumi.getter(name="policyData")
177
+ def policy_data(self) -> Optional[pulumi.Input[str]]:
178
+ """
179
+ The policy data generated by
180
+ a `organizations_get_iam_policy` data source.
181
+ """
182
+ return pulumi.get(self, "policy_data")
183
+
184
+ @policy_data.setter
185
+ def policy_data(self, value: Optional[pulumi.Input[str]]):
186
+ pulumi.set(self, "policy_data", value)
187
+
188
+ @property
189
+ @pulumi.getter
190
+ def project(self) -> Optional[pulumi.Input[str]]:
191
+ """
192
+ The ID of the project in which the resource belongs.
193
+ 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.
194
+ """
195
+ return pulumi.get(self, "project")
196
+
197
+ @project.setter
198
+ def project(self, value: Optional[pulumi.Input[str]]):
199
+ pulumi.set(self, "project", value)
200
+
201
+
202
+ class EkmConnectionIamPolicy(pulumi.CustomResource):
203
+ @overload
204
+ def __init__(__self__,
205
+ resource_name: str,
206
+ opts: Optional[pulumi.ResourceOptions] = None,
207
+ location: Optional[pulumi.Input[str]] = None,
208
+ name: Optional[pulumi.Input[str]] = None,
209
+ policy_data: Optional[pulumi.Input[str]] = None,
210
+ project: Optional[pulumi.Input[str]] = None,
211
+ __props__=None):
212
+ """
213
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
214
+
215
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
216
+ * `kms.EkmConnectionIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the ekmconnection are preserved.
217
+ * `kms.EkmConnectionIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the ekmconnection are preserved.
218
+
219
+ A data source can be used to retrieve policy data in advent you do not need creation
220
+
221
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
222
+
223
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
224
+
225
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
226
+
227
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
228
+
229
+ ## kms.EkmConnectionIamPolicy
230
+
231
+ ```python
232
+ import pulumi
233
+ import pulumi_gcp as gcp
234
+
235
+ admin = gcp.organizations.get_iam_policy(bindings=[{
236
+ "role": "roles/viewer",
237
+ "members": ["user:jane@example.com"],
238
+ }])
239
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
240
+ project=example_ekmconnection["project"],
241
+ location=example_ekmconnection["location"],
242
+ name=example_ekmconnection["name"],
243
+ policy_data=admin.policy_data)
244
+ ```
245
+
246
+ With IAM Conditions:
247
+
248
+ ```python
249
+ import pulumi
250
+ import pulumi_gcp as gcp
251
+
252
+ admin = gcp.organizations.get_iam_policy(bindings=[{
253
+ "role": "roles/viewer",
254
+ "members": ["user:jane@example.com"],
255
+ "condition": {
256
+ "title": "expires_after_2019_12_31",
257
+ "description": "Expiring at midnight of 2019-12-31",
258
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
259
+ },
260
+ }])
261
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
262
+ project=example_ekmconnection["project"],
263
+ location=example_ekmconnection["location"],
264
+ name=example_ekmconnection["name"],
265
+ policy_data=admin.policy_data)
266
+ ```
267
+ ## kms.EkmConnectionIamBinding
268
+
269
+ ```python
270
+ import pulumi
271
+ import pulumi_gcp as gcp
272
+
273
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
274
+ project=example_ekmconnection["project"],
275
+ location=example_ekmconnection["location"],
276
+ name=example_ekmconnection["name"],
277
+ role="roles/viewer",
278
+ members=["user:jane@example.com"])
279
+ ```
280
+
281
+ With IAM Conditions:
282
+
283
+ ```python
284
+ import pulumi
285
+ import pulumi_gcp as gcp
286
+
287
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
288
+ project=example_ekmconnection["project"],
289
+ location=example_ekmconnection["location"],
290
+ name=example_ekmconnection["name"],
291
+ role="roles/viewer",
292
+ members=["user:jane@example.com"],
293
+ condition={
294
+ "title": "expires_after_2019_12_31",
295
+ "description": "Expiring at midnight of 2019-12-31",
296
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
297
+ })
298
+ ```
299
+ ## kms.EkmConnectionIamMember
300
+
301
+ ```python
302
+ import pulumi
303
+ import pulumi_gcp as gcp
304
+
305
+ member = gcp.kms.EkmConnectionIamMember("member",
306
+ project=example_ekmconnection["project"],
307
+ location=example_ekmconnection["location"],
308
+ name=example_ekmconnection["name"],
309
+ role="roles/viewer",
310
+ member="user:jane@example.com")
311
+ ```
312
+
313
+ With IAM Conditions:
314
+
315
+ ```python
316
+ import pulumi
317
+ import pulumi_gcp as gcp
318
+
319
+ member = gcp.kms.EkmConnectionIamMember("member",
320
+ project=example_ekmconnection["project"],
321
+ location=example_ekmconnection["location"],
322
+ name=example_ekmconnection["name"],
323
+ role="roles/viewer",
324
+ member="user:jane@example.com",
325
+ condition={
326
+ "title": "expires_after_2019_12_31",
327
+ "description": "Expiring at midnight of 2019-12-31",
328
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
329
+ })
330
+ ```
331
+
332
+ ## This resource supports User Project Overrides.
333
+
334
+ -
335
+
336
+ # IAM policy for Cloud Key Management Service EkmConnection
337
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
338
+
339
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
340
+ * `kms.EkmConnectionIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the ekmconnection are preserved.
341
+ * `kms.EkmConnectionIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the ekmconnection are preserved.
342
+
343
+ A data source can be used to retrieve policy data in advent you do not need creation
344
+
345
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
346
+
347
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
348
+
349
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
350
+
351
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
352
+
353
+ ## kms.EkmConnectionIamPolicy
354
+
355
+ ```python
356
+ import pulumi
357
+ import pulumi_gcp as gcp
358
+
359
+ admin = gcp.organizations.get_iam_policy(bindings=[{
360
+ "role": "roles/viewer",
361
+ "members": ["user:jane@example.com"],
362
+ }])
363
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
364
+ project=example_ekmconnection["project"],
365
+ location=example_ekmconnection["location"],
366
+ name=example_ekmconnection["name"],
367
+ policy_data=admin.policy_data)
368
+ ```
369
+
370
+ With IAM Conditions:
371
+
372
+ ```python
373
+ import pulumi
374
+ import pulumi_gcp as gcp
375
+
376
+ admin = gcp.organizations.get_iam_policy(bindings=[{
377
+ "role": "roles/viewer",
378
+ "members": ["user:jane@example.com"],
379
+ "condition": {
380
+ "title": "expires_after_2019_12_31",
381
+ "description": "Expiring at midnight of 2019-12-31",
382
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
383
+ },
384
+ }])
385
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
386
+ project=example_ekmconnection["project"],
387
+ location=example_ekmconnection["location"],
388
+ name=example_ekmconnection["name"],
389
+ policy_data=admin.policy_data)
390
+ ```
391
+ ## kms.EkmConnectionIamBinding
392
+
393
+ ```python
394
+ import pulumi
395
+ import pulumi_gcp as gcp
396
+
397
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
398
+ project=example_ekmconnection["project"],
399
+ location=example_ekmconnection["location"],
400
+ name=example_ekmconnection["name"],
401
+ role="roles/viewer",
402
+ members=["user:jane@example.com"])
403
+ ```
404
+
405
+ With IAM Conditions:
406
+
407
+ ```python
408
+ import pulumi
409
+ import pulumi_gcp as gcp
410
+
411
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
412
+ project=example_ekmconnection["project"],
413
+ location=example_ekmconnection["location"],
414
+ name=example_ekmconnection["name"],
415
+ role="roles/viewer",
416
+ members=["user:jane@example.com"],
417
+ condition={
418
+ "title": "expires_after_2019_12_31",
419
+ "description": "Expiring at midnight of 2019-12-31",
420
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
421
+ })
422
+ ```
423
+ ## kms.EkmConnectionIamMember
424
+
425
+ ```python
426
+ import pulumi
427
+ import pulumi_gcp as gcp
428
+
429
+ member = gcp.kms.EkmConnectionIamMember("member",
430
+ project=example_ekmconnection["project"],
431
+ location=example_ekmconnection["location"],
432
+ name=example_ekmconnection["name"],
433
+ role="roles/viewer",
434
+ member="user:jane@example.com")
435
+ ```
436
+
437
+ With IAM Conditions:
438
+
439
+ ```python
440
+ import pulumi
441
+ import pulumi_gcp as gcp
442
+
443
+ member = gcp.kms.EkmConnectionIamMember("member",
444
+ project=example_ekmconnection["project"],
445
+ location=example_ekmconnection["location"],
446
+ name=example_ekmconnection["name"],
447
+ role="roles/viewer",
448
+ member="user:jane@example.com",
449
+ condition={
450
+ "title": "expires_after_2019_12_31",
451
+ "description": "Expiring at midnight of 2019-12-31",
452
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
453
+ })
454
+ ```
455
+
456
+ ## Import
457
+
458
+ For all import syntaxes, the "resource in question" can take any of the following forms:
459
+
460
+ * projects/{{project}}/locations/{{location}}/ekmConnections/{{name}}
461
+
462
+ * {{project}}/{{location}}/{{name}}
463
+
464
+ * {{location}}/{{name}}
465
+
466
+ Any variables not passed in the import command will be taken from the provider configuration.
467
+
468
+ Cloud Key Management Service ekmconnection IAM resources can be imported using the resource identifiers, role, and member.
469
+
470
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
471
+
472
+ ```sh
473
+ $ pulumi import gcp:kms/ekmConnectionIamPolicy:EkmConnectionIamPolicy editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer user:jane@example.com"
474
+ ```
475
+
476
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
477
+
478
+ ```sh
479
+ $ pulumi import gcp:kms/ekmConnectionIamPolicy:EkmConnectionIamPolicy editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer"
480
+ ```
481
+
482
+ IAM policy imports use the identifier of the resource in question, e.g.
483
+
484
+ ```sh
485
+ $ pulumi import gcp:kms/ekmConnectionIamPolicy:EkmConnectionIamPolicy editor projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}}
486
+ ```
487
+
488
+ -> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the
489
+
490
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
491
+
492
+ :param str resource_name: The name of the resource.
493
+ :param pulumi.ResourceOptions opts: Options for the resource.
494
+ :param pulumi.Input[str] location: The location for the EkmConnection.
495
+ A full list of valid locations can be found by running `gcloud kms locations list`.
496
+ Used to find the parent resource to bind the IAM policy to. If not specified,
497
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
498
+ location is specified, it is taken from the provider configuration.
499
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
500
+ :param pulumi.Input[str] policy_data: The policy data generated by
501
+ a `organizations_get_iam_policy` data source.
502
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
503
+ 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.
504
+ """
505
+ ...
506
+ @overload
507
+ def __init__(__self__,
508
+ resource_name: str,
509
+ args: EkmConnectionIamPolicyArgs,
510
+ opts: Optional[pulumi.ResourceOptions] = None):
511
+ """
512
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
513
+
514
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
515
+ * `kms.EkmConnectionIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the ekmconnection are preserved.
516
+ * `kms.EkmConnectionIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the ekmconnection are preserved.
517
+
518
+ A data source can be used to retrieve policy data in advent you do not need creation
519
+
520
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
521
+
522
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
523
+
524
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
525
+
526
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
527
+
528
+ ## kms.EkmConnectionIamPolicy
529
+
530
+ ```python
531
+ import pulumi
532
+ import pulumi_gcp as gcp
533
+
534
+ admin = gcp.organizations.get_iam_policy(bindings=[{
535
+ "role": "roles/viewer",
536
+ "members": ["user:jane@example.com"],
537
+ }])
538
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
539
+ project=example_ekmconnection["project"],
540
+ location=example_ekmconnection["location"],
541
+ name=example_ekmconnection["name"],
542
+ policy_data=admin.policy_data)
543
+ ```
544
+
545
+ With IAM Conditions:
546
+
547
+ ```python
548
+ import pulumi
549
+ import pulumi_gcp as gcp
550
+
551
+ admin = gcp.organizations.get_iam_policy(bindings=[{
552
+ "role": "roles/viewer",
553
+ "members": ["user:jane@example.com"],
554
+ "condition": {
555
+ "title": "expires_after_2019_12_31",
556
+ "description": "Expiring at midnight of 2019-12-31",
557
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
558
+ },
559
+ }])
560
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
561
+ project=example_ekmconnection["project"],
562
+ location=example_ekmconnection["location"],
563
+ name=example_ekmconnection["name"],
564
+ policy_data=admin.policy_data)
565
+ ```
566
+ ## kms.EkmConnectionIamBinding
567
+
568
+ ```python
569
+ import pulumi
570
+ import pulumi_gcp as gcp
571
+
572
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
573
+ project=example_ekmconnection["project"],
574
+ location=example_ekmconnection["location"],
575
+ name=example_ekmconnection["name"],
576
+ role="roles/viewer",
577
+ members=["user:jane@example.com"])
578
+ ```
579
+
580
+ With IAM Conditions:
581
+
582
+ ```python
583
+ import pulumi
584
+ import pulumi_gcp as gcp
585
+
586
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
587
+ project=example_ekmconnection["project"],
588
+ location=example_ekmconnection["location"],
589
+ name=example_ekmconnection["name"],
590
+ role="roles/viewer",
591
+ members=["user:jane@example.com"],
592
+ condition={
593
+ "title": "expires_after_2019_12_31",
594
+ "description": "Expiring at midnight of 2019-12-31",
595
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
596
+ })
597
+ ```
598
+ ## kms.EkmConnectionIamMember
599
+
600
+ ```python
601
+ import pulumi
602
+ import pulumi_gcp as gcp
603
+
604
+ member = gcp.kms.EkmConnectionIamMember("member",
605
+ project=example_ekmconnection["project"],
606
+ location=example_ekmconnection["location"],
607
+ name=example_ekmconnection["name"],
608
+ role="roles/viewer",
609
+ member="user:jane@example.com")
610
+ ```
611
+
612
+ With IAM Conditions:
613
+
614
+ ```python
615
+ import pulumi
616
+ import pulumi_gcp as gcp
617
+
618
+ member = gcp.kms.EkmConnectionIamMember("member",
619
+ project=example_ekmconnection["project"],
620
+ location=example_ekmconnection["location"],
621
+ name=example_ekmconnection["name"],
622
+ role="roles/viewer",
623
+ member="user:jane@example.com",
624
+ condition={
625
+ "title": "expires_after_2019_12_31",
626
+ "description": "Expiring at midnight of 2019-12-31",
627
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
628
+ })
629
+ ```
630
+
631
+ ## This resource supports User Project Overrides.
632
+
633
+ -
634
+
635
+ # IAM policy for Cloud Key Management Service EkmConnection
636
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
637
+
638
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
639
+ * `kms.EkmConnectionIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the ekmconnection are preserved.
640
+ * `kms.EkmConnectionIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the ekmconnection are preserved.
641
+
642
+ A data source can be used to retrieve policy data in advent you do not need creation
643
+
644
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
645
+
646
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
647
+
648
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
649
+
650
+ > **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.
651
+
652
+ ## kms.EkmConnectionIamPolicy
653
+
654
+ ```python
655
+ import pulumi
656
+ import pulumi_gcp as gcp
657
+
658
+ admin = gcp.organizations.get_iam_policy(bindings=[{
659
+ "role": "roles/viewer",
660
+ "members": ["user:jane@example.com"],
661
+ }])
662
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
663
+ project=example_ekmconnection["project"],
664
+ location=example_ekmconnection["location"],
665
+ name=example_ekmconnection["name"],
666
+ policy_data=admin.policy_data)
667
+ ```
668
+
669
+ With IAM Conditions:
670
+
671
+ ```python
672
+ import pulumi
673
+ import pulumi_gcp as gcp
674
+
675
+ admin = gcp.organizations.get_iam_policy(bindings=[{
676
+ "role": "roles/viewer",
677
+ "members": ["user:jane@example.com"],
678
+ "condition": {
679
+ "title": "expires_after_2019_12_31",
680
+ "description": "Expiring at midnight of 2019-12-31",
681
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
682
+ },
683
+ }])
684
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
685
+ project=example_ekmconnection["project"],
686
+ location=example_ekmconnection["location"],
687
+ name=example_ekmconnection["name"],
688
+ policy_data=admin.policy_data)
689
+ ```
690
+ ## kms.EkmConnectionIamBinding
691
+
692
+ ```python
693
+ import pulumi
694
+ import pulumi_gcp as gcp
695
+
696
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
697
+ project=example_ekmconnection["project"],
698
+ location=example_ekmconnection["location"],
699
+ name=example_ekmconnection["name"],
700
+ role="roles/viewer",
701
+ members=["user:jane@example.com"])
702
+ ```
703
+
704
+ With IAM Conditions:
705
+
706
+ ```python
707
+ import pulumi
708
+ import pulumi_gcp as gcp
709
+
710
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
711
+ project=example_ekmconnection["project"],
712
+ location=example_ekmconnection["location"],
713
+ name=example_ekmconnection["name"],
714
+ role="roles/viewer",
715
+ members=["user:jane@example.com"],
716
+ condition={
717
+ "title": "expires_after_2019_12_31",
718
+ "description": "Expiring at midnight of 2019-12-31",
719
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
720
+ })
721
+ ```
722
+ ## kms.EkmConnectionIamMember
723
+
724
+ ```python
725
+ import pulumi
726
+ import pulumi_gcp as gcp
727
+
728
+ member = gcp.kms.EkmConnectionIamMember("member",
729
+ project=example_ekmconnection["project"],
730
+ location=example_ekmconnection["location"],
731
+ name=example_ekmconnection["name"],
732
+ role="roles/viewer",
733
+ member="user:jane@example.com")
734
+ ```
735
+
736
+ With IAM Conditions:
737
+
738
+ ```python
739
+ import pulumi
740
+ import pulumi_gcp as gcp
741
+
742
+ member = gcp.kms.EkmConnectionIamMember("member",
743
+ project=example_ekmconnection["project"],
744
+ location=example_ekmconnection["location"],
745
+ name=example_ekmconnection["name"],
746
+ role="roles/viewer",
747
+ member="user:jane@example.com",
748
+ condition={
749
+ "title": "expires_after_2019_12_31",
750
+ "description": "Expiring at midnight of 2019-12-31",
751
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
752
+ })
753
+ ```
754
+
755
+ ## Import
756
+
757
+ For all import syntaxes, the "resource in question" can take any of the following forms:
758
+
759
+ * projects/{{project}}/locations/{{location}}/ekmConnections/{{name}}
760
+
761
+ * {{project}}/{{location}}/{{name}}
762
+
763
+ * {{location}}/{{name}}
764
+
765
+ Any variables not passed in the import command will be taken from the provider configuration.
766
+
767
+ Cloud Key Management Service ekmconnection IAM resources can be imported using the resource identifiers, role, and member.
768
+
769
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
770
+
771
+ ```sh
772
+ $ pulumi import gcp:kms/ekmConnectionIamPolicy:EkmConnectionIamPolicy editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer user:jane@example.com"
773
+ ```
774
+
775
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
776
+
777
+ ```sh
778
+ $ pulumi import gcp:kms/ekmConnectionIamPolicy:EkmConnectionIamPolicy editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer"
779
+ ```
780
+
781
+ IAM policy imports use the identifier of the resource in question, e.g.
782
+
783
+ ```sh
784
+ $ pulumi import gcp:kms/ekmConnectionIamPolicy:EkmConnectionIamPolicy editor projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}}
785
+ ```
786
+
787
+ -> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the
788
+
789
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
790
+
791
+ :param str resource_name: The name of the resource.
792
+ :param EkmConnectionIamPolicyArgs args: The arguments to use to populate this resource's properties.
793
+ :param pulumi.ResourceOptions opts: Options for the resource.
794
+ """
795
+ ...
796
+ def __init__(__self__, resource_name: str, *args, **kwargs):
797
+ resource_args, opts = _utilities.get_resource_args_opts(EkmConnectionIamPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
798
+ if resource_args is not None:
799
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
800
+ else:
801
+ __self__._internal_init(resource_name, *args, **kwargs)
802
+
803
+ def _internal_init(__self__,
804
+ resource_name: str,
805
+ opts: Optional[pulumi.ResourceOptions] = None,
806
+ location: Optional[pulumi.Input[str]] = None,
807
+ name: Optional[pulumi.Input[str]] = None,
808
+ policy_data: Optional[pulumi.Input[str]] = None,
809
+ project: Optional[pulumi.Input[str]] = None,
810
+ __props__=None):
811
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
812
+ if not isinstance(opts, pulumi.ResourceOptions):
813
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
814
+ if opts.id is None:
815
+ if __props__ is not None:
816
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
817
+ __props__ = EkmConnectionIamPolicyArgs.__new__(EkmConnectionIamPolicyArgs)
818
+
819
+ __props__.__dict__["location"] = location
820
+ __props__.__dict__["name"] = name
821
+ if policy_data is None and not opts.urn:
822
+ raise TypeError("Missing required property 'policy_data'")
823
+ __props__.__dict__["policy_data"] = policy_data
824
+ __props__.__dict__["project"] = project
825
+ __props__.__dict__["etag"] = None
826
+ super(EkmConnectionIamPolicy, __self__).__init__(
827
+ 'gcp:kms/ekmConnectionIamPolicy:EkmConnectionIamPolicy',
828
+ resource_name,
829
+ __props__,
830
+ opts)
831
+
832
+ @staticmethod
833
+ def get(resource_name: str,
834
+ id: pulumi.Input[str],
835
+ opts: Optional[pulumi.ResourceOptions] = None,
836
+ etag: Optional[pulumi.Input[str]] = None,
837
+ location: Optional[pulumi.Input[str]] = None,
838
+ name: Optional[pulumi.Input[str]] = None,
839
+ policy_data: Optional[pulumi.Input[str]] = None,
840
+ project: Optional[pulumi.Input[str]] = None) -> 'EkmConnectionIamPolicy':
841
+ """
842
+ Get an existing EkmConnectionIamPolicy resource's state with the given name, id, and optional extra
843
+ properties used to qualify the lookup.
844
+
845
+ :param str resource_name: The unique name of the resulting resource.
846
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
847
+ :param pulumi.ResourceOptions opts: Options for the resource.
848
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
849
+ :param pulumi.Input[str] location: The location for the EkmConnection.
850
+ A full list of valid locations can be found by running `gcloud kms locations list`.
851
+ Used to find the parent resource to bind the IAM policy to. If not specified,
852
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
853
+ location is specified, it is taken from the provider configuration.
854
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
855
+ :param pulumi.Input[str] policy_data: The policy data generated by
856
+ a `organizations_get_iam_policy` data source.
857
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
858
+ 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.
859
+ """
860
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
861
+
862
+ __props__ = _EkmConnectionIamPolicyState.__new__(_EkmConnectionIamPolicyState)
863
+
864
+ __props__.__dict__["etag"] = etag
865
+ __props__.__dict__["location"] = location
866
+ __props__.__dict__["name"] = name
867
+ __props__.__dict__["policy_data"] = policy_data
868
+ __props__.__dict__["project"] = project
869
+ return EkmConnectionIamPolicy(resource_name, opts=opts, __props__=__props__)
870
+
871
+ @property
872
+ @pulumi.getter
873
+ def etag(self) -> pulumi.Output[str]:
874
+ """
875
+ (Computed) The etag of the IAM policy.
876
+ """
877
+ return pulumi.get(self, "etag")
878
+
879
+ @property
880
+ @pulumi.getter
881
+ def location(self) -> pulumi.Output[str]:
882
+ """
883
+ The location for the EkmConnection.
884
+ A full list of valid locations can be found by running `gcloud kms locations list`.
885
+ Used to find the parent resource to bind the IAM policy to. If not specified,
886
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
887
+ location is specified, it is taken from the provider configuration.
888
+ """
889
+ return pulumi.get(self, "location")
890
+
891
+ @property
892
+ @pulumi.getter
893
+ def name(self) -> pulumi.Output[str]:
894
+ """
895
+ Used to find the parent resource to bind the IAM policy to
896
+ """
897
+ return pulumi.get(self, "name")
898
+
899
+ @property
900
+ @pulumi.getter(name="policyData")
901
+ def policy_data(self) -> pulumi.Output[str]:
902
+ """
903
+ The policy data generated by
904
+ a `organizations_get_iam_policy` data source.
905
+ """
906
+ return pulumi.get(self, "policy_data")
907
+
908
+ @property
909
+ @pulumi.getter
910
+ def project(self) -> pulumi.Output[str]:
911
+ """
912
+ The ID of the project in which the resource belongs.
913
+ 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.
914
+ """
915
+ return pulumi.get(self, "project")
916
+