pulumi-gcp 8.29.0a1746115375__py3-none-any.whl → 8.30.0a1746254470__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 (65) hide show
  1. pulumi_gcp/__init__.py +24 -0
  2. pulumi_gcp/alloydb/instance.py +1 -1
  3. pulumi_gcp/apigee/organization.py +26 -0
  4. pulumi_gcp/beyondcorp/_inputs.py +129 -0
  5. pulumi_gcp/beyondcorp/application.py +106 -3
  6. pulumi_gcp/beyondcorp/outputs.py +93 -0
  7. pulumi_gcp/bigtable/__init__.py +2 -0
  8. pulumi_gcp/bigtable/logical_view.py +473 -0
  9. pulumi_gcp/bigtable/materialized_view.py +524 -0
  10. pulumi_gcp/certificateauthority/ca_pool.py +12 -0
  11. pulumi_gcp/certificatemanager/get_certificates.py +29 -0
  12. pulumi_gcp/clouddeploy/automation.py +66 -10
  13. pulumi_gcp/compute/_inputs.py +366 -55
  14. pulumi_gcp/compute/backend_service.py +6 -2
  15. pulumi_gcp/compute/get_region_disk.py +12 -1
  16. pulumi_gcp/compute/interconnect.py +25 -24
  17. pulumi_gcp/compute/outputs.py +380 -48
  18. pulumi_gcp/compute/region_disk.py +28 -0
  19. pulumi_gcp/compute/region_resize_request.py +2 -2
  20. pulumi_gcp/compute/region_security_policy.py +16 -0
  21. pulumi_gcp/compute/region_security_policy_rule.py +16 -0
  22. pulumi_gcp/compute/resize_request.py +2 -2
  23. pulumi_gcp/compute/resource_policy.py +0 -2
  24. pulumi_gcp/container/_inputs.py +69 -9
  25. pulumi_gcp/container/outputs.py +71 -7
  26. pulumi_gcp/dataplex/_inputs.py +219 -1
  27. pulumi_gcp/dataplex/datascan.py +20 -0
  28. pulumi_gcp/dataplex/outputs.py +168 -1
  29. pulumi_gcp/developerconnect/_inputs.py +6 -0
  30. pulumi_gcp/developerconnect/account_connector.py +56 -0
  31. pulumi_gcp/developerconnect/outputs.py +4 -0
  32. pulumi_gcp/dns/_inputs.py +34 -13
  33. pulumi_gcp/dns/outputs.py +25 -10
  34. pulumi_gcp/gkehub/_inputs.py +3 -3
  35. pulumi_gcp/gkehub/feature_membership.py +92 -0
  36. pulumi_gcp/gkehub/outputs.py +2 -2
  37. pulumi_gcp/identityplatform/_inputs.py +54 -0
  38. pulumi_gcp/identityplatform/oauth_idp_config.py +83 -5
  39. pulumi_gcp/identityplatform/outputs.py +49 -0
  40. pulumi_gcp/memcache/__init__.py +1 -0
  41. pulumi_gcp/memcache/get_instance.py +338 -0
  42. pulumi_gcp/memcache/outputs.py +363 -0
  43. pulumi_gcp/netapp/storage_pool.py +141 -0
  44. pulumi_gcp/networkservices/_inputs.py +35 -6
  45. pulumi_gcp/networkservices/lb_traffic_extension.py +7 -0
  46. pulumi_gcp/networkservices/outputs.py +22 -4
  47. pulumi_gcp/osconfig/__init__.py +1 -0
  48. pulumi_gcp/osconfig/_inputs.py +5400 -0
  49. pulumi_gcp/osconfig/outputs.py +3952 -0
  50. pulumi_gcp/osconfig/v2_policy_orchestrator_for_folder.py +1098 -0
  51. pulumi_gcp/pulumi-plugin.json +1 -1
  52. pulumi_gcp/spanner/instance_config.py +14 -14
  53. pulumi_gcp/sql/_inputs.py +83 -0
  54. pulumi_gcp/sql/database_instance.py +28 -0
  55. pulumi_gcp/sql/get_database_instance.py +12 -1
  56. pulumi_gcp/sql/outputs.py +146 -6
  57. pulumi_gcp/storage/_inputs.py +20 -0
  58. pulumi_gcp/storage/bucket.py +56 -0
  59. pulumi_gcp/storage/get_bucket.py +23 -1
  60. pulumi_gcp/storage/outputs.py +14 -0
  61. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +2 -14
  62. {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.30.0a1746254470.dist-info}/METADATA +1 -1
  63. {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.30.0a1746254470.dist-info}/RECORD +65 -61
  64. {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.30.0a1746254470.dist-info}/WHEEL +1 -1
  65. {pulumi_gcp-8.29.0a1746115375.dist-info → pulumi_gcp-8.30.0a1746254470.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1098 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['V2PolicyOrchestratorForFolderArgs', 'V2PolicyOrchestratorForFolder']
21
+
22
+ @pulumi.input_type
23
+ class V2PolicyOrchestratorForFolderArgs:
24
+ def __init__(__self__, *,
25
+ action: pulumi.Input[builtins.str],
26
+ folder_id: pulumi.Input[builtins.str],
27
+ orchestrated_resource: pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs'],
28
+ policy_orchestrator_id: pulumi.Input[builtins.str],
29
+ description: Optional[pulumi.Input[builtins.str]] = None,
30
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
31
+ orchestration_scope: Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs']] = None,
32
+ state: Optional[pulumi.Input[builtins.str]] = None):
33
+ """
34
+ The set of arguments for constructing a V2PolicyOrchestratorForFolder resource.
35
+ :param pulumi.Input[builtins.str] action: Action to be done by the orchestrator in
36
+ `projects/{project_id}/zones/{zone_id}` locations defined by the
37
+ `orchestration_scope`. Allowed values:
38
+ - `UPSERT` - Orchestrator will create or update target resources.
39
+ - `DELETE` - Orchestrator will delete target resources, if they exist
40
+ :param pulumi.Input[builtins.str] folder_id: The parent resource name in the form of `folders/{folder_id}/locations/global`.
41
+ :param pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs'] orchestrated_resource: Represents a resource that is being orchestrated by the policy orchestrator.
42
+ Structure is documented below.
43
+ :param pulumi.Input[builtins.str] policy_orchestrator_id: The logical identifier of the policy orchestrator, with the following
44
+ restrictions:
45
+ * Must contain only lowercase letters, numbers, and hyphens.
46
+ * Must start with a letter.
47
+ * Must be between 1-63 characters.
48
+ * Must end with a number or a letter.
49
+ * Must be unique within the parent.
50
+ :param pulumi.Input[builtins.str] description: Freeform text describing the purpose of the resource.
51
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs **Note**: This field is non-authoritative, and will only manage the labels present in your
52
+ configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
53
+ :param pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs'] orchestration_scope: Defines a set of selectors which drive which resources are in scope of policy orchestration.
54
+ :param pulumi.Input[builtins.str] state: (Output)
55
+ State of the iteration.
56
+ Possible values:
57
+ PROCESSING
58
+ COMPLETED
59
+ FAILED
60
+ CANCELLED
61
+ UNKNOWN
62
+ """
63
+ pulumi.set(__self__, "action", action)
64
+ pulumi.set(__self__, "folder_id", folder_id)
65
+ pulumi.set(__self__, "orchestrated_resource", orchestrated_resource)
66
+ pulumi.set(__self__, "policy_orchestrator_id", policy_orchestrator_id)
67
+ if description is not None:
68
+ pulumi.set(__self__, "description", description)
69
+ if labels is not None:
70
+ pulumi.set(__self__, "labels", labels)
71
+ if orchestration_scope is not None:
72
+ pulumi.set(__self__, "orchestration_scope", orchestration_scope)
73
+ if state is not None:
74
+ pulumi.set(__self__, "state", state)
75
+
76
+ @property
77
+ @pulumi.getter
78
+ def action(self) -> pulumi.Input[builtins.str]:
79
+ """
80
+ Action to be done by the orchestrator in
81
+ `projects/{project_id}/zones/{zone_id}` locations defined by the
82
+ `orchestration_scope`. Allowed values:
83
+ - `UPSERT` - Orchestrator will create or update target resources.
84
+ - `DELETE` - Orchestrator will delete target resources, if they exist
85
+ """
86
+ return pulumi.get(self, "action")
87
+
88
+ @action.setter
89
+ def action(self, value: pulumi.Input[builtins.str]):
90
+ pulumi.set(self, "action", value)
91
+
92
+ @property
93
+ @pulumi.getter(name="folderId")
94
+ def folder_id(self) -> pulumi.Input[builtins.str]:
95
+ """
96
+ The parent resource name in the form of `folders/{folder_id}/locations/global`.
97
+ """
98
+ return pulumi.get(self, "folder_id")
99
+
100
+ @folder_id.setter
101
+ def folder_id(self, value: pulumi.Input[builtins.str]):
102
+ pulumi.set(self, "folder_id", value)
103
+
104
+ @property
105
+ @pulumi.getter(name="orchestratedResource")
106
+ def orchestrated_resource(self) -> pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs']:
107
+ """
108
+ Represents a resource that is being orchestrated by the policy orchestrator.
109
+ Structure is documented below.
110
+ """
111
+ return pulumi.get(self, "orchestrated_resource")
112
+
113
+ @orchestrated_resource.setter
114
+ def orchestrated_resource(self, value: pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs']):
115
+ pulumi.set(self, "orchestrated_resource", value)
116
+
117
+ @property
118
+ @pulumi.getter(name="policyOrchestratorId")
119
+ def policy_orchestrator_id(self) -> pulumi.Input[builtins.str]:
120
+ """
121
+ The logical identifier of the policy orchestrator, with the following
122
+ restrictions:
123
+ * Must contain only lowercase letters, numbers, and hyphens.
124
+ * Must start with a letter.
125
+ * Must be between 1-63 characters.
126
+ * Must end with a number or a letter.
127
+ * Must be unique within the parent.
128
+ """
129
+ return pulumi.get(self, "policy_orchestrator_id")
130
+
131
+ @policy_orchestrator_id.setter
132
+ def policy_orchestrator_id(self, value: pulumi.Input[builtins.str]):
133
+ pulumi.set(self, "policy_orchestrator_id", value)
134
+
135
+ @property
136
+ @pulumi.getter
137
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
138
+ """
139
+ Freeform text describing the purpose of the resource.
140
+ """
141
+ return pulumi.get(self, "description")
142
+
143
+ @description.setter
144
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
145
+ pulumi.set(self, "description", value)
146
+
147
+ @property
148
+ @pulumi.getter
149
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
150
+ """
151
+ Labels as key value pairs **Note**: This field is non-authoritative, and will only manage the labels present in your
152
+ configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
153
+ """
154
+ return pulumi.get(self, "labels")
155
+
156
+ @labels.setter
157
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
158
+ pulumi.set(self, "labels", value)
159
+
160
+ @property
161
+ @pulumi.getter(name="orchestrationScope")
162
+ def orchestration_scope(self) -> Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs']]:
163
+ """
164
+ Defines a set of selectors which drive which resources are in scope of policy orchestration.
165
+ """
166
+ return pulumi.get(self, "orchestration_scope")
167
+
168
+ @orchestration_scope.setter
169
+ def orchestration_scope(self, value: Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs']]):
170
+ pulumi.set(self, "orchestration_scope", value)
171
+
172
+ @property
173
+ @pulumi.getter
174
+ def state(self) -> Optional[pulumi.Input[builtins.str]]:
175
+ """
176
+ (Output)
177
+ State of the iteration.
178
+ Possible values:
179
+ PROCESSING
180
+ COMPLETED
181
+ FAILED
182
+ CANCELLED
183
+ UNKNOWN
184
+ """
185
+ return pulumi.get(self, "state")
186
+
187
+ @state.setter
188
+ def state(self, value: Optional[pulumi.Input[builtins.str]]):
189
+ pulumi.set(self, "state", value)
190
+
191
+
192
+ @pulumi.input_type
193
+ class _V2PolicyOrchestratorForFolderState:
194
+ def __init__(__self__, *,
195
+ action: Optional[pulumi.Input[builtins.str]] = None,
196
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
197
+ description: Optional[pulumi.Input[builtins.str]] = None,
198
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
199
+ etag: Optional[pulumi.Input[builtins.str]] = None,
200
+ folder_id: Optional[pulumi.Input[builtins.str]] = None,
201
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
202
+ name: Optional[pulumi.Input[builtins.str]] = None,
203
+ orchestrated_resource: Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs']] = None,
204
+ orchestration_scope: Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs']] = None,
205
+ orchestration_states: Optional[pulumi.Input[Sequence[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationStateArgs']]]] = None,
206
+ policy_orchestrator_id: Optional[pulumi.Input[builtins.str]] = None,
207
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
208
+ reconciling: Optional[pulumi.Input[builtins.bool]] = None,
209
+ state: Optional[pulumi.Input[builtins.str]] = None,
210
+ update_time: Optional[pulumi.Input[builtins.str]] = None):
211
+ """
212
+ Input properties used for looking up and filtering V2PolicyOrchestratorForFolder resources.
213
+ :param pulumi.Input[builtins.str] action: Action to be done by the orchestrator in
214
+ `projects/{project_id}/zones/{zone_id}` locations defined by the
215
+ `orchestration_scope`. Allowed values:
216
+ - `UPSERT` - Orchestrator will create or update target resources.
217
+ - `DELETE` - Orchestrator will delete target resources, if they exist
218
+ :param pulumi.Input[builtins.str] create_time: Timestamp when the policy orchestrator resource was created.
219
+ :param pulumi.Input[builtins.str] description: Freeform text describing the purpose of the resource.
220
+ :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.
221
+ :param pulumi.Input[builtins.str] etag: This checksum is computed by the server based on the value of other
222
+ fields, and may be sent on update and delete requests to ensure the
223
+ client has an up-to-date value before proceeding.
224
+ :param pulumi.Input[builtins.str] folder_id: The parent resource name in the form of `folders/{folder_id}/locations/global`.
225
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs **Note**: This field is non-authoritative, and will only manage the labels present in your
226
+ configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
227
+ :param pulumi.Input[builtins.str] name: Identifier. In form of
228
+ * `organizations/{organization_id}/locations/global/policyOrchestrators/{orchestrator_id}`
229
+ * `folders/{folder_id}/locations/global/policyOrchestrators/{orchestrator_id}`
230
+ * `projects/{project_id_or_number}/locations/global/policyOrchestrators/{orchestrator_id}`
231
+ :param pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs'] orchestrated_resource: Represents a resource that is being orchestrated by the policy orchestrator.
232
+ Structure is documented below.
233
+ :param pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs'] orchestration_scope: Defines a set of selectors which drive which resources are in scope of policy orchestration.
234
+ :param pulumi.Input[Sequence[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationStateArgs']]] orchestration_states: Describes the state of the orchestration process.
235
+ Structure is documented below.
236
+ :param pulumi.Input[builtins.str] policy_orchestrator_id: The logical identifier of the policy orchestrator, with the following
237
+ restrictions:
238
+ * Must contain only lowercase letters, numbers, and hyphens.
239
+ * Must start with a letter.
240
+ * Must be between 1-63 characters.
241
+ * Must end with a number or a letter.
242
+ * Must be unique within the parent.
243
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
244
+ and default labels configured on the provider.
245
+ :param pulumi.Input[builtins.bool] reconciling: Set to true, if the there are ongoing changes being applied by the
246
+ orchestrator.
247
+ :param pulumi.Input[builtins.str] state: (Output)
248
+ State of the iteration.
249
+ Possible values:
250
+ PROCESSING
251
+ COMPLETED
252
+ FAILED
253
+ CANCELLED
254
+ UNKNOWN
255
+ :param pulumi.Input[builtins.str] update_time: Timestamp when the policy orchestrator resource was last modified.
256
+ """
257
+ if action is not None:
258
+ pulumi.set(__self__, "action", action)
259
+ if create_time is not None:
260
+ pulumi.set(__self__, "create_time", create_time)
261
+ if description is not None:
262
+ pulumi.set(__self__, "description", description)
263
+ if effective_labels is not None:
264
+ pulumi.set(__self__, "effective_labels", effective_labels)
265
+ if etag is not None:
266
+ pulumi.set(__self__, "etag", etag)
267
+ if folder_id is not None:
268
+ pulumi.set(__self__, "folder_id", folder_id)
269
+ if labels is not None:
270
+ pulumi.set(__self__, "labels", labels)
271
+ if name is not None:
272
+ pulumi.set(__self__, "name", name)
273
+ if orchestrated_resource is not None:
274
+ pulumi.set(__self__, "orchestrated_resource", orchestrated_resource)
275
+ if orchestration_scope is not None:
276
+ pulumi.set(__self__, "orchestration_scope", orchestration_scope)
277
+ if orchestration_states is not None:
278
+ pulumi.set(__self__, "orchestration_states", orchestration_states)
279
+ if policy_orchestrator_id is not None:
280
+ pulumi.set(__self__, "policy_orchestrator_id", policy_orchestrator_id)
281
+ if pulumi_labels is not None:
282
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
283
+ if reconciling is not None:
284
+ pulumi.set(__self__, "reconciling", reconciling)
285
+ if state is not None:
286
+ pulumi.set(__self__, "state", state)
287
+ if update_time is not None:
288
+ pulumi.set(__self__, "update_time", update_time)
289
+
290
+ @property
291
+ @pulumi.getter
292
+ def action(self) -> Optional[pulumi.Input[builtins.str]]:
293
+ """
294
+ Action to be done by the orchestrator in
295
+ `projects/{project_id}/zones/{zone_id}` locations defined by the
296
+ `orchestration_scope`. Allowed values:
297
+ - `UPSERT` - Orchestrator will create or update target resources.
298
+ - `DELETE` - Orchestrator will delete target resources, if they exist
299
+ """
300
+ return pulumi.get(self, "action")
301
+
302
+ @action.setter
303
+ def action(self, value: Optional[pulumi.Input[builtins.str]]):
304
+ pulumi.set(self, "action", value)
305
+
306
+ @property
307
+ @pulumi.getter(name="createTime")
308
+ def create_time(self) -> Optional[pulumi.Input[builtins.str]]:
309
+ """
310
+ Timestamp when the policy orchestrator resource was created.
311
+ """
312
+ return pulumi.get(self, "create_time")
313
+
314
+ @create_time.setter
315
+ def create_time(self, value: Optional[pulumi.Input[builtins.str]]):
316
+ pulumi.set(self, "create_time", value)
317
+
318
+ @property
319
+ @pulumi.getter
320
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
321
+ """
322
+ Freeform text describing the purpose of the resource.
323
+ """
324
+ return pulumi.get(self, "description")
325
+
326
+ @description.setter
327
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
328
+ pulumi.set(self, "description", value)
329
+
330
+ @property
331
+ @pulumi.getter(name="effectiveLabels")
332
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
333
+ """
334
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
335
+ """
336
+ return pulumi.get(self, "effective_labels")
337
+
338
+ @effective_labels.setter
339
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
340
+ pulumi.set(self, "effective_labels", value)
341
+
342
+ @property
343
+ @pulumi.getter
344
+ def etag(self) -> Optional[pulumi.Input[builtins.str]]:
345
+ """
346
+ This checksum is computed by the server based on the value of other
347
+ fields, and may be sent on update and delete requests to ensure the
348
+ client has an up-to-date value before proceeding.
349
+ """
350
+ return pulumi.get(self, "etag")
351
+
352
+ @etag.setter
353
+ def etag(self, value: Optional[pulumi.Input[builtins.str]]):
354
+ pulumi.set(self, "etag", value)
355
+
356
+ @property
357
+ @pulumi.getter(name="folderId")
358
+ def folder_id(self) -> Optional[pulumi.Input[builtins.str]]:
359
+ """
360
+ The parent resource name in the form of `folders/{folder_id}/locations/global`.
361
+ """
362
+ return pulumi.get(self, "folder_id")
363
+
364
+ @folder_id.setter
365
+ def folder_id(self, value: Optional[pulumi.Input[builtins.str]]):
366
+ pulumi.set(self, "folder_id", value)
367
+
368
+ @property
369
+ @pulumi.getter
370
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
371
+ """
372
+ Labels as key value pairs **Note**: This field is non-authoritative, and will only manage the labels present in your
373
+ configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
374
+ """
375
+ return pulumi.get(self, "labels")
376
+
377
+ @labels.setter
378
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
379
+ pulumi.set(self, "labels", value)
380
+
381
+ @property
382
+ @pulumi.getter
383
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
384
+ """
385
+ Identifier. In form of
386
+ * `organizations/{organization_id}/locations/global/policyOrchestrators/{orchestrator_id}`
387
+ * `folders/{folder_id}/locations/global/policyOrchestrators/{orchestrator_id}`
388
+ * `projects/{project_id_or_number}/locations/global/policyOrchestrators/{orchestrator_id}`
389
+ """
390
+ return pulumi.get(self, "name")
391
+
392
+ @name.setter
393
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
394
+ pulumi.set(self, "name", value)
395
+
396
+ @property
397
+ @pulumi.getter(name="orchestratedResource")
398
+ def orchestrated_resource(self) -> Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs']]:
399
+ """
400
+ Represents a resource that is being orchestrated by the policy orchestrator.
401
+ Structure is documented below.
402
+ """
403
+ return pulumi.get(self, "orchestrated_resource")
404
+
405
+ @orchestrated_resource.setter
406
+ def orchestrated_resource(self, value: Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestratedResourceArgs']]):
407
+ pulumi.set(self, "orchestrated_resource", value)
408
+
409
+ @property
410
+ @pulumi.getter(name="orchestrationScope")
411
+ def orchestration_scope(self) -> Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs']]:
412
+ """
413
+ Defines a set of selectors which drive which resources are in scope of policy orchestration.
414
+ """
415
+ return pulumi.get(self, "orchestration_scope")
416
+
417
+ @orchestration_scope.setter
418
+ def orchestration_scope(self, value: Optional[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationScopeArgs']]):
419
+ pulumi.set(self, "orchestration_scope", value)
420
+
421
+ @property
422
+ @pulumi.getter(name="orchestrationStates")
423
+ def orchestration_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationStateArgs']]]]:
424
+ """
425
+ Describes the state of the orchestration process.
426
+ Structure is documented below.
427
+ """
428
+ return pulumi.get(self, "orchestration_states")
429
+
430
+ @orchestration_states.setter
431
+ def orchestration_states(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['V2PolicyOrchestratorForFolderOrchestrationStateArgs']]]]):
432
+ pulumi.set(self, "orchestration_states", value)
433
+
434
+ @property
435
+ @pulumi.getter(name="policyOrchestratorId")
436
+ def policy_orchestrator_id(self) -> Optional[pulumi.Input[builtins.str]]:
437
+ """
438
+ The logical identifier of the policy orchestrator, with the following
439
+ restrictions:
440
+ * Must contain only lowercase letters, numbers, and hyphens.
441
+ * Must start with a letter.
442
+ * Must be between 1-63 characters.
443
+ * Must end with a number or a letter.
444
+ * Must be unique within the parent.
445
+ """
446
+ return pulumi.get(self, "policy_orchestrator_id")
447
+
448
+ @policy_orchestrator_id.setter
449
+ def policy_orchestrator_id(self, value: Optional[pulumi.Input[builtins.str]]):
450
+ pulumi.set(self, "policy_orchestrator_id", value)
451
+
452
+ @property
453
+ @pulumi.getter(name="pulumiLabels")
454
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
455
+ """
456
+ The combination of labels configured directly on the resource
457
+ and default labels configured on the provider.
458
+ """
459
+ return pulumi.get(self, "pulumi_labels")
460
+
461
+ @pulumi_labels.setter
462
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]):
463
+ pulumi.set(self, "pulumi_labels", value)
464
+
465
+ @property
466
+ @pulumi.getter
467
+ def reconciling(self) -> Optional[pulumi.Input[builtins.bool]]:
468
+ """
469
+ Set to true, if the there are ongoing changes being applied by the
470
+ orchestrator.
471
+ """
472
+ return pulumi.get(self, "reconciling")
473
+
474
+ @reconciling.setter
475
+ def reconciling(self, value: Optional[pulumi.Input[builtins.bool]]):
476
+ pulumi.set(self, "reconciling", value)
477
+
478
+ @property
479
+ @pulumi.getter
480
+ def state(self) -> Optional[pulumi.Input[builtins.str]]:
481
+ """
482
+ (Output)
483
+ State of the iteration.
484
+ Possible values:
485
+ PROCESSING
486
+ COMPLETED
487
+ FAILED
488
+ CANCELLED
489
+ UNKNOWN
490
+ """
491
+ return pulumi.get(self, "state")
492
+
493
+ @state.setter
494
+ def state(self, value: Optional[pulumi.Input[builtins.str]]):
495
+ pulumi.set(self, "state", value)
496
+
497
+ @property
498
+ @pulumi.getter(name="updateTime")
499
+ def update_time(self) -> Optional[pulumi.Input[builtins.str]]:
500
+ """
501
+ Timestamp when the policy orchestrator resource was last modified.
502
+ """
503
+ return pulumi.get(self, "update_time")
504
+
505
+ @update_time.setter
506
+ def update_time(self, value: Optional[pulumi.Input[builtins.str]]):
507
+ pulumi.set(self, "update_time", value)
508
+
509
+
510
+ class V2PolicyOrchestratorForFolder(pulumi.CustomResource):
511
+
512
+ pulumi_type = "gcp:osconfig/v2PolicyOrchestratorForFolder:V2PolicyOrchestratorForFolder"
513
+
514
+ @overload
515
+ def __init__(__self__,
516
+ resource_name: str,
517
+ opts: Optional[pulumi.ResourceOptions] = None,
518
+ action: Optional[pulumi.Input[builtins.str]] = None,
519
+ description: Optional[pulumi.Input[builtins.str]] = None,
520
+ folder_id: Optional[pulumi.Input[builtins.str]] = None,
521
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
522
+ orchestrated_resource: Optional[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestratedResourceArgs', 'V2PolicyOrchestratorForFolderOrchestratedResourceArgsDict']]] = None,
523
+ orchestration_scope: Optional[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestrationScopeArgs', 'V2PolicyOrchestratorForFolderOrchestrationScopeArgsDict']]] = None,
524
+ policy_orchestrator_id: Optional[pulumi.Input[builtins.str]] = None,
525
+ state: Optional[pulumi.Input[builtins.str]] = None,
526
+ __props__=None):
527
+ """
528
+ PolicyOrchestrator helps managing project+zone level policy resources (e.g.
529
+ OS Policy Assignments), by providing tools to create, update and delete them
530
+ across projects and locations, at scale.
531
+
532
+ ## Example Usage
533
+
534
+ ### Osconfigv2 Policy Orchestrator For Folder Basic
535
+
536
+ ```python
537
+ import pulumi
538
+ import pulumi_gcp as gcp
539
+ import pulumi_time as time
540
+
541
+ my_folder = gcp.organizations.Folder("my_folder",
542
+ display_name="po-folder",
543
+ parent="organizations/123456789",
544
+ deletion_protection=False)
545
+ osconfig_sa = gcp.folder.ServiceIdentity("osconfig_sa",
546
+ folder=my_folder.folder_id,
547
+ service="osconfig.googleapis.com")
548
+ ripple_sa = gcp.folder.ServiceIdentity("ripple_sa",
549
+ folder=my_folder.folder_id,
550
+ service="progressiverollout.googleapis.com")
551
+ wait30_sec = time.index.Sleep("wait_30_sec", create_duration=30s,
552
+ opts = pulumi.ResourceOptions(depends_on=[
553
+ osconfig_sa,
554
+ ripple_sa,
555
+ ]))
556
+ iam_osconfig_service_agent = gcp.folder.IAMMember("iam_osconfig_service_agent",
557
+ folder=my_folder.folder_id,
558
+ role="roles/osconfig.serviceAgent",
559
+ member=osconfig_sa.member,
560
+ opts = pulumi.ResourceOptions(depends_on=[wait30_sec]))
561
+ iam_osconfig_rollout_service_agent = gcp.folder.IAMMember("iam_osconfig_rollout_service_agent",
562
+ folder=my_folder.folder_id,
563
+ role="roles/osconfig.rolloutServiceAgent",
564
+ member=my_folder.folder_id.apply(lambda folder_id: f"serviceAccount:service-folder-{folder_id}@gcp-sa-osconfig-rollout.iam.gserviceaccount.com"),
565
+ opts = pulumi.ResourceOptions(depends_on=[iam_osconfig_service_agent]))
566
+ iam_progressiverollout_service_agent = gcp.folder.IAMMember("iam_progressiverollout_service_agent",
567
+ folder=my_folder.folder_id,
568
+ role="roles/progressiverollout.serviceAgent",
569
+ member=ripple_sa.member,
570
+ opts = pulumi.ResourceOptions(depends_on=[iam_osconfig_rollout_service_agent]))
571
+ wait3_min = time.index.Sleep("wait_3_min", create_duration=180s,
572
+ opts = pulumi.ResourceOptions(depends_on=[iam_progressiverollout_service_agent]))
573
+ policy_orchestrator_for_folder = gcp.osconfig.V2PolicyOrchestratorForFolder("policy_orchestrator_for_folder",
574
+ policy_orchestrator_id="po-folder",
575
+ folder_id=my_folder.folder_id,
576
+ state="ACTIVE",
577
+ action="UPSERT",
578
+ orchestrated_resource={
579
+ "id": "test-orchestrated-resource-folder",
580
+ "os_policy_assignment_v1_payload": {
581
+ "os_policies": [{
582
+ "id": "test-os-policy-folder",
583
+ "mode": "VALIDATION",
584
+ "resource_groups": [{
585
+ "resources": [{
586
+ "id": "resource-tf",
587
+ "file": {
588
+ "content": "file-content-tf",
589
+ "path": "file-path-tf-1",
590
+ "state": "PRESENT",
591
+ },
592
+ }],
593
+ }],
594
+ }],
595
+ "instance_filter": {
596
+ "inventories": [{
597
+ "os_short_name": "windows-10",
598
+ }],
599
+ },
600
+ "rollout": {
601
+ "disruption_budget": {
602
+ "percent": 100,
603
+ },
604
+ "min_wait_duration": "60s",
605
+ },
606
+ },
607
+ },
608
+ labels={
609
+ "state": "active",
610
+ },
611
+ orchestration_scope={
612
+ "selectors": [{
613
+ "location_selector": {
614
+ "included_locations": [""],
615
+ },
616
+ }],
617
+ },
618
+ opts = pulumi.ResourceOptions(depends_on=[wait3_min]))
619
+ ```
620
+
621
+ ## Import
622
+
623
+ PolicyOrchestratorForFolder can be imported using any of these accepted formats:
624
+
625
+ * `folders/{{folder_id}}/locations/global/policyOrchestrators/{{policy_orchestrator_id}}`
626
+
627
+ * `{{folder_id}}/{{policy_orchestrator_id}}`
628
+
629
+ When using the `pulumi import` command, PolicyOrchestratorForFolder can be imported using one of the formats above. For example:
630
+
631
+ ```sh
632
+ $ pulumi import gcp:osconfig/v2PolicyOrchestratorForFolder:V2PolicyOrchestratorForFolder default folders/{{folder_id}}/locations/global/policyOrchestrators/{{policy_orchestrator_id}}
633
+ ```
634
+
635
+ ```sh
636
+ $ pulumi import gcp:osconfig/v2PolicyOrchestratorForFolder:V2PolicyOrchestratorForFolder default {{folder_id}}/{{policy_orchestrator_id}}
637
+ ```
638
+
639
+ :param str resource_name: The name of the resource.
640
+ :param pulumi.ResourceOptions opts: Options for the resource.
641
+ :param pulumi.Input[builtins.str] action: Action to be done by the orchestrator in
642
+ `projects/{project_id}/zones/{zone_id}` locations defined by the
643
+ `orchestration_scope`. Allowed values:
644
+ - `UPSERT` - Orchestrator will create or update target resources.
645
+ - `DELETE` - Orchestrator will delete target resources, if they exist
646
+ :param pulumi.Input[builtins.str] description: Freeform text describing the purpose of the resource.
647
+ :param pulumi.Input[builtins.str] folder_id: The parent resource name in the form of `folders/{folder_id}/locations/global`.
648
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs **Note**: This field is non-authoritative, and will only manage the labels present in your
649
+ configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
650
+ :param pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestratedResourceArgs', 'V2PolicyOrchestratorForFolderOrchestratedResourceArgsDict']] orchestrated_resource: Represents a resource that is being orchestrated by the policy orchestrator.
651
+ Structure is documented below.
652
+ :param pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestrationScopeArgs', 'V2PolicyOrchestratorForFolderOrchestrationScopeArgsDict']] orchestration_scope: Defines a set of selectors which drive which resources are in scope of policy orchestration.
653
+ :param pulumi.Input[builtins.str] policy_orchestrator_id: The logical identifier of the policy orchestrator, with the following
654
+ restrictions:
655
+ * Must contain only lowercase letters, numbers, and hyphens.
656
+ * Must start with a letter.
657
+ * Must be between 1-63 characters.
658
+ * Must end with a number or a letter.
659
+ * Must be unique within the parent.
660
+ :param pulumi.Input[builtins.str] state: (Output)
661
+ State of the iteration.
662
+ Possible values:
663
+ PROCESSING
664
+ COMPLETED
665
+ FAILED
666
+ CANCELLED
667
+ UNKNOWN
668
+ """
669
+ ...
670
+ @overload
671
+ def __init__(__self__,
672
+ resource_name: str,
673
+ args: V2PolicyOrchestratorForFolderArgs,
674
+ opts: Optional[pulumi.ResourceOptions] = None):
675
+ """
676
+ PolicyOrchestrator helps managing project+zone level policy resources (e.g.
677
+ OS Policy Assignments), by providing tools to create, update and delete them
678
+ across projects and locations, at scale.
679
+
680
+ ## Example Usage
681
+
682
+ ### Osconfigv2 Policy Orchestrator For Folder Basic
683
+
684
+ ```python
685
+ import pulumi
686
+ import pulumi_gcp as gcp
687
+ import pulumi_time as time
688
+
689
+ my_folder = gcp.organizations.Folder("my_folder",
690
+ display_name="po-folder",
691
+ parent="organizations/123456789",
692
+ deletion_protection=False)
693
+ osconfig_sa = gcp.folder.ServiceIdentity("osconfig_sa",
694
+ folder=my_folder.folder_id,
695
+ service="osconfig.googleapis.com")
696
+ ripple_sa = gcp.folder.ServiceIdentity("ripple_sa",
697
+ folder=my_folder.folder_id,
698
+ service="progressiverollout.googleapis.com")
699
+ wait30_sec = time.index.Sleep("wait_30_sec", create_duration=30s,
700
+ opts = pulumi.ResourceOptions(depends_on=[
701
+ osconfig_sa,
702
+ ripple_sa,
703
+ ]))
704
+ iam_osconfig_service_agent = gcp.folder.IAMMember("iam_osconfig_service_agent",
705
+ folder=my_folder.folder_id,
706
+ role="roles/osconfig.serviceAgent",
707
+ member=osconfig_sa.member,
708
+ opts = pulumi.ResourceOptions(depends_on=[wait30_sec]))
709
+ iam_osconfig_rollout_service_agent = gcp.folder.IAMMember("iam_osconfig_rollout_service_agent",
710
+ folder=my_folder.folder_id,
711
+ role="roles/osconfig.rolloutServiceAgent",
712
+ member=my_folder.folder_id.apply(lambda folder_id: f"serviceAccount:service-folder-{folder_id}@gcp-sa-osconfig-rollout.iam.gserviceaccount.com"),
713
+ opts = pulumi.ResourceOptions(depends_on=[iam_osconfig_service_agent]))
714
+ iam_progressiverollout_service_agent = gcp.folder.IAMMember("iam_progressiverollout_service_agent",
715
+ folder=my_folder.folder_id,
716
+ role="roles/progressiverollout.serviceAgent",
717
+ member=ripple_sa.member,
718
+ opts = pulumi.ResourceOptions(depends_on=[iam_osconfig_rollout_service_agent]))
719
+ wait3_min = time.index.Sleep("wait_3_min", create_duration=180s,
720
+ opts = pulumi.ResourceOptions(depends_on=[iam_progressiverollout_service_agent]))
721
+ policy_orchestrator_for_folder = gcp.osconfig.V2PolicyOrchestratorForFolder("policy_orchestrator_for_folder",
722
+ policy_orchestrator_id="po-folder",
723
+ folder_id=my_folder.folder_id,
724
+ state="ACTIVE",
725
+ action="UPSERT",
726
+ orchestrated_resource={
727
+ "id": "test-orchestrated-resource-folder",
728
+ "os_policy_assignment_v1_payload": {
729
+ "os_policies": [{
730
+ "id": "test-os-policy-folder",
731
+ "mode": "VALIDATION",
732
+ "resource_groups": [{
733
+ "resources": [{
734
+ "id": "resource-tf",
735
+ "file": {
736
+ "content": "file-content-tf",
737
+ "path": "file-path-tf-1",
738
+ "state": "PRESENT",
739
+ },
740
+ }],
741
+ }],
742
+ }],
743
+ "instance_filter": {
744
+ "inventories": [{
745
+ "os_short_name": "windows-10",
746
+ }],
747
+ },
748
+ "rollout": {
749
+ "disruption_budget": {
750
+ "percent": 100,
751
+ },
752
+ "min_wait_duration": "60s",
753
+ },
754
+ },
755
+ },
756
+ labels={
757
+ "state": "active",
758
+ },
759
+ orchestration_scope={
760
+ "selectors": [{
761
+ "location_selector": {
762
+ "included_locations": [""],
763
+ },
764
+ }],
765
+ },
766
+ opts = pulumi.ResourceOptions(depends_on=[wait3_min]))
767
+ ```
768
+
769
+ ## Import
770
+
771
+ PolicyOrchestratorForFolder can be imported using any of these accepted formats:
772
+
773
+ * `folders/{{folder_id}}/locations/global/policyOrchestrators/{{policy_orchestrator_id}}`
774
+
775
+ * `{{folder_id}}/{{policy_orchestrator_id}}`
776
+
777
+ When using the `pulumi import` command, PolicyOrchestratorForFolder can be imported using one of the formats above. For example:
778
+
779
+ ```sh
780
+ $ pulumi import gcp:osconfig/v2PolicyOrchestratorForFolder:V2PolicyOrchestratorForFolder default folders/{{folder_id}}/locations/global/policyOrchestrators/{{policy_orchestrator_id}}
781
+ ```
782
+
783
+ ```sh
784
+ $ pulumi import gcp:osconfig/v2PolicyOrchestratorForFolder:V2PolicyOrchestratorForFolder default {{folder_id}}/{{policy_orchestrator_id}}
785
+ ```
786
+
787
+ :param str resource_name: The name of the resource.
788
+ :param V2PolicyOrchestratorForFolderArgs args: The arguments to use to populate this resource's properties.
789
+ :param pulumi.ResourceOptions opts: Options for the resource.
790
+ """
791
+ ...
792
+ def __init__(__self__, resource_name: str, *args, **kwargs):
793
+ resource_args, opts = _utilities.get_resource_args_opts(V2PolicyOrchestratorForFolderArgs, pulumi.ResourceOptions, *args, **kwargs)
794
+ if resource_args is not None:
795
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
796
+ else:
797
+ __self__._internal_init(resource_name, *args, **kwargs)
798
+
799
+ def _internal_init(__self__,
800
+ resource_name: str,
801
+ opts: Optional[pulumi.ResourceOptions] = None,
802
+ action: Optional[pulumi.Input[builtins.str]] = None,
803
+ description: Optional[pulumi.Input[builtins.str]] = None,
804
+ folder_id: Optional[pulumi.Input[builtins.str]] = None,
805
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
806
+ orchestrated_resource: Optional[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestratedResourceArgs', 'V2PolicyOrchestratorForFolderOrchestratedResourceArgsDict']]] = None,
807
+ orchestration_scope: Optional[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestrationScopeArgs', 'V2PolicyOrchestratorForFolderOrchestrationScopeArgsDict']]] = None,
808
+ policy_orchestrator_id: Optional[pulumi.Input[builtins.str]] = None,
809
+ state: Optional[pulumi.Input[builtins.str]] = None,
810
+ __props__=None):
811
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
812
+ if not isinstance(opts, pulumi.ResourceOptions):
813
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
814
+ if opts.id is None:
815
+ if __props__ is not None:
816
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
817
+ __props__ = V2PolicyOrchestratorForFolderArgs.__new__(V2PolicyOrchestratorForFolderArgs)
818
+
819
+ if action is None and not opts.urn:
820
+ raise TypeError("Missing required property 'action'")
821
+ __props__.__dict__["action"] = action
822
+ __props__.__dict__["description"] = description
823
+ if folder_id is None and not opts.urn:
824
+ raise TypeError("Missing required property 'folder_id'")
825
+ __props__.__dict__["folder_id"] = folder_id
826
+ __props__.__dict__["labels"] = labels
827
+ if orchestrated_resource is None and not opts.urn:
828
+ raise TypeError("Missing required property 'orchestrated_resource'")
829
+ __props__.__dict__["orchestrated_resource"] = orchestrated_resource
830
+ __props__.__dict__["orchestration_scope"] = orchestration_scope
831
+ if policy_orchestrator_id is None and not opts.urn:
832
+ raise TypeError("Missing required property 'policy_orchestrator_id'")
833
+ __props__.__dict__["policy_orchestrator_id"] = policy_orchestrator_id
834
+ __props__.__dict__["state"] = state
835
+ __props__.__dict__["create_time"] = None
836
+ __props__.__dict__["effective_labels"] = None
837
+ __props__.__dict__["etag"] = None
838
+ __props__.__dict__["name"] = None
839
+ __props__.__dict__["orchestration_states"] = None
840
+ __props__.__dict__["pulumi_labels"] = None
841
+ __props__.__dict__["reconciling"] = None
842
+ __props__.__dict__["update_time"] = None
843
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
844
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
845
+ super(V2PolicyOrchestratorForFolder, __self__).__init__(
846
+ 'gcp:osconfig/v2PolicyOrchestratorForFolder:V2PolicyOrchestratorForFolder',
847
+ resource_name,
848
+ __props__,
849
+ opts)
850
+
851
+ @staticmethod
852
+ def get(resource_name: str,
853
+ id: pulumi.Input[str],
854
+ opts: Optional[pulumi.ResourceOptions] = None,
855
+ action: Optional[pulumi.Input[builtins.str]] = None,
856
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
857
+ description: Optional[pulumi.Input[builtins.str]] = None,
858
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
859
+ etag: Optional[pulumi.Input[builtins.str]] = None,
860
+ folder_id: Optional[pulumi.Input[builtins.str]] = None,
861
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
862
+ name: Optional[pulumi.Input[builtins.str]] = None,
863
+ orchestrated_resource: Optional[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestratedResourceArgs', 'V2PolicyOrchestratorForFolderOrchestratedResourceArgsDict']]] = None,
864
+ orchestration_scope: Optional[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestrationScopeArgs', 'V2PolicyOrchestratorForFolderOrchestrationScopeArgsDict']]] = None,
865
+ orchestration_states: Optional[pulumi.Input[Sequence[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestrationStateArgs', 'V2PolicyOrchestratorForFolderOrchestrationStateArgsDict']]]]] = None,
866
+ policy_orchestrator_id: Optional[pulumi.Input[builtins.str]] = None,
867
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
868
+ reconciling: Optional[pulumi.Input[builtins.bool]] = None,
869
+ state: Optional[pulumi.Input[builtins.str]] = None,
870
+ update_time: Optional[pulumi.Input[builtins.str]] = None) -> 'V2PolicyOrchestratorForFolder':
871
+ """
872
+ Get an existing V2PolicyOrchestratorForFolder resource's state with the given name, id, and optional extra
873
+ properties used to qualify the lookup.
874
+
875
+ :param str resource_name: The unique name of the resulting resource.
876
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
877
+ :param pulumi.ResourceOptions opts: Options for the resource.
878
+ :param pulumi.Input[builtins.str] action: Action to be done by the orchestrator in
879
+ `projects/{project_id}/zones/{zone_id}` locations defined by the
880
+ `orchestration_scope`. Allowed values:
881
+ - `UPSERT` - Orchestrator will create or update target resources.
882
+ - `DELETE` - Orchestrator will delete target resources, if they exist
883
+ :param pulumi.Input[builtins.str] create_time: Timestamp when the policy orchestrator resource was created.
884
+ :param pulumi.Input[builtins.str] description: Freeform text describing the purpose of the resource.
885
+ :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.
886
+ :param pulumi.Input[builtins.str] etag: This checksum is computed by the server based on the value of other
887
+ fields, and may be sent on update and delete requests to ensure the
888
+ client has an up-to-date value before proceeding.
889
+ :param pulumi.Input[builtins.str] folder_id: The parent resource name in the form of `folders/{folder_id}/locations/global`.
890
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] labels: Labels as key value pairs **Note**: This field is non-authoritative, and will only manage the labels present in your
891
+ configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
892
+ :param pulumi.Input[builtins.str] name: Identifier. In form of
893
+ * `organizations/{organization_id}/locations/global/policyOrchestrators/{orchestrator_id}`
894
+ * `folders/{folder_id}/locations/global/policyOrchestrators/{orchestrator_id}`
895
+ * `projects/{project_id_or_number}/locations/global/policyOrchestrators/{orchestrator_id}`
896
+ :param pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestratedResourceArgs', 'V2PolicyOrchestratorForFolderOrchestratedResourceArgsDict']] orchestrated_resource: Represents a resource that is being orchestrated by the policy orchestrator.
897
+ Structure is documented below.
898
+ :param pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestrationScopeArgs', 'V2PolicyOrchestratorForFolderOrchestrationScopeArgsDict']] orchestration_scope: Defines a set of selectors which drive which resources are in scope of policy orchestration.
899
+ :param pulumi.Input[Sequence[pulumi.Input[Union['V2PolicyOrchestratorForFolderOrchestrationStateArgs', 'V2PolicyOrchestratorForFolderOrchestrationStateArgsDict']]]] orchestration_states: Describes the state of the orchestration process.
900
+ Structure is documented below.
901
+ :param pulumi.Input[builtins.str] policy_orchestrator_id: The logical identifier of the policy orchestrator, with the following
902
+ restrictions:
903
+ * Must contain only lowercase letters, numbers, and hyphens.
904
+ * Must start with a letter.
905
+ * Must be between 1-63 characters.
906
+ * Must end with a number or a letter.
907
+ * Must be unique within the parent.
908
+ :param pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]] pulumi_labels: The combination of labels configured directly on the resource
909
+ and default labels configured on the provider.
910
+ :param pulumi.Input[builtins.bool] reconciling: Set to true, if the there are ongoing changes being applied by the
911
+ orchestrator.
912
+ :param pulumi.Input[builtins.str] state: (Output)
913
+ State of the iteration.
914
+ Possible values:
915
+ PROCESSING
916
+ COMPLETED
917
+ FAILED
918
+ CANCELLED
919
+ UNKNOWN
920
+ :param pulumi.Input[builtins.str] update_time: Timestamp when the policy orchestrator resource was last modified.
921
+ """
922
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
923
+
924
+ __props__ = _V2PolicyOrchestratorForFolderState.__new__(_V2PolicyOrchestratorForFolderState)
925
+
926
+ __props__.__dict__["action"] = action
927
+ __props__.__dict__["create_time"] = create_time
928
+ __props__.__dict__["description"] = description
929
+ __props__.__dict__["effective_labels"] = effective_labels
930
+ __props__.__dict__["etag"] = etag
931
+ __props__.__dict__["folder_id"] = folder_id
932
+ __props__.__dict__["labels"] = labels
933
+ __props__.__dict__["name"] = name
934
+ __props__.__dict__["orchestrated_resource"] = orchestrated_resource
935
+ __props__.__dict__["orchestration_scope"] = orchestration_scope
936
+ __props__.__dict__["orchestration_states"] = orchestration_states
937
+ __props__.__dict__["policy_orchestrator_id"] = policy_orchestrator_id
938
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
939
+ __props__.__dict__["reconciling"] = reconciling
940
+ __props__.__dict__["state"] = state
941
+ __props__.__dict__["update_time"] = update_time
942
+ return V2PolicyOrchestratorForFolder(resource_name, opts=opts, __props__=__props__)
943
+
944
+ @property
945
+ @pulumi.getter
946
+ def action(self) -> pulumi.Output[builtins.str]:
947
+ """
948
+ Action to be done by the orchestrator in
949
+ `projects/{project_id}/zones/{zone_id}` locations defined by the
950
+ `orchestration_scope`. Allowed values:
951
+ - `UPSERT` - Orchestrator will create or update target resources.
952
+ - `DELETE` - Orchestrator will delete target resources, if they exist
953
+ """
954
+ return pulumi.get(self, "action")
955
+
956
+ @property
957
+ @pulumi.getter(name="createTime")
958
+ def create_time(self) -> pulumi.Output[builtins.str]:
959
+ """
960
+ Timestamp when the policy orchestrator resource was created.
961
+ """
962
+ return pulumi.get(self, "create_time")
963
+
964
+ @property
965
+ @pulumi.getter
966
+ def description(self) -> pulumi.Output[Optional[builtins.str]]:
967
+ """
968
+ Freeform text describing the purpose of the resource.
969
+ """
970
+ return pulumi.get(self, "description")
971
+
972
+ @property
973
+ @pulumi.getter(name="effectiveLabels")
974
+ def effective_labels(self) -> pulumi.Output[Mapping[str, builtins.str]]:
975
+ """
976
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
977
+ """
978
+ return pulumi.get(self, "effective_labels")
979
+
980
+ @property
981
+ @pulumi.getter
982
+ def etag(self) -> pulumi.Output[builtins.str]:
983
+ """
984
+ This checksum is computed by the server based on the value of other
985
+ fields, and may be sent on update and delete requests to ensure the
986
+ client has an up-to-date value before proceeding.
987
+ """
988
+ return pulumi.get(self, "etag")
989
+
990
+ @property
991
+ @pulumi.getter(name="folderId")
992
+ def folder_id(self) -> pulumi.Output[builtins.str]:
993
+ """
994
+ The parent resource name in the form of `folders/{folder_id}/locations/global`.
995
+ """
996
+ return pulumi.get(self, "folder_id")
997
+
998
+ @property
999
+ @pulumi.getter
1000
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, builtins.str]]]:
1001
+ """
1002
+ Labels as key value pairs **Note**: This field is non-authoritative, and will only manage the labels present in your
1003
+ configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.
1004
+ """
1005
+ return pulumi.get(self, "labels")
1006
+
1007
+ @property
1008
+ @pulumi.getter
1009
+ def name(self) -> pulumi.Output[builtins.str]:
1010
+ """
1011
+ Identifier. In form of
1012
+ * `organizations/{organization_id}/locations/global/policyOrchestrators/{orchestrator_id}`
1013
+ * `folders/{folder_id}/locations/global/policyOrchestrators/{orchestrator_id}`
1014
+ * `projects/{project_id_or_number}/locations/global/policyOrchestrators/{orchestrator_id}`
1015
+ """
1016
+ return pulumi.get(self, "name")
1017
+
1018
+ @property
1019
+ @pulumi.getter(name="orchestratedResource")
1020
+ def orchestrated_resource(self) -> pulumi.Output['outputs.V2PolicyOrchestratorForFolderOrchestratedResource']:
1021
+ """
1022
+ Represents a resource that is being orchestrated by the policy orchestrator.
1023
+ Structure is documented below.
1024
+ """
1025
+ return pulumi.get(self, "orchestrated_resource")
1026
+
1027
+ @property
1028
+ @pulumi.getter(name="orchestrationScope")
1029
+ def orchestration_scope(self) -> pulumi.Output[Optional['outputs.V2PolicyOrchestratorForFolderOrchestrationScope']]:
1030
+ """
1031
+ Defines a set of selectors which drive which resources are in scope of policy orchestration.
1032
+ """
1033
+ return pulumi.get(self, "orchestration_scope")
1034
+
1035
+ @property
1036
+ @pulumi.getter(name="orchestrationStates")
1037
+ def orchestration_states(self) -> pulumi.Output[Sequence['outputs.V2PolicyOrchestratorForFolderOrchestrationState']]:
1038
+ """
1039
+ Describes the state of the orchestration process.
1040
+ Structure is documented below.
1041
+ """
1042
+ return pulumi.get(self, "orchestration_states")
1043
+
1044
+ @property
1045
+ @pulumi.getter(name="policyOrchestratorId")
1046
+ def policy_orchestrator_id(self) -> pulumi.Output[builtins.str]:
1047
+ """
1048
+ The logical identifier of the policy orchestrator, with the following
1049
+ restrictions:
1050
+ * Must contain only lowercase letters, numbers, and hyphens.
1051
+ * Must start with a letter.
1052
+ * Must be between 1-63 characters.
1053
+ * Must end with a number or a letter.
1054
+ * Must be unique within the parent.
1055
+ """
1056
+ return pulumi.get(self, "policy_orchestrator_id")
1057
+
1058
+ @property
1059
+ @pulumi.getter(name="pulumiLabels")
1060
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, builtins.str]]:
1061
+ """
1062
+ The combination of labels configured directly on the resource
1063
+ and default labels configured on the provider.
1064
+ """
1065
+ return pulumi.get(self, "pulumi_labels")
1066
+
1067
+ @property
1068
+ @pulumi.getter
1069
+ def reconciling(self) -> pulumi.Output[builtins.bool]:
1070
+ """
1071
+ Set to true, if the there are ongoing changes being applied by the
1072
+ orchestrator.
1073
+ """
1074
+ return pulumi.get(self, "reconciling")
1075
+
1076
+ @property
1077
+ @pulumi.getter
1078
+ def state(self) -> pulumi.Output[Optional[builtins.str]]:
1079
+ """
1080
+ (Output)
1081
+ State of the iteration.
1082
+ Possible values:
1083
+ PROCESSING
1084
+ COMPLETED
1085
+ FAILED
1086
+ CANCELLED
1087
+ UNKNOWN
1088
+ """
1089
+ return pulumi.get(self, "state")
1090
+
1091
+ @property
1092
+ @pulumi.getter(name="updateTime")
1093
+ def update_time(self) -> pulumi.Output[builtins.str]:
1094
+ """
1095
+ Timestamp when the policy orchestrator resource was last modified.
1096
+ """
1097
+ return pulumi.get(self, "update_time")
1098
+