pulumi-gcp 8.34.0a1749484438__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.0a1749484438.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/METADATA +1 -1
  63. {pulumi_gcp-8.34.0a1749484438.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/RECORD +65 -61
  64. {pulumi_gcp-8.34.0a1749484438.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/WHEEL +0 -0
  65. {pulumi_gcp-8.34.0a1749484438.dist-info → pulumi_gcp-8.34.0a1749648575.dist-info}/top_level.txt +0 -0
@@ -512,12 +512,50 @@ __all__ = [
512
512
  'InstantSnapshotIamBindingConditionArgsDict',
513
513
  'InstantSnapshotIamMemberConditionArgs',
514
514
  'InstantSnapshotIamMemberConditionArgsDict',
515
+ 'InterconnectAttachmentGroupAttachmentArgs',
516
+ 'InterconnectAttachmentGroupAttachmentArgsDict',
517
+ 'InterconnectAttachmentGroupConfiguredArgs',
518
+ 'InterconnectAttachmentGroupConfiguredArgsDict',
519
+ 'InterconnectAttachmentGroupConfiguredAvailabilitySlaArgs',
520
+ 'InterconnectAttachmentGroupConfiguredAvailabilitySlaArgsDict',
521
+ 'InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgs',
522
+ 'InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgsDict',
523
+ 'InterconnectAttachmentGroupIntentArgs',
524
+ 'InterconnectAttachmentGroupIntentArgsDict',
525
+ 'InterconnectAttachmentGroupLogicalStructureArgs',
526
+ 'InterconnectAttachmentGroupLogicalStructureArgsDict',
527
+ 'InterconnectAttachmentGroupLogicalStructureRegionArgs',
528
+ 'InterconnectAttachmentGroupLogicalStructureRegionArgsDict',
529
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroArgs',
530
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroArgsDict',
531
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgs',
532
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgsDict',
533
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgs',
534
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgsDict',
515
535
  'InterconnectAttachmentPrivateInterconnectInfoArgs',
516
536
  'InterconnectAttachmentPrivateInterconnectInfoArgsDict',
517
537
  'InterconnectCircuitInfoArgs',
518
538
  'InterconnectCircuitInfoArgsDict',
519
539
  'InterconnectExpectedOutageArgs',
520
540
  'InterconnectExpectedOutageArgsDict',
541
+ 'InterconnectGroupConfiguredArgs',
542
+ 'InterconnectGroupConfiguredArgsDict',
543
+ 'InterconnectGroupConfiguredTopologyCapabilityArgs',
544
+ 'InterconnectGroupConfiguredTopologyCapabilityArgsDict',
545
+ 'InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgs',
546
+ 'InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgsDict',
547
+ 'InterconnectGroupIntentArgs',
548
+ 'InterconnectGroupIntentArgsDict',
549
+ 'InterconnectGroupInterconnectArgs',
550
+ 'InterconnectGroupInterconnectArgsDict',
551
+ 'InterconnectGroupPhysicalStructureArgs',
552
+ 'InterconnectGroupPhysicalStructureArgsDict',
553
+ 'InterconnectGroupPhysicalStructureMetroArgs',
554
+ 'InterconnectGroupPhysicalStructureMetroArgsDict',
555
+ 'InterconnectGroupPhysicalStructureMetroFacilityArgs',
556
+ 'InterconnectGroupPhysicalStructureMetroFacilityArgsDict',
557
+ 'InterconnectGroupPhysicalStructureMetroFacilityZoneArgs',
558
+ 'InterconnectGroupPhysicalStructureMetroFacilityZoneArgsDict',
521
559
  'InterconnectMacsecArgs',
522
560
  'InterconnectMacsecArgsDict',
523
561
  'InterconnectMacsecPreSharedKeyArgs',
@@ -1236,6 +1274,10 @@ __all__ = [
1236
1274
  'SnapshotIamBindingConditionArgsDict',
1237
1275
  'SnapshotIamMemberConditionArgs',
1238
1276
  'SnapshotIamMemberConditionArgsDict',
1277
+ 'SnapshotSettingsStorageLocationArgs',
1278
+ 'SnapshotSettingsStorageLocationArgsDict',
1279
+ 'SnapshotSettingsStorageLocationLocationArgs',
1280
+ 'SnapshotSettingsStorageLocationLocationArgsDict',
1239
1281
  'SnapshotSnapshotEncryptionKeyArgs',
1240
1282
  'SnapshotSnapshotEncryptionKeyArgsDict',
1241
1283
  'SnapshotSourceDiskEncryptionKeyArgs',
@@ -27218,6 +27260,730 @@ class InstantSnapshotIamMemberConditionArgs:
27218
27260
  pulumi.set(self, "description", value)
27219
27261
 
27220
27262
 
27263
+ if not MYPY:
27264
+ class InterconnectAttachmentGroupAttachmentArgsDict(TypedDict):
27265
+ name: pulumi.Input[builtins.str]
27266
+ """
27267
+ The identifier for this object. Format specified above.
27268
+ """
27269
+ attachment: NotRequired[pulumi.Input[builtins.str]]
27270
+ """
27271
+ (Optional)
27272
+ """
27273
+ elif False:
27274
+ InterconnectAttachmentGroupAttachmentArgsDict: TypeAlias = Mapping[str, Any]
27275
+
27276
+ @pulumi.input_type
27277
+ class InterconnectAttachmentGroupAttachmentArgs:
27278
+ def __init__(__self__, *,
27279
+ name: pulumi.Input[builtins.str],
27280
+ attachment: Optional[pulumi.Input[builtins.str]] = None):
27281
+ """
27282
+ :param pulumi.Input[builtins.str] name: The identifier for this object. Format specified above.
27283
+ :param pulumi.Input[builtins.str] attachment: (Optional)
27284
+ """
27285
+ pulumi.set(__self__, "name", name)
27286
+ if attachment is not None:
27287
+ pulumi.set(__self__, "attachment", attachment)
27288
+
27289
+ @property
27290
+ @pulumi.getter
27291
+ def name(self) -> pulumi.Input[builtins.str]:
27292
+ """
27293
+ The identifier for this object. Format specified above.
27294
+ """
27295
+ return pulumi.get(self, "name")
27296
+
27297
+ @name.setter
27298
+ def name(self, value: pulumi.Input[builtins.str]):
27299
+ pulumi.set(self, "name", value)
27300
+
27301
+ @property
27302
+ @pulumi.getter
27303
+ def attachment(self) -> Optional[pulumi.Input[builtins.str]]:
27304
+ """
27305
+ (Optional)
27306
+ """
27307
+ return pulumi.get(self, "attachment")
27308
+
27309
+ @attachment.setter
27310
+ def attachment(self, value: Optional[pulumi.Input[builtins.str]]):
27311
+ pulumi.set(self, "attachment", value)
27312
+
27313
+
27314
+ if not MYPY:
27315
+ class InterconnectAttachmentGroupConfiguredArgsDict(TypedDict):
27316
+ availability_slas: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaArgsDict']]]]
27317
+ """
27318
+ (Output)
27319
+ Which SLA this group is configured to support, and why this
27320
+ group does or does not meet that SLA's requirements.
27321
+ Structure is documented below.
27322
+ """
27323
+ elif False:
27324
+ InterconnectAttachmentGroupConfiguredArgsDict: TypeAlias = Mapping[str, Any]
27325
+
27326
+ @pulumi.input_type
27327
+ class InterconnectAttachmentGroupConfiguredArgs:
27328
+ def __init__(__self__, *,
27329
+ availability_slas: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaArgs']]]] = None):
27330
+ """
27331
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaArgs']]] availability_slas: (Output)
27332
+ Which SLA this group is configured to support, and why this
27333
+ group does or does not meet that SLA's requirements.
27334
+ Structure is documented below.
27335
+ """
27336
+ if availability_slas is not None:
27337
+ pulumi.set(__self__, "availability_slas", availability_slas)
27338
+
27339
+ @property
27340
+ @pulumi.getter(name="availabilitySlas")
27341
+ def availability_slas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaArgs']]]]:
27342
+ """
27343
+ (Output)
27344
+ Which SLA this group is configured to support, and why this
27345
+ group does or does not meet that SLA's requirements.
27346
+ Structure is documented below.
27347
+ """
27348
+ return pulumi.get(self, "availability_slas")
27349
+
27350
+ @availability_slas.setter
27351
+ def availability_slas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaArgs']]]]):
27352
+ pulumi.set(self, "availability_slas", value)
27353
+
27354
+
27355
+ if not MYPY:
27356
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaArgsDict(TypedDict):
27357
+ effective_sla: NotRequired[pulumi.Input[builtins.str]]
27358
+ """
27359
+ (Output)
27360
+ Which SLA this group supports. Options are the same as the
27361
+ intent.
27362
+ """
27363
+ intended_sla_blockers: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgsDict']]]]
27364
+ """
27365
+ (Output)
27366
+ Reasons why configuration.availabilitySLA.sla differs from
27367
+ intent.availabilitySLA. This list is empty if and only if those are the
27368
+ same.
27369
+ Structure is documented below.
27370
+ """
27371
+ elif False:
27372
+ InterconnectAttachmentGroupConfiguredAvailabilitySlaArgsDict: TypeAlias = Mapping[str, Any]
27373
+
27374
+ @pulumi.input_type
27375
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaArgs:
27376
+ def __init__(__self__, *,
27377
+ effective_sla: Optional[pulumi.Input[builtins.str]] = None,
27378
+ intended_sla_blockers: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgs']]]] = None):
27379
+ """
27380
+ :param pulumi.Input[builtins.str] effective_sla: (Output)
27381
+ Which SLA this group supports. Options are the same as the
27382
+ intent.
27383
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgs']]] intended_sla_blockers: (Output)
27384
+ Reasons why configuration.availabilitySLA.sla differs from
27385
+ intent.availabilitySLA. This list is empty if and only if those are the
27386
+ same.
27387
+ Structure is documented below.
27388
+ """
27389
+ if effective_sla is not None:
27390
+ pulumi.set(__self__, "effective_sla", effective_sla)
27391
+ if intended_sla_blockers is not None:
27392
+ pulumi.set(__self__, "intended_sla_blockers", intended_sla_blockers)
27393
+
27394
+ @property
27395
+ @pulumi.getter(name="effectiveSla")
27396
+ def effective_sla(self) -> Optional[pulumi.Input[builtins.str]]:
27397
+ """
27398
+ (Output)
27399
+ Which SLA this group supports. Options are the same as the
27400
+ intent.
27401
+ """
27402
+ return pulumi.get(self, "effective_sla")
27403
+
27404
+ @effective_sla.setter
27405
+ def effective_sla(self, value: Optional[pulumi.Input[builtins.str]]):
27406
+ pulumi.set(self, "effective_sla", value)
27407
+
27408
+ @property
27409
+ @pulumi.getter(name="intendedSlaBlockers")
27410
+ def intended_sla_blockers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgs']]]]:
27411
+ """
27412
+ (Output)
27413
+ Reasons why configuration.availabilitySLA.sla differs from
27414
+ intent.availabilitySLA. This list is empty if and only if those are the
27415
+ same.
27416
+ Structure is documented below.
27417
+ """
27418
+ return pulumi.get(self, "intended_sla_blockers")
27419
+
27420
+ @intended_sla_blockers.setter
27421
+ def intended_sla_blockers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgs']]]]):
27422
+ pulumi.set(self, "intended_sla_blockers", value)
27423
+
27424
+
27425
+ if not MYPY:
27426
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgsDict(TypedDict):
27427
+ attachments: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
27428
+ """
27429
+ (Output)
27430
+ URLs of any particular Attachments to explain this
27431
+ blocker in more detail.
27432
+ """
27433
+ blocker_type: NotRequired[pulumi.Input[builtins.str]]
27434
+ """
27435
+ (Output)
27436
+ The category of an unmet SLA requirement.
27437
+ """
27438
+ documentation_link: NotRequired[pulumi.Input[builtins.str]]
27439
+ """
27440
+ (Output)
27441
+ The url of Google Cloud public documentation explaining
27442
+ this requirement. This is set for every type of requirement.
27443
+ """
27444
+ explanation: NotRequired[pulumi.Input[builtins.str]]
27445
+ """
27446
+ (Output)
27447
+ A human-readable explanation of this requirement and
27448
+ why it's not met. This is set for every type of requirement.
27449
+ """
27450
+ metros: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
27451
+ """
27452
+ (Output)
27453
+ Metros used to explain this blocker in more detail.
27454
+ These are three-letter lowercase strings like "iad". This will be set
27455
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
27456
+ not apply to others.
27457
+ """
27458
+ regions: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
27459
+ """
27460
+ (Output)
27461
+ Regions used to explain this blocker in more
27462
+ detail. These are region names formatted like "us-central1". This
27463
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
27464
+ not apply to others.
27465
+ """
27466
+ zones: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
27467
+ """
27468
+ (Output)
27469
+ Zones used to explain this blocker in more detail.
27470
+ Format is "zone1" and/or "zone2". This will be set for some blockers
27471
+ (like MISSING_ZONE) but does not apply to others.
27472
+ """
27473
+ elif False:
27474
+ InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgsDict: TypeAlias = Mapping[str, Any]
27475
+
27476
+ @pulumi.input_type
27477
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgs:
27478
+ def __init__(__self__, *,
27479
+ attachments: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
27480
+ blocker_type: Optional[pulumi.Input[builtins.str]] = None,
27481
+ documentation_link: Optional[pulumi.Input[builtins.str]] = None,
27482
+ explanation: Optional[pulumi.Input[builtins.str]] = None,
27483
+ metros: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
27484
+ regions: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
27485
+ zones: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
27486
+ """
27487
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] attachments: (Output)
27488
+ URLs of any particular Attachments to explain this
27489
+ blocker in more detail.
27490
+ :param pulumi.Input[builtins.str] blocker_type: (Output)
27491
+ The category of an unmet SLA requirement.
27492
+ :param pulumi.Input[builtins.str] documentation_link: (Output)
27493
+ The url of Google Cloud public documentation explaining
27494
+ this requirement. This is set for every type of requirement.
27495
+ :param pulumi.Input[builtins.str] explanation: (Output)
27496
+ A human-readable explanation of this requirement and
27497
+ why it's not met. This is set for every type of requirement.
27498
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] metros: (Output)
27499
+ Metros used to explain this blocker in more detail.
27500
+ These are three-letter lowercase strings like "iad". This will be set
27501
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
27502
+ not apply to others.
27503
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] regions: (Output)
27504
+ Regions used to explain this blocker in more
27505
+ detail. These are region names formatted like "us-central1". This
27506
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
27507
+ not apply to others.
27508
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] zones: (Output)
27509
+ Zones used to explain this blocker in more detail.
27510
+ Format is "zone1" and/or "zone2". This will be set for some blockers
27511
+ (like MISSING_ZONE) but does not apply to others.
27512
+ """
27513
+ if attachments is not None:
27514
+ pulumi.set(__self__, "attachments", attachments)
27515
+ if blocker_type is not None:
27516
+ pulumi.set(__self__, "blocker_type", blocker_type)
27517
+ if documentation_link is not None:
27518
+ pulumi.set(__self__, "documentation_link", documentation_link)
27519
+ if explanation is not None:
27520
+ pulumi.set(__self__, "explanation", explanation)
27521
+ if metros is not None:
27522
+ pulumi.set(__self__, "metros", metros)
27523
+ if regions is not None:
27524
+ pulumi.set(__self__, "regions", regions)
27525
+ if zones is not None:
27526
+ pulumi.set(__self__, "zones", zones)
27527
+
27528
+ @property
27529
+ @pulumi.getter
27530
+ def attachments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
27531
+ """
27532
+ (Output)
27533
+ URLs of any particular Attachments to explain this
27534
+ blocker in more detail.
27535
+ """
27536
+ return pulumi.get(self, "attachments")
27537
+
27538
+ @attachments.setter
27539
+ def attachments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
27540
+ pulumi.set(self, "attachments", value)
27541
+
27542
+ @property
27543
+ @pulumi.getter(name="blockerType")
27544
+ def blocker_type(self) -> Optional[pulumi.Input[builtins.str]]:
27545
+ """
27546
+ (Output)
27547
+ The category of an unmet SLA requirement.
27548
+ """
27549
+ return pulumi.get(self, "blocker_type")
27550
+
27551
+ @blocker_type.setter
27552
+ def blocker_type(self, value: Optional[pulumi.Input[builtins.str]]):
27553
+ pulumi.set(self, "blocker_type", value)
27554
+
27555
+ @property
27556
+ @pulumi.getter(name="documentationLink")
27557
+ def documentation_link(self) -> Optional[pulumi.Input[builtins.str]]:
27558
+ """
27559
+ (Output)
27560
+ The url of Google Cloud public documentation explaining
27561
+ this requirement. This is set for every type of requirement.
27562
+ """
27563
+ return pulumi.get(self, "documentation_link")
27564
+
27565
+ @documentation_link.setter
27566
+ def documentation_link(self, value: Optional[pulumi.Input[builtins.str]]):
27567
+ pulumi.set(self, "documentation_link", value)
27568
+
27569
+ @property
27570
+ @pulumi.getter
27571
+ def explanation(self) -> Optional[pulumi.Input[builtins.str]]:
27572
+ """
27573
+ (Output)
27574
+ A human-readable explanation of this requirement and
27575
+ why it's not met. This is set for every type of requirement.
27576
+ """
27577
+ return pulumi.get(self, "explanation")
27578
+
27579
+ @explanation.setter
27580
+ def explanation(self, value: Optional[pulumi.Input[builtins.str]]):
27581
+ pulumi.set(self, "explanation", value)
27582
+
27583
+ @property
27584
+ @pulumi.getter
27585
+ def metros(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
27586
+ """
27587
+ (Output)
27588
+ Metros used to explain this blocker in more detail.
27589
+ These are three-letter lowercase strings like "iad". This will be set
27590
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
27591
+ not apply to others.
27592
+ """
27593
+ return pulumi.get(self, "metros")
27594
+
27595
+ @metros.setter
27596
+ def metros(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
27597
+ pulumi.set(self, "metros", value)
27598
+
27599
+ @property
27600
+ @pulumi.getter
27601
+ def regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
27602
+ """
27603
+ (Output)
27604
+ Regions used to explain this blocker in more
27605
+ detail. These are region names formatted like "us-central1". This
27606
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
27607
+ not apply to others.
27608
+ """
27609
+ return pulumi.get(self, "regions")
27610
+
27611
+ @regions.setter
27612
+ def regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
27613
+ pulumi.set(self, "regions", value)
27614
+
27615
+ @property
27616
+ @pulumi.getter
27617
+ def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
27618
+ """
27619
+ (Output)
27620
+ Zones used to explain this blocker in more detail.
27621
+ Format is "zone1" and/or "zone2". This will be set for some blockers
27622
+ (like MISSING_ZONE) but does not apply to others.
27623
+ """
27624
+ return pulumi.get(self, "zones")
27625
+
27626
+ @zones.setter
27627
+ def zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
27628
+ pulumi.set(self, "zones", value)
27629
+
27630
+
27631
+ if not MYPY:
27632
+ class InterconnectAttachmentGroupIntentArgsDict(TypedDict):
27633
+ availability_sla: NotRequired[pulumi.Input[builtins.str]]
27634
+ """
27635
+ Which SLA the user intends this group to support.
27636
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
27637
+
27638
+ - - -
27639
+ """
27640
+ elif False:
27641
+ InterconnectAttachmentGroupIntentArgsDict: TypeAlias = Mapping[str, Any]
27642
+
27643
+ @pulumi.input_type
27644
+ class InterconnectAttachmentGroupIntentArgs:
27645
+ def __init__(__self__, *,
27646
+ availability_sla: Optional[pulumi.Input[builtins.str]] = None):
27647
+ """
27648
+ :param pulumi.Input[builtins.str] availability_sla: Which SLA the user intends this group to support.
27649
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
27650
+
27651
+ - - -
27652
+ """
27653
+ if availability_sla is not None:
27654
+ pulumi.set(__self__, "availability_sla", availability_sla)
27655
+
27656
+ @property
27657
+ @pulumi.getter(name="availabilitySla")
27658
+ def availability_sla(self) -> Optional[pulumi.Input[builtins.str]]:
27659
+ """
27660
+ Which SLA the user intends this group to support.
27661
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
27662
+
27663
+ - - -
27664
+ """
27665
+ return pulumi.get(self, "availability_sla")
27666
+
27667
+ @availability_sla.setter
27668
+ def availability_sla(self, value: Optional[pulumi.Input[builtins.str]]):
27669
+ pulumi.set(self, "availability_sla", value)
27670
+
27671
+
27672
+ if not MYPY:
27673
+ class InterconnectAttachmentGroupLogicalStructureArgsDict(TypedDict):
27674
+ regions: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionArgsDict']]]]
27675
+ """
27676
+ (Output)
27677
+ Regions used to explain this blocker in more
27678
+ detail. These are region names formatted like "us-central1". This
27679
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
27680
+ not apply to others.
27681
+ """
27682
+ elif False:
27683
+ InterconnectAttachmentGroupLogicalStructureArgsDict: TypeAlias = Mapping[str, Any]
27684
+
27685
+ @pulumi.input_type
27686
+ class InterconnectAttachmentGroupLogicalStructureArgs:
27687
+ def __init__(__self__, *,
27688
+ regions: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionArgs']]]] = None):
27689
+ """
27690
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionArgs']]] regions: (Output)
27691
+ Regions used to explain this blocker in more
27692
+ detail. These are region names formatted like "us-central1". This
27693
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
27694
+ not apply to others.
27695
+ """
27696
+ if regions is not None:
27697
+ pulumi.set(__self__, "regions", regions)
27698
+
27699
+ @property
27700
+ @pulumi.getter
27701
+ def regions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionArgs']]]]:
27702
+ """
27703
+ (Output)
27704
+ Regions used to explain this blocker in more
27705
+ detail. These are region names formatted like "us-central1". This
27706
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
27707
+ not apply to others.
27708
+ """
27709
+ return pulumi.get(self, "regions")
27710
+
27711
+ @regions.setter
27712
+ def regions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionArgs']]]]):
27713
+ pulumi.set(self, "regions", value)
27714
+
27715
+
27716
+ if not MYPY:
27717
+ class InterconnectAttachmentGroupLogicalStructureRegionArgsDict(TypedDict):
27718
+ metros: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroArgsDict']]]]
27719
+ """
27720
+ (Output)
27721
+ Metros used to explain this blocker in more detail.
27722
+ These are three-letter lowercase strings like "iad". This will be set
27723
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
27724
+ not apply to others.
27725
+ """
27726
+ region: NotRequired[pulumi.Input[builtins.str]]
27727
+ """
27728
+ (Output)
27729
+ The name of a region, like "us-central1".
27730
+ """
27731
+ elif False:
27732
+ InterconnectAttachmentGroupLogicalStructureRegionArgsDict: TypeAlias = Mapping[str, Any]
27733
+
27734
+ @pulumi.input_type
27735
+ class InterconnectAttachmentGroupLogicalStructureRegionArgs:
27736
+ def __init__(__self__, *,
27737
+ metros: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroArgs']]]] = None,
27738
+ region: Optional[pulumi.Input[builtins.str]] = None):
27739
+ """
27740
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroArgs']]] metros: (Output)
27741
+ Metros used to explain this blocker in more detail.
27742
+ These are three-letter lowercase strings like "iad". This will be set
27743
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
27744
+ not apply to others.
27745
+ :param pulumi.Input[builtins.str] region: (Output)
27746
+ The name of a region, like "us-central1".
27747
+ """
27748
+ if metros is not None:
27749
+ pulumi.set(__self__, "metros", metros)
27750
+ if region is not None:
27751
+ pulumi.set(__self__, "region", region)
27752
+
27753
+ @property
27754
+ @pulumi.getter
27755
+ def metros(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroArgs']]]]:
27756
+ """
27757
+ (Output)
27758
+ Metros used to explain this blocker in more detail.
27759
+ These are three-letter lowercase strings like "iad". This will be set
27760
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
27761
+ not apply to others.
27762
+ """
27763
+ return pulumi.get(self, "metros")
27764
+
27765
+ @metros.setter
27766
+ def metros(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroArgs']]]]):
27767
+ pulumi.set(self, "metros", value)
27768
+
27769
+ @property
27770
+ @pulumi.getter
27771
+ def region(self) -> Optional[pulumi.Input[builtins.str]]:
27772
+ """
27773
+ (Output)
27774
+ The name of a region, like "us-central1".
27775
+ """
27776
+ return pulumi.get(self, "region")
27777
+
27778
+ @region.setter
27779
+ def region(self, value: Optional[pulumi.Input[builtins.str]]):
27780
+ pulumi.set(self, "region", value)
27781
+
27782
+
27783
+ if not MYPY:
27784
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroArgsDict(TypedDict):
27785
+ facilities: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgsDict']]]]
27786
+ """
27787
+ (Output)
27788
+ The facilities used for this group's Attachments'
27789
+ Interconnects.
27790
+ Structure is documented below.
27791
+ """
27792
+ metro: NotRequired[pulumi.Input[builtins.str]]
27793
+ """
27794
+ (Output)
27795
+ The name of the metro, as a three-letter lowercase
27796
+ string like "iad". This is the first component of the location of an
27797
+ Interconnect.
27798
+ """
27799
+ elif False:
27800
+ InterconnectAttachmentGroupLogicalStructureRegionMetroArgsDict: TypeAlias = Mapping[str, Any]
27801
+
27802
+ @pulumi.input_type
27803
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroArgs:
27804
+ def __init__(__self__, *,
27805
+ facilities: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgs']]]] = None,
27806
+ metro: Optional[pulumi.Input[builtins.str]] = None):
27807
+ """
27808
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgs']]] facilities: (Output)
27809
+ The facilities used for this group's Attachments'
27810
+ Interconnects.
27811
+ Structure is documented below.
27812
+ :param pulumi.Input[builtins.str] metro: (Output)
27813
+ The name of the metro, as a three-letter lowercase
27814
+ string like "iad". This is the first component of the location of an
27815
+ Interconnect.
27816
+ """
27817
+ if facilities is not None:
27818
+ pulumi.set(__self__, "facilities", facilities)
27819
+ if metro is not None:
27820
+ pulumi.set(__self__, "metro", metro)
27821
+
27822
+ @property
27823
+ @pulumi.getter
27824
+ def facilities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgs']]]]:
27825
+ """
27826
+ (Output)
27827
+ The facilities used for this group's Attachments'
27828
+ Interconnects.
27829
+ Structure is documented below.
27830
+ """
27831
+ return pulumi.get(self, "facilities")
27832
+
27833
+ @facilities.setter
27834
+ def facilities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgs']]]]):
27835
+ pulumi.set(self, "facilities", value)
27836
+
27837
+ @property
27838
+ @pulumi.getter
27839
+ def metro(self) -> Optional[pulumi.Input[builtins.str]]:
27840
+ """
27841
+ (Output)
27842
+ The name of the metro, as a three-letter lowercase
27843
+ string like "iad". This is the first component of the location of an
27844
+ Interconnect.
27845
+ """
27846
+ return pulumi.get(self, "metro")
27847
+
27848
+ @metro.setter
27849
+ def metro(self, value: Optional[pulumi.Input[builtins.str]]):
27850
+ pulumi.set(self, "metro", value)
27851
+
27852
+
27853
+ if not MYPY:
27854
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgsDict(TypedDict):
27855
+ facility: NotRequired[pulumi.Input[builtins.str]]
27856
+ """
27857
+ (Output)
27858
+ The name of a facility, like "iad-1234".
27859
+ """
27860
+ zones: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgsDict']]]]
27861
+ """
27862
+ (Output)
27863
+ Zones used to explain this blocker in more detail.
27864
+ Format is "zone1" and/or "zone2". This will be set for some blockers
27865
+ (like MISSING_ZONE) but does not apply to others.
27866
+ """
27867
+ elif False:
27868
+ InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgsDict: TypeAlias = Mapping[str, Any]
27869
+
27870
+ @pulumi.input_type
27871
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgs:
27872
+ def __init__(__self__, *,
27873
+ facility: Optional[pulumi.Input[builtins.str]] = None,
27874
+ zones: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgs']]]] = None):
27875
+ """
27876
+ :param pulumi.Input[builtins.str] facility: (Output)
27877
+ The name of a facility, like "iad-1234".
27878
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgs']]] zones: (Output)
27879
+ Zones used to explain this blocker in more detail.
27880
+ Format is "zone1" and/or "zone2". This will be set for some blockers
27881
+ (like MISSING_ZONE) but does not apply to others.
27882
+ """
27883
+ if facility is not None:
27884
+ pulumi.set(__self__, "facility", facility)
27885
+ if zones is not None:
27886
+ pulumi.set(__self__, "zones", zones)
27887
+
27888
+ @property
27889
+ @pulumi.getter
27890
+ def facility(self) -> Optional[pulumi.Input[builtins.str]]:
27891
+ """
27892
+ (Output)
27893
+ The name of a facility, like "iad-1234".
27894
+ """
27895
+ return pulumi.get(self, "facility")
27896
+
27897
+ @facility.setter
27898
+ def facility(self, value: Optional[pulumi.Input[builtins.str]]):
27899
+ pulumi.set(self, "facility", value)
27900
+
27901
+ @property
27902
+ @pulumi.getter
27903
+ def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgs']]]]:
27904
+ """
27905
+ (Output)
27906
+ Zones used to explain this blocker in more detail.
27907
+ Format is "zone1" and/or "zone2". This will be set for some blockers
27908
+ (like MISSING_ZONE) but does not apply to others.
27909
+ """
27910
+ return pulumi.get(self, "zones")
27911
+
27912
+ @zones.setter
27913
+ def zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgs']]]]):
27914
+ pulumi.set(self, "zones", value)
27915
+
27916
+
27917
+ if not MYPY:
27918
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgsDict(TypedDict):
27919
+ attachments: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
27920
+ """
27921
+ (Output)
27922
+ URLs of Attachments in the given zone, to the given
27923
+ region, on Interconnects in the given facility and metro. Every
27924
+ Attachment in the AG has such an entry.
27925
+ """
27926
+ zone: NotRequired[pulumi.Input[builtins.str]]
27927
+ """
27928
+ (Output)
27929
+ The zones that Attachments in this group are present
27930
+ in, in the given facilities. This is inherited from their
27931
+ Interconnects.
27932
+ """
27933
+ elif False:
27934
+ InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgsDict: TypeAlias = Mapping[str, Any]
27935
+
27936
+ @pulumi.input_type
27937
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgs:
27938
+ def __init__(__self__, *,
27939
+ attachments: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
27940
+ zone: Optional[pulumi.Input[builtins.str]] = None):
27941
+ """
27942
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] attachments: (Output)
27943
+ URLs of Attachments in the given zone, to the given
27944
+ region, on Interconnects in the given facility and metro. Every
27945
+ Attachment in the AG has such an entry.
27946
+ :param pulumi.Input[builtins.str] zone: (Output)
27947
+ The zones that Attachments in this group are present
27948
+ in, in the given facilities. This is inherited from their
27949
+ Interconnects.
27950
+ """
27951
+ if attachments is not None:
27952
+ pulumi.set(__self__, "attachments", attachments)
27953
+ if zone is not None:
27954
+ pulumi.set(__self__, "zone", zone)
27955
+
27956
+ @property
27957
+ @pulumi.getter
27958
+ def attachments(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
27959
+ """
27960
+ (Output)
27961
+ URLs of Attachments in the given zone, to the given
27962
+ region, on Interconnects in the given facility and metro. Every
27963
+ Attachment in the AG has such an entry.
27964
+ """
27965
+ return pulumi.get(self, "attachments")
27966
+
27967
+ @attachments.setter
27968
+ def attachments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
27969
+ pulumi.set(self, "attachments", value)
27970
+
27971
+ @property
27972
+ @pulumi.getter
27973
+ def zone(self) -> Optional[pulumi.Input[builtins.str]]:
27974
+ """
27975
+ (Output)
27976
+ The zones that Attachments in this group are present
27977
+ in, in the given facilities. This is inherited from their
27978
+ Interconnects.
27979
+ """
27980
+ return pulumi.get(self, "zone")
27981
+
27982
+ @zone.setter
27983
+ def zone(self, value: Optional[pulumi.Input[builtins.str]]):
27984
+ pulumi.set(self, "zone", value)
27985
+
27986
+
27221
27987
  if not MYPY:
27222
27988
  class InterconnectAttachmentPrivateInterconnectInfoArgsDict(TypedDict):
27223
27989
  tag8021q: NotRequired[pulumi.Input[builtins.int]]
@@ -27587,6 +28353,669 @@ class InterconnectExpectedOutageArgs:
27587
28353
  pulumi.set(self, "state", value)
27588
28354
 
27589
28355
 
28356
+ if not MYPY:
28357
+ class InterconnectGroupConfiguredArgsDict(TypedDict):
28358
+ topology_capabilities: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityArgsDict']]]]
28359
+ """
28360
+ (Output)
28361
+ How reliable this topology is configured to be, and why
28362
+ this group does or does not meet the requirements for the intended
28363
+ capability.
28364
+ Structure is documented below.
28365
+ """
28366
+ elif False:
28367
+ InterconnectGroupConfiguredArgsDict: TypeAlias = Mapping[str, Any]
28368
+
28369
+ @pulumi.input_type
28370
+ class InterconnectGroupConfiguredArgs:
28371
+ def __init__(__self__, *,
28372
+ topology_capabilities: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityArgs']]]] = None):
28373
+ """
28374
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityArgs']]] topology_capabilities: (Output)
28375
+ How reliable this topology is configured to be, and why
28376
+ this group does or does not meet the requirements for the intended
28377
+ capability.
28378
+ Structure is documented below.
28379
+ """
28380
+ if topology_capabilities is not None:
28381
+ pulumi.set(__self__, "topology_capabilities", topology_capabilities)
28382
+
28383
+ @property
28384
+ @pulumi.getter(name="topologyCapabilities")
28385
+ def topology_capabilities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityArgs']]]]:
28386
+ """
28387
+ (Output)
28388
+ How reliable this topology is configured to be, and why
28389
+ this group does or does not meet the requirements for the intended
28390
+ capability.
28391
+ Structure is documented below.
28392
+ """
28393
+ return pulumi.get(self, "topology_capabilities")
28394
+
28395
+ @topology_capabilities.setter
28396
+ def topology_capabilities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityArgs']]]]):
28397
+ pulumi.set(self, "topology_capabilities", value)
28398
+
28399
+
28400
+ if not MYPY:
28401
+ class InterconnectGroupConfiguredTopologyCapabilityArgsDict(TypedDict):
28402
+ intended_capability_blockers: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgsDict']]]]
28403
+ """
28404
+ (Output)
28405
+ Reasons why configuration.topologyCapability.sla differs
28406
+ from intent.topologyCapability. This list is empty if and only if those
28407
+ are the same.
28408
+ Structure is documented below.
28409
+ """
28410
+ supported_sla: NotRequired[pulumi.Input[builtins.str]]
28411
+ """
28412
+ (Output)
28413
+ Which level of reliability this group is configured to
28414
+ support.
28415
+ """
28416
+ elif False:
28417
+ InterconnectGroupConfiguredTopologyCapabilityArgsDict: TypeAlias = Mapping[str, Any]
28418
+
28419
+ @pulumi.input_type
28420
+ class InterconnectGroupConfiguredTopologyCapabilityArgs:
28421
+ def __init__(__self__, *,
28422
+ intended_capability_blockers: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgs']]]] = None,
28423
+ supported_sla: Optional[pulumi.Input[builtins.str]] = None):
28424
+ """
28425
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgs']]] intended_capability_blockers: (Output)
28426
+ Reasons why configuration.topologyCapability.sla differs
28427
+ from intent.topologyCapability. This list is empty if and only if those
28428
+ are the same.
28429
+ Structure is documented below.
28430
+ :param pulumi.Input[builtins.str] supported_sla: (Output)
28431
+ Which level of reliability this group is configured to
28432
+ support.
28433
+ """
28434
+ if intended_capability_blockers is not None:
28435
+ pulumi.set(__self__, "intended_capability_blockers", intended_capability_blockers)
28436
+ if supported_sla is not None:
28437
+ pulumi.set(__self__, "supported_sla", supported_sla)
28438
+
28439
+ @property
28440
+ @pulumi.getter(name="intendedCapabilityBlockers")
28441
+ def intended_capability_blockers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgs']]]]:
28442
+ """
28443
+ (Output)
28444
+ Reasons why configuration.topologyCapability.sla differs
28445
+ from intent.topologyCapability. This list is empty if and only if those
28446
+ are the same.
28447
+ Structure is documented below.
28448
+ """
28449
+ return pulumi.get(self, "intended_capability_blockers")
28450
+
28451
+ @intended_capability_blockers.setter
28452
+ def intended_capability_blockers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgs']]]]):
28453
+ pulumi.set(self, "intended_capability_blockers", value)
28454
+
28455
+ @property
28456
+ @pulumi.getter(name="supportedSla")
28457
+ def supported_sla(self) -> Optional[pulumi.Input[builtins.str]]:
28458
+ """
28459
+ (Output)
28460
+ Which level of reliability this group is configured to
28461
+ support.
28462
+ """
28463
+ return pulumi.get(self, "supported_sla")
28464
+
28465
+ @supported_sla.setter
28466
+ def supported_sla(self, value: Optional[pulumi.Input[builtins.str]]):
28467
+ pulumi.set(self, "supported_sla", value)
28468
+
28469
+
28470
+ if not MYPY:
28471
+ class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgsDict(TypedDict):
28472
+ blocker_type: NotRequired[pulumi.Input[builtins.str]]
28473
+ """
28474
+ (Output)
28475
+ The category of an unmet SLA requirement. The Intended
28476
+ SLA Blockers section below explains this field and how it relates to
28477
+ other fields in intendedCapabilityBlockers.
28478
+ """
28479
+ documentation_link: NotRequired[pulumi.Input[builtins.str]]
28480
+ """
28481
+ (Output)
28482
+ The url of Google Cloud public documentation explaining
28483
+ this requirement. This is set for every type of requirement.
28484
+ """
28485
+ explanation: NotRequired[pulumi.Input[builtins.str]]
28486
+ """
28487
+ (Output)
28488
+ A human-readable explanation of this requirement and
28489
+ why it's not met. This is set for every type of requirement.
28490
+ """
28491
+ facilities: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
28492
+ """
28493
+ (Output)
28494
+ Facilities used to explain this blocker in more detail.
28495
+ Like physicalStructure.metros.facilities.facility, this is a numeric
28496
+ string like "5467".
28497
+ """
28498
+ interconnects: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
28499
+ """
28500
+ (Output)
28501
+ Interconnects used to explain this blocker in more
28502
+ detail.
28503
+ """
28504
+ metros: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
28505
+ """
28506
+ (Output)
28507
+ Metros used to explain this blocker in more detail.
28508
+ These are three-letter lowercase strings like "iad". A blocker like
28509
+ INCOMPATIBLE_METROS will specify the problematic metros in this
28510
+ field.
28511
+ """
28512
+ zones: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
28513
+ """
28514
+ (Output)
28515
+ Zones used to explain this blocker in more detail.
28516
+ Zone names are "zone1" and/or "zone2".
28517
+ """
28518
+ elif False:
28519
+ InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgsDict: TypeAlias = Mapping[str, Any]
28520
+
28521
+ @pulumi.input_type
28522
+ class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgs:
28523
+ def __init__(__self__, *,
28524
+ blocker_type: Optional[pulumi.Input[builtins.str]] = None,
28525
+ documentation_link: Optional[pulumi.Input[builtins.str]] = None,
28526
+ explanation: Optional[pulumi.Input[builtins.str]] = None,
28527
+ facilities: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
28528
+ interconnects: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
28529
+ metros: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
28530
+ zones: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None):
28531
+ """
28532
+ :param pulumi.Input[builtins.str] blocker_type: (Output)
28533
+ The category of an unmet SLA requirement. The Intended
28534
+ SLA Blockers section below explains this field and how it relates to
28535
+ other fields in intendedCapabilityBlockers.
28536
+ :param pulumi.Input[builtins.str] documentation_link: (Output)
28537
+ The url of Google Cloud public documentation explaining
28538
+ this requirement. This is set for every type of requirement.
28539
+ :param pulumi.Input[builtins.str] explanation: (Output)
28540
+ A human-readable explanation of this requirement and
28541
+ why it's not met. This is set for every type of requirement.
28542
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] facilities: (Output)
28543
+ Facilities used to explain this blocker in more detail.
28544
+ Like physicalStructure.metros.facilities.facility, this is a numeric
28545
+ string like "5467".
28546
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] interconnects: (Output)
28547
+ Interconnects used to explain this blocker in more
28548
+ detail.
28549
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] metros: (Output)
28550
+ Metros used to explain this blocker in more detail.
28551
+ These are three-letter lowercase strings like "iad". A blocker like
28552
+ INCOMPATIBLE_METROS will specify the problematic metros in this
28553
+ field.
28554
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] zones: (Output)
28555
+ Zones used to explain this blocker in more detail.
28556
+ Zone names are "zone1" and/or "zone2".
28557
+ """
28558
+ if blocker_type is not None:
28559
+ pulumi.set(__self__, "blocker_type", blocker_type)
28560
+ if documentation_link is not None:
28561
+ pulumi.set(__self__, "documentation_link", documentation_link)
28562
+ if explanation is not None:
28563
+ pulumi.set(__self__, "explanation", explanation)
28564
+ if facilities is not None:
28565
+ pulumi.set(__self__, "facilities", facilities)
28566
+ if interconnects is not None:
28567
+ pulumi.set(__self__, "interconnects", interconnects)
28568
+ if metros is not None:
28569
+ pulumi.set(__self__, "metros", metros)
28570
+ if zones is not None:
28571
+ pulumi.set(__self__, "zones", zones)
28572
+
28573
+ @property
28574
+ @pulumi.getter(name="blockerType")
28575
+ def blocker_type(self) -> Optional[pulumi.Input[builtins.str]]:
28576
+ """
28577
+ (Output)
28578
+ The category of an unmet SLA requirement. The Intended
28579
+ SLA Blockers section below explains this field and how it relates to
28580
+ other fields in intendedCapabilityBlockers.
28581
+ """
28582
+ return pulumi.get(self, "blocker_type")
28583
+
28584
+ @blocker_type.setter
28585
+ def blocker_type(self, value: Optional[pulumi.Input[builtins.str]]):
28586
+ pulumi.set(self, "blocker_type", value)
28587
+
28588
+ @property
28589
+ @pulumi.getter(name="documentationLink")
28590
+ def documentation_link(self) -> Optional[pulumi.Input[builtins.str]]:
28591
+ """
28592
+ (Output)
28593
+ The url of Google Cloud public documentation explaining
28594
+ this requirement. This is set for every type of requirement.
28595
+ """
28596
+ return pulumi.get(self, "documentation_link")
28597
+
28598
+ @documentation_link.setter
28599
+ def documentation_link(self, value: Optional[pulumi.Input[builtins.str]]):
28600
+ pulumi.set(self, "documentation_link", value)
28601
+
28602
+ @property
28603
+ @pulumi.getter
28604
+ def explanation(self) -> Optional[pulumi.Input[builtins.str]]:
28605
+ """
28606
+ (Output)
28607
+ A human-readable explanation of this requirement and
28608
+ why it's not met. This is set for every type of requirement.
28609
+ """
28610
+ return pulumi.get(self, "explanation")
28611
+
28612
+ @explanation.setter
28613
+ def explanation(self, value: Optional[pulumi.Input[builtins.str]]):
28614
+ pulumi.set(self, "explanation", value)
28615
+
28616
+ @property
28617
+ @pulumi.getter
28618
+ def facilities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
28619
+ """
28620
+ (Output)
28621
+ Facilities used to explain this blocker in more detail.
28622
+ Like physicalStructure.metros.facilities.facility, this is a numeric
28623
+ string like "5467".
28624
+ """
28625
+ return pulumi.get(self, "facilities")
28626
+
28627
+ @facilities.setter
28628
+ def facilities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
28629
+ pulumi.set(self, "facilities", value)
28630
+
28631
+ @property
28632
+ @pulumi.getter
28633
+ def interconnects(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
28634
+ """
28635
+ (Output)
28636
+ Interconnects used to explain this blocker in more
28637
+ detail.
28638
+ """
28639
+ return pulumi.get(self, "interconnects")
28640
+
28641
+ @interconnects.setter
28642
+ def interconnects(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
28643
+ pulumi.set(self, "interconnects", value)
28644
+
28645
+ @property
28646
+ @pulumi.getter
28647
+ def metros(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
28648
+ """
28649
+ (Output)
28650
+ Metros used to explain this blocker in more detail.
28651
+ These are three-letter lowercase strings like "iad". A blocker like
28652
+ INCOMPATIBLE_METROS will specify the problematic metros in this
28653
+ field.
28654
+ """
28655
+ return pulumi.get(self, "metros")
28656
+
28657
+ @metros.setter
28658
+ def metros(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
28659
+ pulumi.set(self, "metros", value)
28660
+
28661
+ @property
28662
+ @pulumi.getter
28663
+ def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
28664
+ """
28665
+ (Output)
28666
+ Zones used to explain this blocker in more detail.
28667
+ Zone names are "zone1" and/or "zone2".
28668
+ """
28669
+ return pulumi.get(self, "zones")
28670
+
28671
+ @zones.setter
28672
+ def zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
28673
+ pulumi.set(self, "zones", value)
28674
+
28675
+
28676
+ if not MYPY:
28677
+ class InterconnectGroupIntentArgsDict(TypedDict):
28678
+ topology_capability: NotRequired[pulumi.Input[builtins.str]]
28679
+ """
28680
+ The reliability the user intends this group to be capable of, in terms
28681
+ of the Interconnect product SLAs.
28682
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
28683
+
28684
+ - - -
28685
+ """
28686
+ elif False:
28687
+ InterconnectGroupIntentArgsDict: TypeAlias = Mapping[str, Any]
28688
+
28689
+ @pulumi.input_type
28690
+ class InterconnectGroupIntentArgs:
28691
+ def __init__(__self__, *,
28692
+ topology_capability: Optional[pulumi.Input[builtins.str]] = None):
28693
+ """
28694
+ :param pulumi.Input[builtins.str] topology_capability: The reliability the user intends this group to be capable of, in terms
28695
+ of the Interconnect product SLAs.
28696
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
28697
+
28698
+ - - -
28699
+ """
28700
+ if topology_capability is not None:
28701
+ pulumi.set(__self__, "topology_capability", topology_capability)
28702
+
28703
+ @property
28704
+ @pulumi.getter(name="topologyCapability")
28705
+ def topology_capability(self) -> Optional[pulumi.Input[builtins.str]]:
28706
+ """
28707
+ The reliability the user intends this group to be capable of, in terms
28708
+ of the Interconnect product SLAs.
28709
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
28710
+
28711
+ - - -
28712
+ """
28713
+ return pulumi.get(self, "topology_capability")
28714
+
28715
+ @topology_capability.setter
28716
+ def topology_capability(self, value: Optional[pulumi.Input[builtins.str]]):
28717
+ pulumi.set(self, "topology_capability", value)
28718
+
28719
+
28720
+ if not MYPY:
28721
+ class InterconnectGroupInterconnectArgsDict(TypedDict):
28722
+ name: pulumi.Input[builtins.str]
28723
+ """
28724
+ The identifier for this object. Format specified above.
28725
+ """
28726
+ interconnect: NotRequired[pulumi.Input[builtins.str]]
28727
+ """
28728
+ The URL of an Interconnect in this group. All Interconnects in the group are unique.
28729
+ """
28730
+ elif False:
28731
+ InterconnectGroupInterconnectArgsDict: TypeAlias = Mapping[str, Any]
28732
+
28733
+ @pulumi.input_type
28734
+ class InterconnectGroupInterconnectArgs:
28735
+ def __init__(__self__, *,
28736
+ name: pulumi.Input[builtins.str],
28737
+ interconnect: Optional[pulumi.Input[builtins.str]] = None):
28738
+ """
28739
+ :param pulumi.Input[builtins.str] name: The identifier for this object. Format specified above.
28740
+ :param pulumi.Input[builtins.str] interconnect: The URL of an Interconnect in this group. All Interconnects in the group are unique.
28741
+ """
28742
+ pulumi.set(__self__, "name", name)
28743
+ if interconnect is not None:
28744
+ pulumi.set(__self__, "interconnect", interconnect)
28745
+
28746
+ @property
28747
+ @pulumi.getter
28748
+ def name(self) -> pulumi.Input[builtins.str]:
28749
+ """
28750
+ The identifier for this object. Format specified above.
28751
+ """
28752
+ return pulumi.get(self, "name")
28753
+
28754
+ @name.setter
28755
+ def name(self, value: pulumi.Input[builtins.str]):
28756
+ pulumi.set(self, "name", value)
28757
+
28758
+ @property
28759
+ @pulumi.getter
28760
+ def interconnect(self) -> Optional[pulumi.Input[builtins.str]]:
28761
+ """
28762
+ The URL of an Interconnect in this group. All Interconnects in the group are unique.
28763
+ """
28764
+ return pulumi.get(self, "interconnect")
28765
+
28766
+ @interconnect.setter
28767
+ def interconnect(self, value: Optional[pulumi.Input[builtins.str]]):
28768
+ pulumi.set(self, "interconnect", value)
28769
+
28770
+
28771
+ if not MYPY:
28772
+ class InterconnectGroupPhysicalStructureArgsDict(TypedDict):
28773
+ metros: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroArgsDict']]]]
28774
+ """
28775
+ (Output)
28776
+ Metros used to explain this blocker in more detail.
28777
+ These are three-letter lowercase strings like "iad". A blocker like
28778
+ INCOMPATIBLE_METROS will specify the problematic metros in this
28779
+ field.
28780
+ """
28781
+ elif False:
28782
+ InterconnectGroupPhysicalStructureArgsDict: TypeAlias = Mapping[str, Any]
28783
+
28784
+ @pulumi.input_type
28785
+ class InterconnectGroupPhysicalStructureArgs:
28786
+ def __init__(__self__, *,
28787
+ metros: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroArgs']]]] = None):
28788
+ """
28789
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroArgs']]] metros: (Output)
28790
+ Metros used to explain this blocker in more detail.
28791
+ These are three-letter lowercase strings like "iad". A blocker like
28792
+ INCOMPATIBLE_METROS will specify the problematic metros in this
28793
+ field.
28794
+ """
28795
+ if metros is not None:
28796
+ pulumi.set(__self__, "metros", metros)
28797
+
28798
+ @property
28799
+ @pulumi.getter
28800
+ def metros(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroArgs']]]]:
28801
+ """
28802
+ (Output)
28803
+ Metros used to explain this blocker in more detail.
28804
+ These are three-letter lowercase strings like "iad". A blocker like
28805
+ INCOMPATIBLE_METROS will specify the problematic metros in this
28806
+ field.
28807
+ """
28808
+ return pulumi.get(self, "metros")
28809
+
28810
+ @metros.setter
28811
+ def metros(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroArgs']]]]):
28812
+ pulumi.set(self, "metros", value)
28813
+
28814
+
28815
+ if not MYPY:
28816
+ class InterconnectGroupPhysicalStructureMetroArgsDict(TypedDict):
28817
+ facilities: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityArgsDict']]]]
28818
+ """
28819
+ (Output)
28820
+ Facilities used to explain this blocker in more detail.
28821
+ Like physicalStructure.metros.facilities.facility, this is a numeric
28822
+ string like "5467".
28823
+ """
28824
+ metro: NotRequired[pulumi.Input[builtins.str]]
28825
+ """
28826
+ (Output)
28827
+ The name of the metro, as a three-letter lowercase string
28828
+ like "iad". This is the first component of the location of
28829
+ Interconnects underneath this.
28830
+ """
28831
+ elif False:
28832
+ InterconnectGroupPhysicalStructureMetroArgsDict: TypeAlias = Mapping[str, Any]
28833
+
28834
+ @pulumi.input_type
28835
+ class InterconnectGroupPhysicalStructureMetroArgs:
28836
+ def __init__(__self__, *,
28837
+ facilities: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityArgs']]]] = None,
28838
+ metro: Optional[pulumi.Input[builtins.str]] = None):
28839
+ """
28840
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityArgs']]] facilities: (Output)
28841
+ Facilities used to explain this blocker in more detail.
28842
+ Like physicalStructure.metros.facilities.facility, this is a numeric
28843
+ string like "5467".
28844
+ :param pulumi.Input[builtins.str] metro: (Output)
28845
+ The name of the metro, as a three-letter lowercase string
28846
+ like "iad". This is the first component of the location of
28847
+ Interconnects underneath this.
28848
+ """
28849
+ if facilities is not None:
28850
+ pulumi.set(__self__, "facilities", facilities)
28851
+ if metro is not None:
28852
+ pulumi.set(__self__, "metro", metro)
28853
+
28854
+ @property
28855
+ @pulumi.getter
28856
+ def facilities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityArgs']]]]:
28857
+ """
28858
+ (Output)
28859
+ Facilities used to explain this blocker in more detail.
28860
+ Like physicalStructure.metros.facilities.facility, this is a numeric
28861
+ string like "5467".
28862
+ """
28863
+ return pulumi.get(self, "facilities")
28864
+
28865
+ @facilities.setter
28866
+ def facilities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityArgs']]]]):
28867
+ pulumi.set(self, "facilities", value)
28868
+
28869
+ @property
28870
+ @pulumi.getter
28871
+ def metro(self) -> Optional[pulumi.Input[builtins.str]]:
28872
+ """
28873
+ (Output)
28874
+ The name of the metro, as a three-letter lowercase string
28875
+ like "iad". This is the first component of the location of
28876
+ Interconnects underneath this.
28877
+ """
28878
+ return pulumi.get(self, "metro")
28879
+
28880
+ @metro.setter
28881
+ def metro(self, value: Optional[pulumi.Input[builtins.str]]):
28882
+ pulumi.set(self, "metro", value)
28883
+
28884
+
28885
+ if not MYPY:
28886
+ class InterconnectGroupPhysicalStructureMetroFacilityArgsDict(TypedDict):
28887
+ facility: NotRequired[pulumi.Input[builtins.str]]
28888
+ """
28889
+ (Output)
28890
+ The ID of this facility, as a numeric string like
28891
+ "5467". This is the third component of the location of Interconnects
28892
+ in this facility.
28893
+ """
28894
+ zones: NotRequired[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityZoneArgsDict']]]]
28895
+ """
28896
+ (Output)
28897
+ Zones used to explain this blocker in more detail.
28898
+ Zone names are "zone1" and/or "zone2".
28899
+ """
28900
+ elif False:
28901
+ InterconnectGroupPhysicalStructureMetroFacilityArgsDict: TypeAlias = Mapping[str, Any]
28902
+
28903
+ @pulumi.input_type
28904
+ class InterconnectGroupPhysicalStructureMetroFacilityArgs:
28905
+ def __init__(__self__, *,
28906
+ facility: Optional[pulumi.Input[builtins.str]] = None,
28907
+ zones: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityZoneArgs']]]] = None):
28908
+ """
28909
+ :param pulumi.Input[builtins.str] facility: (Output)
28910
+ The ID of this facility, as a numeric string like
28911
+ "5467". This is the third component of the location of Interconnects
28912
+ in this facility.
28913
+ :param pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityZoneArgs']]] zones: (Output)
28914
+ Zones used to explain this blocker in more detail.
28915
+ Zone names are "zone1" and/or "zone2".
28916
+ """
28917
+ if facility is not None:
28918
+ pulumi.set(__self__, "facility", facility)
28919
+ if zones is not None:
28920
+ pulumi.set(__self__, "zones", zones)
28921
+
28922
+ @property
28923
+ @pulumi.getter
28924
+ def facility(self) -> Optional[pulumi.Input[builtins.str]]:
28925
+ """
28926
+ (Output)
28927
+ The ID of this facility, as a numeric string like
28928
+ "5467". This is the third component of the location of Interconnects
28929
+ in this facility.
28930
+ """
28931
+ return pulumi.get(self, "facility")
28932
+
28933
+ @facility.setter
28934
+ def facility(self, value: Optional[pulumi.Input[builtins.str]]):
28935
+ pulumi.set(self, "facility", value)
28936
+
28937
+ @property
28938
+ @pulumi.getter
28939
+ def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityZoneArgs']]]]:
28940
+ """
28941
+ (Output)
28942
+ Zones used to explain this blocker in more detail.
28943
+ Zone names are "zone1" and/or "zone2".
28944
+ """
28945
+ return pulumi.get(self, "zones")
28946
+
28947
+ @zones.setter
28948
+ def zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InterconnectGroupPhysicalStructureMetroFacilityZoneArgs']]]]):
28949
+ pulumi.set(self, "zones", value)
28950
+
28951
+
28952
+ if not MYPY:
28953
+ class InterconnectGroupPhysicalStructureMetroFacilityZoneArgsDict(TypedDict):
28954
+ interconnects: NotRequired[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]
28955
+ """
28956
+ (Output)
28957
+ Interconnects used to explain this blocker in more
28958
+ detail.
28959
+ """
28960
+ zone: NotRequired[pulumi.Input[builtins.str]]
28961
+ """
28962
+ (Output)
28963
+ The name of the zone, either "zone1" or "zone2".
28964
+ This is the second component of the location of Interconnects in
28965
+ this facility.
28966
+ """
28967
+ elif False:
28968
+ InterconnectGroupPhysicalStructureMetroFacilityZoneArgsDict: TypeAlias = Mapping[str, Any]
28969
+
28970
+ @pulumi.input_type
28971
+ class InterconnectGroupPhysicalStructureMetroFacilityZoneArgs:
28972
+ def __init__(__self__, *,
28973
+ interconnects: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
28974
+ zone: Optional[pulumi.Input[builtins.str]] = None):
28975
+ """
28976
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] interconnects: (Output)
28977
+ Interconnects used to explain this blocker in more
28978
+ detail.
28979
+ :param pulumi.Input[builtins.str] zone: (Output)
28980
+ The name of the zone, either "zone1" or "zone2".
28981
+ This is the second component of the location of Interconnects in
28982
+ this facility.
28983
+ """
28984
+ if interconnects is not None:
28985
+ pulumi.set(__self__, "interconnects", interconnects)
28986
+ if zone is not None:
28987
+ pulumi.set(__self__, "zone", zone)
28988
+
28989
+ @property
28990
+ @pulumi.getter
28991
+ def interconnects(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
28992
+ """
28993
+ (Output)
28994
+ Interconnects used to explain this blocker in more
28995
+ detail.
28996
+ """
28997
+ return pulumi.get(self, "interconnects")
28998
+
28999
+ @interconnects.setter
29000
+ def interconnects(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
29001
+ pulumi.set(self, "interconnects", value)
29002
+
29003
+ @property
29004
+ @pulumi.getter
29005
+ def zone(self) -> Optional[pulumi.Input[builtins.str]]:
29006
+ """
29007
+ (Output)
29008
+ The name of the zone, either "zone1" or "zone2".
29009
+ This is the second component of the location of Interconnects in
29010
+ this facility.
29011
+ """
29012
+ return pulumi.get(self, "zone")
29013
+
29014
+ @zone.setter
29015
+ def zone(self, value: Optional[pulumi.Input[builtins.str]]):
29016
+ pulumi.set(self, "zone", value)
29017
+
29018
+
27590
29019
  if not MYPY:
27591
29020
  class InterconnectMacsecArgsDict(TypedDict):
27592
29021
  pre_shared_keys: pulumi.Input[Sequence[pulumi.Input['InterconnectMacsecPreSharedKeyArgsDict']]]
@@ -62044,6 +63473,128 @@ class SnapshotIamMemberConditionArgs:
62044
63473
  pulumi.set(self, "description", value)
62045
63474
 
62046
63475
 
63476
+ if not MYPY:
63477
+ class SnapshotSettingsStorageLocationArgsDict(TypedDict):
63478
+ policy: pulumi.Input[builtins.str]
63479
+ """
63480
+ The chosen location policy
63481
+ Possible values are: `NEAREST_MULTI_REGION`, `LOCAL_REGION`, `SPECIFIC_LOCATIONS`.
63482
+ """
63483
+ locations: NotRequired[pulumi.Input[Sequence[pulumi.Input['SnapshotSettingsStorageLocationLocationArgsDict']]]]
63484
+ """
63485
+ When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the
63486
+ locations listed in this field. Keys are Cloud Storage bucket locations.
63487
+ Only one location can be specified.
63488
+ Structure is documented below.
63489
+ """
63490
+ elif False:
63491
+ SnapshotSettingsStorageLocationArgsDict: TypeAlias = Mapping[str, Any]
63492
+
63493
+ @pulumi.input_type
63494
+ class SnapshotSettingsStorageLocationArgs:
63495
+ def __init__(__self__, *,
63496
+ policy: pulumi.Input[builtins.str],
63497
+ locations: Optional[pulumi.Input[Sequence[pulumi.Input['SnapshotSettingsStorageLocationLocationArgs']]]] = None):
63498
+ """
63499
+ :param pulumi.Input[builtins.str] policy: The chosen location policy
63500
+ Possible values are: `NEAREST_MULTI_REGION`, `LOCAL_REGION`, `SPECIFIC_LOCATIONS`.
63501
+ :param pulumi.Input[Sequence[pulumi.Input['SnapshotSettingsStorageLocationLocationArgs']]] locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the
63502
+ locations listed in this field. Keys are Cloud Storage bucket locations.
63503
+ Only one location can be specified.
63504
+ Structure is documented below.
63505
+ """
63506
+ pulumi.set(__self__, "policy", policy)
63507
+ if locations is not None:
63508
+ pulumi.set(__self__, "locations", locations)
63509
+
63510
+ @property
63511
+ @pulumi.getter
63512
+ def policy(self) -> pulumi.Input[builtins.str]:
63513
+ """
63514
+ The chosen location policy
63515
+ Possible values are: `NEAREST_MULTI_REGION`, `LOCAL_REGION`, `SPECIFIC_LOCATIONS`.
63516
+ """
63517
+ return pulumi.get(self, "policy")
63518
+
63519
+ @policy.setter
63520
+ def policy(self, value: pulumi.Input[builtins.str]):
63521
+ pulumi.set(self, "policy", value)
63522
+
63523
+ @property
63524
+ @pulumi.getter
63525
+ def locations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SnapshotSettingsStorageLocationLocationArgs']]]]:
63526
+ """
63527
+ When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the
63528
+ locations listed in this field. Keys are Cloud Storage bucket locations.
63529
+ Only one location can be specified.
63530
+ Structure is documented below.
63531
+ """
63532
+ return pulumi.get(self, "locations")
63533
+
63534
+ @locations.setter
63535
+ def locations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SnapshotSettingsStorageLocationLocationArgs']]]]):
63536
+ pulumi.set(self, "locations", value)
63537
+
63538
+
63539
+ if not MYPY:
63540
+ class SnapshotSettingsStorageLocationLocationArgsDict(TypedDict):
63541
+ location: pulumi.Input[builtins.str]
63542
+ """
63543
+ The identifier for this object. Format specified above.
63544
+ """
63545
+ name: pulumi.Input[builtins.str]
63546
+ """
63547
+ Name of the location. It should be one of the Cloud Storage buckets.
63548
+ Only one location can be specified. (should match location)
63549
+
63550
+ - - -
63551
+ """
63552
+ elif False:
63553
+ SnapshotSettingsStorageLocationLocationArgsDict: TypeAlias = Mapping[str, Any]
63554
+
63555
+ @pulumi.input_type
63556
+ class SnapshotSettingsStorageLocationLocationArgs:
63557
+ def __init__(__self__, *,
63558
+ location: pulumi.Input[builtins.str],
63559
+ name: pulumi.Input[builtins.str]):
63560
+ """
63561
+ :param pulumi.Input[builtins.str] location: The identifier for this object. Format specified above.
63562
+ :param pulumi.Input[builtins.str] name: Name of the location. It should be one of the Cloud Storage buckets.
63563
+ Only one location can be specified. (should match location)
63564
+
63565
+ - - -
63566
+ """
63567
+ pulumi.set(__self__, "location", location)
63568
+ pulumi.set(__self__, "name", name)
63569
+
63570
+ @property
63571
+ @pulumi.getter
63572
+ def location(self) -> pulumi.Input[builtins.str]:
63573
+ """
63574
+ The identifier for this object. Format specified above.
63575
+ """
63576
+ return pulumi.get(self, "location")
63577
+
63578
+ @location.setter
63579
+ def location(self, value: pulumi.Input[builtins.str]):
63580
+ pulumi.set(self, "location", value)
63581
+
63582
+ @property
63583
+ @pulumi.getter
63584
+ def name(self) -> pulumi.Input[builtins.str]:
63585
+ """
63586
+ Name of the location. It should be one of the Cloud Storage buckets.
63587
+ Only one location can be specified. (should match location)
63588
+
63589
+ - - -
63590
+ """
63591
+ return pulumi.get(self, "name")
63592
+
63593
+ @name.setter
63594
+ def name(self, value: pulumi.Input[builtins.str]):
63595
+ pulumi.set(self, "name", value)
63596
+
63597
+
62047
63598
  if not MYPY:
62048
63599
  class SnapshotSnapshotEncryptionKeyArgsDict(TypedDict):
62049
63600
  kms_key_self_link: NotRequired[pulumi.Input[builtins.str]]