pulumi-gcp 7.39.0a1726207510__py3-none-any.whl → 8.0.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 (132) 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/cloudasset/folder_feed.py +4 -2
  26. pulumi_gcp/cloudrunv2/_inputs.py +25 -25
  27. pulumi_gcp/cloudrunv2/get_job.py +11 -1
  28. pulumi_gcp/cloudrunv2/get_service.py +11 -1
  29. pulumi_gcp/cloudrunv2/job.py +50 -0
  30. pulumi_gcp/cloudrunv2/outputs.py +26 -26
  31. pulumi_gcp/cloudrunv2/service.py +54 -0
  32. pulumi_gcp/compute/_inputs.py +117 -54
  33. pulumi_gcp/compute/backend_service.py +52 -0
  34. pulumi_gcp/compute/firewall_policy_rule.py +4 -2
  35. pulumi_gcp/compute/forwarding_rule.py +42 -0
  36. pulumi_gcp/compute/get_forwarding_rule.py +11 -1
  37. pulumi_gcp/compute/global_address.py +8 -4
  38. pulumi_gcp/compute/global_forwarding_rule.py +7 -0
  39. pulumi_gcp/compute/instance_template.py +56 -7
  40. pulumi_gcp/compute/managed_ssl_certificate.py +1 -20
  41. pulumi_gcp/compute/manged_ssl_certificate.py +1 -20
  42. pulumi_gcp/compute/network_attachment.py +8 -4
  43. pulumi_gcp/compute/node_group.py +4 -2
  44. pulumi_gcp/compute/organization_security_policy_association.py +4 -2
  45. pulumi_gcp/compute/outputs.py +101 -42
  46. pulumi_gcp/compute/project_cloud_armor_tier.py +4 -2
  47. pulumi_gcp/compute/region_backend_service.py +36 -7
  48. pulumi_gcp/compute/region_instance_template.py +56 -7
  49. pulumi_gcp/compute/region_ssl_certificate.py +49 -7
  50. pulumi_gcp/compute/ssl_certificate.py +49 -7
  51. pulumi_gcp/compute/subnetwork.py +193 -23
  52. pulumi_gcp/config/__init__.pyi +3 -5
  53. pulumi_gcp/config/vars.py +6 -10
  54. pulumi_gcp/container/_inputs.py +19 -41
  55. pulumi_gcp/container/cluster.py +79 -0
  56. pulumi_gcp/container/get_cluster.py +21 -1
  57. pulumi_gcp/container/get_engine_versions.py +8 -2
  58. pulumi_gcp/container/outputs.py +17 -40
  59. pulumi_gcp/diagflow/intent.py +4 -2
  60. pulumi_gcp/edgenetwork/network.py +83 -0
  61. pulumi_gcp/edgenetwork/subnet.py +83 -0
  62. pulumi_gcp/firebase/database_instance.py +2 -0
  63. pulumi_gcp/firebase/hosting_custom_domain.py +4 -2
  64. pulumi_gcp/firebase/hosting_version.py +4 -2
  65. pulumi_gcp/firebase/project.py +2 -0
  66. pulumi_gcp/firestore/document.py +8 -4
  67. pulumi_gcp/folder/access_approval_settings.py +12 -6
  68. pulumi_gcp/gkeonprem/_inputs.py +11 -11
  69. pulumi_gcp/gkeonprem/outputs.py +9 -9
  70. pulumi_gcp/gkeonprem/v_mware_cluster.py +31 -31
  71. pulumi_gcp/gkeonprem/v_mware_node_pool.py +186 -0
  72. pulumi_gcp/iam/access_boundary_policy.py +4 -2
  73. pulumi_gcp/iam/deny_policy.py +4 -2
  74. pulumi_gcp/iap/brand.py +4 -2
  75. pulumi_gcp/iap/client.py +4 -2
  76. pulumi_gcp/identityplatform/__init__.py +0 -1
  77. pulumi_gcp/identityplatform/_inputs.py +0 -396
  78. pulumi_gcp/identityplatform/config.py +2 -0
  79. pulumi_gcp/identityplatform/outputs.py +0 -313
  80. pulumi_gcp/integrationconnectors/managed_zone.py +4 -2
  81. pulumi_gcp/kms/__init__.py +4 -0
  82. pulumi_gcp/kms/_inputs.py +130 -0
  83. pulumi_gcp/kms/autokey_config.py +6 -2
  84. pulumi_gcp/kms/ekm_connection_iam_binding.py +1097 -0
  85. pulumi_gcp/kms/ekm_connection_iam_member.py +1097 -0
  86. pulumi_gcp/kms/ekm_connection_iam_policy.py +916 -0
  87. pulumi_gcp/kms/get_ekm_connection_iam_policy.py +177 -0
  88. pulumi_gcp/kms/key_handle.py +8 -2
  89. pulumi_gcp/kms/outputs.py +76 -0
  90. pulumi_gcp/logging/folder_settings.py +4 -2
  91. pulumi_gcp/monitoring/monitored_project.py +4 -2
  92. pulumi_gcp/networksecurity/firewall_endpoint_association.py +12 -44
  93. pulumi_gcp/networkservices/_inputs.py +23 -0
  94. pulumi_gcp/networkservices/outputs.py +17 -1
  95. pulumi_gcp/networkservices/tcp_route.py +2 -0
  96. pulumi_gcp/organizations/access_approval_settings.py +4 -2
  97. pulumi_gcp/organizations/folder.py +35 -1
  98. pulumi_gcp/organizations/get_client_config.py +14 -1
  99. pulumi_gcp/organizations/get_folder.py +11 -1
  100. pulumi_gcp/organizations/get_project.py +3 -13
  101. pulumi_gcp/organizations/project.py +3 -87
  102. pulumi_gcp/orgpolicy/policy.py +12 -6
  103. pulumi_gcp/projects/api_key.py +2 -52
  104. pulumi_gcp/provider.py +32 -52
  105. pulumi_gcp/pubsub/topic.py +1 -1
  106. pulumi_gcp/pulumi-plugin.json +1 -1
  107. pulumi_gcp/redis/cluster.py +58 -0
  108. pulumi_gcp/resourcemanager/lien.py +4 -2
  109. pulumi_gcp/securitycenter/__init__.py +1 -0
  110. pulumi_gcp/securitycenter/folder_custom_module.py +8 -4
  111. pulumi_gcp/securitycenter/management_folder_security_health_analytics_custom_module.py +8 -4
  112. pulumi_gcp/securitycenter/v2_organization_scc_big_query_exports.py +862 -0
  113. pulumi_gcp/serviceusage/consumer_quota_override.py +12 -6
  114. pulumi_gcp/sql/_inputs.py +3 -36
  115. pulumi_gcp/sql/outputs.py +6 -49
  116. pulumi_gcp/storage/_inputs.py +23 -23
  117. pulumi_gcp/storage/bucket.py +6 -6
  118. pulumi_gcp/storage/outputs.py +27 -27
  119. pulumi_gcp/tags/tag_binding.py +4 -2
  120. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -2
  121. pulumi_gcp/vmwareengine/network.py +4 -2
  122. pulumi_gcp/vpcaccess/connector.py +14 -6
  123. pulumi_gcp/vpcaccess/get_connector.py +6 -2
  124. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0.dist-info}/METADATA +1 -1
  125. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0.dist-info}/RECORD +127 -127
  126. pulumi_gcp/datastore/__init__.py +0 -10
  127. pulumi_gcp/datastore/_inputs.py +0 -76
  128. pulumi_gcp/datastore/data_store_index.py +0 -515
  129. pulumi_gcp/datastore/outputs.py +0 -51
  130. pulumi_gcp/identityplatform/project_default_config.py +0 -357
  131. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0.dist-info}/WHEEL +0 -0
  132. {pulumi_gcp-7.39.0a1726207510.dist-info → pulumi_gcp-8.0.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1097 @@
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['EkmConnectionIamMemberArgs', 'EkmConnectionIamMember']
20
+
21
+ @pulumi.input_type
22
+ class EkmConnectionIamMemberArgs:
23
+ def __init__(__self__, *,
24
+ member: pulumi.Input[str],
25
+ role: pulumi.Input[str],
26
+ condition: Optional[pulumi.Input['EkmConnectionIamMemberConditionArgs']] = None,
27
+ location: Optional[pulumi.Input[str]] = None,
28
+ name: Optional[pulumi.Input[str]] = None,
29
+ project: Optional[pulumi.Input[str]] = None):
30
+ """
31
+ The set of arguments for constructing a EkmConnectionIamMember resource.
32
+ :param pulumi.Input[str] member: Identities that will be granted the privilege in `role`.
33
+ Each entry can have one of the following values:
34
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
35
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
36
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
37
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
38
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
39
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
40
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
41
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
42
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
43
+ :param pulumi.Input[str] role: The role that should be applied. Only one
44
+ `kms.EkmConnectionIamBinding` can be used per role. Note that custom roles must be of the format
45
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
46
+ :param pulumi.Input['EkmConnectionIamMemberConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
47
+ Structure is documented below.
48
+ :param pulumi.Input[str] location: The location for the EkmConnection.
49
+ A full list of valid locations can be found by running `gcloud kms locations list`.
50
+ Used to find the parent resource to bind the IAM policy to. If not specified,
51
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
52
+ location is specified, it is taken from the provider configuration.
53
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
54
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
55
+ 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.
56
+ """
57
+ pulumi.set(__self__, "member", member)
58
+ pulumi.set(__self__, "role", role)
59
+ if condition is not None:
60
+ pulumi.set(__self__, "condition", condition)
61
+ if location is not None:
62
+ pulumi.set(__self__, "location", location)
63
+ if name is not None:
64
+ pulumi.set(__self__, "name", name)
65
+ if project is not None:
66
+ pulumi.set(__self__, "project", project)
67
+
68
+ @property
69
+ @pulumi.getter
70
+ def member(self) -> pulumi.Input[str]:
71
+ """
72
+ Identities that will be granted the privilege in `role`.
73
+ Each entry can have one of the following values:
74
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
75
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
76
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
77
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
78
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
79
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
80
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
81
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
82
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
83
+ """
84
+ return pulumi.get(self, "member")
85
+
86
+ @member.setter
87
+ def member(self, value: pulumi.Input[str]):
88
+ pulumi.set(self, "member", value)
89
+
90
+ @property
91
+ @pulumi.getter
92
+ def role(self) -> pulumi.Input[str]:
93
+ """
94
+ The role that should be applied. Only one
95
+ `kms.EkmConnectionIamBinding` can be used per role. Note that custom roles must be of the format
96
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
97
+ """
98
+ return pulumi.get(self, "role")
99
+
100
+ @role.setter
101
+ def role(self, value: pulumi.Input[str]):
102
+ pulumi.set(self, "role", value)
103
+
104
+ @property
105
+ @pulumi.getter
106
+ def condition(self) -> Optional[pulumi.Input['EkmConnectionIamMemberConditionArgs']]:
107
+ """
108
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
109
+ Structure is documented below.
110
+ """
111
+ return pulumi.get(self, "condition")
112
+
113
+ @condition.setter
114
+ def condition(self, value: Optional[pulumi.Input['EkmConnectionIamMemberConditionArgs']]):
115
+ pulumi.set(self, "condition", value)
116
+
117
+ @property
118
+ @pulumi.getter
119
+ def location(self) -> Optional[pulumi.Input[str]]:
120
+ """
121
+ The location for the EkmConnection.
122
+ A full list of valid locations can be found by running `gcloud kms locations list`.
123
+ Used to find the parent resource to bind the IAM policy to. If not specified,
124
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
125
+ location is specified, it is taken from the provider configuration.
126
+ """
127
+ return pulumi.get(self, "location")
128
+
129
+ @location.setter
130
+ def location(self, value: Optional[pulumi.Input[str]]):
131
+ pulumi.set(self, "location", value)
132
+
133
+ @property
134
+ @pulumi.getter
135
+ def name(self) -> Optional[pulumi.Input[str]]:
136
+ """
137
+ Used to find the parent resource to bind the IAM policy to
138
+ """
139
+ return pulumi.get(self, "name")
140
+
141
+ @name.setter
142
+ def name(self, value: Optional[pulumi.Input[str]]):
143
+ pulumi.set(self, "name", value)
144
+
145
+ @property
146
+ @pulumi.getter
147
+ def project(self) -> Optional[pulumi.Input[str]]:
148
+ """
149
+ The ID of the project in which the resource belongs.
150
+ 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.
151
+ """
152
+ return pulumi.get(self, "project")
153
+
154
+ @project.setter
155
+ def project(self, value: Optional[pulumi.Input[str]]):
156
+ pulumi.set(self, "project", value)
157
+
158
+
159
+ @pulumi.input_type
160
+ class _EkmConnectionIamMemberState:
161
+ def __init__(__self__, *,
162
+ condition: Optional[pulumi.Input['EkmConnectionIamMemberConditionArgs']] = None,
163
+ etag: Optional[pulumi.Input[str]] = None,
164
+ location: Optional[pulumi.Input[str]] = None,
165
+ member: Optional[pulumi.Input[str]] = None,
166
+ name: Optional[pulumi.Input[str]] = None,
167
+ project: Optional[pulumi.Input[str]] = None,
168
+ role: Optional[pulumi.Input[str]] = None):
169
+ """
170
+ Input properties used for looking up and filtering EkmConnectionIamMember resources.
171
+ :param pulumi.Input['EkmConnectionIamMemberConditionArgs'] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
172
+ Structure is documented below.
173
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
174
+ :param pulumi.Input[str] location: The location for the EkmConnection.
175
+ A full list of valid locations can be found by running `gcloud kms locations list`.
176
+ Used to find the parent resource to bind the IAM policy to. If not specified,
177
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
178
+ location is specified, it is taken from the provider configuration.
179
+ :param pulumi.Input[str] member: Identities that will be granted the privilege in `role`.
180
+ Each entry can have one of the following values:
181
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
182
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
183
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
184
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
185
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
186
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
187
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
188
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
189
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
190
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
191
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
192
+ 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.
193
+ :param pulumi.Input[str] role: The role that should be applied. Only one
194
+ `kms.EkmConnectionIamBinding` can be used per role. Note that custom roles must be of the format
195
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
196
+ """
197
+ if condition is not None:
198
+ pulumi.set(__self__, "condition", condition)
199
+ if etag is not None:
200
+ pulumi.set(__self__, "etag", etag)
201
+ if location is not None:
202
+ pulumi.set(__self__, "location", location)
203
+ if member is not None:
204
+ pulumi.set(__self__, "member", member)
205
+ if name is not None:
206
+ pulumi.set(__self__, "name", name)
207
+ if project is not None:
208
+ pulumi.set(__self__, "project", project)
209
+ if role is not None:
210
+ pulumi.set(__self__, "role", role)
211
+
212
+ @property
213
+ @pulumi.getter
214
+ def condition(self) -> Optional[pulumi.Input['EkmConnectionIamMemberConditionArgs']]:
215
+ """
216
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
217
+ Structure is documented below.
218
+ """
219
+ return pulumi.get(self, "condition")
220
+
221
+ @condition.setter
222
+ def condition(self, value: Optional[pulumi.Input['EkmConnectionIamMemberConditionArgs']]):
223
+ pulumi.set(self, "condition", value)
224
+
225
+ @property
226
+ @pulumi.getter
227
+ def etag(self) -> Optional[pulumi.Input[str]]:
228
+ """
229
+ (Computed) The etag of the IAM policy.
230
+ """
231
+ return pulumi.get(self, "etag")
232
+
233
+ @etag.setter
234
+ def etag(self, value: Optional[pulumi.Input[str]]):
235
+ pulumi.set(self, "etag", value)
236
+
237
+ @property
238
+ @pulumi.getter
239
+ def location(self) -> Optional[pulumi.Input[str]]:
240
+ """
241
+ The location for the EkmConnection.
242
+ A full list of valid locations can be found by running `gcloud kms locations list`.
243
+ Used to find the parent resource to bind the IAM policy to. If not specified,
244
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
245
+ location is specified, it is taken from the provider configuration.
246
+ """
247
+ return pulumi.get(self, "location")
248
+
249
+ @location.setter
250
+ def location(self, value: Optional[pulumi.Input[str]]):
251
+ pulumi.set(self, "location", value)
252
+
253
+ @property
254
+ @pulumi.getter
255
+ def member(self) -> Optional[pulumi.Input[str]]:
256
+ """
257
+ Identities that will be granted the privilege in `role`.
258
+ Each entry can have one of the following values:
259
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
260
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
261
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
262
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
263
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
264
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
265
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
266
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
267
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
268
+ """
269
+ return pulumi.get(self, "member")
270
+
271
+ @member.setter
272
+ def member(self, value: Optional[pulumi.Input[str]]):
273
+ pulumi.set(self, "member", value)
274
+
275
+ @property
276
+ @pulumi.getter
277
+ def name(self) -> Optional[pulumi.Input[str]]:
278
+ """
279
+ Used to find the parent resource to bind the IAM policy to
280
+ """
281
+ return pulumi.get(self, "name")
282
+
283
+ @name.setter
284
+ def name(self, value: Optional[pulumi.Input[str]]):
285
+ pulumi.set(self, "name", value)
286
+
287
+ @property
288
+ @pulumi.getter
289
+ def project(self) -> Optional[pulumi.Input[str]]:
290
+ """
291
+ The ID of the project in which the resource belongs.
292
+ 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.
293
+ """
294
+ return pulumi.get(self, "project")
295
+
296
+ @project.setter
297
+ def project(self, value: Optional[pulumi.Input[str]]):
298
+ pulumi.set(self, "project", value)
299
+
300
+ @property
301
+ @pulumi.getter
302
+ def role(self) -> Optional[pulumi.Input[str]]:
303
+ """
304
+ The role that should be applied. Only one
305
+ `kms.EkmConnectionIamBinding` can be used per role. Note that custom roles must be of the format
306
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
307
+ """
308
+ return pulumi.get(self, "role")
309
+
310
+ @role.setter
311
+ def role(self, value: Optional[pulumi.Input[str]]):
312
+ pulumi.set(self, "role", value)
313
+
314
+
315
+ class EkmConnectionIamMember(pulumi.CustomResource):
316
+ @overload
317
+ def __init__(__self__,
318
+ resource_name: str,
319
+ opts: Optional[pulumi.ResourceOptions] = None,
320
+ condition: Optional[pulumi.Input[Union['EkmConnectionIamMemberConditionArgs', 'EkmConnectionIamMemberConditionArgsDict']]] = None,
321
+ location: Optional[pulumi.Input[str]] = None,
322
+ member: Optional[pulumi.Input[str]] = None,
323
+ name: Optional[pulumi.Input[str]] = None,
324
+ project: Optional[pulumi.Input[str]] = None,
325
+ role: Optional[pulumi.Input[str]] = None,
326
+ __props__=None):
327
+ """
328
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
329
+
330
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
331
+ * `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.
332
+ * `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.
333
+
334
+ A data source can be used to retrieve policy data in advent you do not need creation
335
+
336
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
337
+
338
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
339
+
340
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
341
+
342
+ > **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.
343
+
344
+ ## kms.EkmConnectionIamPolicy
345
+
346
+ ```python
347
+ import pulumi
348
+ import pulumi_gcp as gcp
349
+
350
+ admin = gcp.organizations.get_iam_policy(bindings=[{
351
+ "role": "roles/viewer",
352
+ "members": ["user:jane@example.com"],
353
+ }])
354
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
355
+ project=example_ekmconnection["project"],
356
+ location=example_ekmconnection["location"],
357
+ name=example_ekmconnection["name"],
358
+ policy_data=admin.policy_data)
359
+ ```
360
+
361
+ With IAM Conditions:
362
+
363
+ ```python
364
+ import pulumi
365
+ import pulumi_gcp as gcp
366
+
367
+ admin = gcp.organizations.get_iam_policy(bindings=[{
368
+ "role": "roles/viewer",
369
+ "members": ["user:jane@example.com"],
370
+ "condition": {
371
+ "title": "expires_after_2019_12_31",
372
+ "description": "Expiring at midnight of 2019-12-31",
373
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
374
+ },
375
+ }])
376
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
377
+ project=example_ekmconnection["project"],
378
+ location=example_ekmconnection["location"],
379
+ name=example_ekmconnection["name"],
380
+ policy_data=admin.policy_data)
381
+ ```
382
+ ## kms.EkmConnectionIamBinding
383
+
384
+ ```python
385
+ import pulumi
386
+ import pulumi_gcp as gcp
387
+
388
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
389
+ project=example_ekmconnection["project"],
390
+ location=example_ekmconnection["location"],
391
+ name=example_ekmconnection["name"],
392
+ role="roles/viewer",
393
+ members=["user:jane@example.com"])
394
+ ```
395
+
396
+ With IAM Conditions:
397
+
398
+ ```python
399
+ import pulumi
400
+ import pulumi_gcp as gcp
401
+
402
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
403
+ project=example_ekmconnection["project"],
404
+ location=example_ekmconnection["location"],
405
+ name=example_ekmconnection["name"],
406
+ role="roles/viewer",
407
+ members=["user:jane@example.com"],
408
+ condition={
409
+ "title": "expires_after_2019_12_31",
410
+ "description": "Expiring at midnight of 2019-12-31",
411
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
412
+ })
413
+ ```
414
+ ## kms.EkmConnectionIamMember
415
+
416
+ ```python
417
+ import pulumi
418
+ import pulumi_gcp as gcp
419
+
420
+ member = gcp.kms.EkmConnectionIamMember("member",
421
+ project=example_ekmconnection["project"],
422
+ location=example_ekmconnection["location"],
423
+ name=example_ekmconnection["name"],
424
+ role="roles/viewer",
425
+ member="user:jane@example.com")
426
+ ```
427
+
428
+ With IAM Conditions:
429
+
430
+ ```python
431
+ import pulumi
432
+ import pulumi_gcp as gcp
433
+
434
+ member = gcp.kms.EkmConnectionIamMember("member",
435
+ project=example_ekmconnection["project"],
436
+ location=example_ekmconnection["location"],
437
+ name=example_ekmconnection["name"],
438
+ role="roles/viewer",
439
+ member="user:jane@example.com",
440
+ condition={
441
+ "title": "expires_after_2019_12_31",
442
+ "description": "Expiring at midnight of 2019-12-31",
443
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
444
+ })
445
+ ```
446
+
447
+ ## This resource supports User Project Overrides.
448
+
449
+ -
450
+
451
+ # IAM policy for Cloud Key Management Service EkmConnection
452
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
453
+
454
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
455
+ * `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.
456
+ * `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.
457
+
458
+ A data source can be used to retrieve policy data in advent you do not need creation
459
+
460
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
461
+
462
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
463
+
464
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
465
+
466
+ > **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.
467
+
468
+ ## kms.EkmConnectionIamPolicy
469
+
470
+ ```python
471
+ import pulumi
472
+ import pulumi_gcp as gcp
473
+
474
+ admin = gcp.organizations.get_iam_policy(bindings=[{
475
+ "role": "roles/viewer",
476
+ "members": ["user:jane@example.com"],
477
+ }])
478
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
479
+ project=example_ekmconnection["project"],
480
+ location=example_ekmconnection["location"],
481
+ name=example_ekmconnection["name"],
482
+ policy_data=admin.policy_data)
483
+ ```
484
+
485
+ With IAM Conditions:
486
+
487
+ ```python
488
+ import pulumi
489
+ import pulumi_gcp as gcp
490
+
491
+ admin = gcp.organizations.get_iam_policy(bindings=[{
492
+ "role": "roles/viewer",
493
+ "members": ["user:jane@example.com"],
494
+ "condition": {
495
+ "title": "expires_after_2019_12_31",
496
+ "description": "Expiring at midnight of 2019-12-31",
497
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
498
+ },
499
+ }])
500
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
501
+ project=example_ekmconnection["project"],
502
+ location=example_ekmconnection["location"],
503
+ name=example_ekmconnection["name"],
504
+ policy_data=admin.policy_data)
505
+ ```
506
+ ## kms.EkmConnectionIamBinding
507
+
508
+ ```python
509
+ import pulumi
510
+ import pulumi_gcp as gcp
511
+
512
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
513
+ project=example_ekmconnection["project"],
514
+ location=example_ekmconnection["location"],
515
+ name=example_ekmconnection["name"],
516
+ role="roles/viewer",
517
+ members=["user:jane@example.com"])
518
+ ```
519
+
520
+ With IAM Conditions:
521
+
522
+ ```python
523
+ import pulumi
524
+ import pulumi_gcp as gcp
525
+
526
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
527
+ project=example_ekmconnection["project"],
528
+ location=example_ekmconnection["location"],
529
+ name=example_ekmconnection["name"],
530
+ role="roles/viewer",
531
+ members=["user:jane@example.com"],
532
+ condition={
533
+ "title": "expires_after_2019_12_31",
534
+ "description": "Expiring at midnight of 2019-12-31",
535
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
536
+ })
537
+ ```
538
+ ## kms.EkmConnectionIamMember
539
+
540
+ ```python
541
+ import pulumi
542
+ import pulumi_gcp as gcp
543
+
544
+ member = gcp.kms.EkmConnectionIamMember("member",
545
+ project=example_ekmconnection["project"],
546
+ location=example_ekmconnection["location"],
547
+ name=example_ekmconnection["name"],
548
+ role="roles/viewer",
549
+ member="user:jane@example.com")
550
+ ```
551
+
552
+ With IAM Conditions:
553
+
554
+ ```python
555
+ import pulumi
556
+ import pulumi_gcp as gcp
557
+
558
+ member = gcp.kms.EkmConnectionIamMember("member",
559
+ project=example_ekmconnection["project"],
560
+ location=example_ekmconnection["location"],
561
+ name=example_ekmconnection["name"],
562
+ role="roles/viewer",
563
+ member="user:jane@example.com",
564
+ condition={
565
+ "title": "expires_after_2019_12_31",
566
+ "description": "Expiring at midnight of 2019-12-31",
567
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
568
+ })
569
+ ```
570
+
571
+ ## Import
572
+
573
+ For all import syntaxes, the "resource in question" can take any of the following forms:
574
+
575
+ * projects/{{project}}/locations/{{location}}/ekmConnections/{{name}}
576
+
577
+ * {{project}}/{{location}}/{{name}}
578
+
579
+ * {{location}}/{{name}}
580
+
581
+ Any variables not passed in the import command will be taken from the provider configuration.
582
+
583
+ Cloud Key Management Service ekmconnection IAM resources can be imported using the resource identifiers, role, and member.
584
+
585
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
586
+
587
+ ```sh
588
+ $ pulumi import gcp:kms/ekmConnectionIamMember:EkmConnectionIamMember editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer user:jane@example.com"
589
+ ```
590
+
591
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
592
+
593
+ ```sh
594
+ $ pulumi import gcp:kms/ekmConnectionIamMember:EkmConnectionIamMember editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer"
595
+ ```
596
+
597
+ IAM policy imports use the identifier of the resource in question, e.g.
598
+
599
+ ```sh
600
+ $ pulumi import gcp:kms/ekmConnectionIamMember:EkmConnectionIamMember editor projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}}
601
+ ```
602
+
603
+ -> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the
604
+
605
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
606
+
607
+ :param str resource_name: The name of the resource.
608
+ :param pulumi.ResourceOptions opts: Options for the resource.
609
+ :param pulumi.Input[Union['EkmConnectionIamMemberConditionArgs', 'EkmConnectionIamMemberConditionArgsDict']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
610
+ Structure is documented below.
611
+ :param pulumi.Input[str] location: The location for the EkmConnection.
612
+ A full list of valid locations can be found by running `gcloud kms locations list`.
613
+ Used to find the parent resource to bind the IAM policy to. If not specified,
614
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
615
+ location is specified, it is taken from the provider configuration.
616
+ :param pulumi.Input[str] member: Identities that will be granted the privilege in `role`.
617
+ Each entry can have one of the following values:
618
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
619
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
620
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
621
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
622
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
623
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
624
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
625
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
626
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
627
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
628
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
629
+ 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.
630
+ :param pulumi.Input[str] role: The role that should be applied. Only one
631
+ `kms.EkmConnectionIamBinding` can be used per role. Note that custom roles must be of the format
632
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
633
+ """
634
+ ...
635
+ @overload
636
+ def __init__(__self__,
637
+ resource_name: str,
638
+ args: EkmConnectionIamMemberArgs,
639
+ opts: Optional[pulumi.ResourceOptions] = None):
640
+ """
641
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
642
+
643
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
644
+ * `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.
645
+ * `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.
646
+
647
+ A data source can be used to retrieve policy data in advent you do not need creation
648
+
649
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
650
+
651
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
652
+
653
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
654
+
655
+ > **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.
656
+
657
+ ## kms.EkmConnectionIamPolicy
658
+
659
+ ```python
660
+ import pulumi
661
+ import pulumi_gcp as gcp
662
+
663
+ admin = gcp.organizations.get_iam_policy(bindings=[{
664
+ "role": "roles/viewer",
665
+ "members": ["user:jane@example.com"],
666
+ }])
667
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
668
+ project=example_ekmconnection["project"],
669
+ location=example_ekmconnection["location"],
670
+ name=example_ekmconnection["name"],
671
+ policy_data=admin.policy_data)
672
+ ```
673
+
674
+ With IAM Conditions:
675
+
676
+ ```python
677
+ import pulumi
678
+ import pulumi_gcp as gcp
679
+
680
+ admin = gcp.organizations.get_iam_policy(bindings=[{
681
+ "role": "roles/viewer",
682
+ "members": ["user:jane@example.com"],
683
+ "condition": {
684
+ "title": "expires_after_2019_12_31",
685
+ "description": "Expiring at midnight of 2019-12-31",
686
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
687
+ },
688
+ }])
689
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
690
+ project=example_ekmconnection["project"],
691
+ location=example_ekmconnection["location"],
692
+ name=example_ekmconnection["name"],
693
+ policy_data=admin.policy_data)
694
+ ```
695
+ ## kms.EkmConnectionIamBinding
696
+
697
+ ```python
698
+ import pulumi
699
+ import pulumi_gcp as gcp
700
+
701
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
702
+ project=example_ekmconnection["project"],
703
+ location=example_ekmconnection["location"],
704
+ name=example_ekmconnection["name"],
705
+ role="roles/viewer",
706
+ members=["user:jane@example.com"])
707
+ ```
708
+
709
+ With IAM Conditions:
710
+
711
+ ```python
712
+ import pulumi
713
+ import pulumi_gcp as gcp
714
+
715
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
716
+ project=example_ekmconnection["project"],
717
+ location=example_ekmconnection["location"],
718
+ name=example_ekmconnection["name"],
719
+ role="roles/viewer",
720
+ members=["user:jane@example.com"],
721
+ condition={
722
+ "title": "expires_after_2019_12_31",
723
+ "description": "Expiring at midnight of 2019-12-31",
724
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
725
+ })
726
+ ```
727
+ ## kms.EkmConnectionIamMember
728
+
729
+ ```python
730
+ import pulumi
731
+ import pulumi_gcp as gcp
732
+
733
+ member = gcp.kms.EkmConnectionIamMember("member",
734
+ project=example_ekmconnection["project"],
735
+ location=example_ekmconnection["location"],
736
+ name=example_ekmconnection["name"],
737
+ role="roles/viewer",
738
+ member="user:jane@example.com")
739
+ ```
740
+
741
+ With IAM Conditions:
742
+
743
+ ```python
744
+ import pulumi
745
+ import pulumi_gcp as gcp
746
+
747
+ member = gcp.kms.EkmConnectionIamMember("member",
748
+ project=example_ekmconnection["project"],
749
+ location=example_ekmconnection["location"],
750
+ name=example_ekmconnection["name"],
751
+ role="roles/viewer",
752
+ member="user:jane@example.com",
753
+ condition={
754
+ "title": "expires_after_2019_12_31",
755
+ "description": "Expiring at midnight of 2019-12-31",
756
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
757
+ })
758
+ ```
759
+
760
+ ## This resource supports User Project Overrides.
761
+
762
+ -
763
+
764
+ # IAM policy for Cloud Key Management Service EkmConnection
765
+ Three different resources help you manage your IAM policy for Cloud Key Management Service EkmConnection. Each of these resources serves a different use case:
766
+
767
+ * `kms.EkmConnectionIamPolicy`: Authoritative. Sets the IAM policy for the ekmconnection and replaces any existing policy already attached.
768
+ * `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.
769
+ * `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.
770
+
771
+ A data source can be used to retrieve policy data in advent you do not need creation
772
+
773
+ * `kms.EkmConnectionIamPolicy`: Retrieves the IAM policy for the ekmconnection
774
+
775
+ > **Note:** `kms.EkmConnectionIamPolicy` **cannot** be used in conjunction with `kms.EkmConnectionIamBinding` and `kms.EkmConnectionIamMember` or they will fight over what your policy should be.
776
+
777
+ > **Note:** `kms.EkmConnectionIamBinding` resources **can be** used in conjunction with `kms.EkmConnectionIamMember` resources **only if** they do not grant privilege to the same role.
778
+
779
+ > **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.
780
+
781
+ ## kms.EkmConnectionIamPolicy
782
+
783
+ ```python
784
+ import pulumi
785
+ import pulumi_gcp as gcp
786
+
787
+ admin = gcp.organizations.get_iam_policy(bindings=[{
788
+ "role": "roles/viewer",
789
+ "members": ["user:jane@example.com"],
790
+ }])
791
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
792
+ project=example_ekmconnection["project"],
793
+ location=example_ekmconnection["location"],
794
+ name=example_ekmconnection["name"],
795
+ policy_data=admin.policy_data)
796
+ ```
797
+
798
+ With IAM Conditions:
799
+
800
+ ```python
801
+ import pulumi
802
+ import pulumi_gcp as gcp
803
+
804
+ admin = gcp.organizations.get_iam_policy(bindings=[{
805
+ "role": "roles/viewer",
806
+ "members": ["user:jane@example.com"],
807
+ "condition": {
808
+ "title": "expires_after_2019_12_31",
809
+ "description": "Expiring at midnight of 2019-12-31",
810
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
811
+ },
812
+ }])
813
+ policy = gcp.kms.EkmConnectionIamPolicy("policy",
814
+ project=example_ekmconnection["project"],
815
+ location=example_ekmconnection["location"],
816
+ name=example_ekmconnection["name"],
817
+ policy_data=admin.policy_data)
818
+ ```
819
+ ## kms.EkmConnectionIamBinding
820
+
821
+ ```python
822
+ import pulumi
823
+ import pulumi_gcp as gcp
824
+
825
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
826
+ project=example_ekmconnection["project"],
827
+ location=example_ekmconnection["location"],
828
+ name=example_ekmconnection["name"],
829
+ role="roles/viewer",
830
+ members=["user:jane@example.com"])
831
+ ```
832
+
833
+ With IAM Conditions:
834
+
835
+ ```python
836
+ import pulumi
837
+ import pulumi_gcp as gcp
838
+
839
+ binding = gcp.kms.EkmConnectionIamBinding("binding",
840
+ project=example_ekmconnection["project"],
841
+ location=example_ekmconnection["location"],
842
+ name=example_ekmconnection["name"],
843
+ role="roles/viewer",
844
+ members=["user:jane@example.com"],
845
+ condition={
846
+ "title": "expires_after_2019_12_31",
847
+ "description": "Expiring at midnight of 2019-12-31",
848
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
849
+ })
850
+ ```
851
+ ## kms.EkmConnectionIamMember
852
+
853
+ ```python
854
+ import pulumi
855
+ import pulumi_gcp as gcp
856
+
857
+ member = gcp.kms.EkmConnectionIamMember("member",
858
+ project=example_ekmconnection["project"],
859
+ location=example_ekmconnection["location"],
860
+ name=example_ekmconnection["name"],
861
+ role="roles/viewer",
862
+ member="user:jane@example.com")
863
+ ```
864
+
865
+ With IAM Conditions:
866
+
867
+ ```python
868
+ import pulumi
869
+ import pulumi_gcp as gcp
870
+
871
+ member = gcp.kms.EkmConnectionIamMember("member",
872
+ project=example_ekmconnection["project"],
873
+ location=example_ekmconnection["location"],
874
+ name=example_ekmconnection["name"],
875
+ role="roles/viewer",
876
+ member="user:jane@example.com",
877
+ condition={
878
+ "title": "expires_after_2019_12_31",
879
+ "description": "Expiring at midnight of 2019-12-31",
880
+ "expression": "request.time < timestamp(\\"2020-01-01T00:00:00Z\\")",
881
+ })
882
+ ```
883
+
884
+ ## Import
885
+
886
+ For all import syntaxes, the "resource in question" can take any of the following forms:
887
+
888
+ * projects/{{project}}/locations/{{location}}/ekmConnections/{{name}}
889
+
890
+ * {{project}}/{{location}}/{{name}}
891
+
892
+ * {{location}}/{{name}}
893
+
894
+ Any variables not passed in the import command will be taken from the provider configuration.
895
+
896
+ Cloud Key Management Service ekmconnection IAM resources can be imported using the resource identifiers, role, and member.
897
+
898
+ IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.
899
+
900
+ ```sh
901
+ $ pulumi import gcp:kms/ekmConnectionIamMember:EkmConnectionIamMember editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer user:jane@example.com"
902
+ ```
903
+
904
+ IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.
905
+
906
+ ```sh
907
+ $ pulumi import gcp:kms/ekmConnectionIamMember:EkmConnectionIamMember editor "projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}} roles/viewer"
908
+ ```
909
+
910
+ IAM policy imports use the identifier of the resource in question, e.g.
911
+
912
+ ```sh
913
+ $ pulumi import gcp:kms/ekmConnectionIamMember:EkmConnectionIamMember editor projects/{{project}}/locations/{{location}}/ekmConnections/{{ekm_connection}}
914
+ ```
915
+
916
+ -> **Custom Roles**: If you're importing a IAM resource with a custom role, make sure to use the
917
+
918
+ full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.
919
+
920
+ :param str resource_name: The name of the resource.
921
+ :param EkmConnectionIamMemberArgs args: The arguments to use to populate this resource's properties.
922
+ :param pulumi.ResourceOptions opts: Options for the resource.
923
+ """
924
+ ...
925
+ def __init__(__self__, resource_name: str, *args, **kwargs):
926
+ resource_args, opts = _utilities.get_resource_args_opts(EkmConnectionIamMemberArgs, pulumi.ResourceOptions, *args, **kwargs)
927
+ if resource_args is not None:
928
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
929
+ else:
930
+ __self__._internal_init(resource_name, *args, **kwargs)
931
+
932
+ def _internal_init(__self__,
933
+ resource_name: str,
934
+ opts: Optional[pulumi.ResourceOptions] = None,
935
+ condition: Optional[pulumi.Input[Union['EkmConnectionIamMemberConditionArgs', 'EkmConnectionIamMemberConditionArgsDict']]] = None,
936
+ location: Optional[pulumi.Input[str]] = None,
937
+ member: Optional[pulumi.Input[str]] = None,
938
+ name: Optional[pulumi.Input[str]] = None,
939
+ project: Optional[pulumi.Input[str]] = None,
940
+ role: Optional[pulumi.Input[str]] = None,
941
+ __props__=None):
942
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
943
+ if not isinstance(opts, pulumi.ResourceOptions):
944
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
945
+ if opts.id is None:
946
+ if __props__ is not None:
947
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
948
+ __props__ = EkmConnectionIamMemberArgs.__new__(EkmConnectionIamMemberArgs)
949
+
950
+ __props__.__dict__["condition"] = condition
951
+ __props__.__dict__["location"] = location
952
+ if member is None and not opts.urn:
953
+ raise TypeError("Missing required property 'member'")
954
+ __props__.__dict__["member"] = member
955
+ __props__.__dict__["name"] = name
956
+ __props__.__dict__["project"] = project
957
+ if role is None and not opts.urn:
958
+ raise TypeError("Missing required property 'role'")
959
+ __props__.__dict__["role"] = role
960
+ __props__.__dict__["etag"] = None
961
+ super(EkmConnectionIamMember, __self__).__init__(
962
+ 'gcp:kms/ekmConnectionIamMember:EkmConnectionIamMember',
963
+ resource_name,
964
+ __props__,
965
+ opts)
966
+
967
+ @staticmethod
968
+ def get(resource_name: str,
969
+ id: pulumi.Input[str],
970
+ opts: Optional[pulumi.ResourceOptions] = None,
971
+ condition: Optional[pulumi.Input[Union['EkmConnectionIamMemberConditionArgs', 'EkmConnectionIamMemberConditionArgsDict']]] = None,
972
+ etag: Optional[pulumi.Input[str]] = None,
973
+ location: Optional[pulumi.Input[str]] = None,
974
+ member: Optional[pulumi.Input[str]] = None,
975
+ name: Optional[pulumi.Input[str]] = None,
976
+ project: Optional[pulumi.Input[str]] = None,
977
+ role: Optional[pulumi.Input[str]] = None) -> 'EkmConnectionIamMember':
978
+ """
979
+ Get an existing EkmConnectionIamMember resource's state with the given name, id, and optional extra
980
+ properties used to qualify the lookup.
981
+
982
+ :param str resource_name: The unique name of the resulting resource.
983
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
984
+ :param pulumi.ResourceOptions opts: Options for the resource.
985
+ :param pulumi.Input[Union['EkmConnectionIamMemberConditionArgs', 'EkmConnectionIamMemberConditionArgsDict']] condition: An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
986
+ Structure is documented below.
987
+ :param pulumi.Input[str] etag: (Computed) The etag of the IAM policy.
988
+ :param pulumi.Input[str] location: The location for the EkmConnection.
989
+ A full list of valid locations can be found by running `gcloud kms locations list`.
990
+ Used to find the parent resource to bind the IAM policy to. If not specified,
991
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
992
+ location is specified, it is taken from the provider configuration.
993
+ :param pulumi.Input[str] member: Identities that will be granted the privilege in `role`.
994
+ Each entry can have one of the following values:
995
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
996
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
997
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
998
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
999
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
1000
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
1001
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
1002
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
1003
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
1004
+ :param pulumi.Input[str] name: Used to find the parent resource to bind the IAM policy to
1005
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
1006
+ 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.
1007
+ :param pulumi.Input[str] role: The role that should be applied. Only one
1008
+ `kms.EkmConnectionIamBinding` can be used per role. Note that custom roles must be of the format
1009
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
1010
+ """
1011
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1012
+
1013
+ __props__ = _EkmConnectionIamMemberState.__new__(_EkmConnectionIamMemberState)
1014
+
1015
+ __props__.__dict__["condition"] = condition
1016
+ __props__.__dict__["etag"] = etag
1017
+ __props__.__dict__["location"] = location
1018
+ __props__.__dict__["member"] = member
1019
+ __props__.__dict__["name"] = name
1020
+ __props__.__dict__["project"] = project
1021
+ __props__.__dict__["role"] = role
1022
+ return EkmConnectionIamMember(resource_name, opts=opts, __props__=__props__)
1023
+
1024
+ @property
1025
+ @pulumi.getter
1026
+ def condition(self) -> pulumi.Output[Optional['outputs.EkmConnectionIamMemberCondition']]:
1027
+ """
1028
+ An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
1029
+ Structure is documented below.
1030
+ """
1031
+ return pulumi.get(self, "condition")
1032
+
1033
+ @property
1034
+ @pulumi.getter
1035
+ def etag(self) -> pulumi.Output[str]:
1036
+ """
1037
+ (Computed) The etag of the IAM policy.
1038
+ """
1039
+ return pulumi.get(self, "etag")
1040
+
1041
+ @property
1042
+ @pulumi.getter
1043
+ def location(self) -> pulumi.Output[str]:
1044
+ """
1045
+ The location for the EkmConnection.
1046
+ A full list of valid locations can be found by running `gcloud kms locations list`.
1047
+ Used to find the parent resource to bind the IAM policy to. If not specified,
1048
+ the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
1049
+ location is specified, it is taken from the provider configuration.
1050
+ """
1051
+ return pulumi.get(self, "location")
1052
+
1053
+ @property
1054
+ @pulumi.getter
1055
+ def member(self) -> pulumi.Output[str]:
1056
+ """
1057
+ Identities that will be granted the privilege in `role`.
1058
+ Each entry can have one of the following values:
1059
+ * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
1060
+ * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
1061
+ * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
1062
+ * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
1063
+ * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
1064
+ * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
1065
+ * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
1066
+ * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
1067
+ * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
1068
+ """
1069
+ return pulumi.get(self, "member")
1070
+
1071
+ @property
1072
+ @pulumi.getter
1073
+ def name(self) -> pulumi.Output[str]:
1074
+ """
1075
+ Used to find the parent resource to bind the IAM policy to
1076
+ """
1077
+ return pulumi.get(self, "name")
1078
+
1079
+ @property
1080
+ @pulumi.getter
1081
+ def project(self) -> pulumi.Output[str]:
1082
+ """
1083
+ The ID of the project in which the resource belongs.
1084
+ 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.
1085
+ """
1086
+ return pulumi.get(self, "project")
1087
+
1088
+ @property
1089
+ @pulumi.getter
1090
+ def role(self) -> pulumi.Output[str]:
1091
+ """
1092
+ The role that should be applied. Only one
1093
+ `kms.EkmConnectionIamBinding` can be used per role. Note that custom roles must be of the format
1094
+ `[projects|organizations]/{parent-name}/roles/{role-name}`.
1095
+ """
1096
+ return pulumi.get(self, "role")
1097
+