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