pulumi-gcp 8.3.1a1727284265__py3-none-any.whl → 8.4.0a1727795436__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 +24 -0
- pulumi_gcp/apigee/nat_address.py +155 -2
- pulumi_gcp/bigquery/_inputs.py +102 -0
- pulumi_gcp/bigquery/outputs.py +83 -0
- pulumi_gcp/bigquery/table.py +47 -0
- pulumi_gcp/cloudrun/_inputs.py +26 -0
- pulumi_gcp/cloudrun/outputs.py +33 -0
- pulumi_gcp/cloudrun/service.py +76 -0
- pulumi_gcp/cloudrunv2/_inputs.py +65 -9
- pulumi_gcp/cloudrunv2/outputs.py +73 -8
- pulumi_gcp/cloudrunv2/service.py +64 -0
- pulumi_gcp/compute/__init__.py +3 -0
- pulumi_gcp/compute/_inputs.py +1941 -2
- pulumi_gcp/compute/get_region_instance_group_manager.py +438 -0
- pulumi_gcp/compute/get_router_nat.py +11 -1
- pulumi_gcp/compute/instance.py +7 -7
- pulumi_gcp/compute/instance_from_machine_image.py +7 -7
- pulumi_gcp/compute/instance_from_template.py +7 -7
- pulumi_gcp/compute/interconnect.py +76 -64
- pulumi_gcp/compute/outputs.py +4637 -2640
- pulumi_gcp/compute/region_commitment.py +47 -0
- pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +835 -0
- pulumi_gcp/compute/router_nat.py +56 -2
- pulumi_gcp/compute/router_nat_address.py +514 -0
- pulumi_gcp/compute/subnetwork.py +14 -14
- pulumi_gcp/container/_inputs.py +222 -0
- pulumi_gcp/container/outputs.py +279 -2
- pulumi_gcp/logging/__init__.py +1 -0
- pulumi_gcp/logging/log_scope.py +492 -0
- pulumi_gcp/looker/_inputs.py +157 -0
- pulumi_gcp/looker/instance.py +143 -0
- pulumi_gcp/looker/outputs.py +136 -0
- pulumi_gcp/networkconnectivity/_inputs.py +72 -3
- pulumi_gcp/networkconnectivity/outputs.py +51 -3
- pulumi_gcp/networkconnectivity/spoke.py +310 -0
- pulumi_gcp/networksecurity/security_profile.py +2 -2
- pulumi_gcp/privilegedaccessmanager/__init__.py +1 -0
- pulumi_gcp/privilegedaccessmanager/get_entitlement.py +219 -0
- pulumi_gcp/privilegedaccessmanager/outputs.py +312 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/secretmanager/__init__.py +2 -0
- pulumi_gcp/secretmanager/get_regional_secret_version.py +2 -2
- pulumi_gcp/secretmanager/get_regional_secret_version_access.py +188 -0
- pulumi_gcp/secretmanager/get_regional_secrets.py +156 -0
- pulumi_gcp/secretmanager/outputs.py +265 -0
- {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/RECORD +49 -42
- {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.3.1a1727284265.dist-info → pulumi_gcp-8.4.0a1727795436.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,219 @@
|
|
1
|
+
# coding=utf-8
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
4
|
+
|
5
|
+
import copy
|
6
|
+
import warnings
|
7
|
+
import sys
|
8
|
+
import pulumi
|
9
|
+
import pulumi.runtime
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
11
|
+
if sys.version_info >= (3, 11):
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
13
|
+
else:
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
15
|
+
from .. import _utilities
|
16
|
+
from . import outputs
|
17
|
+
|
18
|
+
__all__ = [
|
19
|
+
'GetEntitlementResult',
|
20
|
+
'AwaitableGetEntitlementResult',
|
21
|
+
'get_entitlement',
|
22
|
+
'get_entitlement_output',
|
23
|
+
]
|
24
|
+
|
25
|
+
@pulumi.output_type
|
26
|
+
class GetEntitlementResult:
|
27
|
+
"""
|
28
|
+
A collection of values returned by getEntitlement.
|
29
|
+
"""
|
30
|
+
def __init__(__self__, additional_notification_targets=None, approval_workflows=None, create_time=None, eligible_users=None, entitlement_id=None, etag=None, id=None, location=None, max_request_duration=None, name=None, parent=None, privileged_accesses=None, requester_justification_configs=None, state=None, update_time=None):
|
31
|
+
if additional_notification_targets and not isinstance(additional_notification_targets, list):
|
32
|
+
raise TypeError("Expected argument 'additional_notification_targets' to be a list")
|
33
|
+
pulumi.set(__self__, "additional_notification_targets", additional_notification_targets)
|
34
|
+
if approval_workflows and not isinstance(approval_workflows, list):
|
35
|
+
raise TypeError("Expected argument 'approval_workflows' to be a list")
|
36
|
+
pulumi.set(__self__, "approval_workflows", approval_workflows)
|
37
|
+
if create_time and not isinstance(create_time, str):
|
38
|
+
raise TypeError("Expected argument 'create_time' to be a str")
|
39
|
+
pulumi.set(__self__, "create_time", create_time)
|
40
|
+
if eligible_users and not isinstance(eligible_users, list):
|
41
|
+
raise TypeError("Expected argument 'eligible_users' to be a list")
|
42
|
+
pulumi.set(__self__, "eligible_users", eligible_users)
|
43
|
+
if entitlement_id and not isinstance(entitlement_id, str):
|
44
|
+
raise TypeError("Expected argument 'entitlement_id' to be a str")
|
45
|
+
pulumi.set(__self__, "entitlement_id", entitlement_id)
|
46
|
+
if etag and not isinstance(etag, str):
|
47
|
+
raise TypeError("Expected argument 'etag' to be a str")
|
48
|
+
pulumi.set(__self__, "etag", etag)
|
49
|
+
if id and not isinstance(id, str):
|
50
|
+
raise TypeError("Expected argument 'id' to be a str")
|
51
|
+
pulumi.set(__self__, "id", id)
|
52
|
+
if location and not isinstance(location, str):
|
53
|
+
raise TypeError("Expected argument 'location' to be a str")
|
54
|
+
pulumi.set(__self__, "location", location)
|
55
|
+
if max_request_duration and not isinstance(max_request_duration, str):
|
56
|
+
raise TypeError("Expected argument 'max_request_duration' to be a str")
|
57
|
+
pulumi.set(__self__, "max_request_duration", max_request_duration)
|
58
|
+
if name and not isinstance(name, str):
|
59
|
+
raise TypeError("Expected argument 'name' to be a str")
|
60
|
+
pulumi.set(__self__, "name", name)
|
61
|
+
if parent and not isinstance(parent, str):
|
62
|
+
raise TypeError("Expected argument 'parent' to be a str")
|
63
|
+
pulumi.set(__self__, "parent", parent)
|
64
|
+
if privileged_accesses and not isinstance(privileged_accesses, list):
|
65
|
+
raise TypeError("Expected argument 'privileged_accesses' to be a list")
|
66
|
+
pulumi.set(__self__, "privileged_accesses", privileged_accesses)
|
67
|
+
if requester_justification_configs and not isinstance(requester_justification_configs, list):
|
68
|
+
raise TypeError("Expected argument 'requester_justification_configs' to be a list")
|
69
|
+
pulumi.set(__self__, "requester_justification_configs", requester_justification_configs)
|
70
|
+
if state and not isinstance(state, str):
|
71
|
+
raise TypeError("Expected argument 'state' to be a str")
|
72
|
+
pulumi.set(__self__, "state", state)
|
73
|
+
if update_time and not isinstance(update_time, str):
|
74
|
+
raise TypeError("Expected argument 'update_time' to be a str")
|
75
|
+
pulumi.set(__self__, "update_time", update_time)
|
76
|
+
|
77
|
+
@property
|
78
|
+
@pulumi.getter(name="additionalNotificationTargets")
|
79
|
+
def additional_notification_targets(self) -> Sequence['outputs.GetEntitlementAdditionalNotificationTargetResult']:
|
80
|
+
return pulumi.get(self, "additional_notification_targets")
|
81
|
+
|
82
|
+
@property
|
83
|
+
@pulumi.getter(name="approvalWorkflows")
|
84
|
+
def approval_workflows(self) -> Sequence['outputs.GetEntitlementApprovalWorkflowResult']:
|
85
|
+
return pulumi.get(self, "approval_workflows")
|
86
|
+
|
87
|
+
@property
|
88
|
+
@pulumi.getter(name="createTime")
|
89
|
+
def create_time(self) -> str:
|
90
|
+
return pulumi.get(self, "create_time")
|
91
|
+
|
92
|
+
@property
|
93
|
+
@pulumi.getter(name="eligibleUsers")
|
94
|
+
def eligible_users(self) -> Sequence['outputs.GetEntitlementEligibleUserResult']:
|
95
|
+
return pulumi.get(self, "eligible_users")
|
96
|
+
|
97
|
+
@property
|
98
|
+
@pulumi.getter(name="entitlementId")
|
99
|
+
def entitlement_id(self) -> Optional[str]:
|
100
|
+
return pulumi.get(self, "entitlement_id")
|
101
|
+
|
102
|
+
@property
|
103
|
+
@pulumi.getter
|
104
|
+
def etag(self) -> str:
|
105
|
+
return pulumi.get(self, "etag")
|
106
|
+
|
107
|
+
@property
|
108
|
+
@pulumi.getter
|
109
|
+
def id(self) -> str:
|
110
|
+
"""
|
111
|
+
The provider-assigned unique ID for this managed resource.
|
112
|
+
"""
|
113
|
+
return pulumi.get(self, "id")
|
114
|
+
|
115
|
+
@property
|
116
|
+
@pulumi.getter
|
117
|
+
def location(self) -> Optional[str]:
|
118
|
+
return pulumi.get(self, "location")
|
119
|
+
|
120
|
+
@property
|
121
|
+
@pulumi.getter(name="maxRequestDuration")
|
122
|
+
def max_request_duration(self) -> str:
|
123
|
+
return pulumi.get(self, "max_request_duration")
|
124
|
+
|
125
|
+
@property
|
126
|
+
@pulumi.getter
|
127
|
+
def name(self) -> str:
|
128
|
+
return pulumi.get(self, "name")
|
129
|
+
|
130
|
+
@property
|
131
|
+
@pulumi.getter
|
132
|
+
def parent(self) -> Optional[str]:
|
133
|
+
return pulumi.get(self, "parent")
|
134
|
+
|
135
|
+
@property
|
136
|
+
@pulumi.getter(name="privilegedAccesses")
|
137
|
+
def privileged_accesses(self) -> Sequence['outputs.GetEntitlementPrivilegedAccessResult']:
|
138
|
+
return pulumi.get(self, "privileged_accesses")
|
139
|
+
|
140
|
+
@property
|
141
|
+
@pulumi.getter(name="requesterJustificationConfigs")
|
142
|
+
def requester_justification_configs(self) -> Sequence['outputs.GetEntitlementRequesterJustificationConfigResult']:
|
143
|
+
return pulumi.get(self, "requester_justification_configs")
|
144
|
+
|
145
|
+
@property
|
146
|
+
@pulumi.getter
|
147
|
+
def state(self) -> str:
|
148
|
+
return pulumi.get(self, "state")
|
149
|
+
|
150
|
+
@property
|
151
|
+
@pulumi.getter(name="updateTime")
|
152
|
+
def update_time(self) -> str:
|
153
|
+
return pulumi.get(self, "update_time")
|
154
|
+
|
155
|
+
|
156
|
+
class AwaitableGetEntitlementResult(GetEntitlementResult):
|
157
|
+
# pylint: disable=using-constant-test
|
158
|
+
def __await__(self):
|
159
|
+
if False:
|
160
|
+
yield self
|
161
|
+
return GetEntitlementResult(
|
162
|
+
additional_notification_targets=self.additional_notification_targets,
|
163
|
+
approval_workflows=self.approval_workflows,
|
164
|
+
create_time=self.create_time,
|
165
|
+
eligible_users=self.eligible_users,
|
166
|
+
entitlement_id=self.entitlement_id,
|
167
|
+
etag=self.etag,
|
168
|
+
id=self.id,
|
169
|
+
location=self.location,
|
170
|
+
max_request_duration=self.max_request_duration,
|
171
|
+
name=self.name,
|
172
|
+
parent=self.parent,
|
173
|
+
privileged_accesses=self.privileged_accesses,
|
174
|
+
requester_justification_configs=self.requester_justification_configs,
|
175
|
+
state=self.state,
|
176
|
+
update_time=self.update_time)
|
177
|
+
|
178
|
+
|
179
|
+
def get_entitlement(entitlement_id: Optional[str] = None,
|
180
|
+
location: Optional[str] = None,
|
181
|
+
parent: Optional[str] = None,
|
182
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetEntitlementResult:
|
183
|
+
"""
|
184
|
+
Use this data source to access information about an existing resource.
|
185
|
+
"""
|
186
|
+
__args__ = dict()
|
187
|
+
__args__['entitlementId'] = entitlement_id
|
188
|
+
__args__['location'] = location
|
189
|
+
__args__['parent'] = parent
|
190
|
+
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
191
|
+
__ret__ = pulumi.runtime.invoke('gcp:privilegedaccessmanager/getEntitlement:getEntitlement', __args__, opts=opts, typ=GetEntitlementResult).value
|
192
|
+
|
193
|
+
return AwaitableGetEntitlementResult(
|
194
|
+
additional_notification_targets=pulumi.get(__ret__, 'additional_notification_targets'),
|
195
|
+
approval_workflows=pulumi.get(__ret__, 'approval_workflows'),
|
196
|
+
create_time=pulumi.get(__ret__, 'create_time'),
|
197
|
+
eligible_users=pulumi.get(__ret__, 'eligible_users'),
|
198
|
+
entitlement_id=pulumi.get(__ret__, 'entitlement_id'),
|
199
|
+
etag=pulumi.get(__ret__, 'etag'),
|
200
|
+
id=pulumi.get(__ret__, 'id'),
|
201
|
+
location=pulumi.get(__ret__, 'location'),
|
202
|
+
max_request_duration=pulumi.get(__ret__, 'max_request_duration'),
|
203
|
+
name=pulumi.get(__ret__, 'name'),
|
204
|
+
parent=pulumi.get(__ret__, 'parent'),
|
205
|
+
privileged_accesses=pulumi.get(__ret__, 'privileged_accesses'),
|
206
|
+
requester_justification_configs=pulumi.get(__ret__, 'requester_justification_configs'),
|
207
|
+
state=pulumi.get(__ret__, 'state'),
|
208
|
+
update_time=pulumi.get(__ret__, 'update_time'))
|
209
|
+
|
210
|
+
|
211
|
+
@_utilities.lift_output_func(get_entitlement)
|
212
|
+
def get_entitlement_output(entitlement_id: Optional[pulumi.Input[Optional[str]]] = None,
|
213
|
+
location: Optional[pulumi.Input[Optional[str]]] = None,
|
214
|
+
parent: Optional[pulumi.Input[Optional[str]]] = None,
|
215
|
+
opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetEntitlementResult]:
|
216
|
+
"""
|
217
|
+
Use this data source to access information about an existing resource.
|
218
|
+
"""
|
219
|
+
...
|
@@ -28,6 +28,18 @@ __all__ = [
|
|
28
28
|
'EntitlementRequesterJustificationConfig',
|
29
29
|
'EntitlementRequesterJustificationConfigNotMandatory',
|
30
30
|
'EntitlementRequesterJustificationConfigUnstructured',
|
31
|
+
'GetEntitlementAdditionalNotificationTargetResult',
|
32
|
+
'GetEntitlementApprovalWorkflowResult',
|
33
|
+
'GetEntitlementApprovalWorkflowManualApprovalResult',
|
34
|
+
'GetEntitlementApprovalWorkflowManualApprovalStepResult',
|
35
|
+
'GetEntitlementApprovalWorkflowManualApprovalStepApproverResult',
|
36
|
+
'GetEntitlementEligibleUserResult',
|
37
|
+
'GetEntitlementPrivilegedAccessResult',
|
38
|
+
'GetEntitlementPrivilegedAccessGcpIamAccessResult',
|
39
|
+
'GetEntitlementPrivilegedAccessGcpIamAccessRoleBindingResult',
|
40
|
+
'GetEntitlementRequesterJustificationConfigResult',
|
41
|
+
'GetEntitlementRequesterJustificationConfigNotMandatoryResult',
|
42
|
+
'GetEntitlementRequesterJustificationConfigUnstructuredResult',
|
31
43
|
]
|
32
44
|
|
33
45
|
@pulumi.output_type
|
@@ -494,3 +506,303 @@ class EntitlementRequesterJustificationConfigUnstructured(dict):
|
|
494
506
|
pass
|
495
507
|
|
496
508
|
|
509
|
+
@pulumi.output_type
|
510
|
+
class GetEntitlementAdditionalNotificationTargetResult(dict):
|
511
|
+
def __init__(__self__, *,
|
512
|
+
admin_email_recipients: Sequence[str],
|
513
|
+
requester_email_recipients: Sequence[str]):
|
514
|
+
"""
|
515
|
+
:param Sequence[str] admin_email_recipients: Optional. Additional email addresses to be notified when a principal(requester) is granted access.
|
516
|
+
:param Sequence[str] requester_email_recipients: Optional. Additional email address to be notified about an eligible entitlement.
|
517
|
+
"""
|
518
|
+
pulumi.set(__self__, "admin_email_recipients", admin_email_recipients)
|
519
|
+
pulumi.set(__self__, "requester_email_recipients", requester_email_recipients)
|
520
|
+
|
521
|
+
@property
|
522
|
+
@pulumi.getter(name="adminEmailRecipients")
|
523
|
+
def admin_email_recipients(self) -> Sequence[str]:
|
524
|
+
"""
|
525
|
+
Optional. Additional email addresses to be notified when a principal(requester) is granted access.
|
526
|
+
"""
|
527
|
+
return pulumi.get(self, "admin_email_recipients")
|
528
|
+
|
529
|
+
@property
|
530
|
+
@pulumi.getter(name="requesterEmailRecipients")
|
531
|
+
def requester_email_recipients(self) -> Sequence[str]:
|
532
|
+
"""
|
533
|
+
Optional. Additional email address to be notified about an eligible entitlement.
|
534
|
+
"""
|
535
|
+
return pulumi.get(self, "requester_email_recipients")
|
536
|
+
|
537
|
+
|
538
|
+
@pulumi.output_type
|
539
|
+
class GetEntitlementApprovalWorkflowResult(dict):
|
540
|
+
def __init__(__self__, *,
|
541
|
+
manual_approvals: Sequence['outputs.GetEntitlementApprovalWorkflowManualApprovalResult']):
|
542
|
+
"""
|
543
|
+
:param Sequence['GetEntitlementApprovalWorkflowManualApprovalArgs'] manual_approvals: A manual approval workflow where users who are designated as approvers need to call the ApproveGrant/DenyGrant APIs for an Grant.
|
544
|
+
The workflow can consist of multiple serial steps where each step defines who can act as Approver in that step and how many of those users should approve before the workflow moves to the next step.
|
545
|
+
This can be used to create approval workflows such as
|
546
|
+
* Require an approval from any user in a group G.
|
547
|
+
* Require an approval from any k number of users from a Group G.
|
548
|
+
* Require an approval from any user in a group G and then from a user U. etc.
|
549
|
+
A single user might be part of 'approvers' ACL for multiple steps in this workflow but they can only approve once and that approval will only be considered to satisfy the approval step at which it was granted.
|
550
|
+
"""
|
551
|
+
pulumi.set(__self__, "manual_approvals", manual_approvals)
|
552
|
+
|
553
|
+
@property
|
554
|
+
@pulumi.getter(name="manualApprovals")
|
555
|
+
def manual_approvals(self) -> Sequence['outputs.GetEntitlementApprovalWorkflowManualApprovalResult']:
|
556
|
+
"""
|
557
|
+
A manual approval workflow where users who are designated as approvers need to call the ApproveGrant/DenyGrant APIs for an Grant.
|
558
|
+
The workflow can consist of multiple serial steps where each step defines who can act as Approver in that step and how many of those users should approve before the workflow moves to the next step.
|
559
|
+
This can be used to create approval workflows such as
|
560
|
+
* Require an approval from any user in a group G.
|
561
|
+
* Require an approval from any k number of users from a Group G.
|
562
|
+
* Require an approval from any user in a group G and then from a user U. etc.
|
563
|
+
A single user might be part of 'approvers' ACL for multiple steps in this workflow but they can only approve once and that approval will only be considered to satisfy the approval step at which it was granted.
|
564
|
+
"""
|
565
|
+
return pulumi.get(self, "manual_approvals")
|
566
|
+
|
567
|
+
|
568
|
+
@pulumi.output_type
|
569
|
+
class GetEntitlementApprovalWorkflowManualApprovalResult(dict):
|
570
|
+
def __init__(__self__, *,
|
571
|
+
require_approver_justification: bool,
|
572
|
+
steps: Sequence['outputs.GetEntitlementApprovalWorkflowManualApprovalStepResult']):
|
573
|
+
"""
|
574
|
+
:param bool require_approver_justification: Optional. Do the approvers need to provide a justification for their actions?
|
575
|
+
:param Sequence['GetEntitlementApprovalWorkflowManualApprovalStepArgs'] steps: List of approval steps in this workflow. These steps would be followed in the specified order sequentially. 1 step is supported for now.
|
576
|
+
"""
|
577
|
+
pulumi.set(__self__, "require_approver_justification", require_approver_justification)
|
578
|
+
pulumi.set(__self__, "steps", steps)
|
579
|
+
|
580
|
+
@property
|
581
|
+
@pulumi.getter(name="requireApproverJustification")
|
582
|
+
def require_approver_justification(self) -> bool:
|
583
|
+
"""
|
584
|
+
Optional. Do the approvers need to provide a justification for their actions?
|
585
|
+
"""
|
586
|
+
return pulumi.get(self, "require_approver_justification")
|
587
|
+
|
588
|
+
@property
|
589
|
+
@pulumi.getter
|
590
|
+
def steps(self) -> Sequence['outputs.GetEntitlementApprovalWorkflowManualApprovalStepResult']:
|
591
|
+
"""
|
592
|
+
List of approval steps in this workflow. These steps would be followed in the specified order sequentially. 1 step is supported for now.
|
593
|
+
"""
|
594
|
+
return pulumi.get(self, "steps")
|
595
|
+
|
596
|
+
|
597
|
+
@pulumi.output_type
|
598
|
+
class GetEntitlementApprovalWorkflowManualApprovalStepResult(dict):
|
599
|
+
def __init__(__self__, *,
|
600
|
+
approvals_needed: int,
|
601
|
+
approver_email_recipients: Sequence[str],
|
602
|
+
approvers: Sequence['outputs.GetEntitlementApprovalWorkflowManualApprovalStepApproverResult']):
|
603
|
+
"""
|
604
|
+
:param int approvals_needed: How many users from the above list need to approve.
|
605
|
+
If there are not enough distinct users in the list above then the workflow
|
606
|
+
will indefinitely block. Should always be greater than 0. Currently 1 is the only
|
607
|
+
supported value.
|
608
|
+
:param Sequence[str] approver_email_recipients: Optional. Additional email addresses to be notified when a grant is pending approval.
|
609
|
+
:param Sequence['GetEntitlementApprovalWorkflowManualApprovalStepApproverArgs'] approvers: The potential set of approvers in this step. This list should contain at only one entry.
|
610
|
+
"""
|
611
|
+
pulumi.set(__self__, "approvals_needed", approvals_needed)
|
612
|
+
pulumi.set(__self__, "approver_email_recipients", approver_email_recipients)
|
613
|
+
pulumi.set(__self__, "approvers", approvers)
|
614
|
+
|
615
|
+
@property
|
616
|
+
@pulumi.getter(name="approvalsNeeded")
|
617
|
+
def approvals_needed(self) -> int:
|
618
|
+
"""
|
619
|
+
How many users from the above list need to approve.
|
620
|
+
If there are not enough distinct users in the list above then the workflow
|
621
|
+
will indefinitely block. Should always be greater than 0. Currently 1 is the only
|
622
|
+
supported value.
|
623
|
+
"""
|
624
|
+
return pulumi.get(self, "approvals_needed")
|
625
|
+
|
626
|
+
@property
|
627
|
+
@pulumi.getter(name="approverEmailRecipients")
|
628
|
+
def approver_email_recipients(self) -> Sequence[str]:
|
629
|
+
"""
|
630
|
+
Optional. Additional email addresses to be notified when a grant is pending approval.
|
631
|
+
"""
|
632
|
+
return pulumi.get(self, "approver_email_recipients")
|
633
|
+
|
634
|
+
@property
|
635
|
+
@pulumi.getter
|
636
|
+
def approvers(self) -> Sequence['outputs.GetEntitlementApprovalWorkflowManualApprovalStepApproverResult']:
|
637
|
+
"""
|
638
|
+
The potential set of approvers in this step. This list should contain at only one entry.
|
639
|
+
"""
|
640
|
+
return pulumi.get(self, "approvers")
|
641
|
+
|
642
|
+
|
643
|
+
@pulumi.output_type
|
644
|
+
class GetEntitlementApprovalWorkflowManualApprovalStepApproverResult(dict):
|
645
|
+
def __init__(__self__, *,
|
646
|
+
principals: Sequence[str]):
|
647
|
+
"""
|
648
|
+
:param Sequence[str] principals: Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at: https://cloud.google.com/iam/docs/principal-identifiers#v1
|
649
|
+
"""
|
650
|
+
pulumi.set(__self__, "principals", principals)
|
651
|
+
|
652
|
+
@property
|
653
|
+
@pulumi.getter
|
654
|
+
def principals(self) -> Sequence[str]:
|
655
|
+
"""
|
656
|
+
Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at: https://cloud.google.com/iam/docs/principal-identifiers#v1
|
657
|
+
"""
|
658
|
+
return pulumi.get(self, "principals")
|
659
|
+
|
660
|
+
|
661
|
+
@pulumi.output_type
|
662
|
+
class GetEntitlementEligibleUserResult(dict):
|
663
|
+
def __init__(__self__, *,
|
664
|
+
principals: Sequence[str]):
|
665
|
+
"""
|
666
|
+
:param Sequence[str] principals: Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at "https://cloud.google.com/iam/docs/principal-identifiers#v1"
|
667
|
+
"""
|
668
|
+
pulumi.set(__self__, "principals", principals)
|
669
|
+
|
670
|
+
@property
|
671
|
+
@pulumi.getter
|
672
|
+
def principals(self) -> Sequence[str]:
|
673
|
+
"""
|
674
|
+
Users who are being allowed for the operation. Each entry should be a valid v1 IAM Principal Identifier. Format for these is documented at "https://cloud.google.com/iam/docs/principal-identifiers#v1"
|
675
|
+
"""
|
676
|
+
return pulumi.get(self, "principals")
|
677
|
+
|
678
|
+
|
679
|
+
@pulumi.output_type
|
680
|
+
class GetEntitlementPrivilegedAccessResult(dict):
|
681
|
+
def __init__(__self__, *,
|
682
|
+
gcp_iam_accesses: Sequence['outputs.GetEntitlementPrivilegedAccessGcpIamAccessResult']):
|
683
|
+
"""
|
684
|
+
:param Sequence['GetEntitlementPrivilegedAccessGcpIamAccessArgs'] gcp_iam_accesses: GcpIamAccess represents IAM based access control on a GCP resource. Refer to https://cloud.google.com/iam/docs to understand more about IAM.
|
685
|
+
"""
|
686
|
+
pulumi.set(__self__, "gcp_iam_accesses", gcp_iam_accesses)
|
687
|
+
|
688
|
+
@property
|
689
|
+
@pulumi.getter(name="gcpIamAccesses")
|
690
|
+
def gcp_iam_accesses(self) -> Sequence['outputs.GetEntitlementPrivilegedAccessGcpIamAccessResult']:
|
691
|
+
"""
|
692
|
+
GcpIamAccess represents IAM based access control on a GCP resource. Refer to https://cloud.google.com/iam/docs to understand more about IAM.
|
693
|
+
"""
|
694
|
+
return pulumi.get(self, "gcp_iam_accesses")
|
695
|
+
|
696
|
+
|
697
|
+
@pulumi.output_type
|
698
|
+
class GetEntitlementPrivilegedAccessGcpIamAccessResult(dict):
|
699
|
+
def __init__(__self__, *,
|
700
|
+
resource: str,
|
701
|
+
resource_type: str,
|
702
|
+
role_bindings: Sequence['outputs.GetEntitlementPrivilegedAccessGcpIamAccessRoleBindingResult']):
|
703
|
+
"""
|
704
|
+
:param str resource: Name of the resource.
|
705
|
+
:param str resource_type: The type of this resource.
|
706
|
+
:param Sequence['GetEntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs'] role_bindings: Role bindings to be created on successful grant.
|
707
|
+
"""
|
708
|
+
pulumi.set(__self__, "resource", resource)
|
709
|
+
pulumi.set(__self__, "resource_type", resource_type)
|
710
|
+
pulumi.set(__self__, "role_bindings", role_bindings)
|
711
|
+
|
712
|
+
@property
|
713
|
+
@pulumi.getter
|
714
|
+
def resource(self) -> str:
|
715
|
+
"""
|
716
|
+
Name of the resource.
|
717
|
+
"""
|
718
|
+
return pulumi.get(self, "resource")
|
719
|
+
|
720
|
+
@property
|
721
|
+
@pulumi.getter(name="resourceType")
|
722
|
+
def resource_type(self) -> str:
|
723
|
+
"""
|
724
|
+
The type of this resource.
|
725
|
+
"""
|
726
|
+
return pulumi.get(self, "resource_type")
|
727
|
+
|
728
|
+
@property
|
729
|
+
@pulumi.getter(name="roleBindings")
|
730
|
+
def role_bindings(self) -> Sequence['outputs.GetEntitlementPrivilegedAccessGcpIamAccessRoleBindingResult']:
|
731
|
+
"""
|
732
|
+
Role bindings to be created on successful grant.
|
733
|
+
"""
|
734
|
+
return pulumi.get(self, "role_bindings")
|
735
|
+
|
736
|
+
|
737
|
+
@pulumi.output_type
|
738
|
+
class GetEntitlementPrivilegedAccessGcpIamAccessRoleBindingResult(dict):
|
739
|
+
def __init__(__self__, *,
|
740
|
+
condition_expression: str,
|
741
|
+
role: str):
|
742
|
+
"""
|
743
|
+
:param str condition_expression: The expression field of the IAM condition to be associated with the role. If specified, a user with an active grant for this entitlement would be able to access the resource only if this condition evaluates to true for their request.
|
744
|
+
https://cloud.google.com/iam/docs/conditions-overview#attributes.
|
745
|
+
:param str role: IAM role to be granted. https://cloud.google.com/iam/docs/roles-overview.
|
746
|
+
"""
|
747
|
+
pulumi.set(__self__, "condition_expression", condition_expression)
|
748
|
+
pulumi.set(__self__, "role", role)
|
749
|
+
|
750
|
+
@property
|
751
|
+
@pulumi.getter(name="conditionExpression")
|
752
|
+
def condition_expression(self) -> str:
|
753
|
+
"""
|
754
|
+
The expression field of the IAM condition to be associated with the role. If specified, a user with an active grant for this entitlement would be able to access the resource only if this condition evaluates to true for their request.
|
755
|
+
https://cloud.google.com/iam/docs/conditions-overview#attributes.
|
756
|
+
"""
|
757
|
+
return pulumi.get(self, "condition_expression")
|
758
|
+
|
759
|
+
@property
|
760
|
+
@pulumi.getter
|
761
|
+
def role(self) -> str:
|
762
|
+
"""
|
763
|
+
IAM role to be granted. https://cloud.google.com/iam/docs/roles-overview.
|
764
|
+
"""
|
765
|
+
return pulumi.get(self, "role")
|
766
|
+
|
767
|
+
|
768
|
+
@pulumi.output_type
|
769
|
+
class GetEntitlementRequesterJustificationConfigResult(dict):
|
770
|
+
def __init__(__self__, *,
|
771
|
+
not_mandatories: Sequence['outputs.GetEntitlementRequesterJustificationConfigNotMandatoryResult'],
|
772
|
+
unstructureds: Sequence['outputs.GetEntitlementRequesterJustificationConfigUnstructuredResult']):
|
773
|
+
"""
|
774
|
+
:param Sequence['GetEntitlementRequesterJustificationConfigNotMandatoryArgs'] not_mandatories: The justification is not mandatory but can be provided in any of the supported formats.
|
775
|
+
:param Sequence['GetEntitlementRequesterJustificationConfigUnstructuredArgs'] unstructureds: The requester has to provide a justification in the form of free flowing text.
|
776
|
+
"""
|
777
|
+
pulumi.set(__self__, "not_mandatories", not_mandatories)
|
778
|
+
pulumi.set(__self__, "unstructureds", unstructureds)
|
779
|
+
|
780
|
+
@property
|
781
|
+
@pulumi.getter(name="notMandatories")
|
782
|
+
def not_mandatories(self) -> Sequence['outputs.GetEntitlementRequesterJustificationConfigNotMandatoryResult']:
|
783
|
+
"""
|
784
|
+
The justification is not mandatory but can be provided in any of the supported formats.
|
785
|
+
"""
|
786
|
+
return pulumi.get(self, "not_mandatories")
|
787
|
+
|
788
|
+
@property
|
789
|
+
@pulumi.getter
|
790
|
+
def unstructureds(self) -> Sequence['outputs.GetEntitlementRequesterJustificationConfigUnstructuredResult']:
|
791
|
+
"""
|
792
|
+
The requester has to provide a justification in the form of free flowing text.
|
793
|
+
"""
|
794
|
+
return pulumi.get(self, "unstructureds")
|
795
|
+
|
796
|
+
|
797
|
+
@pulumi.output_type
|
798
|
+
class GetEntitlementRequesterJustificationConfigNotMandatoryResult(dict):
|
799
|
+
def __init__(__self__):
|
800
|
+
pass
|
801
|
+
|
802
|
+
|
803
|
+
@pulumi.output_type
|
804
|
+
class GetEntitlementRequesterJustificationConfigUnstructuredResult(dict):
|
805
|
+
def __init__(__self__):
|
806
|
+
pass
|
807
|
+
|
808
|
+
|
pulumi_gcp/pulumi-plugin.json
CHANGED
@@ -8,6 +8,8 @@ import typing
|
|
8
8
|
from .get_regional_secret import *
|
9
9
|
from .get_regional_secret_iam_policy import *
|
10
10
|
from .get_regional_secret_version import *
|
11
|
+
from .get_regional_secret_version_access import *
|
12
|
+
from .get_regional_secrets import *
|
11
13
|
from .get_secret import *
|
12
14
|
from .get_secret_iam_policy import *
|
13
15
|
from .get_secret_version import *
|
@@ -165,7 +165,7 @@ def get_regional_secret_version(location: Optional[str] = None,
|
|
165
165
|
version: Optional[str] = None,
|
166
166
|
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetRegionalSecretVersionResult:
|
167
167
|
"""
|
168
|
-
Get the value and metadata from a Secret Manager regional secret version. For more information see the [official documentation](https://cloud.google.com/secret-manager/docs/regional-secrets-overview) and [API](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets.versions). If you don't need the metadata (i.e., if you want to use a more limited role to access the regional secret version only), see also the
|
168
|
+
Get the value and metadata from a Secret Manager regional secret version. For more information see the [official documentation](https://cloud.google.com/secret-manager/docs/regional-secrets-overview) and [API](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets.versions). If you don't need the metadata (i.e., if you want to use a more limited role to access the regional secret version only), see also the secretmanager_get_regional_secret_version_access datasource.
|
169
169
|
|
170
170
|
## Example Usage
|
171
171
|
|
@@ -216,7 +216,7 @@ def get_regional_secret_version_output(location: Optional[pulumi.Input[Optional[
|
|
216
216
|
version: Optional[pulumi.Input[Optional[str]]] = None,
|
217
217
|
opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetRegionalSecretVersionResult]:
|
218
218
|
"""
|
219
|
-
Get the value and metadata from a Secret Manager regional secret version. For more information see the [official documentation](https://cloud.google.com/secret-manager/docs/regional-secrets-overview) and [API](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets.versions). If you don't need the metadata (i.e., if you want to use a more limited role to access the regional secret version only), see also the
|
219
|
+
Get the value and metadata from a Secret Manager regional secret version. For more information see the [official documentation](https://cloud.google.com/secret-manager/docs/regional-secrets-overview) and [API](https://cloud.google.com/secret-manager/docs/reference/rest/v1/projects.secrets.versions). If you don't need the metadata (i.e., if you want to use a more limited role to access the regional secret version only), see also the secretmanager_get_regional_secret_version_access datasource.
|
220
220
|
|
221
221
|
## Example Usage
|
222
222
|
|