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