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