pulumi-gcp 8.26.0a1744267117__py3-none-any.whl → 8.27.0a1744386150__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/accesscontextmanager/_inputs.py +117 -0
- pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +81 -26
- pulumi_gcp/accesscontextmanager/outputs.py +95 -0
- pulumi_gcp/apigee/__init__.py +1 -0
- pulumi_gcp/apigee/control_plane_access.py +419 -0
- pulumi_gcp/clouddeploy/__init__.py +1 -0
- pulumi_gcp/clouddeploy/_inputs.py +2876 -1314
- pulumi_gcp/clouddeploy/automation.py +64 -2
- pulumi_gcp/clouddeploy/deploy_policy.py +1179 -0
- pulumi_gcp/clouddeploy/outputs.py +1130 -5
- pulumi_gcp/cloudrunv2/service.py +2 -2
- pulumi_gcp/compute/_inputs.py +20 -0
- pulumi_gcp/compute/outputs.py +25 -0
- pulumi_gcp/compute/resource_policy.py +30 -0
- pulumi_gcp/datastream/_inputs.py +506 -0
- pulumi_gcp/datastream/outputs.py +376 -0
- pulumi_gcp/datastream/stream.py +0 -2
- pulumi_gcp/firebase/hosting_version.py +34 -14
- pulumi_gcp/folder/__init__.py +1 -0
- pulumi_gcp/folder/service_identity.py +340 -0
- pulumi_gcp/gemini/__init__.py +2 -0
- pulumi_gcp/gemini/_inputs.py +176 -0
- pulumi_gcp/gemini/code_tools_setting.py +601 -0
- pulumi_gcp/gemini/code_tools_setting_binding.py +753 -0
- pulumi_gcp/gemini/outputs.py +124 -0
- pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
- pulumi_gcp/gkeonprem/vmware_admin_cluster.py +28 -0
- pulumi_gcp/memorystore/_inputs.py +136 -0
- pulumi_gcp/memorystore/get_instance.py +12 -1
- pulumi_gcp/memorystore/instance.py +54 -0
- pulumi_gcp/memorystore/outputs.py +190 -0
- pulumi_gcp/netapp/_inputs.py +89 -3
- pulumi_gcp/netapp/outputs.py +75 -2
- pulumi_gcp/netapp/volume_replication.py +12 -2
- pulumi_gcp/networkconnectivity/service_connection_policy.py +4 -2
- pulumi_gcp/osconfig/__init__.py +1 -0
- pulumi_gcp/osconfig/_inputs.py +5439 -0
- pulumi_gcp/osconfig/outputs.py +3978 -0
- pulumi_gcp/osconfig/v2_policy_orchestrator_for_organization.py +1047 -0
- pulumi_gcp/parametermanager/get_regional_parameter.py +12 -1
- pulumi_gcp/parametermanager/get_regional_parameter_version.py +15 -1
- pulumi_gcp/parametermanager/outputs.py +11 -0
- pulumi_gcp/parametermanager/regional_parameter.py +78 -0
- pulumi_gcp/parametermanager/regional_parameter_version.py +66 -0
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/spanner/database.py +0 -34
- pulumi_gcp/storage/bucket_object.py +28 -0
- pulumi_gcp/storage/get_bucket_object.py +12 -1
- pulumi_gcp/storage/get_bucket_object_content.py +12 -1
- pulumi_gcp/workbench/_inputs.py +60 -0
- pulumi_gcp/workbench/instance.py +48 -0
- pulumi_gcp/workbench/outputs.py +55 -0
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/RECORD +57 -51
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.26.0a1744267117.dist-info → pulumi_gcp-8.27.0a1744386150.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1179 @@
|
|
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 builtins
|
6
|
+
import copy
|
7
|
+
import warnings
|
8
|
+
import sys
|
9
|
+
import pulumi
|
10
|
+
import pulumi.runtime
|
11
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
12
|
+
if sys.version_info >= (3, 11):
|
13
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
14
|
+
else:
|
15
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
16
|
+
from .. import _utilities
|
17
|
+
from . import outputs
|
18
|
+
from ._inputs import *
|
19
|
+
|
20
|
+
__all__ = ['DeployPolicyArgs', 'DeployPolicy']
|
21
|
+
|
22
|
+
@pulumi.input_type
|
23
|
+
class DeployPolicyArgs:
|
24
|
+
def __init__(__self__, *,
|
25
|
+
location: pulumi.Input[builtins.str],
|
26
|
+
rules: pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]],
|
27
|
+
selectors: pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]],
|
28
|
+
annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
29
|
+
description: Optional[pulumi.Input[builtins.str]] = None,
|
30
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
31
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
32
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
33
|
+
suspended: Optional[pulumi.Input[builtins.bool]] = None):
|
34
|
+
"""
|
35
|
+
The set of arguments for constructing a DeployPolicy resource.
|
36
|
+
:param pulumi.Input[builtins.str] location: The location for the resource
|
37
|
+
:param pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]] rules: Required. Rules to apply. At least one rule must be present.
|
38
|
+
Structure is documented below.
|
39
|
+
:param pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]] selectors: Required. Selected resources to which the policy will be applied. At least one selector is required. If one selector matches the resource the policy applies. For example, if there are two selectors and the action being attempted matches one of them, the policy will apply to that action.
|
40
|
+
Structure is documented below.
|
41
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations
|
42
|
+
must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an
|
43
|
+
optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less,
|
44
|
+
beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'),
|
45
|
+
and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS
|
46
|
+
labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See
|
47
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more
|
48
|
+
details. **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
|
49
|
+
Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
|
50
|
+
:param pulumi.Input[builtins.str] description: Optional. Description of the 'DeployPolicy'. Max length is 255 characters.
|
51
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the
|
52
|
+
following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and
|
53
|
+
dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a
|
54
|
+
lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values
|
55
|
+
are additionally constrained to be <= 63 characters. **Note**: This field is non-authoritative, and will only manage the
|
56
|
+
labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
|
57
|
+
resource.
|
58
|
+
:param pulumi.Input[builtins.str] name: Name of the `DeployPolicy`.
|
59
|
+
:param pulumi.Input[builtins.bool] suspended: Optional. When suspended, the policy will not prevent actions from occurring, even if the action violates the policy.
|
60
|
+
"""
|
61
|
+
pulumi.set(__self__, "location", location)
|
62
|
+
pulumi.set(__self__, "rules", rules)
|
63
|
+
pulumi.set(__self__, "selectors", selectors)
|
64
|
+
if annotations is not None:
|
65
|
+
pulumi.set(__self__, "annotations", annotations)
|
66
|
+
if description is not None:
|
67
|
+
pulumi.set(__self__, "description", description)
|
68
|
+
if labels is not None:
|
69
|
+
pulumi.set(__self__, "labels", labels)
|
70
|
+
if name is not None:
|
71
|
+
pulumi.set(__self__, "name", name)
|
72
|
+
if project is not None:
|
73
|
+
pulumi.set(__self__, "project", project)
|
74
|
+
if suspended is not None:
|
75
|
+
pulumi.set(__self__, "suspended", suspended)
|
76
|
+
|
77
|
+
@property
|
78
|
+
@pulumi.getter
|
79
|
+
def location(self) -> pulumi.Input[builtins.str]:
|
80
|
+
"""
|
81
|
+
The location for the resource
|
82
|
+
"""
|
83
|
+
return pulumi.get(self, "location")
|
84
|
+
|
85
|
+
@location.setter
|
86
|
+
def location(self, value: pulumi.Input[builtins.str]):
|
87
|
+
pulumi.set(self, "location", value)
|
88
|
+
|
89
|
+
@property
|
90
|
+
@pulumi.getter
|
91
|
+
def rules(self) -> pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]]:
|
92
|
+
"""
|
93
|
+
Required. Rules to apply. At least one rule must be present.
|
94
|
+
Structure is documented below.
|
95
|
+
"""
|
96
|
+
return pulumi.get(self, "rules")
|
97
|
+
|
98
|
+
@rules.setter
|
99
|
+
def rules(self, value: pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]]):
|
100
|
+
pulumi.set(self, "rules", value)
|
101
|
+
|
102
|
+
@property
|
103
|
+
@pulumi.getter
|
104
|
+
def selectors(self) -> pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]]:
|
105
|
+
"""
|
106
|
+
Required. Selected resources to which the policy will be applied. At least one selector is required. If one selector matches the resource the policy applies. For example, if there are two selectors and the action being attempted matches one of them, the policy will apply to that action.
|
107
|
+
Structure is documented below.
|
108
|
+
"""
|
109
|
+
return pulumi.get(self, "selectors")
|
110
|
+
|
111
|
+
@selectors.setter
|
112
|
+
def selectors(self, value: pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]]):
|
113
|
+
pulumi.set(self, "selectors", value)
|
114
|
+
|
115
|
+
@property
|
116
|
+
@pulumi.getter
|
117
|
+
def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
|
118
|
+
"""
|
119
|
+
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations
|
120
|
+
must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an
|
121
|
+
optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less,
|
122
|
+
beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'),
|
123
|
+
and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS
|
124
|
+
labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See
|
125
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more
|
126
|
+
details. **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
|
127
|
+
Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
|
128
|
+
"""
|
129
|
+
return pulumi.get(self, "annotations")
|
130
|
+
|
131
|
+
@annotations.setter
|
132
|
+
def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
|
133
|
+
pulumi.set(self, "annotations", value)
|
134
|
+
|
135
|
+
@property
|
136
|
+
@pulumi.getter
|
137
|
+
def description(self) -> Optional[pulumi.Input[builtins.str]]:
|
138
|
+
"""
|
139
|
+
Optional. Description of the 'DeployPolicy'. Max length is 255 characters.
|
140
|
+
"""
|
141
|
+
return pulumi.get(self, "description")
|
142
|
+
|
143
|
+
@description.setter
|
144
|
+
def description(self, value: Optional[pulumi.Input[builtins.str]]):
|
145
|
+
pulumi.set(self, "description", value)
|
146
|
+
|
147
|
+
@property
|
148
|
+
@pulumi.getter
|
149
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
|
150
|
+
"""
|
151
|
+
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the
|
152
|
+
following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and
|
153
|
+
dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a
|
154
|
+
lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values
|
155
|
+
are additionally constrained to be <= 63 characters. **Note**: This field is non-authoritative, and will only manage the
|
156
|
+
labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
|
157
|
+
resource.
|
158
|
+
"""
|
159
|
+
return pulumi.get(self, "labels")
|
160
|
+
|
161
|
+
@labels.setter
|
162
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
|
163
|
+
pulumi.set(self, "labels", value)
|
164
|
+
|
165
|
+
@property
|
166
|
+
@pulumi.getter
|
167
|
+
def name(self) -> Optional[pulumi.Input[builtins.str]]:
|
168
|
+
"""
|
169
|
+
Name of the `DeployPolicy`.
|
170
|
+
"""
|
171
|
+
return pulumi.get(self, "name")
|
172
|
+
|
173
|
+
@name.setter
|
174
|
+
def name(self, value: Optional[pulumi.Input[builtins.str]]):
|
175
|
+
pulumi.set(self, "name", value)
|
176
|
+
|
177
|
+
@property
|
178
|
+
@pulumi.getter
|
179
|
+
def project(self) -> Optional[pulumi.Input[builtins.str]]:
|
180
|
+
return pulumi.get(self, "project")
|
181
|
+
|
182
|
+
@project.setter
|
183
|
+
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
184
|
+
pulumi.set(self, "project", value)
|
185
|
+
|
186
|
+
@property
|
187
|
+
@pulumi.getter
|
188
|
+
def suspended(self) -> Optional[pulumi.Input[builtins.bool]]:
|
189
|
+
"""
|
190
|
+
Optional. When suspended, the policy will not prevent actions from occurring, even if the action violates the policy.
|
191
|
+
"""
|
192
|
+
return pulumi.get(self, "suspended")
|
193
|
+
|
194
|
+
@suspended.setter
|
195
|
+
def suspended(self, value: Optional[pulumi.Input[builtins.bool]]):
|
196
|
+
pulumi.set(self, "suspended", value)
|
197
|
+
|
198
|
+
|
199
|
+
@pulumi.input_type
|
200
|
+
class _DeployPolicyState:
|
201
|
+
def __init__(__self__, *,
|
202
|
+
annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
203
|
+
create_time: Optional[pulumi.Input[builtins.str]] = None,
|
204
|
+
description: Optional[pulumi.Input[builtins.str]] = None,
|
205
|
+
effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
206
|
+
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
207
|
+
etag: Optional[pulumi.Input[builtins.str]] = None,
|
208
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
209
|
+
location: Optional[pulumi.Input[builtins.str]] = None,
|
210
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
211
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
212
|
+
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
213
|
+
rules: Optional[pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]]] = None,
|
214
|
+
selectors: Optional[pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]]] = None,
|
215
|
+
suspended: Optional[pulumi.Input[builtins.bool]] = None,
|
216
|
+
uid: Optional[pulumi.Input[builtins.str]] = None,
|
217
|
+
update_time: Optional[pulumi.Input[builtins.str]] = None):
|
218
|
+
"""
|
219
|
+
Input properties used for looking up and filtering DeployPolicy resources.
|
220
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations
|
221
|
+
must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an
|
222
|
+
optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less,
|
223
|
+
beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'),
|
224
|
+
and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS
|
225
|
+
labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See
|
226
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more
|
227
|
+
details. **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
|
228
|
+
Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
|
229
|
+
:param pulumi.Input[builtins.str] create_time: Output only. Time at which the DeployPolicy was created.
|
230
|
+
:param pulumi.Input[builtins.str] description: Optional. Description of the 'DeployPolicy'. Max length is 255 characters.
|
231
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
232
|
+
:param pulumi.Input[builtins.str] etag: Optional. The weak etag of the `DeployPolicy` resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
|
233
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the
|
234
|
+
following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and
|
235
|
+
dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a
|
236
|
+
lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values
|
237
|
+
are additionally constrained to be <= 63 characters. **Note**: This field is non-authoritative, and will only manage the
|
238
|
+
labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
|
239
|
+
resource.
|
240
|
+
:param pulumi.Input[builtins.str] location: The location for the resource
|
241
|
+
:param pulumi.Input[builtins.str] name: Name of the `DeployPolicy`.
|
242
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
|
243
|
+
and default labels configured on the provider.
|
244
|
+
:param pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]] rules: Required. Rules to apply. At least one rule must be present.
|
245
|
+
Structure is documented below.
|
246
|
+
:param pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]] selectors: Required. Selected resources to which the policy will be applied. At least one selector is required. If one selector matches the resource the policy applies. For example, if there are two selectors and the action being attempted matches one of them, the policy will apply to that action.
|
247
|
+
Structure is documented below.
|
248
|
+
:param pulumi.Input[builtins.bool] suspended: Optional. When suspended, the policy will not prevent actions from occurring, even if the action violates the policy.
|
249
|
+
:param pulumi.Input[builtins.str] uid: Output only. Unique identifier of the `DeployPolicy`.
|
250
|
+
:param pulumi.Input[builtins.str] update_time: Output only. Time at which the DeployPolicy was updated.
|
251
|
+
"""
|
252
|
+
if annotations is not None:
|
253
|
+
pulumi.set(__self__, "annotations", annotations)
|
254
|
+
if create_time is not None:
|
255
|
+
pulumi.set(__self__, "create_time", create_time)
|
256
|
+
if description is not None:
|
257
|
+
pulumi.set(__self__, "description", description)
|
258
|
+
if effective_annotations is not None:
|
259
|
+
pulumi.set(__self__, "effective_annotations", effective_annotations)
|
260
|
+
if effective_labels is not None:
|
261
|
+
pulumi.set(__self__, "effective_labels", effective_labels)
|
262
|
+
if etag is not None:
|
263
|
+
pulumi.set(__self__, "etag", etag)
|
264
|
+
if labels is not None:
|
265
|
+
pulumi.set(__self__, "labels", labels)
|
266
|
+
if location is not None:
|
267
|
+
pulumi.set(__self__, "location", location)
|
268
|
+
if name is not None:
|
269
|
+
pulumi.set(__self__, "name", name)
|
270
|
+
if project is not None:
|
271
|
+
pulumi.set(__self__, "project", project)
|
272
|
+
if pulumi_labels is not None:
|
273
|
+
pulumi.set(__self__, "pulumi_labels", pulumi_labels)
|
274
|
+
if rules is not None:
|
275
|
+
pulumi.set(__self__, "rules", rules)
|
276
|
+
if selectors is not None:
|
277
|
+
pulumi.set(__self__, "selectors", selectors)
|
278
|
+
if suspended is not None:
|
279
|
+
pulumi.set(__self__, "suspended", suspended)
|
280
|
+
if uid is not None:
|
281
|
+
pulumi.set(__self__, "uid", uid)
|
282
|
+
if update_time is not None:
|
283
|
+
pulumi.set(__self__, "update_time", update_time)
|
284
|
+
|
285
|
+
@property
|
286
|
+
@pulumi.getter
|
287
|
+
def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
|
288
|
+
"""
|
289
|
+
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations
|
290
|
+
must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an
|
291
|
+
optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less,
|
292
|
+
beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'),
|
293
|
+
and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS
|
294
|
+
labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See
|
295
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more
|
296
|
+
details. **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
|
297
|
+
Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
|
298
|
+
"""
|
299
|
+
return pulumi.get(self, "annotations")
|
300
|
+
|
301
|
+
@annotations.setter
|
302
|
+
def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
|
303
|
+
pulumi.set(self, "annotations", value)
|
304
|
+
|
305
|
+
@property
|
306
|
+
@pulumi.getter(name="createTime")
|
307
|
+
def create_time(self) -> Optional[pulumi.Input[builtins.str]]:
|
308
|
+
"""
|
309
|
+
Output only. Time at which the DeployPolicy was created.
|
310
|
+
"""
|
311
|
+
return pulumi.get(self, "create_time")
|
312
|
+
|
313
|
+
@create_time.setter
|
314
|
+
def create_time(self, value: Optional[pulumi.Input[builtins.str]]):
|
315
|
+
pulumi.set(self, "create_time", value)
|
316
|
+
|
317
|
+
@property
|
318
|
+
@pulumi.getter
|
319
|
+
def description(self) -> Optional[pulumi.Input[builtins.str]]:
|
320
|
+
"""
|
321
|
+
Optional. Description of the 'DeployPolicy'. Max length is 255 characters.
|
322
|
+
"""
|
323
|
+
return pulumi.get(self, "description")
|
324
|
+
|
325
|
+
@description.setter
|
326
|
+
def description(self, value: Optional[pulumi.Input[builtins.str]]):
|
327
|
+
pulumi.set(self, "description", value)
|
328
|
+
|
329
|
+
@property
|
330
|
+
@pulumi.getter(name="effectiveAnnotations")
|
331
|
+
def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
|
332
|
+
return pulumi.get(self, "effective_annotations")
|
333
|
+
|
334
|
+
@effective_annotations.setter
|
335
|
+
def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
|
336
|
+
pulumi.set(self, "effective_annotations", value)
|
337
|
+
|
338
|
+
@property
|
339
|
+
@pulumi.getter(name="effectiveLabels")
|
340
|
+
def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
|
341
|
+
"""
|
342
|
+
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
343
|
+
"""
|
344
|
+
return pulumi.get(self, "effective_labels")
|
345
|
+
|
346
|
+
@effective_labels.setter
|
347
|
+
def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
|
348
|
+
pulumi.set(self, "effective_labels", value)
|
349
|
+
|
350
|
+
@property
|
351
|
+
@pulumi.getter
|
352
|
+
def etag(self) -> Optional[pulumi.Input[builtins.str]]:
|
353
|
+
"""
|
354
|
+
Optional. The weak etag of the `DeployPolicy` resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
|
355
|
+
"""
|
356
|
+
return pulumi.get(self, "etag")
|
357
|
+
|
358
|
+
@etag.setter
|
359
|
+
def etag(self, value: Optional[pulumi.Input[builtins.str]]):
|
360
|
+
pulumi.set(self, "etag", value)
|
361
|
+
|
362
|
+
@property
|
363
|
+
@pulumi.getter
|
364
|
+
def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
|
365
|
+
"""
|
366
|
+
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the
|
367
|
+
following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and
|
368
|
+
dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a
|
369
|
+
lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values
|
370
|
+
are additionally constrained to be <= 63 characters. **Note**: This field is non-authoritative, and will only manage the
|
371
|
+
labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
|
372
|
+
resource.
|
373
|
+
"""
|
374
|
+
return pulumi.get(self, "labels")
|
375
|
+
|
376
|
+
@labels.setter
|
377
|
+
def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
|
378
|
+
pulumi.set(self, "labels", value)
|
379
|
+
|
380
|
+
@property
|
381
|
+
@pulumi.getter
|
382
|
+
def location(self) -> Optional[pulumi.Input[builtins.str]]:
|
383
|
+
"""
|
384
|
+
The location for the resource
|
385
|
+
"""
|
386
|
+
return pulumi.get(self, "location")
|
387
|
+
|
388
|
+
@location.setter
|
389
|
+
def location(self, value: Optional[pulumi.Input[builtins.str]]):
|
390
|
+
pulumi.set(self, "location", value)
|
391
|
+
|
392
|
+
@property
|
393
|
+
@pulumi.getter
|
394
|
+
def name(self) -> Optional[pulumi.Input[builtins.str]]:
|
395
|
+
"""
|
396
|
+
Name of the `DeployPolicy`.
|
397
|
+
"""
|
398
|
+
return pulumi.get(self, "name")
|
399
|
+
|
400
|
+
@name.setter
|
401
|
+
def name(self, value: Optional[pulumi.Input[builtins.str]]):
|
402
|
+
pulumi.set(self, "name", value)
|
403
|
+
|
404
|
+
@property
|
405
|
+
@pulumi.getter
|
406
|
+
def project(self) -> Optional[pulumi.Input[builtins.str]]:
|
407
|
+
return pulumi.get(self, "project")
|
408
|
+
|
409
|
+
@project.setter
|
410
|
+
def project(self, value: Optional[pulumi.Input[builtins.str]]):
|
411
|
+
pulumi.set(self, "project", value)
|
412
|
+
|
413
|
+
@property
|
414
|
+
@pulumi.getter(name="pulumiLabels")
|
415
|
+
def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
|
416
|
+
"""
|
417
|
+
The combination of labels configured directly on the resource
|
418
|
+
and default labels configured on the provider.
|
419
|
+
"""
|
420
|
+
return pulumi.get(self, "pulumi_labels")
|
421
|
+
|
422
|
+
@pulumi_labels.setter
|
423
|
+
def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
|
424
|
+
pulumi.set(self, "pulumi_labels", value)
|
425
|
+
|
426
|
+
@property
|
427
|
+
@pulumi.getter
|
428
|
+
def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]]]:
|
429
|
+
"""
|
430
|
+
Required. Rules to apply. At least one rule must be present.
|
431
|
+
Structure is documented below.
|
432
|
+
"""
|
433
|
+
return pulumi.get(self, "rules")
|
434
|
+
|
435
|
+
@rules.setter
|
436
|
+
def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeployPolicyRuleArgs']]]]):
|
437
|
+
pulumi.set(self, "rules", value)
|
438
|
+
|
439
|
+
@property
|
440
|
+
@pulumi.getter
|
441
|
+
def selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]]]:
|
442
|
+
"""
|
443
|
+
Required. Selected resources to which the policy will be applied. At least one selector is required. If one selector matches the resource the policy applies. For example, if there are two selectors and the action being attempted matches one of them, the policy will apply to that action.
|
444
|
+
Structure is documented below.
|
445
|
+
"""
|
446
|
+
return pulumi.get(self, "selectors")
|
447
|
+
|
448
|
+
@selectors.setter
|
449
|
+
def selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DeployPolicySelectorArgs']]]]):
|
450
|
+
pulumi.set(self, "selectors", value)
|
451
|
+
|
452
|
+
@property
|
453
|
+
@pulumi.getter
|
454
|
+
def suspended(self) -> Optional[pulumi.Input[builtins.bool]]:
|
455
|
+
"""
|
456
|
+
Optional. When suspended, the policy will not prevent actions from occurring, even if the action violates the policy.
|
457
|
+
"""
|
458
|
+
return pulumi.get(self, "suspended")
|
459
|
+
|
460
|
+
@suspended.setter
|
461
|
+
def suspended(self, value: Optional[pulumi.Input[builtins.bool]]):
|
462
|
+
pulumi.set(self, "suspended", value)
|
463
|
+
|
464
|
+
@property
|
465
|
+
@pulumi.getter
|
466
|
+
def uid(self) -> Optional[pulumi.Input[builtins.str]]:
|
467
|
+
"""
|
468
|
+
Output only. Unique identifier of the `DeployPolicy`.
|
469
|
+
"""
|
470
|
+
return pulumi.get(self, "uid")
|
471
|
+
|
472
|
+
@uid.setter
|
473
|
+
def uid(self, value: Optional[pulumi.Input[builtins.str]]):
|
474
|
+
pulumi.set(self, "uid", value)
|
475
|
+
|
476
|
+
@property
|
477
|
+
@pulumi.getter(name="updateTime")
|
478
|
+
def update_time(self) -> Optional[pulumi.Input[builtins.str]]:
|
479
|
+
"""
|
480
|
+
Output only. Time at which the DeployPolicy was updated.
|
481
|
+
"""
|
482
|
+
return pulumi.get(self, "update_time")
|
483
|
+
|
484
|
+
@update_time.setter
|
485
|
+
def update_time(self, value: Optional[pulumi.Input[builtins.str]]):
|
486
|
+
pulumi.set(self, "update_time", value)
|
487
|
+
|
488
|
+
|
489
|
+
class DeployPolicy(pulumi.CustomResource):
|
490
|
+
@overload
|
491
|
+
def __init__(__self__,
|
492
|
+
resource_name: str,
|
493
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
494
|
+
annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
495
|
+
description: Optional[pulumi.Input[builtins.str]] = None,
|
496
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
497
|
+
location: Optional[pulumi.Input[builtins.str]] = None,
|
498
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
499
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
500
|
+
rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicyRuleArgs', 'DeployPolicyRuleArgsDict']]]]] = None,
|
501
|
+
selectors: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicySelectorArgs', 'DeployPolicySelectorArgsDict']]]]] = None,
|
502
|
+
suspended: Optional[pulumi.Input[builtins.bool]] = None,
|
503
|
+
__props__=None):
|
504
|
+
"""
|
505
|
+
A `DeployPolicy` inhibits manual or DeployPolicy-driven actions within a Delivery Pipeline or Target.
|
506
|
+
|
507
|
+
To get more information about DeployPolicy, see:
|
508
|
+
|
509
|
+
* [API documentation](https://cloud.google.com/deploy/docs/api/reference/rest/v1/projects.locations.deployPolicies)
|
510
|
+
* How-to Guides
|
511
|
+
* [Restrict deploy behavior using policies](https://cloud.google.com/deploy/docs/deploy-policy)
|
512
|
+
|
513
|
+
## Example Usage
|
514
|
+
|
515
|
+
### Clouddeploy Deploy Policy Basic
|
516
|
+
|
517
|
+
```python
|
518
|
+
import pulumi
|
519
|
+
import pulumi_gcp as gcp
|
520
|
+
|
521
|
+
b_deploy_policy = gcp.clouddeploy.DeployPolicy("b-deploy-policy",
|
522
|
+
name="cd-policy",
|
523
|
+
location="us-central1",
|
524
|
+
selectors=[{
|
525
|
+
"delivery_pipeline": {
|
526
|
+
"id": "cd-pipeline",
|
527
|
+
},
|
528
|
+
}],
|
529
|
+
rules=[{
|
530
|
+
"rollout_restriction": {
|
531
|
+
"id": "rule",
|
532
|
+
"time_windows": {
|
533
|
+
"time_zone": "America/Los_Angeles",
|
534
|
+
"weekly_windows": [{
|
535
|
+
"start_time": {
|
536
|
+
"hours": 12,
|
537
|
+
"minutes": 0,
|
538
|
+
},
|
539
|
+
"end_time": {
|
540
|
+
"hours": 13,
|
541
|
+
"minutes": 0,
|
542
|
+
},
|
543
|
+
}],
|
544
|
+
},
|
545
|
+
},
|
546
|
+
}])
|
547
|
+
```
|
548
|
+
### Clouddeploy Deploy Policy Full
|
549
|
+
|
550
|
+
```python
|
551
|
+
import pulumi
|
552
|
+
import pulumi_gcp as gcp
|
553
|
+
|
554
|
+
f_deploy_policy = gcp.clouddeploy.DeployPolicy("f-deploy-policy",
|
555
|
+
name="cd-policy",
|
556
|
+
location="us-central1",
|
557
|
+
annotations={
|
558
|
+
"my_first_annotation": "example-annotation-1",
|
559
|
+
"my_second_annotation": "example-annotation-2",
|
560
|
+
},
|
561
|
+
labels={
|
562
|
+
"my_first_label": "example-label-1",
|
563
|
+
"my_second_label": "example-label-2",
|
564
|
+
},
|
565
|
+
description="policy resource",
|
566
|
+
selectors=[
|
567
|
+
{
|
568
|
+
"delivery_pipeline": {
|
569
|
+
"id": "cd-pipeline",
|
570
|
+
"labels": {
|
571
|
+
"foo": "bar",
|
572
|
+
},
|
573
|
+
},
|
574
|
+
},
|
575
|
+
{
|
576
|
+
"target": {
|
577
|
+
"id": "dev",
|
578
|
+
"labels": {
|
579
|
+
"foo": "bar",
|
580
|
+
},
|
581
|
+
},
|
582
|
+
},
|
583
|
+
],
|
584
|
+
suspended=True,
|
585
|
+
rules=[
|
586
|
+
{
|
587
|
+
"rollout_restriction": {
|
588
|
+
"id": "rule",
|
589
|
+
"time_windows": {
|
590
|
+
"time_zone": "America/Los_Angeles",
|
591
|
+
"weekly_windows": [{
|
592
|
+
"start_time": {
|
593
|
+
"hours": 12,
|
594
|
+
"minutes": 0,
|
595
|
+
"seconds": 0,
|
596
|
+
"nanos": 0,
|
597
|
+
},
|
598
|
+
"end_time": {
|
599
|
+
"hours": 13,
|
600
|
+
"minutes": 0,
|
601
|
+
"seconds": 0,
|
602
|
+
"nanos": 0,
|
603
|
+
},
|
604
|
+
}],
|
605
|
+
},
|
606
|
+
},
|
607
|
+
},
|
608
|
+
{
|
609
|
+
"rollout_restriction": {
|
610
|
+
"id": "rule2",
|
611
|
+
"invokers": ["USER"],
|
612
|
+
"actions": ["CREATE"],
|
613
|
+
"time_windows": {
|
614
|
+
"time_zone": "America/Los_Angeles",
|
615
|
+
"weekly_windows": [{
|
616
|
+
"start_time": {
|
617
|
+
"hours": 13,
|
618
|
+
"minutes": 0,
|
619
|
+
"seconds": 0,
|
620
|
+
"nanos": 0,
|
621
|
+
},
|
622
|
+
"end_time": {
|
623
|
+
"hours": 14,
|
624
|
+
"minutes": 0,
|
625
|
+
"seconds": 0,
|
626
|
+
"nanos": 0,
|
627
|
+
},
|
628
|
+
"days_of_weeks": ["MONDAY"],
|
629
|
+
}],
|
630
|
+
"one_time_windows": [{
|
631
|
+
"start_time": {
|
632
|
+
"hours": 15,
|
633
|
+
"minutes": 0,
|
634
|
+
"seconds": 0,
|
635
|
+
"nanos": 0,
|
636
|
+
},
|
637
|
+
"end_time": {
|
638
|
+
"hours": 16,
|
639
|
+
"minutes": 0,
|
640
|
+
"seconds": 0,
|
641
|
+
"nanos": 0,
|
642
|
+
},
|
643
|
+
"start_date": {
|
644
|
+
"year": 2019,
|
645
|
+
"month": 1,
|
646
|
+
"day": 1,
|
647
|
+
},
|
648
|
+
"end_date": {
|
649
|
+
"year": 2019,
|
650
|
+
"month": 12,
|
651
|
+
"day": 31,
|
652
|
+
},
|
653
|
+
}],
|
654
|
+
},
|
655
|
+
},
|
656
|
+
},
|
657
|
+
])
|
658
|
+
```
|
659
|
+
|
660
|
+
## Import
|
661
|
+
|
662
|
+
DeployPolicy can be imported using any of these accepted formats:
|
663
|
+
|
664
|
+
* `projects/{{project}}/locations/{{location}}/deployPolicies/{{name}}`
|
665
|
+
|
666
|
+
* `{{project}}/{{location}}/{{name}}`
|
667
|
+
|
668
|
+
* `{{location}}/{{name}}`
|
669
|
+
|
670
|
+
When using the `pulumi import` command, DeployPolicy can be imported using one of the formats above. For example:
|
671
|
+
|
672
|
+
```sh
|
673
|
+
$ pulumi import gcp:clouddeploy/deployPolicy:DeployPolicy default projects/{{project}}/locations/{{location}}/deployPolicies/{{name}}
|
674
|
+
```
|
675
|
+
|
676
|
+
```sh
|
677
|
+
$ pulumi import gcp:clouddeploy/deployPolicy:DeployPolicy default {{project}}/{{location}}/{{name}}
|
678
|
+
```
|
679
|
+
|
680
|
+
```sh
|
681
|
+
$ pulumi import gcp:clouddeploy/deployPolicy:DeployPolicy default {{location}}/{{name}}
|
682
|
+
```
|
683
|
+
|
684
|
+
:param str resource_name: The name of the resource.
|
685
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
686
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations
|
687
|
+
must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an
|
688
|
+
optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less,
|
689
|
+
beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'),
|
690
|
+
and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS
|
691
|
+
labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See
|
692
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more
|
693
|
+
details. **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
|
694
|
+
Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
|
695
|
+
:param pulumi.Input[builtins.str] description: Optional. Description of the 'DeployPolicy'. Max length is 255 characters.
|
696
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the
|
697
|
+
following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and
|
698
|
+
dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a
|
699
|
+
lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values
|
700
|
+
are additionally constrained to be <= 63 characters. **Note**: This field is non-authoritative, and will only manage the
|
701
|
+
labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
|
702
|
+
resource.
|
703
|
+
:param pulumi.Input[builtins.str] location: The location for the resource
|
704
|
+
:param pulumi.Input[builtins.str] name: Name of the `DeployPolicy`.
|
705
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicyRuleArgs', 'DeployPolicyRuleArgsDict']]]] rules: Required. Rules to apply. At least one rule must be present.
|
706
|
+
Structure is documented below.
|
707
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicySelectorArgs', 'DeployPolicySelectorArgsDict']]]] selectors: Required. Selected resources to which the policy will be applied. At least one selector is required. If one selector matches the resource the policy applies. For example, if there are two selectors and the action being attempted matches one of them, the policy will apply to that action.
|
708
|
+
Structure is documented below.
|
709
|
+
:param pulumi.Input[builtins.bool] suspended: Optional. When suspended, the policy will not prevent actions from occurring, even if the action violates the policy.
|
710
|
+
"""
|
711
|
+
...
|
712
|
+
@overload
|
713
|
+
def __init__(__self__,
|
714
|
+
resource_name: str,
|
715
|
+
args: DeployPolicyArgs,
|
716
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
717
|
+
"""
|
718
|
+
A `DeployPolicy` inhibits manual or DeployPolicy-driven actions within a Delivery Pipeline or Target.
|
719
|
+
|
720
|
+
To get more information about DeployPolicy, see:
|
721
|
+
|
722
|
+
* [API documentation](https://cloud.google.com/deploy/docs/api/reference/rest/v1/projects.locations.deployPolicies)
|
723
|
+
* How-to Guides
|
724
|
+
* [Restrict deploy behavior using policies](https://cloud.google.com/deploy/docs/deploy-policy)
|
725
|
+
|
726
|
+
## Example Usage
|
727
|
+
|
728
|
+
### Clouddeploy Deploy Policy Basic
|
729
|
+
|
730
|
+
```python
|
731
|
+
import pulumi
|
732
|
+
import pulumi_gcp as gcp
|
733
|
+
|
734
|
+
b_deploy_policy = gcp.clouddeploy.DeployPolicy("b-deploy-policy",
|
735
|
+
name="cd-policy",
|
736
|
+
location="us-central1",
|
737
|
+
selectors=[{
|
738
|
+
"delivery_pipeline": {
|
739
|
+
"id": "cd-pipeline",
|
740
|
+
},
|
741
|
+
}],
|
742
|
+
rules=[{
|
743
|
+
"rollout_restriction": {
|
744
|
+
"id": "rule",
|
745
|
+
"time_windows": {
|
746
|
+
"time_zone": "America/Los_Angeles",
|
747
|
+
"weekly_windows": [{
|
748
|
+
"start_time": {
|
749
|
+
"hours": 12,
|
750
|
+
"minutes": 0,
|
751
|
+
},
|
752
|
+
"end_time": {
|
753
|
+
"hours": 13,
|
754
|
+
"minutes": 0,
|
755
|
+
},
|
756
|
+
}],
|
757
|
+
},
|
758
|
+
},
|
759
|
+
}])
|
760
|
+
```
|
761
|
+
### Clouddeploy Deploy Policy Full
|
762
|
+
|
763
|
+
```python
|
764
|
+
import pulumi
|
765
|
+
import pulumi_gcp as gcp
|
766
|
+
|
767
|
+
f_deploy_policy = gcp.clouddeploy.DeployPolicy("f-deploy-policy",
|
768
|
+
name="cd-policy",
|
769
|
+
location="us-central1",
|
770
|
+
annotations={
|
771
|
+
"my_first_annotation": "example-annotation-1",
|
772
|
+
"my_second_annotation": "example-annotation-2",
|
773
|
+
},
|
774
|
+
labels={
|
775
|
+
"my_first_label": "example-label-1",
|
776
|
+
"my_second_label": "example-label-2",
|
777
|
+
},
|
778
|
+
description="policy resource",
|
779
|
+
selectors=[
|
780
|
+
{
|
781
|
+
"delivery_pipeline": {
|
782
|
+
"id": "cd-pipeline",
|
783
|
+
"labels": {
|
784
|
+
"foo": "bar",
|
785
|
+
},
|
786
|
+
},
|
787
|
+
},
|
788
|
+
{
|
789
|
+
"target": {
|
790
|
+
"id": "dev",
|
791
|
+
"labels": {
|
792
|
+
"foo": "bar",
|
793
|
+
},
|
794
|
+
},
|
795
|
+
},
|
796
|
+
],
|
797
|
+
suspended=True,
|
798
|
+
rules=[
|
799
|
+
{
|
800
|
+
"rollout_restriction": {
|
801
|
+
"id": "rule",
|
802
|
+
"time_windows": {
|
803
|
+
"time_zone": "America/Los_Angeles",
|
804
|
+
"weekly_windows": [{
|
805
|
+
"start_time": {
|
806
|
+
"hours": 12,
|
807
|
+
"minutes": 0,
|
808
|
+
"seconds": 0,
|
809
|
+
"nanos": 0,
|
810
|
+
},
|
811
|
+
"end_time": {
|
812
|
+
"hours": 13,
|
813
|
+
"minutes": 0,
|
814
|
+
"seconds": 0,
|
815
|
+
"nanos": 0,
|
816
|
+
},
|
817
|
+
}],
|
818
|
+
},
|
819
|
+
},
|
820
|
+
},
|
821
|
+
{
|
822
|
+
"rollout_restriction": {
|
823
|
+
"id": "rule2",
|
824
|
+
"invokers": ["USER"],
|
825
|
+
"actions": ["CREATE"],
|
826
|
+
"time_windows": {
|
827
|
+
"time_zone": "America/Los_Angeles",
|
828
|
+
"weekly_windows": [{
|
829
|
+
"start_time": {
|
830
|
+
"hours": 13,
|
831
|
+
"minutes": 0,
|
832
|
+
"seconds": 0,
|
833
|
+
"nanos": 0,
|
834
|
+
},
|
835
|
+
"end_time": {
|
836
|
+
"hours": 14,
|
837
|
+
"minutes": 0,
|
838
|
+
"seconds": 0,
|
839
|
+
"nanos": 0,
|
840
|
+
},
|
841
|
+
"days_of_weeks": ["MONDAY"],
|
842
|
+
}],
|
843
|
+
"one_time_windows": [{
|
844
|
+
"start_time": {
|
845
|
+
"hours": 15,
|
846
|
+
"minutes": 0,
|
847
|
+
"seconds": 0,
|
848
|
+
"nanos": 0,
|
849
|
+
},
|
850
|
+
"end_time": {
|
851
|
+
"hours": 16,
|
852
|
+
"minutes": 0,
|
853
|
+
"seconds": 0,
|
854
|
+
"nanos": 0,
|
855
|
+
},
|
856
|
+
"start_date": {
|
857
|
+
"year": 2019,
|
858
|
+
"month": 1,
|
859
|
+
"day": 1,
|
860
|
+
},
|
861
|
+
"end_date": {
|
862
|
+
"year": 2019,
|
863
|
+
"month": 12,
|
864
|
+
"day": 31,
|
865
|
+
},
|
866
|
+
}],
|
867
|
+
},
|
868
|
+
},
|
869
|
+
},
|
870
|
+
])
|
871
|
+
```
|
872
|
+
|
873
|
+
## Import
|
874
|
+
|
875
|
+
DeployPolicy can be imported using any of these accepted formats:
|
876
|
+
|
877
|
+
* `projects/{{project}}/locations/{{location}}/deployPolicies/{{name}}`
|
878
|
+
|
879
|
+
* `{{project}}/{{location}}/{{name}}`
|
880
|
+
|
881
|
+
* `{{location}}/{{name}}`
|
882
|
+
|
883
|
+
When using the `pulumi import` command, DeployPolicy can be imported using one of the formats above. For example:
|
884
|
+
|
885
|
+
```sh
|
886
|
+
$ pulumi import gcp:clouddeploy/deployPolicy:DeployPolicy default projects/{{project}}/locations/{{location}}/deployPolicies/{{name}}
|
887
|
+
```
|
888
|
+
|
889
|
+
```sh
|
890
|
+
$ pulumi import gcp:clouddeploy/deployPolicy:DeployPolicy default {{project}}/{{location}}/{{name}}
|
891
|
+
```
|
892
|
+
|
893
|
+
```sh
|
894
|
+
$ pulumi import gcp:clouddeploy/deployPolicy:DeployPolicy default {{location}}/{{name}}
|
895
|
+
```
|
896
|
+
|
897
|
+
:param str resource_name: The name of the resource.
|
898
|
+
:param DeployPolicyArgs args: The arguments to use to populate this resource's properties.
|
899
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
900
|
+
"""
|
901
|
+
...
|
902
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
903
|
+
resource_args, opts = _utilities.get_resource_args_opts(DeployPolicyArgs, pulumi.ResourceOptions, *args, **kwargs)
|
904
|
+
if resource_args is not None:
|
905
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
906
|
+
else:
|
907
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
908
|
+
|
909
|
+
def _internal_init(__self__,
|
910
|
+
resource_name: str,
|
911
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
912
|
+
annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
913
|
+
description: Optional[pulumi.Input[builtins.str]] = None,
|
914
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
915
|
+
location: Optional[pulumi.Input[builtins.str]] = None,
|
916
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
917
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
918
|
+
rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicyRuleArgs', 'DeployPolicyRuleArgsDict']]]]] = None,
|
919
|
+
selectors: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicySelectorArgs', 'DeployPolicySelectorArgsDict']]]]] = None,
|
920
|
+
suspended: Optional[pulumi.Input[builtins.bool]] = None,
|
921
|
+
__props__=None):
|
922
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
923
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
924
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
925
|
+
if opts.id is None:
|
926
|
+
if __props__ is not None:
|
927
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
928
|
+
__props__ = DeployPolicyArgs.__new__(DeployPolicyArgs)
|
929
|
+
|
930
|
+
__props__.__dict__["annotations"] = annotations
|
931
|
+
__props__.__dict__["description"] = description
|
932
|
+
__props__.__dict__["labels"] = labels
|
933
|
+
if location is None and not opts.urn:
|
934
|
+
raise TypeError("Missing required property 'location'")
|
935
|
+
__props__.__dict__["location"] = location
|
936
|
+
__props__.__dict__["name"] = name
|
937
|
+
__props__.__dict__["project"] = project
|
938
|
+
if rules is None and not opts.urn:
|
939
|
+
raise TypeError("Missing required property 'rules'")
|
940
|
+
__props__.__dict__["rules"] = rules
|
941
|
+
if selectors is None and not opts.urn:
|
942
|
+
raise TypeError("Missing required property 'selectors'")
|
943
|
+
__props__.__dict__["selectors"] = selectors
|
944
|
+
__props__.__dict__["suspended"] = suspended
|
945
|
+
__props__.__dict__["create_time"] = None
|
946
|
+
__props__.__dict__["effective_annotations"] = None
|
947
|
+
__props__.__dict__["effective_labels"] = None
|
948
|
+
__props__.__dict__["etag"] = None
|
949
|
+
__props__.__dict__["pulumi_labels"] = None
|
950
|
+
__props__.__dict__["uid"] = None
|
951
|
+
__props__.__dict__["update_time"] = None
|
952
|
+
secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
|
953
|
+
opts = pulumi.ResourceOptions.merge(opts, secret_opts)
|
954
|
+
super(DeployPolicy, __self__).__init__(
|
955
|
+
'gcp:clouddeploy/deployPolicy:DeployPolicy',
|
956
|
+
resource_name,
|
957
|
+
__props__,
|
958
|
+
opts)
|
959
|
+
|
960
|
+
@staticmethod
|
961
|
+
def get(resource_name: str,
|
962
|
+
id: pulumi.Input[str],
|
963
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
964
|
+
annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
965
|
+
create_time: Optional[pulumi.Input[builtins.str]] = None,
|
966
|
+
description: Optional[pulumi.Input[builtins.str]] = None,
|
967
|
+
effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
968
|
+
effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
969
|
+
etag: Optional[pulumi.Input[builtins.str]] = None,
|
970
|
+
labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
971
|
+
location: Optional[pulumi.Input[builtins.str]] = None,
|
972
|
+
name: Optional[pulumi.Input[builtins.str]] = None,
|
973
|
+
project: Optional[pulumi.Input[builtins.str]] = None,
|
974
|
+
pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
|
975
|
+
rules: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicyRuleArgs', 'DeployPolicyRuleArgsDict']]]]] = None,
|
976
|
+
selectors: Optional[pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicySelectorArgs', 'DeployPolicySelectorArgsDict']]]]] = None,
|
977
|
+
suspended: Optional[pulumi.Input[builtins.bool]] = None,
|
978
|
+
uid: Optional[pulumi.Input[builtins.str]] = None,
|
979
|
+
update_time: Optional[pulumi.Input[builtins.str]] = None) -> 'DeployPolicy':
|
980
|
+
"""
|
981
|
+
Get an existing DeployPolicy resource's state with the given name, id, and optional extra
|
982
|
+
properties used to qualify the lookup.
|
983
|
+
|
984
|
+
:param str resource_name: The unique name of the resulting resource.
|
985
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
986
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
987
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations
|
988
|
+
must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an
|
989
|
+
optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less,
|
990
|
+
beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'),
|
991
|
+
and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS
|
992
|
+
labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See
|
993
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more
|
994
|
+
details. **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
|
995
|
+
Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
|
996
|
+
:param pulumi.Input[builtins.str] create_time: Output only. Time at which the DeployPolicy was created.
|
997
|
+
:param pulumi.Input[builtins.str] description: Optional. Description of the 'DeployPolicy'. Max length is 255 characters.
|
998
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
999
|
+
:param pulumi.Input[builtins.str] etag: Optional. The weak etag of the `DeployPolicy` resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
|
1000
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the
|
1001
|
+
following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and
|
1002
|
+
dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a
|
1003
|
+
lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values
|
1004
|
+
are additionally constrained to be <= 63 characters. **Note**: This field is non-authoritative, and will only manage the
|
1005
|
+
labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
|
1006
|
+
resource.
|
1007
|
+
:param pulumi.Input[builtins.str] location: The location for the resource
|
1008
|
+
:param pulumi.Input[builtins.str] name: Name of the `DeployPolicy`.
|
1009
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
|
1010
|
+
and default labels configured on the provider.
|
1011
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicyRuleArgs', 'DeployPolicyRuleArgsDict']]]] rules: Required. Rules to apply. At least one rule must be present.
|
1012
|
+
Structure is documented below.
|
1013
|
+
:param pulumi.Input[Sequence[pulumi.Input[Union['DeployPolicySelectorArgs', 'DeployPolicySelectorArgsDict']]]] selectors: Required. Selected resources to which the policy will be applied. At least one selector is required. If one selector matches the resource the policy applies. For example, if there are two selectors and the action being attempted matches one of them, the policy will apply to that action.
|
1014
|
+
Structure is documented below.
|
1015
|
+
:param pulumi.Input[builtins.bool] suspended: Optional. When suspended, the policy will not prevent actions from occurring, even if the action violates the policy.
|
1016
|
+
:param pulumi.Input[builtins.str] uid: Output only. Unique identifier of the `DeployPolicy`.
|
1017
|
+
:param pulumi.Input[builtins.str] update_time: Output only. Time at which the DeployPolicy was updated.
|
1018
|
+
"""
|
1019
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
1020
|
+
|
1021
|
+
__props__ = _DeployPolicyState.__new__(_DeployPolicyState)
|
1022
|
+
|
1023
|
+
__props__.__dict__["annotations"] = annotations
|
1024
|
+
__props__.__dict__["create_time"] = create_time
|
1025
|
+
__props__.__dict__["description"] = description
|
1026
|
+
__props__.__dict__["effective_annotations"] = effective_annotations
|
1027
|
+
__props__.__dict__["effective_labels"] = effective_labels
|
1028
|
+
__props__.__dict__["etag"] = etag
|
1029
|
+
__props__.__dict__["labels"] = labels
|
1030
|
+
__props__.__dict__["location"] = location
|
1031
|
+
__props__.__dict__["name"] = name
|
1032
|
+
__props__.__dict__["project"] = project
|
1033
|
+
__props__.__dict__["pulumi_labels"] = pulumi_labels
|
1034
|
+
__props__.__dict__["rules"] = rules
|
1035
|
+
__props__.__dict__["selectors"] = selectors
|
1036
|
+
__props__.__dict__["suspended"] = suspended
|
1037
|
+
__props__.__dict__["uid"] = uid
|
1038
|
+
__props__.__dict__["update_time"] = update_time
|
1039
|
+
return DeployPolicy(resource_name, opts=opts, __props__=__props__)
|
1040
|
+
|
1041
|
+
@property
|
1042
|
+
@pulumi.getter
|
1043
|
+
def annotations(self) -> pulumi.Output[Optional[Mapping[str, builtins.str]]]:
|
1044
|
+
"""
|
1045
|
+
Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations
|
1046
|
+
must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an
|
1047
|
+
optional prefix and name, separated by a slash ('/'). * The name segment is required and must be 63 characters or less,
|
1048
|
+
beginning and ending with an alphanumeric character ('[a-z0-9A-Z]') with dashes ('-'), underscores ('_'), dots ('.'),
|
1049
|
+
and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS
|
1050
|
+
labels separated by dots('.'), not longer than 253 characters in total, followed by a slash ('/'). See
|
1051
|
+
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more
|
1052
|
+
details. **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
|
1053
|
+
Please refer to the field 'effective_annotations' for all of the annotations present on the resource.
|
1054
|
+
"""
|
1055
|
+
return pulumi.get(self, "annotations")
|
1056
|
+
|
1057
|
+
@property
|
1058
|
+
@pulumi.getter(name="createTime")
|
1059
|
+
def create_time(self) -> pulumi.Output[builtins.str]:
|
1060
|
+
"""
|
1061
|
+
Output only. Time at which the DeployPolicy was created.
|
1062
|
+
"""
|
1063
|
+
return pulumi.get(self, "create_time")
|
1064
|
+
|
1065
|
+
@property
|
1066
|
+
@pulumi.getter
|
1067
|
+
def description(self) -> pulumi.Output[Optional[builtins.str]]:
|
1068
|
+
"""
|
1069
|
+
Optional. Description of the 'DeployPolicy'. Max length is 255 characters.
|
1070
|
+
"""
|
1071
|
+
return pulumi.get(self, "description")
|
1072
|
+
|
1073
|
+
@property
|
1074
|
+
@pulumi.getter(name="effectiveAnnotations")
|
1075
|
+
def effective_annotations(self) -> pulumi.Output[Mapping[str, builtins.str]]:
|
1076
|
+
return pulumi.get(self, "effective_annotations")
|
1077
|
+
|
1078
|
+
@property
|
1079
|
+
@pulumi.getter(name="effectiveLabels")
|
1080
|
+
def effective_labels(self) -> pulumi.Output[Mapping[str, builtins.str]]:
|
1081
|
+
"""
|
1082
|
+
All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
|
1083
|
+
"""
|
1084
|
+
return pulumi.get(self, "effective_labels")
|
1085
|
+
|
1086
|
+
@property
|
1087
|
+
@pulumi.getter
|
1088
|
+
def etag(self) -> pulumi.Output[builtins.str]:
|
1089
|
+
"""
|
1090
|
+
Optional. The weak etag of the `DeployPolicy` resource. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
|
1091
|
+
"""
|
1092
|
+
return pulumi.get(self, "etag")
|
1093
|
+
|
1094
|
+
@property
|
1095
|
+
@pulumi.getter
|
1096
|
+
def labels(self) -> pulumi.Output[Optional[Mapping[str, builtins.str]]]:
|
1097
|
+
"""
|
1098
|
+
Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the
|
1099
|
+
following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and
|
1100
|
+
dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a
|
1101
|
+
lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values
|
1102
|
+
are additionally constrained to be <= 63 characters. **Note**: This field is non-authoritative, and will only manage the
|
1103
|
+
labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
|
1104
|
+
resource.
|
1105
|
+
"""
|
1106
|
+
return pulumi.get(self, "labels")
|
1107
|
+
|
1108
|
+
@property
|
1109
|
+
@pulumi.getter
|
1110
|
+
def location(self) -> pulumi.Output[builtins.str]:
|
1111
|
+
"""
|
1112
|
+
The location for the resource
|
1113
|
+
"""
|
1114
|
+
return pulumi.get(self, "location")
|
1115
|
+
|
1116
|
+
@property
|
1117
|
+
@pulumi.getter
|
1118
|
+
def name(self) -> pulumi.Output[builtins.str]:
|
1119
|
+
"""
|
1120
|
+
Name of the `DeployPolicy`.
|
1121
|
+
"""
|
1122
|
+
return pulumi.get(self, "name")
|
1123
|
+
|
1124
|
+
@property
|
1125
|
+
@pulumi.getter
|
1126
|
+
def project(self) -> pulumi.Output[builtins.str]:
|
1127
|
+
return pulumi.get(self, "project")
|
1128
|
+
|
1129
|
+
@property
|
1130
|
+
@pulumi.getter(name="pulumiLabels")
|
1131
|
+
def pulumi_labels(self) -> pulumi.Output[Mapping[str, builtins.str]]:
|
1132
|
+
"""
|
1133
|
+
The combination of labels configured directly on the resource
|
1134
|
+
and default labels configured on the provider.
|
1135
|
+
"""
|
1136
|
+
return pulumi.get(self, "pulumi_labels")
|
1137
|
+
|
1138
|
+
@property
|
1139
|
+
@pulumi.getter
|
1140
|
+
def rules(self) -> pulumi.Output[Sequence['outputs.DeployPolicyRule']]:
|
1141
|
+
"""
|
1142
|
+
Required. Rules to apply. At least one rule must be present.
|
1143
|
+
Structure is documented below.
|
1144
|
+
"""
|
1145
|
+
return pulumi.get(self, "rules")
|
1146
|
+
|
1147
|
+
@property
|
1148
|
+
@pulumi.getter
|
1149
|
+
def selectors(self) -> pulumi.Output[Sequence['outputs.DeployPolicySelector']]:
|
1150
|
+
"""
|
1151
|
+
Required. Selected resources to which the policy will be applied. At least one selector is required. If one selector matches the resource the policy applies. For example, if there are two selectors and the action being attempted matches one of them, the policy will apply to that action.
|
1152
|
+
Structure is documented below.
|
1153
|
+
"""
|
1154
|
+
return pulumi.get(self, "selectors")
|
1155
|
+
|
1156
|
+
@property
|
1157
|
+
@pulumi.getter
|
1158
|
+
def suspended(self) -> pulumi.Output[Optional[builtins.bool]]:
|
1159
|
+
"""
|
1160
|
+
Optional. When suspended, the policy will not prevent actions from occurring, even if the action violates the policy.
|
1161
|
+
"""
|
1162
|
+
return pulumi.get(self, "suspended")
|
1163
|
+
|
1164
|
+
@property
|
1165
|
+
@pulumi.getter
|
1166
|
+
def uid(self) -> pulumi.Output[builtins.str]:
|
1167
|
+
"""
|
1168
|
+
Output only. Unique identifier of the `DeployPolicy`.
|
1169
|
+
"""
|
1170
|
+
return pulumi.get(self, "uid")
|
1171
|
+
|
1172
|
+
@property
|
1173
|
+
@pulumi.getter(name="updateTime")
|
1174
|
+
def update_time(self) -> pulumi.Output[builtins.str]:
|
1175
|
+
"""
|
1176
|
+
Output only. Time at which the DeployPolicy was updated.
|
1177
|
+
"""
|
1178
|
+
return pulumi.get(self, "update_time")
|
1179
|
+
|