pulumi-gcp 9.2.0__py3-none-any.whl → 9.3.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 (76) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/apigee/__init__.py +1 -0
  3. pulumi_gcp/apigee/api_deployment.py +372 -0
  4. pulumi_gcp/apihub/plugin.py +1 -1
  5. pulumi_gcp/artifactregistry/__init__.py +2 -0
  6. pulumi_gcp/artifactregistry/get_maven_artifacts.py +164 -0
  7. pulumi_gcp/artifactregistry/get_npm_packages.py +164 -0
  8. pulumi_gcp/artifactregistry/outputs.py +165 -0
  9. pulumi_gcp/cloudrunv2/_inputs.py +823 -15
  10. pulumi_gcp/cloudrunv2/outputs.py +1749 -743
  11. pulumi_gcp/cloudrunv2/worker_pool.py +110 -0
  12. pulumi_gcp/compute/_inputs.py +28 -0
  13. pulumi_gcp/compute/outputs.py +20 -1
  14. pulumi_gcp/compute/vpn_tunnel.py +97 -23
  15. pulumi_gcp/compute/wire_group.py +2 -0
  16. pulumi_gcp/dataloss/_inputs.py +970 -30
  17. pulumi_gcp/dataloss/outputs.py +850 -20
  18. pulumi_gcp/dataloss/prevention_discovery_config.py +54 -0
  19. pulumi_gcp/diagflow/_inputs.py +66 -0
  20. pulumi_gcp/diagflow/conversation_profile.py +84 -0
  21. pulumi_gcp/diagflow/outputs.py +57 -0
  22. pulumi_gcp/discoveryengine/__init__.py +1 -0
  23. pulumi_gcp/discoveryengine/_inputs.py +187 -0
  24. pulumi_gcp/discoveryengine/data_connector.py +1368 -0
  25. pulumi_gcp/discoveryengine/outputs.py +135 -0
  26. pulumi_gcp/discoveryengine/search_engine.py +47 -0
  27. pulumi_gcp/gkebackup/_inputs.py +111 -0
  28. pulumi_gcp/gkebackup/backup_plan.py +72 -0
  29. pulumi_gcp/gkebackup/outputs.py +84 -0
  30. pulumi_gcp/kms/__init__.py +1 -0
  31. pulumi_gcp/kms/_inputs.py +43 -0
  32. pulumi_gcp/kms/organization_kaj_policy_config.py +290 -0
  33. pulumi_gcp/kms/outputs.py +43 -0
  34. pulumi_gcp/logging/metric.py +2 -2
  35. pulumi_gcp/looker/instance.py +51 -0
  36. pulumi_gcp/managedkafka/connect_cluster.py +20 -82
  37. pulumi_gcp/managedkafka/connector.py +24 -94
  38. pulumi_gcp/netapp/_inputs.py +28 -5
  39. pulumi_gcp/netapp/outputs.py +19 -3
  40. pulumi_gcp/netapp/storage_pool.py +56 -0
  41. pulumi_gcp/netapp/volume.py +28 -0
  42. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  43. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +211 -23
  44. pulumi_gcp/oracledatabase/odb_network.py +101 -2
  45. pulumi_gcp/orgpolicy/policy.py +2 -2
  46. pulumi_gcp/privilegedaccessmanager/_inputs.py +27 -4
  47. pulumi_gcp/privilegedaccessmanager/outputs.py +31 -6
  48. pulumi_gcp/pubsub/get_subscription.py +12 -1
  49. pulumi_gcp/pubsub/get_topic.py +15 -4
  50. pulumi_gcp/pubsub/subscription.py +153 -7
  51. pulumi_gcp/pubsub/topic.py +145 -3
  52. pulumi_gcp/pulumi-plugin.json +1 -1
  53. pulumi_gcp/saasruntime/__init__.py +1 -0
  54. pulumi_gcp/saasruntime/_inputs.py +60 -0
  55. pulumi_gcp/saasruntime/outputs.py +55 -0
  56. pulumi_gcp/saasruntime/rollout_kind.py +1086 -0
  57. pulumi_gcp/sql/_inputs.py +122 -3
  58. pulumi_gcp/sql/database_instance.py +47 -0
  59. pulumi_gcp/sql/get_database_instance.py +12 -1
  60. pulumi_gcp/sql/outputs.py +233 -2
  61. pulumi_gcp/storage/bucket.py +52 -24
  62. pulumi_gcp/storage/get_insights_dataset_config.py +12 -1
  63. pulumi_gcp/storage/insights_dataset_config.py +49 -0
  64. pulumi_gcp/storage/insights_report_config.py +47 -0
  65. pulumi_gcp/vertex/_inputs.py +339 -1
  66. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  67. pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +102 -0
  68. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  69. pulumi_gcp/vertex/ai_index.py +74 -2
  70. pulumi_gcp/vertex/ai_index_endpoint.py +54 -0
  71. pulumi_gcp/vertex/get_ai_index.py +12 -1
  72. pulumi_gcp/vertex/outputs.py +303 -1
  73. {pulumi_gcp-9.2.0.dist-info → pulumi_gcp-9.3.0.dist-info}/METADATA +1 -1
  74. {pulumi_gcp-9.2.0.dist-info → pulumi_gcp-9.3.0.dist-info}/RECORD +76 -70
  75. {pulumi_gcp-9.2.0.dist-info → pulumi_gcp-9.3.0.dist-info}/WHEEL +0 -0
  76. {pulumi_gcp-9.2.0.dist-info → pulumi_gcp-9.3.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1086 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['RolloutKindArgs', 'RolloutKind']
20
+
21
+ @pulumi.input_type
22
+ class RolloutKindArgs:
23
+ def __init__(__self__, *,
24
+ location: pulumi.Input[_builtins.str],
25
+ rollout_kind_id: pulumi.Input[_builtins.str],
26
+ unit_kind: pulumi.Input[_builtins.str],
27
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
28
+ error_budget: Optional[pulumi.Input['RolloutKindErrorBudgetArgs']] = None,
29
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
30
+ project: Optional[pulumi.Input[_builtins.str]] = None,
31
+ rollout_orchestration_strategy: Optional[pulumi.Input[_builtins.str]] = None,
32
+ unit_filter: Optional[pulumi.Input[_builtins.str]] = None,
33
+ update_unit_kind_strategy: Optional[pulumi.Input[_builtins.str]] = None):
34
+ """
35
+ The set of arguments for constructing a RolloutKind resource.
36
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
37
+ :param pulumi.Input[_builtins.str] rollout_kind_id: The ID value for the new rollout kind.
38
+ :param pulumi.Input[_builtins.str] unit_kind: UnitKind that this rollout kind corresponds to. Rollouts stemming from this
39
+ rollout kind will target the units of this unit kind. In other words, this
40
+ defines the population of target units to be upgraded by rollouts.
41
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
42
+ may be set by external tools to store and retrieve arbitrary metadata.
43
+ They are not queryable and should be preserved when modifying objects.
44
+ More info: https://kubernetes.io/docs/user-guide/annotations
45
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
46
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
47
+ :param pulumi.Input['RolloutKindErrorBudgetArgs'] error_budget: The configuration for error budget. If the number of failed units exceeds
48
+ max(allowed_count, allowed_ratio * total_units), the rollout will be paused.
49
+ Structure is documented below.
50
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
51
+ similar to Kubernetes resource labels.
52
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
53
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
54
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
55
+ If it is not provided, the provider project is used.
56
+ :param pulumi.Input[_builtins.str] rollout_orchestration_strategy: The strategy used for executing a Rollout. This is a required field.
57
+ There are two supported values strategies which are used to control a rollout.
58
+ - "Google.Cloud.Simple.AllAtOnce"
59
+ - "Google.Cloud.Simple.OneLocationAtATime"
60
+ A rollout with one of these simple strategies will rollout across
61
+ all locations defined in the associated UnitKind's Saas Locations.
62
+ :param pulumi.Input[_builtins.str] unit_filter: CEL(https://github.com/google/cel-spec) formatted filter string against
63
+ Unit. The filter will be applied to determine the eligible unit population.
64
+ This filter can only reduce, but not expand the scope of the rollout.
65
+ :param pulumi.Input[_builtins.str] update_unit_kind_strategy: The config for updating the unit kind. By default, the unit kind will be
66
+ updated on the rollout start.
67
+ Possible values:
68
+ UPDATE_UNIT_KIND_STRATEGY_ON_START
69
+ UPDATE_UNIT_KIND_STRATEGY_NEVER
70
+ Possible values are: `UPDATE_UNIT_KIND_STRATEGY_ON_START`, `UPDATE_UNIT_KIND_STRATEGY_NEVER`.
71
+ """
72
+ pulumi.set(__self__, "location", location)
73
+ pulumi.set(__self__, "rollout_kind_id", rollout_kind_id)
74
+ pulumi.set(__self__, "unit_kind", unit_kind)
75
+ if annotations is not None:
76
+ pulumi.set(__self__, "annotations", annotations)
77
+ if error_budget is not None:
78
+ pulumi.set(__self__, "error_budget", error_budget)
79
+ if labels is not None:
80
+ pulumi.set(__self__, "labels", labels)
81
+ if project is not None:
82
+ pulumi.set(__self__, "project", project)
83
+ if rollout_orchestration_strategy is not None:
84
+ pulumi.set(__self__, "rollout_orchestration_strategy", rollout_orchestration_strategy)
85
+ if unit_filter is not None:
86
+ pulumi.set(__self__, "unit_filter", unit_filter)
87
+ if update_unit_kind_strategy is not None:
88
+ pulumi.set(__self__, "update_unit_kind_strategy", update_unit_kind_strategy)
89
+
90
+ @_builtins.property
91
+ @pulumi.getter
92
+ def location(self) -> pulumi.Input[_builtins.str]:
93
+ """
94
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
95
+ """
96
+ return pulumi.get(self, "location")
97
+
98
+ @location.setter
99
+ def location(self, value: pulumi.Input[_builtins.str]):
100
+ pulumi.set(self, "location", value)
101
+
102
+ @_builtins.property
103
+ @pulumi.getter(name="rolloutKindId")
104
+ def rollout_kind_id(self) -> pulumi.Input[_builtins.str]:
105
+ """
106
+ The ID value for the new rollout kind.
107
+ """
108
+ return pulumi.get(self, "rollout_kind_id")
109
+
110
+ @rollout_kind_id.setter
111
+ def rollout_kind_id(self, value: pulumi.Input[_builtins.str]):
112
+ pulumi.set(self, "rollout_kind_id", value)
113
+
114
+ @_builtins.property
115
+ @pulumi.getter(name="unitKind")
116
+ def unit_kind(self) -> pulumi.Input[_builtins.str]:
117
+ """
118
+ UnitKind that this rollout kind corresponds to. Rollouts stemming from this
119
+ rollout kind will target the units of this unit kind. In other words, this
120
+ defines the population of target units to be upgraded by rollouts.
121
+ """
122
+ return pulumi.get(self, "unit_kind")
123
+
124
+ @unit_kind.setter
125
+ def unit_kind(self, value: pulumi.Input[_builtins.str]):
126
+ pulumi.set(self, "unit_kind", value)
127
+
128
+ @_builtins.property
129
+ @pulumi.getter
130
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
131
+ """
132
+ Annotations is an unstructured key-value map stored with a resource that
133
+ may be set by external tools to store and retrieve arbitrary metadata.
134
+ They are not queryable and should be preserved when modifying objects.
135
+ More info: https://kubernetes.io/docs/user-guide/annotations
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[_builtins.str]]]]):
143
+ pulumi.set(self, "annotations", value)
144
+
145
+ @_builtins.property
146
+ @pulumi.getter(name="errorBudget")
147
+ def error_budget(self) -> Optional[pulumi.Input['RolloutKindErrorBudgetArgs']]:
148
+ """
149
+ The configuration for error budget. If the number of failed units exceeds
150
+ max(allowed_count, allowed_ratio * total_units), the rollout will be paused.
151
+ Structure is documented below.
152
+ """
153
+ return pulumi.get(self, "error_budget")
154
+
155
+ @error_budget.setter
156
+ def error_budget(self, value: Optional[pulumi.Input['RolloutKindErrorBudgetArgs']]):
157
+ pulumi.set(self, "error_budget", value)
158
+
159
+ @_builtins.property
160
+ @pulumi.getter
161
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
162
+ """
163
+ The labels on the resource, which can be used for categorization.
164
+ similar to Kubernetes resource labels.
165
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
166
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
167
+ """
168
+ return pulumi.get(self, "labels")
169
+
170
+ @labels.setter
171
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
172
+ pulumi.set(self, "labels", value)
173
+
174
+ @_builtins.property
175
+ @pulumi.getter
176
+ def project(self) -> Optional[pulumi.Input[_builtins.str]]:
177
+ """
178
+ The ID of the project in which the resource belongs.
179
+ If it is not provided, the provider project is used.
180
+ """
181
+ return pulumi.get(self, "project")
182
+
183
+ @project.setter
184
+ def project(self, value: Optional[pulumi.Input[_builtins.str]]):
185
+ pulumi.set(self, "project", value)
186
+
187
+ @_builtins.property
188
+ @pulumi.getter(name="rolloutOrchestrationStrategy")
189
+ def rollout_orchestration_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
190
+ """
191
+ The strategy used for executing a Rollout. This is a required field.
192
+ There are two supported values strategies which are used to control a rollout.
193
+ - "Google.Cloud.Simple.AllAtOnce"
194
+ - "Google.Cloud.Simple.OneLocationAtATime"
195
+ A rollout with one of these simple strategies will rollout across
196
+ all locations defined in the associated UnitKind's Saas Locations.
197
+ """
198
+ return pulumi.get(self, "rollout_orchestration_strategy")
199
+
200
+ @rollout_orchestration_strategy.setter
201
+ def rollout_orchestration_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
202
+ pulumi.set(self, "rollout_orchestration_strategy", value)
203
+
204
+ @_builtins.property
205
+ @pulumi.getter(name="unitFilter")
206
+ def unit_filter(self) -> Optional[pulumi.Input[_builtins.str]]:
207
+ """
208
+ CEL(https://github.com/google/cel-spec) formatted filter string against
209
+ Unit. The filter will be applied to determine the eligible unit population.
210
+ This filter can only reduce, but not expand the scope of the rollout.
211
+ """
212
+ return pulumi.get(self, "unit_filter")
213
+
214
+ @unit_filter.setter
215
+ def unit_filter(self, value: Optional[pulumi.Input[_builtins.str]]):
216
+ pulumi.set(self, "unit_filter", value)
217
+
218
+ @_builtins.property
219
+ @pulumi.getter(name="updateUnitKindStrategy")
220
+ def update_unit_kind_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
221
+ """
222
+ The config for updating the unit kind. By default, the unit kind will be
223
+ updated on the rollout start.
224
+ Possible values:
225
+ UPDATE_UNIT_KIND_STRATEGY_ON_START
226
+ UPDATE_UNIT_KIND_STRATEGY_NEVER
227
+ Possible values are: `UPDATE_UNIT_KIND_STRATEGY_ON_START`, `UPDATE_UNIT_KIND_STRATEGY_NEVER`.
228
+ """
229
+ return pulumi.get(self, "update_unit_kind_strategy")
230
+
231
+ @update_unit_kind_strategy.setter
232
+ def update_unit_kind_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
233
+ pulumi.set(self, "update_unit_kind_strategy", value)
234
+
235
+
236
+ @pulumi.input_type
237
+ class _RolloutKindState:
238
+ def __init__(__self__, *,
239
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
240
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
241
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
242
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
243
+ error_budget: Optional[pulumi.Input['RolloutKindErrorBudgetArgs']] = None,
244
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
245
+ location: Optional[pulumi.Input[_builtins.str]] = None,
246
+ name: Optional[pulumi.Input[_builtins.str]] = None,
247
+ project: Optional[pulumi.Input[_builtins.str]] = None,
248
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
249
+ rollout_kind_id: Optional[pulumi.Input[_builtins.str]] = None,
250
+ rollout_orchestration_strategy: Optional[pulumi.Input[_builtins.str]] = None,
251
+ uid: Optional[pulumi.Input[_builtins.str]] = None,
252
+ unit_filter: Optional[pulumi.Input[_builtins.str]] = None,
253
+ unit_kind: Optional[pulumi.Input[_builtins.str]] = None,
254
+ update_time: Optional[pulumi.Input[_builtins.str]] = None,
255
+ update_unit_kind_strategy: Optional[pulumi.Input[_builtins.str]] = None):
256
+ """
257
+ Input properties used for looking up and filtering RolloutKind resources.
258
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
259
+ may be set by external tools to store and retrieve arbitrary metadata.
260
+ They are not queryable and should be preserved when modifying objects.
261
+ More info: https://kubernetes.io/docs/user-guide/annotations
262
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
263
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
264
+ :param pulumi.Input[_builtins.str] create_time: The timestamp when the resource was created.
265
+ :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.
266
+ :param pulumi.Input['RolloutKindErrorBudgetArgs'] error_budget: The configuration for error budget. If the number of failed units exceeds
267
+ max(allowed_count, allowed_ratio * total_units), the rollout will be paused.
268
+ Structure is documented below.
269
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
270
+ similar to Kubernetes resource labels.
271
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
272
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
273
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
274
+ :param pulumi.Input[_builtins.str] name: Identifier. The resource name (full URI of the resource) following the standard naming
275
+ scheme:
276
+ "projects/{project}/locations/{location}/rolloutKinds/{rollout_kind_id}"
277
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
278
+ If it is not provided, the provider project is used.
279
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
280
+ and default labels configured on the provider.
281
+ :param pulumi.Input[_builtins.str] rollout_kind_id: The ID value for the new rollout kind.
282
+ :param pulumi.Input[_builtins.str] rollout_orchestration_strategy: The strategy used for executing a Rollout. This is a required field.
283
+ There are two supported values strategies which are used to control a rollout.
284
+ - "Google.Cloud.Simple.AllAtOnce"
285
+ - "Google.Cloud.Simple.OneLocationAtATime"
286
+ A rollout with one of these simple strategies will rollout across
287
+ all locations defined in the associated UnitKind's Saas Locations.
288
+ :param pulumi.Input[_builtins.str] uid: The unique identifier of the resource. UID is unique in the time
289
+ and space for this resource within the scope of the service. It is
290
+ typically generated by the server on successful creation of a resource
291
+ and must not be changed. UID is used to uniquely identify resources
292
+ with resource name reuses. This should be a UUID4.
293
+ :param pulumi.Input[_builtins.str] unit_filter: CEL(https://github.com/google/cel-spec) formatted filter string against
294
+ Unit. The filter will be applied to determine the eligible unit population.
295
+ This filter can only reduce, but not expand the scope of the rollout.
296
+ :param pulumi.Input[_builtins.str] unit_kind: UnitKind that this rollout kind corresponds to. Rollouts stemming from this
297
+ rollout kind will target the units of this unit kind. In other words, this
298
+ defines the population of target units to be upgraded by rollouts.
299
+ :param pulumi.Input[_builtins.str] update_time: The timestamp when the resource was last updated. Any
300
+ change to the resource made by users must refresh this value.
301
+ Changes to a resource made by the service should refresh this value.
302
+ :param pulumi.Input[_builtins.str] update_unit_kind_strategy: The config for updating the unit kind. By default, the unit kind will be
303
+ updated on the rollout start.
304
+ Possible values:
305
+ UPDATE_UNIT_KIND_STRATEGY_ON_START
306
+ UPDATE_UNIT_KIND_STRATEGY_NEVER
307
+ Possible values are: `UPDATE_UNIT_KIND_STRATEGY_ON_START`, `UPDATE_UNIT_KIND_STRATEGY_NEVER`.
308
+ """
309
+ if annotations is not None:
310
+ pulumi.set(__self__, "annotations", annotations)
311
+ if create_time is not None:
312
+ pulumi.set(__self__, "create_time", create_time)
313
+ if effective_annotations is not None:
314
+ pulumi.set(__self__, "effective_annotations", effective_annotations)
315
+ if effective_labels is not None:
316
+ pulumi.set(__self__, "effective_labels", effective_labels)
317
+ if error_budget is not None:
318
+ pulumi.set(__self__, "error_budget", error_budget)
319
+ if labels is not None:
320
+ pulumi.set(__self__, "labels", labels)
321
+ if location is not None:
322
+ pulumi.set(__self__, "location", location)
323
+ if name is not None:
324
+ pulumi.set(__self__, "name", name)
325
+ if project is not None:
326
+ pulumi.set(__self__, "project", project)
327
+ if pulumi_labels is not None:
328
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
329
+ if rollout_kind_id is not None:
330
+ pulumi.set(__self__, "rollout_kind_id", rollout_kind_id)
331
+ if rollout_orchestration_strategy is not None:
332
+ pulumi.set(__self__, "rollout_orchestration_strategy", rollout_orchestration_strategy)
333
+ if uid is not None:
334
+ pulumi.set(__self__, "uid", uid)
335
+ if unit_filter is not None:
336
+ pulumi.set(__self__, "unit_filter", unit_filter)
337
+ if unit_kind is not None:
338
+ pulumi.set(__self__, "unit_kind", unit_kind)
339
+ if update_time is not None:
340
+ pulumi.set(__self__, "update_time", update_time)
341
+ if update_unit_kind_strategy is not None:
342
+ pulumi.set(__self__, "update_unit_kind_strategy", update_unit_kind_strategy)
343
+
344
+ @_builtins.property
345
+ @pulumi.getter
346
+ def annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
347
+ """
348
+ Annotations is an unstructured key-value map stored with a resource that
349
+ may be set by external tools to store and retrieve arbitrary metadata.
350
+ They are not queryable and should be preserved when modifying objects.
351
+ More info: https://kubernetes.io/docs/user-guide/annotations
352
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
353
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
354
+ """
355
+ return pulumi.get(self, "annotations")
356
+
357
+ @annotations.setter
358
+ def annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
359
+ pulumi.set(self, "annotations", value)
360
+
361
+ @_builtins.property
362
+ @pulumi.getter(name="createTime")
363
+ def create_time(self) -> Optional[pulumi.Input[_builtins.str]]:
364
+ """
365
+ The timestamp when the resource was created.
366
+ """
367
+ return pulumi.get(self, "create_time")
368
+
369
+ @create_time.setter
370
+ def create_time(self, value: Optional[pulumi.Input[_builtins.str]]):
371
+ pulumi.set(self, "create_time", value)
372
+
373
+ @_builtins.property
374
+ @pulumi.getter(name="effectiveAnnotations")
375
+ def effective_annotations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
376
+ return pulumi.get(self, "effective_annotations")
377
+
378
+ @effective_annotations.setter
379
+ def effective_annotations(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
380
+ pulumi.set(self, "effective_annotations", value)
381
+
382
+ @_builtins.property
383
+ @pulumi.getter(name="effectiveLabels")
384
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
385
+ """
386
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
387
+ """
388
+ return pulumi.get(self, "effective_labels")
389
+
390
+ @effective_labels.setter
391
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
392
+ pulumi.set(self, "effective_labels", value)
393
+
394
+ @_builtins.property
395
+ @pulumi.getter(name="errorBudget")
396
+ def error_budget(self) -> Optional[pulumi.Input['RolloutKindErrorBudgetArgs']]:
397
+ """
398
+ The configuration for error budget. If the number of failed units exceeds
399
+ max(allowed_count, allowed_ratio * total_units), the rollout will be paused.
400
+ Structure is documented below.
401
+ """
402
+ return pulumi.get(self, "error_budget")
403
+
404
+ @error_budget.setter
405
+ def error_budget(self, value: Optional[pulumi.Input['RolloutKindErrorBudgetArgs']]):
406
+ pulumi.set(self, "error_budget", value)
407
+
408
+ @_builtins.property
409
+ @pulumi.getter
410
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
411
+ """
412
+ The labels on the resource, which can be used for categorization.
413
+ similar to Kubernetes resource labels.
414
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
415
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
416
+ """
417
+ return pulumi.get(self, "labels")
418
+
419
+ @labels.setter
420
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
421
+ pulumi.set(self, "labels", value)
422
+
423
+ @_builtins.property
424
+ @pulumi.getter
425
+ def location(self) -> Optional[pulumi.Input[_builtins.str]]:
426
+ """
427
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
428
+ """
429
+ return pulumi.get(self, "location")
430
+
431
+ @location.setter
432
+ def location(self, value: Optional[pulumi.Input[_builtins.str]]):
433
+ pulumi.set(self, "location", value)
434
+
435
+ @_builtins.property
436
+ @pulumi.getter
437
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
438
+ """
439
+ Identifier. The resource name (full URI of the resource) following the standard naming
440
+ scheme:
441
+ "projects/{project}/locations/{location}/rolloutKinds/{rollout_kind_id}"
442
+ """
443
+ return pulumi.get(self, "name")
444
+
445
+ @name.setter
446
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
447
+ pulumi.set(self, "name", value)
448
+
449
+ @_builtins.property
450
+ @pulumi.getter
451
+ def project(self) -> Optional[pulumi.Input[_builtins.str]]:
452
+ """
453
+ The ID of the project in which the resource belongs.
454
+ If it is not provided, the provider project is used.
455
+ """
456
+ return pulumi.get(self, "project")
457
+
458
+ @project.setter
459
+ def project(self, value: Optional[pulumi.Input[_builtins.str]]):
460
+ pulumi.set(self, "project", value)
461
+
462
+ @_builtins.property
463
+ @pulumi.getter(name="pulumiLabels")
464
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
465
+ """
466
+ The combination of labels configured directly on the resource
467
+ and default labels configured on the provider.
468
+ """
469
+ return pulumi.get(self, "pulumi_labels")
470
+
471
+ @pulumi_labels.setter
472
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
473
+ pulumi.set(self, "pulumi_labels", value)
474
+
475
+ @_builtins.property
476
+ @pulumi.getter(name="rolloutKindId")
477
+ def rollout_kind_id(self) -> Optional[pulumi.Input[_builtins.str]]:
478
+ """
479
+ The ID value for the new rollout kind.
480
+ """
481
+ return pulumi.get(self, "rollout_kind_id")
482
+
483
+ @rollout_kind_id.setter
484
+ def rollout_kind_id(self, value: Optional[pulumi.Input[_builtins.str]]):
485
+ pulumi.set(self, "rollout_kind_id", value)
486
+
487
+ @_builtins.property
488
+ @pulumi.getter(name="rolloutOrchestrationStrategy")
489
+ def rollout_orchestration_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
490
+ """
491
+ The strategy used for executing a Rollout. This is a required field.
492
+ There are two supported values strategies which are used to control a rollout.
493
+ - "Google.Cloud.Simple.AllAtOnce"
494
+ - "Google.Cloud.Simple.OneLocationAtATime"
495
+ A rollout with one of these simple strategies will rollout across
496
+ all locations defined in the associated UnitKind's Saas Locations.
497
+ """
498
+ return pulumi.get(self, "rollout_orchestration_strategy")
499
+
500
+ @rollout_orchestration_strategy.setter
501
+ def rollout_orchestration_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
502
+ pulumi.set(self, "rollout_orchestration_strategy", value)
503
+
504
+ @_builtins.property
505
+ @pulumi.getter
506
+ def uid(self) -> Optional[pulumi.Input[_builtins.str]]:
507
+ """
508
+ The unique identifier of the resource. UID is unique in the time
509
+ and space for this resource within the scope of the service. It is
510
+ typically generated by the server on successful creation of a resource
511
+ and must not be changed. UID is used to uniquely identify resources
512
+ with resource name reuses. This should be a UUID4.
513
+ """
514
+ return pulumi.get(self, "uid")
515
+
516
+ @uid.setter
517
+ def uid(self, value: Optional[pulumi.Input[_builtins.str]]):
518
+ pulumi.set(self, "uid", value)
519
+
520
+ @_builtins.property
521
+ @pulumi.getter(name="unitFilter")
522
+ def unit_filter(self) -> Optional[pulumi.Input[_builtins.str]]:
523
+ """
524
+ CEL(https://github.com/google/cel-spec) formatted filter string against
525
+ Unit. The filter will be applied to determine the eligible unit population.
526
+ This filter can only reduce, but not expand the scope of the rollout.
527
+ """
528
+ return pulumi.get(self, "unit_filter")
529
+
530
+ @unit_filter.setter
531
+ def unit_filter(self, value: Optional[pulumi.Input[_builtins.str]]):
532
+ pulumi.set(self, "unit_filter", value)
533
+
534
+ @_builtins.property
535
+ @pulumi.getter(name="unitKind")
536
+ def unit_kind(self) -> Optional[pulumi.Input[_builtins.str]]:
537
+ """
538
+ UnitKind that this rollout kind corresponds to. Rollouts stemming from this
539
+ rollout kind will target the units of this unit kind. In other words, this
540
+ defines the population of target units to be upgraded by rollouts.
541
+ """
542
+ return pulumi.get(self, "unit_kind")
543
+
544
+ @unit_kind.setter
545
+ def unit_kind(self, value: Optional[pulumi.Input[_builtins.str]]):
546
+ pulumi.set(self, "unit_kind", value)
547
+
548
+ @_builtins.property
549
+ @pulumi.getter(name="updateTime")
550
+ def update_time(self) -> Optional[pulumi.Input[_builtins.str]]:
551
+ """
552
+ The timestamp when the resource was last updated. Any
553
+ change to the resource made by users must refresh this value.
554
+ Changes to a resource made by the service should refresh this value.
555
+ """
556
+ return pulumi.get(self, "update_time")
557
+
558
+ @update_time.setter
559
+ def update_time(self, value: Optional[pulumi.Input[_builtins.str]]):
560
+ pulumi.set(self, "update_time", value)
561
+
562
+ @_builtins.property
563
+ @pulumi.getter(name="updateUnitKindStrategy")
564
+ def update_unit_kind_strategy(self) -> Optional[pulumi.Input[_builtins.str]]:
565
+ """
566
+ The config for updating the unit kind. By default, the unit kind will be
567
+ updated on the rollout start.
568
+ Possible values:
569
+ UPDATE_UNIT_KIND_STRATEGY_ON_START
570
+ UPDATE_UNIT_KIND_STRATEGY_NEVER
571
+ Possible values are: `UPDATE_UNIT_KIND_STRATEGY_ON_START`, `UPDATE_UNIT_KIND_STRATEGY_NEVER`.
572
+ """
573
+ return pulumi.get(self, "update_unit_kind_strategy")
574
+
575
+ @update_unit_kind_strategy.setter
576
+ def update_unit_kind_strategy(self, value: Optional[pulumi.Input[_builtins.str]]):
577
+ pulumi.set(self, "update_unit_kind_strategy", value)
578
+
579
+
580
+ @pulumi.type_token("gcp:saasruntime/rolloutKind:RolloutKind")
581
+ class RolloutKind(pulumi.CustomResource):
582
+ @overload
583
+ def __init__(__self__,
584
+ resource_name: str,
585
+ opts: Optional[pulumi.ResourceOptions] = None,
586
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
587
+ error_budget: Optional[pulumi.Input[Union['RolloutKindErrorBudgetArgs', 'RolloutKindErrorBudgetArgsDict']]] = None,
588
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
589
+ location: Optional[pulumi.Input[_builtins.str]] = None,
590
+ project: Optional[pulumi.Input[_builtins.str]] = None,
591
+ rollout_kind_id: Optional[pulumi.Input[_builtins.str]] = None,
592
+ rollout_orchestration_strategy: Optional[pulumi.Input[_builtins.str]] = None,
593
+ unit_filter: Optional[pulumi.Input[_builtins.str]] = None,
594
+ unit_kind: Optional[pulumi.Input[_builtins.str]] = None,
595
+ update_unit_kind_strategy: Optional[pulumi.Input[_builtins.str]] = None,
596
+ __props__=None):
597
+ """
598
+ A RolloutKind is a reusable configuration resource that defines the policies, strategies, and targeting for Rollout operations. It acts as a template for repeatable Rollouts, providing guardrails and ensuring that updates are executed in a consistent manner across a fleet of Units.
599
+
600
+ ## Example Usage
601
+
602
+ ### Saas Runtime Rollout Kind Basic
603
+
604
+ ```python
605
+ import pulumi
606
+ import pulumi_gcp as gcp
607
+
608
+ example_saas = gcp.saasruntime.SaaS("example_saas",
609
+ saas_id="example-saas",
610
+ location="global",
611
+ locations=[{
612
+ "name": "us-central1",
613
+ }])
614
+ example_unitkind = gcp.saasruntime.UnitKind("example_unitkind",
615
+ location="global",
616
+ unit_kind_id="example-unitkind",
617
+ saas=example_saas.id)
618
+ example = gcp.saasruntime.RolloutKind("example",
619
+ location="global",
620
+ rollout_kind_id="example-rolloutkind",
621
+ unit_kind=example_unitkind.id,
622
+ rollout_orchestration_strategy="Google.Cloud.Simple.OneLocationAtATime",
623
+ error_budget={
624
+ "allowed_count": 1,
625
+ },
626
+ unit_filter="unit.labels['key1'] == 'value1'")
627
+ ```
628
+
629
+ ## Import
630
+
631
+ RolloutKind can be imported using any of these accepted formats:
632
+
633
+ * `projects/{{project}}/locations/{{location}}/rolloutKinds/{{rollout_kind_id}}`
634
+
635
+ * `{{project}}/{{location}}/{{rollout_kind_id}}`
636
+
637
+ * `{{location}}/{{rollout_kind_id}}`
638
+
639
+ When using the `pulumi import` command, RolloutKind can be imported using one of the formats above. For example:
640
+
641
+ ```sh
642
+ $ pulumi import gcp:saasruntime/rolloutKind:RolloutKind default projects/{{project}}/locations/{{location}}/rolloutKinds/{{rollout_kind_id}}
643
+ ```
644
+
645
+ ```sh
646
+ $ pulumi import gcp:saasruntime/rolloutKind:RolloutKind default {{project}}/{{location}}/{{rollout_kind_id}}
647
+ ```
648
+
649
+ ```sh
650
+ $ pulumi import gcp:saasruntime/rolloutKind:RolloutKind default {{location}}/{{rollout_kind_id}}
651
+ ```
652
+
653
+ :param str resource_name: The name of the resource.
654
+ :param pulumi.ResourceOptions opts: Options for the resource.
655
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
656
+ may be set by external tools to store and retrieve arbitrary metadata.
657
+ They are not queryable and should be preserved when modifying objects.
658
+ More info: https://kubernetes.io/docs/user-guide/annotations
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[Union['RolloutKindErrorBudgetArgs', 'RolloutKindErrorBudgetArgsDict']] error_budget: The configuration for error budget. If the number of failed units exceeds
662
+ max(allowed_count, allowed_ratio * total_units), the rollout will be paused.
663
+ Structure is documented below.
664
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
665
+ similar to Kubernetes resource labels.
666
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
667
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
668
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
669
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
670
+ If it is not provided, the provider project is used.
671
+ :param pulumi.Input[_builtins.str] rollout_kind_id: The ID value for the new rollout kind.
672
+ :param pulumi.Input[_builtins.str] rollout_orchestration_strategy: The strategy used for executing a Rollout. This is a required field.
673
+ There are two supported values strategies which are used to control a rollout.
674
+ - "Google.Cloud.Simple.AllAtOnce"
675
+ - "Google.Cloud.Simple.OneLocationAtATime"
676
+ A rollout with one of these simple strategies will rollout across
677
+ all locations defined in the associated UnitKind's Saas Locations.
678
+ :param pulumi.Input[_builtins.str] unit_filter: CEL(https://github.com/google/cel-spec) formatted filter string against
679
+ Unit. The filter will be applied to determine the eligible unit population.
680
+ This filter can only reduce, but not expand the scope of the rollout.
681
+ :param pulumi.Input[_builtins.str] unit_kind: UnitKind that this rollout kind corresponds to. Rollouts stemming from this
682
+ rollout kind will target the units of this unit kind. In other words, this
683
+ defines the population of target units to be upgraded by rollouts.
684
+ :param pulumi.Input[_builtins.str] update_unit_kind_strategy: The config for updating the unit kind. By default, the unit kind will be
685
+ updated on the rollout start.
686
+ Possible values:
687
+ UPDATE_UNIT_KIND_STRATEGY_ON_START
688
+ UPDATE_UNIT_KIND_STRATEGY_NEVER
689
+ Possible values are: `UPDATE_UNIT_KIND_STRATEGY_ON_START`, `UPDATE_UNIT_KIND_STRATEGY_NEVER`.
690
+ """
691
+ ...
692
+ @overload
693
+ def __init__(__self__,
694
+ resource_name: str,
695
+ args: RolloutKindArgs,
696
+ opts: Optional[pulumi.ResourceOptions] = None):
697
+ """
698
+ A RolloutKind is a reusable configuration resource that defines the policies, strategies, and targeting for Rollout operations. It acts as a template for repeatable Rollouts, providing guardrails and ensuring that updates are executed in a consistent manner across a fleet of Units.
699
+
700
+ ## Example Usage
701
+
702
+ ### Saas Runtime Rollout Kind Basic
703
+
704
+ ```python
705
+ import pulumi
706
+ import pulumi_gcp as gcp
707
+
708
+ example_saas = gcp.saasruntime.SaaS("example_saas",
709
+ saas_id="example-saas",
710
+ location="global",
711
+ locations=[{
712
+ "name": "us-central1",
713
+ }])
714
+ example_unitkind = gcp.saasruntime.UnitKind("example_unitkind",
715
+ location="global",
716
+ unit_kind_id="example-unitkind",
717
+ saas=example_saas.id)
718
+ example = gcp.saasruntime.RolloutKind("example",
719
+ location="global",
720
+ rollout_kind_id="example-rolloutkind",
721
+ unit_kind=example_unitkind.id,
722
+ rollout_orchestration_strategy="Google.Cloud.Simple.OneLocationAtATime",
723
+ error_budget={
724
+ "allowed_count": 1,
725
+ },
726
+ unit_filter="unit.labels['key1'] == 'value1'")
727
+ ```
728
+
729
+ ## Import
730
+
731
+ RolloutKind can be imported using any of these accepted formats:
732
+
733
+ * `projects/{{project}}/locations/{{location}}/rolloutKinds/{{rollout_kind_id}}`
734
+
735
+ * `{{project}}/{{location}}/{{rollout_kind_id}}`
736
+
737
+ * `{{location}}/{{rollout_kind_id}}`
738
+
739
+ When using the `pulumi import` command, RolloutKind can be imported using one of the formats above. For example:
740
+
741
+ ```sh
742
+ $ pulumi import gcp:saasruntime/rolloutKind:RolloutKind default projects/{{project}}/locations/{{location}}/rolloutKinds/{{rollout_kind_id}}
743
+ ```
744
+
745
+ ```sh
746
+ $ pulumi import gcp:saasruntime/rolloutKind:RolloutKind default {{project}}/{{location}}/{{rollout_kind_id}}
747
+ ```
748
+
749
+ ```sh
750
+ $ pulumi import gcp:saasruntime/rolloutKind:RolloutKind default {{location}}/{{rollout_kind_id}}
751
+ ```
752
+
753
+ :param str resource_name: The name of the resource.
754
+ :param RolloutKindArgs args: The arguments to use to populate this resource's properties.
755
+ :param pulumi.ResourceOptions opts: Options for the resource.
756
+ """
757
+ ...
758
+ def __init__(__self__, resource_name: str, *args, **kwargs):
759
+ resource_args, opts = _utilities.get_resource_args_opts(RolloutKindArgs, pulumi.ResourceOptions, *args, **kwargs)
760
+ if resource_args is not None:
761
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
762
+ else:
763
+ __self__._internal_init(resource_name, *args, **kwargs)
764
+
765
+ def _internal_init(__self__,
766
+ resource_name: str,
767
+ opts: Optional[pulumi.ResourceOptions] = None,
768
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
769
+ error_budget: Optional[pulumi.Input[Union['RolloutKindErrorBudgetArgs', 'RolloutKindErrorBudgetArgsDict']]] = None,
770
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
771
+ location: Optional[pulumi.Input[_builtins.str]] = None,
772
+ project: Optional[pulumi.Input[_builtins.str]] = None,
773
+ rollout_kind_id: Optional[pulumi.Input[_builtins.str]] = None,
774
+ rollout_orchestration_strategy: Optional[pulumi.Input[_builtins.str]] = None,
775
+ unit_filter: Optional[pulumi.Input[_builtins.str]] = None,
776
+ unit_kind: Optional[pulumi.Input[_builtins.str]] = None,
777
+ update_unit_kind_strategy: Optional[pulumi.Input[_builtins.str]] = None,
778
+ __props__=None):
779
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
780
+ if not isinstance(opts, pulumi.ResourceOptions):
781
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
782
+ if opts.id is None:
783
+ if __props__ is not None:
784
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
785
+ __props__ = RolloutKindArgs.__new__(RolloutKindArgs)
786
+
787
+ __props__.__dict__["annotations"] = annotations
788
+ __props__.__dict__["error_budget"] = error_budget
789
+ __props__.__dict__["labels"] = labels
790
+ if location is None and not opts.urn:
791
+ raise TypeError("Missing required property 'location'")
792
+ __props__.__dict__["location"] = location
793
+ __props__.__dict__["project"] = project
794
+ if rollout_kind_id is None and not opts.urn:
795
+ raise TypeError("Missing required property 'rollout_kind_id'")
796
+ __props__.__dict__["rollout_kind_id"] = rollout_kind_id
797
+ __props__.__dict__["rollout_orchestration_strategy"] = rollout_orchestration_strategy
798
+ __props__.__dict__["unit_filter"] = unit_filter
799
+ if unit_kind is None and not opts.urn:
800
+ raise TypeError("Missing required property 'unit_kind'")
801
+ __props__.__dict__["unit_kind"] = unit_kind
802
+ __props__.__dict__["update_unit_kind_strategy"] = update_unit_kind_strategy
803
+ __props__.__dict__["create_time"] = None
804
+ __props__.__dict__["effective_annotations"] = None
805
+ __props__.__dict__["effective_labels"] = None
806
+ __props__.__dict__["name"] = None
807
+ __props__.__dict__["pulumi_labels"] = None
808
+ __props__.__dict__["uid"] = None
809
+ __props__.__dict__["update_time"] = None
810
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
811
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
812
+ super(RolloutKind, __self__).__init__(
813
+ 'gcp:saasruntime/rolloutKind:RolloutKind',
814
+ resource_name,
815
+ __props__,
816
+ opts)
817
+
818
+ @staticmethod
819
+ def get(resource_name: str,
820
+ id: pulumi.Input[str],
821
+ opts: Optional[pulumi.ResourceOptions] = None,
822
+ annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
823
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
824
+ effective_annotations: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
825
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
826
+ error_budget: Optional[pulumi.Input[Union['RolloutKindErrorBudgetArgs', 'RolloutKindErrorBudgetArgsDict']]] = None,
827
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
828
+ location: Optional[pulumi.Input[_builtins.str]] = None,
829
+ name: Optional[pulumi.Input[_builtins.str]] = None,
830
+ project: Optional[pulumi.Input[_builtins.str]] = None,
831
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
832
+ rollout_kind_id: Optional[pulumi.Input[_builtins.str]] = None,
833
+ rollout_orchestration_strategy: Optional[pulumi.Input[_builtins.str]] = None,
834
+ uid: Optional[pulumi.Input[_builtins.str]] = None,
835
+ unit_filter: Optional[pulumi.Input[_builtins.str]] = None,
836
+ unit_kind: Optional[pulumi.Input[_builtins.str]] = None,
837
+ update_time: Optional[pulumi.Input[_builtins.str]] = None,
838
+ update_unit_kind_strategy: Optional[pulumi.Input[_builtins.str]] = None) -> 'RolloutKind':
839
+ """
840
+ Get an existing RolloutKind resource's state with the given name, id, and optional extra
841
+ properties used to qualify the lookup.
842
+
843
+ :param str resource_name: The unique name of the resulting resource.
844
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
845
+ :param pulumi.ResourceOptions opts: Options for the resource.
846
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] annotations: Annotations is an unstructured key-value map stored with a resource that
847
+ may be set by external tools to store and retrieve arbitrary metadata.
848
+ They are not queryable and should be preserved when modifying objects.
849
+ More info: https://kubernetes.io/docs/user-guide/annotations
850
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
851
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
852
+ :param pulumi.Input[_builtins.str] create_time: The timestamp when the resource was created.
853
+ :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.
854
+ :param pulumi.Input[Union['RolloutKindErrorBudgetArgs', 'RolloutKindErrorBudgetArgsDict']] error_budget: The configuration for error budget. If the number of failed units exceeds
855
+ max(allowed_count, allowed_ratio * total_units), the rollout will be paused.
856
+ Structure is documented below.
857
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] labels: The labels on the resource, which can be used for categorization.
858
+ similar to Kubernetes resource labels.
859
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
860
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
861
+ :param pulumi.Input[_builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
862
+ :param pulumi.Input[_builtins.str] name: Identifier. The resource name (full URI of the resource) following the standard naming
863
+ scheme:
864
+ "projects/{project}/locations/{location}/rolloutKinds/{rollout_kind_id}"
865
+ :param pulumi.Input[_builtins.str] project: The ID of the project in which the resource belongs.
866
+ If it is not provided, the provider project is used.
867
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
868
+ and default labels configured on the provider.
869
+ :param pulumi.Input[_builtins.str] rollout_kind_id: The ID value for the new rollout kind.
870
+ :param pulumi.Input[_builtins.str] rollout_orchestration_strategy: The strategy used for executing a Rollout. This is a required field.
871
+ There are two supported values strategies which are used to control a rollout.
872
+ - "Google.Cloud.Simple.AllAtOnce"
873
+ - "Google.Cloud.Simple.OneLocationAtATime"
874
+ A rollout with one of these simple strategies will rollout across
875
+ all locations defined in the associated UnitKind's Saas Locations.
876
+ :param pulumi.Input[_builtins.str] uid: The unique identifier of the resource. UID is unique in the time
877
+ and space for this resource within the scope of the service. It is
878
+ typically generated by the server on successful creation of a resource
879
+ and must not be changed. UID is used to uniquely identify resources
880
+ with resource name reuses. This should be a UUID4.
881
+ :param pulumi.Input[_builtins.str] unit_filter: CEL(https://github.com/google/cel-spec) formatted filter string against
882
+ Unit. The filter will be applied to determine the eligible unit population.
883
+ This filter can only reduce, but not expand the scope of the rollout.
884
+ :param pulumi.Input[_builtins.str] unit_kind: UnitKind that this rollout kind corresponds to. Rollouts stemming from this
885
+ rollout kind will target the units of this unit kind. In other words, this
886
+ defines the population of target units to be upgraded by rollouts.
887
+ :param pulumi.Input[_builtins.str] update_time: The timestamp when the resource was last updated. Any
888
+ change to the resource made by users must refresh this value.
889
+ Changes to a resource made by the service should refresh this value.
890
+ :param pulumi.Input[_builtins.str] update_unit_kind_strategy: The config for updating the unit kind. By default, the unit kind will be
891
+ updated on the rollout start.
892
+ Possible values:
893
+ UPDATE_UNIT_KIND_STRATEGY_ON_START
894
+ UPDATE_UNIT_KIND_STRATEGY_NEVER
895
+ Possible values are: `UPDATE_UNIT_KIND_STRATEGY_ON_START`, `UPDATE_UNIT_KIND_STRATEGY_NEVER`.
896
+ """
897
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
898
+
899
+ __props__ = _RolloutKindState.__new__(_RolloutKindState)
900
+
901
+ __props__.__dict__["annotations"] = annotations
902
+ __props__.__dict__["create_time"] = create_time
903
+ __props__.__dict__["effective_annotations"] = effective_annotations
904
+ __props__.__dict__["effective_labels"] = effective_labels
905
+ __props__.__dict__["error_budget"] = error_budget
906
+ __props__.__dict__["labels"] = labels
907
+ __props__.__dict__["location"] = location
908
+ __props__.__dict__["name"] = name
909
+ __props__.__dict__["project"] = project
910
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
911
+ __props__.__dict__["rollout_kind_id"] = rollout_kind_id
912
+ __props__.__dict__["rollout_orchestration_strategy"] = rollout_orchestration_strategy
913
+ __props__.__dict__["uid"] = uid
914
+ __props__.__dict__["unit_filter"] = unit_filter
915
+ __props__.__dict__["unit_kind"] = unit_kind
916
+ __props__.__dict__["update_time"] = update_time
917
+ __props__.__dict__["update_unit_kind_strategy"] = update_unit_kind_strategy
918
+ return RolloutKind(resource_name, opts=opts, __props__=__props__)
919
+
920
+ @_builtins.property
921
+ @pulumi.getter
922
+ def annotations(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
923
+ """
924
+ Annotations is an unstructured key-value map stored with a resource that
925
+ may be set by external tools to store and retrieve arbitrary metadata.
926
+ They are not queryable and should be preserved when modifying objects.
927
+ More info: https://kubernetes.io/docs/user-guide/annotations
928
+ **Note**: This field is non-authoritative, and will only manage the annotations present in your configuration.
929
+ Please refer to the field `effective_annotations` for all of the annotations present on the resource.
930
+ """
931
+ return pulumi.get(self, "annotations")
932
+
933
+ @_builtins.property
934
+ @pulumi.getter(name="createTime")
935
+ def create_time(self) -> pulumi.Output[_builtins.str]:
936
+ """
937
+ The timestamp when the resource was created.
938
+ """
939
+ return pulumi.get(self, "create_time")
940
+
941
+ @_builtins.property
942
+ @pulumi.getter(name="effectiveAnnotations")
943
+ def effective_annotations(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
944
+ return pulumi.get(self, "effective_annotations")
945
+
946
+ @_builtins.property
947
+ @pulumi.getter(name="effectiveLabels")
948
+ def effective_labels(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
949
+ """
950
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
951
+ """
952
+ return pulumi.get(self, "effective_labels")
953
+
954
+ @_builtins.property
955
+ @pulumi.getter(name="errorBudget")
956
+ def error_budget(self) -> pulumi.Output[Optional['outputs.RolloutKindErrorBudget']]:
957
+ """
958
+ The configuration for error budget. If the number of failed units exceeds
959
+ max(allowed_count, allowed_ratio * total_units), the rollout will be paused.
960
+ Structure is documented below.
961
+ """
962
+ return pulumi.get(self, "error_budget")
963
+
964
+ @_builtins.property
965
+ @pulumi.getter
966
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
967
+ """
968
+ The labels on the resource, which can be used for categorization.
969
+ similar to Kubernetes resource labels.
970
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
971
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
972
+ """
973
+ return pulumi.get(self, "labels")
974
+
975
+ @_builtins.property
976
+ @pulumi.getter
977
+ def location(self) -> pulumi.Output[_builtins.str]:
978
+ """
979
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
980
+ """
981
+ return pulumi.get(self, "location")
982
+
983
+ @_builtins.property
984
+ @pulumi.getter
985
+ def name(self) -> pulumi.Output[_builtins.str]:
986
+ """
987
+ Identifier. The resource name (full URI of the resource) following the standard naming
988
+ scheme:
989
+ "projects/{project}/locations/{location}/rolloutKinds/{rollout_kind_id}"
990
+ """
991
+ return pulumi.get(self, "name")
992
+
993
+ @_builtins.property
994
+ @pulumi.getter
995
+ def project(self) -> pulumi.Output[_builtins.str]:
996
+ """
997
+ The ID of the project in which the resource belongs.
998
+ If it is not provided, the provider project is used.
999
+ """
1000
+ return pulumi.get(self, "project")
1001
+
1002
+ @_builtins.property
1003
+ @pulumi.getter(name="pulumiLabels")
1004
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, _builtins.str]]:
1005
+ """
1006
+ The combination of labels configured directly on the resource
1007
+ and default labels configured on the provider.
1008
+ """
1009
+ return pulumi.get(self, "pulumi_labels")
1010
+
1011
+ @_builtins.property
1012
+ @pulumi.getter(name="rolloutKindId")
1013
+ def rollout_kind_id(self) -> pulumi.Output[_builtins.str]:
1014
+ """
1015
+ The ID value for the new rollout kind.
1016
+ """
1017
+ return pulumi.get(self, "rollout_kind_id")
1018
+
1019
+ @_builtins.property
1020
+ @pulumi.getter(name="rolloutOrchestrationStrategy")
1021
+ def rollout_orchestration_strategy(self) -> pulumi.Output[Optional[_builtins.str]]:
1022
+ """
1023
+ The strategy used for executing a Rollout. This is a required field.
1024
+ There are two supported values strategies which are used to control a rollout.
1025
+ - "Google.Cloud.Simple.AllAtOnce"
1026
+ - "Google.Cloud.Simple.OneLocationAtATime"
1027
+ A rollout with one of these simple strategies will rollout across
1028
+ all locations defined in the associated UnitKind's Saas Locations.
1029
+ """
1030
+ return pulumi.get(self, "rollout_orchestration_strategy")
1031
+
1032
+ @_builtins.property
1033
+ @pulumi.getter
1034
+ def uid(self) -> pulumi.Output[_builtins.str]:
1035
+ """
1036
+ The unique identifier of the resource. UID is unique in the time
1037
+ and space for this resource within the scope of the service. It is
1038
+ typically generated by the server on successful creation of a resource
1039
+ and must not be changed. UID is used to uniquely identify resources
1040
+ with resource name reuses. This should be a UUID4.
1041
+ """
1042
+ return pulumi.get(self, "uid")
1043
+
1044
+ @_builtins.property
1045
+ @pulumi.getter(name="unitFilter")
1046
+ def unit_filter(self) -> pulumi.Output[Optional[_builtins.str]]:
1047
+ """
1048
+ CEL(https://github.com/google/cel-spec) formatted filter string against
1049
+ Unit. The filter will be applied to determine the eligible unit population.
1050
+ This filter can only reduce, but not expand the scope of the rollout.
1051
+ """
1052
+ return pulumi.get(self, "unit_filter")
1053
+
1054
+ @_builtins.property
1055
+ @pulumi.getter(name="unitKind")
1056
+ def unit_kind(self) -> pulumi.Output[_builtins.str]:
1057
+ """
1058
+ UnitKind that this rollout kind corresponds to. Rollouts stemming from this
1059
+ rollout kind will target the units of this unit kind. In other words, this
1060
+ defines the population of target units to be upgraded by rollouts.
1061
+ """
1062
+ return pulumi.get(self, "unit_kind")
1063
+
1064
+ @_builtins.property
1065
+ @pulumi.getter(name="updateTime")
1066
+ def update_time(self) -> pulumi.Output[_builtins.str]:
1067
+ """
1068
+ The timestamp when the resource was last updated. Any
1069
+ change to the resource made by users must refresh this value.
1070
+ Changes to a resource made by the service should refresh this value.
1071
+ """
1072
+ return pulumi.get(self, "update_time")
1073
+
1074
+ @_builtins.property
1075
+ @pulumi.getter(name="updateUnitKindStrategy")
1076
+ def update_unit_kind_strategy(self) -> pulumi.Output[Optional[_builtins.str]]:
1077
+ """
1078
+ The config for updating the unit kind. By default, the unit kind will be
1079
+ updated on the rollout start.
1080
+ Possible values:
1081
+ UPDATE_UNIT_KIND_STRATEGY_ON_START
1082
+ UPDATE_UNIT_KIND_STRATEGY_NEVER
1083
+ Possible values are: `UPDATE_UNIT_KIND_STRATEGY_ON_START`, `UPDATE_UNIT_KIND_STRATEGY_NEVER`.
1084
+ """
1085
+ return pulumi.get(self, "update_unit_kind_strategy")
1086
+