pulumi-gcp 8.21.0a1741156431__py3-none-any.whl → 8.22.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. pulumi_gcp/__init__.py +96 -0
  2. pulumi_gcp/alloydb/_inputs.py +66 -0
  3. pulumi_gcp/alloydb/cluster.py +148 -0
  4. pulumi_gcp/alloydb/instance.py +28 -28
  5. pulumi_gcp/alloydb/outputs.py +95 -0
  6. pulumi_gcp/apihub/__init__.py +1 -0
  7. pulumi_gcp/apihub/host_project_registration.py +535 -0
  8. pulumi_gcp/backupdisasterrecovery/_inputs.py +3 -3
  9. pulumi_gcp/backupdisasterrecovery/outputs.py +4 -4
  10. pulumi_gcp/bigquery/table.py +1 -1
  11. pulumi_gcp/certificatemanager/certificate.py +53 -7
  12. pulumi_gcp/certificatemanager/outputs.py +8 -2
  13. pulumi_gcp/compute/__init__.py +6 -0
  14. pulumi_gcp/compute/_inputs.py +1370 -17
  15. pulumi_gcp/compute/backend_service.py +209 -14
  16. pulumi_gcp/compute/ca_external_account_key.py +48 -3
  17. pulumi_gcp/compute/disk.py +403 -0
  18. pulumi_gcp/compute/firewall_policy_association.py +28 -2
  19. pulumi_gcp/compute/get_backend_service.py +12 -1
  20. pulumi_gcp/compute/get_disk.py +78 -1
  21. pulumi_gcp/compute/get_instant_snapshot_iam_policy.py +182 -0
  22. pulumi_gcp/compute/get_region_disk.py +23 -1
  23. pulumi_gcp/compute/get_region_ssl_policy.py +203 -0
  24. pulumi_gcp/compute/instant_snapshot.py +796 -0
  25. pulumi_gcp/compute/instant_snapshot_iam_binding.py +1087 -0
  26. pulumi_gcp/compute/instant_snapshot_iam_member.py +1087 -0
  27. pulumi_gcp/compute/instant_snapshot_iam_policy.py +906 -0
  28. pulumi_gcp/compute/outputs.py +1952 -29
  29. pulumi_gcp/compute/region_backend_service.py +207 -14
  30. pulumi_gcp/compute/region_disk.py +114 -0
  31. pulumi_gcp/compute/route.py +228 -2
  32. pulumi_gcp/compute/shared_vpc_service_project.py +0 -4
  33. pulumi_gcp/compute/subnetwork.py +147 -0
  34. pulumi_gcp/compute/url_map.py +8 -0
  35. pulumi_gcp/container/_inputs.py +6 -6
  36. pulumi_gcp/container/outputs.py +8 -8
  37. pulumi_gcp/datacatalog/entry.py +4 -0
  38. pulumi_gcp/datacatalog/tag.py +4 -0
  39. pulumi_gcp/dataproc/_inputs.py +12 -15
  40. pulumi_gcp/dataproc/outputs.py +8 -10
  41. pulumi_gcp/datastream/_inputs.py +273 -0
  42. pulumi_gcp/datastream/connection_profile.py +54 -2
  43. pulumi_gcp/datastream/outputs.py +224 -0
  44. pulumi_gcp/discoveryengine/target_site.py +4 -4
  45. pulumi_gcp/eventarc/__init__.py +2 -0
  46. pulumi_gcp/eventarc/_inputs.py +80 -0
  47. pulumi_gcp/eventarc/channel.py +85 -93
  48. pulumi_gcp/eventarc/google_api_source.py +997 -0
  49. pulumi_gcp/eventarc/message_bus.py +927 -0
  50. pulumi_gcp/eventarc/outputs.py +82 -0
  51. pulumi_gcp/firebase/data_connect_service.py +40 -2
  52. pulumi_gcp/gemini/__init__.py +1 -0
  53. pulumi_gcp/gemini/data_sharing_with_google_setting_binding.py +20 -8
  54. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +6 -0
  55. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +734 -0
  56. pulumi_gcp/gemini/logging_setting_binding.py +7 -7
  57. pulumi_gcp/iam/__init__.py +2 -0
  58. pulumi_gcp/iam/_inputs.py +84 -27
  59. pulumi_gcp/iam/folders_policy_binding.py +10 -26
  60. pulumi_gcp/iam/oauth_client.py +979 -0
  61. pulumi_gcp/iam/oauth_client_credential.py +641 -0
  62. pulumi_gcp/iam/organizations_policy_binding.py +8 -24
  63. pulumi_gcp/iam/outputs.py +56 -18
  64. pulumi_gcp/iam/principal_access_boundary_policy.py +58 -22
  65. pulumi_gcp/iam/projects_policy_binding.py +8 -24
  66. pulumi_gcp/iam/workforce_pool_provider.py +2 -2
  67. pulumi_gcp/kms/crypto_key_version.py +14 -7
  68. pulumi_gcp/memorystore/__init__.py +1 -0
  69. pulumi_gcp/memorystore/get_instance.py +425 -0
  70. pulumi_gcp/memorystore/outputs.py +582 -0
  71. pulumi_gcp/monitoring/_inputs.py +15 -18
  72. pulumi_gcp/monitoring/alert_policy.py +46 -0
  73. pulumi_gcp/monitoring/outputs.py +10 -12
  74. pulumi_gcp/networkconnectivity/hub.py +84 -0
  75. pulumi_gcp/networksecurity/__init__.py +1 -0
  76. pulumi_gcp/networksecurity/_inputs.py +30 -18
  77. pulumi_gcp/networksecurity/backend_authentication_config.py +847 -0
  78. pulumi_gcp/networksecurity/intercept_deployment.py +178 -94
  79. pulumi_gcp/networksecurity/intercept_deployment_group.py +161 -77
  80. pulumi_gcp/networksecurity/intercept_endpoint_group.py +161 -66
  81. pulumi_gcp/networksecurity/intercept_endpoint_group_association.py +137 -80
  82. pulumi_gcp/networksecurity/mirroring_deployment.py +178 -94
  83. pulumi_gcp/networksecurity/mirroring_deployment_group.py +161 -77
  84. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +161 -80
  85. pulumi_gcp/networksecurity/mirroring_endpoint_group_association.py +137 -105
  86. pulumi_gcp/networksecurity/outputs.py +20 -12
  87. pulumi_gcp/networkservices/endpoint_policy.py +12 -0
  88. pulumi_gcp/networkservices/grpc_route.py +128 -12
  89. pulumi_gcp/networkservices/http_route.py +16 -0
  90. pulumi_gcp/networkservices/mesh.py +16 -0
  91. pulumi_gcp/networkservices/service_binding.py +14 -0
  92. pulumi_gcp/networkservices/tcp_route.py +16 -0
  93. pulumi_gcp/networkservices/tls_route.py +12 -0
  94. pulumi_gcp/notebooks/location.py +4 -0
  95. pulumi_gcp/pulumi-plugin.json +1 -1
  96. pulumi_gcp/storage/__init__.py +1 -0
  97. pulumi_gcp/storage/_inputs.py +74 -0
  98. pulumi_gcp/storage/anywhere_cache.py +552 -0
  99. pulumi_gcp/storage/outputs.py +65 -0
  100. pulumi_gcp/storage/transfer_job.py +67 -0
  101. pulumi_gcp/tpu/_inputs.py +21 -1
  102. pulumi_gcp/tpu/outputs.py +13 -1
  103. pulumi_gcp/tpu/v2_vm.py +2 -0
  104. pulumi_gcp/vmwareengine/_inputs.py +6 -0
  105. pulumi_gcp/vmwareengine/outputs.py +8 -0
  106. pulumi_gcp/workstations/workstation_cluster.py +137 -1
  107. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/METADATA +1 -1
  108. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/RECORD +110 -95
  109. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/WHEEL +1 -1
  110. {pulumi_gcp-8.21.0a1741156431.dist-info → pulumi_gcp-8.22.0.dist-info}/top_level.txt +0 -0
@@ -32,6 +32,7 @@ __all__ = [
32
32
  'BackendBucketIamBindingCondition',
33
33
  'BackendBucketIamMemberCondition',
34
34
  'BackendServiceBackend',
35
+ 'BackendServiceBackendCustomMetric',
35
36
  'BackendServiceCdnPolicy',
36
37
  'BackendServiceCdnPolicyBypassCacheOnRequestHeader',
37
38
  'BackendServiceCdnPolicyCacheKeyPolicy',
@@ -41,6 +42,7 @@ __all__ = [
41
42
  'BackendServiceConsistentHash',
42
43
  'BackendServiceConsistentHashHttpCookie',
43
44
  'BackendServiceConsistentHashHttpCookieTtl',
45
+ 'BackendServiceCustomMetric',
44
46
  'BackendServiceIamBindingCondition',
45
47
  'BackendServiceIamMemberCondition',
46
48
  'BackendServiceIap',
@@ -61,6 +63,7 @@ __all__ = [
61
63
  'DiskGuestOsFeature',
62
64
  'DiskIamBindingCondition',
63
65
  'DiskIamMemberCondition',
66
+ 'DiskParams',
64
67
  'DiskSourceImageEncryptionKey',
65
68
  'DiskSourceSnapshotEncryptionKey',
66
69
  'ExternalVpnGatewayInterface',
@@ -210,6 +213,8 @@ __all__ = [
210
213
  'InstanceTemplateSchedulingOnInstanceStopAction',
211
214
  'InstanceTemplateServiceAccount',
212
215
  'InstanceTemplateShieldedInstanceConfig',
216
+ 'InstantSnapshotIamBindingCondition',
217
+ 'InstantSnapshotIamMemberCondition',
213
218
  'InterconnectAttachmentPrivateInterconnectInfo',
214
219
  'InterconnectCircuitInfo',
215
220
  'InterconnectExpectedOutage',
@@ -272,6 +277,7 @@ __all__ = [
272
277
  'RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas',
273
278
  'RegionAutoscalerAutoscalingPolicyScalingSchedule',
274
279
  'RegionBackendServiceBackend',
280
+ 'RegionBackendServiceBackendCustomMetric',
275
281
  'RegionBackendServiceCdnPolicy',
276
282
  'RegionBackendServiceCdnPolicyCacheKeyPolicy',
277
283
  'RegionBackendServiceCdnPolicyNegativeCachingPolicy',
@@ -281,6 +287,7 @@ __all__ = [
281
287
  'RegionBackendServiceConsistentHash',
282
288
  'RegionBackendServiceConsistentHashHttpCookie',
283
289
  'RegionBackendServiceConsistentHashHttpCookieTtl',
290
+ 'RegionBackendServiceCustomMetric',
284
291
  'RegionBackendServiceFailoverPolicy',
285
292
  'RegionBackendServiceIamBindingCondition',
286
293
  'RegionBackendServiceIamMemberCondition',
@@ -512,6 +519,9 @@ __all__ = [
512
519
  'ResourcePolicySnapshotSchedulePolicyScheduleWeeklySchedule',
513
520
  'ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeek',
514
521
  'ResourcePolicySnapshotSchedulePolicySnapshotProperties',
522
+ 'RouteAsPath',
523
+ 'RouteWarning',
524
+ 'RouteWarningData',
515
525
  'RouterBgp',
516
526
  'RouterBgpAdvertisedIpRange',
517
527
  'RouterNatLogConfig',
@@ -526,7 +536,13 @@ __all__ = [
526
536
  'RouterRoutePolicyTermAction',
527
537
  'RouterRoutePolicyTermMatch',
528
538
  'RouterStatusBestRouteResult',
539
+ 'RouterStatusBestRouteAsPathResult',
540
+ 'RouterStatusBestRouteWarningResult',
541
+ 'RouterStatusBestRouteWarningDataResult',
529
542
  'RouterStatusBestRoutesForRouterResult',
543
+ 'RouterStatusBestRoutesForRouterAsPathResult',
544
+ 'RouterStatusBestRoutesForRouterWarningResult',
545
+ 'RouterStatusBestRoutesForRouterWarningDataResult',
530
546
  'SecurityPolicyAdaptiveProtectionConfig',
531
547
  'SecurityPolicyAdaptiveProtectionConfigAutoDeployConfig',
532
548
  'SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig',
@@ -577,6 +593,7 @@ __all__ = [
577
593
  'URLMapDefaultRouteActionFaultInjectionPolicyAbort',
578
594
  'URLMapDefaultRouteActionFaultInjectionPolicyDelay',
579
595
  'URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay',
596
+ 'URLMapDefaultRouteActionMaxStreamDuration',
580
597
  'URLMapDefaultRouteActionRequestMirrorPolicy',
581
598
  'URLMapDefaultRouteActionRetryPolicy',
582
599
  'URLMapDefaultRouteActionRetryPolicyPerTryTimeout',
@@ -600,6 +617,7 @@ __all__ = [
600
617
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyAbort',
601
618
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelay',
602
619
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay',
620
+ 'URLMapPathMatcherDefaultRouteActionMaxStreamDuration',
603
621
  'URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy',
604
622
  'URLMapPathMatcherDefaultRouteActionRetryPolicy',
605
623
  'URLMapPathMatcherDefaultRouteActionRetryPolicyPerTryTimeout',
@@ -622,6 +640,7 @@ __all__ = [
622
640
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyAbort',
623
641
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelay',
624
642
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay',
643
+ 'URLMapPathMatcherPathRuleRouteActionMaxStreamDuration',
625
644
  'URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy',
626
645
  'URLMapPathMatcherPathRuleRouteActionRetryPolicy',
627
646
  'URLMapPathMatcherPathRuleRouteActionRetryPolicyPerTryTimeout',
@@ -648,6 +667,7 @@ __all__ = [
648
667
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyAbort',
649
668
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelay',
650
669
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay',
670
+ 'URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration',
651
671
  'URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy',
652
672
  'URLMapPathMatcherRouteRuleRouteActionRetryPolicy',
653
673
  'URLMapPathMatcherRouteRuleRouteActionRetryPolicyPerTryTimeout',
@@ -665,6 +685,7 @@ __all__ = [
665
685
  'GetBackendBucketCdnPolicyCacheKeyPolicyResult',
666
686
  'GetBackendBucketCdnPolicyNegativeCachingPolicyResult',
667
687
  'GetBackendServiceBackendResult',
688
+ 'GetBackendServiceBackendCustomMetricResult',
668
689
  'GetBackendServiceCdnPolicyResult',
669
690
  'GetBackendServiceCdnPolicyBypassCacheOnRequestHeaderResult',
670
691
  'GetBackendServiceCdnPolicyCacheKeyPolicyResult',
@@ -674,6 +695,7 @@ __all__ = [
674
695
  'GetBackendServiceConsistentHashResult',
675
696
  'GetBackendServiceConsistentHashHttpCookyResult',
676
697
  'GetBackendServiceConsistentHashHttpCookyTtlResult',
698
+ 'GetBackendServiceCustomMetricResult',
677
699
  'GetBackendServiceIapResult',
678
700
  'GetBackendServiceLocalityLbPolicyResult',
679
701
  'GetBackendServiceLocalityLbPolicyCustomPolicyResult',
@@ -689,6 +711,7 @@ __all__ = [
689
711
  'GetDiskAsyncPrimaryDiskResult',
690
712
  'GetDiskDiskEncryptionKeyResult',
691
713
  'GetDiskGuestOsFeatureResult',
714
+ 'GetDiskParamResult',
692
715
  'GetDiskSourceImageEncryptionKeyResult',
693
716
  'GetDiskSourceSnapshotEncryptionKeyResult',
694
717
  'GetForwardingRuleServiceDirectoryRegistrationResult',
@@ -854,7 +877,13 @@ __all__ = [
854
877
  'GetRouterNatRuleActionResult',
855
878
  'GetRouterNatSubnetworkResult',
856
879
  'GetRouterStatusBestRouteResult',
880
+ 'GetRouterStatusBestRouteAsPathResult',
881
+ 'GetRouterStatusBestRouteWarningResult',
882
+ 'GetRouterStatusBestRouteWarningDataResult',
857
883
  'GetRouterStatusBestRoutesForRouterResult',
884
+ 'GetRouterStatusBestRoutesForRouterAsPathResult',
885
+ 'GetRouterStatusBestRoutesForRouterWarningResult',
886
+ 'GetRouterStatusBestRoutesForRouterWarningDataResult',
858
887
  'GetSecurityPolicyAdaptiveProtectionConfigResult',
859
888
  'GetSecurityPolicyAdaptiveProtectionConfigAutoDeployConfigResult',
860
889
  'GetSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigResult',
@@ -2049,6 +2078,8 @@ class BackendServiceBackend(dict):
2049
2078
  suggest = "balancing_mode"
2050
2079
  elif key == "capacityScaler":
2051
2080
  suggest = "capacity_scaler"
2081
+ elif key == "customMetrics":
2082
+ suggest = "custom_metrics"
2052
2083
  elif key == "maxConnections":
2053
2084
  suggest = "max_connections"
2054
2085
  elif key == "maxConnectionsPerEndpoint":
@@ -2079,6 +2110,7 @@ class BackendServiceBackend(dict):
2079
2110
  group: str,
2080
2111
  balancing_mode: Optional[str] = None,
2081
2112
  capacity_scaler: Optional[float] = None,
2113
+ custom_metrics: Optional[Sequence['outputs.BackendServiceBackendCustomMetric']] = None,
2082
2114
  description: Optional[str] = None,
2083
2115
  max_connections: Optional[int] = None,
2084
2116
  max_connections_per_endpoint: Optional[int] = None,
@@ -2104,18 +2136,20 @@ class BackendServiceBackend(dict):
2104
2136
  partial URL.
2105
2137
  :param str balancing_mode: Specifies the balancing mode for this backend.
2106
2138
  For global HTTP(S) or TCP/SSL load balancing, the default is
2107
- UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))
2108
- and CONNECTION (for TCP/SSL).
2139
+ UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),
2140
+ CUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).
2109
2141
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
2110
2142
  for an explanation of load balancing modes.
2111
2143
  Default value is `UTILIZATION`.
2112
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
2144
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
2113
2145
  :param float capacity_scaler: A multiplier applied to the group's maximum servicing capacity
2114
2146
  (based on UTILIZATION, RATE or CONNECTION).
2115
2147
  Default value is 1, which means the group will serve up to 100%
2116
2148
  of its configured capacity (depending on balancingMode). A
2117
2149
  setting of 0 means the group is completely drained, offering
2118
2150
  0% of its available Capacity. Valid range is [0.0,1.0].
2151
+ :param Sequence['BackendServiceBackendCustomMetricArgs'] custom_metrics: The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
2152
+ Structure is documented below.
2119
2153
  :param str description: An optional description of this resource.
2120
2154
  Provide this property when you create the resource.
2121
2155
  :param int max_connections: The max number of simultaneous connections for the group. Can
@@ -2156,6 +2190,8 @@ class BackendServiceBackend(dict):
2156
2190
  pulumi.set(__self__, "balancing_mode", balancing_mode)
2157
2191
  if capacity_scaler is not None:
2158
2192
  pulumi.set(__self__, "capacity_scaler", capacity_scaler)
2193
+ if custom_metrics is not None:
2194
+ pulumi.set(__self__, "custom_metrics", custom_metrics)
2159
2195
  if description is not None:
2160
2196
  pulumi.set(__self__, "description", description)
2161
2197
  if max_connections is not None:
@@ -2200,12 +2236,12 @@ class BackendServiceBackend(dict):
2200
2236
  """
2201
2237
  Specifies the balancing mode for this backend.
2202
2238
  For global HTTP(S) or TCP/SSL load balancing, the default is
2203
- UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))
2204
- and CONNECTION (for TCP/SSL).
2239
+ UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),
2240
+ CUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).
2205
2241
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
2206
2242
  for an explanation of load balancing modes.
2207
2243
  Default value is `UTILIZATION`.
2208
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
2244
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
2209
2245
  """
2210
2246
  return pulumi.get(self, "balancing_mode")
2211
2247
 
@@ -2222,6 +2258,15 @@ class BackendServiceBackend(dict):
2222
2258
  """
2223
2259
  return pulumi.get(self, "capacity_scaler")
2224
2260
 
2261
+ @property
2262
+ @pulumi.getter(name="customMetrics")
2263
+ def custom_metrics(self) -> Optional[Sequence['outputs.BackendServiceBackendCustomMetric']]:
2264
+ """
2265
+ The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
2266
+ Structure is documented below.
2267
+ """
2268
+ return pulumi.get(self, "custom_metrics")
2269
+
2225
2270
  @property
2226
2271
  @pulumi.getter
2227
2272
  def description(self) -> Optional[str]:
@@ -2313,6 +2358,84 @@ class BackendServiceBackend(dict):
2313
2358
  return pulumi.get(self, "max_utilization")
2314
2359
 
2315
2360
 
2361
+ @pulumi.output_type
2362
+ class BackendServiceBackendCustomMetric(dict):
2363
+ @staticmethod
2364
+ def __key_warning(key: str):
2365
+ suggest = None
2366
+ if key == "dryRun":
2367
+ suggest = "dry_run"
2368
+ elif key == "maxUtilization":
2369
+ suggest = "max_utilization"
2370
+
2371
+ if suggest:
2372
+ pulumi.log.warn(f"Key '{key}' not found in BackendServiceBackendCustomMetric. Access the value via the '{suggest}' property getter instead.")
2373
+
2374
+ def __getitem__(self, key: str) -> Any:
2375
+ BackendServiceBackendCustomMetric.__key_warning(key)
2376
+ return super().__getitem__(key)
2377
+
2378
+ def get(self, key: str, default = None) -> Any:
2379
+ BackendServiceBackendCustomMetric.__key_warning(key)
2380
+ return super().get(key, default)
2381
+
2382
+ def __init__(__self__, *,
2383
+ dry_run: bool,
2384
+ name: str,
2385
+ max_utilization: Optional[float] = None):
2386
+ """
2387
+ :param bool dry_run: If true, the metric data is not used for load balancing.
2388
+ :param str name: Name of a custom utilization signal. The name must be 1-64 characters
2389
+ long and match the regular expression a-z? which
2390
+ means the first character must be a lowercase letter, and all following
2391
+ characters must be a dash, period, underscore, lowercase letter, or
2392
+ digit, except the last character, which cannot be a dash, period, or
2393
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
2394
+ field can only be used for a global or regional backend service with the
2395
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
2396
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
2397
+ :param float max_utilization: Optional parameter to define a target utilization for the Custom Metrics
2398
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
2399
+ """
2400
+ pulumi.set(__self__, "dry_run", dry_run)
2401
+ pulumi.set(__self__, "name", name)
2402
+ if max_utilization is not None:
2403
+ pulumi.set(__self__, "max_utilization", max_utilization)
2404
+
2405
+ @property
2406
+ @pulumi.getter(name="dryRun")
2407
+ def dry_run(self) -> bool:
2408
+ """
2409
+ If true, the metric data is not used for load balancing.
2410
+ """
2411
+ return pulumi.get(self, "dry_run")
2412
+
2413
+ @property
2414
+ @pulumi.getter
2415
+ def name(self) -> str:
2416
+ """
2417
+ Name of a custom utilization signal. The name must be 1-64 characters
2418
+ long and match the regular expression a-z? which
2419
+ means the first character must be a lowercase letter, and all following
2420
+ characters must be a dash, period, underscore, lowercase letter, or
2421
+ digit, except the last character, which cannot be a dash, period, or
2422
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
2423
+ field can only be used for a global or regional backend service with the
2424
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
2425
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
2426
+ """
2427
+ return pulumi.get(self, "name")
2428
+
2429
+ @property
2430
+ @pulumi.getter(name="maxUtilization")
2431
+ def max_utilization(self) -> Optional[float]:
2432
+ """
2433
+ Optional parameter to define a target utilization for the Custom Metrics
2434
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
2435
+ """
2436
+ return pulumi.get(self, "max_utilization")
2437
+
2438
+
2316
2439
  @pulumi.output_type
2317
2440
  class BackendServiceCdnPolicy(dict):
2318
2441
  @staticmethod
@@ -3052,6 +3175,68 @@ class BackendServiceConsistentHashHttpCookieTtl(dict):
3052
3175
  return pulumi.get(self, "nanos")
3053
3176
 
3054
3177
 
3178
+ @pulumi.output_type
3179
+ class BackendServiceCustomMetric(dict):
3180
+ @staticmethod
3181
+ def __key_warning(key: str):
3182
+ suggest = None
3183
+ if key == "dryRun":
3184
+ suggest = "dry_run"
3185
+
3186
+ if suggest:
3187
+ pulumi.log.warn(f"Key '{key}' not found in BackendServiceCustomMetric. Access the value via the '{suggest}' property getter instead.")
3188
+
3189
+ def __getitem__(self, key: str) -> Any:
3190
+ BackendServiceCustomMetric.__key_warning(key)
3191
+ return super().__getitem__(key)
3192
+
3193
+ def get(self, key: str, default = None) -> Any:
3194
+ BackendServiceCustomMetric.__key_warning(key)
3195
+ return super().get(key, default)
3196
+
3197
+ def __init__(__self__, *,
3198
+ dry_run: bool,
3199
+ name: str):
3200
+ """
3201
+ :param bool dry_run: If true, the metric data is not used for load balancing.
3202
+ :param str name: Name of a custom utilization signal. The name must be 1-64 characters
3203
+ long and match the regular expression a-z? which
3204
+ means the first character must be a lowercase letter, and all following
3205
+ characters must be a dash, period, underscore, lowercase letter, or
3206
+ digit, except the last character, which cannot be a dash, period, or
3207
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
3208
+ field can only be used for a global or regional backend service with the
3209
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
3210
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
3211
+ """
3212
+ pulumi.set(__self__, "dry_run", dry_run)
3213
+ pulumi.set(__self__, "name", name)
3214
+
3215
+ @property
3216
+ @pulumi.getter(name="dryRun")
3217
+ def dry_run(self) -> bool:
3218
+ """
3219
+ If true, the metric data is not used for load balancing.
3220
+ """
3221
+ return pulumi.get(self, "dry_run")
3222
+
3223
+ @property
3224
+ @pulumi.getter
3225
+ def name(self) -> str:
3226
+ """
3227
+ Name of a custom utilization signal. The name must be 1-64 characters
3228
+ long and match the regular expression a-z? which
3229
+ means the first character must be a lowercase letter, and all following
3230
+ characters must be a dash, period, underscore, lowercase letter, or
3231
+ digit, except the last character, which cannot be a dash, period, or
3232
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
3233
+ field can only be used for a global or regional backend service with the
3234
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
3235
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
3236
+ """
3237
+ return pulumi.get(self, "name")
3238
+
3239
+
3055
3240
  @pulumi.output_type
3056
3241
  class BackendServiceIamBindingCondition(dict):
3057
3242
  def __init__(__self__, *,
@@ -4216,6 +4401,46 @@ class DiskIamMemberCondition(dict):
4216
4401
  return pulumi.get(self, "description")
4217
4402
 
4218
4403
 
4404
+ @pulumi.output_type
4405
+ class DiskParams(dict):
4406
+ @staticmethod
4407
+ def __key_warning(key: str):
4408
+ suggest = None
4409
+ if key == "resourceManagerTags":
4410
+ suggest = "resource_manager_tags"
4411
+
4412
+ if suggest:
4413
+ pulumi.log.warn(f"Key '{key}' not found in DiskParams. Access the value via the '{suggest}' property getter instead.")
4414
+
4415
+ def __getitem__(self, key: str) -> Any:
4416
+ DiskParams.__key_warning(key)
4417
+ return super().__getitem__(key)
4418
+
4419
+ def get(self, key: str, default = None) -> Any:
4420
+ DiskParams.__key_warning(key)
4421
+ return super().get(key, default)
4422
+
4423
+ def __init__(__self__, *,
4424
+ resource_manager_tags: Optional[Mapping[str, str]] = None):
4425
+ """
4426
+ :param Mapping[str, str] resource_manager_tags: Resource manager tags to be bound to the disk. Tag keys and values have the
4427
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
4428
+ and values are in the format tagValues/456.
4429
+ """
4430
+ if resource_manager_tags is not None:
4431
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
4432
+
4433
+ @property
4434
+ @pulumi.getter(name="resourceManagerTags")
4435
+ def resource_manager_tags(self) -> Optional[Mapping[str, str]]:
4436
+ """
4437
+ Resource manager tags to be bound to the disk. Tag keys and values have the
4438
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
4439
+ and values are in the format tagValues/456.
4440
+ """
4441
+ return pulumi.get(self, "resource_manager_tags")
4442
+
4443
+
4219
4444
  @pulumi.output_type
4220
4445
  class DiskSourceImageEncryptionKey(dict):
4221
4446
  @staticmethod
@@ -9220,6 +9445,8 @@ class InstanceFromMachineImageScheduling(dict):
9220
9445
  suggest = "on_instance_stop_action"
9221
9446
  elif key == "provisioningModel":
9222
9447
  suggest = "provisioning_model"
9448
+ elif key == "terminationTime":
9449
+ suggest = "termination_time"
9223
9450
 
9224
9451
  if suggest:
9225
9452
  pulumi.log.warn(f"Key '{key}' not found in InstanceFromMachineImageScheduling. Access the value via the '{suggest}' property getter instead.")
@@ -9246,7 +9473,8 @@ class InstanceFromMachineImageScheduling(dict):
9246
9473
  on_host_maintenance: Optional[str] = None,
9247
9474
  on_instance_stop_action: Optional['outputs.InstanceFromMachineImageSchedulingOnInstanceStopAction'] = None,
9248
9475
  preemptible: Optional[bool] = None,
9249
- provisioning_model: Optional[str] = None):
9476
+ provisioning_model: Optional[str] = None,
9477
+ termination_time: Optional[str] = None):
9250
9478
  """
9251
9479
  :param bool automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
9252
9480
  :param int availability_domain: Specifies the availability domain, which this instance should be scheduled on.
@@ -9264,6 +9492,9 @@ class InstanceFromMachineImageScheduling(dict):
9264
9492
  :param 'InstanceFromMachineImageSchedulingOnInstanceStopActionArgs' on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
9265
9493
  :param bool preemptible: Whether the instance is preemptible.
9266
9494
  :param str provisioning_model: Whether the instance is spot. If this is set as SPOT.
9495
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated,
9496
+ in RFC3339 text format. If specified, the instance termination action
9497
+ will be performed at the termination time.
9267
9498
  """
9268
9499
  if automatic_restart is not None:
9269
9500
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -9293,6 +9524,8 @@ class InstanceFromMachineImageScheduling(dict):
9293
9524
  pulumi.set(__self__, "preemptible", preemptible)
9294
9525
  if provisioning_model is not None:
9295
9526
  pulumi.set(__self__, "provisioning_model", provisioning_model)
9527
+ if termination_time is not None:
9528
+ pulumi.set(__self__, "termination_time", termination_time)
9296
9529
 
9297
9530
  @property
9298
9531
  @pulumi.getter(name="automaticRestart")
@@ -9406,6 +9639,16 @@ class InstanceFromMachineImageScheduling(dict):
9406
9639
  """
9407
9640
  return pulumi.get(self, "provisioning_model")
9408
9641
 
9642
+ @property
9643
+ @pulumi.getter(name="terminationTime")
9644
+ def termination_time(self) -> Optional[str]:
9645
+ """
9646
+ Specifies the timestamp, when the instance will be terminated,
9647
+ in RFC3339 text format. If specified, the instance termination action
9648
+ will be performed at the termination time.
9649
+ """
9650
+ return pulumi.get(self, "termination_time")
9651
+
9409
9652
 
9410
9653
  @pulumi.output_type
9411
9654
  class InstanceFromMachineImageSchedulingGracefulShutdown(dict):
@@ -11027,6 +11270,8 @@ class InstanceFromTemplateScheduling(dict):
11027
11270
  suggest = "on_instance_stop_action"
11028
11271
  elif key == "provisioningModel":
11029
11272
  suggest = "provisioning_model"
11273
+ elif key == "terminationTime":
11274
+ suggest = "termination_time"
11030
11275
 
11031
11276
  if suggest:
11032
11277
  pulumi.log.warn(f"Key '{key}' not found in InstanceFromTemplateScheduling. Access the value via the '{suggest}' property getter instead.")
@@ -11053,7 +11298,8 @@ class InstanceFromTemplateScheduling(dict):
11053
11298
  on_host_maintenance: Optional[str] = None,
11054
11299
  on_instance_stop_action: Optional['outputs.InstanceFromTemplateSchedulingOnInstanceStopAction'] = None,
11055
11300
  preemptible: Optional[bool] = None,
11056
- provisioning_model: Optional[str] = None):
11301
+ provisioning_model: Optional[str] = None,
11302
+ termination_time: Optional[str] = None):
11057
11303
  """
11058
11304
  :param bool automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
11059
11305
  :param int availability_domain: Specifies the availability domain, which this instance should be scheduled on.
@@ -11071,6 +11317,9 @@ class InstanceFromTemplateScheduling(dict):
11071
11317
  :param 'InstanceFromTemplateSchedulingOnInstanceStopActionArgs' on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
11072
11318
  :param bool preemptible: Whether the instance is preemptible.
11073
11319
  :param str provisioning_model: Whether the instance is spot. If this is set as SPOT.
11320
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated,
11321
+ in RFC3339 text format. If specified, the instance termination action
11322
+ will be performed at the termination time.
11074
11323
  """
11075
11324
  if automatic_restart is not None:
11076
11325
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -11100,6 +11349,8 @@ class InstanceFromTemplateScheduling(dict):
11100
11349
  pulumi.set(__self__, "preemptible", preemptible)
11101
11350
  if provisioning_model is not None:
11102
11351
  pulumi.set(__self__, "provisioning_model", provisioning_model)
11352
+ if termination_time is not None:
11353
+ pulumi.set(__self__, "termination_time", termination_time)
11103
11354
 
11104
11355
  @property
11105
11356
  @pulumi.getter(name="automaticRestart")
@@ -11213,6 +11464,16 @@ class InstanceFromTemplateScheduling(dict):
11213
11464
  """
11214
11465
  return pulumi.get(self, "provisioning_model")
11215
11466
 
11467
+ @property
11468
+ @pulumi.getter(name="terminationTime")
11469
+ def termination_time(self) -> Optional[str]:
11470
+ """
11471
+ Specifies the timestamp, when the instance will be terminated,
11472
+ in RFC3339 text format. If specified, the instance termination action
11473
+ will be performed at the termination time.
11474
+ """
11475
+ return pulumi.get(self, "termination_time")
11476
+
11216
11477
 
11217
11478
  @pulumi.output_type
11218
11479
  class InstanceFromTemplateSchedulingGracefulShutdown(dict):
@@ -13357,6 +13618,8 @@ class InstanceScheduling(dict):
13357
13618
  suggest = "on_instance_stop_action"
13358
13619
  elif key == "provisioningModel":
13359
13620
  suggest = "provisioning_model"
13621
+ elif key == "terminationTime":
13622
+ suggest = "termination_time"
13360
13623
 
13361
13624
  if suggest:
13362
13625
  pulumi.log.warn(f"Key '{key}' not found in InstanceScheduling. Access the value via the '{suggest}' property getter instead.")
@@ -13383,7 +13646,8 @@ class InstanceScheduling(dict):
13383
13646
  on_host_maintenance: Optional[str] = None,
13384
13647
  on_instance_stop_action: Optional['outputs.InstanceSchedulingOnInstanceStopAction'] = None,
13385
13648
  preemptible: Optional[bool] = None,
13386
- provisioning_model: Optional[str] = None):
13649
+ provisioning_model: Optional[str] = None,
13650
+ termination_time: Optional[str] = None):
13387
13651
  """
13388
13652
  :param bool automatic_restart: Specifies if the instance should be
13389
13653
  restarted if it was terminated by Compute Engine (not a user).
@@ -13415,6 +13679,7 @@ class InstanceScheduling(dict):
13415
13679
  `preemptible` should be `true` and `automatic_restart` should be
13416
13680
  `false`. For more info about
13417
13681
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
13682
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
13418
13683
  """
13419
13684
  if automatic_restart is not None:
13420
13685
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -13444,6 +13709,8 @@ class InstanceScheduling(dict):
13444
13709
  pulumi.set(__self__, "preemptible", preemptible)
13445
13710
  if provisioning_model is not None:
13446
13711
  pulumi.set(__self__, "provisioning_model", provisioning_model)
13712
+ if termination_time is not None:
13713
+ pulumi.set(__self__, "termination_time", termination_time)
13447
13714
 
13448
13715
  @property
13449
13716
  @pulumi.getter(name="automaticRestart")
@@ -13573,6 +13840,14 @@ class InstanceScheduling(dict):
13573
13840
  """
13574
13841
  return pulumi.get(self, "provisioning_model")
13575
13842
 
13843
+ @property
13844
+ @pulumi.getter(name="terminationTime")
13845
+ def termination_time(self) -> Optional[str]:
13846
+ """
13847
+ Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
13848
+ """
13849
+ return pulumi.get(self, "termination_time")
13850
+
13576
13851
 
13577
13852
  @pulumi.output_type
13578
13853
  class InstanceSchedulingGracefulShutdown(dict):
@@ -15409,6 +15684,8 @@ class InstanceTemplateScheduling(dict):
15409
15684
  suggest = "on_instance_stop_action"
15410
15685
  elif key == "provisioningModel":
15411
15686
  suggest = "provisioning_model"
15687
+ elif key == "terminationTime":
15688
+ suggest = "termination_time"
15412
15689
 
15413
15690
  if suggest:
15414
15691
  pulumi.log.warn(f"Key '{key}' not found in InstanceTemplateScheduling. Access the value via the '{suggest}' property getter instead.")
@@ -15435,7 +15712,8 @@ class InstanceTemplateScheduling(dict):
15435
15712
  on_host_maintenance: Optional[str] = None,
15436
15713
  on_instance_stop_action: Optional['outputs.InstanceTemplateSchedulingOnInstanceStopAction'] = None,
15437
15714
  preemptible: Optional[bool] = None,
15438
- provisioning_model: Optional[str] = None):
15715
+ provisioning_model: Optional[str] = None,
15716
+ termination_time: Optional[str] = None):
15439
15717
  """
15440
15718
  :param bool automatic_restart: Specifies whether the instance should be
15441
15719
  automatically restarted if it is terminated by Compute Engine (not
@@ -15466,6 +15744,7 @@ class InstanceTemplateScheduling(dict):
15466
15744
  `preemptible` should be `true` and `automatic_restart` should be
15467
15745
  `false`. For more info about
15468
15746
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
15747
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
15469
15748
  """
15470
15749
  if automatic_restart is not None:
15471
15750
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -15495,6 +15774,8 @@ class InstanceTemplateScheduling(dict):
15495
15774
  pulumi.set(__self__, "preemptible", preemptible)
15496
15775
  if provisioning_model is not None:
15497
15776
  pulumi.set(__self__, "provisioning_model", provisioning_model)
15777
+ if termination_time is not None:
15778
+ pulumi.set(__self__, "termination_time", termination_time)
15498
15779
 
15499
15780
  @property
15500
15781
  @pulumi.getter(name="automaticRestart")
@@ -15623,6 +15904,14 @@ class InstanceTemplateScheduling(dict):
15623
15904
  """
15624
15905
  return pulumi.get(self, "provisioning_model")
15625
15906
 
15907
+ @property
15908
+ @pulumi.getter(name="terminationTime")
15909
+ def termination_time(self) -> Optional[str]:
15910
+ """
15911
+ Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
15912
+ """
15913
+ return pulumi.get(self, "termination_time")
15914
+
15626
15915
 
15627
15916
  @pulumi.output_type
15628
15917
  class InstanceTemplateSchedulingGracefulShutdown(dict):
@@ -15985,6 +16274,80 @@ class InstanceTemplateShieldedInstanceConfig(dict):
15985
16274
  return pulumi.get(self, "enable_vtpm")
15986
16275
 
15987
16276
 
16277
+ @pulumi.output_type
16278
+ class InstantSnapshotIamBindingCondition(dict):
16279
+ def __init__(__self__, *,
16280
+ expression: str,
16281
+ title: str,
16282
+ description: Optional[str] = None):
16283
+ """
16284
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
16285
+ :param str title: A title for the expression, i.e. a short string describing its purpose.
16286
+ """
16287
+ pulumi.set(__self__, "expression", expression)
16288
+ pulumi.set(__self__, "title", title)
16289
+ if description is not None:
16290
+ pulumi.set(__self__, "description", description)
16291
+
16292
+ @property
16293
+ @pulumi.getter
16294
+ def expression(self) -> str:
16295
+ """
16296
+ Textual representation of an expression in Common Expression Language syntax.
16297
+ """
16298
+ return pulumi.get(self, "expression")
16299
+
16300
+ @property
16301
+ @pulumi.getter
16302
+ def title(self) -> str:
16303
+ """
16304
+ A title for the expression, i.e. a short string describing its purpose.
16305
+ """
16306
+ return pulumi.get(self, "title")
16307
+
16308
+ @property
16309
+ @pulumi.getter
16310
+ def description(self) -> Optional[str]:
16311
+ return pulumi.get(self, "description")
16312
+
16313
+
16314
+ @pulumi.output_type
16315
+ class InstantSnapshotIamMemberCondition(dict):
16316
+ def __init__(__self__, *,
16317
+ expression: str,
16318
+ title: str,
16319
+ description: Optional[str] = None):
16320
+ """
16321
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
16322
+ :param str title: A title for the expression, i.e. a short string describing its purpose.
16323
+ """
16324
+ pulumi.set(__self__, "expression", expression)
16325
+ pulumi.set(__self__, "title", title)
16326
+ if description is not None:
16327
+ pulumi.set(__self__, "description", description)
16328
+
16329
+ @property
16330
+ @pulumi.getter
16331
+ def expression(self) -> str:
16332
+ """
16333
+ Textual representation of an expression in Common Expression Language syntax.
16334
+ """
16335
+ return pulumi.get(self, "expression")
16336
+
16337
+ @property
16338
+ @pulumi.getter
16339
+ def title(self) -> str:
16340
+ """
16341
+ A title for the expression, i.e. a short string describing its purpose.
16342
+ """
16343
+ return pulumi.get(self, "title")
16344
+
16345
+ @property
16346
+ @pulumi.getter
16347
+ def description(self) -> Optional[str]:
16348
+ return pulumi.get(self, "description")
16349
+
16350
+
15988
16351
  @pulumi.output_type
15989
16352
  class InterconnectAttachmentPrivateInterconnectInfo(dict):
15990
16353
  def __init__(__self__, *,
@@ -20567,6 +20930,8 @@ class RegionBackendServiceBackend(dict):
20567
20930
  suggest = "balancing_mode"
20568
20931
  elif key == "capacityScaler":
20569
20932
  suggest = "capacity_scaler"
20933
+ elif key == "customMetrics":
20934
+ suggest = "custom_metrics"
20570
20935
  elif key == "maxConnections":
20571
20936
  suggest = "max_connections"
20572
20937
  elif key == "maxConnectionsPerEndpoint":
@@ -20597,6 +20962,7 @@ class RegionBackendServiceBackend(dict):
20597
20962
  group: str,
20598
20963
  balancing_mode: Optional[str] = None,
20599
20964
  capacity_scaler: Optional[float] = None,
20965
+ custom_metrics: Optional[Sequence['outputs.RegionBackendServiceBackendCustomMetric']] = None,
20600
20966
  description: Optional[str] = None,
20601
20967
  failover: Optional[bool] = None,
20602
20968
  max_connections: Optional[int] = None,
@@ -20627,7 +20993,7 @@ class RegionBackendServiceBackend(dict):
20627
20993
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
20628
20994
  for an explanation of load balancing modes.
20629
20995
  Default value is `UTILIZATION`.
20630
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
20996
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
20631
20997
  :param float capacity_scaler: A multiplier applied to the group's maximum servicing capacity
20632
20998
  (based on UTILIZATION, RATE or CONNECTION).
20633
20999
  ~>**NOTE**: This field cannot be set for
@@ -20636,6 +21002,8 @@ class RegionBackendServiceBackend(dict):
20636
21002
  capacity_scaler for all backends must be non-zero.
20637
21003
  A setting of 0 means the group is completely drained, offering
20638
21004
  0% of its available Capacity. Valid range is [0.0,1.0].
21005
+ :param Sequence['RegionBackendServiceBackendCustomMetricArgs'] custom_metrics: The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
21006
+ Structure is documented below.
20639
21007
  :param str description: An optional description of this resource.
20640
21008
  Provide this property when you create the resource.
20641
21009
  :param bool failover: This field designates whether this is a failover backend. More
@@ -20685,6 +21053,8 @@ class RegionBackendServiceBackend(dict):
20685
21053
  pulumi.set(__self__, "balancing_mode", balancing_mode)
20686
21054
  if capacity_scaler is not None:
20687
21055
  pulumi.set(__self__, "capacity_scaler", capacity_scaler)
21056
+ if custom_metrics is not None:
21057
+ pulumi.set(__self__, "custom_metrics", custom_metrics)
20688
21058
  if description is not None:
20689
21059
  pulumi.set(__self__, "description", description)
20690
21060
  if failover is not None:
@@ -20735,7 +21105,7 @@ class RegionBackendServiceBackend(dict):
20735
21105
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
20736
21106
  for an explanation of load balancing modes.
20737
21107
  Default value is `UTILIZATION`.
20738
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
21108
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
20739
21109
  """
20740
21110
  return pulumi.get(self, "balancing_mode")
20741
21111
 
@@ -20754,6 +21124,15 @@ class RegionBackendServiceBackend(dict):
20754
21124
  """
20755
21125
  return pulumi.get(self, "capacity_scaler")
20756
21126
 
21127
+ @property
21128
+ @pulumi.getter(name="customMetrics")
21129
+ def custom_metrics(self) -> Optional[Sequence['outputs.RegionBackendServiceBackendCustomMetric']]:
21130
+ """
21131
+ The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
21132
+ Structure is documented below.
21133
+ """
21134
+ return pulumi.get(self, "custom_metrics")
21135
+
20757
21136
  @property
20758
21137
  @pulumi.getter
20759
21138
  def description(self) -> Optional[str]:
@@ -20861,6 +21240,84 @@ class RegionBackendServiceBackend(dict):
20861
21240
  return pulumi.get(self, "max_utilization")
20862
21241
 
20863
21242
 
21243
+ @pulumi.output_type
21244
+ class RegionBackendServiceBackendCustomMetric(dict):
21245
+ @staticmethod
21246
+ def __key_warning(key: str):
21247
+ suggest = None
21248
+ if key == "dryRun":
21249
+ suggest = "dry_run"
21250
+ elif key == "maxUtilization":
21251
+ suggest = "max_utilization"
21252
+
21253
+ if suggest:
21254
+ pulumi.log.warn(f"Key '{key}' not found in RegionBackendServiceBackendCustomMetric. Access the value via the '{suggest}' property getter instead.")
21255
+
21256
+ def __getitem__(self, key: str) -> Any:
21257
+ RegionBackendServiceBackendCustomMetric.__key_warning(key)
21258
+ return super().__getitem__(key)
21259
+
21260
+ def get(self, key: str, default = None) -> Any:
21261
+ RegionBackendServiceBackendCustomMetric.__key_warning(key)
21262
+ return super().get(key, default)
21263
+
21264
+ def __init__(__self__, *,
21265
+ dry_run: bool,
21266
+ name: str,
21267
+ max_utilization: Optional[float] = None):
21268
+ """
21269
+ :param bool dry_run: If true, the metric data is not used for load balancing.
21270
+ :param str name: Name of a custom utilization signal. The name must be 1-64 characters
21271
+ long and match the regular expression a-z? which
21272
+ means the first character must be a lowercase letter, and all following
21273
+ characters must be a dash, period, underscore, lowercase letter, or
21274
+ digit, except the last character, which cannot be a dash, period, or
21275
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
21276
+ field can only be used for a global or regional backend service with the
21277
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
21278
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
21279
+ :param float max_utilization: Optional parameter to define a target utilization for the Custom Metrics
21280
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
21281
+ """
21282
+ pulumi.set(__self__, "dry_run", dry_run)
21283
+ pulumi.set(__self__, "name", name)
21284
+ if max_utilization is not None:
21285
+ pulumi.set(__self__, "max_utilization", max_utilization)
21286
+
21287
+ @property
21288
+ @pulumi.getter(name="dryRun")
21289
+ def dry_run(self) -> bool:
21290
+ """
21291
+ If true, the metric data is not used for load balancing.
21292
+ """
21293
+ return pulumi.get(self, "dry_run")
21294
+
21295
+ @property
21296
+ @pulumi.getter
21297
+ def name(self) -> str:
21298
+ """
21299
+ Name of a custom utilization signal. The name must be 1-64 characters
21300
+ long and match the regular expression a-z? which
21301
+ means the first character must be a lowercase letter, and all following
21302
+ characters must be a dash, period, underscore, lowercase letter, or
21303
+ digit, except the last character, which cannot be a dash, period, or
21304
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
21305
+ field can only be used for a global or regional backend service with the
21306
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
21307
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
21308
+ """
21309
+ return pulumi.get(self, "name")
21310
+
21311
+ @property
21312
+ @pulumi.getter(name="maxUtilization")
21313
+ def max_utilization(self) -> Optional[float]:
21314
+ """
21315
+ Optional parameter to define a target utilization for the Custom Metrics
21316
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
21317
+ """
21318
+ return pulumi.get(self, "max_utilization")
21319
+
21320
+
20864
21321
  @pulumi.output_type
20865
21322
  class RegionBackendServiceCdnPolicy(dict):
20866
21323
  @staticmethod
@@ -21655,6 +22112,68 @@ class RegionBackendServiceConsistentHashHttpCookieTtl(dict):
21655
22112
  return pulumi.get(self, "nanos")
21656
22113
 
21657
22114
 
22115
+ @pulumi.output_type
22116
+ class RegionBackendServiceCustomMetric(dict):
22117
+ @staticmethod
22118
+ def __key_warning(key: str):
22119
+ suggest = None
22120
+ if key == "dryRun":
22121
+ suggest = "dry_run"
22122
+
22123
+ if suggest:
22124
+ pulumi.log.warn(f"Key '{key}' not found in RegionBackendServiceCustomMetric. Access the value via the '{suggest}' property getter instead.")
22125
+
22126
+ def __getitem__(self, key: str) -> Any:
22127
+ RegionBackendServiceCustomMetric.__key_warning(key)
22128
+ return super().__getitem__(key)
22129
+
22130
+ def get(self, key: str, default = None) -> Any:
22131
+ RegionBackendServiceCustomMetric.__key_warning(key)
22132
+ return super().get(key, default)
22133
+
22134
+ def __init__(__self__, *,
22135
+ dry_run: bool,
22136
+ name: str):
22137
+ """
22138
+ :param bool dry_run: If true, the metric data is not used for load balancing.
22139
+ :param str name: Name of a custom utilization signal. The name must be 1-64 characters
22140
+ long and match the regular expression a-z? which
22141
+ means the first character must be a lowercase letter, and all following
22142
+ characters must be a dash, period, underscore, lowercase letter, or
22143
+ digit, except the last character, which cannot be a dash, period, or
22144
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
22145
+ field can only be used for a global or regional backend service with the
22146
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
22147
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
22148
+ """
22149
+ pulumi.set(__self__, "dry_run", dry_run)
22150
+ pulumi.set(__self__, "name", name)
22151
+
22152
+ @property
22153
+ @pulumi.getter(name="dryRun")
22154
+ def dry_run(self) -> bool:
22155
+ """
22156
+ If true, the metric data is not used for load balancing.
22157
+ """
22158
+ return pulumi.get(self, "dry_run")
22159
+
22160
+ @property
22161
+ @pulumi.getter
22162
+ def name(self) -> str:
22163
+ """
22164
+ Name of a custom utilization signal. The name must be 1-64 characters
22165
+ long and match the regular expression a-z? which
22166
+ means the first character must be a lowercase letter, and all following
22167
+ characters must be a dash, period, underscore, lowercase letter, or
22168
+ digit, except the last character, which cannot be a dash, period, or
22169
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
22170
+ field can only be used for a global or regional backend service with the
22171
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
22172
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
22173
+ """
22174
+ return pulumi.get(self, "name")
22175
+
22176
+
21658
22177
  @pulumi.output_type
21659
22178
  class RegionBackendServiceFailoverPolicy(dict):
21660
22179
  @staticmethod
@@ -21913,7 +22432,11 @@ class RegionBackendServiceLogConfig(dict):
21913
22432
  @staticmethod
21914
22433
  def __key_warning(key: str):
21915
22434
  suggest = None
21916
- if key == "sampleRate":
22435
+ if key == "optionalFields":
22436
+ suggest = "optional_fields"
22437
+ elif key == "optionalMode":
22438
+ suggest = "optional_mode"
22439
+ elif key == "sampleRate":
21917
22440
  suggest = "sample_rate"
21918
22441
 
21919
22442
  if suggest:
@@ -21929,9 +22452,15 @@ class RegionBackendServiceLogConfig(dict):
21929
22452
 
21930
22453
  def __init__(__self__, *,
21931
22454
  enable: Optional[bool] = None,
22455
+ optional_fields: Optional[Sequence[str]] = None,
22456
+ optional_mode: Optional[str] = None,
21932
22457
  sample_rate: Optional[float] = None):
21933
22458
  """
21934
22459
  :param bool enable: Whether to enable logging for the load balancer traffic served by this backend service.
22460
+ :param Sequence[str] optional_fields: Specifies the fields to include in logging. This field can only be specified if logging is enabled for this backend service.
22461
+ :param str optional_mode: Specifies the optional logging mode for the load balancer traffic.
22462
+ Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.
22463
+ Possible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.
21935
22464
  :param float sample_rate: This field can only be specified if logging is enabled for this backend service. The value of
21936
22465
  the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer
21937
22466
  where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.
@@ -21939,6 +22468,10 @@ class RegionBackendServiceLogConfig(dict):
21939
22468
  """
21940
22469
  if enable is not None:
21941
22470
  pulumi.set(__self__, "enable", enable)
22471
+ if optional_fields is not None:
22472
+ pulumi.set(__self__, "optional_fields", optional_fields)
22473
+ if optional_mode is not None:
22474
+ pulumi.set(__self__, "optional_mode", optional_mode)
21942
22475
  if sample_rate is not None:
21943
22476
  pulumi.set(__self__, "sample_rate", sample_rate)
21944
22477
 
@@ -21950,6 +22483,24 @@ class RegionBackendServiceLogConfig(dict):
21950
22483
  """
21951
22484
  return pulumi.get(self, "enable")
21952
22485
 
22486
+ @property
22487
+ @pulumi.getter(name="optionalFields")
22488
+ def optional_fields(self) -> Optional[Sequence[str]]:
22489
+ """
22490
+ Specifies the fields to include in logging. This field can only be specified if logging is enabled for this backend service.
22491
+ """
22492
+ return pulumi.get(self, "optional_fields")
22493
+
22494
+ @property
22495
+ @pulumi.getter(name="optionalMode")
22496
+ def optional_mode(self) -> Optional[str]:
22497
+ """
22498
+ Specifies the optional logging mode for the load balancer traffic.
22499
+ Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.
22500
+ Possible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.
22501
+ """
22502
+ return pulumi.get(self, "optional_mode")
22503
+
21953
22504
  @property
21954
22505
  @pulumi.getter(name="sampleRate")
21955
22506
  def sample_rate(self) -> Optional[float]:
@@ -22521,6 +23072,8 @@ class RegionDiskDiskEncryptionKey(dict):
22521
23072
  suggest = "kms_key_name"
22522
23073
  elif key == "rawKey":
22523
23074
  suggest = "raw_key"
23075
+ elif key == "rsaEncryptedKey":
23076
+ suggest = "rsa_encrypted_key"
22524
23077
 
22525
23078
  if suggest:
22526
23079
  pulumi.log.warn(f"Key '{key}' not found in RegionDiskDiskEncryptionKey. Access the value via the '{suggest}' property getter instead.")
@@ -22536,12 +23089,17 @@ class RegionDiskDiskEncryptionKey(dict):
22536
23089
  def __init__(__self__, *,
22537
23090
  kms_key_name: Optional[str] = None,
22538
23091
  raw_key: Optional[str] = None,
23092
+ rsa_encrypted_key: Optional[str] = None,
22539
23093
  sha256: Optional[str] = None):
22540
23094
  """
22541
23095
  :param str kms_key_name: The name of the encryption key that is stored in Google Cloud KMS.
22542
23096
  :param str raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
22543
23097
  RFC 4648 base64 to either encrypt or decrypt this resource.
22544
23098
  **Note**: This property is sensitive and will not be displayed in the plan.
23099
+ :param str rsa_encrypted_key: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
23100
+ customer-supplied encryption key to either encrypt or decrypt
23101
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
23102
+ **Note**: This property is sensitive and will not be displayed in the plan.
22545
23103
  :param str sha256: (Output)
22546
23104
  The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
22547
23105
  encryption key that protects this resource.
@@ -22550,6 +23108,8 @@ class RegionDiskDiskEncryptionKey(dict):
22550
23108
  pulumi.set(__self__, "kms_key_name", kms_key_name)
22551
23109
  if raw_key is not None:
22552
23110
  pulumi.set(__self__, "raw_key", raw_key)
23111
+ if rsa_encrypted_key is not None:
23112
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
22553
23113
  if sha256 is not None:
22554
23114
  pulumi.set(__self__, "sha256", sha256)
22555
23115
 
@@ -22571,6 +23131,17 @@ class RegionDiskDiskEncryptionKey(dict):
22571
23131
  """
22572
23132
  return pulumi.get(self, "raw_key")
22573
23133
 
23134
+ @property
23135
+ @pulumi.getter(name="rsaEncryptedKey")
23136
+ def rsa_encrypted_key(self) -> Optional[str]:
23137
+ """
23138
+ Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
23139
+ customer-supplied encryption key to either encrypt or decrypt
23140
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
23141
+ **Note**: This property is sensitive and will not be displayed in the plan.
23142
+ """
23143
+ return pulumi.get(self, "rsa_encrypted_key")
23144
+
22574
23145
  @property
22575
23146
  @pulumi.getter
22576
23147
  def sha256(self) -> Optional[str]:
@@ -25910,6 +26481,8 @@ class RegionInstanceTemplateScheduling(dict):
25910
26481
  suggest = "on_instance_stop_action"
25911
26482
  elif key == "provisioningModel":
25912
26483
  suggest = "provisioning_model"
26484
+ elif key == "terminationTime":
26485
+ suggest = "termination_time"
25913
26486
 
25914
26487
  if suggest:
25915
26488
  pulumi.log.warn(f"Key '{key}' not found in RegionInstanceTemplateScheduling. Access the value via the '{suggest}' property getter instead.")
@@ -25936,7 +26509,8 @@ class RegionInstanceTemplateScheduling(dict):
25936
26509
  on_host_maintenance: Optional[str] = None,
25937
26510
  on_instance_stop_action: Optional['outputs.RegionInstanceTemplateSchedulingOnInstanceStopAction'] = None,
25938
26511
  preemptible: Optional[bool] = None,
25939
- provisioning_model: Optional[str] = None):
26512
+ provisioning_model: Optional[str] = None,
26513
+ termination_time: Optional[str] = None):
25940
26514
  """
25941
26515
  :param bool automatic_restart: Specifies whether the instance should be
25942
26516
  automatically restarted if it is terminated by Compute Engine (not
@@ -25967,6 +26541,7 @@ class RegionInstanceTemplateScheduling(dict):
25967
26541
  `preemptible` should be `true` and `automatic_restart` should be
25968
26542
  `false`. For more info about
25969
26543
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
26544
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
25970
26545
  """
25971
26546
  if automatic_restart is not None:
25972
26547
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -25996,6 +26571,8 @@ class RegionInstanceTemplateScheduling(dict):
25996
26571
  pulumi.set(__self__, "preemptible", preemptible)
25997
26572
  if provisioning_model is not None:
25998
26573
  pulumi.set(__self__, "provisioning_model", provisioning_model)
26574
+ if termination_time is not None:
26575
+ pulumi.set(__self__, "termination_time", termination_time)
25999
26576
 
26000
26577
  @property
26001
26578
  @pulumi.getter(name="automaticRestart")
@@ -26124,6 +26701,14 @@ class RegionInstanceTemplateScheduling(dict):
26124
26701
  """
26125
26702
  return pulumi.get(self, "provisioning_model")
26126
26703
 
26704
+ @property
26705
+ @pulumi.getter(name="terminationTime")
26706
+ def termination_time(self) -> Optional[str]:
26707
+ """
26708
+ Specifies the timestamp, when the instance will be terminated, in RFC3339 text format. If specified, the instance termination action will be performed at the termination time.
26709
+ """
26710
+ return pulumi.get(self, "termination_time")
26711
+
26127
26712
 
26128
26713
  @pulumi.output_type
26129
26714
  class RegionInstanceTemplateSchedulingGracefulShutdown(dict):
@@ -38224,6 +38809,158 @@ class ResourcePolicySnapshotSchedulePolicySnapshotProperties(dict):
38224
38809
  return pulumi.get(self, "storage_locations")
38225
38810
 
38226
38811
 
38812
+ @pulumi.output_type
38813
+ class RouteAsPath(dict):
38814
+ @staticmethod
38815
+ def __key_warning(key: str):
38816
+ suggest = None
38817
+ if key == "asLists":
38818
+ suggest = "as_lists"
38819
+ elif key == "pathSegmentType":
38820
+ suggest = "path_segment_type"
38821
+
38822
+ if suggest:
38823
+ pulumi.log.warn(f"Key '{key}' not found in RouteAsPath. Access the value via the '{suggest}' property getter instead.")
38824
+
38825
+ def __getitem__(self, key: str) -> Any:
38826
+ RouteAsPath.__key_warning(key)
38827
+ return super().__getitem__(key)
38828
+
38829
+ def get(self, key: str, default = None) -> Any:
38830
+ RouteAsPath.__key_warning(key)
38831
+ return super().get(key, default)
38832
+
38833
+ def __init__(__self__, *,
38834
+ as_lists: Optional[Sequence[int]] = None,
38835
+ path_segment_type: Optional[str] = None):
38836
+ """
38837
+ :param Sequence[int] as_lists: (Output)
38838
+ The AS numbers of the AS Path.
38839
+ :param str path_segment_type: (Output)
38840
+ The type of the AS Path, which can be one of the following values:
38841
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
38842
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
38843
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
38844
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
38845
+ """
38846
+ if as_lists is not None:
38847
+ pulumi.set(__self__, "as_lists", as_lists)
38848
+ if path_segment_type is not None:
38849
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
38850
+
38851
+ @property
38852
+ @pulumi.getter(name="asLists")
38853
+ def as_lists(self) -> Optional[Sequence[int]]:
38854
+ """
38855
+ (Output)
38856
+ The AS numbers of the AS Path.
38857
+ """
38858
+ return pulumi.get(self, "as_lists")
38859
+
38860
+ @property
38861
+ @pulumi.getter(name="pathSegmentType")
38862
+ def path_segment_type(self) -> Optional[str]:
38863
+ """
38864
+ (Output)
38865
+ The type of the AS Path, which can be one of the following values:
38866
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
38867
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
38868
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
38869
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
38870
+ """
38871
+ return pulumi.get(self, "path_segment_type")
38872
+
38873
+
38874
+ @pulumi.output_type
38875
+ class RouteWarning(dict):
38876
+ def __init__(__self__, *,
38877
+ code: Optional[str] = None,
38878
+ datas: Optional[Sequence['outputs.RouteWarningData']] = None,
38879
+ message: Optional[str] = None):
38880
+ """
38881
+ :param str code: (Output)
38882
+ A warning code, if applicable. For example, Compute Engine returns
38883
+ NO_RESULTS_ON_PAGE if there are no results in the response.
38884
+ :param Sequence['RouteWarningDataArgs'] datas: (Output)
38885
+ Metadata about this warning in key: value format. For example:
38886
+ "data": { "key": "scope", "value": "zones/us-east1-d" }
38887
+ Structure is [documented below.
38888
+ :param str message: (Output)
38889
+ A human-readable description of the warning code.
38890
+ """
38891
+ if code is not None:
38892
+ pulumi.set(__self__, "code", code)
38893
+ if datas is not None:
38894
+ pulumi.set(__self__, "datas", datas)
38895
+ if message is not None:
38896
+ pulumi.set(__self__, "message", message)
38897
+
38898
+ @property
38899
+ @pulumi.getter
38900
+ def code(self) -> Optional[str]:
38901
+ """
38902
+ (Output)
38903
+ A warning code, if applicable. For example, Compute Engine returns
38904
+ NO_RESULTS_ON_PAGE if there are no results in the response.
38905
+ """
38906
+ return pulumi.get(self, "code")
38907
+
38908
+ @property
38909
+ @pulumi.getter
38910
+ def datas(self) -> Optional[Sequence['outputs.RouteWarningData']]:
38911
+ """
38912
+ (Output)
38913
+ Metadata about this warning in key: value format. For example:
38914
+ "data": { "key": "scope", "value": "zones/us-east1-d" }
38915
+ Structure is [documented below.
38916
+ """
38917
+ return pulumi.get(self, "datas")
38918
+
38919
+ @property
38920
+ @pulumi.getter
38921
+ def message(self) -> Optional[str]:
38922
+ """
38923
+ (Output)
38924
+ A human-readable description of the warning code.
38925
+ """
38926
+ return pulumi.get(self, "message")
38927
+
38928
+
38929
+ @pulumi.output_type
38930
+ class RouteWarningData(dict):
38931
+ def __init__(__self__, *,
38932
+ key: Optional[str] = None,
38933
+ value: Optional[str] = None):
38934
+ """
38935
+ :param str key: (Output)
38936
+ 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).
38937
+ :param str value: (Output)
38938
+ A warning data value corresponding to the key.
38939
+ """
38940
+ if key is not None:
38941
+ pulumi.set(__self__, "key", key)
38942
+ if value is not None:
38943
+ pulumi.set(__self__, "value", value)
38944
+
38945
+ @property
38946
+ @pulumi.getter
38947
+ def key(self) -> Optional[str]:
38948
+ """
38949
+ (Output)
38950
+ 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).
38951
+ """
38952
+ return pulumi.get(self, "key")
38953
+
38954
+ @property
38955
+ @pulumi.getter
38956
+ def value(self) -> Optional[str]:
38957
+ """
38958
+ (Output)
38959
+ A warning data value corresponding to the key.
38960
+ """
38961
+ return pulumi.get(self, "value")
38962
+
38963
+
38227
38964
  @pulumi.output_type
38228
38965
  class RouterBgp(dict):
38229
38966
  @staticmethod
@@ -39065,11 +39802,14 @@ class RouterRoutePolicyTermMatch(dict):
39065
39802
  @pulumi.output_type
39066
39803
  class RouterStatusBestRouteResult(dict):
39067
39804
  def __init__(__self__, *,
39805
+ as_paths: Sequence['outputs.RouterStatusBestRouteAsPathResult'],
39806
+ creation_timestamp: str,
39068
39807
  description: str,
39069
39808
  dest_range: str,
39070
39809
  name: str,
39071
39810
  network: str,
39072
39811
  next_hop_gateway: str,
39812
+ next_hop_hub: str,
39073
39813
  next_hop_ilb: str,
39074
39814
  next_hop_instance: str,
39075
39815
  next_hop_instance_zone: str,
@@ -39078,12 +39818,17 @@ class RouterStatusBestRouteResult(dict):
39078
39818
  next_hop_med: str,
39079
39819
  next_hop_network: str,
39080
39820
  next_hop_origin: str,
39821
+ next_hop_peering: str,
39081
39822
  next_hop_vpn_tunnel: str,
39082
39823
  priority: int,
39083
39824
  project: str,
39825
+ route_status: str,
39826
+ route_type: str,
39084
39827
  self_link: str,
39085
- tags: Sequence[str]):
39828
+ tags: Sequence[str],
39829
+ warnings: Sequence['outputs.RouterStatusBestRouteWarningResult']):
39086
39830
  """
39831
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
39087
39832
  :param str description: An optional description of this resource. Provide this property
39088
39833
  when you create the resource.
39089
39834
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -39098,6 +39843,7 @@ class RouterStatusBestRouteResult(dict):
39098
39843
  * 'projects/project/global/gateways/default-internet-gateway'
39099
39844
  * 'global/gateways/default-internet-gateway'
39100
39845
  * The string 'default-internet-gateway'.
39846
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
39101
39847
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
39102
39848
  loadBalancingScheme=INTERNAL that should handle matching
39103
39849
  packets.
@@ -39126,6 +39872,7 @@ class RouterStatusBestRouteResult(dict):
39126
39872
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
39127
39873
  :param str next_hop_network: URL to a Network that should handle matching packets.
39128
39874
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
39875
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
39129
39876
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
39130
39877
  :param int priority: The priority of this route. Priority is used to break ties in cases
39131
39878
  where there is more than one matching route of equal prefix length.
@@ -39136,13 +39883,25 @@ class RouterStatusBestRouteResult(dict):
39136
39883
  Default value is 1000. Valid range is 0 through 65535.
39137
39884
  :param str project: The ID of the project in which the resource
39138
39885
  belongs. If it is not provided, the provider project is used.
39886
+ :param str route_status: The status of the route, which can be one of the following values:
39887
+ - 'ACTIVE' for an active route
39888
+ - 'INACTIVE' for an inactive route
39889
+ :param str route_type: The type of this route, which can be one of the following values:
39890
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
39891
+ - 'SUBNET' for a route from a subnet of the VPC
39892
+ - 'BGP' for a route learned from a BGP peer of this router
39893
+ - 'STATIC' for a static route
39139
39894
  :param Sequence[str] tags: A list of instance tags to which this route applies.
39895
+ :param Sequence['RouterStatusBestRouteWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
39140
39896
  """
39897
+ pulumi.set(__self__, "as_paths", as_paths)
39898
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
39141
39899
  pulumi.set(__self__, "description", description)
39142
39900
  pulumi.set(__self__, "dest_range", dest_range)
39143
39901
  pulumi.set(__self__, "name", name)
39144
39902
  pulumi.set(__self__, "network", network)
39145
39903
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
39904
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
39146
39905
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
39147
39906
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
39148
39907
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -39151,11 +39910,28 @@ class RouterStatusBestRouteResult(dict):
39151
39910
  pulumi.set(__self__, "next_hop_med", next_hop_med)
39152
39911
  pulumi.set(__self__, "next_hop_network", next_hop_network)
39153
39912
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
39913
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
39154
39914
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
39155
39915
  pulumi.set(__self__, "priority", priority)
39156
39916
  pulumi.set(__self__, "project", project)
39917
+ pulumi.set(__self__, "route_status", route_status)
39918
+ pulumi.set(__self__, "route_type", route_type)
39157
39919
  pulumi.set(__self__, "self_link", self_link)
39158
39920
  pulumi.set(__self__, "tags", tags)
39921
+ pulumi.set(__self__, "warnings", warnings)
39922
+
39923
+ @property
39924
+ @pulumi.getter(name="asPaths")
39925
+ def as_paths(self) -> Sequence['outputs.RouterStatusBestRouteAsPathResult']:
39926
+ return pulumi.get(self, "as_paths")
39927
+
39928
+ @property
39929
+ @pulumi.getter(name="creationTimestamp")
39930
+ def creation_timestamp(self) -> str:
39931
+ """
39932
+ Creation timestamp in RFC3339 text format.
39933
+ """
39934
+ return pulumi.get(self, "creation_timestamp")
39159
39935
 
39160
39936
  @property
39161
39937
  @pulumi.getter
@@ -39206,6 +39982,14 @@ class RouterStatusBestRouteResult(dict):
39206
39982
  """
39207
39983
  return pulumi.get(self, "next_hop_gateway")
39208
39984
 
39985
+ @property
39986
+ @pulumi.getter(name="nextHopHub")
39987
+ def next_hop_hub(self) -> str:
39988
+ """
39989
+ The hub network that should handle matching packets, which should conform to RFC1035.
39990
+ """
39991
+ return pulumi.get(self, "next_hop_hub")
39992
+
39209
39993
  @property
39210
39994
  @pulumi.getter(name="nextHopIlb")
39211
39995
  def next_hop_ilb(self) -> str:
@@ -39290,6 +40074,14 @@ class RouterStatusBestRouteResult(dict):
39290
40074
  """
39291
40075
  return pulumi.get(self, "next_hop_origin")
39292
40076
 
40077
+ @property
40078
+ @pulumi.getter(name="nextHopPeering")
40079
+ def next_hop_peering(self) -> str:
40080
+ """
40081
+ The network peering name that should handle matching packets, which should conform to RFC1035.
40082
+ """
40083
+ return pulumi.get(self, "next_hop_peering")
40084
+
39293
40085
  @property
39294
40086
  @pulumi.getter(name="nextHopVpnTunnel")
39295
40087
  def next_hop_vpn_tunnel(self) -> str:
@@ -39321,6 +40113,28 @@ class RouterStatusBestRouteResult(dict):
39321
40113
  """
39322
40114
  return pulumi.get(self, "project")
39323
40115
 
40116
+ @property
40117
+ @pulumi.getter(name="routeStatus")
40118
+ def route_status(self) -> str:
40119
+ """
40120
+ The status of the route, which can be one of the following values:
40121
+ - 'ACTIVE' for an active route
40122
+ - 'INACTIVE' for an inactive route
40123
+ """
40124
+ return pulumi.get(self, "route_status")
40125
+
40126
+ @property
40127
+ @pulumi.getter(name="routeType")
40128
+ def route_type(self) -> str:
40129
+ """
40130
+ The type of this route, which can be one of the following values:
40131
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
40132
+ - 'SUBNET' for a route from a subnet of the VPC
40133
+ - 'BGP' for a route learned from a BGP peer of this router
40134
+ - 'STATIC' for a static route
40135
+ """
40136
+ return pulumi.get(self, "route_type")
40137
+
39324
40138
  @property
39325
40139
  @pulumi.getter(name="selfLink")
39326
40140
  def self_link(self) -> str:
@@ -39334,15 +40148,136 @@ class RouterStatusBestRouteResult(dict):
39334
40148
  """
39335
40149
  return pulumi.get(self, "tags")
39336
40150
 
40151
+ @property
40152
+ @pulumi.getter
40153
+ def warnings(self) -> Sequence['outputs.RouterStatusBestRouteWarningResult']:
40154
+ """
40155
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
40156
+ """
40157
+ return pulumi.get(self, "warnings")
40158
+
40159
+
40160
+ @pulumi.output_type
40161
+ class RouterStatusBestRouteAsPathResult(dict):
40162
+ def __init__(__self__, *,
40163
+ as_lists: Sequence[int],
40164
+ path_segment_type: str):
40165
+ """
40166
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
40167
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
40168
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
40169
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
40170
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
40171
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
40172
+ """
40173
+ pulumi.set(__self__, "as_lists", as_lists)
40174
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
40175
+
40176
+ @property
40177
+ @pulumi.getter(name="asLists")
40178
+ def as_lists(self) -> Sequence[int]:
40179
+ """
40180
+ The AS numbers of the AS Path.
40181
+ """
40182
+ return pulumi.get(self, "as_lists")
40183
+
40184
+ @property
40185
+ @pulumi.getter(name="pathSegmentType")
40186
+ def path_segment_type(self) -> str:
40187
+ """
40188
+ The type of the AS Path, which can be one of the following values:
40189
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
40190
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
40191
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
40192
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
40193
+ """
40194
+ return pulumi.get(self, "path_segment_type")
40195
+
40196
+
40197
+ @pulumi.output_type
40198
+ class RouterStatusBestRouteWarningResult(dict):
40199
+ def __init__(__self__, *,
40200
+ code: str,
40201
+ datas: Sequence['outputs.RouterStatusBestRouteWarningDataResult'],
40202
+ message: str):
40203
+ """
40204
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
40205
+ NO_RESULTS_ON_PAGE if there are no results in the response.
40206
+ :param Sequence['RouterStatusBestRouteWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
40207
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40208
+ :param str message: A human-readable description of the warning code.
40209
+ """
40210
+ pulumi.set(__self__, "code", code)
40211
+ pulumi.set(__self__, "datas", datas)
40212
+ pulumi.set(__self__, "message", message)
40213
+
40214
+ @property
40215
+ @pulumi.getter
40216
+ def code(self) -> str:
40217
+ """
40218
+ A warning code, if applicable. For example, Compute Engine returns
40219
+ NO_RESULTS_ON_PAGE if there are no results in the response.
40220
+ """
40221
+ return pulumi.get(self, "code")
40222
+
40223
+ @property
40224
+ @pulumi.getter
40225
+ def datas(self) -> Sequence['outputs.RouterStatusBestRouteWarningDataResult']:
40226
+ """
40227
+ Metadata about this warning in key: value format. For example:
40228
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40229
+ """
40230
+ return pulumi.get(self, "datas")
40231
+
40232
+ @property
40233
+ @pulumi.getter
40234
+ def message(self) -> str:
40235
+ """
40236
+ A human-readable description of the warning code.
40237
+ """
40238
+ return pulumi.get(self, "message")
40239
+
40240
+
40241
+ @pulumi.output_type
40242
+ class RouterStatusBestRouteWarningDataResult(dict):
40243
+ def __init__(__self__, *,
40244
+ key: str,
40245
+ value: str):
40246
+ """
40247
+ :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).
40248
+ :param str value: A warning data value corresponding to the key.
40249
+ """
40250
+ pulumi.set(__self__, "key", key)
40251
+ pulumi.set(__self__, "value", value)
40252
+
40253
+ @property
40254
+ @pulumi.getter
40255
+ def key(self) -> str:
40256
+ """
40257
+ 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).
40258
+ """
40259
+ return pulumi.get(self, "key")
40260
+
40261
+ @property
40262
+ @pulumi.getter
40263
+ def value(self) -> str:
40264
+ """
40265
+ A warning data value corresponding to the key.
40266
+ """
40267
+ return pulumi.get(self, "value")
40268
+
39337
40269
 
39338
40270
  @pulumi.output_type
39339
40271
  class RouterStatusBestRoutesForRouterResult(dict):
39340
40272
  def __init__(__self__, *,
40273
+ as_paths: Sequence['outputs.RouterStatusBestRoutesForRouterAsPathResult'],
40274
+ creation_timestamp: str,
39341
40275
  description: str,
39342
40276
  dest_range: str,
39343
40277
  name: str,
39344
40278
  network: str,
39345
40279
  next_hop_gateway: str,
40280
+ next_hop_hub: str,
39346
40281
  next_hop_ilb: str,
39347
40282
  next_hop_instance: str,
39348
40283
  next_hop_instance_zone: str,
@@ -39351,12 +40286,17 @@ class RouterStatusBestRoutesForRouterResult(dict):
39351
40286
  next_hop_med: str,
39352
40287
  next_hop_network: str,
39353
40288
  next_hop_origin: str,
40289
+ next_hop_peering: str,
39354
40290
  next_hop_vpn_tunnel: str,
39355
40291
  priority: int,
39356
40292
  project: str,
40293
+ route_status: str,
40294
+ route_type: str,
39357
40295
  self_link: str,
39358
- tags: Sequence[str]):
40296
+ tags: Sequence[str],
40297
+ warnings: Sequence['outputs.RouterStatusBestRoutesForRouterWarningResult']):
39359
40298
  """
40299
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
39360
40300
  :param str description: An optional description of this resource. Provide this property
39361
40301
  when you create the resource.
39362
40302
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -39371,6 +40311,7 @@ class RouterStatusBestRoutesForRouterResult(dict):
39371
40311
  * 'projects/project/global/gateways/default-internet-gateway'
39372
40312
  * 'global/gateways/default-internet-gateway'
39373
40313
  * The string 'default-internet-gateway'.
40314
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
39374
40315
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
39375
40316
  loadBalancingScheme=INTERNAL that should handle matching
39376
40317
  packets.
@@ -39399,6 +40340,7 @@ class RouterStatusBestRoutesForRouterResult(dict):
39399
40340
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
39400
40341
  :param str next_hop_network: URL to a Network that should handle matching packets.
39401
40342
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
40343
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
39402
40344
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
39403
40345
  :param int priority: The priority of this route. Priority is used to break ties in cases
39404
40346
  where there is more than one matching route of equal prefix length.
@@ -39409,13 +40351,25 @@ class RouterStatusBestRoutesForRouterResult(dict):
39409
40351
  Default value is 1000. Valid range is 0 through 65535.
39410
40352
  :param str project: The ID of the project in which the resource
39411
40353
  belongs. If it is not provided, the provider project is used.
40354
+ :param str route_status: The status of the route, which can be one of the following values:
40355
+ - 'ACTIVE' for an active route
40356
+ - 'INACTIVE' for an inactive route
40357
+ :param str route_type: The type of this route, which can be one of the following values:
40358
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
40359
+ - 'SUBNET' for a route from a subnet of the VPC
40360
+ - 'BGP' for a route learned from a BGP peer of this router
40361
+ - 'STATIC' for a static route
39412
40362
  :param Sequence[str] tags: A list of instance tags to which this route applies.
40363
+ :param Sequence['RouterStatusBestRoutesForRouterWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
39413
40364
  """
40365
+ pulumi.set(__self__, "as_paths", as_paths)
40366
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
39414
40367
  pulumi.set(__self__, "description", description)
39415
40368
  pulumi.set(__self__, "dest_range", dest_range)
39416
40369
  pulumi.set(__self__, "name", name)
39417
40370
  pulumi.set(__self__, "network", network)
39418
40371
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
40372
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
39419
40373
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
39420
40374
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
39421
40375
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -39424,11 +40378,28 @@ class RouterStatusBestRoutesForRouterResult(dict):
39424
40378
  pulumi.set(__self__, "next_hop_med", next_hop_med)
39425
40379
  pulumi.set(__self__, "next_hop_network", next_hop_network)
39426
40380
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
40381
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
39427
40382
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
39428
40383
  pulumi.set(__self__, "priority", priority)
39429
40384
  pulumi.set(__self__, "project", project)
40385
+ pulumi.set(__self__, "route_status", route_status)
40386
+ pulumi.set(__self__, "route_type", route_type)
39430
40387
  pulumi.set(__self__, "self_link", self_link)
39431
40388
  pulumi.set(__self__, "tags", tags)
40389
+ pulumi.set(__self__, "warnings", warnings)
40390
+
40391
+ @property
40392
+ @pulumi.getter(name="asPaths")
40393
+ def as_paths(self) -> Sequence['outputs.RouterStatusBestRoutesForRouterAsPathResult']:
40394
+ return pulumi.get(self, "as_paths")
40395
+
40396
+ @property
40397
+ @pulumi.getter(name="creationTimestamp")
40398
+ def creation_timestamp(self) -> str:
40399
+ """
40400
+ Creation timestamp in RFC3339 text format.
40401
+ """
40402
+ return pulumi.get(self, "creation_timestamp")
39432
40403
 
39433
40404
  @property
39434
40405
  @pulumi.getter
@@ -39479,6 +40450,14 @@ class RouterStatusBestRoutesForRouterResult(dict):
39479
40450
  """
39480
40451
  return pulumi.get(self, "next_hop_gateway")
39481
40452
 
40453
+ @property
40454
+ @pulumi.getter(name="nextHopHub")
40455
+ def next_hop_hub(self) -> str:
40456
+ """
40457
+ The hub network that should handle matching packets, which should conform to RFC1035.
40458
+ """
40459
+ return pulumi.get(self, "next_hop_hub")
40460
+
39482
40461
  @property
39483
40462
  @pulumi.getter(name="nextHopIlb")
39484
40463
  def next_hop_ilb(self) -> str:
@@ -39563,6 +40542,14 @@ class RouterStatusBestRoutesForRouterResult(dict):
39563
40542
  """
39564
40543
  return pulumi.get(self, "next_hop_origin")
39565
40544
 
40545
+ @property
40546
+ @pulumi.getter(name="nextHopPeering")
40547
+ def next_hop_peering(self) -> str:
40548
+ """
40549
+ The network peering name that should handle matching packets, which should conform to RFC1035.
40550
+ """
40551
+ return pulumi.get(self, "next_hop_peering")
40552
+
39566
40553
  @property
39567
40554
  @pulumi.getter(name="nextHopVpnTunnel")
39568
40555
  def next_hop_vpn_tunnel(self) -> str:
@@ -39594,6 +40581,28 @@ class RouterStatusBestRoutesForRouterResult(dict):
39594
40581
  """
39595
40582
  return pulumi.get(self, "project")
39596
40583
 
40584
+ @property
40585
+ @pulumi.getter(name="routeStatus")
40586
+ def route_status(self) -> str:
40587
+ """
40588
+ The status of the route, which can be one of the following values:
40589
+ - 'ACTIVE' for an active route
40590
+ - 'INACTIVE' for an inactive route
40591
+ """
40592
+ return pulumi.get(self, "route_status")
40593
+
40594
+ @property
40595
+ @pulumi.getter(name="routeType")
40596
+ def route_type(self) -> str:
40597
+ """
40598
+ The type of this route, which can be one of the following values:
40599
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
40600
+ - 'SUBNET' for a route from a subnet of the VPC
40601
+ - 'BGP' for a route learned from a BGP peer of this router
40602
+ - 'STATIC' for a static route
40603
+ """
40604
+ return pulumi.get(self, "route_type")
40605
+
39597
40606
  @property
39598
40607
  @pulumi.getter(name="selfLink")
39599
40608
  def self_link(self) -> str:
@@ -39607,6 +40616,124 @@ class RouterStatusBestRoutesForRouterResult(dict):
39607
40616
  """
39608
40617
  return pulumi.get(self, "tags")
39609
40618
 
40619
+ @property
40620
+ @pulumi.getter
40621
+ def warnings(self) -> Sequence['outputs.RouterStatusBestRoutesForRouterWarningResult']:
40622
+ """
40623
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
40624
+ """
40625
+ return pulumi.get(self, "warnings")
40626
+
40627
+
40628
+ @pulumi.output_type
40629
+ class RouterStatusBestRoutesForRouterAsPathResult(dict):
40630
+ def __init__(__self__, *,
40631
+ as_lists: Sequence[int],
40632
+ path_segment_type: str):
40633
+ """
40634
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
40635
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
40636
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
40637
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
40638
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
40639
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
40640
+ """
40641
+ pulumi.set(__self__, "as_lists", as_lists)
40642
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
40643
+
40644
+ @property
40645
+ @pulumi.getter(name="asLists")
40646
+ def as_lists(self) -> Sequence[int]:
40647
+ """
40648
+ The AS numbers of the AS Path.
40649
+ """
40650
+ return pulumi.get(self, "as_lists")
40651
+
40652
+ @property
40653
+ @pulumi.getter(name="pathSegmentType")
40654
+ def path_segment_type(self) -> str:
40655
+ """
40656
+ The type of the AS Path, which can be one of the following values:
40657
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
40658
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
40659
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
40660
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
40661
+ """
40662
+ return pulumi.get(self, "path_segment_type")
40663
+
40664
+
40665
+ @pulumi.output_type
40666
+ class RouterStatusBestRoutesForRouterWarningResult(dict):
40667
+ def __init__(__self__, *,
40668
+ code: str,
40669
+ datas: Sequence['outputs.RouterStatusBestRoutesForRouterWarningDataResult'],
40670
+ message: str):
40671
+ """
40672
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
40673
+ NO_RESULTS_ON_PAGE if there are no results in the response.
40674
+ :param Sequence['RouterStatusBestRoutesForRouterWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
40675
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40676
+ :param str message: A human-readable description of the warning code.
40677
+ """
40678
+ pulumi.set(__self__, "code", code)
40679
+ pulumi.set(__self__, "datas", datas)
40680
+ pulumi.set(__self__, "message", message)
40681
+
40682
+ @property
40683
+ @pulumi.getter
40684
+ def code(self) -> str:
40685
+ """
40686
+ A warning code, if applicable. For example, Compute Engine returns
40687
+ NO_RESULTS_ON_PAGE if there are no results in the response.
40688
+ """
40689
+ return pulumi.get(self, "code")
40690
+
40691
+ @property
40692
+ @pulumi.getter
40693
+ def datas(self) -> Sequence['outputs.RouterStatusBestRoutesForRouterWarningDataResult']:
40694
+ """
40695
+ Metadata about this warning in key: value format. For example:
40696
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40697
+ """
40698
+ return pulumi.get(self, "datas")
40699
+
40700
+ @property
40701
+ @pulumi.getter
40702
+ def message(self) -> str:
40703
+ """
40704
+ A human-readable description of the warning code.
40705
+ """
40706
+ return pulumi.get(self, "message")
40707
+
40708
+
40709
+ @pulumi.output_type
40710
+ class RouterStatusBestRoutesForRouterWarningDataResult(dict):
40711
+ def __init__(__self__, *,
40712
+ key: str,
40713
+ value: str):
40714
+ """
40715
+ :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).
40716
+ :param str value: A warning data value corresponding to the key.
40717
+ """
40718
+ pulumi.set(__self__, "key", key)
40719
+ pulumi.set(__self__, "value", value)
40720
+
40721
+ @property
40722
+ @pulumi.getter
40723
+ def key(self) -> str:
40724
+ """
40725
+ 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).
40726
+ """
40727
+ return pulumi.get(self, "key")
40728
+
40729
+ @property
40730
+ @pulumi.getter
40731
+ def value(self) -> str:
40732
+ """
40733
+ A warning data value corresponding to the key.
40734
+ """
40735
+ return pulumi.get(self, "value")
40736
+
39610
40737
 
39611
40738
  @pulumi.output_type
39612
40739
  class SecurityPolicyAdaptiveProtectionConfig(dict):
@@ -42396,6 +43523,8 @@ class URLMapDefaultRouteAction(dict):
42396
43523
  suggest = "cors_policy"
42397
43524
  elif key == "faultInjectionPolicy":
42398
43525
  suggest = "fault_injection_policy"
43526
+ elif key == "maxStreamDuration":
43527
+ suggest = "max_stream_duration"
42399
43528
  elif key == "requestMirrorPolicy":
42400
43529
  suggest = "request_mirror_policy"
42401
43530
  elif key == "retryPolicy":
@@ -42419,6 +43548,7 @@ class URLMapDefaultRouteAction(dict):
42419
43548
  def __init__(__self__, *,
42420
43549
  cors_policy: Optional['outputs.URLMapDefaultRouteActionCorsPolicy'] = None,
42421
43550
  fault_injection_policy: Optional['outputs.URLMapDefaultRouteActionFaultInjectionPolicy'] = None,
43551
+ max_stream_duration: Optional['outputs.URLMapDefaultRouteActionMaxStreamDuration'] = None,
42422
43552
  request_mirror_policy: Optional['outputs.URLMapDefaultRouteActionRequestMirrorPolicy'] = None,
42423
43553
  retry_policy: Optional['outputs.URLMapDefaultRouteActionRetryPolicy'] = None,
42424
43554
  timeout: Optional['outputs.URLMapDefaultRouteActionTimeout'] = None,
@@ -42434,6 +43564,12 @@ class URLMapDefaultRouteAction(dict):
42434
43564
  by the Loadbalancer for a percentage of requests.
42435
43565
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
42436
43566
  Structure is documented below.
43567
+ :param 'URLMapDefaultRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
43568
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
43569
+ has been fully processed (known as end-of-stream), the duration in this field
43570
+ is computed from the beginning of the stream until the response has been processed,
43571
+ including all retries. A stream that does not complete in this duration is closed.
43572
+ Structure is documented below.
42437
43573
  :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
43574
  Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,
42439
43575
  the host / authority header is suffixed with -shadow.
@@ -42459,6 +43595,8 @@ class URLMapDefaultRouteAction(dict):
42459
43595
  pulumi.set(__self__, "cors_policy", cors_policy)
42460
43596
  if fault_injection_policy is not None:
42461
43597
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
43598
+ if max_stream_duration is not None:
43599
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
42462
43600
  if request_mirror_policy is not None:
42463
43601
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
42464
43602
  if retry_policy is not None:
@@ -42493,6 +43631,19 @@ class URLMapDefaultRouteAction(dict):
42493
43631
  """
42494
43632
  return pulumi.get(self, "fault_injection_policy")
42495
43633
 
43634
+ @property
43635
+ @pulumi.getter(name="maxStreamDuration")
43636
+ def max_stream_duration(self) -> Optional['outputs.URLMapDefaultRouteActionMaxStreamDuration']:
43637
+ """
43638
+ Specifies the maximum duration (timeout) for streams on the selected route.
43639
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
43640
+ has been fully processed (known as end-of-stream), the duration in this field
43641
+ is computed from the beginning of the stream until the response has been processed,
43642
+ including all retries. A stream that does not complete in this duration is closed.
43643
+ Structure is documented below.
43644
+ """
43645
+ return pulumi.get(self, "max_stream_duration")
43646
+
42496
43647
  @property
42497
43648
  @pulumi.getter(name="requestMirrorPolicy")
42498
43649
  def request_mirror_policy(self) -> Optional['outputs.URLMapDefaultRouteActionRequestMirrorPolicy']:
@@ -42865,6 +44016,40 @@ class URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelay(dict):
42865
44016
  return pulumi.get(self, "seconds")
42866
44017
 
42867
44018
 
44019
+ @pulumi.output_type
44020
+ class URLMapDefaultRouteActionMaxStreamDuration(dict):
44021
+ def __init__(__self__, *,
44022
+ seconds: str,
44023
+ nanos: Optional[int] = None):
44024
+ """
44025
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
44026
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
44027
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
44028
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
44029
+ """
44030
+ pulumi.set(__self__, "seconds", seconds)
44031
+ if nanos is not None:
44032
+ pulumi.set(__self__, "nanos", nanos)
44033
+
44034
+ @property
44035
+ @pulumi.getter
44036
+ def seconds(self) -> str:
44037
+ """
44038
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
44039
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
44040
+ """
44041
+ return pulumi.get(self, "seconds")
44042
+
44043
+ @property
44044
+ @pulumi.getter
44045
+ def nanos(self) -> Optional[int]:
44046
+ """
44047
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
44048
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
44049
+ """
44050
+ return pulumi.get(self, "nanos")
44051
+
44052
+
42868
44053
  @pulumi.output_type
42869
44054
  class URLMapDefaultRouteActionRequestMirrorPolicy(dict):
42870
44055
  @staticmethod
@@ -44209,6 +45394,8 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44209
45394
  suggest = "cors_policy"
44210
45395
  elif key == "faultInjectionPolicy":
44211
45396
  suggest = "fault_injection_policy"
45397
+ elif key == "maxStreamDuration":
45398
+ suggest = "max_stream_duration"
44212
45399
  elif key == "requestMirrorPolicy":
44213
45400
  suggest = "request_mirror_policy"
44214
45401
  elif key == "retryPolicy":
@@ -44232,6 +45419,7 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44232
45419
  def __init__(__self__, *,
44233
45420
  cors_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionCorsPolicy'] = None,
44234
45421
  fault_injection_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionFaultInjectionPolicy'] = None,
45422
+ max_stream_duration: Optional['outputs.URLMapPathMatcherDefaultRouteActionMaxStreamDuration'] = None,
44235
45423
  request_mirror_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy'] = None,
44236
45424
  retry_policy: Optional['outputs.URLMapPathMatcherDefaultRouteActionRetryPolicy'] = None,
44237
45425
  timeout: Optional['outputs.URLMapPathMatcherDefaultRouteActionTimeout'] = None,
@@ -44247,6 +45435,12 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44247
45435
  by the Loadbalancer for a percentage of requests.
44248
45436
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
44249
45437
  Structure is documented below.
45438
+ :param 'URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
45439
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
45440
+ has been fully processed (known as end-of-stream), the duration in this field
45441
+ is computed from the beginning of the stream until the response has been processed,
45442
+ including all retries. A stream that does not complete in this duration is closed.
45443
+ Structure is documented below.
44250
45444
  :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
45445
  Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,
44252
45446
  the host / authority header is suffixed with -shadow.
@@ -44272,6 +45466,8 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44272
45466
  pulumi.set(__self__, "cors_policy", cors_policy)
44273
45467
  if fault_injection_policy is not None:
44274
45468
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
45469
+ if max_stream_duration is not None:
45470
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
44275
45471
  if request_mirror_policy is not None:
44276
45472
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
44277
45473
  if retry_policy is not None:
@@ -44306,6 +45502,19 @@ class URLMapPathMatcherDefaultRouteAction(dict):
44306
45502
  """
44307
45503
  return pulumi.get(self, "fault_injection_policy")
44308
45504
 
45505
+ @property
45506
+ @pulumi.getter(name="maxStreamDuration")
45507
+ def max_stream_duration(self) -> Optional['outputs.URLMapPathMatcherDefaultRouteActionMaxStreamDuration']:
45508
+ """
45509
+ Specifies the maximum duration (timeout) for streams on the selected route.
45510
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
45511
+ has been fully processed (known as end-of-stream), the duration in this field
45512
+ is computed from the beginning of the stream until the response has been processed,
45513
+ including all retries. A stream that does not complete in this duration is closed.
45514
+ Structure is documented below.
45515
+ """
45516
+ return pulumi.get(self, "max_stream_duration")
45517
+
44309
45518
  @property
44310
45519
  @pulumi.getter(name="requestMirrorPolicy")
44311
45520
  def request_mirror_policy(self) -> Optional['outputs.URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy']:
@@ -44678,6 +45887,40 @@ class URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelay(dic
44678
45887
  return pulumi.get(self, "seconds")
44679
45888
 
44680
45889
 
45890
+ @pulumi.output_type
45891
+ class URLMapPathMatcherDefaultRouteActionMaxStreamDuration(dict):
45892
+ def __init__(__self__, *,
45893
+ seconds: str,
45894
+ nanos: Optional[int] = None):
45895
+ """
45896
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
45897
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
45898
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
45899
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
45900
+ """
45901
+ pulumi.set(__self__, "seconds", seconds)
45902
+ if nanos is not None:
45903
+ pulumi.set(__self__, "nanos", nanos)
45904
+
45905
+ @property
45906
+ @pulumi.getter
45907
+ def seconds(self) -> str:
45908
+ """
45909
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
45910
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
45911
+ """
45912
+ return pulumi.get(self, "seconds")
45913
+
45914
+ @property
45915
+ @pulumi.getter
45916
+ def nanos(self) -> Optional[int]:
45917
+ """
45918
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
45919
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
45920
+ """
45921
+ return pulumi.get(self, "nanos")
45922
+
45923
+
44681
45924
  @pulumi.output_type
44682
45925
  class URLMapPathMatcherDefaultRouteActionRequestMirrorPolicy(dict):
44683
45926
  @staticmethod
@@ -45874,6 +47117,8 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45874
47117
  suggest = "cors_policy"
45875
47118
  elif key == "faultInjectionPolicy":
45876
47119
  suggest = "fault_injection_policy"
47120
+ elif key == "maxStreamDuration":
47121
+ suggest = "max_stream_duration"
45877
47122
  elif key == "requestMirrorPolicy":
45878
47123
  suggest = "request_mirror_policy"
45879
47124
  elif key == "retryPolicy":
@@ -45897,6 +47142,7 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45897
47142
  def __init__(__self__, *,
45898
47143
  cors_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionCorsPolicy'] = None,
45899
47144
  fault_injection_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicy'] = None,
47145
+ max_stream_duration: Optional['outputs.URLMapPathMatcherPathRuleRouteActionMaxStreamDuration'] = None,
45900
47146
  request_mirror_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy'] = None,
45901
47147
  retry_policy: Optional['outputs.URLMapPathMatcherPathRuleRouteActionRetryPolicy'] = None,
45902
47148
  timeout: Optional['outputs.URLMapPathMatcherPathRuleRouteActionTimeout'] = None,
@@ -45914,6 +47160,12 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45914
47160
  Loadbalancer for a percentage of requests. timeout and retry_policy will be
45915
47161
  ignored by clients that are configured with a fault_injection_policy.
45916
47162
  Structure is documented below.
47163
+ :param 'URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
47164
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
47165
+ has been fully processed (known as end-of-stream), the duration in this field
47166
+ is computed from the beginning of the stream until the response has been processed,
47167
+ including all retries. A stream that does not complete in this duration is closed.
47168
+ Structure is documented below.
45917
47169
  :param 'URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs' request_mirror_policy: Specifies the policy on how requests intended for the route's backends are
45918
47170
  shadowed to a separate mirrored backend service. Loadbalancer does not wait for
45919
47171
  responses from the shadow service. Prior to sending traffic to the shadow
@@ -45943,6 +47195,8 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45943
47195
  pulumi.set(__self__, "cors_policy", cors_policy)
45944
47196
  if fault_injection_policy is not None:
45945
47197
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
47198
+ if max_stream_duration is not None:
47199
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
45946
47200
  if request_mirror_policy is not None:
45947
47201
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
45948
47202
  if retry_policy is not None:
@@ -45979,6 +47233,19 @@ class URLMapPathMatcherPathRuleRouteAction(dict):
45979
47233
  """
45980
47234
  return pulumi.get(self, "fault_injection_policy")
45981
47235
 
47236
+ @property
47237
+ @pulumi.getter(name="maxStreamDuration")
47238
+ def max_stream_duration(self) -> Optional['outputs.URLMapPathMatcherPathRuleRouteActionMaxStreamDuration']:
47239
+ """
47240
+ Specifies the maximum duration (timeout) for streams on the selected route.
47241
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
47242
+ has been fully processed (known as end-of-stream), the duration in this field
47243
+ is computed from the beginning of the stream until the response has been processed,
47244
+ including all retries. A stream that does not complete in this duration is closed.
47245
+ Structure is documented below.
47246
+ """
47247
+ return pulumi.get(self, "max_stream_duration")
47248
+
45982
47249
  @property
45983
47250
  @pulumi.getter(name="requestMirrorPolicy")
45984
47251
  def request_mirror_policy(self) -> Optional['outputs.URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy']:
@@ -46349,6 +47616,40 @@ class URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelay(di
46349
47616
  return pulumi.get(self, "nanos")
46350
47617
 
46351
47618
 
47619
+ @pulumi.output_type
47620
+ class URLMapPathMatcherPathRuleRouteActionMaxStreamDuration(dict):
47621
+ def __init__(__self__, *,
47622
+ seconds: str,
47623
+ nanos: Optional[int] = None):
47624
+ """
47625
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
47626
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
47627
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
47628
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
47629
+ """
47630
+ pulumi.set(__self__, "seconds", seconds)
47631
+ if nanos is not None:
47632
+ pulumi.set(__self__, "nanos", nanos)
47633
+
47634
+ @property
47635
+ @pulumi.getter
47636
+ def seconds(self) -> str:
47637
+ """
47638
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
47639
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
47640
+ """
47641
+ return pulumi.get(self, "seconds")
47642
+
47643
+ @property
47644
+ @pulumi.getter
47645
+ def nanos(self) -> Optional[int]:
47646
+ """
47647
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
47648
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
47649
+ """
47650
+ return pulumi.get(self, "nanos")
47651
+
47652
+
46352
47653
  @pulumi.output_type
46353
47654
  class URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicy(dict):
46354
47655
  @staticmethod
@@ -48032,6 +49333,8 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48032
49333
  suggest = "cors_policy"
48033
49334
  elif key == "faultInjectionPolicy":
48034
49335
  suggest = "fault_injection_policy"
49336
+ elif key == "maxStreamDuration":
49337
+ suggest = "max_stream_duration"
48035
49338
  elif key == "requestMirrorPolicy":
48036
49339
  suggest = "request_mirror_policy"
48037
49340
  elif key == "retryPolicy":
@@ -48055,6 +49358,7 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48055
49358
  def __init__(__self__, *,
48056
49359
  cors_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionCorsPolicy'] = None,
48057
49360
  fault_injection_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicy'] = None,
49361
+ max_stream_duration: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration'] = None,
48058
49362
  request_mirror_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy'] = None,
48059
49363
  retry_policy: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionRetryPolicy'] = None,
48060
49364
  timeout: Optional['outputs.URLMapPathMatcherRouteRuleRouteActionTimeout'] = None,
@@ -48072,6 +49376,12 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48072
49376
  Loadbalancer for a percentage of requests. timeout and retry_policy will be
48073
49377
  ignored by clients that are configured with a fault_injection_policy.
48074
49378
  Structure is documented below.
49379
+ :param 'URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs' max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
49380
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
49381
+ has been fully processed (known as end-of-stream), the duration in this field
49382
+ is computed from the beginning of the stream until the response has been processed,
49383
+ including all retries. A stream that does not complete in this duration is closed.
49384
+ Structure is documented below.
48075
49385
  :param 'URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs' request_mirror_policy: Specifies the policy on how requests intended for the route's backends are
48076
49386
  shadowed to a separate mirrored backend service. Loadbalancer does not wait for
48077
49387
  responses from the shadow service. Prior to sending traffic to the shadow
@@ -48101,6 +49411,8 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48101
49411
  pulumi.set(__self__, "cors_policy", cors_policy)
48102
49412
  if fault_injection_policy is not None:
48103
49413
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
49414
+ if max_stream_duration is not None:
49415
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
48104
49416
  if request_mirror_policy is not None:
48105
49417
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
48106
49418
  if retry_policy is not None:
@@ -48137,6 +49449,19 @@ class URLMapPathMatcherRouteRuleRouteAction(dict):
48137
49449
  """
48138
49450
  return pulumi.get(self, "fault_injection_policy")
48139
49451
 
49452
+ @property
49453
+ @pulumi.getter(name="maxStreamDuration")
49454
+ def max_stream_duration(self) -> Optional['outputs.URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration']:
49455
+ """
49456
+ Specifies the maximum duration (timeout) for streams on the selected route.
49457
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
49458
+ has been fully processed (known as end-of-stream), the duration in this field
49459
+ is computed from the beginning of the stream until the response has been processed,
49460
+ including all retries. A stream that does not complete in this duration is closed.
49461
+ Structure is documented below.
49462
+ """
49463
+ return pulumi.get(self, "max_stream_duration")
49464
+
48140
49465
  @property
48141
49466
  @pulumi.getter(name="requestMirrorPolicy")
48142
49467
  def request_mirror_policy(self) -> Optional['outputs.URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy']:
@@ -48512,6 +49837,40 @@ class URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelay(d
48512
49837
  return pulumi.get(self, "nanos")
48513
49838
 
48514
49839
 
49840
+ @pulumi.output_type
49841
+ class URLMapPathMatcherRouteRuleRouteActionMaxStreamDuration(dict):
49842
+ def __init__(__self__, *,
49843
+ seconds: str,
49844
+ nanos: Optional[int] = None):
49845
+ """
49846
+ :param str seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
49847
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
49848
+ :param int nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
49849
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
49850
+ """
49851
+ pulumi.set(__self__, "seconds", seconds)
49852
+ if nanos is not None:
49853
+ pulumi.set(__self__, "nanos", nanos)
49854
+
49855
+ @property
49856
+ @pulumi.getter
49857
+ def seconds(self) -> str:
49858
+ """
49859
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
49860
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
49861
+ """
49862
+ return pulumi.get(self, "seconds")
49863
+
49864
+ @property
49865
+ @pulumi.getter
49866
+ def nanos(self) -> Optional[int]:
49867
+ """
49868
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
49869
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
49870
+ """
49871
+ return pulumi.get(self, "nanos")
49872
+
49873
+
48515
49874
  @pulumi.output_type
48516
49875
  class URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicy(dict):
48517
49876
  @staticmethod
@@ -49616,6 +50975,7 @@ class GetBackendServiceBackendResult(dict):
49616
50975
  def __init__(__self__, *,
49617
50976
  balancing_mode: str,
49618
50977
  capacity_scaler: float,
50978
+ custom_metrics: Sequence['outputs.GetBackendServiceBackendCustomMetricResult'],
49619
50979
  description: str,
49620
50980
  group: str,
49621
50981
  max_connections: int,
@@ -49629,11 +50989,11 @@ class GetBackendServiceBackendResult(dict):
49629
50989
  :param str balancing_mode: Specifies the balancing mode for this backend.
49630
50990
 
49631
50991
  For global HTTP(S) or TCP/SSL load balancing, the default is
49632
- UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))
49633
- and CONNECTION (for TCP/SSL).
50992
+ UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),
50993
+ CUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).
49634
50994
 
49635
50995
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
49636
- for an explanation of load balancing modes. Default value: "UTILIZATION" Possible values: ["UTILIZATION", "RATE", "CONNECTION"]
50996
+ for an explanation of load balancing modes. Default value: "UTILIZATION" Possible values: ["UTILIZATION", "RATE", "CONNECTION", "CUSTOM_METRICS"]
49637
50997
  :param float capacity_scaler: A multiplier applied to the group's maximum servicing capacity
49638
50998
  (based on UTILIZATION, RATE or CONNECTION).
49639
50999
 
@@ -49641,6 +51001,7 @@ class GetBackendServiceBackendResult(dict):
49641
51001
  of its configured capacity (depending on balancingMode). A
49642
51002
  setting of 0 means the group is completely drained, offering
49643
51003
  0% of its available Capacity. Valid range is [0.0,1.0].
51004
+ :param Sequence['GetBackendServiceBackendCustomMetricArgs'] custom_metrics: The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
49644
51005
  :param str description: Textual description for the Backend Service.
49645
51006
  :param str group: The fully-qualified URL of an Instance Group or Network Endpoint
49646
51007
  Group resource. In case of instance group this defines the list
@@ -49698,6 +51059,7 @@ class GetBackendServiceBackendResult(dict):
49698
51059
  """
49699
51060
  pulumi.set(__self__, "balancing_mode", balancing_mode)
49700
51061
  pulumi.set(__self__, "capacity_scaler", capacity_scaler)
51062
+ pulumi.set(__self__, "custom_metrics", custom_metrics)
49701
51063
  pulumi.set(__self__, "description", description)
49702
51064
  pulumi.set(__self__, "group", group)
49703
51065
  pulumi.set(__self__, "max_connections", max_connections)
@@ -49715,11 +51077,11 @@ class GetBackendServiceBackendResult(dict):
49715
51077
  Specifies the balancing mode for this backend.
49716
51078
 
49717
51079
  For global HTTP(S) or TCP/SSL load balancing, the default is
49718
- UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))
49719
- and CONNECTION (for TCP/SSL).
51080
+ UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),
51081
+ CUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).
49720
51082
 
49721
51083
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
49722
- for an explanation of load balancing modes. Default value: "UTILIZATION" Possible values: ["UTILIZATION", "RATE", "CONNECTION"]
51084
+ for an explanation of load balancing modes. Default value: "UTILIZATION" Possible values: ["UTILIZATION", "RATE", "CONNECTION", "CUSTOM_METRICS"]
49723
51085
  """
49724
51086
  return pulumi.get(self, "balancing_mode")
49725
51087
 
@@ -49737,6 +51099,14 @@ class GetBackendServiceBackendResult(dict):
49737
51099
  """
49738
51100
  return pulumi.get(self, "capacity_scaler")
49739
51101
 
51102
+ @property
51103
+ @pulumi.getter(name="customMetrics")
51104
+ def custom_metrics(self) -> Sequence['outputs.GetBackendServiceBackendCustomMetricResult']:
51105
+ """
51106
+ The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
51107
+ """
51108
+ return pulumi.get(self, "custom_metrics")
51109
+
49740
51110
  @property
49741
51111
  @pulumi.getter
49742
51112
  def description(self) -> str:
@@ -49855,6 +51225,54 @@ class GetBackendServiceBackendResult(dict):
49855
51225
  return pulumi.get(self, "max_utilization")
49856
51226
 
49857
51227
 
51228
+ @pulumi.output_type
51229
+ class GetBackendServiceBackendCustomMetricResult(dict):
51230
+ def __init__(__self__, *,
51231
+ dry_run: bool,
51232
+ max_utilization: float,
51233
+ name: str):
51234
+ """
51235
+ :param bool dry_run: If true, the metric data is collected and reported to Cloud
51236
+ Monitoring, but is not used for load balancing.
51237
+ :param float max_utilization: Optional parameter to define a target utilization for the Custom Metrics
51238
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
51239
+ :param str name: The name of the Backend Service.
51240
+
51241
+ - - -
51242
+ """
51243
+ pulumi.set(__self__, "dry_run", dry_run)
51244
+ pulumi.set(__self__, "max_utilization", max_utilization)
51245
+ pulumi.set(__self__, "name", name)
51246
+
51247
+ @property
51248
+ @pulumi.getter(name="dryRun")
51249
+ def dry_run(self) -> bool:
51250
+ """
51251
+ If true, the metric data is collected and reported to Cloud
51252
+ Monitoring, but is not used for load balancing.
51253
+ """
51254
+ return pulumi.get(self, "dry_run")
51255
+
51256
+ @property
51257
+ @pulumi.getter(name="maxUtilization")
51258
+ def max_utilization(self) -> float:
51259
+ """
51260
+ Optional parameter to define a target utilization for the Custom Metrics
51261
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
51262
+ """
51263
+ return pulumi.get(self, "max_utilization")
51264
+
51265
+ @property
51266
+ @pulumi.getter
51267
+ def name(self) -> str:
51268
+ """
51269
+ The name of the Backend Service.
51270
+
51271
+ - - -
51272
+ """
51273
+ return pulumi.get(self, "name")
51274
+
51275
+
49858
51276
  @pulumi.output_type
49859
51277
  class GetBackendServiceCdnPolicyResult(dict):
49860
51278
  def __init__(__self__, *,
@@ -50430,6 +51848,39 @@ class GetBackendServiceConsistentHashHttpCookyTtlResult(dict):
50430
51848
  return pulumi.get(self, "seconds")
50431
51849
 
50432
51850
 
51851
+ @pulumi.output_type
51852
+ class GetBackendServiceCustomMetricResult(dict):
51853
+ def __init__(__self__, *,
51854
+ dry_run: bool,
51855
+ name: str):
51856
+ """
51857
+ :param bool dry_run: If true, the metric data is not used for load balancing.
51858
+ :param str name: The name of the Backend Service.
51859
+
51860
+ - - -
51861
+ """
51862
+ pulumi.set(__self__, "dry_run", dry_run)
51863
+ pulumi.set(__self__, "name", name)
51864
+
51865
+ @property
51866
+ @pulumi.getter(name="dryRun")
51867
+ def dry_run(self) -> bool:
51868
+ """
51869
+ If true, the metric data is not used for load balancing.
51870
+ """
51871
+ return pulumi.get(self, "dry_run")
51872
+
51873
+ @property
51874
+ @pulumi.getter
51875
+ def name(self) -> str:
51876
+ """
51877
+ The name of the Backend Service.
51878
+
51879
+ - - -
51880
+ """
51881
+ return pulumi.get(self, "name")
51882
+
51883
+
50433
51884
  @pulumi.output_type
50434
51885
  class GetBackendServiceIapResult(dict):
50435
51886
  def __init__(__self__, *,
@@ -51158,6 +52609,28 @@ class GetDiskGuestOsFeatureResult(dict):
51158
52609
  return pulumi.get(self, "type")
51159
52610
 
51160
52611
 
52612
+ @pulumi.output_type
52613
+ class GetDiskParamResult(dict):
52614
+ def __init__(__self__, *,
52615
+ resource_manager_tags: Mapping[str, str]):
52616
+ """
52617
+ :param Mapping[str, str] resource_manager_tags: Resource manager tags to be bound to the disk. Tag keys and values have the
52618
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
52619
+ and values are in the format tagValues/456.
52620
+ """
52621
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
52622
+
52623
+ @property
52624
+ @pulumi.getter(name="resourceManagerTags")
52625
+ def resource_manager_tags(self) -> Mapping[str, str]:
52626
+ """
52627
+ Resource manager tags to be bound to the disk. Tag keys and values have the
52628
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
52629
+ and values are in the format tagValues/456.
52630
+ """
52631
+ return pulumi.get(self, "resource_manager_tags")
52632
+
52633
+
51161
52634
  @pulumi.output_type
51162
52635
  class GetDiskSourceImageEncryptionKeyResult(dict):
51163
52636
  def __init__(__self__, *,
@@ -54162,7 +55635,7 @@ class GetInstanceNetworkInterfaceResult(dict):
54162
55635
  :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
55636
  :param str name: The name of the instance. One of `name` or `self_link` must be provided.
54164
55637
  :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.
55638
+ :param str network_attachment: The URL of the network attachment to this interface.
54166
55639
  :param str network_ip: The internal ip address of the instance, either manually or dynamically assigned.
54167
55640
  :param str nic_type: The type of vNIC to be used on this interface. Possible values:GVNIC, VIRTIO_NET, IDPF, MRDMA, and IRDMA
54168
55641
  :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 +55730,7 @@ class GetInstanceNetworkInterfaceResult(dict):
54257
55730
  @pulumi.getter(name="networkAttachment")
54258
55731
  def network_attachment(self) -> str:
54259
55732
  """
54260
- Beta The URL of the network attachment to this interface.
55733
+ The URL of the network attachment to this interface.
54261
55734
  """
54262
55735
  return pulumi.get(self, "network_attachment")
54263
55736
 
@@ -54585,7 +56058,8 @@ class GetInstanceSchedulingResult(dict):
54585
56058
  on_host_maintenance: str,
54586
56059
  on_instance_stop_actions: Sequence['outputs.GetInstanceSchedulingOnInstanceStopActionResult'],
54587
56060
  preemptible: bool,
54588
- provisioning_model: str):
56061
+ provisioning_model: str,
56062
+ termination_time: str):
54589
56063
  """
54590
56064
  :param bool automatic_restart: Specifies if the instance should be
54591
56065
  restarted if it was terminated by Compute Engine (not a user).
@@ -54606,6 +56080,9 @@ class GetInstanceSchedulingResult(dict):
54606
56080
  :param Sequence['GetInstanceSchedulingOnInstanceStopActionArgs'] on_instance_stop_actions: Defines the behaviour for instances with the instance_termination_action.
54607
56081
  :param bool preemptible: Whether the instance is preemptible.
54608
56082
  :param str provisioning_model: Describe the type of preemptible VM.
56083
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated,
56084
+ in RFC3339 text format. If specified, the instance termination action
56085
+ will be performed at the termination time.
54609
56086
  """
54610
56087
  pulumi.set(__self__, "automatic_restart", automatic_restart)
54611
56088
  pulumi.set(__self__, "availability_domain", availability_domain)
@@ -54621,6 +56098,7 @@ class GetInstanceSchedulingResult(dict):
54621
56098
  pulumi.set(__self__, "on_instance_stop_actions", on_instance_stop_actions)
54622
56099
  pulumi.set(__self__, "preemptible", preemptible)
54623
56100
  pulumi.set(__self__, "provisioning_model", provisioning_model)
56101
+ pulumi.set(__self__, "termination_time", termination_time)
54624
56102
 
54625
56103
  @property
54626
56104
  @pulumi.getter(name="automaticRestart")
@@ -54737,6 +56215,16 @@ class GetInstanceSchedulingResult(dict):
54737
56215
  """
54738
56216
  return pulumi.get(self, "provisioning_model")
54739
56217
 
56218
+ @property
56219
+ @pulumi.getter(name="terminationTime")
56220
+ def termination_time(self) -> str:
56221
+ """
56222
+ Specifies the timestamp, when the instance will be terminated,
56223
+ in RFC3339 text format. If specified, the instance termination action
56224
+ will be performed at the termination time.
56225
+ """
56226
+ return pulumi.get(self, "termination_time")
56227
+
54740
56228
 
54741
56229
  @pulumi.output_type
54742
56230
  class GetInstanceSchedulingGracefulShutdownResult(dict):
@@ -55996,7 +57484,8 @@ class GetInstanceTemplateSchedulingResult(dict):
55996
57484
  on_host_maintenance: str,
55997
57485
  on_instance_stop_actions: Sequence['outputs.GetInstanceTemplateSchedulingOnInstanceStopActionResult'],
55998
57486
  preemptible: bool,
55999
- provisioning_model: str):
57487
+ provisioning_model: str,
57488
+ termination_time: str):
56000
57489
  """
56001
57490
  :param bool automatic_restart: Specifies whether the instance should be
56002
57491
  automatically restarted if it is terminated by Compute Engine (not
@@ -56024,6 +57513,9 @@ class GetInstanceTemplateSchedulingResult(dict):
56024
57513
  false. Read more on this
56025
57514
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
56026
57515
  :param str provisioning_model: Describe the type of preemptible VM.
57516
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated,
57517
+ in RFC3339 text format. If specified, the instance termination action
57518
+ will be performed at the termination time.
56027
57519
  """
56028
57520
  pulumi.set(__self__, "automatic_restart", automatic_restart)
56029
57521
  pulumi.set(__self__, "availability_domain", availability_domain)
@@ -56039,6 +57531,7 @@ class GetInstanceTemplateSchedulingResult(dict):
56039
57531
  pulumi.set(__self__, "on_instance_stop_actions", on_instance_stop_actions)
56040
57532
  pulumi.set(__self__, "preemptible", preemptible)
56041
57533
  pulumi.set(__self__, "provisioning_model", provisioning_model)
57534
+ pulumi.set(__self__, "termination_time", termination_time)
56042
57535
 
56043
57536
  @property
56044
57537
  @pulumi.getter(name="automaticRestart")
@@ -56164,6 +57657,16 @@ class GetInstanceTemplateSchedulingResult(dict):
56164
57657
  """
56165
57658
  return pulumi.get(self, "provisioning_model")
56166
57659
 
57660
+ @property
57661
+ @pulumi.getter(name="terminationTime")
57662
+ def termination_time(self) -> str:
57663
+ """
57664
+ Specifies the timestamp, when the instance will be terminated,
57665
+ in RFC3339 text format. If specified, the instance termination action
57666
+ will be performed at the termination time.
57667
+ """
57668
+ return pulumi.get(self, "termination_time")
57669
+
56167
57670
 
56168
57671
  @pulumi.output_type
56169
57672
  class GetInstanceTemplateSchedulingGracefulShutdownResult(dict):
@@ -56678,16 +58181,21 @@ class GetRegionDiskDiskEncryptionKeyResult(dict):
56678
58181
  def __init__(__self__, *,
56679
58182
  kms_key_name: str,
56680
58183
  raw_key: str,
58184
+ rsa_encrypted_key: str,
56681
58185
  sha256: str):
56682
58186
  """
56683
58187
  :param str kms_key_name: The name of the encryption key that is stored in Google Cloud KMS.
56684
58188
  :param str raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
56685
58189
  RFC 4648 base64 to either encrypt or decrypt this resource.
58190
+ :param str rsa_encrypted_key: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
58191
+ customer-supplied encryption key to either encrypt or decrypt
58192
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
56686
58193
  :param str sha256: The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
56687
58194
  encryption key that protects this resource.
56688
58195
  """
56689
58196
  pulumi.set(__self__, "kms_key_name", kms_key_name)
56690
58197
  pulumi.set(__self__, "raw_key", raw_key)
58198
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
56691
58199
  pulumi.set(__self__, "sha256", sha256)
56692
58200
 
56693
58201
  @property
@@ -56707,6 +58215,16 @@ class GetRegionDiskDiskEncryptionKeyResult(dict):
56707
58215
  """
56708
58216
  return pulumi.get(self, "raw_key")
56709
58217
 
58218
+ @property
58219
+ @pulumi.getter(name="rsaEncryptedKey")
58220
+ def rsa_encrypted_key(self) -> str:
58221
+ """
58222
+ Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
58223
+ customer-supplied encryption key to either encrypt or decrypt
58224
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
58225
+ """
58226
+ return pulumi.get(self, "rsa_encrypted_key")
58227
+
56710
58228
  @property
56711
58229
  @pulumi.getter
56712
58230
  def sha256(self) -> str:
@@ -58421,7 +59939,8 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
58421
59939
  on_host_maintenance: str,
58422
59940
  on_instance_stop_actions: Sequence['outputs.GetRegionInstanceTemplateSchedulingOnInstanceStopActionResult'],
58423
59941
  preemptible: bool,
58424
- provisioning_model: str):
59942
+ provisioning_model: str,
59943
+ termination_time: str):
58425
59944
  """
58426
59945
  :param bool automatic_restart: Specifies whether the instance should be
58427
59946
  automatically restarted if it is terminated by Compute Engine (not
@@ -58449,6 +59968,9 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
58449
59968
  false. Read more on this
58450
59969
  [here](https://cloud.google.com/compute/docs/instances/preemptible).
58451
59970
  :param str provisioning_model: Describe the type of preemptible VM.
59971
+ :param str termination_time: Specifies the timestamp, when the instance will be terminated,
59972
+ in RFC3339 text format. If specified, the instance termination action
59973
+ will be performed at the termination time.
58452
59974
  """
58453
59975
  pulumi.set(__self__, "automatic_restart", automatic_restart)
58454
59976
  pulumi.set(__self__, "availability_domain", availability_domain)
@@ -58464,6 +59986,7 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
58464
59986
  pulumi.set(__self__, "on_instance_stop_actions", on_instance_stop_actions)
58465
59987
  pulumi.set(__self__, "preemptible", preemptible)
58466
59988
  pulumi.set(__self__, "provisioning_model", provisioning_model)
59989
+ pulumi.set(__self__, "termination_time", termination_time)
58467
59990
 
58468
59991
  @property
58469
59992
  @pulumi.getter(name="automaticRestart")
@@ -58589,6 +60112,16 @@ class GetRegionInstanceTemplateSchedulingResult(dict):
58589
60112
  """
58590
60113
  return pulumi.get(self, "provisioning_model")
58591
60114
 
60115
+ @property
60116
+ @pulumi.getter(name="terminationTime")
60117
+ def termination_time(self) -> str:
60118
+ """
60119
+ Specifies the timestamp, when the instance will be terminated,
60120
+ in RFC3339 text format. If specified, the instance termination action
60121
+ will be performed at the termination time.
60122
+ """
60123
+ return pulumi.get(self, "termination_time")
60124
+
58592
60125
 
58593
60126
  @pulumi.output_type
58594
60127
  class GetRegionInstanceTemplateSchedulingGracefulShutdownResult(dict):
@@ -60196,11 +61729,14 @@ class GetRouterNatSubnetworkResult(dict):
60196
61729
  @pulumi.output_type
60197
61730
  class GetRouterStatusBestRouteResult(dict):
60198
61731
  def __init__(__self__, *,
61732
+ as_paths: Sequence['outputs.GetRouterStatusBestRouteAsPathResult'],
61733
+ creation_timestamp: str,
60199
61734
  description: str,
60200
61735
  dest_range: str,
60201
61736
  name: str,
60202
61737
  network: str,
60203
61738
  next_hop_gateway: str,
61739
+ next_hop_hub: str,
60204
61740
  next_hop_ilb: str,
60205
61741
  next_hop_instance: str,
60206
61742
  next_hop_instance_zone: str,
@@ -60209,12 +61745,17 @@ class GetRouterStatusBestRouteResult(dict):
60209
61745
  next_hop_med: str,
60210
61746
  next_hop_network: str,
60211
61747
  next_hop_origin: str,
61748
+ next_hop_peering: str,
60212
61749
  next_hop_vpn_tunnel: str,
60213
61750
  priority: int,
60214
61751
  project: str,
61752
+ route_status: str,
61753
+ route_type: str,
60215
61754
  self_link: str,
60216
- tags: Sequence[str]):
61755
+ tags: Sequence[str],
61756
+ warnings: Sequence['outputs.GetRouterStatusBestRouteWarningResult']):
60217
61757
  """
61758
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
60218
61759
  :param str description: An optional description of this resource. Provide this property
60219
61760
  when you create the resource.
60220
61761
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -60229,6 +61770,7 @@ class GetRouterStatusBestRouteResult(dict):
60229
61770
  * 'projects/project/global/gateways/default-internet-gateway'
60230
61771
  * 'global/gateways/default-internet-gateway'
60231
61772
  * The string 'default-internet-gateway'.
61773
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
60232
61774
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
60233
61775
  loadBalancingScheme=INTERNAL that should handle matching
60234
61776
  packets.
@@ -60257,6 +61799,7 @@ class GetRouterStatusBestRouteResult(dict):
60257
61799
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
60258
61800
  :param str next_hop_network: URL to a Network that should handle matching packets.
60259
61801
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
61802
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
60260
61803
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
60261
61804
  :param int priority: The priority of this route. Priority is used to break ties in cases
60262
61805
  where there is more than one matching route of equal prefix length.
@@ -60267,13 +61810,25 @@ class GetRouterStatusBestRouteResult(dict):
60267
61810
  Default value is 1000. Valid range is 0 through 65535.
60268
61811
  :param str project: The ID of the project in which the resource
60269
61812
  belongs. If it is not provided, the provider project is used.
61813
+ :param str route_status: The status of the route, which can be one of the following values:
61814
+ - 'ACTIVE' for an active route
61815
+ - 'INACTIVE' for an inactive route
61816
+ :param str route_type: The type of this route, which can be one of the following values:
61817
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
61818
+ - 'SUBNET' for a route from a subnet of the VPC
61819
+ - 'BGP' for a route learned from a BGP peer of this router
61820
+ - 'STATIC' for a static route
60270
61821
  :param Sequence[str] tags: A list of instance tags to which this route applies.
61822
+ :param Sequence['GetRouterStatusBestRouteWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
60271
61823
  """
61824
+ pulumi.set(__self__, "as_paths", as_paths)
61825
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
60272
61826
  pulumi.set(__self__, "description", description)
60273
61827
  pulumi.set(__self__, "dest_range", dest_range)
60274
61828
  pulumi.set(__self__, "name", name)
60275
61829
  pulumi.set(__self__, "network", network)
60276
61830
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
61831
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
60277
61832
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
60278
61833
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
60279
61834
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -60282,11 +61837,28 @@ class GetRouterStatusBestRouteResult(dict):
60282
61837
  pulumi.set(__self__, "next_hop_med", next_hop_med)
60283
61838
  pulumi.set(__self__, "next_hop_network", next_hop_network)
60284
61839
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
61840
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
60285
61841
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
60286
61842
  pulumi.set(__self__, "priority", priority)
60287
61843
  pulumi.set(__self__, "project", project)
61844
+ pulumi.set(__self__, "route_status", route_status)
61845
+ pulumi.set(__self__, "route_type", route_type)
60288
61846
  pulumi.set(__self__, "self_link", self_link)
60289
61847
  pulumi.set(__self__, "tags", tags)
61848
+ pulumi.set(__self__, "warnings", warnings)
61849
+
61850
+ @property
61851
+ @pulumi.getter(name="asPaths")
61852
+ def as_paths(self) -> Sequence['outputs.GetRouterStatusBestRouteAsPathResult']:
61853
+ return pulumi.get(self, "as_paths")
61854
+
61855
+ @property
61856
+ @pulumi.getter(name="creationTimestamp")
61857
+ def creation_timestamp(self) -> str:
61858
+ """
61859
+ Creation timestamp in RFC3339 text format.
61860
+ """
61861
+ return pulumi.get(self, "creation_timestamp")
60290
61862
 
60291
61863
  @property
60292
61864
  @pulumi.getter
@@ -60337,6 +61909,14 @@ class GetRouterStatusBestRouteResult(dict):
60337
61909
  """
60338
61910
  return pulumi.get(self, "next_hop_gateway")
60339
61911
 
61912
+ @property
61913
+ @pulumi.getter(name="nextHopHub")
61914
+ def next_hop_hub(self) -> str:
61915
+ """
61916
+ The hub network that should handle matching packets, which should conform to RFC1035.
61917
+ """
61918
+ return pulumi.get(self, "next_hop_hub")
61919
+
60340
61920
  @property
60341
61921
  @pulumi.getter(name="nextHopIlb")
60342
61922
  def next_hop_ilb(self) -> str:
@@ -60421,6 +62001,14 @@ class GetRouterStatusBestRouteResult(dict):
60421
62001
  """
60422
62002
  return pulumi.get(self, "next_hop_origin")
60423
62003
 
62004
+ @property
62005
+ @pulumi.getter(name="nextHopPeering")
62006
+ def next_hop_peering(self) -> str:
62007
+ """
62008
+ The network peering name that should handle matching packets, which should conform to RFC1035.
62009
+ """
62010
+ return pulumi.get(self, "next_hop_peering")
62011
+
60424
62012
  @property
60425
62013
  @pulumi.getter(name="nextHopVpnTunnel")
60426
62014
  def next_hop_vpn_tunnel(self) -> str:
@@ -60452,6 +62040,28 @@ class GetRouterStatusBestRouteResult(dict):
60452
62040
  """
60453
62041
  return pulumi.get(self, "project")
60454
62042
 
62043
+ @property
62044
+ @pulumi.getter(name="routeStatus")
62045
+ def route_status(self) -> str:
62046
+ """
62047
+ The status of the route, which can be one of the following values:
62048
+ - 'ACTIVE' for an active route
62049
+ - 'INACTIVE' for an inactive route
62050
+ """
62051
+ return pulumi.get(self, "route_status")
62052
+
62053
+ @property
62054
+ @pulumi.getter(name="routeType")
62055
+ def route_type(self) -> str:
62056
+ """
62057
+ The type of this route, which can be one of the following values:
62058
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
62059
+ - 'SUBNET' for a route from a subnet of the VPC
62060
+ - 'BGP' for a route learned from a BGP peer of this router
62061
+ - 'STATIC' for a static route
62062
+ """
62063
+ return pulumi.get(self, "route_type")
62064
+
60455
62065
  @property
60456
62066
  @pulumi.getter(name="selfLink")
60457
62067
  def self_link(self) -> str:
@@ -60465,15 +62075,136 @@ class GetRouterStatusBestRouteResult(dict):
60465
62075
  """
60466
62076
  return pulumi.get(self, "tags")
60467
62077
 
62078
+ @property
62079
+ @pulumi.getter
62080
+ def warnings(self) -> Sequence['outputs.GetRouterStatusBestRouteWarningResult']:
62081
+ """
62082
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
62083
+ """
62084
+ return pulumi.get(self, "warnings")
62085
+
62086
+
62087
+ @pulumi.output_type
62088
+ class GetRouterStatusBestRouteAsPathResult(dict):
62089
+ def __init__(__self__, *,
62090
+ as_lists: Sequence[int],
62091
+ path_segment_type: str):
62092
+ """
62093
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
62094
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
62095
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
62096
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
62097
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
62098
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
62099
+ """
62100
+ pulumi.set(__self__, "as_lists", as_lists)
62101
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
62102
+
62103
+ @property
62104
+ @pulumi.getter(name="asLists")
62105
+ def as_lists(self) -> Sequence[int]:
62106
+ """
62107
+ The AS numbers of the AS Path.
62108
+ """
62109
+ return pulumi.get(self, "as_lists")
62110
+
62111
+ @property
62112
+ @pulumi.getter(name="pathSegmentType")
62113
+ def path_segment_type(self) -> str:
62114
+ """
62115
+ The type of the AS Path, which can be one of the following values:
62116
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
62117
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
62118
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
62119
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
62120
+ """
62121
+ return pulumi.get(self, "path_segment_type")
62122
+
62123
+
62124
+ @pulumi.output_type
62125
+ class GetRouterStatusBestRouteWarningResult(dict):
62126
+ def __init__(__self__, *,
62127
+ code: str,
62128
+ datas: Sequence['outputs.GetRouterStatusBestRouteWarningDataResult'],
62129
+ message: str):
62130
+ """
62131
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
62132
+ NO_RESULTS_ON_PAGE if there are no results in the response.
62133
+ :param Sequence['GetRouterStatusBestRouteWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
62134
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
62135
+ :param str message: A human-readable description of the warning code.
62136
+ """
62137
+ pulumi.set(__self__, "code", code)
62138
+ pulumi.set(__self__, "datas", datas)
62139
+ pulumi.set(__self__, "message", message)
62140
+
62141
+ @property
62142
+ @pulumi.getter
62143
+ def code(self) -> str:
62144
+ """
62145
+ A warning code, if applicable. For example, Compute Engine returns
62146
+ NO_RESULTS_ON_PAGE if there are no results in the response.
62147
+ """
62148
+ return pulumi.get(self, "code")
62149
+
62150
+ @property
62151
+ @pulumi.getter
62152
+ def datas(self) -> Sequence['outputs.GetRouterStatusBestRouteWarningDataResult']:
62153
+ """
62154
+ Metadata about this warning in key: value format. For example:
62155
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
62156
+ """
62157
+ return pulumi.get(self, "datas")
62158
+
62159
+ @property
62160
+ @pulumi.getter
62161
+ def message(self) -> str:
62162
+ """
62163
+ A human-readable description of the warning code.
62164
+ """
62165
+ return pulumi.get(self, "message")
62166
+
62167
+
62168
+ @pulumi.output_type
62169
+ class GetRouterStatusBestRouteWarningDataResult(dict):
62170
+ def __init__(__self__, *,
62171
+ key: str,
62172
+ value: str):
62173
+ """
62174
+ :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).
62175
+ :param str value: A warning data value corresponding to the key.
62176
+ """
62177
+ pulumi.set(__self__, "key", key)
62178
+ pulumi.set(__self__, "value", value)
62179
+
62180
+ @property
62181
+ @pulumi.getter
62182
+ def key(self) -> str:
62183
+ """
62184
+ 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).
62185
+ """
62186
+ return pulumi.get(self, "key")
62187
+
62188
+ @property
62189
+ @pulumi.getter
62190
+ def value(self) -> str:
62191
+ """
62192
+ A warning data value corresponding to the key.
62193
+ """
62194
+ return pulumi.get(self, "value")
62195
+
60468
62196
 
60469
62197
  @pulumi.output_type
60470
62198
  class GetRouterStatusBestRoutesForRouterResult(dict):
60471
62199
  def __init__(__self__, *,
62200
+ as_paths: Sequence['outputs.GetRouterStatusBestRoutesForRouterAsPathResult'],
62201
+ creation_timestamp: str,
60472
62202
  description: str,
60473
62203
  dest_range: str,
60474
62204
  name: str,
60475
62205
  network: str,
60476
62206
  next_hop_gateway: str,
62207
+ next_hop_hub: str,
60477
62208
  next_hop_ilb: str,
60478
62209
  next_hop_instance: str,
60479
62210
  next_hop_instance_zone: str,
@@ -60482,12 +62213,17 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60482
62213
  next_hop_med: str,
60483
62214
  next_hop_network: str,
60484
62215
  next_hop_origin: str,
62216
+ next_hop_peering: str,
60485
62217
  next_hop_vpn_tunnel: str,
60486
62218
  priority: int,
60487
62219
  project: str,
62220
+ route_status: str,
62221
+ route_type: str,
60488
62222
  self_link: str,
60489
- tags: Sequence[str]):
62223
+ tags: Sequence[str],
62224
+ warnings: Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningResult']):
60490
62225
  """
62226
+ :param str creation_timestamp: Creation timestamp in RFC3339 text format.
60491
62227
  :param str description: An optional description of this resource. Provide this property
60492
62228
  when you create the resource.
60493
62229
  :param str dest_range: The destination range of outgoing packets that this route applies to.
@@ -60502,6 +62238,7 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60502
62238
  * 'projects/project/global/gateways/default-internet-gateway'
60503
62239
  * 'global/gateways/default-internet-gateway'
60504
62240
  * The string 'default-internet-gateway'.
62241
+ :param str next_hop_hub: The hub network that should handle matching packets, which should conform to RFC1035.
60505
62242
  :param str next_hop_ilb: The IP address or URL to a forwarding rule of type
60506
62243
  loadBalancingScheme=INTERNAL that should handle matching
60507
62244
  packets.
@@ -60530,6 +62267,7 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60530
62267
  :param str next_hop_med: Multi-Exit Discriminator, a BGP route metric that indicates the desirability of a particular route in a network.
60531
62268
  :param str next_hop_network: URL to a Network that should handle matching packets.
60532
62269
  :param str next_hop_origin: Indicates the origin of the route. Can be IGP (Interior Gateway Protocol), EGP (Exterior Gateway Protocol), or INCOMPLETE.
62270
+ :param str next_hop_peering: The network peering name that should handle matching packets, which should conform to RFC1035.
60533
62271
  :param str next_hop_vpn_tunnel: URL to a VpnTunnel that should handle matching packets.
60534
62272
  :param int priority: The priority of this route. Priority is used to break ties in cases
60535
62273
  where there is more than one matching route of equal prefix length.
@@ -60540,13 +62278,25 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60540
62278
  Default value is 1000. Valid range is 0 through 65535.
60541
62279
  :param str project: The ID of the project in which the resource
60542
62280
  belongs. If it is not provided, the provider project is used.
62281
+ :param str route_status: The status of the route, which can be one of the following values:
62282
+ - 'ACTIVE' for an active route
62283
+ - 'INACTIVE' for an inactive route
62284
+ :param str route_type: The type of this route, which can be one of the following values:
62285
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
62286
+ - 'SUBNET' for a route from a subnet of the VPC
62287
+ - 'BGP' for a route learned from a BGP peer of this router
62288
+ - 'STATIC' for a static route
60543
62289
  :param Sequence[str] tags: A list of instance tags to which this route applies.
62290
+ :param Sequence['GetRouterStatusBestRoutesForRouterWarningArgs'] warnings: If potential misconfigurations are detected for this route, this field will be populated with warning messages.
60544
62291
  """
62292
+ pulumi.set(__self__, "as_paths", as_paths)
62293
+ pulumi.set(__self__, "creation_timestamp", creation_timestamp)
60545
62294
  pulumi.set(__self__, "description", description)
60546
62295
  pulumi.set(__self__, "dest_range", dest_range)
60547
62296
  pulumi.set(__self__, "name", name)
60548
62297
  pulumi.set(__self__, "network", network)
60549
62298
  pulumi.set(__self__, "next_hop_gateway", next_hop_gateway)
62299
+ pulumi.set(__self__, "next_hop_hub", next_hop_hub)
60550
62300
  pulumi.set(__self__, "next_hop_ilb", next_hop_ilb)
60551
62301
  pulumi.set(__self__, "next_hop_instance", next_hop_instance)
60552
62302
  pulumi.set(__self__, "next_hop_instance_zone", next_hop_instance_zone)
@@ -60555,11 +62305,28 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60555
62305
  pulumi.set(__self__, "next_hop_med", next_hop_med)
60556
62306
  pulumi.set(__self__, "next_hop_network", next_hop_network)
60557
62307
  pulumi.set(__self__, "next_hop_origin", next_hop_origin)
62308
+ pulumi.set(__self__, "next_hop_peering", next_hop_peering)
60558
62309
  pulumi.set(__self__, "next_hop_vpn_tunnel", next_hop_vpn_tunnel)
60559
62310
  pulumi.set(__self__, "priority", priority)
60560
62311
  pulumi.set(__self__, "project", project)
62312
+ pulumi.set(__self__, "route_status", route_status)
62313
+ pulumi.set(__self__, "route_type", route_type)
60561
62314
  pulumi.set(__self__, "self_link", self_link)
60562
62315
  pulumi.set(__self__, "tags", tags)
62316
+ pulumi.set(__self__, "warnings", warnings)
62317
+
62318
+ @property
62319
+ @pulumi.getter(name="asPaths")
62320
+ def as_paths(self) -> Sequence['outputs.GetRouterStatusBestRoutesForRouterAsPathResult']:
62321
+ return pulumi.get(self, "as_paths")
62322
+
62323
+ @property
62324
+ @pulumi.getter(name="creationTimestamp")
62325
+ def creation_timestamp(self) -> str:
62326
+ """
62327
+ Creation timestamp in RFC3339 text format.
62328
+ """
62329
+ return pulumi.get(self, "creation_timestamp")
60563
62330
 
60564
62331
  @property
60565
62332
  @pulumi.getter
@@ -60610,6 +62377,14 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60610
62377
  """
60611
62378
  return pulumi.get(self, "next_hop_gateway")
60612
62379
 
62380
+ @property
62381
+ @pulumi.getter(name="nextHopHub")
62382
+ def next_hop_hub(self) -> str:
62383
+ """
62384
+ The hub network that should handle matching packets, which should conform to RFC1035.
62385
+ """
62386
+ return pulumi.get(self, "next_hop_hub")
62387
+
60613
62388
  @property
60614
62389
  @pulumi.getter(name="nextHopIlb")
60615
62390
  def next_hop_ilb(self) -> str:
@@ -60694,6 +62469,14 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60694
62469
  """
60695
62470
  return pulumi.get(self, "next_hop_origin")
60696
62471
 
62472
+ @property
62473
+ @pulumi.getter(name="nextHopPeering")
62474
+ def next_hop_peering(self) -> str:
62475
+ """
62476
+ The network peering name that should handle matching packets, which should conform to RFC1035.
62477
+ """
62478
+ return pulumi.get(self, "next_hop_peering")
62479
+
60697
62480
  @property
60698
62481
  @pulumi.getter(name="nextHopVpnTunnel")
60699
62482
  def next_hop_vpn_tunnel(self) -> str:
@@ -60725,6 +62508,28 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60725
62508
  """
60726
62509
  return pulumi.get(self, "project")
60727
62510
 
62511
+ @property
62512
+ @pulumi.getter(name="routeStatus")
62513
+ def route_status(self) -> str:
62514
+ """
62515
+ The status of the route, which can be one of the following values:
62516
+ - 'ACTIVE' for an active route
62517
+ - 'INACTIVE' for an inactive route
62518
+ """
62519
+ return pulumi.get(self, "route_status")
62520
+
62521
+ @property
62522
+ @pulumi.getter(name="routeType")
62523
+ def route_type(self) -> str:
62524
+ """
62525
+ The type of this route, which can be one of the following values:
62526
+ - 'TRANSIT' for a transit route that this router learned from another Cloud Router and will readvertise to one of its BGP peers
62527
+ - 'SUBNET' for a route from a subnet of the VPC
62528
+ - 'BGP' for a route learned from a BGP peer of this router
62529
+ - 'STATIC' for a static route
62530
+ """
62531
+ return pulumi.get(self, "route_type")
62532
+
60728
62533
  @property
60729
62534
  @pulumi.getter(name="selfLink")
60730
62535
  def self_link(self) -> str:
@@ -60738,6 +62543,124 @@ class GetRouterStatusBestRoutesForRouterResult(dict):
60738
62543
  """
60739
62544
  return pulumi.get(self, "tags")
60740
62545
 
62546
+ @property
62547
+ @pulumi.getter
62548
+ def warnings(self) -> Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningResult']:
62549
+ """
62550
+ If potential misconfigurations are detected for this route, this field will be populated with warning messages.
62551
+ """
62552
+ return pulumi.get(self, "warnings")
62553
+
62554
+
62555
+ @pulumi.output_type
62556
+ class GetRouterStatusBestRoutesForRouterAsPathResult(dict):
62557
+ def __init__(__self__, *,
62558
+ as_lists: Sequence[int],
62559
+ path_segment_type: str):
62560
+ """
62561
+ :param Sequence[int] as_lists: The AS numbers of the AS Path.
62562
+ :param str path_segment_type: The type of the AS Path, which can be one of the following values:
62563
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
62564
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
62565
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
62566
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
62567
+ """
62568
+ pulumi.set(__self__, "as_lists", as_lists)
62569
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
62570
+
62571
+ @property
62572
+ @pulumi.getter(name="asLists")
62573
+ def as_lists(self) -> Sequence[int]:
62574
+ """
62575
+ The AS numbers of the AS Path.
62576
+ """
62577
+ return pulumi.get(self, "as_lists")
62578
+
62579
+ @property
62580
+ @pulumi.getter(name="pathSegmentType")
62581
+ def path_segment_type(self) -> str:
62582
+ """
62583
+ The type of the AS Path, which can be one of the following values:
62584
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
62585
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
62586
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
62587
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
62588
+ """
62589
+ return pulumi.get(self, "path_segment_type")
62590
+
62591
+
62592
+ @pulumi.output_type
62593
+ class GetRouterStatusBestRoutesForRouterWarningResult(dict):
62594
+ def __init__(__self__, *,
62595
+ code: str,
62596
+ datas: Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningDataResult'],
62597
+ message: str):
62598
+ """
62599
+ :param str code: A warning code, if applicable. For example, Compute Engine returns
62600
+ NO_RESULTS_ON_PAGE if there are no results in the response.
62601
+ :param Sequence['GetRouterStatusBestRoutesForRouterWarningDataArgs'] datas: Metadata about this warning in key: value format. For example:
62602
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
62603
+ :param str message: A human-readable description of the warning code.
62604
+ """
62605
+ pulumi.set(__self__, "code", code)
62606
+ pulumi.set(__self__, "datas", datas)
62607
+ pulumi.set(__self__, "message", message)
62608
+
62609
+ @property
62610
+ @pulumi.getter
62611
+ def code(self) -> str:
62612
+ """
62613
+ A warning code, if applicable. For example, Compute Engine returns
62614
+ NO_RESULTS_ON_PAGE if there are no results in the response.
62615
+ """
62616
+ return pulumi.get(self, "code")
62617
+
62618
+ @property
62619
+ @pulumi.getter
62620
+ def datas(self) -> Sequence['outputs.GetRouterStatusBestRoutesForRouterWarningDataResult']:
62621
+ """
62622
+ Metadata about this warning in key: value format. For example:
62623
+ "data": [ { "key": "scope", "value": "zones/us-east1-d" }
62624
+ """
62625
+ return pulumi.get(self, "datas")
62626
+
62627
+ @property
62628
+ @pulumi.getter
62629
+ def message(self) -> str:
62630
+ """
62631
+ A human-readable description of the warning code.
62632
+ """
62633
+ return pulumi.get(self, "message")
62634
+
62635
+
62636
+ @pulumi.output_type
62637
+ class GetRouterStatusBestRoutesForRouterWarningDataResult(dict):
62638
+ def __init__(__self__, *,
62639
+ key: str,
62640
+ value: str):
62641
+ """
62642
+ :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).
62643
+ :param str value: A warning data value corresponding to the key.
62644
+ """
62645
+ pulumi.set(__self__, "key", key)
62646
+ pulumi.set(__self__, "value", value)
62647
+
62648
+ @property
62649
+ @pulumi.getter
62650
+ def key(self) -> str:
62651
+ """
62652
+ 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).
62653
+ """
62654
+ return pulumi.get(self, "key")
62655
+
62656
+ @property
62657
+ @pulumi.getter
62658
+ def value(self) -> str:
62659
+ """
62660
+ A warning data value corresponding to the key.
62661
+ """
62662
+ return pulumi.get(self, "value")
62663
+
60741
62664
 
60742
62665
  @pulumi.output_type
60743
62666
  class GetSecurityPolicyAdaptiveProtectionConfigResult(dict):