pulumi-gcp 7.22.0a1715345822__py3-none-any.whl → 7.23.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_gcp/__init__.py +35 -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/bigquery/table.py +47 -0
- pulumi_gcp/bigtable/__init__.py +1 -0
- pulumi_gcp/bigtable/_inputs.py +101 -0
- pulumi_gcp/bigtable/authorized_view.py +440 -0
- pulumi_gcp/bigtable/outputs.py +119 -0
- pulumi_gcp/certificateauthority/certificate_template.py +70 -0
- pulumi_gcp/cloudbuildv2/repository.py +2 -2
- pulumi_gcp/clouddeploy/_inputs.py +96 -0
- pulumi_gcp/clouddeploy/custom_target_type.py +46 -0
- pulumi_gcp/clouddeploy/delivery_pipeline.py +7 -7
- pulumi_gcp/clouddeploy/outputs.py +96 -1
- pulumi_gcp/clouddeploy/target.py +54 -7
- pulumi_gcp/cloudrunv2/job.py +2 -4
- pulumi_gcp/cloudrunv2/service.py +2 -4
- pulumi_gcp/compute/_inputs.py +693 -0
- pulumi_gcp/compute/firewall_policy_rule.py +125 -10
- pulumi_gcp/compute/network_firewall_policy_rule.py +125 -10
- pulumi_gcp/compute/outputs.py +688 -0
- pulumi_gcp/compute/region_network_firewall_policy_rule.py +125 -10
- pulumi_gcp/compute/region_security_policy_rule.py +230 -1
- 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 +236 -3
- pulumi_gcp/container/outputs.py +365 -4
- pulumi_gcp/dataflow/flex_template_job.py +28 -28
- pulumi_gcp/dataflow/job.py +28 -14
- pulumi_gcp/essentialcontacts/document_ai_warehouse_document_schema.py +0 -528
- pulumi_gcp/firebaserules/release.py +2 -2
- pulumi_gcp/iam/_inputs.py +191 -2
- pulumi_gcp/iam/outputs.py +197 -2
- pulumi_gcp/iam/workforce_pool_provider.py +245 -0
- pulumi_gcp/integrationconnectors/__init__.py +1 -0
- pulumi_gcp/integrationconnectors/managed_zone.py +753 -0
- pulumi_gcp/networkconnectivity/__init__.py +1 -0
- pulumi_gcp/networkconnectivity/regional_endpoint.py +946 -0
- pulumi_gcp/networksecurity/firewall_endpoint.py +34 -0
- pulumi_gcp/networksecurity/firewall_endpoint_association.py +24 -0
- pulumi_gcp/networksecurity/security_profile.py +16 -0
- pulumi_gcp/networksecurity/security_profile_group.py +18 -0
- pulumi_gcp/networksecurity/tls_inspection_policy.py +16 -0
- pulumi_gcp/orgpolicy/policy.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/pubsub/subscription.py +4 -4
- pulumi_gcp/pulumi-plugin.json +2 -1
- 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.23.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.23.0.dist-info}/RECORD +65 -57
- {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.23.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.22.0a1715345822.dist-info → pulumi_gcp-7.23.0.dist-info}/top_level.txt +0 -0
@@ -360,6 +360,23 @@ class FirewallEndpoint(pulumi.CustomResource):
|
|
360
360
|
parent: Optional[pulumi.Input[str]] = None,
|
361
361
|
__props__=None):
|
362
362
|
"""
|
363
|
+
A Firewall endpoint is a Cloud Firewall resource that enables
|
364
|
+
layer 7 advanced protection capabilities, such as intrusion prevention,
|
365
|
+
in your network.
|
366
|
+
|
367
|
+
To get more information about FirewallEndpoint, see:
|
368
|
+
|
369
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/organizations.locations.firewallEndpoints)
|
370
|
+
* How-to Guides
|
371
|
+
* [Firewall endpoint overview](https://cloud.google.com/firewall/docs/about-firewall-endpoints)
|
372
|
+
* [Create and associate firewall endpoints](https://cloud.google.com/firewall/docs/configure-firewall-endpoints)
|
373
|
+
|
374
|
+
> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource,
|
375
|
+
you must specify a `billing_project_id` and set `user_project_override` to true
|
376
|
+
in the provider configuration. Otherwise the ACM API will return a 403 error.
|
377
|
+
Your account must have the `serviceusage.services.use` permission on the
|
378
|
+
`billing_project_id` you defined.
|
379
|
+
|
363
380
|
## Example Usage
|
364
381
|
|
365
382
|
### Network Security Firewall Endpoint Basic
|
@@ -412,6 +429,23 @@ class FirewallEndpoint(pulumi.CustomResource):
|
|
412
429
|
args: FirewallEndpointArgs,
|
413
430
|
opts: Optional[pulumi.ResourceOptions] = None):
|
414
431
|
"""
|
432
|
+
A Firewall endpoint is a Cloud Firewall resource that enables
|
433
|
+
layer 7 advanced protection capabilities, such as intrusion prevention,
|
434
|
+
in your network.
|
435
|
+
|
436
|
+
To get more information about FirewallEndpoint, see:
|
437
|
+
|
438
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/organizations.locations.firewallEndpoints)
|
439
|
+
* How-to Guides
|
440
|
+
* [Firewall endpoint overview](https://cloud.google.com/firewall/docs/about-firewall-endpoints)
|
441
|
+
* [Create and associate firewall endpoints](https://cloud.google.com/firewall/docs/configure-firewall-endpoints)
|
442
|
+
|
443
|
+
> **Warning:** If you are using User ADCs (Application Default Credentials) with this resource,
|
444
|
+
you must specify a `billing_project_id` and set `user_project_override` to true
|
445
|
+
in the provider configuration. Otherwise the ACM API will return a 403 error.
|
446
|
+
Your account must have the `serviceusage.services.use` permission on the
|
447
|
+
`billing_project_id` you defined.
|
448
|
+
|
415
449
|
## Example Usage
|
416
450
|
|
417
451
|
### Network Security Firewall Endpoint Basic
|
@@ -445,6 +445,18 @@ class FirewallEndpointAssociation(pulumi.CustomResource):
|
|
445
445
|
tls_inspection_policy: Optional[pulumi.Input[str]] = None,
|
446
446
|
__props__=None):
|
447
447
|
"""
|
448
|
+
Firewall endpoint association links a firewall endpoint to a VPC network in
|
449
|
+
the same zone. After you define this association, Cloud Firewall forwards the
|
450
|
+
zonal workload traffic in your VPC network that requires layer 7 inspection to
|
451
|
+
the attached firewall endpoint.
|
452
|
+
|
453
|
+
To get more information about FirewallEndpointAssociation, see:
|
454
|
+
|
455
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/projects.locations.firewallEndpointAssociations#FirewallEndpointAssociation)
|
456
|
+
* How-to Guides
|
457
|
+
* [Firewall endpoint overview](https://cloud.google.com/firewall/docs/about-firewall-endpoints)
|
458
|
+
* [Create and associate firewall endpoints](https://cloud.google.com/firewall/docs/configure-firewall-endpoints)
|
459
|
+
|
448
460
|
## Example Usage
|
449
461
|
|
450
462
|
### Network Security Firewall Endpoint Association Basic
|
@@ -508,6 +520,18 @@ class FirewallEndpointAssociation(pulumi.CustomResource):
|
|
508
520
|
args: FirewallEndpointAssociationArgs,
|
509
521
|
opts: Optional[pulumi.ResourceOptions] = None):
|
510
522
|
"""
|
523
|
+
Firewall endpoint association links a firewall endpoint to a VPC network in
|
524
|
+
the same zone. After you define this association, Cloud Firewall forwards the
|
525
|
+
zonal workload traffic in your VPC network that requires layer 7 inspection to
|
526
|
+
the attached firewall endpoint.
|
527
|
+
|
528
|
+
To get more information about FirewallEndpointAssociation, see:
|
529
|
+
|
530
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/projects.locations.firewallEndpointAssociations#FirewallEndpointAssociation)
|
531
|
+
* How-to Guides
|
532
|
+
* [Firewall endpoint overview](https://cloud.google.com/firewall/docs/about-firewall-endpoints)
|
533
|
+
* [Create and associate firewall endpoints](https://cloud.google.com/firewall/docs/configure-firewall-endpoints)
|
534
|
+
|
511
535
|
## Example Usage
|
512
536
|
|
513
537
|
### Network Security Firewall Endpoint Association Basic
|
@@ -408,6 +408,14 @@ class SecurityProfile(pulumi.CustomResource):
|
|
408
408
|
type: Optional[pulumi.Input[str]] = None,
|
409
409
|
__props__=None):
|
410
410
|
"""
|
411
|
+
A security profile defines the behavior associated to a profile type.
|
412
|
+
|
413
|
+
To get more information about SecurityProfile, see:
|
414
|
+
|
415
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/projects.locations.securityProfiles)
|
416
|
+
* How-to Guides
|
417
|
+
* [Create and manage security profiles](https://cloud.google.com/firewall/docs/configure-security-profiles)
|
418
|
+
|
411
419
|
## Example Usage
|
412
420
|
|
413
421
|
### Network Security Security Profile Basic
|
@@ -493,6 +501,14 @@ class SecurityProfile(pulumi.CustomResource):
|
|
493
501
|
args: SecurityProfileArgs,
|
494
502
|
opts: Optional[pulumi.ResourceOptions] = None):
|
495
503
|
"""
|
504
|
+
A security profile defines the behavior associated to a profile type.
|
505
|
+
|
506
|
+
To get more information about SecurityProfile, see:
|
507
|
+
|
508
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/projects.locations.securityProfiles)
|
509
|
+
* How-to Guides
|
510
|
+
* [Create and manage security profiles](https://cloud.google.com/firewall/docs/configure-security-profiles)
|
511
|
+
|
496
512
|
## Example Usage
|
497
513
|
|
498
514
|
### Network Security Security Profile Basic
|
@@ -350,6 +350,15 @@ class SecurityProfileGroup(pulumi.CustomResource):
|
|
350
350
|
threat_prevention_profile: Optional[pulumi.Input[str]] = None,
|
351
351
|
__props__=None):
|
352
352
|
"""
|
353
|
+
A security profile group defines a container for security profiles.
|
354
|
+
|
355
|
+
To get more information about SecurityProfileGroup, see:
|
356
|
+
|
357
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/organizations.locations.securityProfileGroups)
|
358
|
+
* How-to Guides
|
359
|
+
* [Security profile groups overview](https://cloud.google.com/firewall/docs/about-security-profile-groups)
|
360
|
+
* [Create and manage security profile groups](https://cloud.google.com/firewall/docs/configure-security-profile-groups)
|
361
|
+
|
353
362
|
## Example Usage
|
354
363
|
|
355
364
|
### Network Security Security Profile Group Basic
|
@@ -409,6 +418,15 @@ class SecurityProfileGroup(pulumi.CustomResource):
|
|
409
418
|
args: Optional[SecurityProfileGroupArgs] = None,
|
410
419
|
opts: Optional[pulumi.ResourceOptions] = None):
|
411
420
|
"""
|
421
|
+
A security profile group defines a container for security profiles.
|
422
|
+
|
423
|
+
To get more information about SecurityProfileGroup, see:
|
424
|
+
|
425
|
+
* [API documentation](https://cloud.google.com/firewall/docs/reference/network-security/rest/v1/organizations.locations.securityProfileGroups)
|
426
|
+
* How-to Guides
|
427
|
+
* [Security profile groups overview](https://cloud.google.com/firewall/docs/about-security-profile-groups)
|
428
|
+
* [Create and manage security profile groups](https://cloud.google.com/firewall/docs/configure-security-profile-groups)
|
429
|
+
|
412
430
|
## Example Usage
|
413
431
|
|
414
432
|
### Network Security Security Profile Group Basic
|
@@ -279,6 +279,14 @@ class TlsInspectionPolicy(pulumi.CustomResource):
|
|
279
279
|
project: Optional[pulumi.Input[str]] = None,
|
280
280
|
__props__=None):
|
281
281
|
"""
|
282
|
+
The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.
|
283
|
+
|
284
|
+
To get more information about TlsInspectionPolicy, see:
|
285
|
+
|
286
|
+
* [API documentation](https://cloud.google.com/secure-web-proxy/docs/reference/network-security/rest/v1/projects.locations.tlsInspectionPolicies)
|
287
|
+
* How-to Guides
|
288
|
+
* [Use TlsInspectionPolicy](https://cloud.google.com/secure-web-proxy/docs/tls-inspection-overview)
|
289
|
+
|
282
290
|
## Example Usage
|
283
291
|
|
284
292
|
### Network Security Tls Inspection Policy Basic
|
@@ -399,6 +407,14 @@ class TlsInspectionPolicy(pulumi.CustomResource):
|
|
399
407
|
args: TlsInspectionPolicyArgs,
|
400
408
|
opts: Optional[pulumi.ResourceOptions] = None):
|
401
409
|
"""
|
410
|
+
The TlsInspectionPolicy resource contains references to CA pools in Certificate Authority Service and associated metadata.
|
411
|
+
|
412
|
+
To get more information about TlsInspectionPolicy, see:
|
413
|
+
|
414
|
+
* [API documentation](https://cloud.google.com/secure-web-proxy/docs/reference/network-security/rest/v1/projects.locations.tlsInspectionPolicies)
|
415
|
+
* How-to Guides
|
416
|
+
* [Use TlsInspectionPolicy](https://cloud.google.com/secure-web-proxy/docs/tls-inspection-overview)
|
417
|
+
|
402
418
|
## Example Usage
|
403
419
|
|
404
420
|
### Network Security Tls Inspection Policy Basic
|
pulumi_gcp/orgpolicy/policy.py
CHANGED
@@ -297,7 +297,7 @@ class Policy(pulumi.CustomResource):
|
|
297
297
|
import pulumi_gcp as gcp
|
298
298
|
|
299
299
|
constraint = gcp.orgpolicy.CustomConstraint("constraint",
|
300
|
-
name="custom.
|
300
|
+
name="custom.disableGkeAutoUpgrade_29439",
|
301
301
|
parent="organizations/123456789",
|
302
302
|
display_name="Disable GKE auto upgrade",
|
303
303
|
description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
|
@@ -449,7 +449,7 @@ class Policy(pulumi.CustomResource):
|
|
449
449
|
import pulumi_gcp as gcp
|
450
450
|
|
451
451
|
constraint = gcp.orgpolicy.CustomConstraint("constraint",
|
452
|
-
name="custom.
|
452
|
+
name="custom.disableGkeAutoUpgrade_29439",
|
453
453
|
parent="organizations/123456789",
|
454
454
|
display_name="Disable GKE auto upgrade",
|
455
455
|
description="Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced.",
|
@@ -0,0 +1,10 @@
|
|
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
|
+
from .. import _utilities
|
6
|
+
import typing
|
7
|
+
# Export this package's modules as members:
|
8
|
+
from .entitlement import *
|
9
|
+
from ._inputs import *
|
10
|
+
from . import outputs
|
@@ -0,0 +1,420 @@
|
|
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
|
+
|
12
|
+
__all__ = [
|
13
|
+
'EntitlementAdditionalNotificationTargetsArgs',
|
14
|
+
'EntitlementApprovalWorkflowArgs',
|
15
|
+
'EntitlementApprovalWorkflowManualApprovalsArgs',
|
16
|
+
'EntitlementApprovalWorkflowManualApprovalsStepArgs',
|
17
|
+
'EntitlementApprovalWorkflowManualApprovalsStepApproversArgs',
|
18
|
+
'EntitlementEligibleUserArgs',
|
19
|
+
'EntitlementPrivilegedAccessArgs',
|
20
|
+
'EntitlementPrivilegedAccessGcpIamAccessArgs',
|
21
|
+
'EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs',
|
22
|
+
'EntitlementRequesterJustificationConfigArgs',
|
23
|
+
'EntitlementRequesterJustificationConfigNotMandatoryArgs',
|
24
|
+
'EntitlementRequesterJustificationConfigUnstructuredArgs',
|
25
|
+
]
|
26
|
+
|
27
|
+
@pulumi.input_type
|
28
|
+
class EntitlementAdditionalNotificationTargetsArgs:
|
29
|
+
def __init__(__self__, *,
|
30
|
+
admin_email_recipients: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
31
|
+
requester_email_recipients: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
|
32
|
+
"""
|
33
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] admin_email_recipients: Optional. Additional email addresses to be notified when a principal(requester) is granted access.
|
34
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] requester_email_recipients: Optional. Additional email address to be notified about an eligible entitlement.
|
35
|
+
"""
|
36
|
+
if admin_email_recipients is not None:
|
37
|
+
pulumi.set(__self__, "admin_email_recipients", admin_email_recipients)
|
38
|
+
if requester_email_recipients is not None:
|
39
|
+
pulumi.set(__self__, "requester_email_recipients", requester_email_recipients)
|
40
|
+
|
41
|
+
@property
|
42
|
+
@pulumi.getter(name="adminEmailRecipients")
|
43
|
+
def admin_email_recipients(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
44
|
+
"""
|
45
|
+
Optional. Additional email addresses to be notified when a principal(requester) is granted access.
|
46
|
+
"""
|
47
|
+
return pulumi.get(self, "admin_email_recipients")
|
48
|
+
|
49
|
+
@admin_email_recipients.setter
|
50
|
+
def admin_email_recipients(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
51
|
+
pulumi.set(self, "admin_email_recipients", value)
|
52
|
+
|
53
|
+
@property
|
54
|
+
@pulumi.getter(name="requesterEmailRecipients")
|
55
|
+
def requester_email_recipients(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
56
|
+
"""
|
57
|
+
Optional. Additional email address to be notified about an eligible entitlement.
|
58
|
+
"""
|
59
|
+
return pulumi.get(self, "requester_email_recipients")
|
60
|
+
|
61
|
+
@requester_email_recipients.setter
|
62
|
+
def requester_email_recipients(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
63
|
+
pulumi.set(self, "requester_email_recipients", value)
|
64
|
+
|
65
|
+
|
66
|
+
@pulumi.input_type
|
67
|
+
class EntitlementApprovalWorkflowArgs:
|
68
|
+
def __init__(__self__, *,
|
69
|
+
manual_approvals: pulumi.Input['EntitlementApprovalWorkflowManualApprovalsArgs']):
|
70
|
+
"""
|
71
|
+
:param pulumi.Input['EntitlementApprovalWorkflowManualApprovalsArgs'] manual_approvals: A manual approval workflow where users who are designated as approvers need to call the ApproveGrant/DenyGrant APIs for an Grant.
|
72
|
+
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.
|
73
|
+
This can be used to create approval workflows such as
|
74
|
+
* Require an approval from any user in a group G.
|
75
|
+
* Require an approval from any k number of users from a Group G.
|
76
|
+
* Require an approval from any user in a group G and then from a user U. etc.
|
77
|
+
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.
|
78
|
+
Structure is documented below.
|
79
|
+
"""
|
80
|
+
pulumi.set(__self__, "manual_approvals", manual_approvals)
|
81
|
+
|
82
|
+
@property
|
83
|
+
@pulumi.getter(name="manualApprovals")
|
84
|
+
def manual_approvals(self) -> pulumi.Input['EntitlementApprovalWorkflowManualApprovalsArgs']:
|
85
|
+
"""
|
86
|
+
A manual approval workflow where users who are designated as approvers need to call the ApproveGrant/DenyGrant APIs for an Grant.
|
87
|
+
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.
|
88
|
+
This can be used to create approval workflows such as
|
89
|
+
* Require an approval from any user in a group G.
|
90
|
+
* Require an approval from any k number of users from a Group G.
|
91
|
+
* Require an approval from any user in a group G and then from a user U. etc.
|
92
|
+
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.
|
93
|
+
Structure is documented below.
|
94
|
+
"""
|
95
|
+
return pulumi.get(self, "manual_approvals")
|
96
|
+
|
97
|
+
@manual_approvals.setter
|
98
|
+
def manual_approvals(self, value: pulumi.Input['EntitlementApprovalWorkflowManualApprovalsArgs']):
|
99
|
+
pulumi.set(self, "manual_approvals", value)
|
100
|
+
|
101
|
+
|
102
|
+
@pulumi.input_type
|
103
|
+
class EntitlementApprovalWorkflowManualApprovalsArgs:
|
104
|
+
def __init__(__self__, *,
|
105
|
+
steps: pulumi.Input[Sequence[pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepArgs']]],
|
106
|
+
require_approver_justification: Optional[pulumi.Input[bool]] = None):
|
107
|
+
"""
|
108
|
+
:param pulumi.Input[Sequence[pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepArgs']]] steps: List of approval steps in this workflow. These steps would be followed in the specified order sequentially. 1 step is supported for now.
|
109
|
+
Structure is documented below.
|
110
|
+
:param pulumi.Input[bool] require_approver_justification: Optional. Do the approvers need to provide a justification for their actions?
|
111
|
+
"""
|
112
|
+
pulumi.set(__self__, "steps", steps)
|
113
|
+
if require_approver_justification is not None:
|
114
|
+
pulumi.set(__self__, "require_approver_justification", require_approver_justification)
|
115
|
+
|
116
|
+
@property
|
117
|
+
@pulumi.getter
|
118
|
+
def steps(self) -> pulumi.Input[Sequence[pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepArgs']]]:
|
119
|
+
"""
|
120
|
+
List of approval steps in this workflow. These steps would be followed in the specified order sequentially. 1 step is supported for now.
|
121
|
+
Structure is documented below.
|
122
|
+
"""
|
123
|
+
return pulumi.get(self, "steps")
|
124
|
+
|
125
|
+
@steps.setter
|
126
|
+
def steps(self, value: pulumi.Input[Sequence[pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepArgs']]]):
|
127
|
+
pulumi.set(self, "steps", value)
|
128
|
+
|
129
|
+
@property
|
130
|
+
@pulumi.getter(name="requireApproverJustification")
|
131
|
+
def require_approver_justification(self) -> Optional[pulumi.Input[bool]]:
|
132
|
+
"""
|
133
|
+
Optional. Do the approvers need to provide a justification for their actions?
|
134
|
+
"""
|
135
|
+
return pulumi.get(self, "require_approver_justification")
|
136
|
+
|
137
|
+
@require_approver_justification.setter
|
138
|
+
def require_approver_justification(self, value: Optional[pulumi.Input[bool]]):
|
139
|
+
pulumi.set(self, "require_approver_justification", value)
|
140
|
+
|
141
|
+
|
142
|
+
@pulumi.input_type
|
143
|
+
class EntitlementApprovalWorkflowManualApprovalsStepArgs:
|
144
|
+
def __init__(__self__, *,
|
145
|
+
approvers: pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepApproversArgs'],
|
146
|
+
approvals_needed: Optional[pulumi.Input[int]] = None,
|
147
|
+
approver_email_recipients: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
|
148
|
+
"""
|
149
|
+
:param pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepApproversArgs'] approvers: The potential set of approvers in this step. This list should contain at only one entry.
|
150
|
+
Structure is documented below.
|
151
|
+
:param pulumi.Input[int] approvals_needed: How many users from the above list need to approve.
|
152
|
+
If there are not enough distinct users in the list above then the workflow
|
153
|
+
will indefinitely block. Should always be greater than 0. Currently 1 is the only
|
154
|
+
supported value.
|
155
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] approver_email_recipients: Optional. Additional email addresses to be notified when a grant is pending approval.
|
156
|
+
"""
|
157
|
+
pulumi.set(__self__, "approvers", approvers)
|
158
|
+
if approvals_needed is not None:
|
159
|
+
pulumi.set(__self__, "approvals_needed", approvals_needed)
|
160
|
+
if approver_email_recipients is not None:
|
161
|
+
pulumi.set(__self__, "approver_email_recipients", approver_email_recipients)
|
162
|
+
|
163
|
+
@property
|
164
|
+
@pulumi.getter
|
165
|
+
def approvers(self) -> pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepApproversArgs']:
|
166
|
+
"""
|
167
|
+
The potential set of approvers in this step. This list should contain at only one entry.
|
168
|
+
Structure is documented below.
|
169
|
+
"""
|
170
|
+
return pulumi.get(self, "approvers")
|
171
|
+
|
172
|
+
@approvers.setter
|
173
|
+
def approvers(self, value: pulumi.Input['EntitlementApprovalWorkflowManualApprovalsStepApproversArgs']):
|
174
|
+
pulumi.set(self, "approvers", value)
|
175
|
+
|
176
|
+
@property
|
177
|
+
@pulumi.getter(name="approvalsNeeded")
|
178
|
+
def approvals_needed(self) -> Optional[pulumi.Input[int]]:
|
179
|
+
"""
|
180
|
+
How many users from the above list need to approve.
|
181
|
+
If there are not enough distinct users in the list above then the workflow
|
182
|
+
will indefinitely block. Should always be greater than 0. Currently 1 is the only
|
183
|
+
supported value.
|
184
|
+
"""
|
185
|
+
return pulumi.get(self, "approvals_needed")
|
186
|
+
|
187
|
+
@approvals_needed.setter
|
188
|
+
def approvals_needed(self, value: Optional[pulumi.Input[int]]):
|
189
|
+
pulumi.set(self, "approvals_needed", value)
|
190
|
+
|
191
|
+
@property
|
192
|
+
@pulumi.getter(name="approverEmailRecipients")
|
193
|
+
def approver_email_recipients(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
194
|
+
"""
|
195
|
+
Optional. Additional email addresses to be notified when a grant is pending approval.
|
196
|
+
"""
|
197
|
+
return pulumi.get(self, "approver_email_recipients")
|
198
|
+
|
199
|
+
@approver_email_recipients.setter
|
200
|
+
def approver_email_recipients(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
201
|
+
pulumi.set(self, "approver_email_recipients", value)
|
202
|
+
|
203
|
+
|
204
|
+
@pulumi.input_type
|
205
|
+
class EntitlementApprovalWorkflowManualApprovalsStepApproversArgs:
|
206
|
+
def __init__(__self__, *,
|
207
|
+
principals: pulumi.Input[Sequence[pulumi.Input[str]]]):
|
208
|
+
"""
|
209
|
+
:param pulumi.Input[Sequence[pulumi.Input[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
|
210
|
+
"""
|
211
|
+
pulumi.set(__self__, "principals", principals)
|
212
|
+
|
213
|
+
@property
|
214
|
+
@pulumi.getter
|
215
|
+
def principals(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
|
216
|
+
"""
|
217
|
+
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
|
218
|
+
"""
|
219
|
+
return pulumi.get(self, "principals")
|
220
|
+
|
221
|
+
@principals.setter
|
222
|
+
def principals(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
|
223
|
+
pulumi.set(self, "principals", value)
|
224
|
+
|
225
|
+
|
226
|
+
@pulumi.input_type
|
227
|
+
class EntitlementEligibleUserArgs:
|
228
|
+
def __init__(__self__, *,
|
229
|
+
principals: pulumi.Input[Sequence[pulumi.Input[str]]]):
|
230
|
+
"""
|
231
|
+
:param pulumi.Input[Sequence[pulumi.Input[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"
|
232
|
+
"""
|
233
|
+
pulumi.set(__self__, "principals", principals)
|
234
|
+
|
235
|
+
@property
|
236
|
+
@pulumi.getter
|
237
|
+
def principals(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
|
238
|
+
"""
|
239
|
+
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"
|
240
|
+
"""
|
241
|
+
return pulumi.get(self, "principals")
|
242
|
+
|
243
|
+
@principals.setter
|
244
|
+
def principals(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
|
245
|
+
pulumi.set(self, "principals", value)
|
246
|
+
|
247
|
+
|
248
|
+
@pulumi.input_type
|
249
|
+
class EntitlementPrivilegedAccessArgs:
|
250
|
+
def __init__(__self__, *,
|
251
|
+
gcp_iam_access: pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessArgs']):
|
252
|
+
"""
|
253
|
+
:param pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessArgs'] gcp_iam_access: GcpIamAccess represents IAM based access control on a GCP resource. Refer to https://cloud.google.com/iam/docs to understand more about IAM.
|
254
|
+
Structure is documented below.
|
255
|
+
"""
|
256
|
+
pulumi.set(__self__, "gcp_iam_access", gcp_iam_access)
|
257
|
+
|
258
|
+
@property
|
259
|
+
@pulumi.getter(name="gcpIamAccess")
|
260
|
+
def gcp_iam_access(self) -> pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessArgs']:
|
261
|
+
"""
|
262
|
+
GcpIamAccess represents IAM based access control on a GCP resource. Refer to https://cloud.google.com/iam/docs to understand more about IAM.
|
263
|
+
Structure is documented below.
|
264
|
+
"""
|
265
|
+
return pulumi.get(self, "gcp_iam_access")
|
266
|
+
|
267
|
+
@gcp_iam_access.setter
|
268
|
+
def gcp_iam_access(self, value: pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessArgs']):
|
269
|
+
pulumi.set(self, "gcp_iam_access", value)
|
270
|
+
|
271
|
+
|
272
|
+
@pulumi.input_type
|
273
|
+
class EntitlementPrivilegedAccessGcpIamAccessArgs:
|
274
|
+
def __init__(__self__, *,
|
275
|
+
resource: pulumi.Input[str],
|
276
|
+
resource_type: pulumi.Input[str],
|
277
|
+
role_bindings: pulumi.Input[Sequence[pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs']]]):
|
278
|
+
"""
|
279
|
+
:param pulumi.Input[str] resource: Name of the resource.
|
280
|
+
:param pulumi.Input[str] resource_type: The type of this resource.
|
281
|
+
:param pulumi.Input[Sequence[pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs']]] role_bindings: Role bindings to be created on successful grant.
|
282
|
+
Structure is documented below.
|
283
|
+
"""
|
284
|
+
pulumi.set(__self__, "resource", resource)
|
285
|
+
pulumi.set(__self__, "resource_type", resource_type)
|
286
|
+
pulumi.set(__self__, "role_bindings", role_bindings)
|
287
|
+
|
288
|
+
@property
|
289
|
+
@pulumi.getter
|
290
|
+
def resource(self) -> pulumi.Input[str]:
|
291
|
+
"""
|
292
|
+
Name of the resource.
|
293
|
+
"""
|
294
|
+
return pulumi.get(self, "resource")
|
295
|
+
|
296
|
+
@resource.setter
|
297
|
+
def resource(self, value: pulumi.Input[str]):
|
298
|
+
pulumi.set(self, "resource", value)
|
299
|
+
|
300
|
+
@property
|
301
|
+
@pulumi.getter(name="resourceType")
|
302
|
+
def resource_type(self) -> pulumi.Input[str]:
|
303
|
+
"""
|
304
|
+
The type of this resource.
|
305
|
+
"""
|
306
|
+
return pulumi.get(self, "resource_type")
|
307
|
+
|
308
|
+
@resource_type.setter
|
309
|
+
def resource_type(self, value: pulumi.Input[str]):
|
310
|
+
pulumi.set(self, "resource_type", value)
|
311
|
+
|
312
|
+
@property
|
313
|
+
@pulumi.getter(name="roleBindings")
|
314
|
+
def role_bindings(self) -> pulumi.Input[Sequence[pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs']]]:
|
315
|
+
"""
|
316
|
+
Role bindings to be created on successful grant.
|
317
|
+
Structure is documented below.
|
318
|
+
"""
|
319
|
+
return pulumi.get(self, "role_bindings")
|
320
|
+
|
321
|
+
@role_bindings.setter
|
322
|
+
def role_bindings(self, value: pulumi.Input[Sequence[pulumi.Input['EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs']]]):
|
323
|
+
pulumi.set(self, "role_bindings", value)
|
324
|
+
|
325
|
+
|
326
|
+
@pulumi.input_type
|
327
|
+
class EntitlementPrivilegedAccessGcpIamAccessRoleBindingArgs:
|
328
|
+
def __init__(__self__, *,
|
329
|
+
role: pulumi.Input[str],
|
330
|
+
condition_expression: Optional[pulumi.Input[str]] = None):
|
331
|
+
"""
|
332
|
+
:param pulumi.Input[str] role: IAM role to be granted. https://cloud.google.com/iam/docs/roles-overview.
|
333
|
+
:param pulumi.Input[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.
|
334
|
+
https://cloud.google.com/iam/docs/conditions-overview#attributes.
|
335
|
+
"""
|
336
|
+
pulumi.set(__self__, "role", role)
|
337
|
+
if condition_expression is not None:
|
338
|
+
pulumi.set(__self__, "condition_expression", condition_expression)
|
339
|
+
|
340
|
+
@property
|
341
|
+
@pulumi.getter
|
342
|
+
def role(self) -> pulumi.Input[str]:
|
343
|
+
"""
|
344
|
+
IAM role to be granted. https://cloud.google.com/iam/docs/roles-overview.
|
345
|
+
"""
|
346
|
+
return pulumi.get(self, "role")
|
347
|
+
|
348
|
+
@role.setter
|
349
|
+
def role(self, value: pulumi.Input[str]):
|
350
|
+
pulumi.set(self, "role", value)
|
351
|
+
|
352
|
+
@property
|
353
|
+
@pulumi.getter(name="conditionExpression")
|
354
|
+
def condition_expression(self) -> Optional[pulumi.Input[str]]:
|
355
|
+
"""
|
356
|
+
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.
|
357
|
+
https://cloud.google.com/iam/docs/conditions-overview#attributes.
|
358
|
+
"""
|
359
|
+
return pulumi.get(self, "condition_expression")
|
360
|
+
|
361
|
+
@condition_expression.setter
|
362
|
+
def condition_expression(self, value: Optional[pulumi.Input[str]]):
|
363
|
+
pulumi.set(self, "condition_expression", value)
|
364
|
+
|
365
|
+
|
366
|
+
@pulumi.input_type
|
367
|
+
class EntitlementRequesterJustificationConfigArgs:
|
368
|
+
def __init__(__self__, *,
|
369
|
+
not_mandatory: Optional[pulumi.Input['EntitlementRequesterJustificationConfigNotMandatoryArgs']] = None,
|
370
|
+
unstructured: Optional[pulumi.Input['EntitlementRequesterJustificationConfigUnstructuredArgs']] = None):
|
371
|
+
"""
|
372
|
+
:param pulumi.Input['EntitlementRequesterJustificationConfigNotMandatoryArgs'] not_mandatory: The justification is not mandatory but can be provided in any of the supported formats.
|
373
|
+
:param pulumi.Input['EntitlementRequesterJustificationConfigUnstructuredArgs'] unstructured: The requester has to provide a justification in the form of free flowing text.
|
374
|
+
|
375
|
+
- - -
|
376
|
+
"""
|
377
|
+
if not_mandatory is not None:
|
378
|
+
pulumi.set(__self__, "not_mandatory", not_mandatory)
|
379
|
+
if unstructured is not None:
|
380
|
+
pulumi.set(__self__, "unstructured", unstructured)
|
381
|
+
|
382
|
+
@property
|
383
|
+
@pulumi.getter(name="notMandatory")
|
384
|
+
def not_mandatory(self) -> Optional[pulumi.Input['EntitlementRequesterJustificationConfigNotMandatoryArgs']]:
|
385
|
+
"""
|
386
|
+
The justification is not mandatory but can be provided in any of the supported formats.
|
387
|
+
"""
|
388
|
+
return pulumi.get(self, "not_mandatory")
|
389
|
+
|
390
|
+
@not_mandatory.setter
|
391
|
+
def not_mandatory(self, value: Optional[pulumi.Input['EntitlementRequesterJustificationConfigNotMandatoryArgs']]):
|
392
|
+
pulumi.set(self, "not_mandatory", value)
|
393
|
+
|
394
|
+
@property
|
395
|
+
@pulumi.getter
|
396
|
+
def unstructured(self) -> Optional[pulumi.Input['EntitlementRequesterJustificationConfigUnstructuredArgs']]:
|
397
|
+
"""
|
398
|
+
The requester has to provide a justification in the form of free flowing text.
|
399
|
+
|
400
|
+
- - -
|
401
|
+
"""
|
402
|
+
return pulumi.get(self, "unstructured")
|
403
|
+
|
404
|
+
@unstructured.setter
|
405
|
+
def unstructured(self, value: Optional[pulumi.Input['EntitlementRequesterJustificationConfigUnstructuredArgs']]):
|
406
|
+
pulumi.set(self, "unstructured", value)
|
407
|
+
|
408
|
+
|
409
|
+
@pulumi.input_type
|
410
|
+
class EntitlementRequesterJustificationConfigNotMandatoryArgs:
|
411
|
+
def __init__(__self__):
|
412
|
+
pass
|
413
|
+
|
414
|
+
|
415
|
+
@pulumi.input_type
|
416
|
+
class EntitlementRequesterJustificationConfigUnstructuredArgs:
|
417
|
+
def __init__(__self__):
|
418
|
+
pass
|
419
|
+
|
420
|
+
|