pulumi-gcp 8.34.0a1749538186__py3-none-any.whl → 8.34.0a1749648575__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 +32 -0
  2. pulumi_gcp/alloydb/cluster.py +16 -64
  3. pulumi_gcp/apigee/_inputs.py +89 -0
  4. pulumi_gcp/apigee/environment.py +68 -2
  5. pulumi_gcp/apigee/outputs.py +88 -0
  6. pulumi_gcp/apihub/__init__.py +1 -0
  7. pulumi_gcp/apihub/_inputs.py +184 -0
  8. pulumi_gcp/apihub/curation.py +812 -0
  9. pulumi_gcp/apihub/outputs.py +165 -0
  10. pulumi_gcp/beyondcorp/get_security_gateway.py +12 -1
  11. pulumi_gcp/beyondcorp/security_gateway.py +28 -0
  12. pulumi_gcp/cloudrunv2/_inputs.py +463 -0
  13. pulumi_gcp/cloudrunv2/outputs.py +581 -1
  14. pulumi_gcp/cloudrunv2/worker_pool.py +0 -8
  15. pulumi_gcp/colab/runtime_template.py +4 -26
  16. pulumi_gcp/compute/__init__.py +3 -0
  17. pulumi_gcp/compute/_inputs.py +1551 -0
  18. pulumi_gcp/compute/interconnect.py +32 -0
  19. pulumi_gcp/compute/interconnect_attachment.py +28 -0
  20. pulumi_gcp/compute/interconnect_attachment_group.py +636 -0
  21. pulumi_gcp/compute/interconnect_group.py +586 -0
  22. pulumi_gcp/compute/outputs.py +1087 -0
  23. pulumi_gcp/compute/snapshot_settings.py +285 -0
  24. pulumi_gcp/container/_inputs.py +51 -18
  25. pulumi_gcp/container/cluster.py +47 -0
  26. pulumi_gcp/container/get_cluster.py +12 -1
  27. pulumi_gcp/container/outputs.py +71 -16
  28. pulumi_gcp/dataplex/_inputs.py +20 -0
  29. pulumi_gcp/dataplex/datascan.py +2 -0
  30. pulumi_gcp/dataplex/outputs.py +15 -1
  31. pulumi_gcp/eventarc/_inputs.py +12 -5
  32. pulumi_gcp/eventarc/outputs.py +8 -3
  33. pulumi_gcp/eventarc/pipeline.py +0 -12
  34. pulumi_gcp/gemini/data_sharing_with_google_setting.py +58 -9
  35. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +11 -16
  36. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +51 -2
  37. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +11 -16
  38. pulumi_gcp/gkehub/_inputs.py +84 -7
  39. pulumi_gcp/gkehub/feature.py +38 -0
  40. pulumi_gcp/gkehub/outputs.py +102 -7
  41. pulumi_gcp/gkehub/scope_rbac_role_binding.py +54 -2
  42. pulumi_gcp/gkeonprem/_inputs.py +54 -0
  43. pulumi_gcp/gkeonprem/outputs.py +49 -0
  44. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +71 -0
  45. pulumi_gcp/iam/workload_identity_pool_namespace.py +4 -4
  46. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  47. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  48. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  49. pulumi_gcp/managedkafka/connector.py +4 -4
  50. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  51. pulumi_gcp/networksecurity/backend_authentication_config.py +64 -0
  52. pulumi_gcp/orgpolicy/policy.py +2 -2
  53. pulumi_gcp/pubsub/_inputs.py +392 -0
  54. pulumi_gcp/pubsub/get_subscription.py +12 -1
  55. pulumi_gcp/pubsub/get_topic.py +12 -1
  56. pulumi_gcp/pubsub/outputs.py +548 -0
  57. pulumi_gcp/pubsub/subscription.py +67 -6
  58. pulumi_gcp/pubsub/topic.py +61 -0
  59. pulumi_gcp/pulumi-plugin.json +1 -1
  60. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  61. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  62. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/METADATA +1 -1
  63. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/RECORD +65 -61
  64. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/WHEEL +0 -0
  65. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,812 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
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__ = ['CurationArgs', 'Curation']
21
+
22
+ @pulumi.input_type
23
+ class CurationArgs:
24
+ def __init__(__self__, *,
25
+ curation_id: pulumi.Input[builtins.str],
26
+ display_name: pulumi.Input[builtins.str],
27
+ endpoint: pulumi.Input['CurationEndpointArgs'],
28
+ location: pulumi.Input[builtins.str],
29
+ description: Optional[pulumi.Input[builtins.str]] = None,
30
+ project: Optional[pulumi.Input[builtins.str]] = None):
31
+ """
32
+ The set of arguments for constructing a Curation resource.
33
+ :param pulumi.Input[builtins.str] curation_id: The ID to use for the curation resource, which will become the final
34
+ component of the curations's resource name. This field is optional.
35
+ * If provided, the same will be used. The service will throw an error if
36
+ the specified ID is already used by another curation resource in the API
37
+ hub.
38
+ * If not provided, a system generated ID will be used.
39
+ This value should be 4-500 characters, and valid characters
40
+ are /a-z[0-9]-_/.
41
+ :param pulumi.Input[builtins.str] display_name: The display name of the curation.
42
+ :param pulumi.Input['CurationEndpointArgs'] endpoint: The endpoint to be triggered for curation.
43
+ The endpoint will be invoked with a request payload containing
44
+ ApiMetadata.
45
+ Response should contain curated data in the form of
46
+ ApiMetadata.
47
+ Structure is documented below.
48
+ :param pulumi.Input[builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
49
+ :param pulumi.Input[builtins.str] description: The description of the curation.
50
+ """
51
+ pulumi.set(__self__, "curation_id", curation_id)
52
+ pulumi.set(__self__, "display_name", display_name)
53
+ pulumi.set(__self__, "endpoint", endpoint)
54
+ pulumi.set(__self__, "location", location)
55
+ if description is not None:
56
+ pulumi.set(__self__, "description", description)
57
+ if project is not None:
58
+ pulumi.set(__self__, "project", project)
59
+
60
+ @property
61
+ @pulumi.getter(name="curationId")
62
+ def curation_id(self) -> pulumi.Input[builtins.str]:
63
+ """
64
+ The ID to use for the curation resource, which will become the final
65
+ component of the curations's resource name. This field is optional.
66
+ * If provided, the same will be used. The service will throw an error if
67
+ the specified ID is already used by another curation resource in the API
68
+ hub.
69
+ * If not provided, a system generated ID will be used.
70
+ This value should be 4-500 characters, and valid characters
71
+ are /a-z[0-9]-_/.
72
+ """
73
+ return pulumi.get(self, "curation_id")
74
+
75
+ @curation_id.setter
76
+ def curation_id(self, value: pulumi.Input[builtins.str]):
77
+ pulumi.set(self, "curation_id", value)
78
+
79
+ @property
80
+ @pulumi.getter(name="displayName")
81
+ def display_name(self) -> pulumi.Input[builtins.str]:
82
+ """
83
+ The display name of the curation.
84
+ """
85
+ return pulumi.get(self, "display_name")
86
+
87
+ @display_name.setter
88
+ def display_name(self, value: pulumi.Input[builtins.str]):
89
+ pulumi.set(self, "display_name", value)
90
+
91
+ @property
92
+ @pulumi.getter
93
+ def endpoint(self) -> pulumi.Input['CurationEndpointArgs']:
94
+ """
95
+ The endpoint to be triggered for curation.
96
+ The endpoint will be invoked with a request payload containing
97
+ ApiMetadata.
98
+ Response should contain curated data in the form of
99
+ ApiMetadata.
100
+ Structure is documented below.
101
+ """
102
+ return pulumi.get(self, "endpoint")
103
+
104
+ @endpoint.setter
105
+ def endpoint(self, value: pulumi.Input['CurationEndpointArgs']):
106
+ pulumi.set(self, "endpoint", value)
107
+
108
+ @property
109
+ @pulumi.getter
110
+ def location(self) -> pulumi.Input[builtins.str]:
111
+ """
112
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
113
+ """
114
+ return pulumi.get(self, "location")
115
+
116
+ @location.setter
117
+ def location(self, value: pulumi.Input[builtins.str]):
118
+ pulumi.set(self, "location", value)
119
+
120
+ @property
121
+ @pulumi.getter
122
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
123
+ """
124
+ The description of the curation.
125
+ """
126
+ return pulumi.get(self, "description")
127
+
128
+ @description.setter
129
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
130
+ pulumi.set(self, "description", value)
131
+
132
+ @property
133
+ @pulumi.getter
134
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
135
+ return pulumi.get(self, "project")
136
+
137
+ @project.setter
138
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
139
+ pulumi.set(self, "project", value)
140
+
141
+
142
+ @pulumi.input_type
143
+ class _CurationState:
144
+ def __init__(__self__, *,
145
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
146
+ curation_id: Optional[pulumi.Input[builtins.str]] = None,
147
+ description: Optional[pulumi.Input[builtins.str]] = None,
148
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
149
+ endpoint: Optional[pulumi.Input['CurationEndpointArgs']] = None,
150
+ last_execution_error_code: Optional[pulumi.Input[builtins.str]] = None,
151
+ last_execution_error_message: Optional[pulumi.Input[builtins.str]] = None,
152
+ last_execution_state: Optional[pulumi.Input[builtins.str]] = None,
153
+ location: Optional[pulumi.Input[builtins.str]] = None,
154
+ name: Optional[pulumi.Input[builtins.str]] = None,
155
+ plugin_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input['CurationPluginInstanceActionArgs']]]] = None,
156
+ project: Optional[pulumi.Input[builtins.str]] = None,
157
+ update_time: Optional[pulumi.Input[builtins.str]] = None):
158
+ """
159
+ Input properties used for looking up and filtering Curation resources.
160
+ :param pulumi.Input[builtins.str] create_time: The time at which the curation was created.
161
+ :param pulumi.Input[builtins.str] curation_id: The ID to use for the curation resource, which will become the final
162
+ component of the curations's resource name. This field is optional.
163
+ * If provided, the same will be used. The service will throw an error if
164
+ the specified ID is already used by another curation resource in the API
165
+ hub.
166
+ * If not provided, a system generated ID will be used.
167
+ This value should be 4-500 characters, and valid characters
168
+ are /a-z[0-9]-_/.
169
+ :param pulumi.Input[builtins.str] description: The description of the curation.
170
+ :param pulumi.Input[builtins.str] display_name: The display name of the curation.
171
+ :param pulumi.Input['CurationEndpointArgs'] endpoint: The endpoint to be triggered for curation.
172
+ The endpoint will be invoked with a request payload containing
173
+ ApiMetadata.
174
+ Response should contain curated data in the form of
175
+ ApiMetadata.
176
+ Structure is documented below.
177
+ :param pulumi.Input[builtins.str] last_execution_error_code: The error code of the last execution of the curation. The error code is
178
+ populated only when the last execution state is failed.
179
+ Possible values:
180
+ ERROR_CODE_UNSPECIFIED
181
+ INTERNAL_ERROR
182
+ UNAUTHORIZED
183
+ :param pulumi.Input[builtins.str] last_execution_error_message: Error message describing the failure, if any, during the last execution of
184
+ the curation.
185
+ :param pulumi.Input[builtins.str] last_execution_state: The last execution state of the curation.
186
+ Possible values:
187
+ LAST_EXECUTION_STATE_UNSPECIFIED
188
+ SUCCEEDED
189
+ FAILED
190
+ :param pulumi.Input[builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
191
+ :param pulumi.Input[builtins.str] name: Identifier. The name of the curation.
192
+ Format:
193
+ `projects/{project}/locations/{location}/curations/{curation}`
194
+ :param pulumi.Input[Sequence[pulumi.Input['CurationPluginInstanceActionArgs']]] plugin_instance_actions: The plugin instances and associated actions that are using the curation.
195
+ Note: A particular curation could be used by multiple plugin instances or
196
+ multiple actions in a plugin instance.
197
+ Structure is documented below.
198
+ :param pulumi.Input[builtins.str] update_time: The time at which the curation was last updated.
199
+ """
200
+ if create_time is not None:
201
+ pulumi.set(__self__, "create_time", create_time)
202
+ if curation_id is not None:
203
+ pulumi.set(__self__, "curation_id", curation_id)
204
+ if description is not None:
205
+ pulumi.set(__self__, "description", description)
206
+ if display_name is not None:
207
+ pulumi.set(__self__, "display_name", display_name)
208
+ if endpoint is not None:
209
+ pulumi.set(__self__, "endpoint", endpoint)
210
+ if last_execution_error_code is not None:
211
+ pulumi.set(__self__, "last_execution_error_code", last_execution_error_code)
212
+ if last_execution_error_message is not None:
213
+ pulumi.set(__self__, "last_execution_error_message", last_execution_error_message)
214
+ if last_execution_state is not None:
215
+ pulumi.set(__self__, "last_execution_state", last_execution_state)
216
+ if location is not None:
217
+ pulumi.set(__self__, "location", location)
218
+ if name is not None:
219
+ pulumi.set(__self__, "name", name)
220
+ if plugin_instance_actions is not None:
221
+ pulumi.set(__self__, "plugin_instance_actions", plugin_instance_actions)
222
+ if project is not None:
223
+ pulumi.set(__self__, "project", project)
224
+ if update_time is not None:
225
+ pulumi.set(__self__, "update_time", update_time)
226
+
227
+ @property
228
+ @pulumi.getter(name="createTime")
229
+ def create_time(self) -> Optional[pulumi.Input[builtins.str]]:
230
+ """
231
+ The time at which the curation was created.
232
+ """
233
+ return pulumi.get(self, "create_time")
234
+
235
+ @create_time.setter
236
+ def create_time(self, value: Optional[pulumi.Input[builtins.str]]):
237
+ pulumi.set(self, "create_time", value)
238
+
239
+ @property
240
+ @pulumi.getter(name="curationId")
241
+ def curation_id(self) -> Optional[pulumi.Input[builtins.str]]:
242
+ """
243
+ The ID to use for the curation resource, which will become the final
244
+ component of the curations's resource name. This field is optional.
245
+ * If provided, the same will be used. The service will throw an error if
246
+ the specified ID is already used by another curation resource in the API
247
+ hub.
248
+ * If not provided, a system generated ID will be used.
249
+ This value should be 4-500 characters, and valid characters
250
+ are /a-z[0-9]-_/.
251
+ """
252
+ return pulumi.get(self, "curation_id")
253
+
254
+ @curation_id.setter
255
+ def curation_id(self, value: Optional[pulumi.Input[builtins.str]]):
256
+ pulumi.set(self, "curation_id", value)
257
+
258
+ @property
259
+ @pulumi.getter
260
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
261
+ """
262
+ The description of the curation.
263
+ """
264
+ return pulumi.get(self, "description")
265
+
266
+ @description.setter
267
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
268
+ pulumi.set(self, "description", value)
269
+
270
+ @property
271
+ @pulumi.getter(name="displayName")
272
+ def display_name(self) -> Optional[pulumi.Input[builtins.str]]:
273
+ """
274
+ The display name of the curation.
275
+ """
276
+ return pulumi.get(self, "display_name")
277
+
278
+ @display_name.setter
279
+ def display_name(self, value: Optional[pulumi.Input[builtins.str]]):
280
+ pulumi.set(self, "display_name", value)
281
+
282
+ @property
283
+ @pulumi.getter
284
+ def endpoint(self) -> Optional[pulumi.Input['CurationEndpointArgs']]:
285
+ """
286
+ The endpoint to be triggered for curation.
287
+ The endpoint will be invoked with a request payload containing
288
+ ApiMetadata.
289
+ Response should contain curated data in the form of
290
+ ApiMetadata.
291
+ Structure is documented below.
292
+ """
293
+ return pulumi.get(self, "endpoint")
294
+
295
+ @endpoint.setter
296
+ def endpoint(self, value: Optional[pulumi.Input['CurationEndpointArgs']]):
297
+ pulumi.set(self, "endpoint", value)
298
+
299
+ @property
300
+ @pulumi.getter(name="lastExecutionErrorCode")
301
+ def last_execution_error_code(self) -> Optional[pulumi.Input[builtins.str]]:
302
+ """
303
+ The error code of the last execution of the curation. The error code is
304
+ populated only when the last execution state is failed.
305
+ Possible values:
306
+ ERROR_CODE_UNSPECIFIED
307
+ INTERNAL_ERROR
308
+ UNAUTHORIZED
309
+ """
310
+ return pulumi.get(self, "last_execution_error_code")
311
+
312
+ @last_execution_error_code.setter
313
+ def last_execution_error_code(self, value: Optional[pulumi.Input[builtins.str]]):
314
+ pulumi.set(self, "last_execution_error_code", value)
315
+
316
+ @property
317
+ @pulumi.getter(name="lastExecutionErrorMessage")
318
+ def last_execution_error_message(self) -> Optional[pulumi.Input[builtins.str]]:
319
+ """
320
+ Error message describing the failure, if any, during the last execution of
321
+ the curation.
322
+ """
323
+ return pulumi.get(self, "last_execution_error_message")
324
+
325
+ @last_execution_error_message.setter
326
+ def last_execution_error_message(self, value: Optional[pulumi.Input[builtins.str]]):
327
+ pulumi.set(self, "last_execution_error_message", value)
328
+
329
+ @property
330
+ @pulumi.getter(name="lastExecutionState")
331
+ def last_execution_state(self) -> Optional[pulumi.Input[builtins.str]]:
332
+ """
333
+ The last execution state of the curation.
334
+ Possible values:
335
+ LAST_EXECUTION_STATE_UNSPECIFIED
336
+ SUCCEEDED
337
+ FAILED
338
+ """
339
+ return pulumi.get(self, "last_execution_state")
340
+
341
+ @last_execution_state.setter
342
+ def last_execution_state(self, value: Optional[pulumi.Input[builtins.str]]):
343
+ pulumi.set(self, "last_execution_state", value)
344
+
345
+ @property
346
+ @pulumi.getter
347
+ def location(self) -> Optional[pulumi.Input[builtins.str]]:
348
+ """
349
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
350
+ """
351
+ return pulumi.get(self, "location")
352
+
353
+ @location.setter
354
+ def location(self, value: Optional[pulumi.Input[builtins.str]]):
355
+ pulumi.set(self, "location", value)
356
+
357
+ @property
358
+ @pulumi.getter
359
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
360
+ """
361
+ Identifier. The name of the curation.
362
+ Format:
363
+ `projects/{project}/locations/{location}/curations/{curation}`
364
+ """
365
+ return pulumi.get(self, "name")
366
+
367
+ @name.setter
368
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
369
+ pulumi.set(self, "name", value)
370
+
371
+ @property
372
+ @pulumi.getter(name="pluginInstanceActions")
373
+ def plugin_instance_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CurationPluginInstanceActionArgs']]]]:
374
+ """
375
+ The plugin instances and associated actions that are using the curation.
376
+ Note: A particular curation could be used by multiple plugin instances or
377
+ multiple actions in a plugin instance.
378
+ Structure is documented below.
379
+ """
380
+ return pulumi.get(self, "plugin_instance_actions")
381
+
382
+ @plugin_instance_actions.setter
383
+ def plugin_instance_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CurationPluginInstanceActionArgs']]]]):
384
+ pulumi.set(self, "plugin_instance_actions", value)
385
+
386
+ @property
387
+ @pulumi.getter
388
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
389
+ return pulumi.get(self, "project")
390
+
391
+ @project.setter
392
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
393
+ pulumi.set(self, "project", value)
394
+
395
+ @property
396
+ @pulumi.getter(name="updateTime")
397
+ def update_time(self) -> Optional[pulumi.Input[builtins.str]]:
398
+ """
399
+ The time at which the curation was last updated.
400
+ """
401
+ return pulumi.get(self, "update_time")
402
+
403
+ @update_time.setter
404
+ def update_time(self, value: Optional[pulumi.Input[builtins.str]]):
405
+ pulumi.set(self, "update_time", value)
406
+
407
+
408
+ @pulumi.type_token("gcp:apihub/curation:Curation")
409
+ class Curation(pulumi.CustomResource):
410
+ @overload
411
+ def __init__(__self__,
412
+ resource_name: str,
413
+ opts: Optional[pulumi.ResourceOptions] = None,
414
+ curation_id: Optional[pulumi.Input[builtins.str]] = None,
415
+ description: Optional[pulumi.Input[builtins.str]] = None,
416
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
417
+ endpoint: Optional[pulumi.Input[Union['CurationEndpointArgs', 'CurationEndpointArgsDict']]] = None,
418
+ location: Optional[pulumi.Input[builtins.str]] = None,
419
+ project: Optional[pulumi.Input[builtins.str]] = None,
420
+ __props__=None):
421
+ """
422
+ Description
423
+
424
+ ## Example Usage
425
+
426
+ ### Apihub Curation Basic
427
+
428
+ ```python
429
+ import pulumi
430
+ import pulumi_gcp as gcp
431
+
432
+ apihub_curation_basic = gcp.apihub.Curation("apihub_curation_basic",
433
+ location="us-central1",
434
+ curation_id="test",
435
+ project="apihub-terraform",
436
+ display_name="Test Curation",
437
+ description="This is a sample curation resource managed by Terraform.",
438
+ endpoint={
439
+ "application_integration_endpoint_details": {
440
+ "trigger_id": "api_trigger/curation_API_1",
441
+ "uri": "https://integrations.googleapis.com/v1/projects/1082615593856/locations/us-central1/integrations/curation:execute",
442
+ },
443
+ })
444
+ ```
445
+
446
+ ## Import
447
+
448
+ Curation can be imported using any of these accepted formats:
449
+
450
+ * `projects/{{project}}/locations/{{location}}/curations/{{curation_id}}`
451
+
452
+ * `{{project}}/{{location}}/{{curation_id}}`
453
+
454
+ * `{{location}}/{{curation_id}}`
455
+
456
+ When using the `pulumi import` command, Curation can be imported using one of the formats above. For example:
457
+
458
+ ```sh
459
+ $ pulumi import gcp:apihub/curation:Curation default projects/{{project}}/locations/{{location}}/curations/{{curation_id}}
460
+ ```
461
+
462
+ ```sh
463
+ $ pulumi import gcp:apihub/curation:Curation default {{project}}/{{location}}/{{curation_id}}
464
+ ```
465
+
466
+ ```sh
467
+ $ pulumi import gcp:apihub/curation:Curation default {{location}}/{{curation_id}}
468
+ ```
469
+
470
+ :param str resource_name: The name of the resource.
471
+ :param pulumi.ResourceOptions opts: Options for the resource.
472
+ :param pulumi.Input[builtins.str] curation_id: The ID to use for the curation resource, which will become the final
473
+ component of the curations's resource name. This field is optional.
474
+ * If provided, the same will be used. The service will throw an error if
475
+ the specified ID is already used by another curation resource in the API
476
+ hub.
477
+ * If not provided, a system generated ID will be used.
478
+ This value should be 4-500 characters, and valid characters
479
+ are /a-z[0-9]-_/.
480
+ :param pulumi.Input[builtins.str] description: The description of the curation.
481
+ :param pulumi.Input[builtins.str] display_name: The display name of the curation.
482
+ :param pulumi.Input[Union['CurationEndpointArgs', 'CurationEndpointArgsDict']] endpoint: The endpoint to be triggered for curation.
483
+ The endpoint will be invoked with a request payload containing
484
+ ApiMetadata.
485
+ Response should contain curated data in the form of
486
+ ApiMetadata.
487
+ Structure is documented below.
488
+ :param pulumi.Input[builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
489
+ """
490
+ ...
491
+ @overload
492
+ def __init__(__self__,
493
+ resource_name: str,
494
+ args: CurationArgs,
495
+ opts: Optional[pulumi.ResourceOptions] = None):
496
+ """
497
+ Description
498
+
499
+ ## Example Usage
500
+
501
+ ### Apihub Curation Basic
502
+
503
+ ```python
504
+ import pulumi
505
+ import pulumi_gcp as gcp
506
+
507
+ apihub_curation_basic = gcp.apihub.Curation("apihub_curation_basic",
508
+ location="us-central1",
509
+ curation_id="test",
510
+ project="apihub-terraform",
511
+ display_name="Test Curation",
512
+ description="This is a sample curation resource managed by Terraform.",
513
+ endpoint={
514
+ "application_integration_endpoint_details": {
515
+ "trigger_id": "api_trigger/curation_API_1",
516
+ "uri": "https://integrations.googleapis.com/v1/projects/1082615593856/locations/us-central1/integrations/curation:execute",
517
+ },
518
+ })
519
+ ```
520
+
521
+ ## Import
522
+
523
+ Curation can be imported using any of these accepted formats:
524
+
525
+ * `projects/{{project}}/locations/{{location}}/curations/{{curation_id}}`
526
+
527
+ * `{{project}}/{{location}}/{{curation_id}}`
528
+
529
+ * `{{location}}/{{curation_id}}`
530
+
531
+ When using the `pulumi import` command, Curation can be imported using one of the formats above. For example:
532
+
533
+ ```sh
534
+ $ pulumi import gcp:apihub/curation:Curation default projects/{{project}}/locations/{{location}}/curations/{{curation_id}}
535
+ ```
536
+
537
+ ```sh
538
+ $ pulumi import gcp:apihub/curation:Curation default {{project}}/{{location}}/{{curation_id}}
539
+ ```
540
+
541
+ ```sh
542
+ $ pulumi import gcp:apihub/curation:Curation default {{location}}/{{curation_id}}
543
+ ```
544
+
545
+ :param str resource_name: The name of the resource.
546
+ :param CurationArgs args: The arguments to use to populate this resource's properties.
547
+ :param pulumi.ResourceOptions opts: Options for the resource.
548
+ """
549
+ ...
550
+ def __init__(__self__, resource_name: str, *args, **kwargs):
551
+ resource_args, opts = _utilities.get_resource_args_opts(CurationArgs, pulumi.ResourceOptions, *args, **kwargs)
552
+ if resource_args is not None:
553
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
554
+ else:
555
+ __self__._internal_init(resource_name, *args, **kwargs)
556
+
557
+ def _internal_init(__self__,
558
+ resource_name: str,
559
+ opts: Optional[pulumi.ResourceOptions] = None,
560
+ curation_id: Optional[pulumi.Input[builtins.str]] = None,
561
+ description: Optional[pulumi.Input[builtins.str]] = None,
562
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
563
+ endpoint: Optional[pulumi.Input[Union['CurationEndpointArgs', 'CurationEndpointArgsDict']]] = None,
564
+ location: Optional[pulumi.Input[builtins.str]] = None,
565
+ project: Optional[pulumi.Input[builtins.str]] = None,
566
+ __props__=None):
567
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
568
+ if not isinstance(opts, pulumi.ResourceOptions):
569
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
570
+ if opts.id is None:
571
+ if __props__ is not None:
572
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
573
+ __props__ = CurationArgs.__new__(CurationArgs)
574
+
575
+ if curation_id is None and not opts.urn:
576
+ raise TypeError("Missing required property 'curation_id'")
577
+ __props__.__dict__["curation_id"] = curation_id
578
+ __props__.__dict__["description"] = description
579
+ if display_name is None and not opts.urn:
580
+ raise TypeError("Missing required property 'display_name'")
581
+ __props__.__dict__["display_name"] = display_name
582
+ if endpoint is None and not opts.urn:
583
+ raise TypeError("Missing required property 'endpoint'")
584
+ __props__.__dict__["endpoint"] = endpoint
585
+ if location is None and not opts.urn:
586
+ raise TypeError("Missing required property 'location'")
587
+ __props__.__dict__["location"] = location
588
+ __props__.__dict__["project"] = project
589
+ __props__.__dict__["create_time"] = None
590
+ __props__.__dict__["last_execution_error_code"] = None
591
+ __props__.__dict__["last_execution_error_message"] = None
592
+ __props__.__dict__["last_execution_state"] = None
593
+ __props__.__dict__["name"] = None
594
+ __props__.__dict__["plugin_instance_actions"] = None
595
+ __props__.__dict__["update_time"] = None
596
+ super(Curation, __self__).__init__(
597
+ 'gcp:apihub/curation:Curation',
598
+ resource_name,
599
+ __props__,
600
+ opts)
601
+
602
+ @staticmethod
603
+ def get(resource_name: str,
604
+ id: pulumi.Input[str],
605
+ opts: Optional[pulumi.ResourceOptions] = None,
606
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
607
+ curation_id: Optional[pulumi.Input[builtins.str]] = None,
608
+ description: Optional[pulumi.Input[builtins.str]] = None,
609
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
610
+ endpoint: Optional[pulumi.Input[Union['CurationEndpointArgs', 'CurationEndpointArgsDict']]] = None,
611
+ last_execution_error_code: Optional[pulumi.Input[builtins.str]] = None,
612
+ last_execution_error_message: Optional[pulumi.Input[builtins.str]] = None,
613
+ last_execution_state: Optional[pulumi.Input[builtins.str]] = None,
614
+ location: Optional[pulumi.Input[builtins.str]] = None,
615
+ name: Optional[pulumi.Input[builtins.str]] = None,
616
+ plugin_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['CurationPluginInstanceActionArgs', 'CurationPluginInstanceActionArgsDict']]]]] = None,
617
+ project: Optional[pulumi.Input[builtins.str]] = None,
618
+ update_time: Optional[pulumi.Input[builtins.str]] = None) -> 'Curation':
619
+ """
620
+ Get an existing Curation resource's state with the given name, id, and optional extra
621
+ properties used to qualify the lookup.
622
+
623
+ :param str resource_name: The unique name of the resulting resource.
624
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
625
+ :param pulumi.ResourceOptions opts: Options for the resource.
626
+ :param pulumi.Input[builtins.str] create_time: The time at which the curation was created.
627
+ :param pulumi.Input[builtins.str] curation_id: The ID to use for the curation resource, which will become the final
628
+ component of the curations's resource name. This field is optional.
629
+ * If provided, the same will be used. The service will throw an error if
630
+ the specified ID is already used by another curation resource in the API
631
+ hub.
632
+ * If not provided, a system generated ID will be used.
633
+ This value should be 4-500 characters, and valid characters
634
+ are /a-z[0-9]-_/.
635
+ :param pulumi.Input[builtins.str] description: The description of the curation.
636
+ :param pulumi.Input[builtins.str] display_name: The display name of the curation.
637
+ :param pulumi.Input[Union['CurationEndpointArgs', 'CurationEndpointArgsDict']] endpoint: The endpoint to be triggered for curation.
638
+ The endpoint will be invoked with a request payload containing
639
+ ApiMetadata.
640
+ Response should contain curated data in the form of
641
+ ApiMetadata.
642
+ Structure is documented below.
643
+ :param pulumi.Input[builtins.str] last_execution_error_code: The error code of the last execution of the curation. The error code is
644
+ populated only when the last execution state is failed.
645
+ Possible values:
646
+ ERROR_CODE_UNSPECIFIED
647
+ INTERNAL_ERROR
648
+ UNAUTHORIZED
649
+ :param pulumi.Input[builtins.str] last_execution_error_message: Error message describing the failure, if any, during the last execution of
650
+ the curation.
651
+ :param pulumi.Input[builtins.str] last_execution_state: The last execution state of the curation.
652
+ Possible values:
653
+ LAST_EXECUTION_STATE_UNSPECIFIED
654
+ SUCCEEDED
655
+ FAILED
656
+ :param pulumi.Input[builtins.str] location: Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
657
+ :param pulumi.Input[builtins.str] name: Identifier. The name of the curation.
658
+ Format:
659
+ `projects/{project}/locations/{location}/curations/{curation}`
660
+ :param pulumi.Input[Sequence[pulumi.Input[Union['CurationPluginInstanceActionArgs', 'CurationPluginInstanceActionArgsDict']]]] plugin_instance_actions: The plugin instances and associated actions that are using the curation.
661
+ Note: A particular curation could be used by multiple plugin instances or
662
+ multiple actions in a plugin instance.
663
+ Structure is documented below.
664
+ :param pulumi.Input[builtins.str] update_time: The time at which the curation was last updated.
665
+ """
666
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
667
+
668
+ __props__ = _CurationState.__new__(_CurationState)
669
+
670
+ __props__.__dict__["create_time"] = create_time
671
+ __props__.__dict__["curation_id"] = curation_id
672
+ __props__.__dict__["description"] = description
673
+ __props__.__dict__["display_name"] = display_name
674
+ __props__.__dict__["endpoint"] = endpoint
675
+ __props__.__dict__["last_execution_error_code"] = last_execution_error_code
676
+ __props__.__dict__["last_execution_error_message"] = last_execution_error_message
677
+ __props__.__dict__["last_execution_state"] = last_execution_state
678
+ __props__.__dict__["location"] = location
679
+ __props__.__dict__["name"] = name
680
+ __props__.__dict__["plugin_instance_actions"] = plugin_instance_actions
681
+ __props__.__dict__["project"] = project
682
+ __props__.__dict__["update_time"] = update_time
683
+ return Curation(resource_name, opts=opts, __props__=__props__)
684
+
685
+ @property
686
+ @pulumi.getter(name="createTime")
687
+ def create_time(self) -> pulumi.Output[builtins.str]:
688
+ """
689
+ The time at which the curation was created.
690
+ """
691
+ return pulumi.get(self, "create_time")
692
+
693
+ @property
694
+ @pulumi.getter(name="curationId")
695
+ def curation_id(self) -> pulumi.Output[builtins.str]:
696
+ """
697
+ The ID to use for the curation resource, which will become the final
698
+ component of the curations's resource name. This field is optional.
699
+ * If provided, the same will be used. The service will throw an error if
700
+ the specified ID is already used by another curation resource in the API
701
+ hub.
702
+ * If not provided, a system generated ID will be used.
703
+ This value should be 4-500 characters, and valid characters
704
+ are /a-z[0-9]-_/.
705
+ """
706
+ return pulumi.get(self, "curation_id")
707
+
708
+ @property
709
+ @pulumi.getter
710
+ def description(self) -> pulumi.Output[Optional[builtins.str]]:
711
+ """
712
+ The description of the curation.
713
+ """
714
+ return pulumi.get(self, "description")
715
+
716
+ @property
717
+ @pulumi.getter(name="displayName")
718
+ def display_name(self) -> pulumi.Output[builtins.str]:
719
+ """
720
+ The display name of the curation.
721
+ """
722
+ return pulumi.get(self, "display_name")
723
+
724
+ @property
725
+ @pulumi.getter
726
+ def endpoint(self) -> pulumi.Output['outputs.CurationEndpoint']:
727
+ """
728
+ The endpoint to be triggered for curation.
729
+ The endpoint will be invoked with a request payload containing
730
+ ApiMetadata.
731
+ Response should contain curated data in the form of
732
+ ApiMetadata.
733
+ Structure is documented below.
734
+ """
735
+ return pulumi.get(self, "endpoint")
736
+
737
+ @property
738
+ @pulumi.getter(name="lastExecutionErrorCode")
739
+ def last_execution_error_code(self) -> pulumi.Output[builtins.str]:
740
+ """
741
+ The error code of the last execution of the curation. The error code is
742
+ populated only when the last execution state is failed.
743
+ Possible values:
744
+ ERROR_CODE_UNSPECIFIED
745
+ INTERNAL_ERROR
746
+ UNAUTHORIZED
747
+ """
748
+ return pulumi.get(self, "last_execution_error_code")
749
+
750
+ @property
751
+ @pulumi.getter(name="lastExecutionErrorMessage")
752
+ def last_execution_error_message(self) -> pulumi.Output[builtins.str]:
753
+ """
754
+ Error message describing the failure, if any, during the last execution of
755
+ the curation.
756
+ """
757
+ return pulumi.get(self, "last_execution_error_message")
758
+
759
+ @property
760
+ @pulumi.getter(name="lastExecutionState")
761
+ def last_execution_state(self) -> pulumi.Output[builtins.str]:
762
+ """
763
+ The last execution state of the curation.
764
+ Possible values:
765
+ LAST_EXECUTION_STATE_UNSPECIFIED
766
+ SUCCEEDED
767
+ FAILED
768
+ """
769
+ return pulumi.get(self, "last_execution_state")
770
+
771
+ @property
772
+ @pulumi.getter
773
+ def location(self) -> pulumi.Output[builtins.str]:
774
+ """
775
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
776
+ """
777
+ return pulumi.get(self, "location")
778
+
779
+ @property
780
+ @pulumi.getter
781
+ def name(self) -> pulumi.Output[builtins.str]:
782
+ """
783
+ Identifier. The name of the curation.
784
+ Format:
785
+ `projects/{project}/locations/{location}/curations/{curation}`
786
+ """
787
+ return pulumi.get(self, "name")
788
+
789
+ @property
790
+ @pulumi.getter(name="pluginInstanceActions")
791
+ def plugin_instance_actions(self) -> pulumi.Output[Sequence['outputs.CurationPluginInstanceAction']]:
792
+ """
793
+ The plugin instances and associated actions that are using the curation.
794
+ Note: A particular curation could be used by multiple plugin instances or
795
+ multiple actions in a plugin instance.
796
+ Structure is documented below.
797
+ """
798
+ return pulumi.get(self, "plugin_instance_actions")
799
+
800
+ @property
801
+ @pulumi.getter
802
+ def project(self) -> pulumi.Output[builtins.str]:
803
+ return pulumi.get(self, "project")
804
+
805
+ @property
806
+ @pulumi.getter(name="updateTime")
807
+ def update_time(self) -> pulumi.Output[builtins.str]:
808
+ """
809
+ The time at which the curation was last updated.
810
+ """
811
+ return pulumi.get(self, "update_time")
812
+