pulumi-gcp 8.33.0a1749001887__py3-none-any.whl → 8.34.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. pulumi_gcp/__init__.py +40 -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/bigquery/__init__.py +1 -0
  13. pulumi_gcp/bigquery/get_datasets.py +131 -0
  14. pulumi_gcp/bigquery/outputs.py +52 -0
  15. pulumi_gcp/cloudrunv2/_inputs.py +463 -0
  16. pulumi_gcp/cloudrunv2/outputs.py +581 -1
  17. pulumi_gcp/cloudrunv2/worker_pool.py +0 -8
  18. pulumi_gcp/colab/_inputs.py +14 -1
  19. pulumi_gcp/colab/outputs.py +8 -1
  20. pulumi_gcp/colab/runtime_template.py +5 -27
  21. pulumi_gcp/compute/__init__.py +3 -0
  22. pulumi_gcp/compute/_inputs.py +1829 -3
  23. pulumi_gcp/compute/backend_service.py +18 -2
  24. pulumi_gcp/compute/get_region_instance_template.py +12 -1
  25. pulumi_gcp/compute/get_router_nat.py +23 -1
  26. pulumi_gcp/compute/interconnect.py +32 -0
  27. pulumi_gcp/compute/interconnect_attachment.py +304 -0
  28. pulumi_gcp/compute/interconnect_attachment_group.py +636 -0
  29. pulumi_gcp/compute/interconnect_group.py +586 -0
  30. pulumi_gcp/compute/outputs.py +1321 -2
  31. pulumi_gcp/compute/region_instance_template.py +28 -0
  32. pulumi_gcp/compute/router_nat.py +143 -0
  33. pulumi_gcp/compute/snapshot_settings.py +285 -0
  34. pulumi_gcp/compute/url_map.py +338 -0
  35. pulumi_gcp/container/_inputs.py +57 -24
  36. pulumi_gcp/container/cluster.py +47 -0
  37. pulumi_gcp/container/get_cluster.py +12 -1
  38. pulumi_gcp/container/outputs.py +75 -20
  39. pulumi_gcp/dataplex/__init__.py +1 -0
  40. pulumi_gcp/dataplex/_inputs.py +492 -0
  41. pulumi_gcp/dataplex/datascan.py +2 -0
  42. pulumi_gcp/dataplex/entry.py +1038 -0
  43. pulumi_gcp/dataplex/outputs.py +357 -1
  44. pulumi_gcp/datastream/_inputs.py +48 -6
  45. pulumi_gcp/datastream/outputs.py +46 -4
  46. pulumi_gcp/datastream/private_connection.py +205 -35
  47. pulumi_gcp/dns/_inputs.py +73 -0
  48. pulumi_gcp/dns/outputs.py +60 -0
  49. pulumi_gcp/dns/policy.py +54 -0
  50. pulumi_gcp/eventarc/_inputs.py +12 -5
  51. pulumi_gcp/eventarc/outputs.py +8 -3
  52. pulumi_gcp/eventarc/pipeline.py +0 -12
  53. pulumi_gcp/filestore/_inputs.py +44 -1
  54. pulumi_gcp/filestore/instance.py +7 -7
  55. pulumi_gcp/filestore/outputs.py +52 -2
  56. pulumi_gcp/gemini/data_sharing_with_google_setting.py +58 -9
  57. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +11 -16
  58. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +51 -2
  59. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +11 -16
  60. pulumi_gcp/gkehub/_inputs.py +84 -7
  61. pulumi_gcp/gkehub/feature.py +38 -0
  62. pulumi_gcp/gkehub/outputs.py +102 -7
  63. pulumi_gcp/gkehub/scope_rbac_role_binding.py +54 -2
  64. pulumi_gcp/gkeonprem/_inputs.py +54 -0
  65. pulumi_gcp/gkeonprem/outputs.py +49 -0
  66. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +71 -0
  67. pulumi_gcp/iam/workload_identity_pool_namespace.py +4 -4
  68. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  69. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  70. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  71. pulumi_gcp/managedkafka/connector.py +4 -4
  72. pulumi_gcp/memorystore/_inputs.py +6 -6
  73. pulumi_gcp/memorystore/outputs.py +8 -8
  74. pulumi_gcp/netapp/_inputs.py +113 -0
  75. pulumi_gcp/netapp/backup_vault.py +56 -0
  76. pulumi_gcp/netapp/outputs.py +92 -0
  77. pulumi_gcp/networkconnectivity/_inputs.py +9 -9
  78. pulumi_gcp/networkconnectivity/outputs.py +6 -6
  79. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  80. pulumi_gcp/networksecurity/backend_authentication_config.py +64 -0
  81. pulumi_gcp/orgpolicy/policy.py +2 -2
  82. pulumi_gcp/pubsub/_inputs.py +392 -0
  83. pulumi_gcp/pubsub/get_subscription.py +12 -1
  84. pulumi_gcp/pubsub/get_topic.py +12 -1
  85. pulumi_gcp/pubsub/outputs.py +548 -0
  86. pulumi_gcp/pubsub/subscription.py +67 -6
  87. pulumi_gcp/pubsub/topic.py +61 -0
  88. pulumi_gcp/pulumi-plugin.json +1 -1
  89. pulumi_gcp/redis/_inputs.py +3 -6
  90. pulumi_gcp/redis/outputs.py +2 -4
  91. pulumi_gcp/storage/bucket_object.py +4 -4
  92. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  93. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  94. {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/METADATA +1 -1
  95. {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/RECORD +97 -91
  96. {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/WHEEL +0 -0
  97. {pulumi_gcp-8.33.0a1749001887.dist-info → pulumi_gcp-8.34.0.dist-info}/top_level.txt +0 -0
@@ -265,9 +265,28 @@ __all__ = [
265
265
  'InstanceTemplateShieldedInstanceConfig',
266
266
  'InstantSnapshotIamBindingCondition',
267
267
  'InstantSnapshotIamMemberCondition',
268
+ 'InterconnectAttachmentGroupAttachment',
269
+ 'InterconnectAttachmentGroupConfigured',
270
+ 'InterconnectAttachmentGroupConfiguredAvailabilitySla',
271
+ 'InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker',
272
+ 'InterconnectAttachmentGroupIntent',
273
+ 'InterconnectAttachmentGroupLogicalStructure',
274
+ 'InterconnectAttachmentGroupLogicalStructureRegion',
275
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetro',
276
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroFacility',
277
+ 'InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone',
268
278
  'InterconnectAttachmentPrivateInterconnectInfo',
269
279
  'InterconnectCircuitInfo',
270
280
  'InterconnectExpectedOutage',
281
+ 'InterconnectGroupConfigured',
282
+ 'InterconnectGroupConfiguredTopologyCapability',
283
+ 'InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker',
284
+ 'InterconnectGroupIntent',
285
+ 'InterconnectGroupInterconnect',
286
+ 'InterconnectGroupPhysicalStructure',
287
+ 'InterconnectGroupPhysicalStructureMetro',
288
+ 'InterconnectGroupPhysicalStructureMetroFacility',
289
+ 'InterconnectGroupPhysicalStructureMetroFacilityZone',
271
290
  'InterconnectMacsec',
272
291
  'InterconnectMacsecPreSharedKey',
273
292
  'MachineImageIamBindingCondition',
@@ -580,6 +599,7 @@ __all__ = [
580
599
  'RouterBgpAdvertisedIpRange',
581
600
  'RouterMd5AuthenticationKeys',
582
601
  'RouterNatLogConfig',
602
+ 'RouterNatNat64Subnetwork',
583
603
  'RouterNatRule',
584
604
  'RouterNatRuleAction',
585
605
  'RouterNatSubnetwork',
@@ -634,6 +654,8 @@ __all__ = [
634
654
  'ServiceAttachmentConsumerAcceptList',
635
655
  'SnapshotIamBindingCondition',
636
656
  'SnapshotIamMemberCondition',
657
+ 'SnapshotSettingsStorageLocation',
658
+ 'SnapshotSettingsStorageLocationLocation',
637
659
  'SnapshotSnapshotEncryptionKey',
638
660
  'SnapshotSourceDiskEncryptionKey',
639
661
  'StoragePoolIamBindingCondition',
@@ -716,6 +738,8 @@ __all__ = [
716
738
  'URLMapPathMatcherRouteRuleHeaderAction',
717
739
  'URLMapPathMatcherRouteRuleHeaderActionRequestHeadersToAdd',
718
740
  'URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd',
741
+ 'URLMapPathMatcherRouteRuleHttpFilterConfig',
742
+ 'URLMapPathMatcherRouteRuleHttpFilterMetadata',
719
743
  'URLMapPathMatcherRouteRuleMatchRule',
720
744
  'URLMapPathMatcherRouteRuleMatchRuleHeaderMatch',
721
745
  'URLMapPathMatcherRouteRuleMatchRuleHeaderMatchRangeMatch',
@@ -971,6 +995,7 @@ __all__ = [
971
995
  'GetRouterBgpAdvertisedIpRangeResult',
972
996
  'GetRouterMd5AuthenticationKeyResult',
973
997
  'GetRouterNatLogConfigResult',
998
+ 'GetRouterNatNat64SubnetworkResult',
974
999
  'GetRouterNatRuleResult',
975
1000
  'GetRouterNatRuleActionResult',
976
1001
  'GetRouterNatSubnetworkResult',
@@ -3795,6 +3820,7 @@ class BackendServiceLogConfig(dict):
3795
3820
  :param Sequence[builtins.str] optional_fields: This field can only be specified if logging is enabled for this backend service and "logConfig.optionalMode"
3796
3821
  was set to CUSTOM. Contains a list of optional fields you want to include in the logs.
3797
3822
  For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace
3823
+ For example: orca_load_report, tls.protocol
3798
3824
  :param builtins.str optional_mode: Specifies the optional logging mode for the load balancer traffic.
3799
3825
  Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.
3800
3826
  Possible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.
@@ -3827,6 +3853,7 @@ class BackendServiceLogConfig(dict):
3827
3853
  This field can only be specified if logging is enabled for this backend service and "logConfig.optionalMode"
3828
3854
  was set to CUSTOM. Contains a list of optional fields you want to include in the logs.
3829
3855
  For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace
3856
+ For example: orca_load_report, tls.protocol
3830
3857
  """
3831
3858
  return pulumi.get(self, "optional_fields")
3832
3859
 
@@ -20464,6 +20491,521 @@ class InstantSnapshotIamMemberCondition(dict):
20464
20491
  return pulumi.get(self, "description")
20465
20492
 
20466
20493
 
20494
+ @pulumi.output_type
20495
+ class InterconnectAttachmentGroupAttachment(dict):
20496
+ def __init__(__self__, *,
20497
+ name: builtins.str,
20498
+ attachment: Optional[builtins.str] = None):
20499
+ """
20500
+ :param builtins.str name: The identifier for this object. Format specified above.
20501
+ :param builtins.str attachment: (Optional)
20502
+ """
20503
+ pulumi.set(__self__, "name", name)
20504
+ if attachment is not None:
20505
+ pulumi.set(__self__, "attachment", attachment)
20506
+
20507
+ @property
20508
+ @pulumi.getter
20509
+ def name(self) -> builtins.str:
20510
+ """
20511
+ The identifier for this object. Format specified above.
20512
+ """
20513
+ return pulumi.get(self, "name")
20514
+
20515
+ @property
20516
+ @pulumi.getter
20517
+ def attachment(self) -> Optional[builtins.str]:
20518
+ """
20519
+ (Optional)
20520
+ """
20521
+ return pulumi.get(self, "attachment")
20522
+
20523
+
20524
+ @pulumi.output_type
20525
+ class InterconnectAttachmentGroupConfigured(dict):
20526
+ @staticmethod
20527
+ def __key_warning(key: str):
20528
+ suggest = None
20529
+ if key == "availabilitySlas":
20530
+ suggest = "availability_slas"
20531
+
20532
+ if suggest:
20533
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectAttachmentGroupConfigured. Access the value via the '{suggest}' property getter instead.")
20534
+
20535
+ def __getitem__(self, key: str) -> Any:
20536
+ InterconnectAttachmentGroupConfigured.__key_warning(key)
20537
+ return super().__getitem__(key)
20538
+
20539
+ def get(self, key: str, default = None) -> Any:
20540
+ InterconnectAttachmentGroupConfigured.__key_warning(key)
20541
+ return super().get(key, default)
20542
+
20543
+ def __init__(__self__, *,
20544
+ availability_slas: Optional[Sequence['outputs.InterconnectAttachmentGroupConfiguredAvailabilitySla']] = None):
20545
+ """
20546
+ :param Sequence['InterconnectAttachmentGroupConfiguredAvailabilitySlaArgs'] availability_slas: (Output)
20547
+ Which SLA this group is configured to support, and why this
20548
+ group does or does not meet that SLA's requirements.
20549
+ Structure is documented below.
20550
+ """
20551
+ if availability_slas is not None:
20552
+ pulumi.set(__self__, "availability_slas", availability_slas)
20553
+
20554
+ @property
20555
+ @pulumi.getter(name="availabilitySlas")
20556
+ def availability_slas(self) -> Optional[Sequence['outputs.InterconnectAttachmentGroupConfiguredAvailabilitySla']]:
20557
+ """
20558
+ (Output)
20559
+ Which SLA this group is configured to support, and why this
20560
+ group does or does not meet that SLA's requirements.
20561
+ Structure is documented below.
20562
+ """
20563
+ return pulumi.get(self, "availability_slas")
20564
+
20565
+
20566
+ @pulumi.output_type
20567
+ class InterconnectAttachmentGroupConfiguredAvailabilitySla(dict):
20568
+ @staticmethod
20569
+ def __key_warning(key: str):
20570
+ suggest = None
20571
+ if key == "effectiveSla":
20572
+ suggest = "effective_sla"
20573
+ elif key == "intendedSlaBlockers":
20574
+ suggest = "intended_sla_blockers"
20575
+
20576
+ if suggest:
20577
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectAttachmentGroupConfiguredAvailabilitySla. Access the value via the '{suggest}' property getter instead.")
20578
+
20579
+ def __getitem__(self, key: str) -> Any:
20580
+ InterconnectAttachmentGroupConfiguredAvailabilitySla.__key_warning(key)
20581
+ return super().__getitem__(key)
20582
+
20583
+ def get(self, key: str, default = None) -> Any:
20584
+ InterconnectAttachmentGroupConfiguredAvailabilitySla.__key_warning(key)
20585
+ return super().get(key, default)
20586
+
20587
+ def __init__(__self__, *,
20588
+ effective_sla: Optional[builtins.str] = None,
20589
+ intended_sla_blockers: Optional[Sequence['outputs.InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker']] = None):
20590
+ """
20591
+ :param builtins.str effective_sla: (Output)
20592
+ Which SLA this group supports. Options are the same as the
20593
+ intent.
20594
+ :param Sequence['InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlockerArgs'] intended_sla_blockers: (Output)
20595
+ Reasons why configuration.availabilitySLA.sla differs from
20596
+ intent.availabilitySLA. This list is empty if and only if those are the
20597
+ same.
20598
+ Structure is documented below.
20599
+ """
20600
+ if effective_sla is not None:
20601
+ pulumi.set(__self__, "effective_sla", effective_sla)
20602
+ if intended_sla_blockers is not None:
20603
+ pulumi.set(__self__, "intended_sla_blockers", intended_sla_blockers)
20604
+
20605
+ @property
20606
+ @pulumi.getter(name="effectiveSla")
20607
+ def effective_sla(self) -> Optional[builtins.str]:
20608
+ """
20609
+ (Output)
20610
+ Which SLA this group supports. Options are the same as the
20611
+ intent.
20612
+ """
20613
+ return pulumi.get(self, "effective_sla")
20614
+
20615
+ @property
20616
+ @pulumi.getter(name="intendedSlaBlockers")
20617
+ def intended_sla_blockers(self) -> Optional[Sequence['outputs.InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker']]:
20618
+ """
20619
+ (Output)
20620
+ Reasons why configuration.availabilitySLA.sla differs from
20621
+ intent.availabilitySLA. This list is empty if and only if those are the
20622
+ same.
20623
+ Structure is documented below.
20624
+ """
20625
+ return pulumi.get(self, "intended_sla_blockers")
20626
+
20627
+
20628
+ @pulumi.output_type
20629
+ class InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker(dict):
20630
+ @staticmethod
20631
+ def __key_warning(key: str):
20632
+ suggest = None
20633
+ if key == "blockerType":
20634
+ suggest = "blocker_type"
20635
+ elif key == "documentationLink":
20636
+ suggest = "documentation_link"
20637
+
20638
+ if suggest:
20639
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker. Access the value via the '{suggest}' property getter instead.")
20640
+
20641
+ def __getitem__(self, key: str) -> Any:
20642
+ InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker.__key_warning(key)
20643
+ return super().__getitem__(key)
20644
+
20645
+ def get(self, key: str, default = None) -> Any:
20646
+ InterconnectAttachmentGroupConfiguredAvailabilitySlaIntendedSlaBlocker.__key_warning(key)
20647
+ return super().get(key, default)
20648
+
20649
+ def __init__(__self__, *,
20650
+ attachments: Optional[Sequence[builtins.str]] = None,
20651
+ blocker_type: Optional[builtins.str] = None,
20652
+ documentation_link: Optional[builtins.str] = None,
20653
+ explanation: Optional[builtins.str] = None,
20654
+ metros: Optional[Sequence[builtins.str]] = None,
20655
+ regions: Optional[Sequence[builtins.str]] = None,
20656
+ zones: Optional[Sequence[builtins.str]] = None):
20657
+ """
20658
+ :param Sequence[builtins.str] attachments: (Output)
20659
+ URLs of any particular Attachments to explain this
20660
+ blocker in more detail.
20661
+ :param builtins.str blocker_type: (Output)
20662
+ The category of an unmet SLA requirement.
20663
+ :param builtins.str documentation_link: (Output)
20664
+ The url of Google Cloud public documentation explaining
20665
+ this requirement. This is set for every type of requirement.
20666
+ :param builtins.str explanation: (Output)
20667
+ A human-readable explanation of this requirement and
20668
+ why it's not met. This is set for every type of requirement.
20669
+ :param Sequence[builtins.str] metros: (Output)
20670
+ Metros used to explain this blocker in more detail.
20671
+ These are three-letter lowercase strings like "iad". This will be set
20672
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
20673
+ not apply to others.
20674
+ :param Sequence[builtins.str] regions: (Output)
20675
+ Regions used to explain this blocker in more
20676
+ detail. These are region names formatted like "us-central1". This
20677
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
20678
+ not apply to others.
20679
+ :param Sequence[builtins.str] zones: (Output)
20680
+ Zones used to explain this blocker in more detail.
20681
+ Format is "zone1" and/or "zone2". This will be set for some blockers
20682
+ (like MISSING_ZONE) but does not apply to others.
20683
+ """
20684
+ if attachments is not None:
20685
+ pulumi.set(__self__, "attachments", attachments)
20686
+ if blocker_type is not None:
20687
+ pulumi.set(__self__, "blocker_type", blocker_type)
20688
+ if documentation_link is not None:
20689
+ pulumi.set(__self__, "documentation_link", documentation_link)
20690
+ if explanation is not None:
20691
+ pulumi.set(__self__, "explanation", explanation)
20692
+ if metros is not None:
20693
+ pulumi.set(__self__, "metros", metros)
20694
+ if regions is not None:
20695
+ pulumi.set(__self__, "regions", regions)
20696
+ if zones is not None:
20697
+ pulumi.set(__self__, "zones", zones)
20698
+
20699
+ @property
20700
+ @pulumi.getter
20701
+ def attachments(self) -> Optional[Sequence[builtins.str]]:
20702
+ """
20703
+ (Output)
20704
+ URLs of any particular Attachments to explain this
20705
+ blocker in more detail.
20706
+ """
20707
+ return pulumi.get(self, "attachments")
20708
+
20709
+ @property
20710
+ @pulumi.getter(name="blockerType")
20711
+ def blocker_type(self) -> Optional[builtins.str]:
20712
+ """
20713
+ (Output)
20714
+ The category of an unmet SLA requirement.
20715
+ """
20716
+ return pulumi.get(self, "blocker_type")
20717
+
20718
+ @property
20719
+ @pulumi.getter(name="documentationLink")
20720
+ def documentation_link(self) -> Optional[builtins.str]:
20721
+ """
20722
+ (Output)
20723
+ The url of Google Cloud public documentation explaining
20724
+ this requirement. This is set for every type of requirement.
20725
+ """
20726
+ return pulumi.get(self, "documentation_link")
20727
+
20728
+ @property
20729
+ @pulumi.getter
20730
+ def explanation(self) -> Optional[builtins.str]:
20731
+ """
20732
+ (Output)
20733
+ A human-readable explanation of this requirement and
20734
+ why it's not met. This is set for every type of requirement.
20735
+ """
20736
+ return pulumi.get(self, "explanation")
20737
+
20738
+ @property
20739
+ @pulumi.getter
20740
+ def metros(self) -> Optional[Sequence[builtins.str]]:
20741
+ """
20742
+ (Output)
20743
+ Metros used to explain this blocker in more detail.
20744
+ These are three-letter lowercase strings like "iad". This will be set
20745
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
20746
+ not apply to others.
20747
+ """
20748
+ return pulumi.get(self, "metros")
20749
+
20750
+ @property
20751
+ @pulumi.getter
20752
+ def regions(self) -> Optional[Sequence[builtins.str]]:
20753
+ """
20754
+ (Output)
20755
+ Regions used to explain this blocker in more
20756
+ detail. These are region names formatted like "us-central1". This
20757
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
20758
+ not apply to others.
20759
+ """
20760
+ return pulumi.get(self, "regions")
20761
+
20762
+ @property
20763
+ @pulumi.getter
20764
+ def zones(self) -> Optional[Sequence[builtins.str]]:
20765
+ """
20766
+ (Output)
20767
+ Zones used to explain this blocker in more detail.
20768
+ Format is "zone1" and/or "zone2". This will be set for some blockers
20769
+ (like MISSING_ZONE) but does not apply to others.
20770
+ """
20771
+ return pulumi.get(self, "zones")
20772
+
20773
+
20774
+ @pulumi.output_type
20775
+ class InterconnectAttachmentGroupIntent(dict):
20776
+ @staticmethod
20777
+ def __key_warning(key: str):
20778
+ suggest = None
20779
+ if key == "availabilitySla":
20780
+ suggest = "availability_sla"
20781
+
20782
+ if suggest:
20783
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectAttachmentGroupIntent. Access the value via the '{suggest}' property getter instead.")
20784
+
20785
+ def __getitem__(self, key: str) -> Any:
20786
+ InterconnectAttachmentGroupIntent.__key_warning(key)
20787
+ return super().__getitem__(key)
20788
+
20789
+ def get(self, key: str, default = None) -> Any:
20790
+ InterconnectAttachmentGroupIntent.__key_warning(key)
20791
+ return super().get(key, default)
20792
+
20793
+ def __init__(__self__, *,
20794
+ availability_sla: Optional[builtins.str] = None):
20795
+ """
20796
+ :param builtins.str availability_sla: Which SLA the user intends this group to support.
20797
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
20798
+
20799
+ - - -
20800
+ """
20801
+ if availability_sla is not None:
20802
+ pulumi.set(__self__, "availability_sla", availability_sla)
20803
+
20804
+ @property
20805
+ @pulumi.getter(name="availabilitySla")
20806
+ def availability_sla(self) -> Optional[builtins.str]:
20807
+ """
20808
+ Which SLA the user intends this group to support.
20809
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
20810
+
20811
+ - - -
20812
+ """
20813
+ return pulumi.get(self, "availability_sla")
20814
+
20815
+
20816
+ @pulumi.output_type
20817
+ class InterconnectAttachmentGroupLogicalStructure(dict):
20818
+ def __init__(__self__, *,
20819
+ regions: Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegion']] = None):
20820
+ """
20821
+ :param Sequence['InterconnectAttachmentGroupLogicalStructureRegionArgs'] regions: (Output)
20822
+ Regions used to explain this blocker in more
20823
+ detail. These are region names formatted like "us-central1". This
20824
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
20825
+ not apply to others.
20826
+ """
20827
+ if regions is not None:
20828
+ pulumi.set(__self__, "regions", regions)
20829
+
20830
+ @property
20831
+ @pulumi.getter
20832
+ def regions(self) -> Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegion']]:
20833
+ """
20834
+ (Output)
20835
+ Regions used to explain this blocker in more
20836
+ detail. These are region names formatted like "us-central1". This
20837
+ will be set for some blockers (like INCOMPATIBLE_REGIONS) but does
20838
+ not apply to others.
20839
+ """
20840
+ return pulumi.get(self, "regions")
20841
+
20842
+
20843
+ @pulumi.output_type
20844
+ class InterconnectAttachmentGroupLogicalStructureRegion(dict):
20845
+ def __init__(__self__, *,
20846
+ metros: Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegionMetro']] = None,
20847
+ region: Optional[builtins.str] = None):
20848
+ """
20849
+ :param Sequence['InterconnectAttachmentGroupLogicalStructureRegionMetroArgs'] metros: (Output)
20850
+ Metros used to explain this blocker in more detail.
20851
+ These are three-letter lowercase strings like "iad". This will be set
20852
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
20853
+ not apply to others.
20854
+ :param builtins.str region: (Output)
20855
+ The name of a region, like "us-central1".
20856
+ """
20857
+ if metros is not None:
20858
+ pulumi.set(__self__, "metros", metros)
20859
+ if region is not None:
20860
+ pulumi.set(__self__, "region", region)
20861
+
20862
+ @property
20863
+ @pulumi.getter
20864
+ def metros(self) -> Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegionMetro']]:
20865
+ """
20866
+ (Output)
20867
+ Metros used to explain this blocker in more detail.
20868
+ These are three-letter lowercase strings like "iad". This will be set
20869
+ for some blockers (like NO_ATTACHMENTS_IN_METRO_AND_ZONE) but does
20870
+ not apply to others.
20871
+ """
20872
+ return pulumi.get(self, "metros")
20873
+
20874
+ @property
20875
+ @pulumi.getter
20876
+ def region(self) -> Optional[builtins.str]:
20877
+ """
20878
+ (Output)
20879
+ The name of a region, like "us-central1".
20880
+ """
20881
+ return pulumi.get(self, "region")
20882
+
20883
+
20884
+ @pulumi.output_type
20885
+ class InterconnectAttachmentGroupLogicalStructureRegionMetro(dict):
20886
+ def __init__(__self__, *,
20887
+ facilities: Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility']] = None,
20888
+ metro: Optional[builtins.str] = None):
20889
+ """
20890
+ :param Sequence['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityArgs'] facilities: (Output)
20891
+ The facilities used for this group's Attachments'
20892
+ Interconnects.
20893
+ Structure is documented below.
20894
+ :param builtins.str metro: (Output)
20895
+ The name of the metro, as a three-letter lowercase
20896
+ string like "iad". This is the first component of the location of an
20897
+ Interconnect.
20898
+ """
20899
+ if facilities is not None:
20900
+ pulumi.set(__self__, "facilities", facilities)
20901
+ if metro is not None:
20902
+ pulumi.set(__self__, "metro", metro)
20903
+
20904
+ @property
20905
+ @pulumi.getter
20906
+ def facilities(self) -> Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegionMetroFacility']]:
20907
+ """
20908
+ (Output)
20909
+ The facilities used for this group's Attachments'
20910
+ Interconnects.
20911
+ Structure is documented below.
20912
+ """
20913
+ return pulumi.get(self, "facilities")
20914
+
20915
+ @property
20916
+ @pulumi.getter
20917
+ def metro(self) -> Optional[builtins.str]:
20918
+ """
20919
+ (Output)
20920
+ The name of the metro, as a three-letter lowercase
20921
+ string like "iad". This is the first component of the location of an
20922
+ Interconnect.
20923
+ """
20924
+ return pulumi.get(self, "metro")
20925
+
20926
+
20927
+ @pulumi.output_type
20928
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacility(dict):
20929
+ def __init__(__self__, *,
20930
+ facility: Optional[builtins.str] = None,
20931
+ zones: Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone']] = None):
20932
+ """
20933
+ :param builtins.str facility: (Output)
20934
+ The name of a facility, like "iad-1234".
20935
+ :param Sequence['InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZoneArgs'] zones: (Output)
20936
+ Zones used to explain this blocker in more detail.
20937
+ Format is "zone1" and/or "zone2". This will be set for some blockers
20938
+ (like MISSING_ZONE) but does not apply to others.
20939
+ """
20940
+ if facility is not None:
20941
+ pulumi.set(__self__, "facility", facility)
20942
+ if zones is not None:
20943
+ pulumi.set(__self__, "zones", zones)
20944
+
20945
+ @property
20946
+ @pulumi.getter
20947
+ def facility(self) -> Optional[builtins.str]:
20948
+ """
20949
+ (Output)
20950
+ The name of a facility, like "iad-1234".
20951
+ """
20952
+ return pulumi.get(self, "facility")
20953
+
20954
+ @property
20955
+ @pulumi.getter
20956
+ def zones(self) -> Optional[Sequence['outputs.InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone']]:
20957
+ """
20958
+ (Output)
20959
+ Zones used to explain this blocker in more detail.
20960
+ Format is "zone1" and/or "zone2". This will be set for some blockers
20961
+ (like MISSING_ZONE) but does not apply to others.
20962
+ """
20963
+ return pulumi.get(self, "zones")
20964
+
20965
+
20966
+ @pulumi.output_type
20967
+ class InterconnectAttachmentGroupLogicalStructureRegionMetroFacilityZone(dict):
20968
+ def __init__(__self__, *,
20969
+ attachments: Optional[Sequence[builtins.str]] = None,
20970
+ zone: Optional[builtins.str] = None):
20971
+ """
20972
+ :param Sequence[builtins.str] attachments: (Output)
20973
+ URLs of Attachments in the given zone, to the given
20974
+ region, on Interconnects in the given facility and metro. Every
20975
+ Attachment in the AG has such an entry.
20976
+ :param builtins.str zone: (Output)
20977
+ The zones that Attachments in this group are present
20978
+ in, in the given facilities. This is inherited from their
20979
+ Interconnects.
20980
+ """
20981
+ if attachments is not None:
20982
+ pulumi.set(__self__, "attachments", attachments)
20983
+ if zone is not None:
20984
+ pulumi.set(__self__, "zone", zone)
20985
+
20986
+ @property
20987
+ @pulumi.getter
20988
+ def attachments(self) -> Optional[Sequence[builtins.str]]:
20989
+ """
20990
+ (Output)
20991
+ URLs of Attachments in the given zone, to the given
20992
+ region, on Interconnects in the given facility and metro. Every
20993
+ Attachment in the AG has such an entry.
20994
+ """
20995
+ return pulumi.get(self, "attachments")
20996
+
20997
+ @property
20998
+ @pulumi.getter
20999
+ def zone(self) -> Optional[builtins.str]:
21000
+ """
21001
+ (Output)
21002
+ The zones that Attachments in this group are present
21003
+ in, in the given facilities. This is inherited from their
21004
+ Interconnects.
21005
+ """
21006
+ return pulumi.get(self, "zone")
21007
+
21008
+
20467
21009
  @pulumi.output_type
20468
21010
  class InterconnectAttachmentPrivateInterconnectInfo(dict):
20469
21011
  def __init__(__self__, *,
@@ -20735,6 +21277,484 @@ class InterconnectExpectedOutage(dict):
20735
21277
  return pulumi.get(self, "state")
20736
21278
 
20737
21279
 
21280
+ @pulumi.output_type
21281
+ class InterconnectGroupConfigured(dict):
21282
+ @staticmethod
21283
+ def __key_warning(key: str):
21284
+ suggest = None
21285
+ if key == "topologyCapabilities":
21286
+ suggest = "topology_capabilities"
21287
+
21288
+ if suggest:
21289
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectGroupConfigured. Access the value via the '{suggest}' property getter instead.")
21290
+
21291
+ def __getitem__(self, key: str) -> Any:
21292
+ InterconnectGroupConfigured.__key_warning(key)
21293
+ return super().__getitem__(key)
21294
+
21295
+ def get(self, key: str, default = None) -> Any:
21296
+ InterconnectGroupConfigured.__key_warning(key)
21297
+ return super().get(key, default)
21298
+
21299
+ def __init__(__self__, *,
21300
+ topology_capabilities: Optional[Sequence['outputs.InterconnectGroupConfiguredTopologyCapability']] = None):
21301
+ """
21302
+ :param Sequence['InterconnectGroupConfiguredTopologyCapabilityArgs'] topology_capabilities: (Output)
21303
+ How reliable this topology is configured to be, and why
21304
+ this group does or does not meet the requirements for the intended
21305
+ capability.
21306
+ Structure is documented below.
21307
+ """
21308
+ if topology_capabilities is not None:
21309
+ pulumi.set(__self__, "topology_capabilities", topology_capabilities)
21310
+
21311
+ @property
21312
+ @pulumi.getter(name="topologyCapabilities")
21313
+ def topology_capabilities(self) -> Optional[Sequence['outputs.InterconnectGroupConfiguredTopologyCapability']]:
21314
+ """
21315
+ (Output)
21316
+ How reliable this topology is configured to be, and why
21317
+ this group does or does not meet the requirements for the intended
21318
+ capability.
21319
+ Structure is documented below.
21320
+ """
21321
+ return pulumi.get(self, "topology_capabilities")
21322
+
21323
+
21324
+ @pulumi.output_type
21325
+ class InterconnectGroupConfiguredTopologyCapability(dict):
21326
+ @staticmethod
21327
+ def __key_warning(key: str):
21328
+ suggest = None
21329
+ if key == "intendedCapabilityBlockers":
21330
+ suggest = "intended_capability_blockers"
21331
+ elif key == "supportedSla":
21332
+ suggest = "supported_sla"
21333
+
21334
+ if suggest:
21335
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectGroupConfiguredTopologyCapability. Access the value via the '{suggest}' property getter instead.")
21336
+
21337
+ def __getitem__(self, key: str) -> Any:
21338
+ InterconnectGroupConfiguredTopologyCapability.__key_warning(key)
21339
+ return super().__getitem__(key)
21340
+
21341
+ def get(self, key: str, default = None) -> Any:
21342
+ InterconnectGroupConfiguredTopologyCapability.__key_warning(key)
21343
+ return super().get(key, default)
21344
+
21345
+ def __init__(__self__, *,
21346
+ intended_capability_blockers: Optional[Sequence['outputs.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker']] = None,
21347
+ supported_sla: Optional[builtins.str] = None):
21348
+ """
21349
+ :param Sequence['InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlockerArgs'] intended_capability_blockers: (Output)
21350
+ Reasons why configuration.topologyCapability.sla differs
21351
+ from intent.topologyCapability. This list is empty if and only if those
21352
+ are the same.
21353
+ Structure is documented below.
21354
+ :param builtins.str supported_sla: (Output)
21355
+ Which level of reliability this group is configured to
21356
+ support.
21357
+ """
21358
+ if intended_capability_blockers is not None:
21359
+ pulumi.set(__self__, "intended_capability_blockers", intended_capability_blockers)
21360
+ if supported_sla is not None:
21361
+ pulumi.set(__self__, "supported_sla", supported_sla)
21362
+
21363
+ @property
21364
+ @pulumi.getter(name="intendedCapabilityBlockers")
21365
+ def intended_capability_blockers(self) -> Optional[Sequence['outputs.InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker']]:
21366
+ """
21367
+ (Output)
21368
+ Reasons why configuration.topologyCapability.sla differs
21369
+ from intent.topologyCapability. This list is empty if and only if those
21370
+ are the same.
21371
+ Structure is documented below.
21372
+ """
21373
+ return pulumi.get(self, "intended_capability_blockers")
21374
+
21375
+ @property
21376
+ @pulumi.getter(name="supportedSla")
21377
+ def supported_sla(self) -> Optional[builtins.str]:
21378
+ """
21379
+ (Output)
21380
+ Which level of reliability this group is configured to
21381
+ support.
21382
+ """
21383
+ return pulumi.get(self, "supported_sla")
21384
+
21385
+
21386
+ @pulumi.output_type
21387
+ class InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker(dict):
21388
+ @staticmethod
21389
+ def __key_warning(key: str):
21390
+ suggest = None
21391
+ if key == "blockerType":
21392
+ suggest = "blocker_type"
21393
+ elif key == "documentationLink":
21394
+ suggest = "documentation_link"
21395
+
21396
+ if suggest:
21397
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker. Access the value via the '{suggest}' property getter instead.")
21398
+
21399
+ def __getitem__(self, key: str) -> Any:
21400
+ InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker.__key_warning(key)
21401
+ return super().__getitem__(key)
21402
+
21403
+ def get(self, key: str, default = None) -> Any:
21404
+ InterconnectGroupConfiguredTopologyCapabilityIntendedCapabilityBlocker.__key_warning(key)
21405
+ return super().get(key, default)
21406
+
21407
+ def __init__(__self__, *,
21408
+ blocker_type: Optional[builtins.str] = None,
21409
+ documentation_link: Optional[builtins.str] = None,
21410
+ explanation: Optional[builtins.str] = None,
21411
+ facilities: Optional[Sequence[builtins.str]] = None,
21412
+ interconnects: Optional[Sequence[builtins.str]] = None,
21413
+ metros: Optional[Sequence[builtins.str]] = None,
21414
+ zones: Optional[Sequence[builtins.str]] = None):
21415
+ """
21416
+ :param builtins.str blocker_type: (Output)
21417
+ The category of an unmet SLA requirement. The Intended
21418
+ SLA Blockers section below explains this field and how it relates to
21419
+ other fields in intendedCapabilityBlockers.
21420
+ :param builtins.str documentation_link: (Output)
21421
+ The url of Google Cloud public documentation explaining
21422
+ this requirement. This is set for every type of requirement.
21423
+ :param builtins.str explanation: (Output)
21424
+ A human-readable explanation of this requirement and
21425
+ why it's not met. This is set for every type of requirement.
21426
+ :param Sequence[builtins.str] facilities: (Output)
21427
+ Facilities used to explain this blocker in more detail.
21428
+ Like physicalStructure.metros.facilities.facility, this is a numeric
21429
+ string like "5467".
21430
+ :param Sequence[builtins.str] interconnects: (Output)
21431
+ Interconnects used to explain this blocker in more
21432
+ detail.
21433
+ :param Sequence[builtins.str] metros: (Output)
21434
+ Metros used to explain this blocker in more detail.
21435
+ These are three-letter lowercase strings like "iad". A blocker like
21436
+ INCOMPATIBLE_METROS will specify the problematic metros in this
21437
+ field.
21438
+ :param Sequence[builtins.str] zones: (Output)
21439
+ Zones used to explain this blocker in more detail.
21440
+ Zone names are "zone1" and/or "zone2".
21441
+ """
21442
+ if blocker_type is not None:
21443
+ pulumi.set(__self__, "blocker_type", blocker_type)
21444
+ if documentation_link is not None:
21445
+ pulumi.set(__self__, "documentation_link", documentation_link)
21446
+ if explanation is not None:
21447
+ pulumi.set(__self__, "explanation", explanation)
21448
+ if facilities is not None:
21449
+ pulumi.set(__self__, "facilities", facilities)
21450
+ if interconnects is not None:
21451
+ pulumi.set(__self__, "interconnects", interconnects)
21452
+ if metros is not None:
21453
+ pulumi.set(__self__, "metros", metros)
21454
+ if zones is not None:
21455
+ pulumi.set(__self__, "zones", zones)
21456
+
21457
+ @property
21458
+ @pulumi.getter(name="blockerType")
21459
+ def blocker_type(self) -> Optional[builtins.str]:
21460
+ """
21461
+ (Output)
21462
+ The category of an unmet SLA requirement. The Intended
21463
+ SLA Blockers section below explains this field and how it relates to
21464
+ other fields in intendedCapabilityBlockers.
21465
+ """
21466
+ return pulumi.get(self, "blocker_type")
21467
+
21468
+ @property
21469
+ @pulumi.getter(name="documentationLink")
21470
+ def documentation_link(self) -> Optional[builtins.str]:
21471
+ """
21472
+ (Output)
21473
+ The url of Google Cloud public documentation explaining
21474
+ this requirement. This is set for every type of requirement.
21475
+ """
21476
+ return pulumi.get(self, "documentation_link")
21477
+
21478
+ @property
21479
+ @pulumi.getter
21480
+ def explanation(self) -> Optional[builtins.str]:
21481
+ """
21482
+ (Output)
21483
+ A human-readable explanation of this requirement and
21484
+ why it's not met. This is set for every type of requirement.
21485
+ """
21486
+ return pulumi.get(self, "explanation")
21487
+
21488
+ @property
21489
+ @pulumi.getter
21490
+ def facilities(self) -> Optional[Sequence[builtins.str]]:
21491
+ """
21492
+ (Output)
21493
+ Facilities used to explain this blocker in more detail.
21494
+ Like physicalStructure.metros.facilities.facility, this is a numeric
21495
+ string like "5467".
21496
+ """
21497
+ return pulumi.get(self, "facilities")
21498
+
21499
+ @property
21500
+ @pulumi.getter
21501
+ def interconnects(self) -> Optional[Sequence[builtins.str]]:
21502
+ """
21503
+ (Output)
21504
+ Interconnects used to explain this blocker in more
21505
+ detail.
21506
+ """
21507
+ return pulumi.get(self, "interconnects")
21508
+
21509
+ @property
21510
+ @pulumi.getter
21511
+ def metros(self) -> Optional[Sequence[builtins.str]]:
21512
+ """
21513
+ (Output)
21514
+ Metros used to explain this blocker in more detail.
21515
+ These are three-letter lowercase strings like "iad". A blocker like
21516
+ INCOMPATIBLE_METROS will specify the problematic metros in this
21517
+ field.
21518
+ """
21519
+ return pulumi.get(self, "metros")
21520
+
21521
+ @property
21522
+ @pulumi.getter
21523
+ def zones(self) -> Optional[Sequence[builtins.str]]:
21524
+ """
21525
+ (Output)
21526
+ Zones used to explain this blocker in more detail.
21527
+ Zone names are "zone1" and/or "zone2".
21528
+ """
21529
+ return pulumi.get(self, "zones")
21530
+
21531
+
21532
+ @pulumi.output_type
21533
+ class InterconnectGroupIntent(dict):
21534
+ @staticmethod
21535
+ def __key_warning(key: str):
21536
+ suggest = None
21537
+ if key == "topologyCapability":
21538
+ suggest = "topology_capability"
21539
+
21540
+ if suggest:
21541
+ pulumi.log.warn(f"Key '{key}' not found in InterconnectGroupIntent. Access the value via the '{suggest}' property getter instead.")
21542
+
21543
+ def __getitem__(self, key: str) -> Any:
21544
+ InterconnectGroupIntent.__key_warning(key)
21545
+ return super().__getitem__(key)
21546
+
21547
+ def get(self, key: str, default = None) -> Any:
21548
+ InterconnectGroupIntent.__key_warning(key)
21549
+ return super().get(key, default)
21550
+
21551
+ def __init__(__self__, *,
21552
+ topology_capability: Optional[builtins.str] = None):
21553
+ """
21554
+ :param builtins.str topology_capability: The reliability the user intends this group to be capable of, in terms
21555
+ of the Interconnect product SLAs.
21556
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
21557
+
21558
+ - - -
21559
+ """
21560
+ if topology_capability is not None:
21561
+ pulumi.set(__self__, "topology_capability", topology_capability)
21562
+
21563
+ @property
21564
+ @pulumi.getter(name="topologyCapability")
21565
+ def topology_capability(self) -> Optional[builtins.str]:
21566
+ """
21567
+ The reliability the user intends this group to be capable of, in terms
21568
+ of the Interconnect product SLAs.
21569
+ Possible values are: `PRODUCTION_NON_CRITICAL`, `PRODUCTION_CRITICAL`, `NO_SLA`, `AVAILABILITY_SLA_UNSPECIFIED`.
21570
+
21571
+ - - -
21572
+ """
21573
+ return pulumi.get(self, "topology_capability")
21574
+
21575
+
21576
+ @pulumi.output_type
21577
+ class InterconnectGroupInterconnect(dict):
21578
+ def __init__(__self__, *,
21579
+ name: builtins.str,
21580
+ interconnect: Optional[builtins.str] = None):
21581
+ """
21582
+ :param builtins.str name: The identifier for this object. Format specified above.
21583
+ :param builtins.str interconnect: The URL of an Interconnect in this group. All Interconnects in the group are unique.
21584
+ """
21585
+ pulumi.set(__self__, "name", name)
21586
+ if interconnect is not None:
21587
+ pulumi.set(__self__, "interconnect", interconnect)
21588
+
21589
+ @property
21590
+ @pulumi.getter
21591
+ def name(self) -> builtins.str:
21592
+ """
21593
+ The identifier for this object. Format specified above.
21594
+ """
21595
+ return pulumi.get(self, "name")
21596
+
21597
+ @property
21598
+ @pulumi.getter
21599
+ def interconnect(self) -> Optional[builtins.str]:
21600
+ """
21601
+ The URL of an Interconnect in this group. All Interconnects in the group are unique.
21602
+ """
21603
+ return pulumi.get(self, "interconnect")
21604
+
21605
+
21606
+ @pulumi.output_type
21607
+ class InterconnectGroupPhysicalStructure(dict):
21608
+ def __init__(__self__, *,
21609
+ metros: Optional[Sequence['outputs.InterconnectGroupPhysicalStructureMetro']] = None):
21610
+ """
21611
+ :param Sequence['InterconnectGroupPhysicalStructureMetroArgs'] metros: (Output)
21612
+ Metros used to explain this blocker in more detail.
21613
+ These are three-letter lowercase strings like "iad". A blocker like
21614
+ INCOMPATIBLE_METROS will specify the problematic metros in this
21615
+ field.
21616
+ """
21617
+ if metros is not None:
21618
+ pulumi.set(__self__, "metros", metros)
21619
+
21620
+ @property
21621
+ @pulumi.getter
21622
+ def metros(self) -> Optional[Sequence['outputs.InterconnectGroupPhysicalStructureMetro']]:
21623
+ """
21624
+ (Output)
21625
+ Metros used to explain this blocker in more detail.
21626
+ These are three-letter lowercase strings like "iad". A blocker like
21627
+ INCOMPATIBLE_METROS will specify the problematic metros in this
21628
+ field.
21629
+ """
21630
+ return pulumi.get(self, "metros")
21631
+
21632
+
21633
+ @pulumi.output_type
21634
+ class InterconnectGroupPhysicalStructureMetro(dict):
21635
+ def __init__(__self__, *,
21636
+ facilities: Optional[Sequence['outputs.InterconnectGroupPhysicalStructureMetroFacility']] = None,
21637
+ metro: Optional[builtins.str] = None):
21638
+ """
21639
+ :param Sequence['InterconnectGroupPhysicalStructureMetroFacilityArgs'] facilities: (Output)
21640
+ Facilities used to explain this blocker in more detail.
21641
+ Like physicalStructure.metros.facilities.facility, this is a numeric
21642
+ string like "5467".
21643
+ :param builtins.str metro: (Output)
21644
+ The name of the metro, as a three-letter lowercase string
21645
+ like "iad". This is the first component of the location of
21646
+ Interconnects underneath this.
21647
+ """
21648
+ if facilities is not None:
21649
+ pulumi.set(__self__, "facilities", facilities)
21650
+ if metro is not None:
21651
+ pulumi.set(__self__, "metro", metro)
21652
+
21653
+ @property
21654
+ @pulumi.getter
21655
+ def facilities(self) -> Optional[Sequence['outputs.InterconnectGroupPhysicalStructureMetroFacility']]:
21656
+ """
21657
+ (Output)
21658
+ Facilities used to explain this blocker in more detail.
21659
+ Like physicalStructure.metros.facilities.facility, this is a numeric
21660
+ string like "5467".
21661
+ """
21662
+ return pulumi.get(self, "facilities")
21663
+
21664
+ @property
21665
+ @pulumi.getter
21666
+ def metro(self) -> Optional[builtins.str]:
21667
+ """
21668
+ (Output)
21669
+ The name of the metro, as a three-letter lowercase string
21670
+ like "iad". This is the first component of the location of
21671
+ Interconnects underneath this.
21672
+ """
21673
+ return pulumi.get(self, "metro")
21674
+
21675
+
21676
+ @pulumi.output_type
21677
+ class InterconnectGroupPhysicalStructureMetroFacility(dict):
21678
+ def __init__(__self__, *,
21679
+ facility: Optional[builtins.str] = None,
21680
+ zones: Optional[Sequence['outputs.InterconnectGroupPhysicalStructureMetroFacilityZone']] = None):
21681
+ """
21682
+ :param builtins.str facility: (Output)
21683
+ The ID of this facility, as a numeric string like
21684
+ "5467". This is the third component of the location of Interconnects
21685
+ in this facility.
21686
+ :param Sequence['InterconnectGroupPhysicalStructureMetroFacilityZoneArgs'] zones: (Output)
21687
+ Zones used to explain this blocker in more detail.
21688
+ Zone names are "zone1" and/or "zone2".
21689
+ """
21690
+ if facility is not None:
21691
+ pulumi.set(__self__, "facility", facility)
21692
+ if zones is not None:
21693
+ pulumi.set(__self__, "zones", zones)
21694
+
21695
+ @property
21696
+ @pulumi.getter
21697
+ def facility(self) -> Optional[builtins.str]:
21698
+ """
21699
+ (Output)
21700
+ The ID of this facility, as a numeric string like
21701
+ "5467". This is the third component of the location of Interconnects
21702
+ in this facility.
21703
+ """
21704
+ return pulumi.get(self, "facility")
21705
+
21706
+ @property
21707
+ @pulumi.getter
21708
+ def zones(self) -> Optional[Sequence['outputs.InterconnectGroupPhysicalStructureMetroFacilityZone']]:
21709
+ """
21710
+ (Output)
21711
+ Zones used to explain this blocker in more detail.
21712
+ Zone names are "zone1" and/or "zone2".
21713
+ """
21714
+ return pulumi.get(self, "zones")
21715
+
21716
+
21717
+ @pulumi.output_type
21718
+ class InterconnectGroupPhysicalStructureMetroFacilityZone(dict):
21719
+ def __init__(__self__, *,
21720
+ interconnects: Optional[Sequence[builtins.str]] = None,
21721
+ zone: Optional[builtins.str] = None):
21722
+ """
21723
+ :param Sequence[builtins.str] interconnects: (Output)
21724
+ Interconnects used to explain this blocker in more
21725
+ detail.
21726
+ :param builtins.str zone: (Output)
21727
+ The name of the zone, either "zone1" or "zone2".
21728
+ This is the second component of the location of Interconnects in
21729
+ this facility.
21730
+ """
21731
+ if interconnects is not None:
21732
+ pulumi.set(__self__, "interconnects", interconnects)
21733
+ if zone is not None:
21734
+ pulumi.set(__self__, "zone", zone)
21735
+
21736
+ @property
21737
+ @pulumi.getter
21738
+ def interconnects(self) -> Optional[Sequence[builtins.str]]:
21739
+ """
21740
+ (Output)
21741
+ Interconnects used to explain this blocker in more
21742
+ detail.
21743
+ """
21744
+ return pulumi.get(self, "interconnects")
21745
+
21746
+ @property
21747
+ @pulumi.getter
21748
+ def zone(self) -> Optional[builtins.str]:
21749
+ """
21750
+ (Output)
21751
+ The name of the zone, either "zone1" or "zone2".
21752
+ This is the second component of the location of Interconnects in
21753
+ this facility.
21754
+ """
21755
+ return pulumi.get(self, "zone")
21756
+
21757
+
20738
21758
  @pulumi.output_type
20739
21759
  class InterconnectMacsec(dict):
20740
21760
  @staticmethod
@@ -43770,6 +44790,26 @@ class RouterNatLogConfig(dict):
43770
44790
  return pulumi.get(self, "filter")
43771
44791
 
43772
44792
 
44793
+ @pulumi.output_type
44794
+ class RouterNatNat64Subnetwork(dict):
44795
+ def __init__(__self__, *,
44796
+ name: builtins.str):
44797
+ """
44798
+ :param builtins.str name: Name of the NAT service. The name must be 1-63 characters long and
44799
+ comply with RFC1035.
44800
+ """
44801
+ pulumi.set(__self__, "name", name)
44802
+
44803
+ @property
44804
+ @pulumi.getter
44805
+ def name(self) -> builtins.str:
44806
+ """
44807
+ Name of the NAT service. The name must be 1-63 characters long and
44808
+ comply with RFC1035.
44809
+ """
44810
+ return pulumi.get(self, "name")
44811
+
44812
+
43773
44813
  @pulumi.output_type
43774
44814
  class RouterNatRule(dict):
43775
44815
  @staticmethod
@@ -43978,7 +45018,7 @@ class RouterNatSubnetwork(dict):
43978
45018
  source_ip_ranges_to_nats: Sequence[builtins.str],
43979
45019
  secondary_ip_range_names: Optional[Sequence[builtins.str]] = None):
43980
45020
  """
43981
- :param builtins.str name: Self-link of subnetwork to NAT
45021
+ :param builtins.str name: Self-link of the subnetwork resource that will use NAT64
43982
45022
  :param Sequence[builtins.str] source_ip_ranges_to_nats: List of options for which source IPs in the subnetwork
43983
45023
  should have NAT enabled. Supported values include:
43984
45024
  `ALL_IP_RANGES`, `LIST_OF_SECONDARY_IP_RANGES`,
@@ -43987,6 +45027,8 @@ class RouterNatSubnetwork(dict):
43987
45027
  to use NAT. This can be populated only if
43988
45028
  `LIST_OF_SECONDARY_IP_RANGES` is one of the values in
43989
45029
  sourceIpRangesToNat
45030
+
45031
+ <a name="nested_nat64_subnetwork"></a>The `nat64_subnetwork` block supports:
43990
45032
  """
43991
45033
  pulumi.set(__self__, "name", name)
43992
45034
  pulumi.set(__self__, "source_ip_ranges_to_nats", source_ip_ranges_to_nats)
@@ -43997,7 +45039,7 @@ class RouterNatSubnetwork(dict):
43997
45039
  @pulumi.getter
43998
45040
  def name(self) -> builtins.str:
43999
45041
  """
44000
- Self-link of subnetwork to NAT
45042
+ Self-link of the subnetwork resource that will use NAT64
44001
45043
  """
44002
45044
  return pulumi.get(self, "name")
44003
45045
 
@@ -44020,6 +45062,8 @@ class RouterNatSubnetwork(dict):
44020
45062
  to use NAT. This can be populated only if
44021
45063
  `LIST_OF_SECONDARY_IP_RANGES` is one of the values in
44022
45064
  sourceIpRangesToNat
45065
+
45066
+ <a name="nested_nat64_subnetwork"></a>The `nat64_subnetwork` block supports:
44023
45067
  """
44024
45068
  return pulumi.get(self, "secondary_ip_range_names")
44025
45069
 
@@ -47516,6 +48560,79 @@ class SnapshotIamMemberCondition(dict):
47516
48560
  return pulumi.get(self, "description")
47517
48561
 
47518
48562
 
48563
+ @pulumi.output_type
48564
+ class SnapshotSettingsStorageLocation(dict):
48565
+ def __init__(__self__, *,
48566
+ policy: builtins.str,
48567
+ locations: Optional[Sequence['outputs.SnapshotSettingsStorageLocationLocation']] = None):
48568
+ """
48569
+ :param builtins.str policy: The chosen location policy
48570
+ Possible values are: `NEAREST_MULTI_REGION`, `LOCAL_REGION`, `SPECIFIC_LOCATIONS`.
48571
+ :param Sequence['SnapshotSettingsStorageLocationLocationArgs'] locations: When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the
48572
+ locations listed in this field. Keys are Cloud Storage bucket locations.
48573
+ Only one location can be specified.
48574
+ Structure is documented below.
48575
+ """
48576
+ pulumi.set(__self__, "policy", policy)
48577
+ if locations is not None:
48578
+ pulumi.set(__self__, "locations", locations)
48579
+
48580
+ @property
48581
+ @pulumi.getter
48582
+ def policy(self) -> builtins.str:
48583
+ """
48584
+ The chosen location policy
48585
+ Possible values are: `NEAREST_MULTI_REGION`, `LOCAL_REGION`, `SPECIFIC_LOCATIONS`.
48586
+ """
48587
+ return pulumi.get(self, "policy")
48588
+
48589
+ @property
48590
+ @pulumi.getter
48591
+ def locations(self) -> Optional[Sequence['outputs.SnapshotSettingsStorageLocationLocation']]:
48592
+ """
48593
+ When the policy is SPECIFIC_LOCATIONS, snapshots will be stored in the
48594
+ locations listed in this field. Keys are Cloud Storage bucket locations.
48595
+ Only one location can be specified.
48596
+ Structure is documented below.
48597
+ """
48598
+ return pulumi.get(self, "locations")
48599
+
48600
+
48601
+ @pulumi.output_type
48602
+ class SnapshotSettingsStorageLocationLocation(dict):
48603
+ def __init__(__self__, *,
48604
+ location: builtins.str,
48605
+ name: builtins.str):
48606
+ """
48607
+ :param builtins.str location: The identifier for this object. Format specified above.
48608
+ :param builtins.str name: Name of the location. It should be one of the Cloud Storage buckets.
48609
+ Only one location can be specified. (should match location)
48610
+
48611
+ - - -
48612
+ """
48613
+ pulumi.set(__self__, "location", location)
48614
+ pulumi.set(__self__, "name", name)
48615
+
48616
+ @property
48617
+ @pulumi.getter
48618
+ def location(self) -> builtins.str:
48619
+ """
48620
+ The identifier for this object. Format specified above.
48621
+ """
48622
+ return pulumi.get(self, "location")
48623
+
48624
+ @property
48625
+ @pulumi.getter
48626
+ def name(self) -> builtins.str:
48627
+ """
48628
+ Name of the location. It should be one of the Cloud Storage buckets.
48629
+ Only one location can be specified. (should match location)
48630
+
48631
+ - - -
48632
+ """
48633
+ return pulumi.get(self, "name")
48634
+
48635
+
47519
48636
  @pulumi.output_type
47520
48637
  class SnapshotSnapshotEncryptionKey(dict):
47521
48638
  @staticmethod
@@ -53478,6 +54595,10 @@ class URLMapPathMatcherRouteRule(dict):
53478
54595
  suggest = "custom_error_response_policy"
53479
54596
  elif key == "headerAction":
53480
54597
  suggest = "header_action"
54598
+ elif key == "httpFilterConfigs":
54599
+ suggest = "http_filter_configs"
54600
+ elif key == "httpFilterMetadatas":
54601
+ suggest = "http_filter_metadatas"
53481
54602
  elif key == "matchRules":
53482
54603
  suggest = "match_rules"
53483
54604
  elif key == "routeAction":
@@ -53500,6 +54621,8 @@ class URLMapPathMatcherRouteRule(dict):
53500
54621
  priority: builtins.int,
53501
54622
  custom_error_response_policy: Optional['outputs.URLMapPathMatcherRouteRuleCustomErrorResponsePolicy'] = None,
53502
54623
  header_action: Optional['outputs.URLMapPathMatcherRouteRuleHeaderAction'] = None,
54624
+ http_filter_configs: Optional[Sequence['outputs.URLMapPathMatcherRouteRuleHttpFilterConfig']] = None,
54625
+ http_filter_metadatas: Optional[Sequence['outputs.URLMapPathMatcherRouteRuleHttpFilterMetadata']] = None,
53503
54626
  match_rules: Optional[Sequence['outputs.URLMapPathMatcherRouteRuleMatchRule']] = None,
53504
54627
  route_action: Optional['outputs.URLMapPathMatcherRouteRuleRouteAction'] = None,
53505
54628
  service: Optional[builtins.str] = None,
@@ -53525,6 +54648,16 @@ class URLMapPathMatcherRouteRule(dict):
53525
54648
  the matching pathMatchers[].headerAction and after pathMatchers[].routeRules[].r
53526
54649
  outeAction.weightedBackendService.backendServiceWeightAction[].headerAction
53527
54650
  Structure is documented below.
54651
+ :param Sequence['URLMapPathMatcherRouteRuleHttpFilterConfigArgs'] http_filter_configs: Outbound route specific configuration for networkservices.HttpFilter resources enabled by Traffic Director.
54652
+ httpFilterConfigs only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
54653
+ See ForwardingRule for more details.
54654
+ Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
54655
+ Structure is documented below.
54656
+ :param Sequence['URLMapPathMatcherRouteRuleHttpFilterMetadataArgs'] http_filter_metadatas: Outbound route specific metadata supplied to networkservices.HttpFilter resources enabled by Traffic Director.
54657
+ httpFilterMetadata only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
54658
+ See ForwardingRule for more details.
54659
+ Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
54660
+ Structure is documented below.
53528
54661
  :param Sequence['URLMapPathMatcherRouteRuleMatchRuleArgs'] match_rules: The rules for determining a match.
53529
54662
  Structure is documented below.
53530
54663
  :param 'URLMapPathMatcherRouteRuleRouteActionArgs' route_action: In response to a matching matchRule, the load balancer performs advanced routing
@@ -53551,6 +54684,10 @@ class URLMapPathMatcherRouteRule(dict):
53551
54684
  pulumi.set(__self__, "custom_error_response_policy", custom_error_response_policy)
53552
54685
  if header_action is not None:
53553
54686
  pulumi.set(__self__, "header_action", header_action)
54687
+ if http_filter_configs is not None:
54688
+ pulumi.set(__self__, "http_filter_configs", http_filter_configs)
54689
+ if http_filter_metadatas is not None:
54690
+ pulumi.set(__self__, "http_filter_metadatas", http_filter_metadatas)
53554
54691
  if match_rules is not None:
53555
54692
  pulumi.set(__self__, "match_rules", match_rules)
53556
54693
  if route_action is not None:
@@ -53601,6 +54738,30 @@ class URLMapPathMatcherRouteRule(dict):
53601
54738
  """
53602
54739
  return pulumi.get(self, "header_action")
53603
54740
 
54741
+ @property
54742
+ @pulumi.getter(name="httpFilterConfigs")
54743
+ def http_filter_configs(self) -> Optional[Sequence['outputs.URLMapPathMatcherRouteRuleHttpFilterConfig']]:
54744
+ """
54745
+ Outbound route specific configuration for networkservices.HttpFilter resources enabled by Traffic Director.
54746
+ httpFilterConfigs only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
54747
+ See ForwardingRule for more details.
54748
+ Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
54749
+ Structure is documented below.
54750
+ """
54751
+ return pulumi.get(self, "http_filter_configs")
54752
+
54753
+ @property
54754
+ @pulumi.getter(name="httpFilterMetadatas")
54755
+ def http_filter_metadatas(self) -> Optional[Sequence['outputs.URLMapPathMatcherRouteRuleHttpFilterMetadata']]:
54756
+ """
54757
+ Outbound route specific metadata supplied to networkservices.HttpFilter resources enabled by Traffic Director.
54758
+ httpFilterMetadata only applies for load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
54759
+ See ForwardingRule for more details.
54760
+ Not supported when the URL map is bound to a target gRPC proxy that has validateForProxyless field set to true.
54761
+ Structure is documented below.
54762
+ """
54763
+ return pulumi.get(self, "http_filter_metadatas")
54764
+
53604
54765
  @property
53605
54766
  @pulumi.getter(name="matchRules")
53606
54767
  def match_rules(self) -> Optional[Sequence['outputs.URLMapPathMatcherRouteRuleMatchRule']]:
@@ -54004,6 +55165,142 @@ class URLMapPathMatcherRouteRuleHeaderActionResponseHeadersToAdd(dict):
54004
55165
  return pulumi.get(self, "replace")
54005
55166
 
54006
55167
 
55168
+ @pulumi.output_type
55169
+ class URLMapPathMatcherRouteRuleHttpFilterConfig(dict):
55170
+ @staticmethod
55171
+ def __key_warning(key: str):
55172
+ suggest = None
55173
+ if key == "configTypeUrl":
55174
+ suggest = "config_type_url"
55175
+ elif key == "filterName":
55176
+ suggest = "filter_name"
55177
+
55178
+ if suggest:
55179
+ pulumi.log.warn(f"Key '{key}' not found in URLMapPathMatcherRouteRuleHttpFilterConfig. Access the value via the '{suggest}' property getter instead.")
55180
+
55181
+ def __getitem__(self, key: str) -> Any:
55182
+ URLMapPathMatcherRouteRuleHttpFilterConfig.__key_warning(key)
55183
+ return super().__getitem__(key)
55184
+
55185
+ def get(self, key: str, default = None) -> Any:
55186
+ URLMapPathMatcherRouteRuleHttpFilterConfig.__key_warning(key)
55187
+ return super().get(key, default)
55188
+
55189
+ def __init__(__self__, *,
55190
+ config: Optional[builtins.str] = None,
55191
+ config_type_url: Optional[builtins.str] = None,
55192
+ filter_name: Optional[builtins.str] = None):
55193
+ """
55194
+ :param builtins.str config: The configuration needed to enable the networkservices.HttpFilter resource.
55195
+ The configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl
55196
+ :param builtins.str config_type_url: The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings,
55197
+ for example: type.googleapis.com/google.protobuf.Struct
55198
+ :param builtins.str filter_name: Name of the networkservices.HttpFilter resource this configuration belongs to.
55199
+ This name must be known to the xDS client. Example: envoy.wasm
55200
+ """
55201
+ if config is not None:
55202
+ pulumi.set(__self__, "config", config)
55203
+ if config_type_url is not None:
55204
+ pulumi.set(__self__, "config_type_url", config_type_url)
55205
+ if filter_name is not None:
55206
+ pulumi.set(__self__, "filter_name", filter_name)
55207
+
55208
+ @property
55209
+ @pulumi.getter
55210
+ def config(self) -> Optional[builtins.str]:
55211
+ """
55212
+ The configuration needed to enable the networkservices.HttpFilter resource.
55213
+ The configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl
55214
+ """
55215
+ return pulumi.get(self, "config")
55216
+
55217
+ @property
55218
+ @pulumi.getter(name="configTypeUrl")
55219
+ def config_type_url(self) -> Optional[builtins.str]:
55220
+ """
55221
+ The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings,
55222
+ for example: type.googleapis.com/google.protobuf.Struct
55223
+ """
55224
+ return pulumi.get(self, "config_type_url")
55225
+
55226
+ @property
55227
+ @pulumi.getter(name="filterName")
55228
+ def filter_name(self) -> Optional[builtins.str]:
55229
+ """
55230
+ Name of the networkservices.HttpFilter resource this configuration belongs to.
55231
+ This name must be known to the xDS client. Example: envoy.wasm
55232
+ """
55233
+ return pulumi.get(self, "filter_name")
55234
+
55235
+
55236
+ @pulumi.output_type
55237
+ class URLMapPathMatcherRouteRuleHttpFilterMetadata(dict):
55238
+ @staticmethod
55239
+ def __key_warning(key: str):
55240
+ suggest = None
55241
+ if key == "configTypeUrl":
55242
+ suggest = "config_type_url"
55243
+ elif key == "filterName":
55244
+ suggest = "filter_name"
55245
+
55246
+ if suggest:
55247
+ pulumi.log.warn(f"Key '{key}' not found in URLMapPathMatcherRouteRuleHttpFilterMetadata. Access the value via the '{suggest}' property getter instead.")
55248
+
55249
+ def __getitem__(self, key: str) -> Any:
55250
+ URLMapPathMatcherRouteRuleHttpFilterMetadata.__key_warning(key)
55251
+ return super().__getitem__(key)
55252
+
55253
+ def get(self, key: str, default = None) -> Any:
55254
+ URLMapPathMatcherRouteRuleHttpFilterMetadata.__key_warning(key)
55255
+ return super().get(key, default)
55256
+
55257
+ def __init__(__self__, *,
55258
+ config: Optional[builtins.str] = None,
55259
+ config_type_url: Optional[builtins.str] = None,
55260
+ filter_name: Optional[builtins.str] = None):
55261
+ """
55262
+ :param builtins.str config: The configuration needed to enable the networkservices.HttpFilter resource.
55263
+ The configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl
55264
+ :param builtins.str config_type_url: The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings,
55265
+ for example: type.googleapis.com/google.protobuf.Struct
55266
+ :param builtins.str filter_name: Name of the networkservices.HttpFilter resource this configuration belongs to.
55267
+ This name must be known to the xDS client. Example: envoy.wasm
55268
+ """
55269
+ if config is not None:
55270
+ pulumi.set(__self__, "config", config)
55271
+ if config_type_url is not None:
55272
+ pulumi.set(__self__, "config_type_url", config_type_url)
55273
+ if filter_name is not None:
55274
+ pulumi.set(__self__, "filter_name", filter_name)
55275
+
55276
+ @property
55277
+ @pulumi.getter
55278
+ def config(self) -> Optional[builtins.str]:
55279
+ """
55280
+ The configuration needed to enable the networkservices.HttpFilter resource.
55281
+ The configuration must be YAML formatted and only contain fields defined in the protobuf identified in configTypeUrl
55282
+ """
55283
+ return pulumi.get(self, "config")
55284
+
55285
+ @property
55286
+ @pulumi.getter(name="configTypeUrl")
55287
+ def config_type_url(self) -> Optional[builtins.str]:
55288
+ """
55289
+ The fully qualified versioned proto3 type url of the protobuf that the filter expects for its contextual settings,
55290
+ for example: type.googleapis.com/google.protobuf.Struct
55291
+ """
55292
+ return pulumi.get(self, "config_type_url")
55293
+
55294
+ @property
55295
+ @pulumi.getter(name="filterName")
55296
+ def filter_name(self) -> Optional[builtins.str]:
55297
+ """
55298
+ Name of the networkservices.HttpFilter resource this configuration belongs to.
55299
+ This name must be known to the xDS client. Example: envoy.wasm
55300
+ """
55301
+ return pulumi.get(self, "filter_name")
55302
+
55303
+
54007
55304
  @pulumi.output_type
54008
55305
  class URLMapPathMatcherRouteRuleMatchRule(dict):
54009
55306
  @staticmethod
@@ -57423,6 +58720,7 @@ class GetBackendServiceLogConfigResult(dict):
57423
58720
  :param Sequence[builtins.str] optional_fields: This field can only be specified if logging is enabled for this backend service and "logConfig.optionalMode"
57424
58721
  was set to CUSTOM. Contains a list of optional fields you want to include in the logs.
57425
58722
  For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace
58723
+ For example: orca_load_report, tls.protocol
57426
58724
  :param builtins.str optional_mode: Specifies the optional logging mode for the load balancer traffic.
57427
58725
  Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM. Possible values: ["INCLUDE_ALL_OPTIONAL", "EXCLUDE_ALL_OPTIONAL", "CUSTOM"]
57428
58726
  :param builtins.float sample_rate: This field can only be specified if logging is enabled for this backend service. The value of
@@ -57450,6 +58748,7 @@ class GetBackendServiceLogConfigResult(dict):
57450
58748
  This field can only be specified if logging is enabled for this backend service and "logConfig.optionalMode"
57451
58749
  was set to CUSTOM. Contains a list of optional fields you want to include in the logs.
57452
58750
  For example: serverInstance, serverGkeDetails.cluster, serverGkeDetails.pod.podNamespace
58751
+ For example: orca_load_report, tls.protocol
57453
58752
  """
57454
58753
  return pulumi.get(self, "optional_fields")
57455
58754
 
@@ -69472,6 +70771,26 @@ class GetRouterNatLogConfigResult(dict):
69472
70771
  return pulumi.get(self, "filter")
69473
70772
 
69474
70773
 
70774
+ @pulumi.output_type
70775
+ class GetRouterNatNat64SubnetworkResult(dict):
70776
+ def __init__(__self__, *,
70777
+ name: builtins.str):
70778
+ """
70779
+ :param builtins.str name: Name of the NAT service. The name must be 1-63 characters long and
70780
+ comply with RFC1035.
70781
+ """
70782
+ pulumi.set(__self__, "name", name)
70783
+
70784
+ @property
70785
+ @pulumi.getter
70786
+ def name(self) -> builtins.str:
70787
+ """
70788
+ Name of the NAT service. The name must be 1-63 characters long and
70789
+ comply with RFC1035.
70790
+ """
70791
+ return pulumi.get(self, "name")
70792
+
70793
+
69475
70794
  @pulumi.output_type
69476
70795
  class GetRouterNatRuleResult(dict):
69477
70796
  def __init__(__self__, *,