pulumi-gcp 7.5.0a1704347630__py3-none-any.whl → 7.6.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. pulumi_gcp/__init__.py +99 -0
  2. pulumi_gcp/bigqueryanalyticshub/_inputs.py +40 -0
  3. pulumi_gcp/bigqueryanalyticshub/listing.py +117 -3
  4. pulumi_gcp/bigqueryanalyticshub/outputs.py +49 -0
  5. pulumi_gcp/clouddeploy/__init__.py +1 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +239 -0
  7. pulumi_gcp/clouddeploy/automation.py +1103 -0
  8. pulumi_gcp/clouddeploy/outputs.py +246 -0
  9. pulumi_gcp/clouddomains/__init__.py +10 -0
  10. pulumi_gcp/clouddomains/_inputs.py +1098 -0
  11. pulumi_gcp/clouddomains/outputs.py +1156 -0
  12. pulumi_gcp/clouddomains/registration.py +1068 -0
  13. pulumi_gcp/cloudrunv2/job.py +4 -4
  14. pulumi_gcp/composer/_inputs.py +79 -1
  15. pulumi_gcp/composer/outputs.py +131 -4
  16. pulumi_gcp/compute/__init__.py +1 -0
  17. pulumi_gcp/compute/_inputs.py +180 -0
  18. pulumi_gcp/compute/get_instance_template.py +11 -1
  19. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  20. pulumi_gcp/compute/get_reservation.py +212 -0
  21. pulumi_gcp/compute/instance_template.py +47 -0
  22. pulumi_gcp/compute/network_firewall_policy.py +20 -22
  23. pulumi_gcp/compute/outputs.py +325 -0
  24. pulumi_gcp/compute/region_instance_template.py +47 -0
  25. pulumi_gcp/compute/region_network_firewall_policy.py +31 -35
  26. pulumi_gcp/compute/router_peer.py +54 -0
  27. pulumi_gcp/compute/vpn_tunnel.py +8 -4
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +23 -0
  31. pulumi_gcp/container/aws_node_pool.py +7 -7
  32. pulumi_gcp/container/cluster.py +68 -14
  33. pulumi_gcp/container/get_cluster.py +11 -1
  34. pulumi_gcp/container/outputs.py +49 -0
  35. pulumi_gcp/dataflow/pipeline.py +1 -1
  36. pulumi_gcp/dataproc/_inputs.py +413 -39
  37. pulumi_gcp/dataproc/metastore_service.py +63 -0
  38. pulumi_gcp/dataproc/outputs.py +461 -39
  39. pulumi_gcp/dns/__init__.py +1 -0
  40. pulumi_gcp/dns/_inputs.py +94 -0
  41. pulumi_gcp/dns/get_managed_zones.py +89 -0
  42. pulumi_gcp/dns/outputs.py +62 -0
  43. pulumi_gcp/edgecontainer/vpn_connection.py +10 -10
  44. pulumi_gcp/filestore/__init__.py +1 -0
  45. pulumi_gcp/filestore/get_instance.py +258 -0
  46. pulumi_gcp/filestore/instance.py +7 -7
  47. pulumi_gcp/filestore/outputs.py +126 -0
  48. pulumi_gcp/gkebackup/backup_plan.py +24 -8
  49. pulumi_gcp/gkebackup/restore_plan.py +36 -12
  50. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +36 -12
  51. pulumi_gcp/gkebackup/restore_plan_iam_member.py +36 -12
  52. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +36 -12
  53. pulumi_gcp/gkehub/_inputs.py +502 -2
  54. pulumi_gcp/gkehub/feature.py +34 -0
  55. pulumi_gcp/gkehub/feature_membership.py +177 -0
  56. pulumi_gcp/gkehub/membership.py +18 -6
  57. pulumi_gcp/gkehub/outputs.py +502 -2
  58. pulumi_gcp/gkeonprem/_inputs.py +21 -25
  59. pulumi_gcp/gkeonprem/outputs.py +34 -25
  60. pulumi_gcp/gkeonprem/v_mware_node_pool.py +34 -0
  61. pulumi_gcp/integrationconnectors/__init__.py +1 -0
  62. pulumi_gcp/integrationconnectors/endpoint_attachment.py +669 -0
  63. pulumi_gcp/kms/_inputs.py +42 -0
  64. pulumi_gcp/kms/crypto_key.py +36 -0
  65. pulumi_gcp/kms/get_kms_crypto_key.py +11 -1
  66. pulumi_gcp/kms/outputs.py +62 -0
  67. pulumi_gcp/logging/__init__.py +2 -0
  68. pulumi_gcp/logging/folder_settings.py +490 -0
  69. pulumi_gcp/logging/folder_sink.py +21 -21
  70. pulumi_gcp/logging/organization_settings.py +484 -0
  71. pulumi_gcp/logging/organization_sink.py +21 -21
  72. pulumi_gcp/logging/project_sink.py +7 -14
  73. pulumi_gcp/netapp/__init__.py +3 -0
  74. pulumi_gcp/netapp/active_directory.py +1413 -0
  75. pulumi_gcp/netapp/backup_vault.py +593 -0
  76. pulumi_gcp/netapp/kmsconfig.py +649 -0
  77. pulumi_gcp/orgpolicy/policy.py +28 -0
  78. pulumi_gcp/provider.py +20 -0
  79. pulumi_gcp/pubsub/subscription.py +29 -37
  80. pulumi_gcp/serviceaccount/account.py +47 -0
  81. pulumi_gcp/servicenetworking/connection.py +55 -1
  82. pulumi_gcp/sql/database_instance.py +2 -2
  83. pulumi_gcp/sql/ssl_cert.py +1 -1
  84. pulumi_gcp/sql/user.py +7 -7
  85. pulumi_gcp/storage/transfer_job.py +24 -5
  86. pulumi_gcp/vertex/__init__.py +3 -0
  87. pulumi_gcp/vertex/_inputs.py +339 -0
  88. pulumi_gcp/vertex/ai_feature_group.py +710 -0
  89. pulumi_gcp/vertex/ai_feature_online_store.py +962 -0
  90. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +804 -0
  91. pulumi_gcp/vertex/outputs.py +406 -0
  92. pulumi_gcp/vmwareengine/__init__.py +2 -0
  93. pulumi_gcp/vmwareengine/_inputs.py +84 -0
  94. pulumi_gcp/vmwareengine/external_access_rule.py +947 -0
  95. pulumi_gcp/vmwareengine/get_external_access_rule.py +245 -0
  96. pulumi_gcp/vmwareengine/outputs.py +146 -0
  97. pulumi_gcp/workflows/workflow.py +7 -7
  98. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/METADATA +1 -1
  99. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/RECORD +101 -82
  100. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/WHEEL +0 -0
  101. {pulumi_gcp-7.5.0a1704347630.dist-info → pulumi_gcp-7.6.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1103 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+ from . import outputs
12
+ from ._inputs import *
13
+
14
+ __all__ = ['AutomationArgs', 'Automation']
15
+
16
+ @pulumi.input_type
17
+ class AutomationArgs:
18
+ def __init__(__self__, *,
19
+ delivery_pipeline: pulumi.Input[str],
20
+ location: pulumi.Input[str],
21
+ rules: pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]],
22
+ selector: pulumi.Input['AutomationSelectorArgs'],
23
+ service_account: pulumi.Input[str],
24
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
25
+ description: Optional[pulumi.Input[str]] = None,
26
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
+ name: Optional[pulumi.Input[str]] = None,
28
+ project: Optional[pulumi.Input[str]] = None,
29
+ suspended: Optional[pulumi.Input[bool]] = None):
30
+ """
31
+ The set of arguments for constructing a Automation resource.
32
+ :param pulumi.Input[str] delivery_pipeline: The delivery_pipeline for the resource
33
+ :param pulumi.Input[str] location: The location for the resource
34
+ :param pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]] rules: Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.
35
+ Structure is documented below.
36
+ :param pulumi.Input['AutomationSelectorArgs'] selector: Required. Selected resources to which the automation will be applied.
37
+ Structure is documented below.
38
+ :param pulumi.Input[str] service_account: Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
39
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.
40
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
41
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
42
+ :param pulumi.Input[str] description: Optional. Description of the `Automation`. Max length is 255 characters.
43
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters.
44
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
45
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
46
+ :param pulumi.Input[str] name: Name of the `Automation`.
47
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
48
+ If it is not provided, the provider project is used.
49
+ :param pulumi.Input[bool] suspended: Optional. When Suspended, automation is deactivated from execution.
50
+ """
51
+ pulumi.set(__self__, "delivery_pipeline", delivery_pipeline)
52
+ pulumi.set(__self__, "location", location)
53
+ pulumi.set(__self__, "rules", rules)
54
+ pulumi.set(__self__, "selector", selector)
55
+ pulumi.set(__self__, "service_account", service_account)
56
+ if annotations is not None:
57
+ pulumi.set(__self__, "annotations", annotations)
58
+ if description is not None:
59
+ pulumi.set(__self__, "description", description)
60
+ if labels is not None:
61
+ pulumi.set(__self__, "labels", labels)
62
+ if name is not None:
63
+ pulumi.set(__self__, "name", name)
64
+ if project is not None:
65
+ pulumi.set(__self__, "project", project)
66
+ if suspended is not None:
67
+ pulumi.set(__self__, "suspended", suspended)
68
+
69
+ @property
70
+ @pulumi.getter(name="deliveryPipeline")
71
+ def delivery_pipeline(self) -> pulumi.Input[str]:
72
+ """
73
+ The delivery_pipeline for the resource
74
+ """
75
+ return pulumi.get(self, "delivery_pipeline")
76
+
77
+ @delivery_pipeline.setter
78
+ def delivery_pipeline(self, value: pulumi.Input[str]):
79
+ pulumi.set(self, "delivery_pipeline", value)
80
+
81
+ @property
82
+ @pulumi.getter
83
+ def location(self) -> pulumi.Input[str]:
84
+ """
85
+ The location for the resource
86
+ """
87
+ return pulumi.get(self, "location")
88
+
89
+ @location.setter
90
+ def location(self, value: pulumi.Input[str]):
91
+ pulumi.set(self, "location", value)
92
+
93
+ @property
94
+ @pulumi.getter
95
+ def rules(self) -> pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]]:
96
+ """
97
+ Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.
98
+ Structure is documented below.
99
+ """
100
+ return pulumi.get(self, "rules")
101
+
102
+ @rules.setter
103
+ def rules(self, value: pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]]):
104
+ pulumi.set(self, "rules", value)
105
+
106
+ @property
107
+ @pulumi.getter
108
+ def selector(self) -> pulumi.Input['AutomationSelectorArgs']:
109
+ """
110
+ Required. Selected resources to which the automation will be applied.
111
+ Structure is documented below.
112
+ """
113
+ return pulumi.get(self, "selector")
114
+
115
+ @selector.setter
116
+ def selector(self, value: pulumi.Input['AutomationSelectorArgs']):
117
+ pulumi.set(self, "selector", value)
118
+
119
+ @property
120
+ @pulumi.getter(name="serviceAccount")
121
+ def service_account(self) -> pulumi.Input[str]:
122
+ """
123
+ Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
124
+ """
125
+ return pulumi.get(self, "service_account")
126
+
127
+ @service_account.setter
128
+ def service_account(self, value: pulumi.Input[str]):
129
+ pulumi.set(self, "service_account", value)
130
+
131
+ @property
132
+ @pulumi.getter
133
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
134
+ """
135
+ Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.
136
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
137
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
138
+ """
139
+ return pulumi.get(self, "annotations")
140
+
141
+ @annotations.setter
142
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
143
+ pulumi.set(self, "annotations", value)
144
+
145
+ @property
146
+ @pulumi.getter
147
+ def description(self) -> Optional[pulumi.Input[str]]:
148
+ """
149
+ Optional. Description of the `Automation`. Max length is 255 characters.
150
+ """
151
+ return pulumi.get(self, "description")
152
+
153
+ @description.setter
154
+ def description(self, value: Optional[pulumi.Input[str]]):
155
+ pulumi.set(self, "description", value)
156
+
157
+ @property
158
+ @pulumi.getter
159
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
160
+ """
161
+ Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters.
162
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
163
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
164
+ """
165
+ return pulumi.get(self, "labels")
166
+
167
+ @labels.setter
168
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
169
+ pulumi.set(self, "labels", value)
170
+
171
+ @property
172
+ @pulumi.getter
173
+ def name(self) -> Optional[pulumi.Input[str]]:
174
+ """
175
+ Name of the `Automation`.
176
+ """
177
+ return pulumi.get(self, "name")
178
+
179
+ @name.setter
180
+ def name(self, value: Optional[pulumi.Input[str]]):
181
+ pulumi.set(self, "name", value)
182
+
183
+ @property
184
+ @pulumi.getter
185
+ def project(self) -> Optional[pulumi.Input[str]]:
186
+ """
187
+ The ID of the project in which the resource belongs.
188
+ If it is not provided, the provider project is used.
189
+ """
190
+ return pulumi.get(self, "project")
191
+
192
+ @project.setter
193
+ def project(self, value: Optional[pulumi.Input[str]]):
194
+ pulumi.set(self, "project", value)
195
+
196
+ @property
197
+ @pulumi.getter
198
+ def suspended(self) -> Optional[pulumi.Input[bool]]:
199
+ """
200
+ Optional. When Suspended, automation is deactivated from execution.
201
+ """
202
+ return pulumi.get(self, "suspended")
203
+
204
+ @suspended.setter
205
+ def suspended(self, value: Optional[pulumi.Input[bool]]):
206
+ pulumi.set(self, "suspended", value)
207
+
208
+
209
+ @pulumi.input_type
210
+ class _AutomationState:
211
+ def __init__(__self__, *,
212
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
213
+ create_time: Optional[pulumi.Input[str]] = None,
214
+ delivery_pipeline: Optional[pulumi.Input[str]] = None,
215
+ description: Optional[pulumi.Input[str]] = None,
216
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
217
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
218
+ etag: Optional[pulumi.Input[str]] = None,
219
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
220
+ location: Optional[pulumi.Input[str]] = None,
221
+ name: Optional[pulumi.Input[str]] = None,
222
+ project: Optional[pulumi.Input[str]] = None,
223
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
224
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]]] = None,
225
+ selector: Optional[pulumi.Input['AutomationSelectorArgs']] = None,
226
+ service_account: Optional[pulumi.Input[str]] = None,
227
+ suspended: Optional[pulumi.Input[bool]] = None,
228
+ uid: Optional[pulumi.Input[str]] = None,
229
+ update_time: Optional[pulumi.Input[str]] = None):
230
+ """
231
+ Input properties used for looking up and filtering Automation resources.
232
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.
233
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
234
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
235
+ :param pulumi.Input[str] create_time: Output only. Time at which the automation was created.
236
+ :param pulumi.Input[str] delivery_pipeline: The delivery_pipeline for the resource
237
+ :param pulumi.Input[str] description: Optional. Description of the `Automation`. Max length is 255 characters.
238
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_annotations: All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through
239
+ Terraform, other clients and services.
240
+ :param pulumi.Input[Mapping[str, pulumi.Input[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.
241
+ :param pulumi.Input[str] etag: Optional. The weak etag of the `Automation` 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.
242
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters.
243
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
244
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
245
+ :param pulumi.Input[str] location: The location for the resource
246
+ :param pulumi.Input[str] name: Name of the `Automation`.
247
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
248
+ If it is not provided, the provider project is used.
249
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
250
+ and default labels configured on the provider.
251
+ :param pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]] rules: Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.
252
+ Structure is documented below.
253
+ :param pulumi.Input['AutomationSelectorArgs'] selector: Required. Selected resources to which the automation will be applied.
254
+ Structure is documented below.
255
+ :param pulumi.Input[str] service_account: Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
256
+ :param pulumi.Input[bool] suspended: Optional. When Suspended, automation is deactivated from execution.
257
+ :param pulumi.Input[str] uid: Output only. Unique identifier of the `Automation`.
258
+ :param pulumi.Input[str] update_time: Output only. Time at which the automation was updated.
259
+ """
260
+ if annotations is not None:
261
+ pulumi.set(__self__, "annotations", annotations)
262
+ if create_time is not None:
263
+ pulumi.set(__self__, "create_time", create_time)
264
+ if delivery_pipeline is not None:
265
+ pulumi.set(__self__, "delivery_pipeline", delivery_pipeline)
266
+ if description is not None:
267
+ pulumi.set(__self__, "description", description)
268
+ if effective_annotations is not None:
269
+ pulumi.set(__self__, "effective_annotations", effective_annotations)
270
+ if effective_labels is not None:
271
+ pulumi.set(__self__, "effective_labels", effective_labels)
272
+ if etag is not None:
273
+ pulumi.set(__self__, "etag", etag)
274
+ if labels is not None:
275
+ pulumi.set(__self__, "labels", labels)
276
+ if location is not None:
277
+ pulumi.set(__self__, "location", location)
278
+ if name is not None:
279
+ pulumi.set(__self__, "name", name)
280
+ if project is not None:
281
+ pulumi.set(__self__, "project", project)
282
+ if pulumi_labels is not None:
283
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
284
+ if rules is not None:
285
+ pulumi.set(__self__, "rules", rules)
286
+ if selector is not None:
287
+ pulumi.set(__self__, "selector", selector)
288
+ if service_account is not None:
289
+ pulumi.set(__self__, "service_account", service_account)
290
+ if suspended is not None:
291
+ pulumi.set(__self__, "suspended", suspended)
292
+ if uid is not None:
293
+ pulumi.set(__self__, "uid", uid)
294
+ if update_time is not None:
295
+ pulumi.set(__self__, "update_time", update_time)
296
+
297
+ @property
298
+ @pulumi.getter
299
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
300
+ """
301
+ Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.
302
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
303
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
304
+ """
305
+ return pulumi.get(self, "annotations")
306
+
307
+ @annotations.setter
308
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
309
+ pulumi.set(self, "annotations", value)
310
+
311
+ @property
312
+ @pulumi.getter(name="createTime")
313
+ def create_time(self) -> Optional[pulumi.Input[str]]:
314
+ """
315
+ Output only. Time at which the automation was created.
316
+ """
317
+ return pulumi.get(self, "create_time")
318
+
319
+ @create_time.setter
320
+ def create_time(self, value: Optional[pulumi.Input[str]]):
321
+ pulumi.set(self, "create_time", value)
322
+
323
+ @property
324
+ @pulumi.getter(name="deliveryPipeline")
325
+ def delivery_pipeline(self) -> Optional[pulumi.Input[str]]:
326
+ """
327
+ The delivery_pipeline for the resource
328
+ """
329
+ return pulumi.get(self, "delivery_pipeline")
330
+
331
+ @delivery_pipeline.setter
332
+ def delivery_pipeline(self, value: Optional[pulumi.Input[str]]):
333
+ pulumi.set(self, "delivery_pipeline", value)
334
+
335
+ @property
336
+ @pulumi.getter
337
+ def description(self) -> Optional[pulumi.Input[str]]:
338
+ """
339
+ Optional. Description of the `Automation`. Max length is 255 characters.
340
+ """
341
+ return pulumi.get(self, "description")
342
+
343
+ @description.setter
344
+ def description(self, value: Optional[pulumi.Input[str]]):
345
+ pulumi.set(self, "description", value)
346
+
347
+ @property
348
+ @pulumi.getter(name="effectiveAnnotations")
349
+ def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
350
+ """
351
+ All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through
352
+ Terraform, other clients and services.
353
+ """
354
+ return pulumi.get(self, "effective_annotations")
355
+
356
+ @effective_annotations.setter
357
+ def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
358
+ pulumi.set(self, "effective_annotations", value)
359
+
360
+ @property
361
+ @pulumi.getter(name="effectiveLabels")
362
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
363
+ """
364
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
365
+ """
366
+ return pulumi.get(self, "effective_labels")
367
+
368
+ @effective_labels.setter
369
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
370
+ pulumi.set(self, "effective_labels", value)
371
+
372
+ @property
373
+ @pulumi.getter
374
+ def etag(self) -> Optional[pulumi.Input[str]]:
375
+ """
376
+ Optional. The weak etag of the `Automation` 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.
377
+ """
378
+ return pulumi.get(self, "etag")
379
+
380
+ @etag.setter
381
+ def etag(self, value: Optional[pulumi.Input[str]]):
382
+ pulumi.set(self, "etag", value)
383
+
384
+ @property
385
+ @pulumi.getter
386
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
387
+ """
388
+ Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters.
389
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
390
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
391
+ """
392
+ return pulumi.get(self, "labels")
393
+
394
+ @labels.setter
395
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
396
+ pulumi.set(self, "labels", value)
397
+
398
+ @property
399
+ @pulumi.getter
400
+ def location(self) -> Optional[pulumi.Input[str]]:
401
+ """
402
+ The location for the resource
403
+ """
404
+ return pulumi.get(self, "location")
405
+
406
+ @location.setter
407
+ def location(self, value: Optional[pulumi.Input[str]]):
408
+ pulumi.set(self, "location", value)
409
+
410
+ @property
411
+ @pulumi.getter
412
+ def name(self) -> Optional[pulumi.Input[str]]:
413
+ """
414
+ Name of the `Automation`.
415
+ """
416
+ return pulumi.get(self, "name")
417
+
418
+ @name.setter
419
+ def name(self, value: Optional[pulumi.Input[str]]):
420
+ pulumi.set(self, "name", value)
421
+
422
+ @property
423
+ @pulumi.getter
424
+ def project(self) -> Optional[pulumi.Input[str]]:
425
+ """
426
+ The ID of the project in which the resource belongs.
427
+ If it is not provided, the provider project is used.
428
+ """
429
+ return pulumi.get(self, "project")
430
+
431
+ @project.setter
432
+ def project(self, value: Optional[pulumi.Input[str]]):
433
+ pulumi.set(self, "project", value)
434
+
435
+ @property
436
+ @pulumi.getter(name="pulumiLabels")
437
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
438
+ """
439
+ The combination of labels configured directly on the resource
440
+ and default labels configured on the provider.
441
+ """
442
+ return pulumi.get(self, "pulumi_labels")
443
+
444
+ @pulumi_labels.setter
445
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
446
+ pulumi.set(self, "pulumi_labels", value)
447
+
448
+ @property
449
+ @pulumi.getter
450
+ def rules(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]]]:
451
+ """
452
+ Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.
453
+ Structure is documented below.
454
+ """
455
+ return pulumi.get(self, "rules")
456
+
457
+ @rules.setter
458
+ def rules(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AutomationRuleArgs']]]]):
459
+ pulumi.set(self, "rules", value)
460
+
461
+ @property
462
+ @pulumi.getter
463
+ def selector(self) -> Optional[pulumi.Input['AutomationSelectorArgs']]:
464
+ """
465
+ Required. Selected resources to which the automation will be applied.
466
+ Structure is documented below.
467
+ """
468
+ return pulumi.get(self, "selector")
469
+
470
+ @selector.setter
471
+ def selector(self, value: Optional[pulumi.Input['AutomationSelectorArgs']]):
472
+ pulumi.set(self, "selector", value)
473
+
474
+ @property
475
+ @pulumi.getter(name="serviceAccount")
476
+ def service_account(self) -> Optional[pulumi.Input[str]]:
477
+ """
478
+ Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
479
+ """
480
+ return pulumi.get(self, "service_account")
481
+
482
+ @service_account.setter
483
+ def service_account(self, value: Optional[pulumi.Input[str]]):
484
+ pulumi.set(self, "service_account", value)
485
+
486
+ @property
487
+ @pulumi.getter
488
+ def suspended(self) -> Optional[pulumi.Input[bool]]:
489
+ """
490
+ Optional. When Suspended, automation is deactivated from execution.
491
+ """
492
+ return pulumi.get(self, "suspended")
493
+
494
+ @suspended.setter
495
+ def suspended(self, value: Optional[pulumi.Input[bool]]):
496
+ pulumi.set(self, "suspended", value)
497
+
498
+ @property
499
+ @pulumi.getter
500
+ def uid(self) -> Optional[pulumi.Input[str]]:
501
+ """
502
+ Output only. Unique identifier of the `Automation`.
503
+ """
504
+ return pulumi.get(self, "uid")
505
+
506
+ @uid.setter
507
+ def uid(self, value: Optional[pulumi.Input[str]]):
508
+ pulumi.set(self, "uid", value)
509
+
510
+ @property
511
+ @pulumi.getter(name="updateTime")
512
+ def update_time(self) -> Optional[pulumi.Input[str]]:
513
+ """
514
+ Output only. Time at which the automation was updated.
515
+ """
516
+ return pulumi.get(self, "update_time")
517
+
518
+ @update_time.setter
519
+ def update_time(self, value: Optional[pulumi.Input[str]]):
520
+ pulumi.set(self, "update_time", value)
521
+
522
+
523
+ class Automation(pulumi.CustomResource):
524
+ @overload
525
+ def __init__(__self__,
526
+ resource_name: str,
527
+ opts: Optional[pulumi.ResourceOptions] = None,
528
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
529
+ delivery_pipeline: Optional[pulumi.Input[str]] = None,
530
+ description: Optional[pulumi.Input[str]] = None,
531
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
532
+ location: Optional[pulumi.Input[str]] = None,
533
+ name: Optional[pulumi.Input[str]] = None,
534
+ project: Optional[pulumi.Input[str]] = None,
535
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AutomationRuleArgs']]]]] = None,
536
+ selector: Optional[pulumi.Input[pulumi.InputType['AutomationSelectorArgs']]] = None,
537
+ service_account: Optional[pulumi.Input[str]] = None,
538
+ suspended: Optional[pulumi.Input[bool]] = None,
539
+ __props__=None):
540
+ """
541
+ ## Example Usage
542
+ ### Clouddeploy Automation Basic
543
+
544
+ ```python
545
+ import pulumi
546
+ import pulumi_gcp as gcp
547
+
548
+ pipeline = gcp.clouddeploy.DeliveryPipeline("pipeline",
549
+ location="us-central1",
550
+ serial_pipeline=gcp.clouddeploy.DeliveryPipelineSerialPipelineArgs(
551
+ stages=[gcp.clouddeploy.DeliveryPipelineSerialPipelineStageArgs(
552
+ target_id="test",
553
+ profiles=[],
554
+ )],
555
+ ),
556
+ opts=pulumi.ResourceOptions(provider=google_beta))
557
+ b_automation = gcp.clouddeploy.Automation("b-automation",
558
+ project=pipeline.project,
559
+ location=pipeline.location,
560
+ delivery_pipeline=pipeline.name,
561
+ service_account="my@service-account.com",
562
+ selector=gcp.clouddeploy.AutomationSelectorArgs(
563
+ targets=[gcp.clouddeploy.AutomationSelectorTargetArgs(
564
+ id="*",
565
+ )],
566
+ ),
567
+ suspended=False,
568
+ rules=[gcp.clouddeploy.AutomationRuleArgs(
569
+ promote_release_rule=gcp.clouddeploy.AutomationRulePromoteReleaseRuleArgs(
570
+ id="promote-release",
571
+ ),
572
+ )],
573
+ opts=pulumi.ResourceOptions(provider=google_beta))
574
+ ```
575
+ ### Clouddeploy Automation Full
576
+
577
+ ```python
578
+ import pulumi
579
+ import pulumi_gcp as gcp
580
+
581
+ pipeline = gcp.clouddeploy.DeliveryPipeline("pipeline",
582
+ location="us-central1",
583
+ serial_pipeline=gcp.clouddeploy.DeliveryPipelineSerialPipelineArgs(
584
+ stages=[gcp.clouddeploy.DeliveryPipelineSerialPipelineStageArgs(
585
+ target_id="test",
586
+ profiles=["test-profile"],
587
+ )],
588
+ ),
589
+ opts=pulumi.ResourceOptions(provider=google_beta))
590
+ f_automation = gcp.clouddeploy.Automation("f-automation",
591
+ location="us-central1",
592
+ delivery_pipeline=pipeline.name,
593
+ service_account="my@service-account.com",
594
+ annotations={
595
+ "my_first_annotation": "example-annotation-1",
596
+ "my_second_annotation": "example-annotation-2",
597
+ },
598
+ labels={
599
+ "my_first_label": "example-label-1",
600
+ "my_second_label": "example-label-2",
601
+ },
602
+ description="automation resource",
603
+ selector=gcp.clouddeploy.AutomationSelectorArgs(
604
+ targets=[gcp.clouddeploy.AutomationSelectorTargetArgs(
605
+ id="test",
606
+ labels={
607
+ "foo": "bar",
608
+ },
609
+ )],
610
+ ),
611
+ suspended=True,
612
+ rules=[
613
+ gcp.clouddeploy.AutomationRuleArgs(
614
+ promote_release_rule=gcp.clouddeploy.AutomationRulePromoteReleaseRuleArgs(
615
+ id="promote-release",
616
+ wait="200s",
617
+ destination_target_id="@next",
618
+ destination_phase="stable",
619
+ ),
620
+ ),
621
+ gcp.clouddeploy.AutomationRuleArgs(
622
+ advance_rollout_rule=gcp.clouddeploy.AutomationRuleAdvanceRolloutRuleArgs(
623
+ id="advance-rollout",
624
+ source_phases=["deploy"],
625
+ wait="200s",
626
+ ),
627
+ ),
628
+ ],
629
+ opts=pulumi.ResourceOptions(provider=google_beta))
630
+ ```
631
+
632
+ ## Import
633
+
634
+ Automation can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}` * `{{project}}/{{location}}/{{delivery_pipeline}}/{{name}}` * `{{location}}/{{delivery_pipeline}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Automation using one of the formats above. For exampletf import {
635
+
636
+ id = "projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}"
637
+
638
+ to = google_clouddeploy_automation.default }
639
+
640
+ ```sh
641
+ $ pulumi import gcp:clouddeploy/automation:Automation When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Automation can be imported using one of the formats above. For example
642
+ ```
643
+
644
+ ```sh
645
+ $ pulumi import gcp:clouddeploy/automation:Automation default projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}
646
+ ```
647
+
648
+ ```sh
649
+ $ pulumi import gcp:clouddeploy/automation:Automation default {{project}}/{{location}}/{{delivery_pipeline}}/{{name}}
650
+ ```
651
+
652
+ ```sh
653
+ $ pulumi import gcp:clouddeploy/automation:Automation default {{location}}/{{delivery_pipeline}}/{{name}}
654
+ ```
655
+
656
+ :param str resource_name: The name of the resource.
657
+ :param pulumi.ResourceOptions opts: Options for the resource.
658
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.
659
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
660
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
661
+ :param pulumi.Input[str] delivery_pipeline: The delivery_pipeline for the resource
662
+ :param pulumi.Input[str] description: Optional. Description of the `Automation`. Max length is 255 characters.
663
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters.
664
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
665
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
666
+ :param pulumi.Input[str] location: The location for the resource
667
+ :param pulumi.Input[str] name: Name of the `Automation`.
668
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
669
+ If it is not provided, the provider project is used.
670
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AutomationRuleArgs']]]] rules: Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.
671
+ Structure is documented below.
672
+ :param pulumi.Input[pulumi.InputType['AutomationSelectorArgs']] selector: Required. Selected resources to which the automation will be applied.
673
+ Structure is documented below.
674
+ :param pulumi.Input[str] service_account: Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
675
+ :param pulumi.Input[bool] suspended: Optional. When Suspended, automation is deactivated from execution.
676
+ """
677
+ ...
678
+ @overload
679
+ def __init__(__self__,
680
+ resource_name: str,
681
+ args: AutomationArgs,
682
+ opts: Optional[pulumi.ResourceOptions] = None):
683
+ """
684
+ ## Example Usage
685
+ ### Clouddeploy Automation Basic
686
+
687
+ ```python
688
+ import pulumi
689
+ import pulumi_gcp as gcp
690
+
691
+ pipeline = gcp.clouddeploy.DeliveryPipeline("pipeline",
692
+ location="us-central1",
693
+ serial_pipeline=gcp.clouddeploy.DeliveryPipelineSerialPipelineArgs(
694
+ stages=[gcp.clouddeploy.DeliveryPipelineSerialPipelineStageArgs(
695
+ target_id="test",
696
+ profiles=[],
697
+ )],
698
+ ),
699
+ opts=pulumi.ResourceOptions(provider=google_beta))
700
+ b_automation = gcp.clouddeploy.Automation("b-automation",
701
+ project=pipeline.project,
702
+ location=pipeline.location,
703
+ delivery_pipeline=pipeline.name,
704
+ service_account="my@service-account.com",
705
+ selector=gcp.clouddeploy.AutomationSelectorArgs(
706
+ targets=[gcp.clouddeploy.AutomationSelectorTargetArgs(
707
+ id="*",
708
+ )],
709
+ ),
710
+ suspended=False,
711
+ rules=[gcp.clouddeploy.AutomationRuleArgs(
712
+ promote_release_rule=gcp.clouddeploy.AutomationRulePromoteReleaseRuleArgs(
713
+ id="promote-release",
714
+ ),
715
+ )],
716
+ opts=pulumi.ResourceOptions(provider=google_beta))
717
+ ```
718
+ ### Clouddeploy Automation Full
719
+
720
+ ```python
721
+ import pulumi
722
+ import pulumi_gcp as gcp
723
+
724
+ pipeline = gcp.clouddeploy.DeliveryPipeline("pipeline",
725
+ location="us-central1",
726
+ serial_pipeline=gcp.clouddeploy.DeliveryPipelineSerialPipelineArgs(
727
+ stages=[gcp.clouddeploy.DeliveryPipelineSerialPipelineStageArgs(
728
+ target_id="test",
729
+ profiles=["test-profile"],
730
+ )],
731
+ ),
732
+ opts=pulumi.ResourceOptions(provider=google_beta))
733
+ f_automation = gcp.clouddeploy.Automation("f-automation",
734
+ location="us-central1",
735
+ delivery_pipeline=pipeline.name,
736
+ service_account="my@service-account.com",
737
+ annotations={
738
+ "my_first_annotation": "example-annotation-1",
739
+ "my_second_annotation": "example-annotation-2",
740
+ },
741
+ labels={
742
+ "my_first_label": "example-label-1",
743
+ "my_second_label": "example-label-2",
744
+ },
745
+ description="automation resource",
746
+ selector=gcp.clouddeploy.AutomationSelectorArgs(
747
+ targets=[gcp.clouddeploy.AutomationSelectorTargetArgs(
748
+ id="test",
749
+ labels={
750
+ "foo": "bar",
751
+ },
752
+ )],
753
+ ),
754
+ suspended=True,
755
+ rules=[
756
+ gcp.clouddeploy.AutomationRuleArgs(
757
+ promote_release_rule=gcp.clouddeploy.AutomationRulePromoteReleaseRuleArgs(
758
+ id="promote-release",
759
+ wait="200s",
760
+ destination_target_id="@next",
761
+ destination_phase="stable",
762
+ ),
763
+ ),
764
+ gcp.clouddeploy.AutomationRuleArgs(
765
+ advance_rollout_rule=gcp.clouddeploy.AutomationRuleAdvanceRolloutRuleArgs(
766
+ id="advance-rollout",
767
+ source_phases=["deploy"],
768
+ wait="200s",
769
+ ),
770
+ ),
771
+ ],
772
+ opts=pulumi.ResourceOptions(provider=google_beta))
773
+ ```
774
+
775
+ ## Import
776
+
777
+ Automation can be imported using any of these accepted formats* `projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}` * `{{project}}/{{location}}/{{delivery_pipeline}}/{{name}}` * `{{location}}/{{delivery_pipeline}}/{{name}}` In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Automation using one of the formats above. For exampletf import {
778
+
779
+ id = "projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}"
780
+
781
+ to = google_clouddeploy_automation.default }
782
+
783
+ ```sh
784
+ $ pulumi import gcp:clouddeploy/automation:Automation When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Automation can be imported using one of the formats above. For example
785
+ ```
786
+
787
+ ```sh
788
+ $ pulumi import gcp:clouddeploy/automation:Automation default projects/{{project}}/locations/{{location}}/deliveryPipelines/{{delivery_pipeline}}/automations/{{name}}
789
+ ```
790
+
791
+ ```sh
792
+ $ pulumi import gcp:clouddeploy/automation:Automation default {{project}}/{{location}}/{{delivery_pipeline}}/{{name}}
793
+ ```
794
+
795
+ ```sh
796
+ $ pulumi import gcp:clouddeploy/automation:Automation default {{location}}/{{delivery_pipeline}}/{{name}}
797
+ ```
798
+
799
+ :param str resource_name: The name of the resource.
800
+ :param AutomationArgs args: The arguments to use to populate this resource's properties.
801
+ :param pulumi.ResourceOptions opts: Options for the resource.
802
+ """
803
+ ...
804
+ def __init__(__self__, resource_name: str, *args, **kwargs):
805
+ resource_args, opts = _utilities.get_resource_args_opts(AutomationArgs, pulumi.ResourceOptions, *args, **kwargs)
806
+ if resource_args is not None:
807
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
808
+ else:
809
+ __self__._internal_init(resource_name, *args, **kwargs)
810
+
811
+ def _internal_init(__self__,
812
+ resource_name: str,
813
+ opts: Optional[pulumi.ResourceOptions] = None,
814
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
815
+ delivery_pipeline: Optional[pulumi.Input[str]] = None,
816
+ description: Optional[pulumi.Input[str]] = None,
817
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
818
+ location: Optional[pulumi.Input[str]] = None,
819
+ name: Optional[pulumi.Input[str]] = None,
820
+ project: Optional[pulumi.Input[str]] = None,
821
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AutomationRuleArgs']]]]] = None,
822
+ selector: Optional[pulumi.Input[pulumi.InputType['AutomationSelectorArgs']]] = None,
823
+ service_account: Optional[pulumi.Input[str]] = None,
824
+ suspended: Optional[pulumi.Input[bool]] = None,
825
+ __props__=None):
826
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
827
+ if not isinstance(opts, pulumi.ResourceOptions):
828
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
829
+ if opts.id is None:
830
+ if __props__ is not None:
831
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
832
+ __props__ = AutomationArgs.__new__(AutomationArgs)
833
+
834
+ __props__.__dict__["annotations"] = annotations
835
+ if delivery_pipeline is None and not opts.urn:
836
+ raise TypeError("Missing required property 'delivery_pipeline'")
837
+ __props__.__dict__["delivery_pipeline"] = delivery_pipeline
838
+ __props__.__dict__["description"] = description
839
+ __props__.__dict__["labels"] = labels
840
+ if location is None and not opts.urn:
841
+ raise TypeError("Missing required property 'location'")
842
+ __props__.__dict__["location"] = location
843
+ __props__.__dict__["name"] = name
844
+ __props__.__dict__["project"] = project
845
+ if rules is None and not opts.urn:
846
+ raise TypeError("Missing required property 'rules'")
847
+ __props__.__dict__["rules"] = rules
848
+ if selector is None and not opts.urn:
849
+ raise TypeError("Missing required property 'selector'")
850
+ __props__.__dict__["selector"] = selector
851
+ if service_account is None and not opts.urn:
852
+ raise TypeError("Missing required property 'service_account'")
853
+ __props__.__dict__["service_account"] = service_account
854
+ __props__.__dict__["suspended"] = suspended
855
+ __props__.__dict__["create_time"] = None
856
+ __props__.__dict__["effective_annotations"] = None
857
+ __props__.__dict__["effective_labels"] = None
858
+ __props__.__dict__["etag"] = None
859
+ __props__.__dict__["pulumi_labels"] = None
860
+ __props__.__dict__["uid"] = None
861
+ __props__.__dict__["update_time"] = None
862
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
863
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
864
+ super(Automation, __self__).__init__(
865
+ 'gcp:clouddeploy/automation:Automation',
866
+ resource_name,
867
+ __props__,
868
+ opts)
869
+
870
+ @staticmethod
871
+ def get(resource_name: str,
872
+ id: pulumi.Input[str],
873
+ opts: Optional[pulumi.ResourceOptions] = None,
874
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
875
+ create_time: Optional[pulumi.Input[str]] = None,
876
+ delivery_pipeline: Optional[pulumi.Input[str]] = None,
877
+ description: Optional[pulumi.Input[str]] = None,
878
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
879
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
880
+ etag: Optional[pulumi.Input[str]] = None,
881
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
882
+ location: Optional[pulumi.Input[str]] = None,
883
+ name: Optional[pulumi.Input[str]] = None,
884
+ project: Optional[pulumi.Input[str]] = None,
885
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
886
+ rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AutomationRuleArgs']]]]] = None,
887
+ selector: Optional[pulumi.Input[pulumi.InputType['AutomationSelectorArgs']]] = None,
888
+ service_account: Optional[pulumi.Input[str]] = None,
889
+ suspended: Optional[pulumi.Input[bool]] = None,
890
+ uid: Optional[pulumi.Input[str]] = None,
891
+ update_time: Optional[pulumi.Input[str]] = None) -> 'Automation':
892
+ """
893
+ Get an existing Automation resource's state with the given name, id, and optional extra
894
+ properties used to qualify the lookup.
895
+
896
+ :param str resource_name: The unique name of the resulting resource.
897
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
898
+ :param pulumi.ResourceOptions opts: Options for the resource.
899
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] annotations: Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.
900
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
901
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
902
+ :param pulumi.Input[str] create_time: Output only. Time at which the automation was created.
903
+ :param pulumi.Input[str] delivery_pipeline: The delivery_pipeline for the resource
904
+ :param pulumi.Input[str] description: Optional. Description of the `Automation`. Max length is 255 characters.
905
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_annotations: All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through
906
+ Terraform, other clients and services.
907
+ :param pulumi.Input[Mapping[str, pulumi.Input[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.
908
+ :param pulumi.Input[str] etag: Optional. The weak etag of the `Automation` 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.
909
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters.
910
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
911
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
912
+ :param pulumi.Input[str] location: The location for the resource
913
+ :param pulumi.Input[str] name: Name of the `Automation`.
914
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
915
+ If it is not provided, the provider project is used.
916
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
917
+ and default labels configured on the provider.
918
+ :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['AutomationRuleArgs']]]] rules: Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.
919
+ Structure is documented below.
920
+ :param pulumi.Input[pulumi.InputType['AutomationSelectorArgs']] selector: Required. Selected resources to which the automation will be applied.
921
+ Structure is documented below.
922
+ :param pulumi.Input[str] service_account: Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
923
+ :param pulumi.Input[bool] suspended: Optional. When Suspended, automation is deactivated from execution.
924
+ :param pulumi.Input[str] uid: Output only. Unique identifier of the `Automation`.
925
+ :param pulumi.Input[str] update_time: Output only. Time at which the automation was updated.
926
+ """
927
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
928
+
929
+ __props__ = _AutomationState.__new__(_AutomationState)
930
+
931
+ __props__.__dict__["annotations"] = annotations
932
+ __props__.__dict__["create_time"] = create_time
933
+ __props__.__dict__["delivery_pipeline"] = delivery_pipeline
934
+ __props__.__dict__["description"] = description
935
+ __props__.__dict__["effective_annotations"] = effective_annotations
936
+ __props__.__dict__["effective_labels"] = effective_labels
937
+ __props__.__dict__["etag"] = etag
938
+ __props__.__dict__["labels"] = labels
939
+ __props__.__dict__["location"] = location
940
+ __props__.__dict__["name"] = name
941
+ __props__.__dict__["project"] = project
942
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
943
+ __props__.__dict__["rules"] = rules
944
+ __props__.__dict__["selector"] = selector
945
+ __props__.__dict__["service_account"] = service_account
946
+ __props__.__dict__["suspended"] = suspended
947
+ __props__.__dict__["uid"] = uid
948
+ __props__.__dict__["update_time"] = update_time
949
+ return Automation(resource_name, opts=opts, __props__=__props__)
950
+
951
+ @property
952
+ @pulumi.getter
953
+ def annotations(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
954
+ """
955
+ Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.
956
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
957
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
958
+ """
959
+ return pulumi.get(self, "annotations")
960
+
961
+ @property
962
+ @pulumi.getter(name="createTime")
963
+ def create_time(self) -> pulumi.Output[str]:
964
+ """
965
+ Output only. Time at which the automation was created.
966
+ """
967
+ return pulumi.get(self, "create_time")
968
+
969
+ @property
970
+ @pulumi.getter(name="deliveryPipeline")
971
+ def delivery_pipeline(self) -> pulumi.Output[str]:
972
+ """
973
+ The delivery_pipeline for the resource
974
+ """
975
+ return pulumi.get(self, "delivery_pipeline")
976
+
977
+ @property
978
+ @pulumi.getter
979
+ def description(self) -> pulumi.Output[Optional[str]]:
980
+ """
981
+ Optional. Description of the `Automation`. Max length is 255 characters.
982
+ """
983
+ return pulumi.get(self, "description")
984
+
985
+ @property
986
+ @pulumi.getter(name="effectiveAnnotations")
987
+ def effective_annotations(self) -> pulumi.Output[Mapping[str, str]]:
988
+ """
989
+ All of annotations (key/value pairs) present on the resource in GCP, including the annotations configured through
990
+ Terraform, other clients and services.
991
+ """
992
+ return pulumi.get(self, "effective_annotations")
993
+
994
+ @property
995
+ @pulumi.getter(name="effectiveLabels")
996
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
997
+ """
998
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
999
+ """
1000
+ return pulumi.get(self, "effective_labels")
1001
+
1002
+ @property
1003
+ @pulumi.getter
1004
+ def etag(self) -> pulumi.Output[str]:
1005
+ """
1006
+ Optional. The weak etag of the `Automation` 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.
1007
+ """
1008
+ return pulumi.get(self, "etag")
1009
+
1010
+ @property
1011
+ @pulumi.getter
1012
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1013
+ """
1014
+ Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 63 characters.
1015
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
1016
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
1017
+ """
1018
+ return pulumi.get(self, "labels")
1019
+
1020
+ @property
1021
+ @pulumi.getter
1022
+ def location(self) -> pulumi.Output[str]:
1023
+ """
1024
+ The location for the resource
1025
+ """
1026
+ return pulumi.get(self, "location")
1027
+
1028
+ @property
1029
+ @pulumi.getter
1030
+ def name(self) -> pulumi.Output[str]:
1031
+ """
1032
+ Name of the `Automation`.
1033
+ """
1034
+ return pulumi.get(self, "name")
1035
+
1036
+ @property
1037
+ @pulumi.getter
1038
+ def project(self) -> pulumi.Output[str]:
1039
+ """
1040
+ The ID of the project in which the resource belongs.
1041
+ If it is not provided, the provider project is used.
1042
+ """
1043
+ return pulumi.get(self, "project")
1044
+
1045
+ @property
1046
+ @pulumi.getter(name="pulumiLabels")
1047
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
1048
+ """
1049
+ The combination of labels configured directly on the resource
1050
+ and default labels configured on the provider.
1051
+ """
1052
+ return pulumi.get(self, "pulumi_labels")
1053
+
1054
+ @property
1055
+ @pulumi.getter
1056
+ def rules(self) -> pulumi.Output[Sequence['outputs.AutomationRule']]:
1057
+ """
1058
+ Required. List of Automation rules associated with the Automation resource. Must have at least one rule and limited to 250 rules per Delivery Pipeline. Note: the order of the rules here is not the same as the order of execution.
1059
+ Structure is documented below.
1060
+ """
1061
+ return pulumi.get(self, "rules")
1062
+
1063
+ @property
1064
+ @pulumi.getter
1065
+ def selector(self) -> pulumi.Output['outputs.AutomationSelector']:
1066
+ """
1067
+ Required. Selected resources to which the automation will be applied.
1068
+ Structure is documented below.
1069
+ """
1070
+ return pulumi.get(self, "selector")
1071
+
1072
+ @property
1073
+ @pulumi.getter(name="serviceAccount")
1074
+ def service_account(self) -> pulumi.Output[str]:
1075
+ """
1076
+ Required. Email address of the user-managed IAM service account that creates Cloud Deploy release and rollout resources.
1077
+ """
1078
+ return pulumi.get(self, "service_account")
1079
+
1080
+ @property
1081
+ @pulumi.getter
1082
+ def suspended(self) -> pulumi.Output[Optional[bool]]:
1083
+ """
1084
+ Optional. When Suspended, automation is deactivated from execution.
1085
+ """
1086
+ return pulumi.get(self, "suspended")
1087
+
1088
+ @property
1089
+ @pulumi.getter
1090
+ def uid(self) -> pulumi.Output[str]:
1091
+ """
1092
+ Output only. Unique identifier of the `Automation`.
1093
+ """
1094
+ return pulumi.get(self, "uid")
1095
+
1096
+ @property
1097
+ @pulumi.getter(name="updateTime")
1098
+ def update_time(self) -> pulumi.Output[str]:
1099
+ """
1100
+ Output only. Time at which the automation was updated.
1101
+ """
1102
+ return pulumi.get(self, "update_time")
1103
+