pulumi-gcp 8.21.0a1741156431__py3-none-any.whl → 8.22.0a1741242890__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 (56) hide show
  1. pulumi_gcp/__init__.py +64 -0
  2. pulumi_gcp/alloydb/cluster.py +148 -0
  3. pulumi_gcp/alloydb/instance.py +28 -28
  4. pulumi_gcp/apihub/__init__.py +1 -0
  5. pulumi_gcp/apihub/host_project_registration.py +535 -0
  6. pulumi_gcp/bigquery/table.py +1 -1
  7. pulumi_gcp/compute/__init__.py +5 -0
  8. pulumi_gcp/compute/_inputs.py +770 -0
  9. pulumi_gcp/compute/backend_service.py +14 -7
  10. pulumi_gcp/compute/ca_external_account_key.py +48 -3
  11. pulumi_gcp/compute/disk.py +295 -0
  12. pulumi_gcp/compute/get_disk.py +56 -1
  13. pulumi_gcp/compute/get_instant_snapshot_iam_policy.py +182 -0
  14. pulumi_gcp/compute/instant_snapshot.py +796 -0
  15. pulumi_gcp/compute/instant_snapshot_iam_binding.py +1087 -0
  16. pulumi_gcp/compute/instant_snapshot_iam_member.py +1087 -0
  17. pulumi_gcp/compute/instant_snapshot_iam_policy.py +906 -0
  18. pulumi_gcp/compute/outputs.py +1329 -6
  19. pulumi_gcp/compute/region_backend_service.py +14 -7
  20. pulumi_gcp/compute/route.py +228 -2
  21. pulumi_gcp/compute/url_map.py +8 -0
  22. pulumi_gcp/container/_inputs.py +3 -3
  23. pulumi_gcp/container/outputs.py +4 -4
  24. pulumi_gcp/datacatalog/entry.py +4 -0
  25. pulumi_gcp/datacatalog/tag.py +4 -0
  26. pulumi_gcp/dataproc/_inputs.py +12 -15
  27. pulumi_gcp/dataproc/outputs.py +8 -10
  28. pulumi_gcp/discoveryengine/target_site.py +4 -4
  29. pulumi_gcp/eventarc/__init__.py +1 -0
  30. pulumi_gcp/eventarc/_inputs.py +40 -0
  31. pulumi_gcp/eventarc/message_bus.py +927 -0
  32. pulumi_gcp/eventarc/outputs.py +41 -0
  33. pulumi_gcp/gemini/__init__.py +1 -0
  34. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +20 -8
  35. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +6 -0
  36. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +734 -0
  37. pulumi_gcp/gemini/logging_setting_binding.py +7 -7
  38. pulumi_gcp/iam/_inputs.py +33 -9
  39. pulumi_gcp/iam/outputs.py +22 -6
  40. pulumi_gcp/iam/workforce_pool_provider.py +2 -2
  41. pulumi_gcp/memorystore/__init__.py +1 -0
  42. pulumi_gcp/memorystore/get_instance.py +425 -0
  43. pulumi_gcp/memorystore/outputs.py +582 -0
  44. pulumi_gcp/networkconnectivity/hub.py +84 -0
  45. pulumi_gcp/networkservices/grpc_route.py +116 -12
  46. pulumi_gcp/notebooks/location.py +4 -0
  47. pulumi_gcp/pulumi-plugin.json +1 -1
  48. pulumi_gcp/storage/__init__.py +1 -0
  49. pulumi_gcp/storage/_inputs.py +74 -0
  50. pulumi_gcp/storage/anywhere_cache.py +552 -0
  51. pulumi_gcp/storage/outputs.py +65 -0
  52. pulumi_gcp/storage/transfer_job.py +67 -0
  53. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0a1741242890.dist-info}/METADATA +1 -1
  54. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0a1741242890.dist-info}/RECORD +56 -46
  55. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0a1741242890.dist-info}/WHEEL +0 -0
  56. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0a1741242890.dist-info}/top_level.txt +0 -0
@@ -61,6 +61,7 @@ __all__ = [
61
61
  'DiskGuestOsFeature',
62
62
  'DiskIamBindingCondition',
63
63
  'DiskIamMemberCondition',
64
+ 'DiskParams',
64
65
  'DiskSourceImageEncryptionKey',
65
66
  'DiskSourceSnapshotEncryptionKey',
66
67
  'ExternalVpnGatewayInterface',
@@ -210,6 +211,8 @@ __all__ = [
210
211
  'InstanceTemplateSchedulingOnInstanceStopAction',
211
212
  'InstanceTemplateServiceAccount',
212
213
  'InstanceTemplateShieldedInstanceConfig',
214
+ 'InstantSnapshotIamBindingCondition',
215
+ 'InstantSnapshotIamMemberCondition',
213
216
  'InterconnectAttachmentPrivateInterconnectInfo',
214
217
  'InterconnectCircuitInfo',
215
218
  'InterconnectExpectedOutage',
@@ -512,6 +515,9 @@ __all__ = [
512
515
  'ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule',
513
516
  'ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek',
514
517
  'ResourcePolicySnapshotSchedulePolicySnapshotProperties',
518
+ 'RouteAsPath',
519
+ 'RouteWarning',
520
+ 'RouteWarningData',
515
521
  'RouterBgp',
516
522
  'RouterBgpAdvertisedIpRange',
517
523
  'RouterNatLogConfig',
@@ -526,7 +532,13 @@ __all__ = [
526
532
  'RouterRoutePolicyTermAction',
527
533
  'RouterRoutePolicyTermMatch',
528
534
  'RouterStatusBestRouteResult',
535
+ 'RouterStatusBestRouteAsPathResult',
536
+ 'RouterStatusBestRouteWarningResult',
537
+ 'RouterStatusBestRouteWarningDataResult',
529
538
  'RouterStatusBestRoutesForRouterResult',
539
+ 'RouterStatusBestRoutesForRouterAsPathResult',
540
+ 'RouterStatusBestRoutesForRouterWarningResult',
541
+ 'RouterStatusBestRoutesForRouterWarningDataResult',
530
542
  'SecurityPolicyAdaptiveProtectionConfig',
531
543
  'SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig',
532
544
  'SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig',
@@ -577,6 +589,7 @@ __all__ = [
577
589
  'URLMapDefaultRouteActionFaultInjectionPolicyAbort',
578
590
  'URLMapDefaultRouteActionFaultInjectionPolicyDelay',
579
591
  'URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay',
592
+ 'URLMapDefaultRouteActionMaxStreamDuration',
580
593
  'URLMapDefaultRouteActionRequestMirrorPolicy',
581
594
  'URLMapDefaultRouteActionRetryPolicy',
582
595
  'URLMapDefaultRouteActionRetryPolicyPerTryTimeout',
@@ -600,6 +613,7 @@ __all__ = [
600
613
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort',
601
614
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay',
602
615
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay',
616
+ 'URLMapPathMatcherDefaultRouteActionMaxStreamDuration',
603
617
  'URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy',
604
618
  'URLMapPathMatcherDefaultRouteActionRetryPolicy',
605
619
  'URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout',
@@ -622,6 +636,7 @@ __all__ = [
622
636
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort',
623
637
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay',
624
638
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay',
639
+ 'URLMapPathMatcherPathRuleRouteActionMaxStreamDuration',
625
640
  'URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy',
626
641
  'URLMapPathMatcherPathRuleRouteActionRetryPolicy',
627
642
  'URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout',
@@ -648,6 +663,7 @@ __all__ = [
648
663
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort',
649
664
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay',
650
665
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay',
666
+ 'URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration',
651
667
  'URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy',
652
668
  'URLMapPathMatcherRouteRuleRouteActionRetryPolicy',
653
669
  'URLMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout',
@@ -689,6 +705,7 @@ __all__ = [
689
705
  'GetDiskAsyncPrimaryDiskResult',
690
706
  'GetDiskDiskEncryptionKeyResult',
691
707
  'GetDiskGuestOsFeatureResult',
708
+ 'GetDiskParamResult',
692
709
  'GetDiskSourceImageEncryptionKeyResult',
693
710
  'GetDiskSourceSnapshotEncryptionKeyResult',
694
711
  'GetForwardingRuleServiceDirectoryRegistrationResult',
@@ -854,7 +871,13 @@ __all__ = [
854
871
  'GetRouterNatRuleActionResult',
855
872
  'GetRouterNatSubnetworkResult',
856
873
  'GetRouterStatusBestRouteResult',
874
+ 'GetRouterStatusBestRouteAsPathResult',
875
+ 'GetRouterStatusBestRouteWarningResult',
876
+ 'GetRouterStatusBestRouteWarningDataResult',
857
877
  'GetRouterStatusBestRoutesForRouterResult',
878
+ 'GetRouterStatusBestRoutesForRouterAsPathResult',
879
+ 'GetRouterStatusBestRoutesForRouterWarningResult',
880
+ 'GetRouterStatusBestRoutesForRouterWarningDataResult',
858
881
  'GetSecurityPolicyAdaptiveProtectionConfigResult',
859
882
  'GetSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigResult',
860
883
  'GetSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResult',
@@ -4216,6 +4239,46 @@ class DiskIamMemberCondition(dict):
4216
4239
  return pulumi.get(self, "description")
4217
4240
 
4218
4241
 
4242
+ @pulumi.output_type
4243
+ class DiskParams(dict):
4244
+ @staticmethod
4245
+ def __key_warning(key: str):
4246
+ suggest = None
4247
+ if key == "resourceManagerTags":
4248
+ suggest = "resource_manager_tags"
4249
+
4250
+ if suggest:
4251
+ pulumi.log.warn(f"Key '{key}' not found in DiskParams. Access the value via the '{suggest}' property getter instead.")
4252
+
4253
+ def __getitem__(self, key: str) -> Any:
4254
+ DiskParams.__key_warning(key)
4255
+ return super().__getitem__(key)
4256
+
4257
+ def get(self, key: str, default = None) -> Any:
4258
+ DiskParams.__key_warning(key)
4259
+ return super().get(key, default)
4260
+
4261
+ def __init__(__self__, *,
4262
+ resource_manager_tags: Optional[Mapping[str, str]] = None):
4263
+ """
4264
+ :param Mapping[str, str] resource_manager_tags: Resource manager tags to be bound to the disk. Tag keys and values have the
4265
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
4266
+ and values are in the format tagValues/456.
4267
+ """
4268
+ if resource_manager_tags is not None:
4269
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
4270
+
4271
+ @property
4272
+ @pulumi.getter(name="resourceManagerTags")
4273
+ def resource_manager_tags(self) -> Optional[Mapping[str, str]]:
4274
+ """
4275
+ Resource manager tags to be bound to the disk. Tag keys and values have the
4276
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
4277
+ and values are in the format tagValues/456.
4278
+ """
4279
+ return pulumi.get(self, "resource_manager_tags")
4280
+
4281
+
4219
4282
  @pulumi.output_type
4220
4283
  class DiskSourceImageEncryptionKey(dict):
4221
4284
  @staticmethod
@@ -15985,6 +16048,80 @@ class InstanceTemplateShieldedInstanceConfig(dict):
15985
16048
  return pulumi.get(self, "enable_vtpm")
15986
16049
 
15987
16050
 
16051
+ @pulumi.output_type
16052
+ class InstantSnapshotIamBindingCondition(dict):
16053
+ def __init__(__self__, *,
16054
+ expression: str,
16055
+ title: str,
16056
+ description: Optional[str] = None):
16057
+ """
16058
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
16059
+ :param str title: A title for the expression, i.e. a short string describing its purpose.
16060
+ """
16061
+ pulumi.set(__self__, "expression", expression)
16062
+ pulumi.set(__self__, "title", title)
16063
+ if description is not None:
16064
+ pulumi.set(__self__, "description", description)
16065
+
16066
+ @property
16067
+ @pulumi.getter
16068
+ def expression(self) -> str:
16069
+ """
16070
+ Textual representation of an expression in Common Expression Language syntax.
16071
+ """
16072
+ return pulumi.get(self, "expression")
16073
+
16074
+ @property
16075
+ @pulumi.getter
16076
+ def title(self) -> str:
16077
+ """
16078
+ A title for the expression, i.e. a short string describing its purpose.
16079
+ """
16080
+ return pulumi.get(self, "title")
16081
+
16082
+ @property
16083
+ @pulumi.getter
16084
+ def description(self) -> Optional[str]:
16085
+ return pulumi.get(self, "description")
16086
+
16087
+
16088
+ @pulumi.output_type
16089
+ class InstantSnapshotIamMemberCondition(dict):
16090
+ def __init__(__self__, *,
16091
+ expression: str,
16092
+ title: str,
16093
+ description: Optional[str] = None):
16094
+ """
16095
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
16096
+ :param str title: A title for the expression, i.e. a short string describing its purpose.
16097
+ """
16098
+ pulumi.set(__self__, "expression", expression)
16099
+ pulumi.set(__self__, "title", title)
16100
+ if description is not None:
16101
+ pulumi.set(__self__, "description", description)
16102
+
16103
+ @property
16104
+ @pulumi.getter
16105
+ def expression(self) -> str:
16106
+ """
16107
+ Textual representation of an expression in Common Expression Language syntax.
16108
+ """
16109
+ return pulumi.get(self, "expression")
16110
+
16111
+ @property
16112
+ @pulumi.getter
16113
+ def title(self) -> str:
16114
+ """
16115
+ A title for the expression, i.e. a short string describing its purpose.
16116
+ """
16117
+ return pulumi.get(self, "title")
16118
+
16119
+ @property
16120
+ @pulumi.getter
16121
+ def description(self) -> Optional[str]:
16122
+ return pulumi.get(self, "description")
16123
+
16124
+
15988
16125
  @pulumi.output_type
15989
16126
  class InterconnectAttachmentPrivateInterconnectInfo(dict):
15990
16127
  def __init__(__self__, *,
@@ -38224,6 +38361,158 @@ class ResourcePolicySnapshotSchedulePolicySnapshotProperties(dict):
38224
38361
  return pulumi.get(self, "storage_locations")
38225
38362
 
38226
38363
 
38364
+ @pulumi.output_type
38365
+ class RouteAsPath(dict):
38366
+ @staticmethod
38367
+ def __key_warning(key: str):
38368
+ suggest = None
38369
+ if key == "asLists":
38370
+ suggest = "as_lists"
38371
+ elif key == "pathSegmentType":
38372
+ suggest = "path_segment_type"
38373
+
38374
+ if suggest:
38375
+ pulumi.log.warn(f"Key '{key}' not found in RouteAsPath. Access the value via the '{suggest}' property getter instead.")
38376
+
38377
+ def __getitem__(self, key: str) -> Any:
38378
+ RouteAsPath.__key_warning(key)
38379
+ return super().__getitem__(key)
38380
+
38381
+ def get(self, key: str, default = None) -> Any:
38382
+ RouteAsPath.__key_warning(key)
38383
+ return super().get(key, default)
38384
+
38385
+ def __init__(__self__, *,
38386
+ as_lists: Optional[Sequence[int]] = None,
38387
+ path_segment_type: Optional[str] = None):
38388
+ """
38389
+ :param Sequence[int] as_lists: (Output)
38390
+ The AS numbers of the AS Path.
38391
+ :param str path_segment_type: (Output)
38392
+ The type of the AS Path, which can be one of the following values:
38393
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
38394
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
38395
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
38396
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
38397
+ """
38398
+ if as_lists is not None:
38399
+ pulumi.set(__self__, "as_lists", as_lists)
38400
+ if path_segment_type is not None:
38401
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
38402
+
38403
+ @property
38404
+ @pulumi.getter(name="asLists")
38405
+ def as_lists(self) -> Optional[Sequence[int]]:
38406
+ """
38407
+ (Output)
38408
+ The AS numbers of the AS Path.
38409
+ """
38410
+ return pulumi.get(self, "as_lists")
38411
+
38412
+ @property
38413
+ @pulumi.getter(name="pathSegmentType")
38414
+ def path_segment_type(self) -> Optional[str]:
38415
+ """
38416
+ (Output)
38417
+ The type of the AS Path, which can be one of the following values:
38418
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
38419
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
38420
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
38421
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
38422
+ """
38423
+ return pulumi.get(self, "path_segment_type")
38424
+
38425
+
38426
+ @pulumi.output_type
38427
+ class RouteWarning(dict):
38428
+ def __init__(__self__, *,
38429
+ code: Optional[str] = None,
38430
+ datas: Optional[Sequence['outputs.RouteWarningData']] = None,
38431
+ message: Optional[str] = None):
38432
+ """
38433
+ :param str code: (Output)
38434
+ A warning code, if applicable. For example, Compute Engine returns
38435
+ NO_RESULTS_ON_PAGE if there are no results in the response.
38436
+ :param Sequence['RouteWarningDataArgs'] datas: (Output)
38437
+ Metadata about this warning in key: value format. For example:
38438
+ "data": { "key": "scope", "value": "zones/us-east1-d" }
38439
+ Structure is [documented below.
38440
+ :param str message: (Output)
38441
+ A human-readable description of the warning code.
38442
+ """
38443
+ if code is not None:
38444
+ pulumi.set(__self__, "code", code)
38445
+ if datas is not None:
38446
+ pulumi.set(__self__, "datas", datas)
38447
+ if message is not None:
38448
+ pulumi.set(__self__, "message", message)
38449
+
38450
+ @property
38451
+ @pulumi.getter
38452
+ def code(self) -> Optional[str]:
38453
+ """
38454
+ (Output)
38455
+ A warning code, if applicable. For example, Compute Engine returns
38456
+ NO_RESULTS_ON_PAGE if there are no results in the response.
38457
+ """
38458
+ return pulumi.get(self, "code")
38459
+
38460
+ @property
38461
+ @pulumi.getter
38462
+ def datas(self) -> Optional[Sequence['outputs.RouteWarningData']]:
38463
+ """
38464
+ (Output)
38465
+ Metadata about this warning in key: value format. For example:
38466
+ "data": { "key": "scope", "value": "zones/us-east1-d" }
38467
+ Structure is [documented below.
38468
+ """
38469
+ return pulumi.get(self, "datas")
38470
+
38471
+ @property
38472
+ @pulumi.getter
38473
+ def message(self) -> Optional[str]:
38474
+ """
38475
+ (Output)
38476
+ A human-readable description of the warning code.
38477
+ """
38478
+ return pulumi.get(self, "message")
38479
+
38480
+
38481
+ @pulumi.output_type
38482
+ class RouteWarningData(dict):
38483
+ def __init__(__self__, *,
38484
+ key: Optional[str] = None,
38485
+ value: Optional[str] = None):
38486
+ """
38487
+ :param str key: (Output)
38488
+ A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
38489
+ :param str value: (Output)
38490
+ A warning data value corresponding to the key.
38491
+ """
38492
+ if key is not None:
38493
+ pulumi.set(__self__, "key", key)
38494
+ if value is not None:
38495
+ pulumi.set(__self__, "value", value)
38496
+
38497
+ @property
38498
+ @pulumi.getter
38499
+ def key(self) -> Optional[str]:
38500
+ """
38501
+ (Output)
38502
+ A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
38503
+ """
38504
+ return pulumi.get(self, "key")
38505
+
38506
+ @property
38507
+ @pulumi.getter
38508
+ def value(self) -> Optional[str]:
38509
+ """
38510
+ (Output)
38511
+ A warning data value corresponding to the key.
38512
+ """
38513
+ return pulumi.get(self, "value")
38514
+
38515
+
38227
38516
  @pulumi.output_type
38228
38517
  class RouterBgp(dict):
38229
38518
  @staticmethod
@@ -39065,11 +39354,14 @@ class RouterRoutePolicyTermMatch(dict):
39065
39354
  @pulumi.output_type
39066
39355
  class RouterStatusBestRouteResult(dict):
39067
39356
  def __init__(__self__, *,
39357
+ as_paths: Sequence['outputs.RouterStatusBestRouteAsPathResult'],
39358
+ creation_timestamp: str,
39068
39359
  description: str,
39069
39360
  dest_range: str,
39070
39361
  name: str,
39071
39362
  network: str,
39072
39363
  next_hop_gateway: str,
39364
+ next_hop_hub: str,
39073
39365
  next_hop_ilb: str,
39074
39366
  next_hop_instance: str,
39075
39367
  next_hop_instance_zone: str,
@@ -39078,12 +39370,17 @@ class RouterStatusBestRouteResult(dict):
39078
39370
  next_hop_med: str,
39079
39371
  next_hop_network: str,
39080
39372
  next_hop_origin: str,
39373
+ next_hop_peering: str,
39081
39374
  next_hop_vpn_tunnel: str,
39082
39375
  priority: int,
39083
39376
  project: str,
39377
+ route_status: str,
39378
+ route_type: str,
39084
39379
  self_link: str,
39085
- tags: Sequence[str]):
39380
+ tags: Sequence[str],
39381
+ warnings: Sequence['outputs.RouterStatusBestRouteWarningResult']):
39086
39382
  """
39383
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
39087
39384
  :param str description: An optional description of this resource. Provide this property
39088
39385
  when you create the resource.
39089
39386
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -39098,6 +39395,7 @@ class RouterStatusBestRouteResult(dict):
39098
39395
  * 'projects/project/global/gateways/default-internet-gateway'
39099
39396
  * 'global/gateways/default-internet-gateway'
39100
39397
  * The string 'default-internet-gateway'.
39398
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
39101
39399
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
39102
39400
  loadBalancingScheme=INTERNAL that should handle matching
39103
39401
  packets.
@@ -39126,6 +39424,7 @@ class RouterStatusBestRouteResult(dict):
39126
39424
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
39127
39425
  :param str next_hop_network: URL to a Network that should handle matching packets.
39128
39426
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
39427
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
39129
39428
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
39130
39429
  :param int priority: The priority of this route. Priority is used to break ties in cases
39131
39430
  where there is more than one matching route of equal prefix length.
@@ -39136,13 +39435,25 @@ class RouterStatusBestRouteResult(dict):
39136
39435
  Default value is 1000. Valid range is 0 through 65535.
39137
39436
  :param str project: The ID of the project in which the resource
39138
39437
  belongs. If it is not provided, the provider project is used.
39438
+ :param str route_status: The status of the route, which can be one of the following values:
39439
+ - 'ACTIVE' for an active route
39440
+ - 'INACTIVE' for an inactive route
39441
+ :param str route_type: The type of this route, which can be one of the following values:
39442
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
39443
+ - 'SUBNET' for a route from a subnet of the VPC
39444
+ - 'BGP' for a route learned from a BGP peer of this router
39445
+ - 'STATIC' for a static route
39139
39446
  :param Sequence[str] tags: A list of instance tags to which this route applies.
39447
+ :param Sequence['RouterStatusBestRouteWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
39140
39448
  """
39449
+ pulumi.set(__self__, "as_paths", as_paths)
39450
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
39141
39451
  pulumi.set(__self__, "description", description)
39142
39452
  pulumi.set(__self__, "dest_range", dest_range)
39143
39453
  pulumi.set(__self__, "name", name)
39144
39454
  pulumi.set(__self__, "network", network)
39145
39455
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
39456
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
39146
39457
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
39147
39458
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
39148
39459
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -39151,11 +39462,28 @@ class RouterStatusBestRouteResult(dict):
39151
39462
  pulumi.set(__self__, "next_hop_med", next_hop_med)
39152
39463
  pulumi.set(__self__, "next_hop_network", next_hop_network)
39153
39464
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
39465
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
39154
39466
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
39155
39467
  pulumi.set(__self__, "priority", priority)
39156
39468
  pulumi.set(__self__, "project", project)
39469
+ pulumi.set(__self__, "route_status", route_status)
39470
+ pulumi.set(__self__, "route_type", route_type)
39157
39471
  pulumi.set(__self__, "self_link", self_link)
39158
39472
  pulumi.set(__self__, "tags", tags)
39473
+ pulumi.set(__self__, "warnings", warnings)
39474
+
39475
+ @property
39476
+ @pulumi.getter(name="asPaths")
39477
+ def as_paths(self) -> Sequence['outputs.RouterStatusBestRouteAsPathResult']:
39478
+ return pulumi.get(self, "as_paths")
39479
+
39480
+ @property
39481
+ @pulumi.getter(name="creationTimestamp")
39482
+ def creation_timestamp(self) -> str:
39483
+ """
39484
+ Creation timestamp in RFC3339 text format.
39485
+ """
39486
+ return pulumi.get(self, "creation_timestamp")
39159
39487
 
39160
39488
  @property
39161
39489
  @pulumi.getter
@@ -39206,6 +39534,14 @@ class RouterStatusBestRouteResult(dict):
39206
39534
  """
39207
39535
  return pulumi.get(self, "next_hop_gateway")
39208
39536
 
39537
+ @property
39538
+ @pulumi.getter(name="nextHopHub")
39539
+ def next_hop_hub(self) -> str:
39540
+ """
39541
+ The hub network that should handle matching packets, which should conform to RFC1035.
39542
+ """
39543
+ return pulumi.get(self, "next_hop_hub")
39544
+
39209
39545
  @property
39210
39546
  @pulumi.getter(name="nextHopIlb")
39211
39547
  def next_hop_ilb(self) -> str:
@@ -39290,6 +39626,14 @@ class RouterStatusBestRouteResult(dict):
39290
39626
  """
39291
39627
  return pulumi.get(self, "next_hop_origin")
39292
39628
 
39629
+ @property
39630
+ @pulumi.getter(name="nextHopPeering")
39631
+ def next_hop_peering(self) -> str:
39632
+ """
39633
+ The network peering name that should handle matching packets, which should conform to RFC1035.
39634
+ """
39635
+ return pulumi.get(self, "next_hop_peering")
39636
+
39293
39637
  @property
39294
39638
  @pulumi.getter(name="nextHopVpnTunnel")
39295
39639
  def next_hop_vpn_tunnel(self) -> str:
@@ -39321,6 +39665,28 @@ class RouterStatusBestRouteResult(dict):
39321
39665
  """
39322
39666
  return pulumi.get(self, "project")
39323
39667
 
39668
+ @property
39669
+ @pulumi.getter(name="routeStatus")
39670
+ def route_status(self) -> str:
39671
+ """
39672
+ The status of the route, which can be one of the following values:
39673
+ - 'ACTIVE' for an active route
39674
+ - 'INACTIVE' for an inactive route
39675
+ """
39676
+ return pulumi.get(self, "route_status")
39677
+
39678
+ @property
39679
+ @pulumi.getter(name="routeType")
39680
+ def route_type(self) -> str:
39681
+ """
39682
+ The type of this route, which can be one of the following values:
39683
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
39684
+ - 'SUBNET' for a route from a subnet of the VPC
39685
+ - 'BGP' for a route learned from a BGP peer of this router
39686
+ - 'STATIC' for a static route
39687
+ """
39688
+ return pulumi.get(self, "route_type")
39689
+
39324
39690
  @property
39325
39691
  @pulumi.getter(name="selfLink")
39326
39692
  def self_link(self) -> str:
@@ -39334,15 +39700,136 @@ class RouterStatusBestRouteResult(dict):
39334
39700
  """
39335
39701
  return pulumi.get(self, "tags")
39336
39702
 
39703
+ @property
39704
+ @pulumi.getter
39705
+ def warnings(self) -> Sequence['outputs.RouterStatusBestRouteWarningResult']:
39706
+ """
39707
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
39708
+ """
39709
+ return pulumi.get(self, "warnings")
39710
+
39711
+
39712
+ @pulumi.output_type
39713
+ class RouterStatusBestRouteAsPathResult(dict):
39714
+ def __init__(__self__, *,
39715
+ as_lists: Sequence[int],
39716
+ path_segment_type: str):
39717
+ """
39718
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
39719
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
39720
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
39721
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
39722
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
39723
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
39724
+ """
39725
+ pulumi.set(__self__, "as_lists", as_lists)
39726
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
39727
+
39728
+ @property
39729
+ @pulumi.getter(name="asLists")
39730
+ def as_lists(self) -> Sequence[int]:
39731
+ """
39732
+ The AS numbers of the AS Path.
39733
+ """
39734
+ return pulumi.get(self, "as_lists")
39735
+
39736
+ @property
39737
+ @pulumi.getter(name="pathSegmentType")
39738
+ def path_segment_type(self) -> str:
39739
+ """
39740
+ The type of the AS Path, which can be one of the following values:
39741
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
39742
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
39743
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
39744
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
39745
+ """
39746
+ return pulumi.get(self, "path_segment_type")
39747
+
39748
+
39749
+ @pulumi.output_type
39750
+ class RouterStatusBestRouteWarningResult(dict):
39751
+ def __init__(__self__, *,
39752
+ code: str,
39753
+ datas: Sequence['outputs.RouterStatusBestRouteWarningDataResult'],
39754
+ message: str):
39755
+ """
39756
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
39757
+ NO_RESULTS_ON_PAGE if there are no results in the response.
39758
+ :param Sequence['RouterStatusBestRouteWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
39759
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39760
+ :param str message: A human-readable description of the warning code.
39761
+ """
39762
+ pulumi.set(__self__, "code", code)
39763
+ pulumi.set(__self__, "datas", datas)
39764
+ pulumi.set(__self__, "message", message)
39765
+
39766
+ @property
39767
+ @pulumi.getter
39768
+ def code(self) -> str:
39769
+ """
39770
+ A warning code, if applicable. For example, Compute Engine returns
39771
+ NO_RESULTS_ON_PAGE if there are no results in the response.
39772
+ """
39773
+ return pulumi.get(self, "code")
39774
+
39775
+ @property
39776
+ @pulumi.getter
39777
+ def datas(self) -> Sequence['outputs.RouterStatusBestRouteWarningDataResult']:
39778
+ """
39779
+ Metadata about this warning in key: value format. For example:
39780
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39781
+ """
39782
+ return pulumi.get(self, "datas")
39783
+
39784
+ @property
39785
+ @pulumi.getter
39786
+ def message(self) -> str:
39787
+ """
39788
+ A human-readable description of the warning code.
39789
+ """
39790
+ return pulumi.get(self, "message")
39791
+
39792
+
39793
+ @pulumi.output_type
39794
+ class RouterStatusBestRouteWarningDataResult(dict):
39795
+ def __init__(__self__, *,
39796
+ key: str,
39797
+ value: str):
39798
+ """
39799
+ :param str key: A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
39800
+ :param str value: A warning data value corresponding to the key.
39801
+ """
39802
+ pulumi.set(__self__, "key", key)
39803
+ pulumi.set(__self__, "value", value)
39804
+
39805
+ @property
39806
+ @pulumi.getter
39807
+ def key(self) -> str:
39808
+ """
39809
+ A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
39810
+ """
39811
+ return pulumi.get(self, "key")
39812
+
39813
+ @property
39814
+ @pulumi.getter
39815
+ def value(self) -> str:
39816
+ """
39817
+ A warning data value corresponding to the key.
39818
+ """
39819
+ return pulumi.get(self, "value")
39820
+
39337
39821
 
39338
39822
  @pulumi.output_type
39339
39823
  class RouterStatusBestRoutesForRouterResult(dict):
39340
39824
  def __init__(__self__, *,
39825
+ as_paths: Sequence['outputs.RouterStatusBestRoutesForRouterAsPathResult'],
39826
+ creation_timestamp: str,
39341
39827
  description: str,
39342
39828
  dest_range: str,
39343
39829
  name: str,
39344
39830
  network: str,
39345
39831
  next_hop_gateway: str,
39832
+ next_hop_hub: str,
39346
39833
  next_hop_ilb: str,
39347
39834
  next_hop_instance: str,
39348
39835
  next_hop_instance_zone: str,
@@ -39351,12 +39838,17 @@ class RouterStatusBestRoutesForRouterResult(dict):
39351
39838
  next_hop_med: str,
39352
39839
  next_hop_network: str,
39353
39840
  next_hop_origin: str,
39841
+ next_hop_peering: str,
39354
39842
  next_hop_vpn_tunnel: str,
39355
39843
  priority: int,
39356
39844
  project: str,
39845
+ route_status: str,
39846
+ route_type: str,
39357
39847
  self_link: str,
39358
- tags: Sequence[str]):
39848
+ tags: Sequence[str],
39849
+ warnings: Sequence['outputs.RouterStatusBestRoutesForRouterWarningResult']):
39359
39850
  """
39851
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
39360
39852
  :param str description: An optional description of this resource. Provide this property
39361
39853
  when you create the resource.
39362
39854
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -39371,6 +39863,7 @@ class RouterStatusBestRoutesForRouterResult(dict):
39371
39863
  * 'projects/project/global/gateways/default-internet-gateway'
39372
39864
  * 'global/gateways/default-internet-gateway'
39373
39865
  * The string 'default-internet-gateway'.
39866
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
39374
39867
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
39375
39868
  loadBalancingScheme=INTERNAL that should handle matching
39376
39869
  packets.
@@ -39399,6 +39892,7 @@ class RouterStatusBestRoutesForRouterResult(dict):
39399
39892
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
39400
39893
  :param str next_hop_network: URL to a Network that should handle matching packets.
39401
39894
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
39895
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
39402
39896
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
39403
39897
  :param int priority: The priority of this route. Priority is used to break ties in cases
39404
39898
  where there is more than one matching route of equal prefix length.
@@ -39409,13 +39903,25 @@ class RouterStatusBestRoutesForRouterResult(dict):
39409
39903
  Default value is 1000. Valid range is 0 through 65535.
39410
39904
  :param str project: The ID of the project in which the resource
39411
39905
  belongs. If it is not provided, the provider project is used.
39906
+ :param str route_status: The status of the route, which can be one of the following values:
39907
+ - 'ACTIVE' for an active route
39908
+ - 'INACTIVE' for an inactive route
39909
+ :param str route_type: The type of this route, which can be one of the following values:
39910
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
39911
+ - 'SUBNET' for a route from a subnet of the VPC
39912
+ - 'BGP' for a route learned from a BGP peer of this router
39913
+ - 'STATIC' for a static route
39412
39914
  :param Sequence[str] tags: A list of instance tags to which this route applies.
39915
+ :param Sequence['RouterStatusBestRoutesForRouterWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
39413
39916
  """
39917
+ pulumi.set(__self__, "as_paths", as_paths)
39918
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
39414
39919
  pulumi.set(__self__, "description", description)
39415
39920
  pulumi.set(__self__, "dest_range", dest_range)
39416
39921
  pulumi.set(__self__, "name", name)
39417
39922
  pulumi.set(__self__, "network", network)
39418
39923
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
39924
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
39419
39925
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
39420
39926
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
39421
39927
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -39424,11 +39930,28 @@ class RouterStatusBestRoutesForRouterResult(dict):
39424
39930
  pulumi.set(__self__, "next_hop_med", next_hop_med)
39425
39931
  pulumi.set(__self__, "next_hop_network", next_hop_network)
39426
39932
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
39933
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
39427
39934
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
39428
39935
  pulumi.set(__self__, "priority", priority)
39429
39936
  pulumi.set(__self__, "project", project)
39937
+ pulumi.set(__self__, "route_status", route_status)
39938
+ pulumi.set(__self__, "route_type", route_type)
39430
39939
  pulumi.set(__self__, "self_link", self_link)
39431
39940
  pulumi.set(__self__, "tags", tags)
39941
+ pulumi.set(__self__, "warnings", warnings)
39942
+
39943
+ @property
39944
+ @pulumi.getter(name="asPaths")
39945
+ def as_paths(self) -> Sequence['outputs.RouterStatusBestRoutesForRouterAsPathResult']:
39946
+ return pulumi.get(self, "as_paths")
39947
+
39948
+ @property
39949
+ @pulumi.getter(name="creationTimestamp")
39950
+ def creation_timestamp(self) -> str:
39951
+ """
39952
+ Creation timestamp in RFC3339 text format.
39953
+ """
39954
+ return pulumi.get(self, "creation_timestamp")
39432
39955
 
39433
39956
  @property
39434
39957
  @pulumi.getter
@@ -39479,6 +40002,14 @@ class RouterStatusBestRoutesForRouterResult(dict):
39479
40002
  """
39480
40003
  return pulumi.get(self, "next_hop_gateway")
39481
40004
 
40005
+ @property
40006
+ @pulumi.getter(name="nextHopHub")
40007
+ def next_hop_hub(self) -> str:
40008
+ """
40009
+ The hub network that should handle matching packets, which should conform to RFC1035.
40010
+ """
40011
+ return pulumi.get(self, "next_hop_hub")
40012
+
39482
40013
  @property
39483
40014
  @pulumi.getter(name="nextHopIlb")
39484
40015
  def next_hop_ilb(self) -> str:
@@ -39563,6 +40094,14 @@ class RouterStatusBestRoutesForRouterResult(dict):
39563
40094
  """
39564
40095
  return pulumi.get(self, "next_hop_origin")
39565
40096
 
40097
+ @property
40098
+ @pulumi.getter(name="nextHopPeering")
40099
+ def next_hop_peering(self) -> str:
40100
+ """
40101
+ The network peering name that should handle matching packets, which should conform to RFC1035.
40102
+ """
40103
+ return pulumi.get(self, "next_hop_peering")
40104
+
39566
40105
  @property
39567
40106
  @pulumi.getter(name="nextHopVpnTunnel")
39568
40107
  def next_hop_vpn_tunnel(self) -> str:
@@ -39594,6 +40133,28 @@ class RouterStatusBestRoutesForRouterResult(dict):
39594
40133
  """
39595
40134
  return pulumi.get(self, "project")
39596
40135
 
40136
+ @property
40137
+ @pulumi.getter(name="routeStatus")
40138
+ def route_status(self) -> str:
40139
+ """
40140
+ The status of the route, which can be one of the following values:
40141
+ - 'ACTIVE' for an active route
40142
+ - 'INACTIVE' for an inactive route
40143
+ """
40144
+ return pulumi.get(self, "route_status")
40145
+
40146
+ @property
40147
+ @pulumi.getter(name="routeType")
40148
+ def route_type(self) -> str:
40149
+ """
40150
+ The type of this route, which can be one of the following values:
40151
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
40152
+ - 'SUBNET' for a route from a subnet of the VPC
40153
+ - 'BGP' for a route learned from a BGP peer of this router
40154
+ - 'STATIC' for a static route
40155
+ """
40156
+ return pulumi.get(self, "route_type")
40157
+
39597
40158
  @property
39598
40159
  @pulumi.getter(name="selfLink")
39599
40160
  def self_link(self) -> str:
@@ -39607,6 +40168,124 @@ class RouterStatusBestRoutesForRouterResult(dict):
39607
40168
  """
39608
40169
  return pulumi.get(self, "tags")
39609
40170
 
40171
+ @property
40172
+ @pulumi.getter
40173
+ def warnings(self) -> Sequence['outputs.RouterStatusBestRoutesForRouterWarningResult']:
40174
+ """
40175
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
40176
+ """
40177
+ return pulumi.get(self, "warnings")
40178
+
40179
+
40180
+ @pulumi.output_type
40181
+ class RouterStatusBestRoutesForRouterAsPathResult(dict):
40182
+ def __init__(__self__, *,
40183
+ as_lists: Sequence[int],
40184
+ path_segment_type: str):
40185
+ """
40186
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
40187
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
40188
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
40189
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
40190
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
40191
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
40192
+ """
40193
+ pulumi.set(__self__, "as_lists", as_lists)
40194
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
40195
+
40196
+ @property
40197
+ @pulumi.getter(name="asLists")
40198
+ def as_lists(self) -> Sequence[int]:
40199
+ """
40200
+ The AS numbers of the AS Path.
40201
+ """
40202
+ return pulumi.get(self, "as_lists")
40203
+
40204
+ @property
40205
+ @pulumi.getter(name="pathSegmentType")
40206
+ def path_segment_type(self) -> str:
40207
+ """
40208
+ The type of the AS Path, which can be one of the following values:
40209
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
40210
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
40211
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
40212
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
40213
+ """
40214
+ return pulumi.get(self, "path_segment_type")
40215
+
40216
+
40217
+ @pulumi.output_type
40218
+ class RouterStatusBestRoutesForRouterWarningResult(dict):
40219
+ def __init__(__self__, *,
40220
+ code: str,
40221
+ datas: Sequence['outputs.RouterStatusBestRoutesForRouterWarningDataResult'],
40222
+ message: str):
40223
+ """
40224
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
40225
+ NO_RESULTS_ON_PAGE if there are no results in the response.
40226
+ :param Sequence['RouterStatusBestRoutesForRouterWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
40227
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40228
+ :param str message: A human-readable description of the warning code.
40229
+ """
40230
+ pulumi.set(__self__, "code", code)
40231
+ pulumi.set(__self__, "datas", datas)
40232
+ pulumi.set(__self__, "message", message)
40233
+
40234
+ @property
40235
+ @pulumi.getter
40236
+ def code(self) -> str:
40237
+ """
40238
+ A warning code, if applicable. For example, Compute Engine returns
40239
+ NO_RESULTS_ON_PAGE if there are no results in the response.
40240
+ """
40241
+ return pulumi.get(self, "code")
40242
+
40243
+ @property
40244
+ @pulumi.getter
40245
+ def datas(self) -> Sequence['outputs.RouterStatusBestRoutesForRouterWarningDataResult']:
40246
+ """
40247
+ Metadata about this warning in key: value format. For example:
40248
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40249
+ """
40250
+ return pulumi.get(self, "datas")
40251
+
40252
+ @property
40253
+ @pulumi.getter
40254
+ def message(self) -> str:
40255
+ """
40256
+ A human-readable description of the warning code.
40257
+ """
40258
+ return pulumi.get(self, "message")
40259
+
40260
+
40261
+ @pulumi.output_type
40262
+ class RouterStatusBestRoutesForRouterWarningDataResult(dict):
40263
+ def __init__(__self__, *,
40264
+ key: str,
40265
+ value: str):
40266
+ """
40267
+ :param str key: A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
40268
+ :param str value: A warning data value corresponding to the key.
40269
+ """
40270
+ pulumi.set(__self__, "key", key)
40271
+ pulumi.set(__self__, "value", value)
40272
+
40273
+ @property
40274
+ @pulumi.getter
40275
+ def key(self) -> str:
40276
+ """
40277
+ A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
40278
+ """
40279
+ return pulumi.get(self, "key")
40280
+
40281
+ @property
40282
+ @pulumi.getter
40283
+ def value(self) -> str:
40284
+ """
40285
+ A warning data value corresponding to the key.
40286
+ """
40287
+ return pulumi.get(self, "value")
40288
+
39610
40289
 
39611
40290
  @pulumi.output_type
39612
40291
  class SecurityPolicyAdaptiveProtectionConfig(dict):
@@ -42396,6 +43075,8 @@ class URLMapDefaultRouteAction(dict):
42396
43075
  suggest = "cors_policy"
42397
43076
  elif key == "faultInjectionPolicy":
42398
43077
  suggest = "fault_injection_policy"
43078
+ elif key == "maxStreamDuration":
43079
+ suggest = "max_stream_duration"
42399
43080
  elif key == "requestMirrorPolicy":
42400
43081
  suggest = "request_mirror_policy"
42401
43082
  elif key == "retryPolicy":
@@ -42419,6 +43100,7 @@ class URLMapDefaultRouteAction(dict):
42419
43100
  def __init__(__self__, *,
42420
43101
  cors_policy: Optional['outputs.URLMapDefaultRouteActionCorsPolicy'] = None,
42421
43102
  fault_injection_policy: Optional['outputs.URLMapDefaultRouteActionFaultInjectionPolicy'] = None,
43103
+ max_stream_duration: Optional['outputs.URLMapDefaultRouteActionMaxStreamDuration'] = None,
42422
43104
  request_mirror_policy: Optional['outputs.URLMapDefaultRouteActionRequestMirrorPolicy'] = None,
42423
43105
  retry_policy: Optional['outputs.URLMapDefaultRouteActionRetryPolicy'] = None,
42424
43106
  timeout: Optional['outputs.URLMapDefaultRouteActionTimeout'] = None,
@@ -42434,6 +43116,12 @@ class URLMapDefaultRouteAction(dict):
42434
43116
  by the Loadbalancer for a percentage of requests.
42435
43117
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
42436
43118
  Structure is documented below.
43119
+ :param 'URLMapDefaultRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
43120
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
43121
+ has been fully processed (known as end-of-stream), the duration in this field
43122
+ is computed from the beginning of the stream until the response has been processed,
43123
+ including all retries. A stream that does not complete in this duration is closed.
43124
+ Structure is documented below.
42437
43125
  :param 'URLMapDefaultRouteActionRequestMirrorPolicyArgs' request_mirror_policy: Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
42438
43126
  Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,
42439
43127
  the host / authority header is suffixed with -shadow.
@@ -42459,6 +43147,8 @@ class URLMapDefaultRouteAction(dict):
42459
43147
  pulumi.set(__self__, "cors_policy", cors_policy)
42460
43148
  if fault_injection_policy is not None:
42461
43149
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
43150
+ if max_stream_duration is not None:
43151
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
42462
43152
  if request_mirror_policy is not None:
42463
43153
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
42464
43154
  if retry_policy is not None:
@@ -42493,6 +43183,19 @@ class URLMapDefaultRouteAction(dict):
42493
43183
  """
42494
43184
  return pulumi.get(self, "fault_injection_policy")
42495
43185
 
43186
+ @property
43187
+ @pulumi.getter(name="maxStreamDuration")
43188
+ def max_stream_duration(self) -> Optional['outputs.URLMapDefaultRouteActionMaxStreamDuration']:
43189
+ """
43190
+ Specifies the maximum duration (timeout) for streams on the selected route.
43191
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
43192
+ has been fully processed (known as end-of-stream), the duration in this field
43193
+ is computed from the beginning of the stream until the response has been processed,
43194
+ including all retries. A stream that does not complete in this duration is closed.
43195
+ Structure is documented below.
43196
+ """
43197
+ return pulumi.get(self, "max_stream_duration")
43198
+
42496
43199
  @property
42497
43200
  @pulumi.getter(name="requestMirrorPolicy")
42498
43201
  def request_mirror_policy(self) -> Optional['outputs.URLMapDefaultRouteActionRequestMirrorPolicy']:
@@ -42865,6 +43568,40 @@ class URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay(dict):
42865
43568
  return pulumi.get(self, "seconds")
42866
43569
 
42867
43570
 
43571
+ @pulumi.output_type
43572
+ class URLMapDefaultRouteActionMaxStreamDuration(dict):
43573
+ def __init__(__self__, *,
43574
+ seconds: str,
43575
+ nanos: Optional[int] = None):
43576
+ """
43577
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
43578
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
43579
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
43580
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
43581
+ """
43582
+ pulumi.set(__self__, "seconds", seconds)
43583
+ if nanos is not None:
43584
+ pulumi.set(__self__, "nanos", nanos)
43585
+
43586
+ @property
43587
+ @pulumi.getter
43588
+ def seconds(self) -> str:
43589
+ """
43590
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
43591
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
43592
+ """
43593
+ return pulumi.get(self, "seconds")
43594
+
43595
+ @property
43596
+ @pulumi.getter
43597
+ def nanos(self) -> Optional[int]:
43598
+ """
43599
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
43600
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
43601
+ """
43602
+ return pulumi.get(self, "nanos")
43603
+
43604
+
42868
43605
  @pulumi.output_type
42869
43606
  class URLMapDefaultRouteActionRequestMirrorPolicy(dict):
42870
43607
  @staticmethod
@@ -44209,6 +44946,8 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44209
44946
  suggest = "cors_policy"
44210
44947
  elif key == "faultInjectionPolicy":
44211
44948
  suggest = "fault_injection_policy"
44949
+ elif key == "maxStreamDuration":
44950
+ suggest = "max_stream_duration"
44212
44951
  elif key == "requestMirrorPolicy":
44213
44952
  suggest = "request_mirror_policy"
44214
44953
  elif key == "retryPolicy":
@@ -44232,6 +44971,7 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44232
44971
  def __init__(__self__, *,
44233
44972
  cors_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionCorsPolicy'] = None,
44234
44973
  fault_injection_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy'] = None,
44974
+ max_stream_duration: Optional['outputs.URLMapPathMatcherDefaultRouteActionMaxStreamDuration'] = None,
44235
44975
  request_mirror_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy'] = None,
44236
44976
  retry_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionRetryPolicy'] = None,
44237
44977
  timeout: Optional['outputs.URLMapPathMatcherDefaultRouteActionTimeout'] = None,
@@ -44247,6 +44987,12 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44247
44987
  by the Loadbalancer for a percentage of requests.
44248
44988
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
44249
44989
  Structure is documented below.
44990
+ :param 'URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
44991
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
44992
+ has been fully processed (known as end-of-stream), the duration in this field
44993
+ is computed from the beginning of the stream until the response has been processed,
44994
+ including all retries. A stream that does not complete in this duration is closed.
44995
+ Structure is documented below.
44250
44996
  :param 'URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs' request_mirror_policy: Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
44251
44997
  Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,
44252
44998
  the host / authority header is suffixed with -shadow.
@@ -44272,6 +45018,8 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44272
45018
  pulumi.set(__self__, "cors_policy", cors_policy)
44273
45019
  if fault_injection_policy is not None:
44274
45020
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
45021
+ if max_stream_duration is not None:
45022
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
44275
45023
  if request_mirror_policy is not None:
44276
45024
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
44277
45025
  if retry_policy is not None:
@@ -44306,6 +45054,19 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44306
45054
  """
44307
45055
  return pulumi.get(self, "fault_injection_policy")
44308
45056
 
45057
+ @property
45058
+ @pulumi.getter(name="maxStreamDuration")
45059
+ def max_stream_duration(self) -> Optional['outputs.URLMapPathMatcherDefaultRouteActionMaxStreamDuration']:
45060
+ """
45061
+ Specifies the maximum duration (timeout) for streams on the selected route.
45062
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
45063
+ has been fully processed (known as end-of-stream), the duration in this field
45064
+ is computed from the beginning of the stream until the response has been processed,
45065
+ including all retries. A stream that does not complete in this duration is closed.
45066
+ Structure is documented below.
45067
+ """
45068
+ return pulumi.get(self, "max_stream_duration")
45069
+
44309
45070
  @property
44310
45071
  @pulumi.getter(name="requestMirrorPolicy")
44311
45072
  def request_mirror_policy(self) -> Optional['outputs.URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy']:
@@ -44678,6 +45439,40 @@ class URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay(dic
44678
45439
  return pulumi.get(self, "seconds")
44679
45440
 
44680
45441
 
45442
+ @pulumi.output_type
45443
+ class URLMapPathMatcherDefaultRouteActionMaxStreamDuration(dict):
45444
+ def __init__(__self__, *,
45445
+ seconds: str,
45446
+ nanos: Optional[int] = None):
45447
+ """
45448
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
45449
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
45450
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
45451
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
45452
+ """
45453
+ pulumi.set(__self__, "seconds", seconds)
45454
+ if nanos is not None:
45455
+ pulumi.set(__self__, "nanos", nanos)
45456
+
45457
+ @property
45458
+ @pulumi.getter
45459
+ def seconds(self) -> str:
45460
+ """
45461
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
45462
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
45463
+ """
45464
+ return pulumi.get(self, "seconds")
45465
+
45466
+ @property
45467
+ @pulumi.getter
45468
+ def nanos(self) -> Optional[int]:
45469
+ """
45470
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
45471
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
45472
+ """
45473
+ return pulumi.get(self, "nanos")
45474
+
45475
+
44681
45476
  @pulumi.output_type
44682
45477
  class URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
44683
45478
  @staticmethod
@@ -45874,6 +46669,8 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45874
46669
  suggest = "cors_policy"
45875
46670
  elif key == "faultInjectionPolicy":
45876
46671
  suggest = "fault_injection_policy"
46672
+ elif key == "maxStreamDuration":
46673
+ suggest = "max_stream_duration"
45877
46674
  elif key == "requestMirrorPolicy":
45878
46675
  suggest = "request_mirror_policy"
45879
46676
  elif key == "retryPolicy":
@@ -45897,6 +46694,7 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45897
46694
  def __init__(__self__, *,
45898
46695
  cors_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionCorsPolicy'] = None,
45899
46696
  fault_injection_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicy'] = None,
46697
+ max_stream_duration: Optional['outputs.URLMapPathMatcherPathRuleRouteActionMaxStreamDuration'] = None,
45900
46698
  request_mirror_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy'] = None,
45901
46699
  retry_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionRetryPolicy'] = None,
45902
46700
  timeout: Optional['outputs.URLMapPathMatcherPathRuleRouteActionTimeout'] = None,
@@ -45914,6 +46712,12 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45914
46712
  Loadbalancer for a percentage of requests. timeout and retry_policy will be
45915
46713
  ignored by clients that are configured with a fault_injection_policy.
45916
46714
  Structure is documented below.
46715
+ :param 'URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
46716
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
46717
+ has been fully processed (known as end-of-stream), the duration in this field
46718
+ is computed from the beginning of the stream until the response has been processed,
46719
+ including all retries. A stream that does not complete in this duration is closed.
46720
+ Structure is documented below.
45917
46721
  :param 'URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs' request_mirror_policy: Specifies the policy on how requests intended for the route's backends are
45918
46722
  shadowed to a separate mirrored backend service. Loadbalancer does not wait for
45919
46723
  responses from the shadow service. Prior to sending traffic to the shadow
@@ -45943,6 +46747,8 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45943
46747
  pulumi.set(__self__, "cors_policy", cors_policy)
45944
46748
  if fault_injection_policy is not None:
45945
46749
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
46750
+ if max_stream_duration is not None:
46751
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
45946
46752
  if request_mirror_policy is not None:
45947
46753
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
45948
46754
  if retry_policy is not None:
@@ -45979,6 +46785,19 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45979
46785
  """
45980
46786
  return pulumi.get(self, "fault_injection_policy")
45981
46787
 
46788
+ @property
46789
+ @pulumi.getter(name="maxStreamDuration")
46790
+ def max_stream_duration(self) -> Optional['outputs.URLMapPathMatcherPathRuleRouteActionMaxStreamDuration']:
46791
+ """
46792
+ Specifies the maximum duration (timeout) for streams on the selected route.
46793
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
46794
+ has been fully processed (known as end-of-stream), the duration in this field
46795
+ is computed from the beginning of the stream until the response has been processed,
46796
+ including all retries. A stream that does not complete in this duration is closed.
46797
+ Structure is documented below.
46798
+ """
46799
+ return pulumi.get(self, "max_stream_duration")
46800
+
45982
46801
  @property
45983
46802
  @pulumi.getter(name="requestMirrorPolicy")
45984
46803
  def request_mirror_policy(self) -> Optional['outputs.URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy']:
@@ -46349,6 +47168,40 @@ class URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay(di
46349
47168
  return pulumi.get(self, "nanos")
46350
47169
 
46351
47170
 
47171
+ @pulumi.output_type
47172
+ class URLMapPathMatcherPathRuleRouteActionMaxStreamDuration(dict):
47173
+ def __init__(__self__, *,
47174
+ seconds: str,
47175
+ nanos: Optional[int] = None):
47176
+ """
47177
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
47178
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
47179
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
47180
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
47181
+ """
47182
+ pulumi.set(__self__, "seconds", seconds)
47183
+ if nanos is not None:
47184
+ pulumi.set(__self__, "nanos", nanos)
47185
+
47186
+ @property
47187
+ @pulumi.getter
47188
+ def seconds(self) -> str:
47189
+ """
47190
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
47191
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
47192
+ """
47193
+ return pulumi.get(self, "seconds")
47194
+
47195
+ @property
47196
+ @pulumi.getter
47197
+ def nanos(self) -> Optional[int]:
47198
+ """
47199
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
47200
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
47201
+ """
47202
+ return pulumi.get(self, "nanos")
47203
+
47204
+
46352
47205
  @pulumi.output_type
46353
47206
  class URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
46354
47207
  @staticmethod
@@ -48032,6 +48885,8 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48032
48885
  suggest = "cors_policy"
48033
48886
  elif key == "faultInjectionPolicy":
48034
48887
  suggest = "fault_injection_policy"
48888
+ elif key == "maxStreamDuration":
48889
+ suggest = "max_stream_duration"
48035
48890
  elif key == "requestMirrorPolicy":
48036
48891
  suggest = "request_mirror_policy"
48037
48892
  elif key == "retryPolicy":
@@ -48055,6 +48910,7 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48055
48910
  def __init__(__self__, *,
48056
48911
  cors_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionCorsPolicy'] = None,
48057
48912
  fault_injection_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy'] = None,
48913
+ max_stream_duration: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration'] = None,
48058
48914
  request_mirror_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy'] = None,
48059
48915
  retry_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionRetryPolicy'] = None,
48060
48916
  timeout: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionTimeout'] = None,
@@ -48072,6 +48928,12 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48072
48928
  Loadbalancer for a percentage of requests. timeout and retry_policy will be
48073
48929
  ignored by clients that are configured with a fault_injection_policy.
48074
48930
  Structure is documented below.
48931
+ :param 'URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
48932
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
48933
+ has been fully processed (known as end-of-stream), the duration in this field
48934
+ is computed from the beginning of the stream until the response has been processed,
48935
+ including all retries. A stream that does not complete in this duration is closed.
48936
+ Structure is documented below.
48075
48937
  :param 'URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs' request_mirror_policy: Specifies the policy on how requests intended for the route's backends are
48076
48938
  shadowed to a separate mirrored backend service. Loadbalancer does not wait for
48077
48939
  responses from the shadow service. Prior to sending traffic to the shadow
@@ -48101,6 +48963,8 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48101
48963
  pulumi.set(__self__, "cors_policy", cors_policy)
48102
48964
  if fault_injection_policy is not None:
48103
48965
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
48966
+ if max_stream_duration is not None:
48967
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
48104
48968
  if request_mirror_policy is not None:
48105
48969
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
48106
48970
  if retry_policy is not None:
@@ -48137,6 +49001,19 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48137
49001
  """
48138
49002
  return pulumi.get(self, "fault_injection_policy")
48139
49003
 
49004
+ @property
49005
+ @pulumi.getter(name="maxStreamDuration")
49006
+ def max_stream_duration(self) -> Optional['outputs.URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration']:
49007
+ """
49008
+ Specifies the maximum duration (timeout) for streams on the selected route.
49009
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
49010
+ has been fully processed (known as end-of-stream), the duration in this field
49011
+ is computed from the beginning of the stream until the response has been processed,
49012
+ including all retries. A stream that does not complete in this duration is closed.
49013
+ Structure is documented below.
49014
+ """
49015
+ return pulumi.get(self, "max_stream_duration")
49016
+
48140
49017
  @property
48141
49018
  @pulumi.getter(name="requestMirrorPolicy")
48142
49019
  def request_mirror_policy(self) -> Optional['outputs.URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy']:
@@ -48512,6 +49389,40 @@ class URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay(d
48512
49389
  return pulumi.get(self, "nanos")
48513
49390
 
48514
49391
 
49392
+ @pulumi.output_type
49393
+ class URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration(dict):
49394
+ def __init__(__self__, *,
49395
+ seconds: str,
49396
+ nanos: Optional[int] = None):
49397
+ """
49398
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
49399
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
49400
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
49401
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
49402
+ """
49403
+ pulumi.set(__self__, "seconds", seconds)
49404
+ if nanos is not None:
49405
+ pulumi.set(__self__, "nanos", nanos)
49406
+
49407
+ @property
49408
+ @pulumi.getter
49409
+ def seconds(self) -> str:
49410
+ """
49411
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
49412
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
49413
+ """
49414
+ return pulumi.get(self, "seconds")
49415
+
49416
+ @property
49417
+ @pulumi.getter
49418
+ def nanos(self) -> Optional[int]:
49419
+ """
49420
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
49421
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
49422
+ """
49423
+ return pulumi.get(self, "nanos")
49424
+
49425
+
48515
49426
  @pulumi.output_type
48516
49427
  class URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
48517
49428
  @staticmethod
@@ -51158,6 +52069,28 @@ class GetDiskGuestOsFeatureResult(dict):
51158
52069
  return pulumi.get(self, "type")
51159
52070
 
51160
52071
 
52072
+ @pulumi.output_type
52073
+ class GetDiskParamResult(dict):
52074
+ def __init__(__self__, *,
52075
+ resource_manager_tags: Mapping[str, str]):
52076
+ """
52077
+ :param Mapping[str, str] resource_manager_tags: Resource manager tags to be bound to the disk. Tag keys and values have the
52078
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
52079
+ and values are in the format tagValues/456.
52080
+ """
52081
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
52082
+
52083
+ @property
52084
+ @pulumi.getter(name="resourceManagerTags")
52085
+ def resource_manager_tags(self) -> Mapping[str, str]:
52086
+ """
52087
+ Resource manager tags to be bound to the disk. Tag keys and values have the
52088
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
52089
+ and values are in the format tagValues/456.
52090
+ """
52091
+ return pulumi.get(self, "resource_manager_tags")
52092
+
52093
+
51161
52094
  @pulumi.output_type
51162
52095
  class GetDiskSourceImageEncryptionKeyResult(dict):
51163
52096
  def __init__(__self__, *,
@@ -54162,7 +55095,7 @@ class GetInstanceNetworkInterfaceResult(dict):
54162
55095
  :param str ipv6_address: An IPv6 internal network address for this network interface. If not specified, Google Cloud will automatically assign an internal IPv6 address from the instance's subnetwork.
54163
55096
  :param str name: The name of the instance. One of `name` or `self_link` must be provided.
54164
55097
  :param str network: The name or self_link of the network attached to this interface.
54165
- :param str network_attachment: Beta The URL of the network attachment to this interface.
55098
+ :param str network_attachment: The URL of the network attachment to this interface.
54166
55099
  :param str network_ip: The internal ip address of the instance, either manually or dynamically assigned.
54167
55100
  :param str nic_type: The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET, IDPF, MRDMA, and IRDMA
54168
55101
  :param int queue_count: The networking queue count that's specified by users for the network interface. Both Rx and Tx queues will be set to this number. It will be empty if not specified.
@@ -54257,7 +55190,7 @@ class GetInstanceNetworkInterfaceResult(dict):
54257
55190
  @pulumi.getter(name="networkAttachment")
54258
55191
  def network_attachment(self) -> str:
54259
55192
  """
54260
- Beta The URL of the network attachment to this interface.
55193
+ The URL of the network attachment to this interface.
54261
55194
  """
54262
55195
  return pulumi.get(self, "network_attachment")
54263
55196
 
@@ -60196,11 +61129,14 @@ class GetRouterNatSubnetworkResult(dict):
60196
61129
  @pulumi.output_type
60197
61130
  class GetRouterStatusBestRouteResult(dict):
60198
61131
  def __init__(__self__, *,
61132
+ as_paths: Sequence['outputs.GetRouterStatusBestRouteAsPathResult'],
61133
+ creation_timestamp: str,
60199
61134
  description: str,
60200
61135
  dest_range: str,
60201
61136
  name: str,
60202
61137
  network: str,
60203
61138
  next_hop_gateway: str,
61139
+ next_hop_hub: str,
60204
61140
  next_hop_ilb: str,
60205
61141
  next_hop_instance: str,
60206
61142
  next_hop_instance_zone: str,
@@ -60209,12 +61145,17 @@ class GetRouterStatusBestRouteResult(dict):
60209
61145
  next_hop_med: str,
60210
61146
  next_hop_network: str,
60211
61147
  next_hop_origin: str,
61148
+ next_hop_peering: str,
60212
61149
  next_hop_vpn_tunnel: str,
60213
61150
  priority: int,
60214
61151
  project: str,
61152
+ route_status: str,
61153
+ route_type: str,
60215
61154
  self_link: str,
60216
- tags: Sequence[str]):
61155
+ tags: Sequence[str],
61156
+ warnings: Sequence['outputs.GetRouterStatusBestRouteWarningResult']):
60217
61157
  """
61158
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
60218
61159
  :param str description: An optional description of this resource. Provide this property
60219
61160
  when you create the resource.
60220
61161
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -60229,6 +61170,7 @@ class GetRouterStatusBestRouteResult(dict):
60229
61170
  * 'projects/project/global/gateways/default-internet-gateway'
60230
61171
  * 'global/gateways/default-internet-gateway'
60231
61172
  * The string 'default-internet-gateway'.
61173
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
60232
61174
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
60233
61175
  loadBalancingScheme=INTERNAL that should handle matching
60234
61176
  packets.
@@ -60257,6 +61199,7 @@ class GetRouterStatusBestRouteResult(dict):
60257
61199
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
60258
61200
  :param str next_hop_network: URL to a Network that should handle matching packets.
60259
61201
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
61202
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
60260
61203
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
60261
61204
  :param int priority: The priority of this route. Priority is used to break ties in cases
60262
61205
  where there is more than one matching route of equal prefix length.
@@ -60267,13 +61210,25 @@ class GetRouterStatusBestRouteResult(dict):
60267
61210
  Default value is 1000. Valid range is 0 through 65535.
60268
61211
  :param str project: The ID of the project in which the resource
60269
61212
  belongs. If it is not provided, the provider project is used.
61213
+ :param str route_status: The status of the route, which can be one of the following values:
61214
+ - 'ACTIVE' for an active route
61215
+ - 'INACTIVE' for an inactive route
61216
+ :param str route_type: The type of this route, which can be one of the following values:
61217
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
61218
+ - 'SUBNET' for a route from a subnet of the VPC
61219
+ - 'BGP' for a route learned from a BGP peer of this router
61220
+ - 'STATIC' for a static route
60270
61221
  :param Sequence[str] tags: A list of instance tags to which this route applies.
61222
+ :param Sequence['GetRouterStatusBestRouteWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
60271
61223
  """
61224
+ pulumi.set(__self__, "as_paths", as_paths)
61225
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
60272
61226
  pulumi.set(__self__, "description", description)
60273
61227
  pulumi.set(__self__, "dest_range", dest_range)
60274
61228
  pulumi.set(__self__, "name", name)
60275
61229
  pulumi.set(__self__, "network", network)
60276
61230
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
61231
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
60277
61232
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
60278
61233
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
60279
61234
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -60282,11 +61237,28 @@ class GetRouterStatusBestRouteResult(dict):
60282
61237
  pulumi.set(__self__, "next_hop_med", next_hop_med)
60283
61238
  pulumi.set(__self__, "next_hop_network", next_hop_network)
60284
61239
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
61240
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
60285
61241
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
60286
61242
  pulumi.set(__self__, "priority", priority)
60287
61243
  pulumi.set(__self__, "project", project)
61244
+ pulumi.set(__self__, "route_status", route_status)
61245
+ pulumi.set(__self__, "route_type", route_type)
60288
61246
  pulumi.set(__self__, "self_link", self_link)
60289
61247
  pulumi.set(__self__, "tags", tags)
61248
+ pulumi.set(__self__, "warnings", warnings)
61249
+
61250
+ @property
61251
+ @pulumi.getter(name="asPaths")
61252
+ def as_paths(self) -> Sequence['outputs.GetRouterStatusBestRouteAsPathResult']:
61253
+ return pulumi.get(self, "as_paths")
61254
+
61255
+ @property
61256
+ @pulumi.getter(name="creationTimestamp")
61257
+ def creation_timestamp(self) -> str:
61258
+ """
61259
+ Creation timestamp in RFC3339 text format.
61260
+ """
61261
+ return pulumi.get(self, "creation_timestamp")
60290
61262
 
60291
61263
  @property
60292
61264
  @pulumi.getter
@@ -60337,6 +61309,14 @@ class GetRouterStatusBestRouteResult(dict):
60337
61309
  """
60338
61310
  return pulumi.get(self, "next_hop_gateway")
60339
61311
 
61312
+ @property
61313
+ @pulumi.getter(name="nextHopHub")
61314
+ def next_hop_hub(self) -> str:
61315
+ """
61316
+ The hub network that should handle matching packets, which should conform to RFC1035.
61317
+ """
61318
+ return pulumi.get(self, "next_hop_hub")
61319
+
60340
61320
  @property
60341
61321
  @pulumi.getter(name="nextHopIlb")
60342
61322
  def next_hop_ilb(self) -> str:
@@ -60421,6 +61401,14 @@ class GetRouterStatusBestRouteResult(dict):
60421
61401
  """
60422
61402
  return pulumi.get(self, "next_hop_origin")
60423
61403
 
61404
+ @property
61405
+ @pulumi.getter(name="nextHopPeering")
61406
+ def next_hop_peering(self) -> str:
61407
+ """
61408
+ The network peering name that should handle matching packets, which should conform to RFC1035.
61409
+ """
61410
+ return pulumi.get(self, "next_hop_peering")
61411
+
60424
61412
  @property
60425
61413
  @pulumi.getter(name="nextHopVpnTunnel")
60426
61414
  def next_hop_vpn_tunnel(self) -> str:
@@ -60452,6 +61440,28 @@ class GetRouterStatusBestRouteResult(dict):
60452
61440
  """
60453
61441
  return pulumi.get(self, "project")
60454
61442
 
61443
+ @property
61444
+ @pulumi.getter(name="routeStatus")
61445
+ def route_status(self) -> str:
61446
+ """
61447
+ The status of the route, which can be one of the following values:
61448
+ - 'ACTIVE' for an active route
61449
+ - 'INACTIVE' for an inactive route
61450
+ """
61451
+ return pulumi.get(self, "route_status")
61452
+
61453
+ @property
61454
+ @pulumi.getter(name="routeType")
61455
+ def route_type(self) -> str:
61456
+ """
61457
+ The type of this route, which can be one of the following values:
61458
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
61459
+ - 'SUBNET' for a route from a subnet of the VPC
61460
+ - 'BGP' for a route learned from a BGP peer of this router
61461
+ - 'STATIC' for a static route
61462
+ """
61463
+ return pulumi.get(self, "route_type")
61464
+
60455
61465
  @property
60456
61466
  @pulumi.getter(name="selfLink")
60457
61467
  def self_link(self) -> str:
@@ -60465,15 +61475,136 @@ class GetRouterStatusBestRouteResult(dict):
60465
61475
  """
60466
61476
  return pulumi.get(self, "tags")
60467
61477
 
61478
+ @property
61479
+ @pulumi.getter
61480
+ def warnings(self) -> Sequence['outputs.GetRouterStatusBestRouteWarningResult']:
61481
+ """
61482
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
61483
+ """
61484
+ return pulumi.get(self, "warnings")
61485
+
61486
+
61487
+ @pulumi.output_type
61488
+ class GetRouterStatusBestRouteAsPathResult(dict):
61489
+ def __init__(__self__, *,
61490
+ as_lists: Sequence[int],
61491
+ path_segment_type: str):
61492
+ """
61493
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
61494
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
61495
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
61496
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
61497
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
61498
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
61499
+ """
61500
+ pulumi.set(__self__, "as_lists", as_lists)
61501
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
61502
+
61503
+ @property
61504
+ @pulumi.getter(name="asLists")
61505
+ def as_lists(self) -> Sequence[int]:
61506
+ """
61507
+ The AS numbers of the AS Path.
61508
+ """
61509
+ return pulumi.get(self, "as_lists")
61510
+
61511
+ @property
61512
+ @pulumi.getter(name="pathSegmentType")
61513
+ def path_segment_type(self) -> str:
61514
+ """
61515
+ The type of the AS Path, which can be one of the following values:
61516
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
61517
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
61518
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
61519
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
61520
+ """
61521
+ return pulumi.get(self, "path_segment_type")
61522
+
61523
+
61524
+ @pulumi.output_type
61525
+ class GetRouterStatusBestRouteWarningResult(dict):
61526
+ def __init__(__self__, *,
61527
+ code: str,
61528
+ datas: Sequence['outputs.GetRouterStatusBestRouteWarningDataResult'],
61529
+ message: str):
61530
+ """
61531
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
61532
+ NO_RESULTS_ON_PAGE if there are no results in the response.
61533
+ :param Sequence['GetRouterStatusBestRouteWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
61534
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
61535
+ :param str message: A human-readable description of the warning code.
61536
+ """
61537
+ pulumi.set(__self__, "code", code)
61538
+ pulumi.set(__self__, "datas", datas)
61539
+ pulumi.set(__self__, "message", message)
61540
+
61541
+ @property
61542
+ @pulumi.getter
61543
+ def code(self) -> str:
61544
+ """
61545
+ A warning code, if applicable. For example, Compute Engine returns
61546
+ NO_RESULTS_ON_PAGE if there are no results in the response.
61547
+ """
61548
+ return pulumi.get(self, "code")
61549
+
61550
+ @property
61551
+ @pulumi.getter
61552
+ def datas(self) -> Sequence['outputs.GetRouterStatusBestRouteWarningDataResult']:
61553
+ """
61554
+ Metadata about this warning in key: value format. For example:
61555
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
61556
+ """
61557
+ return pulumi.get(self, "datas")
61558
+
61559
+ @property
61560
+ @pulumi.getter
61561
+ def message(self) -> str:
61562
+ """
61563
+ A human-readable description of the warning code.
61564
+ """
61565
+ return pulumi.get(self, "message")
61566
+
61567
+
61568
+ @pulumi.output_type
61569
+ class GetRouterStatusBestRouteWarningDataResult(dict):
61570
+ def __init__(__self__, *,
61571
+ key: str,
61572
+ value: str):
61573
+ """
61574
+ :param str key: A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
61575
+ :param str value: A warning data value corresponding to the key.
61576
+ """
61577
+ pulumi.set(__self__, "key", key)
61578
+ pulumi.set(__self__, "value", value)
61579
+
61580
+ @property
61581
+ @pulumi.getter
61582
+ def key(self) -> str:
61583
+ """
61584
+ A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
61585
+ """
61586
+ return pulumi.get(self, "key")
61587
+
61588
+ @property
61589
+ @pulumi.getter
61590
+ def value(self) -> str:
61591
+ """
61592
+ A warning data value corresponding to the key.
61593
+ """
61594
+ return pulumi.get(self, "value")
61595
+
60468
61596
 
60469
61597
  @pulumi.output_type
60470
61598
  class GetRouterStatusBestRoutesForRouterResult(dict):
60471
61599
  def __init__(__self__, *,
61600
+ as_paths: Sequence['outputs.GetRouterStatusBestRoutesForRouterAsPathResult'],
61601
+ creation_timestamp: str,
60472
61602
  description: str,
60473
61603
  dest_range: str,
60474
61604
  name: str,
60475
61605
  network: str,
60476
61606
  next_hop_gateway: str,
61607
+ next_hop_hub: str,
60477
61608
  next_hop_ilb: str,
60478
61609
  next_hop_instance: str,
60479
61610
  next_hop_instance_zone: str,
@@ -60482,12 +61613,17 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60482
61613
  next_hop_med: str,
60483
61614
  next_hop_network: str,
60484
61615
  next_hop_origin: str,
61616
+ next_hop_peering: str,
60485
61617
  next_hop_vpn_tunnel: str,
60486
61618
  priority: int,
60487
61619
  project: str,
61620
+ route_status: str,
61621
+ route_type: str,
60488
61622
  self_link: str,
60489
- tags: Sequence[str]):
61623
+ tags: Sequence[str],
61624
+ warnings: Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningResult']):
60490
61625
  """
61626
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
60491
61627
  :param str description: An optional description of this resource. Provide this property
60492
61628
  when you create the resource.
60493
61629
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -60502,6 +61638,7 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60502
61638
  * 'projects/project/global/gateways/default-internet-gateway'
60503
61639
  * 'global/gateways/default-internet-gateway'
60504
61640
  * The string 'default-internet-gateway'.
61641
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
60505
61642
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
60506
61643
  loadBalancingScheme=INTERNAL that should handle matching
60507
61644
  packets.
@@ -60530,6 +61667,7 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60530
61667
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
60531
61668
  :param str next_hop_network: URL to a Network that should handle matching packets.
60532
61669
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
61670
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
60533
61671
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
60534
61672
  :param int priority: The priority of this route. Priority is used to break ties in cases
60535
61673
  where there is more than one matching route of equal prefix length.
@@ -60540,13 +61678,25 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60540
61678
  Default value is 1000. Valid range is 0 through 65535.
60541
61679
  :param str project: The ID of the project in which the resource
60542
61680
  belongs. If it is not provided, the provider project is used.
61681
+ :param str route_status: The status of the route, which can be one of the following values:
61682
+ - 'ACTIVE' for an active route
61683
+ - 'INACTIVE' for an inactive route
61684
+ :param str route_type: The type of this route, which can be one of the following values:
61685
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
61686
+ - 'SUBNET' for a route from a subnet of the VPC
61687
+ - 'BGP' for a route learned from a BGP peer of this router
61688
+ - 'STATIC' for a static route
60543
61689
  :param Sequence[str] tags: A list of instance tags to which this route applies.
61690
+ :param Sequence['GetRouterStatusBestRoutesForRouterWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
60544
61691
  """
61692
+ pulumi.set(__self__, "as_paths", as_paths)
61693
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
60545
61694
  pulumi.set(__self__, "description", description)
60546
61695
  pulumi.set(__self__, "dest_range", dest_range)
60547
61696
  pulumi.set(__self__, "name", name)
60548
61697
  pulumi.set(__self__, "network", network)
60549
61698
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
61699
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
60550
61700
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
60551
61701
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
60552
61702
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -60555,11 +61705,28 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60555
61705
  pulumi.set(__self__, "next_hop_med", next_hop_med)
60556
61706
  pulumi.set(__self__, "next_hop_network", next_hop_network)
60557
61707
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
61708
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
60558
61709
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
60559
61710
  pulumi.set(__self__, "priority", priority)
60560
61711
  pulumi.set(__self__, "project", project)
61712
+ pulumi.set(__self__, "route_status", route_status)
61713
+ pulumi.set(__self__, "route_type", route_type)
60561
61714
  pulumi.set(__self__, "self_link", self_link)
60562
61715
  pulumi.set(__self__, "tags", tags)
61716
+ pulumi.set(__self__, "warnings", warnings)
61717
+
61718
+ @property
61719
+ @pulumi.getter(name="asPaths")
61720
+ def as_paths(self) -> Sequence['outputs.GetRouterStatusBestRoutesForRouterAsPathResult']:
61721
+ return pulumi.get(self, "as_paths")
61722
+
61723
+ @property
61724
+ @pulumi.getter(name="creationTimestamp")
61725
+ def creation_timestamp(self) -> str:
61726
+ """
61727
+ Creation timestamp in RFC3339 text format.
61728
+ """
61729
+ return pulumi.get(self, "creation_timestamp")
60563
61730
 
60564
61731
  @property
60565
61732
  @pulumi.getter
@@ -60610,6 +61777,14 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60610
61777
  """
60611
61778
  return pulumi.get(self, "next_hop_gateway")
60612
61779
 
61780
+ @property
61781
+ @pulumi.getter(name="nextHopHub")
61782
+ def next_hop_hub(self) -> str:
61783
+ """
61784
+ The hub network that should handle matching packets, which should conform to RFC1035.
61785
+ """
61786
+ return pulumi.get(self, "next_hop_hub")
61787
+
60613
61788
  @property
60614
61789
  @pulumi.getter(name="nextHopIlb")
60615
61790
  def next_hop_ilb(self) -> str:
@@ -60694,6 +61869,14 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60694
61869
  """
60695
61870
  return pulumi.get(self, "next_hop_origin")
60696
61871
 
61872
+ @property
61873
+ @pulumi.getter(name="nextHopPeering")
61874
+ def next_hop_peering(self) -> str:
61875
+ """
61876
+ The network peering name that should handle matching packets, which should conform to RFC1035.
61877
+ """
61878
+ return pulumi.get(self, "next_hop_peering")
61879
+
60697
61880
  @property
60698
61881
  @pulumi.getter(name="nextHopVpnTunnel")
60699
61882
  def next_hop_vpn_tunnel(self) -> str:
@@ -60725,6 +61908,28 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60725
61908
  """
60726
61909
  return pulumi.get(self, "project")
60727
61910
 
61911
+ @property
61912
+ @pulumi.getter(name="routeStatus")
61913
+ def route_status(self) -> str:
61914
+ """
61915
+ The status of the route, which can be one of the following values:
61916
+ - 'ACTIVE' for an active route
61917
+ - 'INACTIVE' for an inactive route
61918
+ """
61919
+ return pulumi.get(self, "route_status")
61920
+
61921
+ @property
61922
+ @pulumi.getter(name="routeType")
61923
+ def route_type(self) -> str:
61924
+ """
61925
+ The type of this route, which can be one of the following values:
61926
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
61927
+ - 'SUBNET' for a route from a subnet of the VPC
61928
+ - 'BGP' for a route learned from a BGP peer of this router
61929
+ - 'STATIC' for a static route
61930
+ """
61931
+ return pulumi.get(self, "route_type")
61932
+
60728
61933
  @property
60729
61934
  @pulumi.getter(name="selfLink")
60730
61935
  def self_link(self) -> str:
@@ -60738,6 +61943,124 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60738
61943
  """
60739
61944
  return pulumi.get(self, "tags")
60740
61945
 
61946
+ @property
61947
+ @pulumi.getter
61948
+ def warnings(self) -> Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningResult']:
61949
+ """
61950
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
61951
+ """
61952
+ return pulumi.get(self, "warnings")
61953
+
61954
+
61955
+ @pulumi.output_type
61956
+ class GetRouterStatusBestRoutesForRouterAsPathResult(dict):
61957
+ def __init__(__self__, *,
61958
+ as_lists: Sequence[int],
61959
+ path_segment_type: str):
61960
+ """
61961
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
61962
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
61963
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
61964
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
61965
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
61966
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
61967
+ """
61968
+ pulumi.set(__self__, "as_lists", as_lists)
61969
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
61970
+
61971
+ @property
61972
+ @pulumi.getter(name="asLists")
61973
+ def as_lists(self) -> Sequence[int]:
61974
+ """
61975
+ The AS numbers of the AS Path.
61976
+ """
61977
+ return pulumi.get(self, "as_lists")
61978
+
61979
+ @property
61980
+ @pulumi.getter(name="pathSegmentType")
61981
+ def path_segment_type(self) -> str:
61982
+ """
61983
+ The type of the AS Path, which can be one of the following values:
61984
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
61985
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
61986
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
61987
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
61988
+ """
61989
+ return pulumi.get(self, "path_segment_type")
61990
+
61991
+
61992
+ @pulumi.output_type
61993
+ class GetRouterStatusBestRoutesForRouterWarningResult(dict):
61994
+ def __init__(__self__, *,
61995
+ code: str,
61996
+ datas: Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningDataResult'],
61997
+ message: str):
61998
+ """
61999
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
62000
+ NO_RESULTS_ON_PAGE if there are no results in the response.
62001
+ :param Sequence['GetRouterStatusBestRoutesForRouterWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
62002
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
62003
+ :param str message: A human-readable description of the warning code.
62004
+ """
62005
+ pulumi.set(__self__, "code", code)
62006
+ pulumi.set(__self__, "datas", datas)
62007
+ pulumi.set(__self__, "message", message)
62008
+
62009
+ @property
62010
+ @pulumi.getter
62011
+ def code(self) -> str:
62012
+ """
62013
+ A warning code, if applicable. For example, Compute Engine returns
62014
+ NO_RESULTS_ON_PAGE if there are no results in the response.
62015
+ """
62016
+ return pulumi.get(self, "code")
62017
+
62018
+ @property
62019
+ @pulumi.getter
62020
+ def datas(self) -> Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningDataResult']:
62021
+ """
62022
+ Metadata about this warning in key: value format. For example:
62023
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
62024
+ """
62025
+ return pulumi.get(self, "datas")
62026
+
62027
+ @property
62028
+ @pulumi.getter
62029
+ def message(self) -> str:
62030
+ """
62031
+ A human-readable description of the warning code.
62032
+ """
62033
+ return pulumi.get(self, "message")
62034
+
62035
+
62036
+ @pulumi.output_type
62037
+ class GetRouterStatusBestRoutesForRouterWarningDataResult(dict):
62038
+ def __init__(__self__, *,
62039
+ key: str,
62040
+ value: str):
62041
+ """
62042
+ :param str key: A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
62043
+ :param str value: A warning data value corresponding to the key.
62044
+ """
62045
+ pulumi.set(__self__, "key", key)
62046
+ pulumi.set(__self__, "value", value)
62047
+
62048
+ @property
62049
+ @pulumi.getter
62050
+ def key(self) -> str:
62051
+ """
62052
+ A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).
62053
+ """
62054
+ return pulumi.get(self, "key")
62055
+
62056
+ @property
62057
+ @pulumi.getter
62058
+ def value(self) -> str:
62059
+ """
62060
+ A warning data value corresponding to the key.
62061
+ """
62062
+ return pulumi.get(self, "value")
62063
+
60741
62064
 
60742
62065
  @pulumi.output_type
60743
62066
  class GetSecurityPolicyAdaptiveProtectionConfigResult(dict):