pulumi-gcp 8.16.0a1738046179__py3-none-any.whl → 8.17.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 (83) hide show
  1. pulumi_gcp/__init__.py +91 -0
  2. pulumi_gcp/alloydb/cluster.py +75 -7
  3. pulumi_gcp/apigee/_inputs.py +91 -0
  4. pulumi_gcp/apigee/endpoint_attachment.py +0 -64
  5. pulumi_gcp/apigee/environment.py +54 -0
  6. pulumi_gcp/apigee/outputs.py +54 -0
  7. pulumi_gcp/apihub/__init__.py +10 -0
  8. pulumi_gcp/apihub/_inputs.py +154 -0
  9. pulumi_gcp/apihub/api_hub_instance.py +784 -0
  10. pulumi_gcp/apihub/outputs.py +124 -0
  11. pulumi_gcp/chronicle/__init__.py +1 -0
  12. pulumi_gcp/chronicle/_inputs.py +124 -0
  13. pulumi_gcp/chronicle/outputs.py +112 -0
  14. pulumi_gcp/chronicle/retrohunt.py +645 -0
  15. pulumi_gcp/cloudrunv2/_inputs.py +197 -0
  16. pulumi_gcp/cloudrunv2/get_service.py +12 -1
  17. pulumi_gcp/cloudrunv2/outputs.py +256 -0
  18. pulumi_gcp/cloudrunv2/service.py +159 -0
  19. pulumi_gcp/colab/__init__.py +5 -0
  20. pulumi_gcp/colab/_inputs.py +131 -0
  21. pulumi_gcp/colab/get_runtime_template_iam_policy.py +182 -0
  22. pulumi_gcp/colab/outputs.py +92 -0
  23. pulumi_gcp/colab/runtime.py +696 -0
  24. pulumi_gcp/colab/runtime_template_iam_binding.py +828 -0
  25. pulumi_gcp/colab/runtime_template_iam_member.py +828 -0
  26. pulumi_gcp/colab/runtime_template_iam_policy.py +667 -0
  27. pulumi_gcp/compute/__init__.py +4 -0
  28. pulumi_gcp/compute/_inputs.py +526 -0
  29. pulumi_gcp/compute/firewall_policy_rule.py +104 -22
  30. pulumi_gcp/compute/firewall_policy_with_rules.py +114 -42
  31. pulumi_gcp/compute/get_instance_template_iam_policy.py +159 -0
  32. pulumi_gcp/compute/instance_template_iam_binding.py +998 -0
  33. pulumi_gcp/compute/instance_template_iam_member.py +998 -0
  34. pulumi_gcp/compute/instance_template_iam_policy.py +817 -0
  35. pulumi_gcp/compute/interconnect_attachment.py +189 -2
  36. pulumi_gcp/compute/network_firewall_policy_rule.py +122 -10
  37. pulumi_gcp/compute/network_firewall_policy_with_rules.py +116 -44
  38. pulumi_gcp/compute/outputs.py +352 -0
  39. pulumi_gcp/compute/project_metadata_item.py +12 -0
  40. pulumi_gcp/compute/public_advertised_prefix.py +87 -0
  41. pulumi_gcp/compute/region_network_firewall_policy_rule.py +130 -10
  42. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +104 -32
  43. pulumi_gcp/compute/router_peer.py +115 -3
  44. pulumi_gcp/config/__init__.pyi +2 -0
  45. pulumi_gcp/config/vars.py +4 -0
  46. pulumi_gcp/filestore/get_instance.py +12 -1
  47. pulumi_gcp/filestore/instance.py +75 -0
  48. pulumi_gcp/gemini/code_repository_index.py +29 -33
  49. pulumi_gcp/gemini/get_repository_group_iam_policy.py +28 -2
  50. pulumi_gcp/gemini/repository_group.py +76 -26
  51. pulumi_gcp/gemini/repository_group_iam_binding.py +258 -0
  52. pulumi_gcp/gemini/repository_group_iam_member.py +258 -0
  53. pulumi_gcp/gemini/repository_group_iam_policy.py +258 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/get_key_handles.py +172 -0
  56. pulumi_gcp/kms/outputs.py +45 -0
  57. pulumi_gcp/networksecurity/_inputs.py +72 -0
  58. pulumi_gcp/networksecurity/outputs.py +76 -0
  59. pulumi_gcp/networksecurity/security_profile.py +233 -7
  60. pulumi_gcp/networksecurity/security_profile_group.py +218 -0
  61. pulumi_gcp/organizations/__init__.py +1 -0
  62. pulumi_gcp/organizations/get_s.py +128 -0
  63. pulumi_gcp/organizations/outputs.py +63 -0
  64. pulumi_gcp/parametermanager/__init__.py +3 -0
  65. pulumi_gcp/parametermanager/get_parameter.py +211 -0
  66. pulumi_gcp/parametermanager/get_regional_parameters.py +157 -0
  67. pulumi_gcp/parametermanager/outputs.py +210 -0
  68. pulumi_gcp/parametermanager/parameter_version.py +496 -0
  69. pulumi_gcp/parametermanager/regional_parameter_version.py +10 -38
  70. pulumi_gcp/provider.py +20 -0
  71. pulumi_gcp/pubsub/_inputs.py +213 -1
  72. pulumi_gcp/pubsub/outputs.py +278 -2
  73. pulumi_gcp/pubsub/topic.py +42 -0
  74. pulumi_gcp/pulumi-plugin.json +1 -1
  75. pulumi_gcp/redis/__init__.py +1 -0
  76. pulumi_gcp/redis/_inputs.py +342 -6
  77. pulumi_gcp/redis/cluster.py +223 -102
  78. pulumi_gcp/redis/cluster_user_created_connections.py +845 -0
  79. pulumi_gcp/redis/outputs.py +268 -4
  80. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/RECORD +83 -63
  82. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-8.16.0a1738046179.dist-info → pulumi_gcp-8.17.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,784 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['ApiHubInstanceArgs', 'ApiHubInstance']
20
+
21
+ @pulumi.input_type
22
+ class ApiHubInstanceArgs:
23
+ def __init__(__self__, *,
24
+ config: pulumi.Input['ApiHubInstanceConfigArgs'],
25
+ location: pulumi.Input[str],
26
+ api_hub_instance_id: Optional[pulumi.Input[str]] = None,
27
+ description: Optional[pulumi.Input[str]] = None,
28
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
29
+ project: Optional[pulumi.Input[str]] = None):
30
+ """
31
+ The set of arguments for constructing a ApiHubInstance resource.
32
+ :param pulumi.Input['ApiHubInstanceConfigArgs'] config: Available configurations to provision an ApiHub Instance.
33
+ Structure is documented below.
34
+ :param pulumi.Input[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.
35
+ :param pulumi.Input[str] api_hub_instance_id: Optional. Identifier to assign to the Api Hub instance. Must be unique within scope of the parent resource. If the field
36
+ is not provided, system generated id will be used. This value should be 4-40 characters, and valid characters are
37
+ '/a-z[0-9]-_/'.
38
+ :param pulumi.Input[str] description: Optional. Description of the ApiHub instance.
39
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details.
40
+ https://cloud.google.com/compute/docs/labeling-resources **Note**: This field is non-authoritative, and will only manage
41
+ the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
42
+ the resource.
43
+ """
44
+ pulumi.set(__self__, "config", config)
45
+ pulumi.set(__self__, "location", location)
46
+ if api_hub_instance_id is not None:
47
+ pulumi.set(__self__, "api_hub_instance_id", api_hub_instance_id)
48
+ if description is not None:
49
+ pulumi.set(__self__, "description", description)
50
+ if labels is not None:
51
+ pulumi.set(__self__, "labels", labels)
52
+ if project is not None:
53
+ pulumi.set(__self__, "project", project)
54
+
55
+ @property
56
+ @pulumi.getter
57
+ def config(self) -> pulumi.Input['ApiHubInstanceConfigArgs']:
58
+ """
59
+ Available configurations to provision an ApiHub Instance.
60
+ Structure is documented below.
61
+ """
62
+ return pulumi.get(self, "config")
63
+
64
+ @config.setter
65
+ def config(self, value: pulumi.Input['ApiHubInstanceConfigArgs']):
66
+ pulumi.set(self, "config", value)
67
+
68
+ @property
69
+ @pulumi.getter
70
+ def location(self) -> pulumi.Input[str]:
71
+ """
72
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
73
+ """
74
+ return pulumi.get(self, "location")
75
+
76
+ @location.setter
77
+ def location(self, value: pulumi.Input[str]):
78
+ pulumi.set(self, "location", value)
79
+
80
+ @property
81
+ @pulumi.getter(name="apiHubInstanceId")
82
+ def api_hub_instance_id(self) -> Optional[pulumi.Input[str]]:
83
+ """
84
+ Optional. Identifier to assign to the Api Hub instance. Must be unique within scope of the parent resource. If the field
85
+ is not provided, system generated id will be used. This value should be 4-40 characters, and valid characters are
86
+ '/a-z[0-9]-_/'.
87
+ """
88
+ return pulumi.get(self, "api_hub_instance_id")
89
+
90
+ @api_hub_instance_id.setter
91
+ def api_hub_instance_id(self, value: Optional[pulumi.Input[str]]):
92
+ pulumi.set(self, "api_hub_instance_id", value)
93
+
94
+ @property
95
+ @pulumi.getter
96
+ def description(self) -> Optional[pulumi.Input[str]]:
97
+ """
98
+ Optional. Description of the ApiHub instance.
99
+ """
100
+ return pulumi.get(self, "description")
101
+
102
+ @description.setter
103
+ def description(self, value: Optional[pulumi.Input[str]]):
104
+ pulumi.set(self, "description", value)
105
+
106
+ @property
107
+ @pulumi.getter
108
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
109
+ """
110
+ Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details.
111
+ https://cloud.google.com/compute/docs/labeling-resources **Note**: This field is non-authoritative, and will only manage
112
+ the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
113
+ the resource.
114
+ """
115
+ return pulumi.get(self, "labels")
116
+
117
+ @labels.setter
118
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
119
+ pulumi.set(self, "labels", value)
120
+
121
+ @property
122
+ @pulumi.getter
123
+ def project(self) -> Optional[pulumi.Input[str]]:
124
+ return pulumi.get(self, "project")
125
+
126
+ @project.setter
127
+ def project(self, value: Optional[pulumi.Input[str]]):
128
+ pulumi.set(self, "project", value)
129
+
130
+
131
+ @pulumi.input_type
132
+ class _ApiHubInstanceState:
133
+ def __init__(__self__, *,
134
+ api_hub_instance_id: Optional[pulumi.Input[str]] = None,
135
+ config: Optional[pulumi.Input['ApiHubInstanceConfigArgs']] = None,
136
+ create_time: Optional[pulumi.Input[str]] = None,
137
+ description: Optional[pulumi.Input[str]] = None,
138
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
139
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
140
+ location: Optional[pulumi.Input[str]] = None,
141
+ name: Optional[pulumi.Input[str]] = None,
142
+ project: Optional[pulumi.Input[str]] = None,
143
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
144
+ state: Optional[pulumi.Input[str]] = None,
145
+ state_message: Optional[pulumi.Input[str]] = None,
146
+ update_time: Optional[pulumi.Input[str]] = None):
147
+ """
148
+ Input properties used for looking up and filtering ApiHubInstance resources.
149
+ :param pulumi.Input[str] api_hub_instance_id: Optional. Identifier to assign to the Api Hub instance. Must be unique within scope of the parent resource. If the field
150
+ is not provided, system generated id will be used. This value should be 4-40 characters, and valid characters are
151
+ '/a-z[0-9]-_/'.
152
+ :param pulumi.Input['ApiHubInstanceConfigArgs'] config: Available configurations to provision an ApiHub Instance.
153
+ Structure is documented below.
154
+ :param pulumi.Input[str] create_time: Output only. Creation timestamp.
155
+ :param pulumi.Input[str] description: Optional. Description of the ApiHub instance.
156
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
157
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details.
158
+ https://cloud.google.com/compute/docs/labeling-resources **Note**: This field is non-authoritative, and will only manage
159
+ the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
160
+ the resource.
161
+ :param pulumi.Input[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.
162
+ :param pulumi.Input[str] name: Identifier. Format:
163
+ `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`.
164
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
165
+ and default labels configured on the provider.
166
+ :param pulumi.Input[str] state: Output only. The current state of the ApiHub instance.
167
+ Possible values:
168
+ STATE_UNSPECIFIED
169
+ INACTIVE
170
+ CREATING
171
+ ACTIVE
172
+ UPDATING
173
+ DELETING
174
+ FAILED
175
+ :param pulumi.Input[str] state_message: Output only. Extra information about ApiHub instance state. Currently the message
176
+ would be populated when state is `FAILED`.
177
+ :param pulumi.Input[str] update_time: Output only. Last update timestamp.
178
+ """
179
+ if api_hub_instance_id is not None:
180
+ pulumi.set(__self__, "api_hub_instance_id", api_hub_instance_id)
181
+ if config is not None:
182
+ pulumi.set(__self__, "config", config)
183
+ if create_time is not None:
184
+ pulumi.set(__self__, "create_time", create_time)
185
+ if description is not None:
186
+ pulumi.set(__self__, "description", description)
187
+ if effective_labels is not None:
188
+ pulumi.set(__self__, "effective_labels", effective_labels)
189
+ if labels is not None:
190
+ pulumi.set(__self__, "labels", labels)
191
+ if location is not None:
192
+ pulumi.set(__self__, "location", location)
193
+ if name is not None:
194
+ pulumi.set(__self__, "name", name)
195
+ if project is not None:
196
+ pulumi.set(__self__, "project", project)
197
+ if pulumi_labels is not None:
198
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
199
+ if state is not None:
200
+ pulumi.set(__self__, "state", state)
201
+ if state_message is not None:
202
+ pulumi.set(__self__, "state_message", state_message)
203
+ if update_time is not None:
204
+ pulumi.set(__self__, "update_time", update_time)
205
+
206
+ @property
207
+ @pulumi.getter(name="apiHubInstanceId")
208
+ def api_hub_instance_id(self) -> Optional[pulumi.Input[str]]:
209
+ """
210
+ Optional. Identifier to assign to the Api Hub instance. Must be unique within scope of the parent resource. If the field
211
+ is not provided, system generated id will be used. This value should be 4-40 characters, and valid characters are
212
+ '/a-z[0-9]-_/'.
213
+ """
214
+ return pulumi.get(self, "api_hub_instance_id")
215
+
216
+ @api_hub_instance_id.setter
217
+ def api_hub_instance_id(self, value: Optional[pulumi.Input[str]]):
218
+ pulumi.set(self, "api_hub_instance_id", value)
219
+
220
+ @property
221
+ @pulumi.getter
222
+ def config(self) -> Optional[pulumi.Input['ApiHubInstanceConfigArgs']]:
223
+ """
224
+ Available configurations to provision an ApiHub Instance.
225
+ Structure is documented below.
226
+ """
227
+ return pulumi.get(self, "config")
228
+
229
+ @config.setter
230
+ def config(self, value: Optional[pulumi.Input['ApiHubInstanceConfigArgs']]):
231
+ pulumi.set(self, "config", value)
232
+
233
+ @property
234
+ @pulumi.getter(name="createTime")
235
+ def create_time(self) -> Optional[pulumi.Input[str]]:
236
+ """
237
+ Output only. Creation timestamp.
238
+ """
239
+ return pulumi.get(self, "create_time")
240
+
241
+ @create_time.setter
242
+ def create_time(self, value: Optional[pulumi.Input[str]]):
243
+ pulumi.set(self, "create_time", value)
244
+
245
+ @property
246
+ @pulumi.getter
247
+ def description(self) -> Optional[pulumi.Input[str]]:
248
+ """
249
+ Optional. Description of the ApiHub instance.
250
+ """
251
+ return pulumi.get(self, "description")
252
+
253
+ @description.setter
254
+ def description(self, value: Optional[pulumi.Input[str]]):
255
+ pulumi.set(self, "description", value)
256
+
257
+ @property
258
+ @pulumi.getter(name="effectiveLabels")
259
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
260
+ """
261
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
262
+ """
263
+ return pulumi.get(self, "effective_labels")
264
+
265
+ @effective_labels.setter
266
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
267
+ pulumi.set(self, "effective_labels", value)
268
+
269
+ @property
270
+ @pulumi.getter
271
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
272
+ """
273
+ Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details.
274
+ https://cloud.google.com/compute/docs/labeling-resources **Note**: This field is non-authoritative, and will only manage
275
+ the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
276
+ the resource.
277
+ """
278
+ return pulumi.get(self, "labels")
279
+
280
+ @labels.setter
281
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
282
+ pulumi.set(self, "labels", value)
283
+
284
+ @property
285
+ @pulumi.getter
286
+ def location(self) -> Optional[pulumi.Input[str]]:
287
+ """
288
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
289
+ """
290
+ return pulumi.get(self, "location")
291
+
292
+ @location.setter
293
+ def location(self, value: Optional[pulumi.Input[str]]):
294
+ pulumi.set(self, "location", value)
295
+
296
+ @property
297
+ @pulumi.getter
298
+ def name(self) -> Optional[pulumi.Input[str]]:
299
+ """
300
+ Identifier. Format:
301
+ `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`.
302
+ """
303
+ return pulumi.get(self, "name")
304
+
305
+ @name.setter
306
+ def name(self, value: Optional[pulumi.Input[str]]):
307
+ pulumi.set(self, "name", value)
308
+
309
+ @property
310
+ @pulumi.getter
311
+ def project(self) -> Optional[pulumi.Input[str]]:
312
+ return pulumi.get(self, "project")
313
+
314
+ @project.setter
315
+ def project(self, value: Optional[pulumi.Input[str]]):
316
+ pulumi.set(self, "project", value)
317
+
318
+ @property
319
+ @pulumi.getter(name="pulumiLabels")
320
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
321
+ """
322
+ The combination of labels configured directly on the resource
323
+ and default labels configured on the provider.
324
+ """
325
+ return pulumi.get(self, "pulumi_labels")
326
+
327
+ @pulumi_labels.setter
328
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
329
+ pulumi.set(self, "pulumi_labels", value)
330
+
331
+ @property
332
+ @pulumi.getter
333
+ def state(self) -> Optional[pulumi.Input[str]]:
334
+ """
335
+ Output only. The current state of the ApiHub instance.
336
+ Possible values:
337
+ STATE_UNSPECIFIED
338
+ INACTIVE
339
+ CREATING
340
+ ACTIVE
341
+ UPDATING
342
+ DELETING
343
+ FAILED
344
+ """
345
+ return pulumi.get(self, "state")
346
+
347
+ @state.setter
348
+ def state(self, value: Optional[pulumi.Input[str]]):
349
+ pulumi.set(self, "state", value)
350
+
351
+ @property
352
+ @pulumi.getter(name="stateMessage")
353
+ def state_message(self) -> Optional[pulumi.Input[str]]:
354
+ """
355
+ Output only. Extra information about ApiHub instance state. Currently the message
356
+ would be populated when state is `FAILED`.
357
+ """
358
+ return pulumi.get(self, "state_message")
359
+
360
+ @state_message.setter
361
+ def state_message(self, value: Optional[pulumi.Input[str]]):
362
+ pulumi.set(self, "state_message", value)
363
+
364
+ @property
365
+ @pulumi.getter(name="updateTime")
366
+ def update_time(self) -> Optional[pulumi.Input[str]]:
367
+ """
368
+ Output only. Last update timestamp.
369
+ """
370
+ return pulumi.get(self, "update_time")
371
+
372
+ @update_time.setter
373
+ def update_time(self, value: Optional[pulumi.Input[str]]):
374
+ pulumi.set(self, "update_time", value)
375
+
376
+
377
+ class ApiHubInstance(pulumi.CustomResource):
378
+ @overload
379
+ def __init__(__self__,
380
+ resource_name: str,
381
+ opts: Optional[pulumi.ResourceOptions] = None,
382
+ api_hub_instance_id: Optional[pulumi.Input[str]] = None,
383
+ config: Optional[pulumi.Input[Union['ApiHubInstanceConfigArgs', 'ApiHubInstanceConfigArgsDict']]] = None,
384
+ description: Optional[pulumi.Input[str]] = None,
385
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
386
+ location: Optional[pulumi.Input[str]] = None,
387
+ project: Optional[pulumi.Input[str]] = None,
388
+ __props__=None):
389
+ """
390
+ An ApiHubInstance represents the instance resources of the API Hub.
391
+ Currently, only one ApiHub instance is allowed for each project.
392
+ Currently, updation/deletion of ApiHub instance is not allowed.
393
+
394
+ ## Example Usage
395
+
396
+ ### Apihub Api Hub Instance Basic
397
+
398
+ ```python
399
+ import pulumi
400
+ import pulumi_gcp as gcp
401
+
402
+ apihub_instance_without_search = gcp.apihub.ApiHubInstance("apihub-instance-without-search",
403
+ location="us-central1",
404
+ config={
405
+ "disable_search": True,
406
+ })
407
+ ```
408
+ ### Apihub Api Hub Instance Full
409
+
410
+ ```python
411
+ import pulumi
412
+ import pulumi_gcp as gcp
413
+
414
+ apihub_instance_search = gcp.apihub.ApiHubInstance("apihub-instance-search",
415
+ project="my-project",
416
+ api_hub_instance_id="test-instance-full",
417
+ description="Test API hub instance",
418
+ location="us-central1",
419
+ config={
420
+ "encryption_type": "CMEK",
421
+ "cmek_key_name": "projects/my-project/locations/us-central1/keyRings/apihub/cryptoKeys/apihub-key",
422
+ "disable_search": False,
423
+ "vertex_location": "us",
424
+ },
425
+ labels={
426
+ "environment": "dev",
427
+ })
428
+ ```
429
+
430
+ ## Import
431
+
432
+ ApiHubInstance can be imported using any of these accepted formats:
433
+
434
+ * `projects/{{project}}/locations/{{location}}/apiHubInstances/{{api_hub_instance_id}}`
435
+
436
+ * `{{project}}/{{location}}/{{api_hub_instance_id}}`
437
+
438
+ * `{{location}}/{{api_hub_instance_id}}`
439
+
440
+ When using the `pulumi import` command, ApiHubInstance can be imported using one of the formats above. For example:
441
+
442
+ ```sh
443
+ $ pulumi import gcp:apihub/apiHubInstance:ApiHubInstance default projects/{{project}}/locations/{{location}}/apiHubInstances/{{api_hub_instance_id}}
444
+ ```
445
+
446
+ ```sh
447
+ $ pulumi import gcp:apihub/apiHubInstance:ApiHubInstance default {{project}}/{{location}}/{{api_hub_instance_id}}
448
+ ```
449
+
450
+ ```sh
451
+ $ pulumi import gcp:apihub/apiHubInstance:ApiHubInstance default {{location}}/{{api_hub_instance_id}}
452
+ ```
453
+
454
+ :param str resource_name: The name of the resource.
455
+ :param pulumi.ResourceOptions opts: Options for the resource.
456
+ :param pulumi.Input[str] api_hub_instance_id: Optional. Identifier to assign to the Api Hub instance. Must be unique within scope of the parent resource. If the field
457
+ is not provided, system generated id will be used. This value should be 4-40 characters, and valid characters are
458
+ '/a-z[0-9]-_/'.
459
+ :param pulumi.Input[Union['ApiHubInstanceConfigArgs', 'ApiHubInstanceConfigArgsDict']] config: Available configurations to provision an ApiHub Instance.
460
+ Structure is documented below.
461
+ :param pulumi.Input[str] description: Optional. Description of the ApiHub instance.
462
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details.
463
+ https://cloud.google.com/compute/docs/labeling-resources **Note**: This field is non-authoritative, and will only manage
464
+ the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
465
+ the resource.
466
+ :param pulumi.Input[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.
467
+ """
468
+ ...
469
+ @overload
470
+ def __init__(__self__,
471
+ resource_name: str,
472
+ args: ApiHubInstanceArgs,
473
+ opts: Optional[pulumi.ResourceOptions] = None):
474
+ """
475
+ An ApiHubInstance represents the instance resources of the API Hub.
476
+ Currently, only one ApiHub instance is allowed for each project.
477
+ Currently, updation/deletion of ApiHub instance is not allowed.
478
+
479
+ ## Example Usage
480
+
481
+ ### Apihub Api Hub Instance Basic
482
+
483
+ ```python
484
+ import pulumi
485
+ import pulumi_gcp as gcp
486
+
487
+ apihub_instance_without_search = gcp.apihub.ApiHubInstance("apihub-instance-without-search",
488
+ location="us-central1",
489
+ config={
490
+ "disable_search": True,
491
+ })
492
+ ```
493
+ ### Apihub Api Hub Instance Full
494
+
495
+ ```python
496
+ import pulumi
497
+ import pulumi_gcp as gcp
498
+
499
+ apihub_instance_search = gcp.apihub.ApiHubInstance("apihub-instance-search",
500
+ project="my-project",
501
+ api_hub_instance_id="test-instance-full",
502
+ description="Test API hub instance",
503
+ location="us-central1",
504
+ config={
505
+ "encryption_type": "CMEK",
506
+ "cmek_key_name": "projects/my-project/locations/us-central1/keyRings/apihub/cryptoKeys/apihub-key",
507
+ "disable_search": False,
508
+ "vertex_location": "us",
509
+ },
510
+ labels={
511
+ "environment": "dev",
512
+ })
513
+ ```
514
+
515
+ ## Import
516
+
517
+ ApiHubInstance can be imported using any of these accepted formats:
518
+
519
+ * `projects/{{project}}/locations/{{location}}/apiHubInstances/{{api_hub_instance_id}}`
520
+
521
+ * `{{project}}/{{location}}/{{api_hub_instance_id}}`
522
+
523
+ * `{{location}}/{{api_hub_instance_id}}`
524
+
525
+ When using the `pulumi import` command, ApiHubInstance can be imported using one of the formats above. For example:
526
+
527
+ ```sh
528
+ $ pulumi import gcp:apihub/apiHubInstance:ApiHubInstance default projects/{{project}}/locations/{{location}}/apiHubInstances/{{api_hub_instance_id}}
529
+ ```
530
+
531
+ ```sh
532
+ $ pulumi import gcp:apihub/apiHubInstance:ApiHubInstance default {{project}}/{{location}}/{{api_hub_instance_id}}
533
+ ```
534
+
535
+ ```sh
536
+ $ pulumi import gcp:apihub/apiHubInstance:ApiHubInstance default {{location}}/{{api_hub_instance_id}}
537
+ ```
538
+
539
+ :param str resource_name: The name of the resource.
540
+ :param ApiHubInstanceArgs args: The arguments to use to populate this resource's properties.
541
+ :param pulumi.ResourceOptions opts: Options for the resource.
542
+ """
543
+ ...
544
+ def __init__(__self__, resource_name: str, *args, **kwargs):
545
+ resource_args, opts = _utilities.get_resource_args_opts(ApiHubInstanceArgs, pulumi.ResourceOptions, *args, **kwargs)
546
+ if resource_args is not None:
547
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
548
+ else:
549
+ __self__._internal_init(resource_name, *args, **kwargs)
550
+
551
+ def _internal_init(__self__,
552
+ resource_name: str,
553
+ opts: Optional[pulumi.ResourceOptions] = None,
554
+ api_hub_instance_id: Optional[pulumi.Input[str]] = None,
555
+ config: Optional[pulumi.Input[Union['ApiHubInstanceConfigArgs', 'ApiHubInstanceConfigArgsDict']]] = None,
556
+ description: Optional[pulumi.Input[str]] = None,
557
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
558
+ location: Optional[pulumi.Input[str]] = None,
559
+ project: Optional[pulumi.Input[str]] = None,
560
+ __props__=None):
561
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
562
+ if not isinstance(opts, pulumi.ResourceOptions):
563
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
564
+ if opts.id is None:
565
+ if __props__ is not None:
566
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
567
+ __props__ = ApiHubInstanceArgs.__new__(ApiHubInstanceArgs)
568
+
569
+ __props__.__dict__["api_hub_instance_id"] = api_hub_instance_id
570
+ if config is None and not opts.urn:
571
+ raise TypeError("Missing required property 'config'")
572
+ __props__.__dict__["config"] = config
573
+ __props__.__dict__["description"] = description
574
+ __props__.__dict__["labels"] = labels
575
+ if location is None and not opts.urn:
576
+ raise TypeError("Missing required property 'location'")
577
+ __props__.__dict__["location"] = location
578
+ __props__.__dict__["project"] = project
579
+ __props__.__dict__["create_time"] = None
580
+ __props__.__dict__["effective_labels"] = None
581
+ __props__.__dict__["name"] = None
582
+ __props__.__dict__["pulumi_labels"] = None
583
+ __props__.__dict__["state"] = None
584
+ __props__.__dict__["state_message"] = None
585
+ __props__.__dict__["update_time"] = None
586
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
587
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
588
+ super(ApiHubInstance, __self__).__init__(
589
+ 'gcp:apihub/apiHubInstance:ApiHubInstance',
590
+ resource_name,
591
+ __props__,
592
+ opts)
593
+
594
+ @staticmethod
595
+ def get(resource_name: str,
596
+ id: pulumi.Input[str],
597
+ opts: Optional[pulumi.ResourceOptions] = None,
598
+ api_hub_instance_id: Optional[pulumi.Input[str]] = None,
599
+ config: Optional[pulumi.Input[Union['ApiHubInstanceConfigArgs', 'ApiHubInstanceConfigArgsDict']]] = None,
600
+ create_time: Optional[pulumi.Input[str]] = None,
601
+ description: Optional[pulumi.Input[str]] = None,
602
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
603
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
604
+ location: Optional[pulumi.Input[str]] = None,
605
+ name: Optional[pulumi.Input[str]] = None,
606
+ project: Optional[pulumi.Input[str]] = None,
607
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
608
+ state: Optional[pulumi.Input[str]] = None,
609
+ state_message: Optional[pulumi.Input[str]] = None,
610
+ update_time: Optional[pulumi.Input[str]] = None) -> 'ApiHubInstance':
611
+ """
612
+ Get an existing ApiHubInstance resource's state with the given name, id, and optional extra
613
+ properties used to qualify the lookup.
614
+
615
+ :param str resource_name: The unique name of the resulting resource.
616
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
617
+ :param pulumi.ResourceOptions opts: Options for the resource.
618
+ :param pulumi.Input[str] api_hub_instance_id: Optional. Identifier to assign to the Api Hub instance. Must be unique within scope of the parent resource. If the field
619
+ is not provided, system generated id will be used. This value should be 4-40 characters, and valid characters are
620
+ '/a-z[0-9]-_/'.
621
+ :param pulumi.Input[Union['ApiHubInstanceConfigArgs', 'ApiHubInstanceConfigArgsDict']] config: Available configurations to provision an ApiHub Instance.
622
+ Structure is documented below.
623
+ :param pulumi.Input[str] create_time: Output only. Creation timestamp.
624
+ :param pulumi.Input[str] description: Optional. Description of the ApiHub instance.
625
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
626
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details.
627
+ https://cloud.google.com/compute/docs/labeling-resources **Note**: This field is non-authoritative, and will only manage
628
+ the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
629
+ the resource.
630
+ :param pulumi.Input[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.
631
+ :param pulumi.Input[str] name: Identifier. Format:
632
+ `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`.
633
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
634
+ and default labels configured on the provider.
635
+ :param pulumi.Input[str] state: Output only. The current state of the ApiHub instance.
636
+ Possible values:
637
+ STATE_UNSPECIFIED
638
+ INACTIVE
639
+ CREATING
640
+ ACTIVE
641
+ UPDATING
642
+ DELETING
643
+ FAILED
644
+ :param pulumi.Input[str] state_message: Output only. Extra information about ApiHub instance state. Currently the message
645
+ would be populated when state is `FAILED`.
646
+ :param pulumi.Input[str] update_time: Output only. Last update timestamp.
647
+ """
648
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
649
+
650
+ __props__ = _ApiHubInstanceState.__new__(_ApiHubInstanceState)
651
+
652
+ __props__.__dict__["api_hub_instance_id"] = api_hub_instance_id
653
+ __props__.__dict__["config"] = config
654
+ __props__.__dict__["create_time"] = create_time
655
+ __props__.__dict__["description"] = description
656
+ __props__.__dict__["effective_labels"] = effective_labels
657
+ __props__.__dict__["labels"] = labels
658
+ __props__.__dict__["location"] = location
659
+ __props__.__dict__["name"] = name
660
+ __props__.__dict__["project"] = project
661
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
662
+ __props__.__dict__["state"] = state
663
+ __props__.__dict__["state_message"] = state_message
664
+ __props__.__dict__["update_time"] = update_time
665
+ return ApiHubInstance(resource_name, opts=opts, __props__=__props__)
666
+
667
+ @property
668
+ @pulumi.getter(name="apiHubInstanceId")
669
+ def api_hub_instance_id(self) -> pulumi.Output[Optional[str]]:
670
+ """
671
+ Optional. Identifier to assign to the Api Hub instance. Must be unique within scope of the parent resource. If the field
672
+ is not provided, system generated id will be used. This value should be 4-40 characters, and valid characters are
673
+ '/a-z[0-9]-_/'.
674
+ """
675
+ return pulumi.get(self, "api_hub_instance_id")
676
+
677
+ @property
678
+ @pulumi.getter
679
+ def config(self) -> pulumi.Output['outputs.ApiHubInstanceConfig']:
680
+ """
681
+ Available configurations to provision an ApiHub Instance.
682
+ Structure is documented below.
683
+ """
684
+ return pulumi.get(self, "config")
685
+
686
+ @property
687
+ @pulumi.getter(name="createTime")
688
+ def create_time(self) -> pulumi.Output[str]:
689
+ """
690
+ Output only. Creation timestamp.
691
+ """
692
+ return pulumi.get(self, "create_time")
693
+
694
+ @property
695
+ @pulumi.getter
696
+ def description(self) -> pulumi.Output[Optional[str]]:
697
+ """
698
+ Optional. Description of the ApiHub instance.
699
+ """
700
+ return pulumi.get(self, "description")
701
+
702
+ @property
703
+ @pulumi.getter(name="effectiveLabels")
704
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
705
+ """
706
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
707
+ """
708
+ return pulumi.get(self, "effective_labels")
709
+
710
+ @property
711
+ @pulumi.getter
712
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
713
+ """
714
+ Optional. Instance labels to represent user-provided metadata. Refer to cloud documentation on labels for more details.
715
+ https://cloud.google.com/compute/docs/labeling-resources **Note**: This field is non-authoritative, and will only manage
716
+ the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on
717
+ the resource.
718
+ """
719
+ return pulumi.get(self, "labels")
720
+
721
+ @property
722
+ @pulumi.getter
723
+ def location(self) -> pulumi.Output[str]:
724
+ """
725
+ Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.
726
+ """
727
+ return pulumi.get(self, "location")
728
+
729
+ @property
730
+ @pulumi.getter
731
+ def name(self) -> pulumi.Output[str]:
732
+ """
733
+ Identifier. Format:
734
+ `projects/{project}/locations/{location}/apiHubInstances/{apiHubInstance}`.
735
+ """
736
+ return pulumi.get(self, "name")
737
+
738
+ @property
739
+ @pulumi.getter
740
+ def project(self) -> pulumi.Output[str]:
741
+ return pulumi.get(self, "project")
742
+
743
+ @property
744
+ @pulumi.getter(name="pulumiLabels")
745
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
746
+ """
747
+ The combination of labels configured directly on the resource
748
+ and default labels configured on the provider.
749
+ """
750
+ return pulumi.get(self, "pulumi_labels")
751
+
752
+ @property
753
+ @pulumi.getter
754
+ def state(self) -> pulumi.Output[str]:
755
+ """
756
+ Output only. The current state of the ApiHub instance.
757
+ Possible values:
758
+ STATE_UNSPECIFIED
759
+ INACTIVE
760
+ CREATING
761
+ ACTIVE
762
+ UPDATING
763
+ DELETING
764
+ FAILED
765
+ """
766
+ return pulumi.get(self, "state")
767
+
768
+ @property
769
+ @pulumi.getter(name="stateMessage")
770
+ def state_message(self) -> pulumi.Output[str]:
771
+ """
772
+ Output only. Extra information about ApiHub instance state. Currently the message
773
+ would be populated when state is `FAILED`.
774
+ """
775
+ return pulumi.get(self, "state_message")
776
+
777
+ @property
778
+ @pulumi.getter(name="updateTime")
779
+ def update_time(self) -> pulumi.Output[str]:
780
+ """
781
+ Output only. Last update timestamp.
782
+ """
783
+ return pulumi.get(self, "update_time")
784
+