pulumi-gcp 7.22.0a1715345822__py3-none-any.whl → 7.23.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. pulumi_gcp/__init__.py +35 -0
  2. pulumi_gcp/alloydb/_inputs.py +139 -0
  3. pulumi_gcp/alloydb/cluster.py +54 -0
  4. pulumi_gcp/alloydb/outputs.py +145 -0
  5. pulumi_gcp/applicationintegration/auth_config.py +2 -6
  6. pulumi_gcp/applicationintegration/client.py +133 -18
  7. pulumi_gcp/bigquery/dataset.py +2 -2
  8. pulumi_gcp/bigquery/job.py +16 -20
  9. pulumi_gcp/bigquery/table.py +47 -0
  10. pulumi_gcp/bigtable/__init__.py +1 -0
  11. pulumi_gcp/bigtable/_inputs.py +101 -0
  12. pulumi_gcp/bigtable/authorized_view.py +440 -0
  13. pulumi_gcp/bigtable/outputs.py +119 -0
  14. pulumi_gcp/certificateauthority/certificate_template.py +70 -0
  15. pulumi_gcp/cloudbuildv2/repository.py +2 -2
  16. pulumi_gcp/clouddeploy/_inputs.py +96 -0
  17. pulumi_gcp/clouddeploy/custom_target_type.py +46 -0
  18. pulumi_gcp/clouddeploy/delivery_pipeline.py +7 -7
  19. pulumi_gcp/clouddeploy/outputs.py +96 -1
  20. pulumi_gcp/clouddeploy/target.py +54 -7
  21. pulumi_gcp/cloudrunv2/job.py +2 -4
  22. pulumi_gcp/cloudrunv2/service.py +2 -4
  23. pulumi_gcp/compute/_inputs.py +693 -0
  24. pulumi_gcp/compute/firewall_policy_rule.py +125 -10
  25. pulumi_gcp/compute/network_firewall_policy_rule.py +125 -10
  26. pulumi_gcp/compute/outputs.py +688 -0
  27. pulumi_gcp/compute/region_network_firewall_policy_rule.py +125 -10
  28. pulumi_gcp/compute/region_security_policy_rule.py +230 -1
  29. pulumi_gcp/compute/router_peer.py +54 -14
  30. pulumi_gcp/config/__init__.pyi +2 -0
  31. pulumi_gcp/config/vars.py +4 -0
  32. pulumi_gcp/container/_inputs.py +236 -3
  33. pulumi_gcp/container/outputs.py +365 -4
  34. pulumi_gcp/dataflow/flex_template_job.py +28 -28
  35. pulumi_gcp/dataflow/job.py +28 -14
  36. pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +0 -528
  37. pulumi_gcp/firebaserules/release.py +2 -2
  38. pulumi_gcp/iam/_inputs.py +191 -2
  39. pulumi_gcp/iam/outputs.py +197 -2
  40. pulumi_gcp/iam/workforce_pool_provider.py +245 -0
  41. pulumi_gcp/integrationconnectors/__init__.py +1 -0
  42. pulumi_gcp/integrationconnectors/managed_zone.py +753 -0
  43. pulumi_gcp/networkconnectivity/__init__.py +1 -0
  44. pulumi_gcp/networkconnectivity/regional_endpoint.py +946 -0
  45. pulumi_gcp/networksecurity/firewall_endpoint.py +34 -0
  46. pulumi_gcp/networksecurity/firewall_endpoint_association.py +24 -0
  47. pulumi_gcp/networksecurity/security_profile.py +16 -0
  48. pulumi_gcp/networksecurity/security_profile_group.py +18 -0
  49. pulumi_gcp/networksecurity/tls_inspection_policy.py +16 -0
  50. pulumi_gcp/orgpolicy/policy.py +2 -2
  51. pulumi_gcp/privilegedaccessmanager/__init__.py +10 -0
  52. pulumi_gcp/privilegedaccessmanager/_inputs.py +420 -0
  53. pulumi_gcp/privilegedaccessmanager/entitlement.py +852 -0
  54. pulumi_gcp/privilegedaccessmanager/outputs.py +491 -0
  55. pulumi_gcp/provider.py +20 -0
  56. pulumi_gcp/pubsub/subscription.py +4 -4
  57. pulumi_gcp/pulumi-plugin.json +2 -1
  58. pulumi_gcp/redis/cluster.py +69 -2
  59. pulumi_gcp/storage/__init__.py +1 -0
  60. pulumi_gcp/storage/get_buckets.py +138 -0
  61. pulumi_gcp/storage/outputs.py +63 -0
  62. {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.23.0.dist-info}/METADATA +1 -1
  63. {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.23.0.dist-info}/RECORD +65 -57
  64. {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.23.0.dist-info}/WHEEL +0 -0
  65. {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.23.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,491 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+ from . import outputs
12
+
13
+ __all__ = [
14
+ 'EntitlementAdditionalNotificationTargets',
15
+ 'EntitlementApprovalWorkflow',
16
+ 'EntitlementApprovalWorkflowManualApprovals',
17
+ 'EntitlementApprovalWorkflowManualApprovalsStep',
18
+ 'EntitlementApprovalWorkflowManualApprovalsStepApprovers',
19
+ 'EntitlementEligibleUser',
20
+ 'EntitlementPrivilegedAccess',
21
+ 'EntitlementPrivilegedAccessGcpIamAccess',
22
+ 'EntitlementPrivilegedAccessGcpIamAccessRoleBinding',
23
+ 'EntitlementRequesterJustificationConfig',
24
+ 'EntitlementRequesterJustificationConfigNotMandatory',
25
+ 'EntitlementRequesterJustificationConfigUnstructured',
26
+ ]
27
+
28
+ @pulumi.output_type
29
+ class EntitlementAdditionalNotificationTargets(dict):
30
+ @staticmethod
31
+ def __key_warning(key: str):
32
+ suggest = None
33
+ if key == "adminEmailRecipients":
34
+ suggest = "admin_email_recipients"
35
+ elif key == "requesterEmailRecipients":
36
+ suggest = "requester_email_recipients"
37
+
38
+ if suggest:
39
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementAdditionalNotificationTargets. Access the value via the '{suggest}' property getter instead.")
40
+
41
+ def __getitem__(self, key: str) -> Any:
42
+ EntitlementAdditionalNotificationTargets.__key_warning(key)
43
+ return super().__getitem__(key)
44
+
45
+ def get(self, key: str, default = None) -> Any:
46
+ EntitlementAdditionalNotificationTargets.__key_warning(key)
47
+ return super().get(key, default)
48
+
49
+ def __init__(__self__, *,
50
+ admin_email_recipients: Optional[Sequence[str]] = None,
51
+ requester_email_recipients: Optional[Sequence[str]] = None):
52
+ """
53
+ :param Sequence[str] admin_email_recipients: Optional. Additional email addresses to be notified when a principal(requester) is granted access.
54
+ :param Sequence[str] requester_email_recipients: Optional. Additional email address to be notified about an eligible entitlement.
55
+ """
56
+ if admin_email_recipients is not None:
57
+ pulumi.set(__self__, "admin_email_recipients", admin_email_recipients)
58
+ if requester_email_recipients is not None:
59
+ pulumi.set(__self__, "requester_email_recipients", requester_email_recipients)
60
+
61
+ @property
62
+ @pulumi.getter(name="adminEmailRecipients")
63
+ def admin_email_recipients(self) -> Optional[Sequence[str]]:
64
+ """
65
+ Optional. Additional email addresses to be notified when a principal(requester) is granted access.
66
+ """
67
+ return pulumi.get(self, "admin_email_recipients")
68
+
69
+ @property
70
+ @pulumi.getter(name="requesterEmailRecipients")
71
+ def requester_email_recipients(self) -> Optional[Sequence[str]]:
72
+ """
73
+ Optional. Additional email address to be notified about an eligible entitlement.
74
+ """
75
+ return pulumi.get(self, "requester_email_recipients")
76
+
77
+
78
+ @pulumi.output_type
79
+ class EntitlementApprovalWorkflow(dict):
80
+ @staticmethod
81
+ def __key_warning(key: str):
82
+ suggest = None
83
+ if key == "manualApprovals":
84
+ suggest = "manual_approvals"
85
+
86
+ if suggest:
87
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementApprovalWorkflow. Access the value via the '{suggest}' property getter instead.")
88
+
89
+ def __getitem__(self, key: str) -> Any:
90
+ EntitlementApprovalWorkflow.__key_warning(key)
91
+ return super().__getitem__(key)
92
+
93
+ def get(self, key: str, default = None) -> Any:
94
+ EntitlementApprovalWorkflow.__key_warning(key)
95
+ return super().get(key, default)
96
+
97
+ def __init__(__self__, *,
98
+ manual_approvals: 'outputs.EntitlementApprovalWorkflowManualApprovals'):
99
+ """
100
+ :param 'EntitlementApprovalWorkflowManualApprovalsArgs' manual_approvals: A manual approval workflow where users who are designated as approvers need to call the ApproveGrant/DenyGrant APIs for an Grant.
101
+ The workflow can consist of multiple serial steps where each step defines who can act as Approver in that step and how many of those users should approve before the workflow moves to the next step.
102
+ This can be used to create approval workflows such as
103
+ * Require an approval from any user in a group G.
104
+ * Require an approval from any k number of users from a Group G.
105
+ * Require an approval from any user in a group G and then from a user U. etc.
106
+ A single user might be part of `approvers` ACL for multiple steps in this workflow but they can only approve once and that approval will only be considered to satisfy the approval step at which it was granted.
107
+ Structure is documented below.
108
+ """
109
+ pulumi.set(__self__, "manual_approvals", manual_approvals)
110
+
111
+ @property
112
+ @pulumi.getter(name="manualApprovals")
113
+ def manual_approvals(self) -> 'outputs.EntitlementApprovalWorkflowManualApprovals':
114
+ """
115
+ A manual approval workflow where users who are designated as approvers need to call the ApproveGrant/DenyGrant APIs for an Grant.
116
+ The workflow can consist of multiple serial steps where each step defines who can act as Approver in that step and how many of those users should approve before the workflow moves to the next step.
117
+ This can be used to create approval workflows such as
118
+ * Require an approval from any user in a group G.
119
+ * Require an approval from any k number of users from a Group G.
120
+ * Require an approval from any user in a group G and then from a user U. etc.
121
+ A single user might be part of `approvers` ACL for multiple steps in this workflow but they can only approve once and that approval will only be considered to satisfy the approval step at which it was granted.
122
+ Structure is documented below.
123
+ """
124
+ return pulumi.get(self, "manual_approvals")
125
+
126
+
127
+ @pulumi.output_type
128
+ class EntitlementApprovalWorkflowManualApprovals(dict):
129
+ @staticmethod
130
+ def __key_warning(key: str):
131
+ suggest = None
132
+ if key == "requireApproverJustification":
133
+ suggest = "require_approver_justification"
134
+
135
+ if suggest:
136
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementApprovalWorkflowManualApprovals. Access the value via the '{suggest}' property getter instead.")
137
+
138
+ def __getitem__(self, key: str) -> Any:
139
+ EntitlementApprovalWorkflowManualApprovals.__key_warning(key)
140
+ return super().__getitem__(key)
141
+
142
+ def get(self, key: str, default = None) -> Any:
143
+ EntitlementApprovalWorkflowManualApprovals.__key_warning(key)
144
+ return super().get(key, default)
145
+
146
+ def __init__(__self__, *,
147
+ steps: Sequence['outputs.EntitlementApprovalWorkflowManualApprovalsStep'],
148
+ require_approver_justification: Optional[bool] = None):
149
+ """
150
+ :param Sequence['EntitlementApprovalWorkflowManualApprovalsStepArgs'] steps: List of approval steps in this workflow. These steps would be followed in the specified order sequentially. 1 step is supported for now.
151
+ Structure is documented below.
152
+ :param bool require_approver_justification: Optional. Do the approvers need to provide a justification for their actions?
153
+ """
154
+ pulumi.set(__self__, "steps", steps)
155
+ if require_approver_justification is not None:
156
+ pulumi.set(__self__, "require_approver_justification", require_approver_justification)
157
+
158
+ @property
159
+ @pulumi.getter
160
+ def steps(self) -> Sequence['outputs.EntitlementApprovalWorkflowManualApprovalsStep']:
161
+ """
162
+ List of approval steps in this workflow. These steps would be followed in the specified order sequentially. 1 step is supported for now.
163
+ Structure is documented below.
164
+ """
165
+ return pulumi.get(self, "steps")
166
+
167
+ @property
168
+ @pulumi.getter(name="requireApproverJustification")
169
+ def require_approver_justification(self) -> Optional[bool]:
170
+ """
171
+ Optional. Do the approvers need to provide a justification for their actions?
172
+ """
173
+ return pulumi.get(self, "require_approver_justification")
174
+
175
+
176
+ @pulumi.output_type
177
+ class EntitlementApprovalWorkflowManualApprovalsStep(dict):
178
+ @staticmethod
179
+ def __key_warning(key: str):
180
+ suggest = None
181
+ if key == "approvalsNeeded":
182
+ suggest = "approvals_needed"
183
+ elif key == "approverEmailRecipients":
184
+ suggest = "approver_email_recipients"
185
+
186
+ if suggest:
187
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementApprovalWorkflowManualApprovalsStep. Access the value via the '{suggest}' property getter instead.")
188
+
189
+ def __getitem__(self, key: str) -> Any:
190
+ EntitlementApprovalWorkflowManualApprovalsStep.__key_warning(key)
191
+ return super().__getitem__(key)
192
+
193
+ def get(self, key: str, default = None) -> Any:
194
+ EntitlementApprovalWorkflowManualApprovalsStep.__key_warning(key)
195
+ return super().get(key, default)
196
+
197
+ def __init__(__self__, *,
198
+ approvers: 'outputs.EntitlementApprovalWorkflowManualApprovalsStepApprovers',
199
+ approvals_needed: Optional[int] = None,
200
+ approver_email_recipients: Optional[Sequence[str]] = None):
201
+ """
202
+ :param 'EntitlementApprovalWorkflowManualApprovalsStepApproversArgs' approvers: The potential set of approvers in this step. This list should contain at only one entry.
203
+ Structure is documented below.
204
+ :param int approvals_needed: How many users from the above list need to approve.
205
+ If there are not enough distinct users in the list above then the workflow
206
+ will indefinitely block. Should always be greater than 0. Currently 1 is the only
207
+ supported value.
208
+ :param Sequence[str] approver_email_recipients: Optional. Additional email addresses to be notified when a grant is pending approval.
209
+ """
210
+ pulumi.set(__self__, "approvers", approvers)
211
+ if approvals_needed is not None:
212
+ pulumi.set(__self__, "approvals_needed", approvals_needed)
213
+ if approver_email_recipients is not None:
214
+ pulumi.set(__self__, "approver_email_recipients", approver_email_recipients)
215
+
216
+ @property
217
+ @pulumi.getter
218
+ def approvers(self) -> 'outputs.EntitlementApprovalWorkflowManualApprovalsStepApprovers':
219
+ """
220
+ The potential set of approvers in this step. This list should contain at only one entry.
221
+ Structure is documented below.
222
+ """
223
+ return pulumi.get(self, "approvers")
224
+
225
+ @property
226
+ @pulumi.getter(name="approvalsNeeded")
227
+ def approvals_needed(self) -> Optional[int]:
228
+ """
229
+ How many users from the above list need to approve.
230
+ If there are not enough distinct users in the list above then the workflow
231
+ will indefinitely block. Should always be greater than 0. Currently 1 is the only
232
+ supported value.
233
+ """
234
+ return pulumi.get(self, "approvals_needed")
235
+
236
+ @property
237
+ @pulumi.getter(name="approverEmailRecipients")
238
+ def approver_email_recipients(self) -> Optional[Sequence[str]]:
239
+ """
240
+ Optional. Additional email addresses to be notified when a grant is pending approval.
241
+ """
242
+ return pulumi.get(self, "approver_email_recipients")
243
+
244
+
245
+ @pulumi.output_type
246
+ class EntitlementApprovalWorkflowManualApprovalsStepApprovers(dict):
247
+ def __init__(__self__, *,
248
+ principals: Sequence[str]):
249
+ """
250
+ :param Sequence[str] principals: Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at: https://cloud.google.com/iam/docs/principal-identifiers#v1
251
+ """
252
+ pulumi.set(__self__, "principals", principals)
253
+
254
+ @property
255
+ @pulumi.getter
256
+ def principals(self) -> Sequence[str]:
257
+ """
258
+ Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at: https://cloud.google.com/iam/docs/principal-identifiers#v1
259
+ """
260
+ return pulumi.get(self, "principals")
261
+
262
+
263
+ @pulumi.output_type
264
+ class EntitlementEligibleUser(dict):
265
+ def __init__(__self__, *,
266
+ principals: Sequence[str]):
267
+ """
268
+ :param Sequence[str] principals: Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at "https://cloud.google.com/iam/docs/principal-identifiers#v1"
269
+ """
270
+ pulumi.set(__self__, "principals", principals)
271
+
272
+ @property
273
+ @pulumi.getter
274
+ def principals(self) -> Sequence[str]:
275
+ """
276
+ Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at "https://cloud.google.com/iam/docs/principal-identifiers#v1"
277
+ """
278
+ return pulumi.get(self, "principals")
279
+
280
+
281
+ @pulumi.output_type
282
+ class EntitlementPrivilegedAccess(dict):
283
+ @staticmethod
284
+ def __key_warning(key: str):
285
+ suggest = None
286
+ if key == "gcpIamAccess":
287
+ suggest = "gcp_iam_access"
288
+
289
+ if suggest:
290
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementPrivilegedAccess. Access the value via the '{suggest}' property getter instead.")
291
+
292
+ def __getitem__(self, key: str) -> Any:
293
+ EntitlementPrivilegedAccess.__key_warning(key)
294
+ return super().__getitem__(key)
295
+
296
+ def get(self, key: str, default = None) -> Any:
297
+ EntitlementPrivilegedAccess.__key_warning(key)
298
+ return super().get(key, default)
299
+
300
+ def __init__(__self__, *,
301
+ gcp_iam_access: 'outputs.EntitlementPrivilegedAccessGcpIamAccess'):
302
+ """
303
+ :param 'EntitlementPrivilegedAccessGcpIamAccessArgs' gcp_iam_access: GcpIamAccess represents IAM based access control on a GCP resource. Refer to https://cloud.google.com/iam/docs to understand more about IAM.
304
+ Structure is documented below.
305
+ """
306
+ pulumi.set(__self__, "gcp_iam_access", gcp_iam_access)
307
+
308
+ @property
309
+ @pulumi.getter(name="gcpIamAccess")
310
+ def gcp_iam_access(self) -> 'outputs.EntitlementPrivilegedAccessGcpIamAccess':
311
+ """
312
+ GcpIamAccess represents IAM based access control on a GCP resource. Refer to https://cloud.google.com/iam/docs to understand more about IAM.
313
+ Structure is documented below.
314
+ """
315
+ return pulumi.get(self, "gcp_iam_access")
316
+
317
+
318
+ @pulumi.output_type
319
+ class EntitlementPrivilegedAccessGcpIamAccess(dict):
320
+ @staticmethod
321
+ def __key_warning(key: str):
322
+ suggest = None
323
+ if key == "resourceType":
324
+ suggest = "resource_type"
325
+ elif key == "roleBindings":
326
+ suggest = "role_bindings"
327
+
328
+ if suggest:
329
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementPrivilegedAccessGcpIamAccess. Access the value via the '{suggest}' property getter instead.")
330
+
331
+ def __getitem__(self, key: str) -> Any:
332
+ EntitlementPrivilegedAccessGcpIamAccess.__key_warning(key)
333
+ return super().__getitem__(key)
334
+
335
+ def get(self, key: str, default = None) -> Any:
336
+ EntitlementPrivilegedAccessGcpIamAccess.__key_warning(key)
337
+ return super().get(key, default)
338
+
339
+ def __init__(__self__, *,
340
+ resource: str,
341
+ resource_type: str,
342
+ role_bindings: Sequence['outputs.EntitlementPrivilegedAccessGcpIamAccessRoleBinding']):
343
+ """
344
+ :param str resource: Name of the resource.
345
+ :param str resource_type: The type of this resource.
346
+ :param Sequence['EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs'] role_bindings: Role bindings to be created on successful grant.
347
+ Structure is documented below.
348
+ """
349
+ pulumi.set(__self__, "resource", resource)
350
+ pulumi.set(__self__, "resource_type", resource_type)
351
+ pulumi.set(__self__, "role_bindings", role_bindings)
352
+
353
+ @property
354
+ @pulumi.getter
355
+ def resource(self) -> str:
356
+ """
357
+ Name of the resource.
358
+ """
359
+ return pulumi.get(self, "resource")
360
+
361
+ @property
362
+ @pulumi.getter(name="resourceType")
363
+ def resource_type(self) -> str:
364
+ """
365
+ The type of this resource.
366
+ """
367
+ return pulumi.get(self, "resource_type")
368
+
369
+ @property
370
+ @pulumi.getter(name="roleBindings")
371
+ def role_bindings(self) -> Sequence['outputs.EntitlementPrivilegedAccessGcpIamAccessRoleBinding']:
372
+ """
373
+ Role bindings to be created on successful grant.
374
+ Structure is documented below.
375
+ """
376
+ return pulumi.get(self, "role_bindings")
377
+
378
+
379
+ @pulumi.output_type
380
+ class EntitlementPrivilegedAccessGcpIamAccessRoleBinding(dict):
381
+ @staticmethod
382
+ def __key_warning(key: str):
383
+ suggest = None
384
+ if key == "conditionExpression":
385
+ suggest = "condition_expression"
386
+
387
+ if suggest:
388
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementPrivilegedAccessGcpIamAccessRoleBinding. Access the value via the '{suggest}' property getter instead.")
389
+
390
+ def __getitem__(self, key: str) -> Any:
391
+ EntitlementPrivilegedAccessGcpIamAccessRoleBinding.__key_warning(key)
392
+ return super().__getitem__(key)
393
+
394
+ def get(self, key: str, default = None) -> Any:
395
+ EntitlementPrivilegedAccessGcpIamAccessRoleBinding.__key_warning(key)
396
+ return super().get(key, default)
397
+
398
+ def __init__(__self__, *,
399
+ role: str,
400
+ condition_expression: Optional[str] = None):
401
+ """
402
+ :param str role: IAM role to be granted. https://cloud.google.com/iam/docs/roles-overview.
403
+ :param str condition_expression: The expression field of the IAM condition to be associated with the role. If specified, a user with an active grant for this entitlement would be able to access the resource only if this condition evaluates to true for their request.
404
+ https://cloud.google.com/iam/docs/conditions-overview#attributes.
405
+ """
406
+ pulumi.set(__self__, "role", role)
407
+ if condition_expression is not None:
408
+ pulumi.set(__self__, "condition_expression", condition_expression)
409
+
410
+ @property
411
+ @pulumi.getter
412
+ def role(self) -> str:
413
+ """
414
+ IAM role to be granted. https://cloud.google.com/iam/docs/roles-overview.
415
+ """
416
+ return pulumi.get(self, "role")
417
+
418
+ @property
419
+ @pulumi.getter(name="conditionExpression")
420
+ def condition_expression(self) -> Optional[str]:
421
+ """
422
+ The expression field of the IAM condition to be associated with the role. If specified, a user with an active grant for this entitlement would be able to access the resource only if this condition evaluates to true for their request.
423
+ https://cloud.google.com/iam/docs/conditions-overview#attributes.
424
+ """
425
+ return pulumi.get(self, "condition_expression")
426
+
427
+
428
+ @pulumi.output_type
429
+ class EntitlementRequesterJustificationConfig(dict):
430
+ @staticmethod
431
+ def __key_warning(key: str):
432
+ suggest = None
433
+ if key == "notMandatory":
434
+ suggest = "not_mandatory"
435
+
436
+ if suggest:
437
+ pulumi.log.warn(f"Key '{key}' not found in EntitlementRequesterJustificationConfig. Access the value via the '{suggest}' property getter instead.")
438
+
439
+ def __getitem__(self, key: str) -> Any:
440
+ EntitlementRequesterJustificationConfig.__key_warning(key)
441
+ return super().__getitem__(key)
442
+
443
+ def get(self, key: str, default = None) -> Any:
444
+ EntitlementRequesterJustificationConfig.__key_warning(key)
445
+ return super().get(key, default)
446
+
447
+ def __init__(__self__, *,
448
+ not_mandatory: Optional['outputs.EntitlementRequesterJustificationConfigNotMandatory'] = None,
449
+ unstructured: Optional['outputs.EntitlementRequesterJustificationConfigUnstructured'] = None):
450
+ """
451
+ :param 'EntitlementRequesterJustificationConfigNotMandatoryArgs' not_mandatory: The justification is not mandatory but can be provided in any of the supported formats.
452
+ :param 'EntitlementRequesterJustificationConfigUnstructuredArgs' unstructured: The requester has to provide a justification in the form of free flowing text.
453
+
454
+ - - -
455
+ """
456
+ if not_mandatory is not None:
457
+ pulumi.set(__self__, "not_mandatory", not_mandatory)
458
+ if unstructured is not None:
459
+ pulumi.set(__self__, "unstructured", unstructured)
460
+
461
+ @property
462
+ @pulumi.getter(name="notMandatory")
463
+ def not_mandatory(self) -> Optional['outputs.EntitlementRequesterJustificationConfigNotMandatory']:
464
+ """
465
+ The justification is not mandatory but can be provided in any of the supported formats.
466
+ """
467
+ return pulumi.get(self, "not_mandatory")
468
+
469
+ @property
470
+ @pulumi.getter
471
+ def unstructured(self) -> Optional['outputs.EntitlementRequesterJustificationConfigUnstructured']:
472
+ """
473
+ The requester has to provide a justification in the form of free flowing text.
474
+
475
+ - - -
476
+ """
477
+ return pulumi.get(self, "unstructured")
478
+
479
+
480
+ @pulumi.output_type
481
+ class EntitlementRequesterJustificationConfigNotMandatory(dict):
482
+ def __init__(__self__):
483
+ pass
484
+
485
+
486
+ @pulumi.output_type
487
+ class EntitlementRequesterJustificationConfigUnstructured(dict):
488
+ def __init__(__self__):
489
+ pass
490
+
491
+
pulumi_gcp/provider.py CHANGED
@@ -140,6 +140,7 @@ class ProviderArgs:
140
140
  os_login_custom_endpoint: Optional[pulumi.Input[str]] = None,
141
141
  parallelstore_custom_endpoint: Optional[pulumi.Input[str]] = None,
142
142
  privateca_custom_endpoint: Optional[pulumi.Input[str]] = None,
143
+ privileged_access_manager_custom_endpoint: Optional[pulumi.Input[str]] = None,
143
144
  project: Optional[pulumi.Input[str]] = None,
144
145
  public_ca_custom_endpoint: Optional[pulumi.Input[str]] = None,
145
146
  pubsub_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -436,6 +437,8 @@ class ProviderArgs:
436
437
  pulumi.set(__self__, "parallelstore_custom_endpoint", parallelstore_custom_endpoint)
437
438
  if privateca_custom_endpoint is not None:
438
439
  pulumi.set(__self__, "privateca_custom_endpoint", privateca_custom_endpoint)
440
+ if privileged_access_manager_custom_endpoint is not None:
441
+ pulumi.set(__self__, "privileged_access_manager_custom_endpoint", privileged_access_manager_custom_endpoint)
439
442
  if project is None:
440
443
  project = _utilities.get_env('GOOGLE_PROJECT', 'GOOGLE_CLOUD_PROJECT', 'GCLOUD_PROJECT', 'CLOUDSDK_CORE_PROJECT')
441
444
  if project is not None:
@@ -1654,6 +1657,15 @@ class ProviderArgs:
1654
1657
  def privateca_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
1655
1658
  pulumi.set(self, "privateca_custom_endpoint", value)
1656
1659
 
1660
+ @property
1661
+ @pulumi.getter(name="privilegedAccessManagerCustomEndpoint")
1662
+ def privileged_access_manager_custom_endpoint(self) -> Optional[pulumi.Input[str]]:
1663
+ return pulumi.get(self, "privileged_access_manager_custom_endpoint")
1664
+
1665
+ @privileged_access_manager_custom_endpoint.setter
1666
+ def privileged_access_manager_custom_endpoint(self, value: Optional[pulumi.Input[str]]):
1667
+ pulumi.set(self, "privileged_access_manager_custom_endpoint", value)
1668
+
1657
1669
  @property
1658
1670
  @pulumi.getter
1659
1671
  def project(self) -> Optional[pulumi.Input[str]]:
@@ -2172,6 +2184,7 @@ class Provider(pulumi.ProviderResource):
2172
2184
  os_login_custom_endpoint: Optional[pulumi.Input[str]] = None,
2173
2185
  parallelstore_custom_endpoint: Optional[pulumi.Input[str]] = None,
2174
2186
  privateca_custom_endpoint: Optional[pulumi.Input[str]] = None,
2187
+ privileged_access_manager_custom_endpoint: Optional[pulumi.Input[str]] = None,
2175
2188
  project: Optional[pulumi.Input[str]] = None,
2176
2189
  public_ca_custom_endpoint: Optional[pulumi.Input[str]] = None,
2177
2190
  pubsub_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2377,6 +2390,7 @@ class Provider(pulumi.ProviderResource):
2377
2390
  os_login_custom_endpoint: Optional[pulumi.Input[str]] = None,
2378
2391
  parallelstore_custom_endpoint: Optional[pulumi.Input[str]] = None,
2379
2392
  privateca_custom_endpoint: Optional[pulumi.Input[str]] = None,
2393
+ privileged_access_manager_custom_endpoint: Optional[pulumi.Input[str]] = None,
2380
2394
  project: Optional[pulumi.Input[str]] = None,
2381
2395
  public_ca_custom_endpoint: Optional[pulumi.Input[str]] = None,
2382
2396
  pubsub_custom_endpoint: Optional[pulumi.Input[str]] = None,
@@ -2554,6 +2568,7 @@ class Provider(pulumi.ProviderResource):
2554
2568
  __props__.__dict__["os_login_custom_endpoint"] = os_login_custom_endpoint
2555
2569
  __props__.__dict__["parallelstore_custom_endpoint"] = parallelstore_custom_endpoint
2556
2570
  __props__.__dict__["privateca_custom_endpoint"] = privateca_custom_endpoint
2571
+ __props__.__dict__["privileged_access_manager_custom_endpoint"] = privileged_access_manager_custom_endpoint
2557
2572
  if project is None:
2558
2573
  project = _utilities.get_env('GOOGLE_PROJECT', 'GOOGLE_CLOUD_PROJECT', 'GCLOUD_PROJECT', 'CLOUDSDK_CORE_PROJECT')
2559
2574
  __props__.__dict__["project"] = project
@@ -3211,6 +3226,11 @@ class Provider(pulumi.ProviderResource):
3211
3226
  def privateca_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
3212
3227
  return pulumi.get(self, "privateca_custom_endpoint")
3213
3228
 
3229
+ @property
3230
+ @pulumi.getter(name="privilegedAccessManagerCustomEndpoint")
3231
+ def privileged_access_manager_custom_endpoint(self) -> pulumi.Output[Optional[str]]:
3232
+ return pulumi.get(self, "privileged_access_manager_custom_endpoint")
3233
+
3214
3234
  @property
3215
3235
  @pulumi.getter
3216
3236
  def project(self) -> pulumi.Output[Optional[str]]:
@@ -1040,7 +1040,7 @@ class Subscription(pulumi.CustomResource):
1040
1040
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1041
1041
  bucket=example.name,
1042
1042
  filename_prefix="pre-",
1043
- filename_suffix="-_2605",
1043
+ filename_suffix="-_87786",
1044
1044
  max_bytes=1000,
1045
1045
  max_duration="300s",
1046
1046
  ))
@@ -1067,7 +1067,7 @@ class Subscription(pulumi.CustomResource):
1067
1067
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1068
1068
  bucket=example.name,
1069
1069
  filename_prefix="pre-",
1070
- filename_suffix="-_34535",
1070
+ filename_suffix="-_2067",
1071
1071
  max_bytes=1000,
1072
1072
  max_duration="300s",
1073
1073
  avro_config=gcp.pubsub.SubscriptionCloudStorageConfigAvroConfigArgs(
@@ -1367,7 +1367,7 @@ class Subscription(pulumi.CustomResource):
1367
1367
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1368
1368
  bucket=example.name,
1369
1369
  filename_prefix="pre-",
1370
- filename_suffix="-_2605",
1370
+ filename_suffix="-_87786",
1371
1371
  max_bytes=1000,
1372
1372
  max_duration="300s",
1373
1373
  ))
@@ -1394,7 +1394,7 @@ class Subscription(pulumi.CustomResource):
1394
1394
  cloud_storage_config=gcp.pubsub.SubscriptionCloudStorageConfigArgs(
1395
1395
  bucket=example.name,
1396
1396
  filename_prefix="pre-",
1397
- filename_suffix="-_34535",
1397
+ filename_suffix="-_2067",
1398
1398
  max_bytes=1000,
1399
1399
  max_duration="300s",
1400
1400
  avro_config=gcp.pubsub.SubscriptionCloudStorageConfigAvroConfigArgs(
@@ -1,4 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
- "name": "gcp"
3
+ "name": "gcp",
4
+ "version": "7.23.0"
4
5
  }