pulumi-gcp 7.22.0a1715306721__py3-none-any.whl → 7.22.0a1715611725__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 (34) hide show
  1. pulumi_gcp/__init__.py +11 -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/cloudrunv2/job.py +2 -4
  10. pulumi_gcp/cloudrunv2/service.py +2 -4
  11. pulumi_gcp/compute/_inputs.py +4 -0
  12. pulumi_gcp/compute/outputs.py +4 -0
  13. pulumi_gcp/compute/router_peer.py +54 -14
  14. pulumi_gcp/config/__init__.pyi +2 -0
  15. pulumi_gcp/config/vars.py +4 -0
  16. pulumi_gcp/container/_inputs.py +169 -0
  17. pulumi_gcp/container/outputs.py +272 -0
  18. pulumi_gcp/dataflow/flex_template_job.py +21 -21
  19. pulumi_gcp/dataflow/job.py +21 -7
  20. pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +0 -528
  21. pulumi_gcp/firebaserules/release.py +2 -2
  22. pulumi_gcp/privilegedaccessmanager/__init__.py +10 -0
  23. pulumi_gcp/privilegedaccessmanager/_inputs.py +420 -0
  24. pulumi_gcp/privilegedaccessmanager/entitlement.py +852 -0
  25. pulumi_gcp/privilegedaccessmanager/outputs.py +491 -0
  26. pulumi_gcp/provider.py +20 -0
  27. pulumi_gcp/redis/cluster.py +69 -2
  28. pulumi_gcp/storage/__init__.py +1 -0
  29. pulumi_gcp/storage/get_buckets.py +138 -0
  30. pulumi_gcp/storage/outputs.py +63 -0
  31. {pulumi_gcp-7.22.0a1715306721.dist-info → pulumi_gcp-7.22.0a1715611725.dist-info}/METADATA +1 -1
  32. {pulumi_gcp-7.22.0a1715306721.dist-info → pulumi_gcp-7.22.0a1715611725.dist-info}/RECORD +34 -29
  33. {pulumi_gcp-7.22.0a1715306721.dist-info → pulumi_gcp-7.22.0a1715611725.dist-info}/WHEEL +0 -0
  34. {pulumi_gcp-7.22.0a1715306721.dist-info → pulumi_gcp-7.22.0a1715611725.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,852 @@
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
+ from ._inputs import *
13
+
14
+ __all__ = ['EntitlementArgs', 'Entitlement']
15
+
16
+ @pulumi.input_type
17
+ class EntitlementArgs:
18
+ def __init__(__self__, *,
19
+ eligible_users: pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]],
20
+ entitlement_id: pulumi.Input[str],
21
+ location: pulumi.Input[str],
22
+ max_request_duration: pulumi.Input[str],
23
+ parent: pulumi.Input[str],
24
+ privileged_access: pulumi.Input['EntitlementPrivilegedAccessArgs'],
25
+ requester_justification_config: pulumi.Input['EntitlementRequesterJustificationConfigArgs'],
26
+ additional_notification_targets: Optional[pulumi.Input['EntitlementAdditionalNotificationTargetsArgs']] = None,
27
+ approval_workflow: Optional[pulumi.Input['EntitlementApprovalWorkflowArgs']] = None):
28
+ """
29
+ The set of arguments for constructing a Entitlement resource.
30
+ :param pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]] eligible_users: Who can create Grants using Entitlement. This list should contain at most one entry
31
+ Structure is documented below.
32
+ :param pulumi.Input[str] entitlement_id: The ID to use for this Entitlement. This will become the last part of the resource name.
33
+ This value should be 4-63 characters, and valid characters are "[a-z]", "[0-9]", and "-". The first character should be from [a-z].
34
+ This value should be unique among all other Entitlements under the specified `parent`.
35
+ :param pulumi.Input[str] location: The region of the Entitlement resource.
36
+ :param pulumi.Input[str] max_request_duration: The maximum amount of time for which access would be granted for a request.
37
+ A requester can choose to ask for access for less than this duration but never more.
38
+ Format: calculate the time in seconds and concatenate it with 's' i.e. 2 hours = "7200s", 45 minutes = "2700s"
39
+ :param pulumi.Input[str] parent: Format: project/{project_id} or organization/{organization_number} or folder/{folder_number}
40
+ :param pulumi.Input['EntitlementPrivilegedAccessArgs'] privileged_access: Privileged access that this service can be used to gate.
41
+ Structure is documented below.
42
+ :param pulumi.Input['EntitlementRequesterJustificationConfigArgs'] requester_justification_config: Defines the ways in which a requester should provide the justification while requesting for access.
43
+ Structure is documented below.
44
+ :param pulumi.Input['EntitlementAdditionalNotificationTargetsArgs'] additional_notification_targets: AdditionalNotificationTargets includes email addresses to be notified.
45
+ :param pulumi.Input['EntitlementApprovalWorkflowArgs'] approval_workflow: The approvals needed before access will be granted to a requester. No approvals will be needed if this field is null.
46
+ Different types of approval workflows that can be used to gate privileged access granting.
47
+ """
48
+ pulumi.set(__self__, "eligible_users", eligible_users)
49
+ pulumi.set(__self__, "entitlement_id", entitlement_id)
50
+ pulumi.set(__self__, "location", location)
51
+ pulumi.set(__self__, "max_request_duration", max_request_duration)
52
+ pulumi.set(__self__, "parent", parent)
53
+ pulumi.set(__self__, "privileged_access", privileged_access)
54
+ pulumi.set(__self__, "requester_justification_config", requester_justification_config)
55
+ if additional_notification_targets is not None:
56
+ pulumi.set(__self__, "additional_notification_targets", additional_notification_targets)
57
+ if approval_workflow is not None:
58
+ pulumi.set(__self__, "approval_workflow", approval_workflow)
59
+
60
+ @property
61
+ @pulumi.getter(name="eligibleUsers")
62
+ def eligible_users(self) -> pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]]:
63
+ """
64
+ Who can create Grants using Entitlement. This list should contain at most one entry
65
+ Structure is documented below.
66
+ """
67
+ return pulumi.get(self, "eligible_users")
68
+
69
+ @eligible_users.setter
70
+ def eligible_users(self, value: pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]]):
71
+ pulumi.set(self, "eligible_users", value)
72
+
73
+ @property
74
+ @pulumi.getter(name="entitlementId")
75
+ def entitlement_id(self) -> pulumi.Input[str]:
76
+ """
77
+ The ID to use for this Entitlement. This will become the last part of the resource name.
78
+ This value should be 4-63 characters, and valid characters are "[a-z]", "[0-9]", and "-". The first character should be from [a-z].
79
+ This value should be unique among all other Entitlements under the specified `parent`.
80
+ """
81
+ return pulumi.get(self, "entitlement_id")
82
+
83
+ @entitlement_id.setter
84
+ def entitlement_id(self, value: pulumi.Input[str]):
85
+ pulumi.set(self, "entitlement_id", value)
86
+
87
+ @property
88
+ @pulumi.getter
89
+ def location(self) -> pulumi.Input[str]:
90
+ """
91
+ The region of the Entitlement resource.
92
+ """
93
+ return pulumi.get(self, "location")
94
+
95
+ @location.setter
96
+ def location(self, value: pulumi.Input[str]):
97
+ pulumi.set(self, "location", value)
98
+
99
+ @property
100
+ @pulumi.getter(name="maxRequestDuration")
101
+ def max_request_duration(self) -> pulumi.Input[str]:
102
+ """
103
+ The maximum amount of time for which access would be granted for a request.
104
+ A requester can choose to ask for access for less than this duration but never more.
105
+ Format: calculate the time in seconds and concatenate it with 's' i.e. 2 hours = "7200s", 45 minutes = "2700s"
106
+ """
107
+ return pulumi.get(self, "max_request_duration")
108
+
109
+ @max_request_duration.setter
110
+ def max_request_duration(self, value: pulumi.Input[str]):
111
+ pulumi.set(self, "max_request_duration", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def parent(self) -> pulumi.Input[str]:
116
+ """
117
+ Format: project/{project_id} or organization/{organization_number} or folder/{folder_number}
118
+ """
119
+ return pulumi.get(self, "parent")
120
+
121
+ @parent.setter
122
+ def parent(self, value: pulumi.Input[str]):
123
+ pulumi.set(self, "parent", value)
124
+
125
+ @property
126
+ @pulumi.getter(name="privilegedAccess")
127
+ def privileged_access(self) -> pulumi.Input['EntitlementPrivilegedAccessArgs']:
128
+ """
129
+ Privileged access that this service can be used to gate.
130
+ Structure is documented below.
131
+ """
132
+ return pulumi.get(self, "privileged_access")
133
+
134
+ @privileged_access.setter
135
+ def privileged_access(self, value: pulumi.Input['EntitlementPrivilegedAccessArgs']):
136
+ pulumi.set(self, "privileged_access", value)
137
+
138
+ @property
139
+ @pulumi.getter(name="requesterJustificationConfig")
140
+ def requester_justification_config(self) -> pulumi.Input['EntitlementRequesterJustificationConfigArgs']:
141
+ """
142
+ Defines the ways in which a requester should provide the justification while requesting for access.
143
+ Structure is documented below.
144
+ """
145
+ return pulumi.get(self, "requester_justification_config")
146
+
147
+ @requester_justification_config.setter
148
+ def requester_justification_config(self, value: pulumi.Input['EntitlementRequesterJustificationConfigArgs']):
149
+ pulumi.set(self, "requester_justification_config", value)
150
+
151
+ @property
152
+ @pulumi.getter(name="additionalNotificationTargets")
153
+ def additional_notification_targets(self) -> Optional[pulumi.Input['EntitlementAdditionalNotificationTargetsArgs']]:
154
+ """
155
+ AdditionalNotificationTargets includes email addresses to be notified.
156
+ """
157
+ return pulumi.get(self, "additional_notification_targets")
158
+
159
+ @additional_notification_targets.setter
160
+ def additional_notification_targets(self, value: Optional[pulumi.Input['EntitlementAdditionalNotificationTargetsArgs']]):
161
+ pulumi.set(self, "additional_notification_targets", value)
162
+
163
+ @property
164
+ @pulumi.getter(name="approvalWorkflow")
165
+ def approval_workflow(self) -> Optional[pulumi.Input['EntitlementApprovalWorkflowArgs']]:
166
+ """
167
+ The approvals needed before access will be granted to a requester. No approvals will be needed if this field is null.
168
+ Different types of approval workflows that can be used to gate privileged access granting.
169
+ """
170
+ return pulumi.get(self, "approval_workflow")
171
+
172
+ @approval_workflow.setter
173
+ def approval_workflow(self, value: Optional[pulumi.Input['EntitlementApprovalWorkflowArgs']]):
174
+ pulumi.set(self, "approval_workflow", value)
175
+
176
+
177
+ @pulumi.input_type
178
+ class _EntitlementState:
179
+ def __init__(__self__, *,
180
+ additional_notification_targets: Optional[pulumi.Input['EntitlementAdditionalNotificationTargetsArgs']] = None,
181
+ approval_workflow: Optional[pulumi.Input['EntitlementApprovalWorkflowArgs']] = None,
182
+ create_time: Optional[pulumi.Input[str]] = None,
183
+ eligible_users: Optional[pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]]] = None,
184
+ entitlement_id: Optional[pulumi.Input[str]] = None,
185
+ etag: Optional[pulumi.Input[str]] = None,
186
+ location: Optional[pulumi.Input[str]] = None,
187
+ max_request_duration: Optional[pulumi.Input[str]] = None,
188
+ name: Optional[pulumi.Input[str]] = None,
189
+ parent: Optional[pulumi.Input[str]] = None,
190
+ privileged_access: Optional[pulumi.Input['EntitlementPrivilegedAccessArgs']] = None,
191
+ requester_justification_config: Optional[pulumi.Input['EntitlementRequesterJustificationConfigArgs']] = None,
192
+ state: Optional[pulumi.Input[str]] = None,
193
+ update_time: Optional[pulumi.Input[str]] = None):
194
+ """
195
+ Input properties used for looking up and filtering Entitlement resources.
196
+ :param pulumi.Input['EntitlementAdditionalNotificationTargetsArgs'] additional_notification_targets: AdditionalNotificationTargets includes email addresses to be notified.
197
+ :param pulumi.Input['EntitlementApprovalWorkflowArgs'] approval_workflow: The approvals needed before access will be granted to a requester. No approvals will be needed if this field is null.
198
+ Different types of approval workflows that can be used to gate privileged access granting.
199
+ :param pulumi.Input[str] create_time: Output only. Create time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
200
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"
201
+ :param pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]] eligible_users: Who can create Grants using Entitlement. This list should contain at most one entry
202
+ Structure is documented below.
203
+ :param pulumi.Input[str] entitlement_id: The ID to use for this Entitlement. This will become the last part of the resource name.
204
+ This value should be 4-63 characters, and valid characters are "[a-z]", "[0-9]", and "-". The first character should be from [a-z].
205
+ This value should be unique among all other Entitlements under the specified `parent`.
206
+ :param pulumi.Input[str] etag: For Resource freshness validation (https://google.aip.dev/154)
207
+ :param pulumi.Input[str] location: The region of the Entitlement resource.
208
+ :param pulumi.Input[str] max_request_duration: The maximum amount of time for which access would be granted for a request.
209
+ A requester can choose to ask for access for less than this duration but never more.
210
+ Format: calculate the time in seconds and concatenate it with 's' i.e. 2 hours = "7200s", 45 minutes = "2700s"
211
+ :param pulumi.Input[str] name: Output Only. The entitlement's name follows a hierarchical structure, comprising the organization, folder, or project, alongside the region and a unique entitlement ID.
212
+ Formats: organizations/{organization-number}/locations/{region}/entitlements/{entitlement-id}, folders/{folder-number}/locations/{region}/entitlements/{entitlement-id}, and projects/{project-id|project-number}/locations/{region}/entitlements/{entitlement-id}.
213
+ :param pulumi.Input[str] parent: Format: project/{project_id} or organization/{organization_number} or folder/{folder_number}
214
+ :param pulumi.Input['EntitlementPrivilegedAccessArgs'] privileged_access: Privileged access that this service can be used to gate.
215
+ Structure is documented below.
216
+ :param pulumi.Input['EntitlementRequesterJustificationConfigArgs'] requester_justification_config: Defines the ways in which a requester should provide the justification while requesting for access.
217
+ Structure is documented below.
218
+ :param pulumi.Input[str] state: Output only. The current state of the Entitlement.
219
+ :param pulumi.Input[str] update_time: Output only. Update time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
220
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
221
+ """
222
+ if additional_notification_targets is not None:
223
+ pulumi.set(__self__, "additional_notification_targets", additional_notification_targets)
224
+ if approval_workflow is not None:
225
+ pulumi.set(__self__, "approval_workflow", approval_workflow)
226
+ if create_time is not None:
227
+ pulumi.set(__self__, "create_time", create_time)
228
+ if eligible_users is not None:
229
+ pulumi.set(__self__, "eligible_users", eligible_users)
230
+ if entitlement_id is not None:
231
+ pulumi.set(__self__, "entitlement_id", entitlement_id)
232
+ if etag is not None:
233
+ pulumi.set(__self__, "etag", etag)
234
+ if location is not None:
235
+ pulumi.set(__self__, "location", location)
236
+ if max_request_duration is not None:
237
+ pulumi.set(__self__, "max_request_duration", max_request_duration)
238
+ if name is not None:
239
+ pulumi.set(__self__, "name", name)
240
+ if parent is not None:
241
+ pulumi.set(__self__, "parent", parent)
242
+ if privileged_access is not None:
243
+ pulumi.set(__self__, "privileged_access", privileged_access)
244
+ if requester_justification_config is not None:
245
+ pulumi.set(__self__, "requester_justification_config", requester_justification_config)
246
+ if state is not None:
247
+ pulumi.set(__self__, "state", state)
248
+ if update_time is not None:
249
+ pulumi.set(__self__, "update_time", update_time)
250
+
251
+ @property
252
+ @pulumi.getter(name="additionalNotificationTargets")
253
+ def additional_notification_targets(self) -> Optional[pulumi.Input['EntitlementAdditionalNotificationTargetsArgs']]:
254
+ """
255
+ AdditionalNotificationTargets includes email addresses to be notified.
256
+ """
257
+ return pulumi.get(self, "additional_notification_targets")
258
+
259
+ @additional_notification_targets.setter
260
+ def additional_notification_targets(self, value: Optional[pulumi.Input['EntitlementAdditionalNotificationTargetsArgs']]):
261
+ pulumi.set(self, "additional_notification_targets", value)
262
+
263
+ @property
264
+ @pulumi.getter(name="approvalWorkflow")
265
+ def approval_workflow(self) -> Optional[pulumi.Input['EntitlementApprovalWorkflowArgs']]:
266
+ """
267
+ The approvals needed before access will be granted to a requester. No approvals will be needed if this field is null.
268
+ Different types of approval workflows that can be used to gate privileged access granting.
269
+ """
270
+ return pulumi.get(self, "approval_workflow")
271
+
272
+ @approval_workflow.setter
273
+ def approval_workflow(self, value: Optional[pulumi.Input['EntitlementApprovalWorkflowArgs']]):
274
+ pulumi.set(self, "approval_workflow", value)
275
+
276
+ @property
277
+ @pulumi.getter(name="createTime")
278
+ def create_time(self) -> Optional[pulumi.Input[str]]:
279
+ """
280
+ Output only. Create time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
281
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"
282
+ """
283
+ return pulumi.get(self, "create_time")
284
+
285
+ @create_time.setter
286
+ def create_time(self, value: Optional[pulumi.Input[str]]):
287
+ pulumi.set(self, "create_time", value)
288
+
289
+ @property
290
+ @pulumi.getter(name="eligibleUsers")
291
+ def eligible_users(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]]]:
292
+ """
293
+ Who can create Grants using Entitlement. This list should contain at most one entry
294
+ Structure is documented below.
295
+ """
296
+ return pulumi.get(self, "eligible_users")
297
+
298
+ @eligible_users.setter
299
+ def eligible_users(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['EntitlementEligibleUserArgs']]]]):
300
+ pulumi.set(self, "eligible_users", value)
301
+
302
+ @property
303
+ @pulumi.getter(name="entitlementId")
304
+ def entitlement_id(self) -> Optional[pulumi.Input[str]]:
305
+ """
306
+ The ID to use for this Entitlement. This will become the last part of the resource name.
307
+ This value should be 4-63 characters, and valid characters are "[a-z]", "[0-9]", and "-". The first character should be from [a-z].
308
+ This value should be unique among all other Entitlements under the specified `parent`.
309
+ """
310
+ return pulumi.get(self, "entitlement_id")
311
+
312
+ @entitlement_id.setter
313
+ def entitlement_id(self, value: Optional[pulumi.Input[str]]):
314
+ pulumi.set(self, "entitlement_id", value)
315
+
316
+ @property
317
+ @pulumi.getter
318
+ def etag(self) -> Optional[pulumi.Input[str]]:
319
+ """
320
+ For Resource freshness validation (https://google.aip.dev/154)
321
+ """
322
+ return pulumi.get(self, "etag")
323
+
324
+ @etag.setter
325
+ def etag(self, value: Optional[pulumi.Input[str]]):
326
+ pulumi.set(self, "etag", value)
327
+
328
+ @property
329
+ @pulumi.getter
330
+ def location(self) -> Optional[pulumi.Input[str]]:
331
+ """
332
+ The region of the Entitlement resource.
333
+ """
334
+ return pulumi.get(self, "location")
335
+
336
+ @location.setter
337
+ def location(self, value: Optional[pulumi.Input[str]]):
338
+ pulumi.set(self, "location", value)
339
+
340
+ @property
341
+ @pulumi.getter(name="maxRequestDuration")
342
+ def max_request_duration(self) -> Optional[pulumi.Input[str]]:
343
+ """
344
+ The maximum amount of time for which access would be granted for a request.
345
+ A requester can choose to ask for access for less than this duration but never more.
346
+ Format: calculate the time in seconds and concatenate it with 's' i.e. 2 hours = "7200s", 45 minutes = "2700s"
347
+ """
348
+ return pulumi.get(self, "max_request_duration")
349
+
350
+ @max_request_duration.setter
351
+ def max_request_duration(self, value: Optional[pulumi.Input[str]]):
352
+ pulumi.set(self, "max_request_duration", value)
353
+
354
+ @property
355
+ @pulumi.getter
356
+ def name(self) -> Optional[pulumi.Input[str]]:
357
+ """
358
+ Output Only. The entitlement's name follows a hierarchical structure, comprising the organization, folder, or project, alongside the region and a unique entitlement ID.
359
+ Formats: organizations/{organization-number}/locations/{region}/entitlements/{entitlement-id}, folders/{folder-number}/locations/{region}/entitlements/{entitlement-id}, and projects/{project-id|project-number}/locations/{region}/entitlements/{entitlement-id}.
360
+ """
361
+ return pulumi.get(self, "name")
362
+
363
+ @name.setter
364
+ def name(self, value: Optional[pulumi.Input[str]]):
365
+ pulumi.set(self, "name", value)
366
+
367
+ @property
368
+ @pulumi.getter
369
+ def parent(self) -> Optional[pulumi.Input[str]]:
370
+ """
371
+ Format: project/{project_id} or organization/{organization_number} or folder/{folder_number}
372
+ """
373
+ return pulumi.get(self, "parent")
374
+
375
+ @parent.setter
376
+ def parent(self, value: Optional[pulumi.Input[str]]):
377
+ pulumi.set(self, "parent", value)
378
+
379
+ @property
380
+ @pulumi.getter(name="privilegedAccess")
381
+ def privileged_access(self) -> Optional[pulumi.Input['EntitlementPrivilegedAccessArgs']]:
382
+ """
383
+ Privileged access that this service can be used to gate.
384
+ Structure is documented below.
385
+ """
386
+ return pulumi.get(self, "privileged_access")
387
+
388
+ @privileged_access.setter
389
+ def privileged_access(self, value: Optional[pulumi.Input['EntitlementPrivilegedAccessArgs']]):
390
+ pulumi.set(self, "privileged_access", value)
391
+
392
+ @property
393
+ @pulumi.getter(name="requesterJustificationConfig")
394
+ def requester_justification_config(self) -> Optional[pulumi.Input['EntitlementRequesterJustificationConfigArgs']]:
395
+ """
396
+ Defines the ways in which a requester should provide the justification while requesting for access.
397
+ Structure is documented below.
398
+ """
399
+ return pulumi.get(self, "requester_justification_config")
400
+
401
+ @requester_justification_config.setter
402
+ def requester_justification_config(self, value: Optional[pulumi.Input['EntitlementRequesterJustificationConfigArgs']]):
403
+ pulumi.set(self, "requester_justification_config", value)
404
+
405
+ @property
406
+ @pulumi.getter
407
+ def state(self) -> Optional[pulumi.Input[str]]:
408
+ """
409
+ Output only. The current state of the Entitlement.
410
+ """
411
+ return pulumi.get(self, "state")
412
+
413
+ @state.setter
414
+ def state(self, value: Optional[pulumi.Input[str]]):
415
+ pulumi.set(self, "state", value)
416
+
417
+ @property
418
+ @pulumi.getter(name="updateTime")
419
+ def update_time(self) -> Optional[pulumi.Input[str]]:
420
+ """
421
+ Output only. Update time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
422
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
423
+ """
424
+ return pulumi.get(self, "update_time")
425
+
426
+ @update_time.setter
427
+ def update_time(self, value: Optional[pulumi.Input[str]]):
428
+ pulumi.set(self, "update_time", value)
429
+
430
+
431
+ class Entitlement(pulumi.CustomResource):
432
+ @overload
433
+ def __init__(__self__,
434
+ resource_name: str,
435
+ opts: Optional[pulumi.ResourceOptions] = None,
436
+ additional_notification_targets: Optional[pulumi.Input[pulumi.InputType['EntitlementAdditionalNotificationTargetsArgs']]] = None,
437
+ approval_workflow: Optional[pulumi.Input[pulumi.InputType['EntitlementApprovalWorkflowArgs']]] = None,
438
+ eligible_users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['EntitlementEligibleUserArgs']]]]] = None,
439
+ entitlement_id: Optional[pulumi.Input[str]] = None,
440
+ location: Optional[pulumi.Input[str]] = None,
441
+ max_request_duration: Optional[pulumi.Input[str]] = None,
442
+ parent: Optional[pulumi.Input[str]] = None,
443
+ privileged_access: Optional[pulumi.Input[pulumi.InputType['EntitlementPrivilegedAccessArgs']]] = None,
444
+ requester_justification_config: Optional[pulumi.Input[pulumi.InputType['EntitlementRequesterJustificationConfigArgs']]] = None,
445
+ __props__=None):
446
+ """
447
+ ## Example Usage
448
+
449
+ ### Privileged Access Manager Entitlement Basic
450
+
451
+ ```python
452
+ import pulumi
453
+ import pulumi_gcp as gcp
454
+
455
+ tfentitlement = gcp.privilegedaccessmanager.Entitlement("tfentitlement",
456
+ entitlement_id="example-entitlement",
457
+ location="global",
458
+ max_request_duration="43200s",
459
+ parent="projects/my-project-name",
460
+ requester_justification_config=gcp.privilegedaccessmanager.EntitlementRequesterJustificationConfigArgs(
461
+ unstructured=gcp.privilegedaccessmanager.EntitlementRequesterJustificationConfigUnstructuredArgs(),
462
+ ),
463
+ eligible_users=[gcp.privilegedaccessmanager.EntitlementEligibleUserArgs(
464
+ principals=["group:test@google.com"],
465
+ )],
466
+ privileged_access=gcp.privilegedaccessmanager.EntitlementPrivilegedAccessArgs(
467
+ gcp_iam_access=gcp.privilegedaccessmanager.EntitlementPrivilegedAccessGcpIamAccessArgs(
468
+ role_bindings=[gcp.privilegedaccessmanager.EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs(
469
+ role="roles/storage.admin",
470
+ condition_expression="request.time < timestamp(\\"2024-04-23T18:30:00.000Z\\")",
471
+ )],
472
+ resource="//cloudresourcemanager.googleapis.com/projects/my-project-name",
473
+ resource_type="cloudresourcemanager.googleapis.com/Project",
474
+ ),
475
+ ),
476
+ additional_notification_targets=gcp.privilegedaccessmanager.EntitlementAdditionalNotificationTargetsArgs(
477
+ admin_email_recipients=["user@example.com"],
478
+ requester_email_recipients=["user@example.com"],
479
+ ),
480
+ approval_workflow=gcp.privilegedaccessmanager.EntitlementApprovalWorkflowArgs(
481
+ manual_approvals=gcp.privilegedaccessmanager.EntitlementApprovalWorkflowManualApprovalsArgs(
482
+ require_approver_justification=True,
483
+ steps=[gcp.privilegedaccessmanager.EntitlementApprovalWorkflowManualApprovalsStepArgs(
484
+ approvals_needed=1,
485
+ approver_email_recipients=["user@example.com"],
486
+ approvers=gcp.privilegedaccessmanager.EntitlementApprovalWorkflowManualApprovalsStepApproversArgs(
487
+ principals=["group:test@google.com"],
488
+ ),
489
+ )],
490
+ ),
491
+ ))
492
+ ```
493
+
494
+ ## Import
495
+
496
+ Entitlement can be imported using any of these accepted formats:
497
+
498
+ * `{{parent}}/locations/{{location}}/entitlements/{{entitlement_id}}`
499
+
500
+ When using the `pulumi import` command, Entitlement can be imported using one of the formats above. For example:
501
+
502
+ ```sh
503
+ $ pulumi import gcp:privilegedaccessmanager/entitlement:entitlement default {{parent}}/locations/{{location}}/entitlements/{{entitlement_id}}
504
+ ```
505
+
506
+ :param str resource_name: The name of the resource.
507
+ :param pulumi.ResourceOptions opts: Options for the resource.
508
+ :param pulumi.Input[pulumi.InputType['EntitlementAdditionalNotificationTargetsArgs']] additional_notification_targets: AdditionalNotificationTargets includes email addresses to be notified.
509
+ :param pulumi.Input[pulumi.InputType['EntitlementApprovalWorkflowArgs']] approval_workflow: The approvals needed before access will be granted to a requester. No approvals will be needed if this field is null.
510
+ Different types of approval workflows that can be used to gate privileged access granting.
511
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['EntitlementEligibleUserArgs']]]] eligible_users: Who can create Grants using Entitlement. This list should contain at most one entry
512
+ Structure is documented below.
513
+ :param pulumi.Input[str] entitlement_id: The ID to use for this Entitlement. This will become the last part of the resource name.
514
+ This value should be 4-63 characters, and valid characters are "[a-z]", "[0-9]", and "-". The first character should be from [a-z].
515
+ This value should be unique among all other Entitlements under the specified `parent`.
516
+ :param pulumi.Input[str] location: The region of the Entitlement resource.
517
+ :param pulumi.Input[str] max_request_duration: The maximum amount of time for which access would be granted for a request.
518
+ A requester can choose to ask for access for less than this duration but never more.
519
+ Format: calculate the time in seconds and concatenate it with 's' i.e. 2 hours = "7200s", 45 minutes = "2700s"
520
+ :param pulumi.Input[str] parent: Format: project/{project_id} or organization/{organization_number} or folder/{folder_number}
521
+ :param pulumi.Input[pulumi.InputType['EntitlementPrivilegedAccessArgs']] privileged_access: Privileged access that this service can be used to gate.
522
+ Structure is documented below.
523
+ :param pulumi.Input[pulumi.InputType['EntitlementRequesterJustificationConfigArgs']] requester_justification_config: Defines the ways in which a requester should provide the justification while requesting for access.
524
+ Structure is documented below.
525
+ """
526
+ ...
527
+ @overload
528
+ def __init__(__self__,
529
+ resource_name: str,
530
+ args: EntitlementArgs,
531
+ opts: Optional[pulumi.ResourceOptions] = None):
532
+ """
533
+ ## Example Usage
534
+
535
+ ### Privileged Access Manager Entitlement Basic
536
+
537
+ ```python
538
+ import pulumi
539
+ import pulumi_gcp as gcp
540
+
541
+ tfentitlement = gcp.privilegedaccessmanager.Entitlement("tfentitlement",
542
+ entitlement_id="example-entitlement",
543
+ location="global",
544
+ max_request_duration="43200s",
545
+ parent="projects/my-project-name",
546
+ requester_justification_config=gcp.privilegedaccessmanager.EntitlementRequesterJustificationConfigArgs(
547
+ unstructured=gcp.privilegedaccessmanager.EntitlementRequesterJustificationConfigUnstructuredArgs(),
548
+ ),
549
+ eligible_users=[gcp.privilegedaccessmanager.EntitlementEligibleUserArgs(
550
+ principals=["group:test@google.com"],
551
+ )],
552
+ privileged_access=gcp.privilegedaccessmanager.EntitlementPrivilegedAccessArgs(
553
+ gcp_iam_access=gcp.privilegedaccessmanager.EntitlementPrivilegedAccessGcpIamAccessArgs(
554
+ role_bindings=[gcp.privilegedaccessmanager.EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs(
555
+ role="roles/storage.admin",
556
+ condition_expression="request.time < timestamp(\\"2024-04-23T18:30:00.000Z\\")",
557
+ )],
558
+ resource="//cloudresourcemanager.googleapis.com/projects/my-project-name",
559
+ resource_type="cloudresourcemanager.googleapis.com/Project",
560
+ ),
561
+ ),
562
+ additional_notification_targets=gcp.privilegedaccessmanager.EntitlementAdditionalNotificationTargetsArgs(
563
+ admin_email_recipients=["user@example.com"],
564
+ requester_email_recipients=["user@example.com"],
565
+ ),
566
+ approval_workflow=gcp.privilegedaccessmanager.EntitlementApprovalWorkflowArgs(
567
+ manual_approvals=gcp.privilegedaccessmanager.EntitlementApprovalWorkflowManualApprovalsArgs(
568
+ require_approver_justification=True,
569
+ steps=[gcp.privilegedaccessmanager.EntitlementApprovalWorkflowManualApprovalsStepArgs(
570
+ approvals_needed=1,
571
+ approver_email_recipients=["user@example.com"],
572
+ approvers=gcp.privilegedaccessmanager.EntitlementApprovalWorkflowManualApprovalsStepApproversArgs(
573
+ principals=["group:test@google.com"],
574
+ ),
575
+ )],
576
+ ),
577
+ ))
578
+ ```
579
+
580
+ ## Import
581
+
582
+ Entitlement can be imported using any of these accepted formats:
583
+
584
+ * `{{parent}}/locations/{{location}}/entitlements/{{entitlement_id}}`
585
+
586
+ When using the `pulumi import` command, Entitlement can be imported using one of the formats above. For example:
587
+
588
+ ```sh
589
+ $ pulumi import gcp:privilegedaccessmanager/entitlement:entitlement default {{parent}}/locations/{{location}}/entitlements/{{entitlement_id}}
590
+ ```
591
+
592
+ :param str resource_name: The name of the resource.
593
+ :param EntitlementArgs args: The arguments to use to populate this resource's properties.
594
+ :param pulumi.ResourceOptions opts: Options for the resource.
595
+ """
596
+ ...
597
+ def __init__(__self__, resource_name: str, *args, **kwargs):
598
+ resource_args, opts = _utilities.get_resource_args_opts(EntitlementArgs, pulumi.ResourceOptions, *args, **kwargs)
599
+ if resource_args is not None:
600
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
601
+ else:
602
+ __self__._internal_init(resource_name, *args, **kwargs)
603
+
604
+ def _internal_init(__self__,
605
+ resource_name: str,
606
+ opts: Optional[pulumi.ResourceOptions] = None,
607
+ additional_notification_targets: Optional[pulumi.Input[pulumi.InputType['EntitlementAdditionalNotificationTargetsArgs']]] = None,
608
+ approval_workflow: Optional[pulumi.Input[pulumi.InputType['EntitlementApprovalWorkflowArgs']]] = None,
609
+ eligible_users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['EntitlementEligibleUserArgs']]]]] = None,
610
+ entitlement_id: Optional[pulumi.Input[str]] = None,
611
+ location: Optional[pulumi.Input[str]] = None,
612
+ max_request_duration: Optional[pulumi.Input[str]] = None,
613
+ parent: Optional[pulumi.Input[str]] = None,
614
+ privileged_access: Optional[pulumi.Input[pulumi.InputType['EntitlementPrivilegedAccessArgs']]] = None,
615
+ requester_justification_config: Optional[pulumi.Input[pulumi.InputType['EntitlementRequesterJustificationConfigArgs']]] = None,
616
+ __props__=None):
617
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
618
+ if not isinstance(opts, pulumi.ResourceOptions):
619
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
620
+ if opts.id is None:
621
+ if __props__ is not None:
622
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
623
+ __props__ = EntitlementArgs.__new__(EntitlementArgs)
624
+
625
+ __props__.__dict__["additional_notification_targets"] = additional_notification_targets
626
+ __props__.__dict__["approval_workflow"] = approval_workflow
627
+ if eligible_users is None and not opts.urn:
628
+ raise TypeError("Missing required property 'eligible_users'")
629
+ __props__.__dict__["eligible_users"] = eligible_users
630
+ if entitlement_id is None and not opts.urn:
631
+ raise TypeError("Missing required property 'entitlement_id'")
632
+ __props__.__dict__["entitlement_id"] = entitlement_id
633
+ if location is None and not opts.urn:
634
+ raise TypeError("Missing required property 'location'")
635
+ __props__.__dict__["location"] = location
636
+ if max_request_duration is None and not opts.urn:
637
+ raise TypeError("Missing required property 'max_request_duration'")
638
+ __props__.__dict__["max_request_duration"] = max_request_duration
639
+ if parent is None and not opts.urn:
640
+ raise TypeError("Missing required property 'parent'")
641
+ __props__.__dict__["parent"] = parent
642
+ if privileged_access is None and not opts.urn:
643
+ raise TypeError("Missing required property 'privileged_access'")
644
+ __props__.__dict__["privileged_access"] = privileged_access
645
+ if requester_justification_config is None and not opts.urn:
646
+ raise TypeError("Missing required property 'requester_justification_config'")
647
+ __props__.__dict__["requester_justification_config"] = requester_justification_config
648
+ __props__.__dict__["create_time"] = None
649
+ __props__.__dict__["etag"] = None
650
+ __props__.__dict__["name"] = None
651
+ __props__.__dict__["state"] = None
652
+ __props__.__dict__["update_time"] = None
653
+ super(Entitlement, __self__).__init__(
654
+ 'gcp:privilegedaccessmanager/entitlement:entitlement',
655
+ resource_name,
656
+ __props__,
657
+ opts)
658
+
659
+ @staticmethod
660
+ def get(resource_name: str,
661
+ id: pulumi.Input[str],
662
+ opts: Optional[pulumi.ResourceOptions] = None,
663
+ additional_notification_targets: Optional[pulumi.Input[pulumi.InputType['EntitlementAdditionalNotificationTargetsArgs']]] = None,
664
+ approval_workflow: Optional[pulumi.Input[pulumi.InputType['EntitlementApprovalWorkflowArgs']]] = None,
665
+ create_time: Optional[pulumi.Input[str]] = None,
666
+ eligible_users: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['EntitlementEligibleUserArgs']]]]] = None,
667
+ entitlement_id: Optional[pulumi.Input[str]] = None,
668
+ etag: Optional[pulumi.Input[str]] = None,
669
+ location: Optional[pulumi.Input[str]] = None,
670
+ max_request_duration: Optional[pulumi.Input[str]] = None,
671
+ name: Optional[pulumi.Input[str]] = None,
672
+ parent: Optional[pulumi.Input[str]] = None,
673
+ privileged_access: Optional[pulumi.Input[pulumi.InputType['EntitlementPrivilegedAccessArgs']]] = None,
674
+ requester_justification_config: Optional[pulumi.Input[pulumi.InputType['EntitlementRequesterJustificationConfigArgs']]] = None,
675
+ state: Optional[pulumi.Input[str]] = None,
676
+ update_time: Optional[pulumi.Input[str]] = None) -> 'Entitlement':
677
+ """
678
+ Get an existing Entitlement resource's state with the given name, id, and optional extra
679
+ properties used to qualify the lookup.
680
+
681
+ :param str resource_name: The unique name of the resulting resource.
682
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
683
+ :param pulumi.ResourceOptions opts: Options for the resource.
684
+ :param pulumi.Input[pulumi.InputType['EntitlementAdditionalNotificationTargetsArgs']] additional_notification_targets: AdditionalNotificationTargets includes email addresses to be notified.
685
+ :param pulumi.Input[pulumi.InputType['EntitlementApprovalWorkflowArgs']] approval_workflow: The approvals needed before access will be granted to a requester. No approvals will be needed if this field is null.
686
+ Different types of approval workflows that can be used to gate privileged access granting.
687
+ :param pulumi.Input[str] create_time: Output only. Create time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
688
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"
689
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['EntitlementEligibleUserArgs']]]] eligible_users: Who can create Grants using Entitlement. This list should contain at most one entry
690
+ Structure is documented below.
691
+ :param pulumi.Input[str] entitlement_id: The ID to use for this Entitlement. This will become the last part of the resource name.
692
+ This value should be 4-63 characters, and valid characters are "[a-z]", "[0-9]", and "-". The first character should be from [a-z].
693
+ This value should be unique among all other Entitlements under the specified `parent`.
694
+ :param pulumi.Input[str] etag: For Resource freshness validation (https://google.aip.dev/154)
695
+ :param pulumi.Input[str] location: The region of the Entitlement resource.
696
+ :param pulumi.Input[str] max_request_duration: The maximum amount of time for which access would be granted for a request.
697
+ A requester can choose to ask for access for less than this duration but never more.
698
+ Format: calculate the time in seconds and concatenate it with 's' i.e. 2 hours = "7200s", 45 minutes = "2700s"
699
+ :param pulumi.Input[str] name: Output Only. The entitlement's name follows a hierarchical structure, comprising the organization, folder, or project, alongside the region and a unique entitlement ID.
700
+ Formats: organizations/{organization-number}/locations/{region}/entitlements/{entitlement-id}, folders/{folder-number}/locations/{region}/entitlements/{entitlement-id}, and projects/{project-id|project-number}/locations/{region}/entitlements/{entitlement-id}.
701
+ :param pulumi.Input[str] parent: Format: project/{project_id} or organization/{organization_number} or folder/{folder_number}
702
+ :param pulumi.Input[pulumi.InputType['EntitlementPrivilegedAccessArgs']] privileged_access: Privileged access that this service can be used to gate.
703
+ Structure is documented below.
704
+ :param pulumi.Input[pulumi.InputType['EntitlementRequesterJustificationConfigArgs']] requester_justification_config: Defines the ways in which a requester should provide the justification while requesting for access.
705
+ Structure is documented below.
706
+ :param pulumi.Input[str] state: Output only. The current state of the Entitlement.
707
+ :param pulumi.Input[str] update_time: Output only. Update time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
708
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
709
+ """
710
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
711
+
712
+ __props__ = _EntitlementState.__new__(_EntitlementState)
713
+
714
+ __props__.__dict__["additional_notification_targets"] = additional_notification_targets
715
+ __props__.__dict__["approval_workflow"] = approval_workflow
716
+ __props__.__dict__["create_time"] = create_time
717
+ __props__.__dict__["eligible_users"] = eligible_users
718
+ __props__.__dict__["entitlement_id"] = entitlement_id
719
+ __props__.__dict__["etag"] = etag
720
+ __props__.__dict__["location"] = location
721
+ __props__.__dict__["max_request_duration"] = max_request_duration
722
+ __props__.__dict__["name"] = name
723
+ __props__.__dict__["parent"] = parent
724
+ __props__.__dict__["privileged_access"] = privileged_access
725
+ __props__.__dict__["requester_justification_config"] = requester_justification_config
726
+ __props__.__dict__["state"] = state
727
+ __props__.__dict__["update_time"] = update_time
728
+ return Entitlement(resource_name, opts=opts, __props__=__props__)
729
+
730
+ @property
731
+ @pulumi.getter(name="additionalNotificationTargets")
732
+ def additional_notification_targets(self) -> pulumi.Output[Optional['outputs.EntitlementAdditionalNotificationTargets']]:
733
+ """
734
+ AdditionalNotificationTargets includes email addresses to be notified.
735
+ """
736
+ return pulumi.get(self, "additional_notification_targets")
737
+
738
+ @property
739
+ @pulumi.getter(name="approvalWorkflow")
740
+ def approval_workflow(self) -> pulumi.Output[Optional['outputs.EntitlementApprovalWorkflow']]:
741
+ """
742
+ The approvals needed before access will be granted to a requester. No approvals will be needed if this field is null.
743
+ Different types of approval workflows that can be used to gate privileged access granting.
744
+ """
745
+ return pulumi.get(self, "approval_workflow")
746
+
747
+ @property
748
+ @pulumi.getter(name="createTime")
749
+ def create_time(self) -> pulumi.Output[str]:
750
+ """
751
+ Output only. Create time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
752
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"
753
+ """
754
+ return pulumi.get(self, "create_time")
755
+
756
+ @property
757
+ @pulumi.getter(name="eligibleUsers")
758
+ def eligible_users(self) -> pulumi.Output[Sequence['outputs.EntitlementEligibleUser']]:
759
+ """
760
+ Who can create Grants using Entitlement. This list should contain at most one entry
761
+ Structure is documented below.
762
+ """
763
+ return pulumi.get(self, "eligible_users")
764
+
765
+ @property
766
+ @pulumi.getter(name="entitlementId")
767
+ def entitlement_id(self) -> pulumi.Output[str]:
768
+ """
769
+ The ID to use for this Entitlement. This will become the last part of the resource name.
770
+ This value should be 4-63 characters, and valid characters are "[a-z]", "[0-9]", and "-". The first character should be from [a-z].
771
+ This value should be unique among all other Entitlements under the specified `parent`.
772
+ """
773
+ return pulumi.get(self, "entitlement_id")
774
+
775
+ @property
776
+ @pulumi.getter
777
+ def etag(self) -> pulumi.Output[str]:
778
+ """
779
+ For Resource freshness validation (https://google.aip.dev/154)
780
+ """
781
+ return pulumi.get(self, "etag")
782
+
783
+ @property
784
+ @pulumi.getter
785
+ def location(self) -> pulumi.Output[str]:
786
+ """
787
+ The region of the Entitlement resource.
788
+ """
789
+ return pulumi.get(self, "location")
790
+
791
+ @property
792
+ @pulumi.getter(name="maxRequestDuration")
793
+ def max_request_duration(self) -> pulumi.Output[str]:
794
+ """
795
+ The maximum amount of time for which access would be granted for a request.
796
+ A requester can choose to ask for access for less than this duration but never more.
797
+ Format: calculate the time in seconds and concatenate it with 's' i.e. 2 hours = "7200s", 45 minutes = "2700s"
798
+ """
799
+ return pulumi.get(self, "max_request_duration")
800
+
801
+ @property
802
+ @pulumi.getter
803
+ def name(self) -> pulumi.Output[str]:
804
+ """
805
+ Output Only. The entitlement's name follows a hierarchical structure, comprising the organization, folder, or project, alongside the region and a unique entitlement ID.
806
+ Formats: organizations/{organization-number}/locations/{region}/entitlements/{entitlement-id}, folders/{folder-number}/locations/{region}/entitlements/{entitlement-id}, and projects/{project-id|project-number}/locations/{region}/entitlements/{entitlement-id}.
807
+ """
808
+ return pulumi.get(self, "name")
809
+
810
+ @property
811
+ @pulumi.getter
812
+ def parent(self) -> pulumi.Output[str]:
813
+ """
814
+ Format: project/{project_id} or organization/{organization_number} or folder/{folder_number}
815
+ """
816
+ return pulumi.get(self, "parent")
817
+
818
+ @property
819
+ @pulumi.getter(name="privilegedAccess")
820
+ def privileged_access(self) -> pulumi.Output['outputs.EntitlementPrivilegedAccess']:
821
+ """
822
+ Privileged access that this service can be used to gate.
823
+ Structure is documented below.
824
+ """
825
+ return pulumi.get(self, "privileged_access")
826
+
827
+ @property
828
+ @pulumi.getter(name="requesterJustificationConfig")
829
+ def requester_justification_config(self) -> pulumi.Output['outputs.EntitlementRequesterJustificationConfig']:
830
+ """
831
+ Defines the ways in which a requester should provide the justification while requesting for access.
832
+ Structure is documented below.
833
+ """
834
+ return pulumi.get(self, "requester_justification_config")
835
+
836
+ @property
837
+ @pulumi.getter
838
+ def state(self) -> pulumi.Output[str]:
839
+ """
840
+ Output only. The current state of the Entitlement.
841
+ """
842
+ return pulumi.get(self, "state")
843
+
844
+ @property
845
+ @pulumi.getter(name="updateTime")
846
+ def update_time(self) -> pulumi.Output[str]:
847
+ """
848
+ Output only. Update time stamp. A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
849
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".
850
+ """
851
+ return pulumi.get(self, "update_time")
852
+