pulumi-gcp 8.34.0a1749538186__py3-none-any.whl → 8.34.0a1749648575__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/alloydb/cluster.py +16 -64
  3. pulumi_gcp/apigee/_inputs.py +89 -0
  4. pulumi_gcp/apigee/environment.py +68 -2
  5. pulumi_gcp/apigee/outputs.py +88 -0
  6. pulumi_gcp/apihub/__init__.py +1 -0
  7. pulumi_gcp/apihub/_inputs.py +184 -0
  8. pulumi_gcp/apihub/curation.py +812 -0
  9. pulumi_gcp/apihub/outputs.py +165 -0
  10. pulumi_gcp/beyondcorp/get_security_gateway.py +12 -1
  11. pulumi_gcp/beyondcorp/security_gateway.py +28 -0
  12. pulumi_gcp/cloudrunv2/_inputs.py +463 -0
  13. pulumi_gcp/cloudrunv2/outputs.py +581 -1
  14. pulumi_gcp/cloudrunv2/worker_pool.py +0 -8
  15. pulumi_gcp/colab/runtime_template.py +4 -26
  16. pulumi_gcp/compute/__init__.py +3 -0
  17. pulumi_gcp/compute/_inputs.py +1551 -0
  18. pulumi_gcp/compute/interconnect.py +32 -0
  19. pulumi_gcp/compute/interconnect_attachment.py +28 -0
  20. pulumi_gcp/compute/interconnect_attachment_group.py +636 -0
  21. pulumi_gcp/compute/interconnect_group.py +586 -0
  22. pulumi_gcp/compute/outputs.py +1087 -0
  23. pulumi_gcp/compute/snapshot_settings.py +285 -0
  24. pulumi_gcp/container/_inputs.py +51 -18
  25. pulumi_gcp/container/cluster.py +47 -0
  26. pulumi_gcp/container/get_cluster.py +12 -1
  27. pulumi_gcp/container/outputs.py +71 -16
  28. pulumi_gcp/dataplex/_inputs.py +20 -0
  29. pulumi_gcp/dataplex/datascan.py +2 -0
  30. pulumi_gcp/dataplex/outputs.py +15 -1
  31. pulumi_gcp/eventarc/_inputs.py +12 -5
  32. pulumi_gcp/eventarc/outputs.py +8 -3
  33. pulumi_gcp/eventarc/pipeline.py +0 -12
  34. pulumi_gcp/gemini/data_sharing_with_google_setting.py +58 -9
  35. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +11 -16
  36. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +51 -2
  37. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +11 -16
  38. pulumi_gcp/gkehub/_inputs.py +84 -7
  39. pulumi_gcp/gkehub/feature.py +38 -0
  40. pulumi_gcp/gkehub/outputs.py +102 -7
  41. pulumi_gcp/gkehub/scope_rbac_role_binding.py +54 -2
  42. pulumi_gcp/gkeonprem/_inputs.py +54 -0
  43. pulumi_gcp/gkeonprem/outputs.py +49 -0
  44. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +71 -0
  45. pulumi_gcp/iam/workload_identity_pool_namespace.py +4 -4
  46. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  47. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  48. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  49. pulumi_gcp/managedkafka/connector.py +4 -4
  50. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  51. pulumi_gcp/networksecurity/backend_authentication_config.py +64 -0
  52. pulumi_gcp/orgpolicy/policy.py +2 -2
  53. pulumi_gcp/pubsub/_inputs.py +392 -0
  54. pulumi_gcp/pubsub/get_subscription.py +12 -1
  55. pulumi_gcp/pubsub/get_topic.py +12 -1
  56. pulumi_gcp/pubsub/outputs.py +548 -0
  57. pulumi_gcp/pubsub/subscription.py +67 -6
  58. pulumi_gcp/pubsub/topic.py +61 -0
  59. pulumi_gcp/pulumi-plugin.json +1 -1
  60. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  61. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  62. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/METADATA +1 -1
  63. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/RECORD +65 -61
  64. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/WHEEL +0 -0
  65. {pulumi_gcp-8.34.0a1749538186.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,636 @@
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__ = ['InterconnectAttachmentGroupArgs', 'InterconnectAttachmentGroup']
21
+
22
+ @pulumi.input_type
23
+ class InterconnectAttachmentGroupArgs:
24
+ def __init__(__self__, *,
25
+ intent: pulumi.Input['InterconnectAttachmentGroupIntentArgs'],
26
+ attachments: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]]] = None,
27
+ description: Optional[pulumi.Input[builtins.str]] = None,
28
+ interconnect_group: Optional[pulumi.Input[builtins.str]] = None,
29
+ name: Optional[pulumi.Input[builtins.str]] = None,
30
+ project: Optional[pulumi.Input[builtins.str]] = None):
31
+ """
32
+ The set of arguments for constructing a InterconnectAttachmentGroup resource.
33
+ :param pulumi.Input['InterconnectAttachmentGroupIntentArgs'] intent: The user's intent for this group. This is the only required field besides
34
+ the name that must be specified on group creation.
35
+ Structure is documented below.
36
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]] attachments: (Output)
37
+ URLs of any particular Attachments to explain this
38
+ blocker in more detail.
39
+ :param pulumi.Input[builtins.str] description: An optional description of this resource. Provide this property when you create the resource.
40
+ :param pulumi.Input[builtins.str] interconnect_group: The URL of an InterconnectGroup that groups these Attachments' Interconnects. Customers do not need to set this unless
41
+ directed by Google Support.
42
+ :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is created. The name must be
43
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
44
+ long and match the regular expression `a-z?` which means the first
45
+ character must be a lowercase letter, and all following characters must be a dash,
46
+ lowercase letter, or digit, except the last character, which cannot be a dash.
47
+ """
48
+ pulumi.set(__self__, "intent", intent)
49
+ if attachments is not None:
50
+ pulumi.set(__self__, "attachments", attachments)
51
+ if description is not None:
52
+ pulumi.set(__self__, "description", description)
53
+ if interconnect_group is not None:
54
+ pulumi.set(__self__, "interconnect_group", interconnect_group)
55
+ if name is not None:
56
+ pulumi.set(__self__, "name", name)
57
+ if project is not None:
58
+ pulumi.set(__self__, "project", project)
59
+
60
+ @property
61
+ @pulumi.getter
62
+ def intent(self) -> pulumi.Input['InterconnectAttachmentGroupIntentArgs']:
63
+ """
64
+ The user's intent for this group. This is the only required field besides
65
+ the name that must be specified on group creation.
66
+ Structure is documented below.
67
+ """
68
+ return pulumi.get(self, "intent")
69
+
70
+ @intent.setter
71
+ def intent(self, value: pulumi.Input['InterconnectAttachmentGroupIntentArgs']):
72
+ pulumi.set(self, "intent", value)
73
+
74
+ @property
75
+ @pulumi.getter
76
+ def attachments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]]]:
77
+ """
78
+ (Output)
79
+ URLs of any particular Attachments to explain this
80
+ blocker in more detail.
81
+ """
82
+ return pulumi.get(self, "attachments")
83
+
84
+ @attachments.setter
85
+ def attachments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]]]):
86
+ pulumi.set(self, "attachments", value)
87
+
88
+ @property
89
+ @pulumi.getter
90
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
91
+ """
92
+ An optional description of this resource. Provide this property when you create the resource.
93
+ """
94
+ return pulumi.get(self, "description")
95
+
96
+ @description.setter
97
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
98
+ pulumi.set(self, "description", value)
99
+
100
+ @property
101
+ @pulumi.getter(name="interconnectGroup")
102
+ def interconnect_group(self) -> Optional[pulumi.Input[builtins.str]]:
103
+ """
104
+ The URL of an InterconnectGroup that groups these Attachments' Interconnects. Customers do not need to set this unless
105
+ directed by Google Support.
106
+ """
107
+ return pulumi.get(self, "interconnect_group")
108
+
109
+ @interconnect_group.setter
110
+ def interconnect_group(self, value: Optional[pulumi.Input[builtins.str]]):
111
+ pulumi.set(self, "interconnect_group", value)
112
+
113
+ @property
114
+ @pulumi.getter
115
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
116
+ """
117
+ Name of the resource. Provided by the client when the resource is created. The name must be
118
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
119
+ long and match the regular expression `a-z?` which means the first
120
+ character must be a lowercase letter, and all following characters must be a dash,
121
+ lowercase letter, or digit, except the last character, which cannot be a dash.
122
+ """
123
+ return pulumi.get(self, "name")
124
+
125
+ @name.setter
126
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
127
+ pulumi.set(self, "name", value)
128
+
129
+ @property
130
+ @pulumi.getter
131
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
132
+ return pulumi.get(self, "project")
133
+
134
+ @project.setter
135
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
136
+ pulumi.set(self, "project", value)
137
+
138
+
139
+ @pulumi.input_type
140
+ class _InterconnectAttachmentGroupState:
141
+ def __init__(__self__, *,
142
+ attachments: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]]] = None,
143
+ configureds: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredArgs']]]] = None,
144
+ creation_timestamp: Optional[pulumi.Input[builtins.str]] = None,
145
+ description: Optional[pulumi.Input[builtins.str]] = None,
146
+ intent: Optional[pulumi.Input['InterconnectAttachmentGroupIntentArgs']] = None,
147
+ interconnect_group: Optional[pulumi.Input[builtins.str]] = None,
148
+ logical_structures: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureArgs']]]] = None,
149
+ name: Optional[pulumi.Input[builtins.str]] = None,
150
+ project: Optional[pulumi.Input[builtins.str]] = None):
151
+ """
152
+ Input properties used for looking up and filtering InterconnectAttachmentGroup resources.
153
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]] attachments: (Output)
154
+ URLs of any particular Attachments to explain this
155
+ blocker in more detail.
156
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredArgs']]] configureds: The redundancy this group is configured to support. The way a
157
+ user queries what SLA their Attachment gets is by looking at this field of
158
+ the Attachment's AttachmentGroup.
159
+ Structure is documented below.
160
+ :param pulumi.Input[builtins.str] creation_timestamp: Creation timestamp in RFC3339 text format.
161
+ :param pulumi.Input[builtins.str] description: An optional description of this resource. Provide this property when you create the resource.
162
+ :param pulumi.Input['InterconnectAttachmentGroupIntentArgs'] intent: The user's intent for this group. This is the only required field besides
163
+ the name that must be specified on group creation.
164
+ Structure is documented below.
165
+ :param pulumi.Input[builtins.str] interconnect_group: The URL of an InterconnectGroup that groups these Attachments' Interconnects. Customers do not need to set this unless
166
+ directed by Google Support.
167
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureArgs']]] logical_structures: An analysis of the logical layout of Attachments in this
168
+ group. Every Attachment in the group is shown once in this structure.
169
+ Structure is documented below.
170
+ :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is created. The name must be
171
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
172
+ long and match the regular expression `a-z?` which means the first
173
+ character must be a lowercase letter, and all following characters must be a dash,
174
+ lowercase letter, or digit, except the last character, which cannot be a dash.
175
+ """
176
+ if attachments is not None:
177
+ pulumi.set(__self__, "attachments", attachments)
178
+ if configureds is not None:
179
+ pulumi.set(__self__, "configureds", configureds)
180
+ if creation_timestamp is not None:
181
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
182
+ if description is not None:
183
+ pulumi.set(__self__, "description", description)
184
+ if intent is not None:
185
+ pulumi.set(__self__, "intent", intent)
186
+ if interconnect_group is not None:
187
+ pulumi.set(__self__, "interconnect_group", interconnect_group)
188
+ if logical_structures is not None:
189
+ pulumi.set(__self__, "logical_structures", logical_structures)
190
+ if name is not None:
191
+ pulumi.set(__self__, "name", name)
192
+ if project is not None:
193
+ pulumi.set(__self__, "project", project)
194
+
195
+ @property
196
+ @pulumi.getter
197
+ def attachments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]]]:
198
+ """
199
+ (Output)
200
+ URLs of any particular Attachments to explain this
201
+ blocker in more detail.
202
+ """
203
+ return pulumi.get(self, "attachments")
204
+
205
+ @attachments.setter
206
+ def attachments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupAttachmentArgs']]]]):
207
+ pulumi.set(self, "attachments", value)
208
+
209
+ @property
210
+ @pulumi.getter
211
+ def configureds(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredArgs']]]]:
212
+ """
213
+ The redundancy this group is configured to support. The way a
214
+ user queries what SLA their Attachment gets is by looking at this field of
215
+ the Attachment's AttachmentGroup.
216
+ Structure is documented below.
217
+ """
218
+ return pulumi.get(self, "configureds")
219
+
220
+ @configureds.setter
221
+ def configureds(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredArgs']]]]):
222
+ pulumi.set(self, "configureds", value)
223
+
224
+ @property
225
+ @pulumi.getter(name="creationTimestamp")
226
+ def creation_timestamp(self) -> Optional[pulumi.Input[builtins.str]]:
227
+ """
228
+ Creation timestamp in RFC3339 text format.
229
+ """
230
+ return pulumi.get(self, "creation_timestamp")
231
+
232
+ @creation_timestamp.setter
233
+ def creation_timestamp(self, value: Optional[pulumi.Input[builtins.str]]):
234
+ pulumi.set(self, "creation_timestamp", value)
235
+
236
+ @property
237
+ @pulumi.getter
238
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
239
+ """
240
+ An optional description of this resource. Provide this property when you create the resource.
241
+ """
242
+ return pulumi.get(self, "description")
243
+
244
+ @description.setter
245
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
246
+ pulumi.set(self, "description", value)
247
+
248
+ @property
249
+ @pulumi.getter
250
+ def intent(self) -> Optional[pulumi.Input['InterconnectAttachmentGroupIntentArgs']]:
251
+ """
252
+ The user's intent for this group. This is the only required field besides
253
+ the name that must be specified on group creation.
254
+ Structure is documented below.
255
+ """
256
+ return pulumi.get(self, "intent")
257
+
258
+ @intent.setter
259
+ def intent(self, value: Optional[pulumi.Input['InterconnectAttachmentGroupIntentArgs']]):
260
+ pulumi.set(self, "intent", value)
261
+
262
+ @property
263
+ @pulumi.getter(name="interconnectGroup")
264
+ def interconnect_group(self) -> Optional[pulumi.Input[builtins.str]]:
265
+ """
266
+ The URL of an InterconnectGroup that groups these Attachments' Interconnects. Customers do not need to set this unless
267
+ directed by Google Support.
268
+ """
269
+ return pulumi.get(self, "interconnect_group")
270
+
271
+ @interconnect_group.setter
272
+ def interconnect_group(self, value: Optional[pulumi.Input[builtins.str]]):
273
+ pulumi.set(self, "interconnect_group", value)
274
+
275
+ @property
276
+ @pulumi.getter(name="logicalStructures")
277
+ def logical_structures(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureArgs']]]]:
278
+ """
279
+ An analysis of the logical layout of Attachments in this
280
+ group. Every Attachment in the group is shown once in this structure.
281
+ Structure is documented below.
282
+ """
283
+ return pulumi.get(self, "logical_structures")
284
+
285
+ @logical_structures.setter
286
+ def logical_structures(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureArgs']]]]):
287
+ pulumi.set(self, "logical_structures", value)
288
+
289
+ @property
290
+ @pulumi.getter
291
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
292
+ """
293
+ Name of the resource. Provided by the client when the resource is created. The name must be
294
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
295
+ long and match the regular expression `a-z?` which means the first
296
+ character must be a lowercase letter, and all following characters must be a dash,
297
+ lowercase letter, or digit, except the last character, which cannot be a dash.
298
+ """
299
+ return pulumi.get(self, "name")
300
+
301
+ @name.setter
302
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
303
+ pulumi.set(self, "name", value)
304
+
305
+ @property
306
+ @pulumi.getter
307
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
308
+ return pulumi.get(self, "project")
309
+
310
+ @project.setter
311
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
312
+ pulumi.set(self, "project", value)
313
+
314
+
315
+ @pulumi.type_token("gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup")
316
+ class InterconnectAttachmentGroup(pulumi.CustomResource):
317
+ @overload
318
+ def __init__(__self__,
319
+ resource_name: str,
320
+ opts: Optional[pulumi.ResourceOptions] = None,
321
+ attachments: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupAttachmentArgs', 'InterconnectAttachmentGroupAttachmentArgsDict']]]]] = None,
322
+ description: Optional[pulumi.Input[builtins.str]] = None,
323
+ intent: Optional[pulumi.Input[Union['InterconnectAttachmentGroupIntentArgs', 'InterconnectAttachmentGroupIntentArgsDict']]] = None,
324
+ interconnect_group: Optional[pulumi.Input[builtins.str]] = None,
325
+ name: Optional[pulumi.Input[builtins.str]] = None,
326
+ project: Optional[pulumi.Input[builtins.str]] = None,
327
+ __props__=None):
328
+ """
329
+ An interconnect attachment group resource allows customers to create,
330
+ analyze, and expand highly available deployments.
331
+
332
+ To get more information about InterconnectAttachmentGroup, see:
333
+
334
+ * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/interconnects)
335
+ * How-to Guides
336
+ * [Create a Dedicated Interconnect](https://cloud.google.com/network-connectivity/docs/interconnect/concepts/dedicated-overview)
337
+
338
+ ## Example Usage
339
+
340
+ ### Interconnect Attachment Group Basic
341
+
342
+ ```python
343
+ import pulumi
344
+ import pulumi_gcp as gcp
345
+
346
+ example_interconnect_attachment_group = gcp.compute.InterconnectAttachmentGroup("example-interconnect-attachment-group",
347
+ name="example-interconnect-attachment-group",
348
+ intent={
349
+ "availability_sla": "NO_SLA",
350
+ })
351
+ ```
352
+
353
+ ## Import
354
+
355
+ InterconnectAttachmentGroup can be imported using any of these accepted formats:
356
+
357
+ * `projects/{{project}}/global/interconnectAttachmentGroups/{{name}}`
358
+
359
+ * `{{project}}/{{name}}`
360
+
361
+ * `{{name}}`
362
+
363
+ When using the `pulumi import` command, InterconnectAttachmentGroup can be imported using one of the formats above. For example:
364
+
365
+ ```sh
366
+ $ pulumi import gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup default projects/{{project}}/global/interconnectAttachmentGroups/{{name}}
367
+ ```
368
+
369
+ ```sh
370
+ $ pulumi import gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup default {{project}}/{{name}}
371
+ ```
372
+
373
+ ```sh
374
+ $ pulumi import gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup default {{name}}
375
+ ```
376
+
377
+ :param str resource_name: The name of the resource.
378
+ :param pulumi.ResourceOptions opts: Options for the resource.
379
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupAttachmentArgs', 'InterconnectAttachmentGroupAttachmentArgsDict']]]] attachments: (Output)
380
+ URLs of any particular Attachments to explain this
381
+ blocker in more detail.
382
+ :param pulumi.Input[builtins.str] description: An optional description of this resource. Provide this property when you create the resource.
383
+ :param pulumi.Input[Union['InterconnectAttachmentGroupIntentArgs', 'InterconnectAttachmentGroupIntentArgsDict']] intent: The user's intent for this group. This is the only required field besides
384
+ the name that must be specified on group creation.
385
+ Structure is documented below.
386
+ :param pulumi.Input[builtins.str] interconnect_group: The URL of an InterconnectGroup that groups these Attachments' Interconnects. Customers do not need to set this unless
387
+ directed by Google Support.
388
+ :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is created. The name must be
389
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
390
+ long and match the regular expression `a-z?` which means the first
391
+ character must be a lowercase letter, and all following characters must be a dash,
392
+ lowercase letter, or digit, except the last character, which cannot be a dash.
393
+ """
394
+ ...
395
+ @overload
396
+ def __init__(__self__,
397
+ resource_name: str,
398
+ args: InterconnectAttachmentGroupArgs,
399
+ opts: Optional[pulumi.ResourceOptions] = None):
400
+ """
401
+ An interconnect attachment group resource allows customers to create,
402
+ analyze, and expand highly available deployments.
403
+
404
+ To get more information about InterconnectAttachmentGroup, see:
405
+
406
+ * [API documentation](https://cloud.google.com/compute/docs/reference/rest/v1/interconnects)
407
+ * How-to Guides
408
+ * [Create a Dedicated Interconnect](https://cloud.google.com/network-connectivity/docs/interconnect/concepts/dedicated-overview)
409
+
410
+ ## Example Usage
411
+
412
+ ### Interconnect Attachment Group Basic
413
+
414
+ ```python
415
+ import pulumi
416
+ import pulumi_gcp as gcp
417
+
418
+ example_interconnect_attachment_group = gcp.compute.InterconnectAttachmentGroup("example-interconnect-attachment-group",
419
+ name="example-interconnect-attachment-group",
420
+ intent={
421
+ "availability_sla": "NO_SLA",
422
+ })
423
+ ```
424
+
425
+ ## Import
426
+
427
+ InterconnectAttachmentGroup can be imported using any of these accepted formats:
428
+
429
+ * `projects/{{project}}/global/interconnectAttachmentGroups/{{name}}`
430
+
431
+ * `{{project}}/{{name}}`
432
+
433
+ * `{{name}}`
434
+
435
+ When using the `pulumi import` command, InterconnectAttachmentGroup can be imported using one of the formats above. For example:
436
+
437
+ ```sh
438
+ $ pulumi import gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup default projects/{{project}}/global/interconnectAttachmentGroups/{{name}}
439
+ ```
440
+
441
+ ```sh
442
+ $ pulumi import gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup default {{project}}/{{name}}
443
+ ```
444
+
445
+ ```sh
446
+ $ pulumi import gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup default {{name}}
447
+ ```
448
+
449
+ :param str resource_name: The name of the resource.
450
+ :param InterconnectAttachmentGroupArgs args: The arguments to use to populate this resource's properties.
451
+ :param pulumi.ResourceOptions opts: Options for the resource.
452
+ """
453
+ ...
454
+ def __init__(__self__, resource_name: str, *args, **kwargs):
455
+ resource_args, opts = _utilities.get_resource_args_opts(InterconnectAttachmentGroupArgs, pulumi.ResourceOptions, *args, **kwargs)
456
+ if resource_args is not None:
457
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
458
+ else:
459
+ __self__._internal_init(resource_name, *args, **kwargs)
460
+
461
+ def _internal_init(__self__,
462
+ resource_name: str,
463
+ opts: Optional[pulumi.ResourceOptions] = None,
464
+ attachments: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupAttachmentArgs', 'InterconnectAttachmentGroupAttachmentArgsDict']]]]] = None,
465
+ description: Optional[pulumi.Input[builtins.str]] = None,
466
+ intent: Optional[pulumi.Input[Union['InterconnectAttachmentGroupIntentArgs', 'InterconnectAttachmentGroupIntentArgsDict']]] = None,
467
+ interconnect_group: Optional[pulumi.Input[builtins.str]] = None,
468
+ name: Optional[pulumi.Input[builtins.str]] = None,
469
+ project: Optional[pulumi.Input[builtins.str]] = None,
470
+ __props__=None):
471
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
472
+ if not isinstance(opts, pulumi.ResourceOptions):
473
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
474
+ if opts.id is None:
475
+ if __props__ is not None:
476
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
477
+ __props__ = InterconnectAttachmentGroupArgs.__new__(InterconnectAttachmentGroupArgs)
478
+
479
+ __props__.__dict__["attachments"] = attachments
480
+ __props__.__dict__["description"] = description
481
+ if intent is None and not opts.urn:
482
+ raise TypeError("Missing required property 'intent'")
483
+ __props__.__dict__["intent"] = intent
484
+ __props__.__dict__["interconnect_group"] = interconnect_group
485
+ __props__.__dict__["name"] = name
486
+ __props__.__dict__["project"] = project
487
+ __props__.__dict__["configureds"] = None
488
+ __props__.__dict__["creation_timestamp"] = None
489
+ __props__.__dict__["logical_structures"] = None
490
+ super(InterconnectAttachmentGroup, __self__).__init__(
491
+ 'gcp:compute/interconnectAttachmentGroup:InterconnectAttachmentGroup',
492
+ resource_name,
493
+ __props__,
494
+ opts)
495
+
496
+ @staticmethod
497
+ def get(resource_name: str,
498
+ id: pulumi.Input[str],
499
+ opts: Optional[pulumi.ResourceOptions] = None,
500
+ attachments: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupAttachmentArgs', 'InterconnectAttachmentGroupAttachmentArgsDict']]]]] = None,
501
+ configureds: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupConfiguredArgs', 'InterconnectAttachmentGroupConfiguredArgsDict']]]]] = None,
502
+ creation_timestamp: Optional[pulumi.Input[builtins.str]] = None,
503
+ description: Optional[pulumi.Input[builtins.str]] = None,
504
+ intent: Optional[pulumi.Input[Union['InterconnectAttachmentGroupIntentArgs', 'InterconnectAttachmentGroupIntentArgsDict']]] = None,
505
+ interconnect_group: Optional[pulumi.Input[builtins.str]] = None,
506
+ logical_structures: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupLogicalStructureArgs', 'InterconnectAttachmentGroupLogicalStructureArgsDict']]]]] = None,
507
+ name: Optional[pulumi.Input[builtins.str]] = None,
508
+ project: Optional[pulumi.Input[builtins.str]] = None) -> 'InterconnectAttachmentGroup':
509
+ """
510
+ Get an existing InterconnectAttachmentGroup resource's state with the given name, id, and optional extra
511
+ properties used to qualify the lookup.
512
+
513
+ :param str resource_name: The unique name of the resulting resource.
514
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
515
+ :param pulumi.ResourceOptions opts: Options for the resource.
516
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupAttachmentArgs', 'InterconnectAttachmentGroupAttachmentArgsDict']]]] attachments: (Output)
517
+ URLs of any particular Attachments to explain this
518
+ blocker in more detail.
519
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupConfiguredArgs', 'InterconnectAttachmentGroupConfiguredArgsDict']]]] configureds: The redundancy this group is configured to support. The way a
520
+ user queries what SLA their Attachment gets is by looking at this field of
521
+ the Attachment's AttachmentGroup.
522
+ Structure is documented below.
523
+ :param pulumi.Input[builtins.str] creation_timestamp: Creation timestamp in RFC3339 text format.
524
+ :param pulumi.Input[builtins.str] description: An optional description of this resource. Provide this property when you create the resource.
525
+ :param pulumi.Input[Union['InterconnectAttachmentGroupIntentArgs', 'InterconnectAttachmentGroupIntentArgsDict']] intent: The user's intent for this group. This is the only required field besides
526
+ the name that must be specified on group creation.
527
+ Structure is documented below.
528
+ :param pulumi.Input[builtins.str] interconnect_group: The URL of an InterconnectGroup that groups these Attachments' Interconnects. Customers do not need to set this unless
529
+ directed by Google Support.
530
+ :param pulumi.Input[Sequence[pulumi.Input[Union['InterconnectAttachmentGroupLogicalStructureArgs', 'InterconnectAttachmentGroupLogicalStructureArgsDict']]]] logical_structures: An analysis of the logical layout of Attachments in this
531
+ group. Every Attachment in the group is shown once in this structure.
532
+ Structure is documented below.
533
+ :param pulumi.Input[builtins.str] name: Name of the resource. Provided by the client when the resource is created. The name must be
534
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
535
+ long and match the regular expression `a-z?` which means the first
536
+ character must be a lowercase letter, and all following characters must be a dash,
537
+ lowercase letter, or digit, except the last character, which cannot be a dash.
538
+ """
539
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
540
+
541
+ __props__ = _InterconnectAttachmentGroupState.__new__(_InterconnectAttachmentGroupState)
542
+
543
+ __props__.__dict__["attachments"] = attachments
544
+ __props__.__dict__["configureds"] = configureds
545
+ __props__.__dict__["creation_timestamp"] = creation_timestamp
546
+ __props__.__dict__["description"] = description
547
+ __props__.__dict__["intent"] = intent
548
+ __props__.__dict__["interconnect_group"] = interconnect_group
549
+ __props__.__dict__["logical_structures"] = logical_structures
550
+ __props__.__dict__["name"] = name
551
+ __props__.__dict__["project"] = project
552
+ return InterconnectAttachmentGroup(resource_name, opts=opts, __props__=__props__)
553
+
554
+ @property
555
+ @pulumi.getter
556
+ def attachments(self) -> pulumi.Output[Optional[Sequence['outputs.InterconnectAttachmentGroupAttachment']]]:
557
+ """
558
+ (Output)
559
+ URLs of any particular Attachments to explain this
560
+ blocker in more detail.
561
+ """
562
+ return pulumi.get(self, "attachments")
563
+
564
+ @property
565
+ @pulumi.getter
566
+ def configureds(self) -> pulumi.Output[Sequence['outputs.InterconnectAttachmentGroupConfigured']]:
567
+ """
568
+ The redundancy this group is configured to support. The way a
569
+ user queries what SLA their Attachment gets is by looking at this field of
570
+ the Attachment's AttachmentGroup.
571
+ Structure is documented below.
572
+ """
573
+ return pulumi.get(self, "configureds")
574
+
575
+ @property
576
+ @pulumi.getter(name="creationTimestamp")
577
+ def creation_timestamp(self) -> pulumi.Output[builtins.str]:
578
+ """
579
+ Creation timestamp in RFC3339 text format.
580
+ """
581
+ return pulumi.get(self, "creation_timestamp")
582
+
583
+ @property
584
+ @pulumi.getter
585
+ def description(self) -> pulumi.Output[Optional[builtins.str]]:
586
+ """
587
+ An optional description of this resource. Provide this property when you create the resource.
588
+ """
589
+ return pulumi.get(self, "description")
590
+
591
+ @property
592
+ @pulumi.getter
593
+ def intent(self) -> pulumi.Output['outputs.InterconnectAttachmentGroupIntent']:
594
+ """
595
+ The user's intent for this group. This is the only required field besides
596
+ the name that must be specified on group creation.
597
+ Structure is documented below.
598
+ """
599
+ return pulumi.get(self, "intent")
600
+
601
+ @property
602
+ @pulumi.getter(name="interconnectGroup")
603
+ def interconnect_group(self) -> pulumi.Output[Optional[builtins.str]]:
604
+ """
605
+ The URL of an InterconnectGroup that groups these Attachments' Interconnects. Customers do not need to set this unless
606
+ directed by Google Support.
607
+ """
608
+ return pulumi.get(self, "interconnect_group")
609
+
610
+ @property
611
+ @pulumi.getter(name="logicalStructures")
612
+ def logical_structures(self) -> pulumi.Output[Sequence['outputs.InterconnectAttachmentGroupLogicalStructure']]:
613
+ """
614
+ An analysis of the logical layout of Attachments in this
615
+ group. Every Attachment in the group is shown once in this structure.
616
+ Structure is documented below.
617
+ """
618
+ return pulumi.get(self, "logical_structures")
619
+
620
+ @property
621
+ @pulumi.getter
622
+ def name(self) -> pulumi.Output[builtins.str]:
623
+ """
624
+ Name of the resource. Provided by the client when the resource is created. The name must be
625
+ 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters
626
+ long and match the regular expression `a-z?` which means the first
627
+ character must be a lowercase letter, and all following characters must be a dash,
628
+ lowercase letter, or digit, except the last character, which cannot be a dash.
629
+ """
630
+ return pulumi.get(self, "name")
631
+
632
+ @property
633
+ @pulumi.getter
634
+ def project(self) -> pulumi.Output[builtins.str]:
635
+ return pulumi.get(self, "project")
636
+