pulumi-gcp 8.25.1__py3-none-any.whl → 8.26.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.
Files changed (57) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +117 -0
  3. pulumi_gcp/accesscontextmanager/gcp_user_access_binding.py +81 -26
  4. pulumi_gcp/accesscontextmanager/outputs.py +95 -0
  5. pulumi_gcp/apigee/__init__.py +1 -0
  6. pulumi_gcp/apigee/control_plane_access.py +419 -0
  7. pulumi_gcp/clouddeploy/__init__.py +1 -0
  8. pulumi_gcp/clouddeploy/_inputs.py +2876 -1314
  9. pulumi_gcp/clouddeploy/automation.py +64 -2
  10. pulumi_gcp/clouddeploy/deploy_policy.py +1179 -0
  11. pulumi_gcp/clouddeploy/outputs.py +1130 -5
  12. pulumi_gcp/cloudrunv2/service.py +2 -2
  13. pulumi_gcp/compute/_inputs.py +20 -0
  14. pulumi_gcp/compute/outputs.py +25 -0
  15. pulumi_gcp/compute/resource_policy.py +30 -0
  16. pulumi_gcp/datastream/_inputs.py +506 -0
  17. pulumi_gcp/datastream/outputs.py +376 -0
  18. pulumi_gcp/datastream/stream.py +0 -2
  19. pulumi_gcp/firebase/hosting_version.py +34 -14
  20. pulumi_gcp/folder/__init__.py +1 -0
  21. pulumi_gcp/folder/service_identity.py +340 -0
  22. pulumi_gcp/gemini/__init__.py +2 -0
  23. pulumi_gcp/gemini/_inputs.py +176 -0
  24. pulumi_gcp/gemini/code_tools_setting.py +601 -0
  25. pulumi_gcp/gemini/code_tools_setting_binding.py +753 -0
  26. pulumi_gcp/gemini/outputs.py +124 -0
  27. pulumi_gcp/gkeonprem/v_mware_cluster.py +49 -0
  28. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +28 -0
  29. pulumi_gcp/memorystore/_inputs.py +136 -0
  30. pulumi_gcp/memorystore/get_instance.py +12 -1
  31. pulumi_gcp/memorystore/instance.py +54 -0
  32. pulumi_gcp/memorystore/outputs.py +190 -0
  33. pulumi_gcp/netapp/_inputs.py +89 -3
  34. pulumi_gcp/netapp/outputs.py +75 -2
  35. pulumi_gcp/netapp/volume_replication.py +12 -2
  36. pulumi_gcp/networkconnectivity/service_connection_policy.py +4 -2
  37. pulumi_gcp/osconfig/__init__.py +1 -0
  38. pulumi_gcp/osconfig/_inputs.py +5439 -0
  39. pulumi_gcp/osconfig/outputs.py +3978 -0
  40. pulumi_gcp/osconfig/v2_policy_orchestrator_for_organization.py +1047 -0
  41. pulumi_gcp/parametermanager/get_regional_parameter.py +12 -1
  42. pulumi_gcp/parametermanager/get_regional_parameter_version.py +15 -1
  43. pulumi_gcp/parametermanager/outputs.py +11 -0
  44. pulumi_gcp/parametermanager/regional_parameter.py +78 -0
  45. pulumi_gcp/parametermanager/regional_parameter_version.py +66 -0
  46. pulumi_gcp/pulumi-plugin.json +1 -1
  47. pulumi_gcp/spanner/database.py +0 -34
  48. pulumi_gcp/storage/bucket_object.py +28 -0
  49. pulumi_gcp/storage/get_bucket_object.py +12 -1
  50. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  51. pulumi_gcp/workbench/_inputs.py +60 -0
  52. pulumi_gcp/workbench/instance.py +48 -0
  53. pulumi_gcp/workbench/outputs.py +55 -0
  54. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.dist-info}/METADATA +1 -1
  55. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.dist-info}/RECORD +57 -51
  56. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.dist-info}/WHEEL +0 -0
  57. {pulumi_gcp-8.25.1.dist-info → pulumi_gcp-8.26.0.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
+