pulumi-gcp 7.22.0a1715345822__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.
- pulumi_gcp/__init__.py +11 -0
- pulumi_gcp/alloydb/_inputs.py +139 -0
- pulumi_gcp/alloydb/cluster.py +54 -0
- pulumi_gcp/alloydb/outputs.py +145 -0
- pulumi_gcp/applicationintegration/auth_config.py +2 -6
- pulumi_gcp/applicationintegration/client.py +133 -18
- pulumi_gcp/bigquery/dataset.py +2 -2
- pulumi_gcp/bigquery/job.py +16 -20
- pulumi_gcp/cloudrunv2/job.py +2 -4
- pulumi_gcp/cloudrunv2/service.py +2 -4
- pulumi_gcp/compute/_inputs.py +4 -0
- pulumi_gcp/compute/outputs.py +4 -0
- pulumi_gcp/compute/router_peer.py +54 -14
- pulumi_gcp/config/__init__.pyi +2 -0
- pulumi_gcp/config/vars.py +4 -0
- pulumi_gcp/container/_inputs.py +169 -0
- pulumi_gcp/container/outputs.py +272 -0
- pulumi_gcp/dataflow/flex_template_job.py +21 -21
- pulumi_gcp/dataflow/job.py +21 -7
- pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +0 -528
- pulumi_gcp/firebaserules/release.py +2 -2
- pulumi_gcp/privilegedaccessmanager/__init__.py +10 -0
- pulumi_gcp/privilegedaccessmanager/_inputs.py +420 -0
- pulumi_gcp/privilegedaccessmanager/entitlement.py +852 -0
- pulumi_gcp/privilegedaccessmanager/outputs.py +491 -0
- pulumi_gcp/provider.py +20 -0
- pulumi_gcp/redis/cluster.py +69 -2
- pulumi_gcp/storage/__init__.py +1 -0
- pulumi_gcp/storage/get_buckets.py +138 -0
- pulumi_gcp/storage/outputs.py +63 -0
- {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.22.0a1715611725.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.22.0a1715611725.dist-info}/RECORD +34 -29
- {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.22.0a1715611725.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.22.0a1715345822.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
|
+
|