pulumi-gcp 7.20.0a1713984378__py3-none-any.whl → 7.21.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 +48 -0
- pulumi_gcp/alloydb/_inputs.py +74 -0
- pulumi_gcp/alloydb/backup.py +0 -12
- pulumi_gcp/alloydb/cluster.py +0 -12
- pulumi_gcp/alloydb/instance.py +90 -81
- pulumi_gcp/alloydb/outputs.py +98 -0
- pulumi_gcp/apigee/environment.py +47 -0
- pulumi_gcp/apigee/organization.py +162 -0
- pulumi_gcp/apigee/sharedflow.py +0 -20
- pulumi_gcp/appengine/flexible_app_version.py +0 -20
- pulumi_gcp/applicationintegration/__init__.py +1 -0
- pulumi_gcp/applicationintegration/_inputs.py +843 -0
- pulumi_gcp/applicationintegration/auth_config.py +998 -0
- pulumi_gcp/applicationintegration/outputs.py +891 -0
- pulumi_gcp/artifactregistry/_inputs.py +186 -0
- pulumi_gcp/artifactregistry/outputs.py +297 -4
- pulumi_gcp/artifactregistry/repository.py +346 -16
- pulumi_gcp/bigquery/table.py +61 -0
- pulumi_gcp/bigquerydatapolicy/_inputs.py +21 -4
- pulumi_gcp/bigquerydatapolicy/data_policy.py +78 -0
- pulumi_gcp/bigquerydatapolicy/outputs.py +16 -3
- pulumi_gcp/billing/budget.py +54 -0
- pulumi_gcp/certificateauthority/_inputs.py +92 -12
- pulumi_gcp/certificateauthority/authority.py +117 -27
- pulumi_gcp/certificateauthority/certificate.py +176 -0
- pulumi_gcp/certificateauthority/outputs.py +144 -12
- pulumi_gcp/cloudbuild/worker_pool.py +0 -12
- pulumi_gcp/cloudbuildv2/connection.py +0 -12
- pulumi_gcp/cloudbuildv2/repository.py +0 -12
- pulumi_gcp/clouddeploy/automation.py +0 -12
- pulumi_gcp/clouddeploy/custom_target_type.py +0 -12
- pulumi_gcp/clouddeploy/delivery_pipeline.py +0 -12
- pulumi_gcp/clouddeploy/target.py +0 -12
- pulumi_gcp/cloudfunctionsv2/_inputs.py +16 -0
- pulumi_gcp/cloudfunctionsv2/function.py +110 -0
- pulumi_gcp/cloudfunctionsv2/outputs.py +25 -0
- pulumi_gcp/cloudrunv2/job.py +0 -12
- pulumi_gcp/cloudrunv2/service.py +0 -12
- pulumi_gcp/composer/__init__.py +1 -0
- pulumi_gcp/composer/environment.py +35 -47
- pulumi_gcp/composer/user_workloads_secret.py +441 -0
- pulumi_gcp/compute/__init__.py +1 -0
- pulumi_gcp/compute/_inputs.py +169 -58
- pulumi_gcp/compute/forwarding_rule.py +0 -13
- pulumi_gcp/compute/get_instance_group_manager.py +11 -1
- pulumi_gcp/compute/global_address.py +0 -12
- pulumi_gcp/compute/global_forwarding_rule.py +0 -282
- pulumi_gcp/compute/instance_from_machine_image.py +14 -46
- pulumi_gcp/compute/instance_from_template.py +14 -46
- pulumi_gcp/compute/instance_group_manager.py +68 -21
- pulumi_gcp/compute/outputs.py +213 -65
- pulumi_gcp/compute/region_instance_group_manager.py +61 -14
- pulumi_gcp/compute/region_instance_template.py +0 -13
- pulumi_gcp/compute/region_target_https_proxy.py +257 -0
- pulumi_gcp/compute/region_url_map.py +0 -470
- pulumi_gcp/compute/security_policy_rule.py +850 -0
- pulumi_gcp/container/attached_cluster.py +0 -12
- pulumi_gcp/container/aws_cluster.py +0 -12
- pulumi_gcp/container/aws_node_pool.py +0 -12
- pulumi_gcp/container/azure_cluster.py +0 -12
- pulumi_gcp/container/azure_node_pool.py +0 -12
- pulumi_gcp/container/cluster.py +0 -20
- pulumi_gcp/container/outputs.py +4 -4
- pulumi_gcp/dataflow/flex_template_job.py +0 -39
- pulumi_gcp/dataloss/__init__.py +1 -0
- pulumi_gcp/dataloss/_inputs.py +1040 -0
- pulumi_gcp/dataloss/outputs.py +1123 -0
- pulumi_gcp/dataloss/prevention_discovery_config.py +737 -0
- pulumi_gcp/dataproc/cluster.py +0 -20
- pulumi_gcp/dataproc/workflow_template.py +21 -26
- pulumi_gcp/deploymentmanager/deployment.py +0 -34
- pulumi_gcp/dns/_inputs.py +2 -130
- pulumi_gcp/dns/get_keys.py +1 -1
- pulumi_gcp/dns/get_managed_zones.py +3 -9
- pulumi_gcp/dns/get_record_set.py +3 -0
- pulumi_gcp/dns/outputs.py +36 -58
- pulumi_gcp/dns/record_set.py +2 -36
- pulumi_gcp/filestore/get_instance.py +11 -1
- pulumi_gcp/filestore/instance.py +101 -0
- pulumi_gcp/firebase/_inputs.py +16 -0
- pulumi_gcp/firebase/android_app.py +0 -27
- pulumi_gcp/firebase/app_check_play_integrity_config.py +20 -0
- pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +10 -0
- pulumi_gcp/firebase/app_check_service_config.py +0 -125
- pulumi_gcp/firebase/apple_app.py +0 -27
- pulumi_gcp/firebase/hosting_custom_domain.py +0 -27
- pulumi_gcp/firebase/hosting_version.py +44 -0
- pulumi_gcp/firebase/outputs.py +12 -0
- pulumi_gcp/firebase/web_app.py +0 -20
- pulumi_gcp/firestore/database.py +0 -68
- pulumi_gcp/firestore/document.py +4 -4
- pulumi_gcp/gkeonprem/bare_metal_admin_cluster.py +0 -12
- pulumi_gcp/gkeonprem/bare_metal_cluster.py +0 -12
- pulumi_gcp/gkeonprem/bare_metal_node_pool.py +0 -12
- pulumi_gcp/gkeonprem/v_mware_cluster.py +0 -12
- pulumi_gcp/gkeonprem/v_mware_node_pool.py +0 -12
- pulumi_gcp/logging/folder_sink.py +54 -0
- pulumi_gcp/logging/organization_sink.py +54 -0
- pulumi_gcp/monitoring/_inputs.py +46 -2
- pulumi_gcp/monitoring/outputs.py +40 -2
- pulumi_gcp/monitoring/uptime_check_config.py +6 -0
- pulumi_gcp/netapp/active_directory.py +0 -20
- pulumi_gcp/netapp/volume_replication.py +0 -68
- pulumi_gcp/networkconnectivity/__init__.py +1 -0
- pulumi_gcp/networkconnectivity/internal_range.py +1024 -0
- pulumi_gcp/organizations/get_active_folder.py +18 -3
- pulumi_gcp/projects/__init__.py +1 -0
- pulumi_gcp/projects/iam_member_remove.py +313 -0
- pulumi_gcp/provider.py +3 -1
- pulumi_gcp/secretmanager/get_secret.py +13 -3
- pulumi_gcp/secretmanager/outputs.py +20 -1
- pulumi_gcp/secretmanager/secret.py +90 -15
- pulumi_gcp/servicenetworking/connection.py +0 -20
- pulumi_gcp/spanner/database.py +0 -41
- pulumi_gcp/spanner/instance.py +0 -40
- pulumi_gcp/storage/__init__.py +1 -0
- pulumi_gcp/storage/bucket.py +0 -12
- pulumi_gcp/storage/get_bucket_objects.py +153 -0
- pulumi_gcp/storage/outputs.py +63 -0
- pulumi_gcp/vmwareengine/_inputs.py +63 -5
- pulumi_gcp/vmwareengine/get_private_cloud.py +1 -21
- pulumi_gcp/vmwareengine/outputs.py +113 -5
- pulumi_gcp/vmwareengine/private_cloud.py +0 -94
- pulumi_gcp/workbench/instance.py +4 -4
- pulumi_gcp/workstations/workstation.py +0 -12
- pulumi_gcp/workstations/workstation_cluster.py +32 -12
- pulumi_gcp/workstations/workstation_config.py +0 -12
- {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/RECORD +131 -124
- {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.20.0a1713984378.dist-info → pulumi_gcp-7.21.0.dist-info}/top_level.txt +0 -0
@@ -21,7 +21,10 @@ class GetActiveFolderResult:
|
|
21
21
|
"""
|
22
22
|
A collection of values returned by getActiveFolder.
|
23
23
|
"""
|
24
|
-
def __init__(__self__, display_name=None, id=None, name=None, parent=None):
|
24
|
+
def __init__(__self__, api_method=None, display_name=None, id=None, name=None, parent=None):
|
25
|
+
if api_method and not isinstance(api_method, str):
|
26
|
+
raise TypeError("Expected argument 'api_method' to be a str")
|
27
|
+
pulumi.set(__self__, "api_method", api_method)
|
25
28
|
if display_name and not isinstance(display_name, str):
|
26
29
|
raise TypeError("Expected argument 'display_name' to be a str")
|
27
30
|
pulumi.set(__self__, "display_name", display_name)
|
@@ -35,6 +38,11 @@ class GetActiveFolderResult:
|
|
35
38
|
raise TypeError("Expected argument 'parent' to be a str")
|
36
39
|
pulumi.set(__self__, "parent", parent)
|
37
40
|
|
41
|
+
@property
|
42
|
+
@pulumi.getter(name="apiMethod")
|
43
|
+
def api_method(self) -> Optional[str]:
|
44
|
+
return pulumi.get(self, "api_method")
|
45
|
+
|
38
46
|
@property
|
39
47
|
@pulumi.getter(name="displayName")
|
40
48
|
def display_name(self) -> str:
|
@@ -68,13 +76,15 @@ class AwaitableGetActiveFolderResult(GetActiveFolderResult):
|
|
68
76
|
if False:
|
69
77
|
yield self
|
70
78
|
return GetActiveFolderResult(
|
79
|
+
api_method=self.api_method,
|
71
80
|
display_name=self.display_name,
|
72
81
|
id=self.id,
|
73
82
|
name=self.name,
|
74
83
|
parent=self.parent)
|
75
84
|
|
76
85
|
|
77
|
-
def get_active_folder(
|
86
|
+
def get_active_folder(api_method: Optional[str] = None,
|
87
|
+
display_name: Optional[str] = None,
|
78
88
|
parent: Optional[str] = None,
|
79
89
|
opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetActiveFolderResult:
|
80
90
|
"""
|
@@ -83,16 +93,19 @@ def get_active_folder(display_name: Optional[str] = None,
|
|
83
93
|
## Example Usage
|
84
94
|
|
85
95
|
|
96
|
+
:param str api_method: The API method to use to search for the folder. Valid values are `LIST` and `SEARCH`. Default Value is `LIST`. `LIST` is [strongly consistent](https://cloud.google.com/resource-manager/reference/rest/v3/folders/list#:~:text=list()%20provides%20a-,strongly%20consistent,-view%20of%20the) and requires `resourcemanager.folders.list` on the parent folder, while `SEARCH` is [eventually consistent](https://cloud.google.com/resource-manager/reference/rest/v3/folders/search#:~:text=eventually%20consistent) and only returns folders that the user has `resourcemanager.folders.get` permission on.
|
86
97
|
:param str display_name: The folder's display name.
|
87
98
|
:param str parent: The resource name of the parent Folder or Organization.
|
88
99
|
"""
|
89
100
|
__args__ = dict()
|
101
|
+
__args__['apiMethod'] = api_method
|
90
102
|
__args__['displayName'] = display_name
|
91
103
|
__args__['parent'] = parent
|
92
104
|
opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts)
|
93
105
|
__ret__ = pulumi.runtime.invoke('gcp:organizations/getActiveFolder:getActiveFolder', __args__, opts=opts, typ=GetActiveFolderResult).value
|
94
106
|
|
95
107
|
return AwaitableGetActiveFolderResult(
|
108
|
+
api_method=pulumi.get(__ret__, 'api_method'),
|
96
109
|
display_name=pulumi.get(__ret__, 'display_name'),
|
97
110
|
id=pulumi.get(__ret__, 'id'),
|
98
111
|
name=pulumi.get(__ret__, 'name'),
|
@@ -100,7 +113,8 @@ def get_active_folder(display_name: Optional[str] = None,
|
|
100
113
|
|
101
114
|
|
102
115
|
@_utilities.lift_output_func(get_active_folder)
|
103
|
-
def get_active_folder_output(
|
116
|
+
def get_active_folder_output(api_method: Optional[pulumi.Input[Optional[str]]] = None,
|
117
|
+
display_name: Optional[pulumi.Input[str]] = None,
|
104
118
|
parent: Optional[pulumi.Input[str]] = None,
|
105
119
|
opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetActiveFolderResult]:
|
106
120
|
"""
|
@@ -109,6 +123,7 @@ def get_active_folder_output(display_name: Optional[pulumi.Input[str]] = None,
|
|
109
123
|
## Example Usage
|
110
124
|
|
111
125
|
|
126
|
+
:param str api_method: The API method to use to search for the folder. Valid values are `LIST` and `SEARCH`. Default Value is `LIST`. `LIST` is [strongly consistent](https://cloud.google.com/resource-manager/reference/rest/v3/folders/list#:~:text=list()%20provides%20a-,strongly%20consistent,-view%20of%20the) and requires `resourcemanager.folders.list` on the parent folder, while `SEARCH` is [eventually consistent](https://cloud.google.com/resource-manager/reference/rest/v3/folders/search#:~:text=eventually%20consistent) and only returns folders that the user has `resourcemanager.folders.get` permission on.
|
112
127
|
:param str display_name: The folder's display name.
|
113
128
|
:param str parent: The resource name of the parent Folder or Organization.
|
114
129
|
"""
|
pulumi_gcp/projects/__init__.py
CHANGED
@@ -0,0 +1,313 @@
|
|
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__ = ['IamMemberRemoveArgs', 'IamMemberRemove']
|
13
|
+
|
14
|
+
@pulumi.input_type
|
15
|
+
class IamMemberRemoveArgs:
|
16
|
+
def __init__(__self__, *,
|
17
|
+
member: pulumi.Input[str],
|
18
|
+
project: pulumi.Input[str],
|
19
|
+
role: pulumi.Input[str]):
|
20
|
+
"""
|
21
|
+
The set of arguments for constructing a IamMemberRemove resource.
|
22
|
+
:param pulumi.Input[str] member: The IAM principal that should not have the target role.
|
23
|
+
Each entry can have one of the following values:
|
24
|
+
* **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
|
25
|
+
* **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
|
26
|
+
* **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
|
27
|
+
* **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
|
28
|
+
:param pulumi.Input[str] project: The project id of the target project.
|
29
|
+
:param pulumi.Input[str] role: The target role that should be removed.
|
30
|
+
"""
|
31
|
+
pulumi.set(__self__, "member", member)
|
32
|
+
pulumi.set(__self__, "project", project)
|
33
|
+
pulumi.set(__self__, "role", role)
|
34
|
+
|
35
|
+
@property
|
36
|
+
@pulumi.getter
|
37
|
+
def member(self) -> pulumi.Input[str]:
|
38
|
+
"""
|
39
|
+
The IAM principal that should not have the target role.
|
40
|
+
Each entry can have one of the following values:
|
41
|
+
* **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
|
42
|
+
* **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
|
43
|
+
* **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
|
44
|
+
* **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
|
45
|
+
"""
|
46
|
+
return pulumi.get(self, "member")
|
47
|
+
|
48
|
+
@member.setter
|
49
|
+
def member(self, value: pulumi.Input[str]):
|
50
|
+
pulumi.set(self, "member", value)
|
51
|
+
|
52
|
+
@property
|
53
|
+
@pulumi.getter
|
54
|
+
def project(self) -> pulumi.Input[str]:
|
55
|
+
"""
|
56
|
+
The project id of the target project.
|
57
|
+
"""
|
58
|
+
return pulumi.get(self, "project")
|
59
|
+
|
60
|
+
@project.setter
|
61
|
+
def project(self, value: pulumi.Input[str]):
|
62
|
+
pulumi.set(self, "project", value)
|
63
|
+
|
64
|
+
@property
|
65
|
+
@pulumi.getter
|
66
|
+
def role(self) -> pulumi.Input[str]:
|
67
|
+
"""
|
68
|
+
The target role that should be removed.
|
69
|
+
"""
|
70
|
+
return pulumi.get(self, "role")
|
71
|
+
|
72
|
+
@role.setter
|
73
|
+
def role(self, value: pulumi.Input[str]):
|
74
|
+
pulumi.set(self, "role", value)
|
75
|
+
|
76
|
+
|
77
|
+
@pulumi.input_type
|
78
|
+
class _IamMemberRemoveState:
|
79
|
+
def __init__(__self__, *,
|
80
|
+
member: Optional[pulumi.Input[str]] = None,
|
81
|
+
project: Optional[pulumi.Input[str]] = None,
|
82
|
+
role: Optional[pulumi.Input[str]] = None):
|
83
|
+
"""
|
84
|
+
Input properties used for looking up and filtering IamMemberRemove resources.
|
85
|
+
:param pulumi.Input[str] member: The IAM principal that should not have the target role.
|
86
|
+
Each entry can have one of the following values:
|
87
|
+
* **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
|
88
|
+
* **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
|
89
|
+
* **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
|
90
|
+
* **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
|
91
|
+
:param pulumi.Input[str] project: The project id of the target project.
|
92
|
+
:param pulumi.Input[str] role: The target role that should be removed.
|
93
|
+
"""
|
94
|
+
if member is not None:
|
95
|
+
pulumi.set(__self__, "member", member)
|
96
|
+
if project is not None:
|
97
|
+
pulumi.set(__self__, "project", project)
|
98
|
+
if role is not None:
|
99
|
+
pulumi.set(__self__, "role", role)
|
100
|
+
|
101
|
+
@property
|
102
|
+
@pulumi.getter
|
103
|
+
def member(self) -> Optional[pulumi.Input[str]]:
|
104
|
+
"""
|
105
|
+
The IAM principal that should not have the target role.
|
106
|
+
Each entry can have one of the following values:
|
107
|
+
* **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
|
108
|
+
* **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
|
109
|
+
* **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
|
110
|
+
* **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
|
111
|
+
"""
|
112
|
+
return pulumi.get(self, "member")
|
113
|
+
|
114
|
+
@member.setter
|
115
|
+
def member(self, value: Optional[pulumi.Input[str]]):
|
116
|
+
pulumi.set(self, "member", value)
|
117
|
+
|
118
|
+
@property
|
119
|
+
@pulumi.getter
|
120
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
121
|
+
"""
|
122
|
+
The project id of the target project.
|
123
|
+
"""
|
124
|
+
return pulumi.get(self, "project")
|
125
|
+
|
126
|
+
@project.setter
|
127
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
128
|
+
pulumi.set(self, "project", value)
|
129
|
+
|
130
|
+
@property
|
131
|
+
@pulumi.getter
|
132
|
+
def role(self) -> Optional[pulumi.Input[str]]:
|
133
|
+
"""
|
134
|
+
The target role that should be removed.
|
135
|
+
"""
|
136
|
+
return pulumi.get(self, "role")
|
137
|
+
|
138
|
+
@role.setter
|
139
|
+
def role(self, value: Optional[pulumi.Input[str]]):
|
140
|
+
pulumi.set(self, "role", value)
|
141
|
+
|
142
|
+
|
143
|
+
class IamMemberRemove(pulumi.CustomResource):
|
144
|
+
@overload
|
145
|
+
def __init__(__self__,
|
146
|
+
resource_name: str,
|
147
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
148
|
+
member: Optional[pulumi.Input[str]] = None,
|
149
|
+
project: Optional[pulumi.Input[str]] = None,
|
150
|
+
role: Optional[pulumi.Input[str]] = None,
|
151
|
+
__props__=None):
|
152
|
+
"""
|
153
|
+
Ensures that a member:role pairing does not exist in a project's IAM policy.
|
154
|
+
|
155
|
+
On create, this resource will modify the policy to remove the `member` from the
|
156
|
+
`role`. If the membership is ever re-added, the next refresh will clear this
|
157
|
+
resource from state, proposing re-adding it to correct the membership. Import is
|
158
|
+
not supported- this resource will acquire the current policy and modify it as
|
159
|
+
part of creating the resource.
|
160
|
+
|
161
|
+
This resource will conflict with `projects.IAMPolicy` and
|
162
|
+
`projects.IAMBinding` resources that share a role, as well as
|
163
|
+
`projects.IAMMember` resources that target the same membership. When
|
164
|
+
multiple resources conflict the final state is not guaranteed to include or omit
|
165
|
+
the membership. Subsequent `pulumi up` calls will always show a diff
|
166
|
+
until the configuration is corrected.
|
167
|
+
|
168
|
+
For more information see
|
169
|
+
[the official documentation](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
|
170
|
+
and
|
171
|
+
[API reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects/setIamPolicy).
|
172
|
+
|
173
|
+
:param str resource_name: The name of the resource.
|
174
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
175
|
+
:param pulumi.Input[str] member: The IAM principal that should not have the target role.
|
176
|
+
Each entry can have one of the following values:
|
177
|
+
* **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
|
178
|
+
* **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
|
179
|
+
* **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
|
180
|
+
* **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
|
181
|
+
:param pulumi.Input[str] project: The project id of the target project.
|
182
|
+
:param pulumi.Input[str] role: The target role that should be removed.
|
183
|
+
"""
|
184
|
+
...
|
185
|
+
@overload
|
186
|
+
def __init__(__self__,
|
187
|
+
resource_name: str,
|
188
|
+
args: IamMemberRemoveArgs,
|
189
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
190
|
+
"""
|
191
|
+
Ensures that a member:role pairing does not exist in a project's IAM policy.
|
192
|
+
|
193
|
+
On create, this resource will modify the policy to remove the `member` from the
|
194
|
+
`role`. If the membership is ever re-added, the next refresh will clear this
|
195
|
+
resource from state, proposing re-adding it to correct the membership. Import is
|
196
|
+
not supported- this resource will acquire the current policy and modify it as
|
197
|
+
part of creating the resource.
|
198
|
+
|
199
|
+
This resource will conflict with `projects.IAMPolicy` and
|
200
|
+
`projects.IAMBinding` resources that share a role, as well as
|
201
|
+
`projects.IAMMember` resources that target the same membership. When
|
202
|
+
multiple resources conflict the final state is not guaranteed to include or omit
|
203
|
+
the membership. Subsequent `pulumi up` calls will always show a diff
|
204
|
+
until the configuration is corrected.
|
205
|
+
|
206
|
+
For more information see
|
207
|
+
[the official documentation](https://cloud.google.com/iam/docs/granting-changing-revoking-access)
|
208
|
+
and
|
209
|
+
[API reference](https://cloud.google.com/resource-manager/reference/rest/v1/projects/setIamPolicy).
|
210
|
+
|
211
|
+
:param str resource_name: The name of the resource.
|
212
|
+
:param IamMemberRemoveArgs args: The arguments to use to populate this resource's properties.
|
213
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
214
|
+
"""
|
215
|
+
...
|
216
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
217
|
+
resource_args, opts = _utilities.get_resource_args_opts(IamMemberRemoveArgs, pulumi.ResourceOptions, *args, **kwargs)
|
218
|
+
if resource_args is not None:
|
219
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
220
|
+
else:
|
221
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
222
|
+
|
223
|
+
def _internal_init(__self__,
|
224
|
+
resource_name: str,
|
225
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
226
|
+
member: Optional[pulumi.Input[str]] = None,
|
227
|
+
project: Optional[pulumi.Input[str]] = None,
|
228
|
+
role: Optional[pulumi.Input[str]] = None,
|
229
|
+
__props__=None):
|
230
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
231
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
232
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
233
|
+
if opts.id is None:
|
234
|
+
if __props__ is not None:
|
235
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
236
|
+
__props__ = IamMemberRemoveArgs.__new__(IamMemberRemoveArgs)
|
237
|
+
|
238
|
+
if member is None and not opts.urn:
|
239
|
+
raise TypeError("Missing required property 'member'")
|
240
|
+
__props__.__dict__["member"] = member
|
241
|
+
if project is None and not opts.urn:
|
242
|
+
raise TypeError("Missing required property 'project'")
|
243
|
+
__props__.__dict__["project"] = project
|
244
|
+
if role is None and not opts.urn:
|
245
|
+
raise TypeError("Missing required property 'role'")
|
246
|
+
__props__.__dict__["role"] = role
|
247
|
+
super(IamMemberRemove, __self__).__init__(
|
248
|
+
'gcp:projects/iamMemberRemove:IamMemberRemove',
|
249
|
+
resource_name,
|
250
|
+
__props__,
|
251
|
+
opts)
|
252
|
+
|
253
|
+
@staticmethod
|
254
|
+
def get(resource_name: str,
|
255
|
+
id: pulumi.Input[str],
|
256
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
257
|
+
member: Optional[pulumi.Input[str]] = None,
|
258
|
+
project: Optional[pulumi.Input[str]] = None,
|
259
|
+
role: Optional[pulumi.Input[str]] = None) -> 'IamMemberRemove':
|
260
|
+
"""
|
261
|
+
Get an existing IamMemberRemove resource's state with the given name, id, and optional extra
|
262
|
+
properties used to qualify the lookup.
|
263
|
+
|
264
|
+
:param str resource_name: The unique name of the resulting resource.
|
265
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
266
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
267
|
+
:param pulumi.Input[str] member: The IAM principal that should not have the target role.
|
268
|
+
Each entry can have one of the following values:
|
269
|
+
* **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
|
270
|
+
* **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
|
271
|
+
* **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
|
272
|
+
* **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
|
273
|
+
:param pulumi.Input[str] project: The project id of the target project.
|
274
|
+
:param pulumi.Input[str] role: The target role that should be removed.
|
275
|
+
"""
|
276
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
277
|
+
|
278
|
+
__props__ = _IamMemberRemoveState.__new__(_IamMemberRemoveState)
|
279
|
+
|
280
|
+
__props__.__dict__["member"] = member
|
281
|
+
__props__.__dict__["project"] = project
|
282
|
+
__props__.__dict__["role"] = role
|
283
|
+
return IamMemberRemove(resource_name, opts=opts, __props__=__props__)
|
284
|
+
|
285
|
+
@property
|
286
|
+
@pulumi.getter
|
287
|
+
def member(self) -> pulumi.Output[str]:
|
288
|
+
"""
|
289
|
+
The IAM principal that should not have the target role.
|
290
|
+
Each entry can have one of the following values:
|
291
|
+
* **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
|
292
|
+
* **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
|
293
|
+
* **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
|
294
|
+
* **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
|
295
|
+
"""
|
296
|
+
return pulumi.get(self, "member")
|
297
|
+
|
298
|
+
@property
|
299
|
+
@pulumi.getter
|
300
|
+
def project(self) -> pulumi.Output[str]:
|
301
|
+
"""
|
302
|
+
The project id of the target project.
|
303
|
+
"""
|
304
|
+
return pulumi.get(self, "project")
|
305
|
+
|
306
|
+
@property
|
307
|
+
@pulumi.getter
|
308
|
+
def role(self) -> pulumi.Output[str]:
|
309
|
+
"""
|
310
|
+
The target role that should be removed.
|
311
|
+
"""
|
312
|
+
return pulumi.get(self, "role")
|
313
|
+
|
pulumi_gcp/provider.py
CHANGED
@@ -2431,7 +2431,7 @@ class Provider(pulumi.ProviderResource):
|
|
2431
2431
|
|
2432
2432
|
__props__.__dict__["access_approval_custom_endpoint"] = access_approval_custom_endpoint
|
2433
2433
|
__props__.__dict__["access_context_manager_custom_endpoint"] = access_context_manager_custom_endpoint
|
2434
|
-
__props__.__dict__["access_token"] = access_token
|
2434
|
+
__props__.__dict__["access_token"] = None if access_token is None else pulumi.Output.secret(access_token)
|
2435
2435
|
__props__.__dict__["active_directory_custom_endpoint"] = active_directory_custom_endpoint
|
2436
2436
|
__props__.__dict__["add_terraform_attribution_label"] = pulumi.Output.from_input(add_terraform_attribution_label).apply(pulumi.runtime.to_json) if add_terraform_attribution_label is not None else None
|
2437
2437
|
__props__.__dict__["alloydb_custom_endpoint"] = alloydb_custom_endpoint
|
@@ -2603,6 +2603,8 @@ class Provider(pulumi.ProviderResource):
|
|
2603
2603
|
if zone is None:
|
2604
2604
|
zone = _utilities.get_env('GOOGLE_ZONE', 'GCLOUD_ZONE', 'CLOUDSDK_COMPUTE_ZONE')
|
2605
2605
|
__props__.__dict__["zone"] = zone
|
2606
|
+
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["accessToken"])
|
2607
|
+
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
|
2606
2608
|
super(Provider, __self__).__init__(
|
2607
2609
|
'gcp',
|
2608
2610
|
resource_name,
|
@@ -22,7 +22,7 @@ class GetSecretResult:
|
|
22
22
|
"""
|
23
23
|
A collection of values returned by getSecret.
|
24
24
|
"""
|
25
|
-
def __init__(__self__, annotations=None, create_time=None, effective_annotations=None, effective_labels=None, expire_time=None, id=None, labels=None, name=None, project=None, pulumi_labels=None, replications=None, rotations=None, secret_id=None, topics=None, ttl=None, version_aliases=None):
|
25
|
+
def __init__(__self__, annotations=None, create_time=None, effective_annotations=None, effective_labels=None, expire_time=None, id=None, labels=None, name=None, project=None, pulumi_labels=None, replications=None, rotations=None, secret_id=None, topics=None, ttl=None, version_aliases=None, version_destroy_ttl=None):
|
26
26
|
if annotations and not isinstance(annotations, dict):
|
27
27
|
raise TypeError("Expected argument 'annotations' to be a dict")
|
28
28
|
pulumi.set(__self__, "annotations", annotations)
|
@@ -71,6 +71,9 @@ class GetSecretResult:
|
|
71
71
|
if version_aliases and not isinstance(version_aliases, dict):
|
72
72
|
raise TypeError("Expected argument 'version_aliases' to be a dict")
|
73
73
|
pulumi.set(__self__, "version_aliases", version_aliases)
|
74
|
+
if version_destroy_ttl and not isinstance(version_destroy_ttl, str):
|
75
|
+
raise TypeError("Expected argument 'version_destroy_ttl' to be a str")
|
76
|
+
pulumi.set(__self__, "version_destroy_ttl", version_destroy_ttl)
|
74
77
|
|
75
78
|
@property
|
76
79
|
@pulumi.getter
|
@@ -155,6 +158,11 @@ class GetSecretResult:
|
|
155
158
|
def version_aliases(self) -> Mapping[str, str]:
|
156
159
|
return pulumi.get(self, "version_aliases")
|
157
160
|
|
161
|
+
@property
|
162
|
+
@pulumi.getter(name="versionDestroyTtl")
|
163
|
+
def version_destroy_ttl(self) -> str:
|
164
|
+
return pulumi.get(self, "version_destroy_ttl")
|
165
|
+
|
158
166
|
|
159
167
|
class AwaitableGetSecretResult(GetSecretResult):
|
160
168
|
# pylint: disable=using-constant-test
|
@@ -177,7 +185,8 @@ class AwaitableGetSecretResult(GetSecretResult):
|
|
177
185
|
secret_id=self.secret_id,
|
178
186
|
topics=self.topics,
|
179
187
|
ttl=self.ttl,
|
180
|
-
version_aliases=self.version_aliases
|
188
|
+
version_aliases=self.version_aliases,
|
189
|
+
version_destroy_ttl=self.version_destroy_ttl)
|
181
190
|
|
182
191
|
|
183
192
|
def get_secret(project: Optional[str] = None,
|
@@ -221,7 +230,8 @@ def get_secret(project: Optional[str] = None,
|
|
221
230
|
secret_id=pulumi.get(__ret__, 'secret_id'),
|
222
231
|
topics=pulumi.get(__ret__, 'topics'),
|
223
232
|
ttl=pulumi.get(__ret__, 'ttl'),
|
224
|
-
version_aliases=pulumi.get(__ret__, 'version_aliases')
|
233
|
+
version_aliases=pulumi.get(__ret__, 'version_aliases'),
|
234
|
+
version_destroy_ttl=pulumi.get(__ret__, 'version_destroy_ttl'))
|
225
235
|
|
226
236
|
|
227
237
|
@_utilities.lift_output_func(get_secret)
|
@@ -613,7 +613,8 @@ class GetSecretsSecretResult(dict):
|
|
613
613
|
secret_id: str,
|
614
614
|
topics: Sequence['outputs.GetSecretsSecretTopicResult'],
|
615
615
|
ttl: str,
|
616
|
-
version_aliases: Mapping[str, str]
|
616
|
+
version_aliases: Mapping[str, str],
|
617
|
+
version_destroy_ttl: str):
|
617
618
|
"""
|
618
619
|
:param Mapping[str, str] annotations: Custom metadata about the secret.
|
619
620
|
:param str create_time: The time at which the Secret was created.
|
@@ -634,6 +635,11 @@ class GetSecretsSecretResult(dict):
|
|
634
635
|
A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
|
635
636
|
Only one of 'ttl' or 'expire_time' can be provided.
|
636
637
|
:param Mapping[str, str] version_aliases: Mapping from version alias to version name.
|
638
|
+
:param str version_destroy_ttl: Secret Version TTL after destruction request.
|
639
|
+
This is a part of the delayed delete feature on Secret Version.
|
640
|
+
For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
|
641
|
+
on calling destroy instead the version goes to a disabled state and
|
642
|
+
the actual destruction happens after this TTL expires.
|
637
643
|
"""
|
638
644
|
pulumi.set(__self__, "annotations", annotations)
|
639
645
|
pulumi.set(__self__, "create_time", create_time)
|
@@ -650,6 +656,7 @@ class GetSecretsSecretResult(dict):
|
|
650
656
|
pulumi.set(__self__, "topics", topics)
|
651
657
|
pulumi.set(__self__, "ttl", ttl)
|
652
658
|
pulumi.set(__self__, "version_aliases", version_aliases)
|
659
|
+
pulumi.set(__self__, "version_destroy_ttl", version_destroy_ttl)
|
653
660
|
|
654
661
|
@property
|
655
662
|
@pulumi.getter
|
@@ -771,6 +778,18 @@ class GetSecretsSecretResult(dict):
|
|
771
778
|
"""
|
772
779
|
return pulumi.get(self, "version_aliases")
|
773
780
|
|
781
|
+
@property
|
782
|
+
@pulumi.getter(name="versionDestroyTtl")
|
783
|
+
def version_destroy_ttl(self) -> str:
|
784
|
+
"""
|
785
|
+
Secret Version TTL after destruction request.
|
786
|
+
This is a part of the delayed delete feature on Secret Version.
|
787
|
+
For secret with versionDestroyTtl>0, version destruction doesn't happen immediately
|
788
|
+
on calling destroy instead the version goes to a disabled state and
|
789
|
+
the actual destruction happens after this TTL expires.
|
790
|
+
"""
|
791
|
+
return pulumi.get(self, "version_destroy_ttl")
|
792
|
+
|
774
793
|
|
775
794
|
@pulumi.output_type
|
776
795
|
class GetSecretsSecretReplicationResult(dict):
|