pulumi-gcp 8.36.0a1750484065__py3-none-any.whl → 8.37.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 (117) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/alloydb/_inputs.py +26 -0
  3. pulumi_gcp/alloydb/outputs.py +34 -1
  4. pulumi_gcp/apihub/__init__.py +2 -0
  5. pulumi_gcp/apihub/_inputs.py +1658 -0
  6. pulumi_gcp/apihub/outputs.py +1374 -0
  7. pulumi_gcp/apihub/plugin.py +1146 -0
  8. pulumi_gcp/apihub/plugin_instance.py +808 -0
  9. pulumi_gcp/bigquery/table.py +16 -12
  10. pulumi_gcp/bigqueryanalyticshub/_inputs.py +56 -6
  11. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +73 -0
  12. pulumi_gcp/bigqueryanalyticshub/listing.py +201 -48
  13. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +28 -0
  14. pulumi_gcp/bigqueryanalyticshub/outputs.py +50 -4
  15. pulumi_gcp/bigtable/table.py +82 -0
  16. pulumi_gcp/cloudidentity/group_membership.py +47 -0
  17. pulumi_gcp/cloudidentity/outputs.py +11 -0
  18. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +64 -8
  19. pulumi_gcp/cloudrunv2/_inputs.py +65 -9
  20. pulumi_gcp/cloudrunv2/job.py +44 -0
  21. pulumi_gcp/cloudrunv2/outputs.py +73 -8
  22. pulumi_gcp/cloudrunv2/service.py +0 -2
  23. pulumi_gcp/cloudrunv2/worker_pool.py +18 -20
  24. pulumi_gcp/compute/__init__.py +1 -0
  25. pulumi_gcp/compute/_inputs.py +787 -18
  26. pulumi_gcp/compute/disk.py +35 -28
  27. pulumi_gcp/compute/firewall_policy_rule.py +207 -0
  28. pulumi_gcp/compute/get_instance_group_manager.py +12 -1
  29. pulumi_gcp/compute/get_region_disk.py +12 -1
  30. pulumi_gcp/compute/instance.py +2 -2
  31. pulumi_gcp/compute/instance_group_manager.py +165 -14
  32. pulumi_gcp/compute/instance_template.py +2 -2
  33. pulumi_gcp/compute/interconnect.py +43 -11
  34. pulumi_gcp/compute/network.py +56 -0
  35. pulumi_gcp/compute/network_firewall_policy.py +68 -0
  36. pulumi_gcp/compute/network_firewall_policy_with_rules.py +61 -0
  37. pulumi_gcp/compute/node_template.py +21 -0
  38. pulumi_gcp/compute/outputs.py +620 -12
  39. pulumi_gcp/compute/region_disk.py +114 -0
  40. pulumi_gcp/compute/region_network_firewall_policy.py +90 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +109 -0
  42. pulumi_gcp/compute/service_attachment.py +76 -8
  43. pulumi_gcp/compute/wire_group.py +751 -0
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/contactcenterinsights/__init__.py +9 -0
  47. pulumi_gcp/contactcenterinsights/view.py +526 -0
  48. pulumi_gcp/container/_inputs.py +207 -28
  49. pulumi_gcp/container/cluster.py +54 -0
  50. pulumi_gcp/container/get_cluster.py +12 -1
  51. pulumi_gcp/container/get_engine_versions.py +15 -1
  52. pulumi_gcp/container/node_pool.py +14 -0
  53. pulumi_gcp/container/outputs.py +295 -21
  54. pulumi_gcp/dataplex/_inputs.py +431 -6
  55. pulumi_gcp/dataplex/datascan.py +251 -0
  56. pulumi_gcp/dataplex/entry_type.py +2 -2
  57. pulumi_gcp/dataplex/glossary_category.py +8 -8
  58. pulumi_gcp/dataplex/glossary_term.py +8 -8
  59. pulumi_gcp/dataplex/outputs.py +353 -4
  60. pulumi_gcp/dataplex/task.py +16 -16
  61. pulumi_gcp/dataproc/__init__.py +1 -0
  62. pulumi_gcp/dataproc/_inputs.py +486 -0
  63. pulumi_gcp/dataproc/batch.py +10 -10
  64. pulumi_gcp/dataproc/outputs.py +407 -0
  65. pulumi_gcp/dataproc/session_template.py +1084 -0
  66. pulumi_gcp/diagflow/__init__.py +2 -0
  67. pulumi_gcp/diagflow/_inputs.py +479 -0
  68. pulumi_gcp/diagflow/cx_generative_settings.py +625 -0
  69. pulumi_gcp/diagflow/cx_tool.py +2 -2
  70. pulumi_gcp/diagflow/encryption_spec.py +382 -0
  71. pulumi_gcp/diagflow/outputs.py +416 -0
  72. pulumi_gcp/dns/record_set.py +4 -2
  73. pulumi_gcp/firestore/database.py +0 -9
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gkehub/membership_binding.py +6 -6
  76. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  77. pulumi_gcp/gkehub/namespace.py +4 -4
  78. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  79. pulumi_gcp/iam/_inputs.py +36 -0
  80. pulumi_gcp/iam/outputs.py +38 -0
  81. pulumi_gcp/iam/workload_identity_pool_managed_identity.py +88 -2
  82. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  83. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  84. pulumi_gcp/kms/autokey_config.py +28 -0
  85. pulumi_gcp/kms/get_autokey_config.py +12 -1
  86. pulumi_gcp/lustre/get_instance.py +12 -1
  87. pulumi_gcp/lustre/instance.py +143 -86
  88. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  89. pulumi_gcp/managedkafka/connector.py +4 -4
  90. pulumi_gcp/memorystore/get_instance.py +12 -1
  91. pulumi_gcp/memorystore/instance.py +49 -0
  92. pulumi_gcp/monitoring/metric_descriptor.py +55 -57
  93. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  94. pulumi_gcp/notebooks/instance.py +8 -8
  95. pulumi_gcp/orgpolicy/policy.py +2 -2
  96. pulumi_gcp/provider.py +20 -0
  97. pulumi_gcp/pubsub/subscription.py +6 -6
  98. pulumi_gcp/pulumi-plugin.json +1 -1
  99. pulumi_gcp/redis/get_instance.py +12 -1
  100. pulumi_gcp/redis/instance.py +44 -0
  101. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  102. pulumi_gcp/secretmanager/outputs.py +7 -0
  103. pulumi_gcp/secretmanager/regional_secret.py +38 -2
  104. pulumi_gcp/spanner/_inputs.py +24 -1
  105. pulumi_gcp/spanner/outputs.py +17 -1
  106. pulumi_gcp/storage/_inputs.py +43 -3
  107. pulumi_gcp/storage/bucket_object.py +56 -0
  108. pulumi_gcp/storage/get_bucket_object.py +12 -1
  109. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  110. pulumi_gcp/storage/outputs.py +53 -3
  111. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  112. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  113. pulumi_gcp/workbench/instance.py +2 -0
  114. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/METADATA +2 -2
  115. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/RECORD +117 -109
  116. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/WHEEL +0 -0
  117. {pulumi_gcp-8.36.0a1750484065.dist-info → pulumi_gcp-8.37.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1146 @@
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__ = ['PluginArgs', 'Plugin']
21
+
22
+ @pulumi.input_type
23
+ class PluginArgs:
24
+ def __init__(__self__, *,
25
+ display_name: pulumi.Input[builtins.str],
26
+ location: pulumi.Input[builtins.str],
27
+ plugin_id: pulumi.Input[builtins.str],
28
+ actions_configs: Optional[pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]]] = None,
29
+ config_template: Optional[pulumi.Input['PluginConfigTemplateArgs']] = None,
30
+ description: Optional[pulumi.Input[builtins.str]] = None,
31
+ documentation: Optional[pulumi.Input['PluginDocumentationArgs']] = None,
32
+ hosting_service: Optional[pulumi.Input['PluginHostingServiceArgs']] = None,
33
+ plugin_category: Optional[pulumi.Input[builtins.str]] = None,
34
+ project: Optional[pulumi.Input[builtins.str]] = None):
35
+ """
36
+ The set of arguments for constructing a Plugin resource.
37
+ :param pulumi.Input[builtins.str] display_name: The display name of the plugin. Max length is 50 characters (Unicode code
38
+ points).
39
+ :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.
40
+ :param pulumi.Input[builtins.str] plugin_id: The ID to use for the Plugin resource, which will become the final
41
+ component of the Plugin's resource name. This field is optional.
42
+ * If provided, the same will be used. The service will throw an error if
43
+ the specified id is already used by another Plugin resource in the API hub
44
+ instance.
45
+ * If not provided, a system generated id will be used.
46
+ This value should be 4-63 characters, overall resource name which will be
47
+ of format
48
+ `projects/{project}/locations/{location}/plugins/{plugin}`,
49
+ its length is limited to 1000 characters and valid characters are
50
+ /a-z[0-9]-_/.
51
+
52
+
53
+ - - -
54
+ :param pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]] actions_configs: The configuration of actions supported by the plugin.
55
+ Structure is documented below.
56
+ :param pulumi.Input['PluginConfigTemplateArgs'] config_template: ConfigTemplate represents the configuration template for a plugin.
57
+ Structure is documented below.
58
+ :param pulumi.Input[builtins.str] description: The plugin description. Max length is 2000 characters (Unicode code
59
+ points).
60
+ :param pulumi.Input['PluginDocumentationArgs'] documentation: Documentation details.
61
+ Structure is documented below.
62
+ :param pulumi.Input['PluginHostingServiceArgs'] hosting_service: The information related to the service implemented by the plugin
63
+ developer, used to invoke the plugin's functionality.
64
+ Structure is documented below.
65
+ :param pulumi.Input[builtins.str] plugin_category: Possible values:
66
+ PLUGIN_CATEGORY_UNSPECIFIED
67
+ API_GATEWAY
68
+ API_PRODUCER
69
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
70
+ If it is not provided, the provider project is used.
71
+ """
72
+ pulumi.set(__self__, "display_name", display_name)
73
+ pulumi.set(__self__, "location", location)
74
+ pulumi.set(__self__, "plugin_id", plugin_id)
75
+ if actions_configs is not None:
76
+ pulumi.set(__self__, "actions_configs", actions_configs)
77
+ if config_template is not None:
78
+ pulumi.set(__self__, "config_template", config_template)
79
+ if description is not None:
80
+ pulumi.set(__self__, "description", description)
81
+ if documentation is not None:
82
+ pulumi.set(__self__, "documentation", documentation)
83
+ if hosting_service is not None:
84
+ pulumi.set(__self__, "hosting_service", hosting_service)
85
+ if plugin_category is not None:
86
+ pulumi.set(__self__, "plugin_category", plugin_category)
87
+ if project is not None:
88
+ pulumi.set(__self__, "project", project)
89
+
90
+ @property
91
+ @pulumi.getter(name="displayName")
92
+ def display_name(self) -> pulumi.Input[builtins.str]:
93
+ """
94
+ The display name of the plugin. Max length is 50 characters (Unicode code
95
+ points).
96
+ """
97
+ return pulumi.get(self, "display_name")
98
+
99
+ @display_name.setter
100
+ def display_name(self, value: pulumi.Input[builtins.str]):
101
+ pulumi.set(self, "display_name", value)
102
+
103
+ @property
104
+ @pulumi.getter
105
+ def location(self) -> pulumi.Input[builtins.str]:
106
+ """
107
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
108
+ """
109
+ return pulumi.get(self, "location")
110
+
111
+ @location.setter
112
+ def location(self, value: pulumi.Input[builtins.str]):
113
+ pulumi.set(self, "location", value)
114
+
115
+ @property
116
+ @pulumi.getter(name="pluginId")
117
+ def plugin_id(self) -> pulumi.Input[builtins.str]:
118
+ """
119
+ The ID to use for the Plugin resource, which will become the final
120
+ component of the Plugin's resource name. This field is optional.
121
+ * If provided, the same will be used. The service will throw an error if
122
+ the specified id is already used by another Plugin resource in the API hub
123
+ instance.
124
+ * If not provided, a system generated id will be used.
125
+ This value should be 4-63 characters, overall resource name which will be
126
+ of format
127
+ `projects/{project}/locations/{location}/plugins/{plugin}`,
128
+ its length is limited to 1000 characters and valid characters are
129
+ /a-z[0-9]-_/.
130
+
131
+
132
+ - - -
133
+ """
134
+ return pulumi.get(self, "plugin_id")
135
+
136
+ @plugin_id.setter
137
+ def plugin_id(self, value: pulumi.Input[builtins.str]):
138
+ pulumi.set(self, "plugin_id", value)
139
+
140
+ @property
141
+ @pulumi.getter(name="actionsConfigs")
142
+ def actions_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]]]:
143
+ """
144
+ The configuration of actions supported by the plugin.
145
+ Structure is documented below.
146
+ """
147
+ return pulumi.get(self, "actions_configs")
148
+
149
+ @actions_configs.setter
150
+ def actions_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]]]):
151
+ pulumi.set(self, "actions_configs", value)
152
+
153
+ @property
154
+ @pulumi.getter(name="configTemplate")
155
+ def config_template(self) -> Optional[pulumi.Input['PluginConfigTemplateArgs']]:
156
+ """
157
+ ConfigTemplate represents the configuration template for a plugin.
158
+ Structure is documented below.
159
+ """
160
+ return pulumi.get(self, "config_template")
161
+
162
+ @config_template.setter
163
+ def config_template(self, value: Optional[pulumi.Input['PluginConfigTemplateArgs']]):
164
+ pulumi.set(self, "config_template", value)
165
+
166
+ @property
167
+ @pulumi.getter
168
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
169
+ """
170
+ The plugin description. Max length is 2000 characters (Unicode code
171
+ points).
172
+ """
173
+ return pulumi.get(self, "description")
174
+
175
+ @description.setter
176
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
177
+ pulumi.set(self, "description", value)
178
+
179
+ @property
180
+ @pulumi.getter
181
+ def documentation(self) -> Optional[pulumi.Input['PluginDocumentationArgs']]:
182
+ """
183
+ Documentation details.
184
+ Structure is documented below.
185
+ """
186
+ return pulumi.get(self, "documentation")
187
+
188
+ @documentation.setter
189
+ def documentation(self, value: Optional[pulumi.Input['PluginDocumentationArgs']]):
190
+ pulumi.set(self, "documentation", value)
191
+
192
+ @property
193
+ @pulumi.getter(name="hostingService")
194
+ def hosting_service(self) -> Optional[pulumi.Input['PluginHostingServiceArgs']]:
195
+ """
196
+ The information related to the service implemented by the plugin
197
+ developer, used to invoke the plugin's functionality.
198
+ Structure is documented below.
199
+ """
200
+ return pulumi.get(self, "hosting_service")
201
+
202
+ @hosting_service.setter
203
+ def hosting_service(self, value: Optional[pulumi.Input['PluginHostingServiceArgs']]):
204
+ pulumi.set(self, "hosting_service", value)
205
+
206
+ @property
207
+ @pulumi.getter(name="pluginCategory")
208
+ def plugin_category(self) -> Optional[pulumi.Input[builtins.str]]:
209
+ """
210
+ Possible values:
211
+ PLUGIN_CATEGORY_UNSPECIFIED
212
+ API_GATEWAY
213
+ API_PRODUCER
214
+ """
215
+ return pulumi.get(self, "plugin_category")
216
+
217
+ @plugin_category.setter
218
+ def plugin_category(self, value: Optional[pulumi.Input[builtins.str]]):
219
+ pulumi.set(self, "plugin_category", value)
220
+
221
+ @property
222
+ @pulumi.getter
223
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
224
+ """
225
+ The ID of the project in which the resource belongs.
226
+ If it is not provided, the provider project is used.
227
+ """
228
+ return pulumi.get(self, "project")
229
+
230
+ @project.setter
231
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
232
+ pulumi.set(self, "project", value)
233
+
234
+
235
+ @pulumi.input_type
236
+ class _PluginState:
237
+ def __init__(__self__, *,
238
+ actions_configs: Optional[pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]]] = None,
239
+ config_template: Optional[pulumi.Input['PluginConfigTemplateArgs']] = None,
240
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
241
+ description: Optional[pulumi.Input[builtins.str]] = None,
242
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
243
+ documentation: Optional[pulumi.Input['PluginDocumentationArgs']] = None,
244
+ hosting_service: Optional[pulumi.Input['PluginHostingServiceArgs']] = None,
245
+ location: Optional[pulumi.Input[builtins.str]] = None,
246
+ name: Optional[pulumi.Input[builtins.str]] = None,
247
+ ownership_type: Optional[pulumi.Input[builtins.str]] = None,
248
+ plugin_category: Optional[pulumi.Input[builtins.str]] = None,
249
+ plugin_id: Optional[pulumi.Input[builtins.str]] = None,
250
+ project: Optional[pulumi.Input[builtins.str]] = None,
251
+ state: Optional[pulumi.Input[builtins.str]] = None,
252
+ update_time: Optional[pulumi.Input[builtins.str]] = None):
253
+ """
254
+ Input properties used for looking up and filtering Plugin resources.
255
+ :param pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]] actions_configs: The configuration of actions supported by the plugin.
256
+ Structure is documented below.
257
+ :param pulumi.Input['PluginConfigTemplateArgs'] config_template: ConfigTemplate represents the configuration template for a plugin.
258
+ Structure is documented below.
259
+ :param pulumi.Input[builtins.str] create_time: Timestamp indicating when the plugin was created.
260
+ :param pulumi.Input[builtins.str] description: The plugin description. Max length is 2000 characters (Unicode code
261
+ points).
262
+ :param pulumi.Input[builtins.str] display_name: The display name of the plugin. Max length is 50 characters (Unicode code
263
+ points).
264
+ :param pulumi.Input['PluginDocumentationArgs'] documentation: Documentation details.
265
+ Structure is documented below.
266
+ :param pulumi.Input['PluginHostingServiceArgs'] hosting_service: The information related to the service implemented by the plugin
267
+ developer, used to invoke the plugin's functionality.
268
+ Structure is documented below.
269
+ :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.
270
+ :param pulumi.Input[builtins.str] name: Identifier. The name of the plugin.
271
+ Format: `projects/{project}/locations/{location}/plugins/{plugin}`
272
+ :param pulumi.Input[builtins.str] ownership_type: The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or
273
+ 'USER_OWNED'.
274
+ Possible values:
275
+ OWNERSHIP_TYPE_UNSPECIFIED
276
+ SYSTEM_OWNED
277
+ USER_OWNED
278
+ :param pulumi.Input[builtins.str] plugin_category: Possible values:
279
+ PLUGIN_CATEGORY_UNSPECIFIED
280
+ API_GATEWAY
281
+ API_PRODUCER
282
+ :param pulumi.Input[builtins.str] plugin_id: The ID to use for the Plugin resource, which will become the final
283
+ component of the Plugin's resource name. This field is optional.
284
+ * If provided, the same will be used. The service will throw an error if
285
+ the specified id is already used by another Plugin resource in the API hub
286
+ instance.
287
+ * If not provided, a system generated id will be used.
288
+ This value should be 4-63 characters, overall resource name which will be
289
+ of format
290
+ `projects/{project}/locations/{location}/plugins/{plugin}`,
291
+ its length is limited to 1000 characters and valid characters are
292
+ /a-z[0-9]-_/.
293
+
294
+
295
+ - - -
296
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
297
+ If it is not provided, the provider project is used.
298
+ :param pulumi.Input[builtins.str] state: Represents the state of the plugin.
299
+ Note this field will not be set for plugins developed via plugin
300
+ framework as the state will be managed at plugin instance level.
301
+ Possible values:
302
+ STATE_UNSPECIFIED
303
+ ENABLED
304
+ DISABLED
305
+ :param pulumi.Input[builtins.str] update_time: Timestamp indicating when the plugin was last updated.
306
+ """
307
+ if actions_configs is not None:
308
+ pulumi.set(__self__, "actions_configs", actions_configs)
309
+ if config_template is not None:
310
+ pulumi.set(__self__, "config_template", config_template)
311
+ if create_time is not None:
312
+ pulumi.set(__self__, "create_time", create_time)
313
+ if description is not None:
314
+ pulumi.set(__self__, "description", description)
315
+ if display_name is not None:
316
+ pulumi.set(__self__, "display_name", display_name)
317
+ if documentation is not None:
318
+ pulumi.set(__self__, "documentation", documentation)
319
+ if hosting_service is not None:
320
+ pulumi.set(__self__, "hosting_service", hosting_service)
321
+ if location is not None:
322
+ pulumi.set(__self__, "location", location)
323
+ if name is not None:
324
+ pulumi.set(__self__, "name", name)
325
+ if ownership_type is not None:
326
+ pulumi.set(__self__, "ownership_type", ownership_type)
327
+ if plugin_category is not None:
328
+ pulumi.set(__self__, "plugin_category", plugin_category)
329
+ if plugin_id is not None:
330
+ pulumi.set(__self__, "plugin_id", plugin_id)
331
+ if project is not None:
332
+ pulumi.set(__self__, "project", project)
333
+ if state is not None:
334
+ pulumi.set(__self__, "state", state)
335
+ if update_time is not None:
336
+ pulumi.set(__self__, "update_time", update_time)
337
+
338
+ @property
339
+ @pulumi.getter(name="actionsConfigs")
340
+ def actions_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]]]:
341
+ """
342
+ The configuration of actions supported by the plugin.
343
+ Structure is documented below.
344
+ """
345
+ return pulumi.get(self, "actions_configs")
346
+
347
+ @actions_configs.setter
348
+ def actions_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['PluginActionsConfigArgs']]]]):
349
+ pulumi.set(self, "actions_configs", value)
350
+
351
+ @property
352
+ @pulumi.getter(name="configTemplate")
353
+ def config_template(self) -> Optional[pulumi.Input['PluginConfigTemplateArgs']]:
354
+ """
355
+ ConfigTemplate represents the configuration template for a plugin.
356
+ Structure is documented below.
357
+ """
358
+ return pulumi.get(self, "config_template")
359
+
360
+ @config_template.setter
361
+ def config_template(self, value: Optional[pulumi.Input['PluginConfigTemplateArgs']]):
362
+ pulumi.set(self, "config_template", value)
363
+
364
+ @property
365
+ @pulumi.getter(name="createTime")
366
+ def create_time(self) -> Optional[pulumi.Input[builtins.str]]:
367
+ """
368
+ Timestamp indicating when the plugin was created.
369
+ """
370
+ return pulumi.get(self, "create_time")
371
+
372
+ @create_time.setter
373
+ def create_time(self, value: Optional[pulumi.Input[builtins.str]]):
374
+ pulumi.set(self, "create_time", value)
375
+
376
+ @property
377
+ @pulumi.getter
378
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
379
+ """
380
+ The plugin description. Max length is 2000 characters (Unicode code
381
+ points).
382
+ """
383
+ return pulumi.get(self, "description")
384
+
385
+ @description.setter
386
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
387
+ pulumi.set(self, "description", value)
388
+
389
+ @property
390
+ @pulumi.getter(name="displayName")
391
+ def display_name(self) -> Optional[pulumi.Input[builtins.str]]:
392
+ """
393
+ The display name of the plugin. Max length is 50 characters (Unicode code
394
+ points).
395
+ """
396
+ return pulumi.get(self, "display_name")
397
+
398
+ @display_name.setter
399
+ def display_name(self, value: Optional[pulumi.Input[builtins.str]]):
400
+ pulumi.set(self, "display_name", value)
401
+
402
+ @property
403
+ @pulumi.getter
404
+ def documentation(self) -> Optional[pulumi.Input['PluginDocumentationArgs']]:
405
+ """
406
+ Documentation details.
407
+ Structure is documented below.
408
+ """
409
+ return pulumi.get(self, "documentation")
410
+
411
+ @documentation.setter
412
+ def documentation(self, value: Optional[pulumi.Input['PluginDocumentationArgs']]):
413
+ pulumi.set(self, "documentation", value)
414
+
415
+ @property
416
+ @pulumi.getter(name="hostingService")
417
+ def hosting_service(self) -> Optional[pulumi.Input['PluginHostingServiceArgs']]:
418
+ """
419
+ The information related to the service implemented by the plugin
420
+ developer, used to invoke the plugin's functionality.
421
+ Structure is documented below.
422
+ """
423
+ return pulumi.get(self, "hosting_service")
424
+
425
+ @hosting_service.setter
426
+ def hosting_service(self, value: Optional[pulumi.Input['PluginHostingServiceArgs']]):
427
+ pulumi.set(self, "hosting_service", value)
428
+
429
+ @property
430
+ @pulumi.getter
431
+ def location(self) -> Optional[pulumi.Input[builtins.str]]:
432
+ """
433
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
434
+ """
435
+ return pulumi.get(self, "location")
436
+
437
+ @location.setter
438
+ def location(self, value: Optional[pulumi.Input[builtins.str]]):
439
+ pulumi.set(self, "location", value)
440
+
441
+ @property
442
+ @pulumi.getter
443
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
444
+ """
445
+ Identifier. The name of the plugin.
446
+ Format: `projects/{project}/locations/{location}/plugins/{plugin}`
447
+ """
448
+ return pulumi.get(self, "name")
449
+
450
+ @name.setter
451
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
452
+ pulumi.set(self, "name", value)
453
+
454
+ @property
455
+ @pulumi.getter(name="ownershipType")
456
+ def ownership_type(self) -> Optional[pulumi.Input[builtins.str]]:
457
+ """
458
+ The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or
459
+ 'USER_OWNED'.
460
+ Possible values:
461
+ OWNERSHIP_TYPE_UNSPECIFIED
462
+ SYSTEM_OWNED
463
+ USER_OWNED
464
+ """
465
+ return pulumi.get(self, "ownership_type")
466
+
467
+ @ownership_type.setter
468
+ def ownership_type(self, value: Optional[pulumi.Input[builtins.str]]):
469
+ pulumi.set(self, "ownership_type", value)
470
+
471
+ @property
472
+ @pulumi.getter(name="pluginCategory")
473
+ def plugin_category(self) -> Optional[pulumi.Input[builtins.str]]:
474
+ """
475
+ Possible values:
476
+ PLUGIN_CATEGORY_UNSPECIFIED
477
+ API_GATEWAY
478
+ API_PRODUCER
479
+ """
480
+ return pulumi.get(self, "plugin_category")
481
+
482
+ @plugin_category.setter
483
+ def plugin_category(self, value: Optional[pulumi.Input[builtins.str]]):
484
+ pulumi.set(self, "plugin_category", value)
485
+
486
+ @property
487
+ @pulumi.getter(name="pluginId")
488
+ def plugin_id(self) -> Optional[pulumi.Input[builtins.str]]:
489
+ """
490
+ The ID to use for the Plugin resource, which will become the final
491
+ component of the Plugin's resource name. This field is optional.
492
+ * If provided, the same will be used. The service will throw an error if
493
+ the specified id is already used by another Plugin resource in the API hub
494
+ instance.
495
+ * If not provided, a system generated id will be used.
496
+ This value should be 4-63 characters, overall resource name which will be
497
+ of format
498
+ `projects/{project}/locations/{location}/plugins/{plugin}`,
499
+ its length is limited to 1000 characters and valid characters are
500
+ /a-z[0-9]-_/.
501
+
502
+
503
+ - - -
504
+ """
505
+ return pulumi.get(self, "plugin_id")
506
+
507
+ @plugin_id.setter
508
+ def plugin_id(self, value: Optional[pulumi.Input[builtins.str]]):
509
+ pulumi.set(self, "plugin_id", value)
510
+
511
+ @property
512
+ @pulumi.getter
513
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
514
+ """
515
+ The ID of the project in which the resource belongs.
516
+ If it is not provided, the provider project is used.
517
+ """
518
+ return pulumi.get(self, "project")
519
+
520
+ @project.setter
521
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
522
+ pulumi.set(self, "project", value)
523
+
524
+ @property
525
+ @pulumi.getter
526
+ def state(self) -> Optional[pulumi.Input[builtins.str]]:
527
+ """
528
+ Represents the state of the plugin.
529
+ Note this field will not be set for plugins developed via plugin
530
+ framework as the state will be managed at plugin instance level.
531
+ Possible values:
532
+ STATE_UNSPECIFIED
533
+ ENABLED
534
+ DISABLED
535
+ """
536
+ return pulumi.get(self, "state")
537
+
538
+ @state.setter
539
+ def state(self, value: Optional[pulumi.Input[builtins.str]]):
540
+ pulumi.set(self, "state", value)
541
+
542
+ @property
543
+ @pulumi.getter(name="updateTime")
544
+ def update_time(self) -> Optional[pulumi.Input[builtins.str]]:
545
+ """
546
+ Timestamp indicating when the plugin was last updated.
547
+ """
548
+ return pulumi.get(self, "update_time")
549
+
550
+ @update_time.setter
551
+ def update_time(self, value: Optional[pulumi.Input[builtins.str]]):
552
+ pulumi.set(self, "update_time", value)
553
+
554
+
555
+ @pulumi.type_token("gcp:apihub/plugin:Plugin")
556
+ class Plugin(pulumi.CustomResource):
557
+ @overload
558
+ def __init__(__self__,
559
+ resource_name: str,
560
+ opts: Optional[pulumi.ResourceOptions] = None,
561
+ actions_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PluginActionsConfigArgs', 'PluginActionsConfigArgsDict']]]]] = None,
562
+ config_template: Optional[pulumi.Input[Union['PluginConfigTemplateArgs', 'PluginConfigTemplateArgsDict']]] = None,
563
+ description: Optional[pulumi.Input[builtins.str]] = None,
564
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
565
+ documentation: Optional[pulumi.Input[Union['PluginDocumentationArgs', 'PluginDocumentationArgsDict']]] = None,
566
+ hosting_service: Optional[pulumi.Input[Union['PluginHostingServiceArgs', 'PluginHostingServiceArgsDict']]] = None,
567
+ location: Optional[pulumi.Input[builtins.str]] = None,
568
+ plugin_category: Optional[pulumi.Input[builtins.str]] = None,
569
+ plugin_id: Optional[pulumi.Input[builtins.str]] = None,
570
+ project: Optional[pulumi.Input[builtins.str]] = None,
571
+ __props__=None):
572
+ """
573
+ A plugin resource in the API hub.
574
+
575
+ ## Example Usage
576
+
577
+ ### Apihub Plugin Full
578
+
579
+ ```python
580
+ import pulumi
581
+ import pulumi_gcp as gcp
582
+
583
+ apihub_plugin_full = gcp.apihub.Plugin("apihub_plugin_full",
584
+ location="us-central1",
585
+ display_name="Test Plugin",
586
+ description="Test description",
587
+ plugin_id="plugin-full",
588
+ plugin_category="API_GATEWAY",
589
+ actions_configs=[{
590
+ "id": "sync-metadata",
591
+ "display_name": "Sync Metadata",
592
+ "description": "Syncs API metadata.",
593
+ "trigger_mode": "API_HUB_SCHEDULE_TRIGGER",
594
+ }],
595
+ documentation={
596
+ "external_uri": "https://example.com/plugin-documentation",
597
+ },
598
+ hosting_service={
599
+ "service_uri": "https://your-plugin-service.example.com/api",
600
+ },
601
+ config_template={
602
+ "auth_config_template": {
603
+ "supported_auth_types": [
604
+ "NO_AUTH",
605
+ "USER_PASSWORD",
606
+ ],
607
+ "service_account": {
608
+ "service_account": "test@developer.gserviceaccount.com",
609
+ },
610
+ },
611
+ "additional_config_templates": [
612
+ {
613
+ "id": "string-val",
614
+ "description": "API key for the service.",
615
+ "value_type": "STRING",
616
+ "required": False,
617
+ "validation_regex": "^[a-zA-Z0-9]{5,20}$",
618
+ },
619
+ {
620
+ "id": "integer-val",
621
+ "description": "API key for the service.",
622
+ "value_type": "INT",
623
+ "required": True,
624
+ "validation_regex": "",
625
+ },
626
+ {
627
+ "id": "bool-val",
628
+ "description": "API key for the service.",
629
+ "value_type": "BOOL",
630
+ "required": False,
631
+ "validation_regex": "",
632
+ },
633
+ {
634
+ "id": "enum-val",
635
+ "description": "API key for the service.",
636
+ "value_type": "ENUM",
637
+ "enum_options": [
638
+ {
639
+ "id": "Option1",
640
+ "display_name": "Option1",
641
+ "description": "Description for Option1",
642
+ },
643
+ {
644
+ "id": "Option2",
645
+ "display_name": "Option2",
646
+ "description": "Description for Option2",
647
+ },
648
+ ],
649
+ "required": False,
650
+ "validation_regex": "",
651
+ },
652
+ ],
653
+ })
654
+ ```
655
+
656
+ ## Import
657
+
658
+ Plugin can be imported using any of these accepted formats:
659
+
660
+ * `projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}`
661
+
662
+ * `{{project}}/{{location}}/{{plugin_id}}`
663
+
664
+ * `{{location}}/{{plugin_id}}`
665
+
666
+ When using the `pulumi import` command, Plugin can be imported using one of the formats above. For example:
667
+
668
+ ```sh
669
+ $ pulumi import gcp:apihub/plugin:Plugin default projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}
670
+ ```
671
+
672
+ ```sh
673
+ $ pulumi import gcp:apihub/plugin:Plugin default {{project}}/{{location}}/{{plugin_id}}
674
+ ```
675
+
676
+ ```sh
677
+ $ pulumi import gcp:apihub/plugin:Plugin default {{location}}/{{plugin_id}}
678
+ ```
679
+
680
+ :param str resource_name: The name of the resource.
681
+ :param pulumi.ResourceOptions opts: Options for the resource.
682
+ :param pulumi.Input[Sequence[pulumi.Input[Union['PluginActionsConfigArgs', 'PluginActionsConfigArgsDict']]]] actions_configs: The configuration of actions supported by the plugin.
683
+ Structure is documented below.
684
+ :param pulumi.Input[Union['PluginConfigTemplateArgs', 'PluginConfigTemplateArgsDict']] config_template: ConfigTemplate represents the configuration template for a plugin.
685
+ Structure is documented below.
686
+ :param pulumi.Input[builtins.str] description: The plugin description. Max length is 2000 characters (Unicode code
687
+ points).
688
+ :param pulumi.Input[builtins.str] display_name: The display name of the plugin. Max length is 50 characters (Unicode code
689
+ points).
690
+ :param pulumi.Input[Union['PluginDocumentationArgs', 'PluginDocumentationArgsDict']] documentation: Documentation details.
691
+ Structure is documented below.
692
+ :param pulumi.Input[Union['PluginHostingServiceArgs', 'PluginHostingServiceArgsDict']] hosting_service: The information related to the service implemented by the plugin
693
+ developer, used to invoke the plugin's functionality.
694
+ Structure is documented below.
695
+ :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.
696
+ :param pulumi.Input[builtins.str] plugin_category: Possible values:
697
+ PLUGIN_CATEGORY_UNSPECIFIED
698
+ API_GATEWAY
699
+ API_PRODUCER
700
+ :param pulumi.Input[builtins.str] plugin_id: The ID to use for the Plugin resource, which will become the final
701
+ component of the Plugin's resource name. This field is optional.
702
+ * If provided, the same will be used. The service will throw an error if
703
+ the specified id is already used by another Plugin resource in the API hub
704
+ instance.
705
+ * If not provided, a system generated id will be used.
706
+ This value should be 4-63 characters, overall resource name which will be
707
+ of format
708
+ `projects/{project}/locations/{location}/plugins/{plugin}`,
709
+ its length is limited to 1000 characters and valid characters are
710
+ /a-z[0-9]-_/.
711
+
712
+
713
+ - - -
714
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
715
+ If it is not provided, the provider project is used.
716
+ """
717
+ ...
718
+ @overload
719
+ def __init__(__self__,
720
+ resource_name: str,
721
+ args: PluginArgs,
722
+ opts: Optional[pulumi.ResourceOptions] = None):
723
+ """
724
+ A plugin resource in the API hub.
725
+
726
+ ## Example Usage
727
+
728
+ ### Apihub Plugin Full
729
+
730
+ ```python
731
+ import pulumi
732
+ import pulumi_gcp as gcp
733
+
734
+ apihub_plugin_full = gcp.apihub.Plugin("apihub_plugin_full",
735
+ location="us-central1",
736
+ display_name="Test Plugin",
737
+ description="Test description",
738
+ plugin_id="plugin-full",
739
+ plugin_category="API_GATEWAY",
740
+ actions_configs=[{
741
+ "id": "sync-metadata",
742
+ "display_name": "Sync Metadata",
743
+ "description": "Syncs API metadata.",
744
+ "trigger_mode": "API_HUB_SCHEDULE_TRIGGER",
745
+ }],
746
+ documentation={
747
+ "external_uri": "https://example.com/plugin-documentation",
748
+ },
749
+ hosting_service={
750
+ "service_uri": "https://your-plugin-service.example.com/api",
751
+ },
752
+ config_template={
753
+ "auth_config_template": {
754
+ "supported_auth_types": [
755
+ "NO_AUTH",
756
+ "USER_PASSWORD",
757
+ ],
758
+ "service_account": {
759
+ "service_account": "test@developer.gserviceaccount.com",
760
+ },
761
+ },
762
+ "additional_config_templates": [
763
+ {
764
+ "id": "string-val",
765
+ "description": "API key for the service.",
766
+ "value_type": "STRING",
767
+ "required": False,
768
+ "validation_regex": "^[a-zA-Z0-9]{5,20}$",
769
+ },
770
+ {
771
+ "id": "integer-val",
772
+ "description": "API key for the service.",
773
+ "value_type": "INT",
774
+ "required": True,
775
+ "validation_regex": "",
776
+ },
777
+ {
778
+ "id": "bool-val",
779
+ "description": "API key for the service.",
780
+ "value_type": "BOOL",
781
+ "required": False,
782
+ "validation_regex": "",
783
+ },
784
+ {
785
+ "id": "enum-val",
786
+ "description": "API key for the service.",
787
+ "value_type": "ENUM",
788
+ "enum_options": [
789
+ {
790
+ "id": "Option1",
791
+ "display_name": "Option1",
792
+ "description": "Description for Option1",
793
+ },
794
+ {
795
+ "id": "Option2",
796
+ "display_name": "Option2",
797
+ "description": "Description for Option2",
798
+ },
799
+ ],
800
+ "required": False,
801
+ "validation_regex": "",
802
+ },
803
+ ],
804
+ })
805
+ ```
806
+
807
+ ## Import
808
+
809
+ Plugin can be imported using any of these accepted formats:
810
+
811
+ * `projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}`
812
+
813
+ * `{{project}}/{{location}}/{{plugin_id}}`
814
+
815
+ * `{{location}}/{{plugin_id}}`
816
+
817
+ When using the `pulumi import` command, Plugin can be imported using one of the formats above. For example:
818
+
819
+ ```sh
820
+ $ pulumi import gcp:apihub/plugin:Plugin default projects/{{project}}/locations/{{location}}/plugins/{{plugin_id}}
821
+ ```
822
+
823
+ ```sh
824
+ $ pulumi import gcp:apihub/plugin:Plugin default {{project}}/{{location}}/{{plugin_id}}
825
+ ```
826
+
827
+ ```sh
828
+ $ pulumi import gcp:apihub/plugin:Plugin default {{location}}/{{plugin_id}}
829
+ ```
830
+
831
+ :param str resource_name: The name of the resource.
832
+ :param PluginArgs args: The arguments to use to populate this resource's properties.
833
+ :param pulumi.ResourceOptions opts: Options for the resource.
834
+ """
835
+ ...
836
+ def __init__(__self__, resource_name: str, *args, **kwargs):
837
+ resource_args, opts = _utilities.get_resource_args_opts(PluginArgs, pulumi.ResourceOptions, *args, **kwargs)
838
+ if resource_args is not None:
839
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
840
+ else:
841
+ __self__._internal_init(resource_name, *args, **kwargs)
842
+
843
+ def _internal_init(__self__,
844
+ resource_name: str,
845
+ opts: Optional[pulumi.ResourceOptions] = None,
846
+ actions_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PluginActionsConfigArgs', 'PluginActionsConfigArgsDict']]]]] = None,
847
+ config_template: Optional[pulumi.Input[Union['PluginConfigTemplateArgs', 'PluginConfigTemplateArgsDict']]] = None,
848
+ description: Optional[pulumi.Input[builtins.str]] = None,
849
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
850
+ documentation: Optional[pulumi.Input[Union['PluginDocumentationArgs', 'PluginDocumentationArgsDict']]] = None,
851
+ hosting_service: Optional[pulumi.Input[Union['PluginHostingServiceArgs', 'PluginHostingServiceArgsDict']]] = None,
852
+ location: Optional[pulumi.Input[builtins.str]] = None,
853
+ plugin_category: Optional[pulumi.Input[builtins.str]] = None,
854
+ plugin_id: Optional[pulumi.Input[builtins.str]] = None,
855
+ project: Optional[pulumi.Input[builtins.str]] = None,
856
+ __props__=None):
857
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
858
+ if not isinstance(opts, pulumi.ResourceOptions):
859
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
860
+ if opts.id is None:
861
+ if __props__ is not None:
862
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
863
+ __props__ = PluginArgs.__new__(PluginArgs)
864
+
865
+ __props__.__dict__["actions_configs"] = actions_configs
866
+ __props__.__dict__["config_template"] = config_template
867
+ __props__.__dict__["description"] = description
868
+ if display_name is None and not opts.urn:
869
+ raise TypeError("Missing required property 'display_name'")
870
+ __props__.__dict__["display_name"] = display_name
871
+ __props__.__dict__["documentation"] = documentation
872
+ __props__.__dict__["hosting_service"] = hosting_service
873
+ if location is None and not opts.urn:
874
+ raise TypeError("Missing required property 'location'")
875
+ __props__.__dict__["location"] = location
876
+ __props__.__dict__["plugin_category"] = plugin_category
877
+ if plugin_id is None and not opts.urn:
878
+ raise TypeError("Missing required property 'plugin_id'")
879
+ __props__.__dict__["plugin_id"] = plugin_id
880
+ __props__.__dict__["project"] = project
881
+ __props__.__dict__["create_time"] = None
882
+ __props__.__dict__["name"] = None
883
+ __props__.__dict__["ownership_type"] = None
884
+ __props__.__dict__["state"] = None
885
+ __props__.__dict__["update_time"] = None
886
+ super(Plugin, __self__).__init__(
887
+ 'gcp:apihub/plugin:Plugin',
888
+ resource_name,
889
+ __props__,
890
+ opts)
891
+
892
+ @staticmethod
893
+ def get(resource_name: str,
894
+ id: pulumi.Input[str],
895
+ opts: Optional[pulumi.ResourceOptions] = None,
896
+ actions_configs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['PluginActionsConfigArgs', 'PluginActionsConfigArgsDict']]]]] = None,
897
+ config_template: Optional[pulumi.Input[Union['PluginConfigTemplateArgs', 'PluginConfigTemplateArgsDict']]] = None,
898
+ create_time: Optional[pulumi.Input[builtins.str]] = None,
899
+ description: Optional[pulumi.Input[builtins.str]] = None,
900
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
901
+ documentation: Optional[pulumi.Input[Union['PluginDocumentationArgs', 'PluginDocumentationArgsDict']]] = None,
902
+ hosting_service: Optional[pulumi.Input[Union['PluginHostingServiceArgs', 'PluginHostingServiceArgsDict']]] = None,
903
+ location: Optional[pulumi.Input[builtins.str]] = None,
904
+ name: Optional[pulumi.Input[builtins.str]] = None,
905
+ ownership_type: Optional[pulumi.Input[builtins.str]] = None,
906
+ plugin_category: Optional[pulumi.Input[builtins.str]] = None,
907
+ plugin_id: Optional[pulumi.Input[builtins.str]] = None,
908
+ project: Optional[pulumi.Input[builtins.str]] = None,
909
+ state: Optional[pulumi.Input[builtins.str]] = None,
910
+ update_time: Optional[pulumi.Input[builtins.str]] = None) -> 'Plugin':
911
+ """
912
+ Get an existing Plugin resource's state with the given name, id, and optional extra
913
+ properties used to qualify the lookup.
914
+
915
+ :param str resource_name: The unique name of the resulting resource.
916
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
917
+ :param pulumi.ResourceOptions opts: Options for the resource.
918
+ :param pulumi.Input[Sequence[pulumi.Input[Union['PluginActionsConfigArgs', 'PluginActionsConfigArgsDict']]]] actions_configs: The configuration of actions supported by the plugin.
919
+ Structure is documented below.
920
+ :param pulumi.Input[Union['PluginConfigTemplateArgs', 'PluginConfigTemplateArgsDict']] config_template: ConfigTemplate represents the configuration template for a plugin.
921
+ Structure is documented below.
922
+ :param pulumi.Input[builtins.str] create_time: Timestamp indicating when the plugin was created.
923
+ :param pulumi.Input[builtins.str] description: The plugin description. Max length is 2000 characters (Unicode code
924
+ points).
925
+ :param pulumi.Input[builtins.str] display_name: The display name of the plugin. Max length is 50 characters (Unicode code
926
+ points).
927
+ :param pulumi.Input[Union['PluginDocumentationArgs', 'PluginDocumentationArgsDict']] documentation: Documentation details.
928
+ Structure is documented below.
929
+ :param pulumi.Input[Union['PluginHostingServiceArgs', 'PluginHostingServiceArgsDict']] hosting_service: The information related to the service implemented by the plugin
930
+ developer, used to invoke the plugin's functionality.
931
+ Structure is documented below.
932
+ :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.
933
+ :param pulumi.Input[builtins.str] name: Identifier. The name of the plugin.
934
+ Format: `projects/{project}/locations/{location}/plugins/{plugin}`
935
+ :param pulumi.Input[builtins.str] ownership_type: The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or
936
+ 'USER_OWNED'.
937
+ Possible values:
938
+ OWNERSHIP_TYPE_UNSPECIFIED
939
+ SYSTEM_OWNED
940
+ USER_OWNED
941
+ :param pulumi.Input[builtins.str] plugin_category: Possible values:
942
+ PLUGIN_CATEGORY_UNSPECIFIED
943
+ API_GATEWAY
944
+ API_PRODUCER
945
+ :param pulumi.Input[builtins.str] plugin_id: The ID to use for the Plugin resource, which will become the final
946
+ component of the Plugin's resource name. This field is optional.
947
+ * If provided, the same will be used. The service will throw an error if
948
+ the specified id is already used by another Plugin resource in the API hub
949
+ instance.
950
+ * If not provided, a system generated id will be used.
951
+ This value should be 4-63 characters, overall resource name which will be
952
+ of format
953
+ `projects/{project}/locations/{location}/plugins/{plugin}`,
954
+ its length is limited to 1000 characters and valid characters are
955
+ /a-z[0-9]-_/.
956
+
957
+
958
+ - - -
959
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
960
+ If it is not provided, the provider project is used.
961
+ :param pulumi.Input[builtins.str] state: Represents the state of the plugin.
962
+ Note this field will not be set for plugins developed via plugin
963
+ framework as the state will be managed at plugin instance level.
964
+ Possible values:
965
+ STATE_UNSPECIFIED
966
+ ENABLED
967
+ DISABLED
968
+ :param pulumi.Input[builtins.str] update_time: Timestamp indicating when the plugin was last updated.
969
+ """
970
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
971
+
972
+ __props__ = _PluginState.__new__(_PluginState)
973
+
974
+ __props__.__dict__["actions_configs"] = actions_configs
975
+ __props__.__dict__["config_template"] = config_template
976
+ __props__.__dict__["create_time"] = create_time
977
+ __props__.__dict__["description"] = description
978
+ __props__.__dict__["display_name"] = display_name
979
+ __props__.__dict__["documentation"] = documentation
980
+ __props__.__dict__["hosting_service"] = hosting_service
981
+ __props__.__dict__["location"] = location
982
+ __props__.__dict__["name"] = name
983
+ __props__.__dict__["ownership_type"] = ownership_type
984
+ __props__.__dict__["plugin_category"] = plugin_category
985
+ __props__.__dict__["plugin_id"] = plugin_id
986
+ __props__.__dict__["project"] = project
987
+ __props__.__dict__["state"] = state
988
+ __props__.__dict__["update_time"] = update_time
989
+ return Plugin(resource_name, opts=opts, __props__=__props__)
990
+
991
+ @property
992
+ @pulumi.getter(name="actionsConfigs")
993
+ def actions_configs(self) -> pulumi.Output[Optional[Sequence['outputs.PluginActionsConfig']]]:
994
+ """
995
+ The configuration of actions supported by the plugin.
996
+ Structure is documented below.
997
+ """
998
+ return pulumi.get(self, "actions_configs")
999
+
1000
+ @property
1001
+ @pulumi.getter(name="configTemplate")
1002
+ def config_template(self) -> pulumi.Output[Optional['outputs.PluginConfigTemplate']]:
1003
+ """
1004
+ ConfigTemplate represents the configuration template for a plugin.
1005
+ Structure is documented below.
1006
+ """
1007
+ return pulumi.get(self, "config_template")
1008
+
1009
+ @property
1010
+ @pulumi.getter(name="createTime")
1011
+ def create_time(self) -> pulumi.Output[builtins.str]:
1012
+ """
1013
+ Timestamp indicating when the plugin was created.
1014
+ """
1015
+ return pulumi.get(self, "create_time")
1016
+
1017
+ @property
1018
+ @pulumi.getter
1019
+ def description(self) -> pulumi.Output[Optional[builtins.str]]:
1020
+ """
1021
+ The plugin description. Max length is 2000 characters (Unicode code
1022
+ points).
1023
+ """
1024
+ return pulumi.get(self, "description")
1025
+
1026
+ @property
1027
+ @pulumi.getter(name="displayName")
1028
+ def display_name(self) -> pulumi.Output[builtins.str]:
1029
+ """
1030
+ The display name of the plugin. Max length is 50 characters (Unicode code
1031
+ points).
1032
+ """
1033
+ return pulumi.get(self, "display_name")
1034
+
1035
+ @property
1036
+ @pulumi.getter
1037
+ def documentation(self) -> pulumi.Output[Optional['outputs.PluginDocumentation']]:
1038
+ """
1039
+ Documentation details.
1040
+ Structure is documented below.
1041
+ """
1042
+ return pulumi.get(self, "documentation")
1043
+
1044
+ @property
1045
+ @pulumi.getter(name="hostingService")
1046
+ def hosting_service(self) -> pulumi.Output[Optional['outputs.PluginHostingService']]:
1047
+ """
1048
+ The information related to the service implemented by the plugin
1049
+ developer, used to invoke the plugin's functionality.
1050
+ Structure is documented below.
1051
+ """
1052
+ return pulumi.get(self, "hosting_service")
1053
+
1054
+ @property
1055
+ @pulumi.getter
1056
+ def location(self) -> pulumi.Output[builtins.str]:
1057
+ """
1058
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
1059
+ """
1060
+ return pulumi.get(self, "location")
1061
+
1062
+ @property
1063
+ @pulumi.getter
1064
+ def name(self) -> pulumi.Output[builtins.str]:
1065
+ """
1066
+ Identifier. The name of the plugin.
1067
+ Format: `projects/{project}/locations/{location}/plugins/{plugin}`
1068
+ """
1069
+ return pulumi.get(self, "name")
1070
+
1071
+ @property
1072
+ @pulumi.getter(name="ownershipType")
1073
+ def ownership_type(self) -> pulumi.Output[builtins.str]:
1074
+ """
1075
+ The type of the plugin, indicating whether it is 'SYSTEM_OWNED' or
1076
+ 'USER_OWNED'.
1077
+ Possible values:
1078
+ OWNERSHIP_TYPE_UNSPECIFIED
1079
+ SYSTEM_OWNED
1080
+ USER_OWNED
1081
+ """
1082
+ return pulumi.get(self, "ownership_type")
1083
+
1084
+ @property
1085
+ @pulumi.getter(name="pluginCategory")
1086
+ def plugin_category(self) -> pulumi.Output[Optional[builtins.str]]:
1087
+ """
1088
+ Possible values:
1089
+ PLUGIN_CATEGORY_UNSPECIFIED
1090
+ API_GATEWAY
1091
+ API_PRODUCER
1092
+ """
1093
+ return pulumi.get(self, "plugin_category")
1094
+
1095
+ @property
1096
+ @pulumi.getter(name="pluginId")
1097
+ def plugin_id(self) -> pulumi.Output[builtins.str]:
1098
+ """
1099
+ The ID to use for the Plugin resource, which will become the final
1100
+ component of the Plugin's resource name. This field is optional.
1101
+ * If provided, the same will be used. The service will throw an error if
1102
+ the specified id is already used by another Plugin resource in the API hub
1103
+ instance.
1104
+ * If not provided, a system generated id will be used.
1105
+ This value should be 4-63 characters, overall resource name which will be
1106
+ of format
1107
+ `projects/{project}/locations/{location}/plugins/{plugin}`,
1108
+ its length is limited to 1000 characters and valid characters are
1109
+ /a-z[0-9]-_/.
1110
+
1111
+
1112
+ - - -
1113
+ """
1114
+ return pulumi.get(self, "plugin_id")
1115
+
1116
+ @property
1117
+ @pulumi.getter
1118
+ def project(self) -> pulumi.Output[builtins.str]:
1119
+ """
1120
+ The ID of the project in which the resource belongs.
1121
+ If it is not provided, the provider project is used.
1122
+ """
1123
+ return pulumi.get(self, "project")
1124
+
1125
+ @property
1126
+ @pulumi.getter
1127
+ def state(self) -> pulumi.Output[builtins.str]:
1128
+ """
1129
+ Represents the state of the plugin.
1130
+ Note this field will not be set for plugins developed via plugin
1131
+ framework as the state will be managed at plugin instance level.
1132
+ Possible values:
1133
+ STATE_UNSPECIFIED
1134
+ ENABLED
1135
+ DISABLED
1136
+ """
1137
+ return pulumi.get(self, "state")
1138
+
1139
+ @property
1140
+ @pulumi.getter(name="updateTime")
1141
+ def update_time(self) -> pulumi.Output[builtins.str]:
1142
+ """
1143
+ Timestamp indicating when the plugin was last updated.
1144
+ """
1145
+ return pulumi.get(self, "update_time")
1146
+