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
@@ -47,6 +47,8 @@ __all__ = [
47
47
  'BackendBucketIamMemberConditionArgsDict',
48
48
  'BackendServiceBackendArgs',
49
49
  'BackendServiceBackendArgsDict',
50
+ 'BackendServiceBackendCustomMetricArgs',
51
+ 'BackendServiceBackendCustomMetricArgsDict',
50
52
  'BackendServiceCdnPolicyArgs',
51
53
  'BackendServiceCdnPolicyArgsDict',
52
54
  'BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgs',
@@ -65,6 +67,8 @@ __all__ = [
65
67
  'BackendServiceConsistentHashHttpCookieArgsDict',
66
68
  'BackendServiceConsistentHashHttpCookieTtlArgs',
67
69
  'BackendServiceConsistentHashHttpCookieTtlArgsDict',
70
+ 'BackendServiceCustomMetricArgs',
71
+ 'BackendServiceCustomMetricArgsDict',
68
72
  'BackendServiceIamBindingConditionArgs',
69
73
  'BackendServiceIamBindingConditionArgsDict',
70
74
  'BackendServiceIamMemberConditionArgs',
@@ -105,6 +109,8 @@ __all__ = [
105
109
  'DiskIamBindingConditionArgsDict',
106
110
  'DiskIamMemberConditionArgs',
107
111
  'DiskIamMemberConditionArgsDict',
112
+ 'DiskParamsArgs',
113
+ 'DiskParamsArgsDict',
108
114
  'DiskSourceImageEncryptionKeyArgs',
109
115
  'DiskSourceImageEncryptionKeyArgsDict',
110
116
  'DiskSourceSnapshotEncryptionKeyArgs',
@@ -403,6 +409,10 @@ __all__ = [
403
409
  'InstanceTemplateServiceAccountArgsDict',
404
410
  'InstanceTemplateShieldedInstanceConfigArgs',
405
411
  'InstanceTemplateShieldedInstanceConfigArgsDict',
412
+ 'InstantSnapshotIamBindingConditionArgs',
413
+ 'InstantSnapshotIamBindingConditionArgsDict',
414
+ 'InstantSnapshotIamMemberConditionArgs',
415
+ 'InstantSnapshotIamMemberConditionArgsDict',
406
416
  'InterconnectAttachmentPrivateInterconnectInfoArgs',
407
417
  'InterconnectAttachmentPrivateInterconnectInfoArgsDict',
408
418
  'InterconnectCircuitInfoArgs',
@@ -527,6 +537,8 @@ __all__ = [
527
537
  'RegionAutoscalerAutoscalingPolicyScalingScheduleArgsDict',
528
538
  'RegionBackendServiceBackendArgs',
529
539
  'RegionBackendServiceBackendArgsDict',
540
+ 'RegionBackendServiceBackendCustomMetricArgs',
541
+ 'RegionBackendServiceBackendCustomMetricArgsDict',
530
542
  'RegionBackendServiceCdnPolicyArgs',
531
543
  'RegionBackendServiceCdnPolicyArgsDict',
532
544
  'RegionBackendServiceCdnPolicyCacheKeyPolicyArgs',
@@ -545,6 +557,8 @@ __all__ = [
545
557
  'RegionBackendServiceConsistentHashHttpCookieArgsDict',
546
558
  'RegionBackendServiceConsistentHashHttpCookieTtlArgs',
547
559
  'RegionBackendServiceConsistentHashHttpCookieTtlArgsDict',
560
+ 'RegionBackendServiceCustomMetricArgs',
561
+ 'RegionBackendServiceCustomMetricArgsDict',
548
562
  'RegionBackendServiceFailoverPolicyArgs',
549
563
  'RegionBackendServiceFailoverPolicyArgsDict',
550
564
  'RegionBackendServiceIamBindingConditionArgs',
@@ -1007,6 +1021,12 @@ __all__ = [
1007
1021
  'ResourcePolicySnapshotSchedulePolicyScheduleWeeklyScheduleDayOfWeekArgsDict',
1008
1022
  'ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs',
1009
1023
  'ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgsDict',
1024
+ 'RouteAsPathArgs',
1025
+ 'RouteAsPathArgsDict',
1026
+ 'RouteWarningArgs',
1027
+ 'RouteWarningArgsDict',
1028
+ 'RouteWarningDataArgs',
1029
+ 'RouteWarningDataArgsDict',
1010
1030
  'RouterBgpArgs',
1011
1031
  'RouterBgpArgsDict',
1012
1032
  'RouterBgpAdvertisedIpRangeArgs',
@@ -1133,6 +1153,8 @@ __all__ = [
1133
1153
  'URLMapDefaultRouteActionFaultInjectionPolicyDelayArgsDict',
1134
1154
  'URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs',
1135
1155
  'URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgsDict',
1156
+ 'URLMapDefaultRouteActionMaxStreamDurationArgs',
1157
+ 'URLMapDefaultRouteActionMaxStreamDurationArgsDict',
1136
1158
  'URLMapDefaultRouteActionRequestMirrorPolicyArgs',
1137
1159
  'URLMapDefaultRouteActionRequestMirrorPolicyArgsDict',
1138
1160
  'URLMapDefaultRouteActionRetryPolicyArgs',
@@ -1179,6 +1201,8 @@ __all__ = [
1179
1201
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayArgsDict',
1180
1202
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs',
1181
1203
  'URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgsDict',
1204
+ 'URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs',
1205
+ 'URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgsDict',
1182
1206
  'URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs',
1183
1207
  'URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgsDict',
1184
1208
  'URLMapPathMatcherDefaultRouteActionRetryPolicyArgs',
@@ -1223,6 +1247,8 @@ __all__ = [
1223
1247
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayArgsDict',
1224
1248
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs',
1225
1249
  'URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgsDict',
1250
+ 'URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs',
1251
+ 'URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgsDict',
1226
1252
  'URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs',
1227
1253
  'URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgsDict',
1228
1254
  'URLMapPathMatcherPathRuleRouteActionRetryPolicyArgs',
@@ -1275,6 +1301,8 @@ __all__ = [
1275
1301
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayArgsDict',
1276
1302
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgs',
1277
1303
  'URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayArgsDict',
1304
+ 'URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs',
1305
+ 'URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgsDict',
1278
1306
  'URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs',
1279
1307
  'URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgsDict',
1280
1308
  'URLMapPathMatcherRouteRuleRouteActionRetryPolicyArgs',
@@ -2890,12 +2918,12 @@ if not MYPY:
2890
2918
  """
2891
2919
  Specifies the balancing mode for this backend.
2892
2920
  For global HTTP(S) or TCP/SSL load balancing, the default is
2893
- UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))
2894
- and CONNECTION (for TCP/SSL).
2921
+ UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),
2922
+ CUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).
2895
2923
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
2896
2924
  for an explanation of load balancing modes.
2897
2925
  Default value is `UTILIZATION`.
2898
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
2926
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
2899
2927
  """
2900
2928
  capacity_scaler: NotRequired[pulumi.Input[float]]
2901
2929
  """
@@ -2906,6 +2934,11 @@ if not MYPY:
2906
2934
  setting of 0 means the group is completely drained, offering
2907
2935
  0% of its available Capacity. Valid range is [0.0,1.0].
2908
2936
  """
2937
+ custom_metrics: NotRequired[pulumi.Input[Sequence[pulumi.Input['BackendServiceBackendCustomMetricArgsDict']]]]
2938
+ """
2939
+ The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
2940
+ Structure is documented below.
2941
+ """
2909
2942
  description: NotRequired[pulumi.Input[str]]
2910
2943
  """
2911
2944
  An optional description of this resource.
@@ -2973,6 +3006,7 @@ class BackendServiceBackendArgs:
2973
3006
  group: pulumi.Input[str],
2974
3007
  balancing_mode: Optional[pulumi.Input[str]] = None,
2975
3008
  capacity_scaler: Optional[pulumi.Input[float]] = None,
3009
+ custom_metrics: Optional[pulumi.Input[Sequence[pulumi.Input['BackendServiceBackendCustomMetricArgs']]]] = None,
2976
3010
  description: Optional[pulumi.Input[str]] = None,
2977
3011
  max_connections: Optional[pulumi.Input[int]] = None,
2978
3012
  max_connections_per_endpoint: Optional[pulumi.Input[int]] = None,
@@ -2998,18 +3032,20 @@ class BackendServiceBackendArgs:
2998
3032
  partial URL.
2999
3033
  :param pulumi.Input[str] balancing_mode: Specifies the balancing mode for this backend.
3000
3034
  For global HTTP(S) or TCP/SSL load balancing, the default is
3001
- UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))
3002
- and CONNECTION (for TCP/SSL).
3035
+ UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),
3036
+ CUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).
3003
3037
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
3004
3038
  for an explanation of load balancing modes.
3005
3039
  Default value is `UTILIZATION`.
3006
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
3040
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
3007
3041
  :param pulumi.Input[float] capacity_scaler: A multiplier applied to the group's maximum servicing capacity
3008
3042
  (based on UTILIZATION, RATE or CONNECTION).
3009
3043
  Default value is 1, which means the group will serve up to 100%
3010
3044
  of its configured capacity (depending on balancingMode). A
3011
3045
  setting of 0 means the group is completely drained, offering
3012
3046
  0% of its available Capacity. Valid range is [0.0,1.0].
3047
+ :param pulumi.Input[Sequence[pulumi.Input['BackendServiceBackendCustomMetricArgs']]] custom_metrics: The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
3048
+ Structure is documented below.
3013
3049
  :param pulumi.Input[str] description: An optional description of this resource.
3014
3050
  Provide this property when you create the resource.
3015
3051
  :param pulumi.Input[int] max_connections: The max number of simultaneous connections for the group. Can
@@ -3050,6 +3086,8 @@ class BackendServiceBackendArgs:
3050
3086
  pulumi.set(__self__, "balancing_mode", balancing_mode)
3051
3087
  if capacity_scaler is not None:
3052
3088
  pulumi.set(__self__, "capacity_scaler", capacity_scaler)
3089
+ if custom_metrics is not None:
3090
+ pulumi.set(__self__, "custom_metrics", custom_metrics)
3053
3091
  if description is not None:
3054
3092
  pulumi.set(__self__, "description", description)
3055
3093
  if max_connections is not None:
@@ -3098,12 +3136,12 @@ class BackendServiceBackendArgs:
3098
3136
  """
3099
3137
  Specifies the balancing mode for this backend.
3100
3138
  For global HTTP(S) or TCP/SSL load balancing, the default is
3101
- UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S))
3102
- and CONNECTION (for TCP/SSL).
3139
+ UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)),
3140
+ CUSTOM_METRICS (for HTTP(s)) and CONNECTION (for TCP/SSL).
3103
3141
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
3104
3142
  for an explanation of load balancing modes.
3105
3143
  Default value is `UTILIZATION`.
3106
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
3144
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
3107
3145
  """
3108
3146
  return pulumi.get(self, "balancing_mode")
3109
3147
 
@@ -3128,6 +3166,19 @@ class BackendServiceBackendArgs:
3128
3166
  def capacity_scaler(self, value: Optional[pulumi.Input[float]]):
3129
3167
  pulumi.set(self, "capacity_scaler", value)
3130
3168
 
3169
+ @property
3170
+ @pulumi.getter(name="customMetrics")
3171
+ def custom_metrics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['BackendServiceBackendCustomMetricArgs']]]]:
3172
+ """
3173
+ The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
3174
+ Structure is documented below.
3175
+ """
3176
+ return pulumi.get(self, "custom_metrics")
3177
+
3178
+ @custom_metrics.setter
3179
+ def custom_metrics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['BackendServiceBackendCustomMetricArgs']]]]):
3180
+ pulumi.set(self, "custom_metrics", value)
3181
+
3131
3182
  @property
3132
3183
  @pulumi.getter
3133
3184
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -3251,6 +3302,103 @@ class BackendServiceBackendArgs:
3251
3302
  pulumi.set(self, "max_utilization", value)
3252
3303
 
3253
3304
 
3305
+ if not MYPY:
3306
+ class BackendServiceBackendCustomMetricArgsDict(TypedDict):
3307
+ dry_run: pulumi.Input[bool]
3308
+ """
3309
+ If true, the metric data is not used for load balancing.
3310
+ """
3311
+ name: pulumi.Input[str]
3312
+ """
3313
+ Name of a custom utilization signal. The name must be 1-64 characters
3314
+ long and match the regular expression a-z? which
3315
+ means the first character must be a lowercase letter, and all following
3316
+ characters must be a dash, period, underscore, lowercase letter, or
3317
+ digit, except the last character, which cannot be a dash, period, or
3318
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
3319
+ field can only be used for a global or regional backend service with the
3320
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
3321
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
3322
+ """
3323
+ max_utilization: NotRequired[pulumi.Input[float]]
3324
+ """
3325
+ Optional parameter to define a target utilization for the Custom Metrics
3326
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
3327
+ """
3328
+ elif False:
3329
+ BackendServiceBackendCustomMetricArgsDict: TypeAlias = Mapping[str, Any]
3330
+
3331
+ @pulumi.input_type
3332
+ class BackendServiceBackendCustomMetricArgs:
3333
+ def __init__(__self__, *,
3334
+ dry_run: pulumi.Input[bool],
3335
+ name: pulumi.Input[str],
3336
+ max_utilization: Optional[pulumi.Input[float]] = None):
3337
+ """
3338
+ :param pulumi.Input[bool] dry_run: If true, the metric data is not used for load balancing.
3339
+ :param pulumi.Input[str] name: Name of a custom utilization signal. The name must be 1-64 characters
3340
+ long and match the regular expression a-z? which
3341
+ means the first character must be a lowercase letter, and all following
3342
+ characters must be a dash, period, underscore, lowercase letter, or
3343
+ digit, except the last character, which cannot be a dash, period, or
3344
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
3345
+ field can only be used for a global or regional backend service with the
3346
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
3347
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
3348
+ :param pulumi.Input[float] max_utilization: Optional parameter to define a target utilization for the Custom Metrics
3349
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
3350
+ """
3351
+ pulumi.set(__self__, "dry_run", dry_run)
3352
+ pulumi.set(__self__, "name", name)
3353
+ if max_utilization is not None:
3354
+ pulumi.set(__self__, "max_utilization", max_utilization)
3355
+
3356
+ @property
3357
+ @pulumi.getter(name="dryRun")
3358
+ def dry_run(self) -> pulumi.Input[bool]:
3359
+ """
3360
+ If true, the metric data is not used for load balancing.
3361
+ """
3362
+ return pulumi.get(self, "dry_run")
3363
+
3364
+ @dry_run.setter
3365
+ def dry_run(self, value: pulumi.Input[bool]):
3366
+ pulumi.set(self, "dry_run", value)
3367
+
3368
+ @property
3369
+ @pulumi.getter
3370
+ def name(self) -> pulumi.Input[str]:
3371
+ """
3372
+ Name of a custom utilization signal. The name must be 1-64 characters
3373
+ long and match the regular expression a-z? which
3374
+ means the first character must be a lowercase letter, and all following
3375
+ characters must be a dash, period, underscore, lowercase letter, or
3376
+ digit, except the last character, which cannot be a dash, period, or
3377
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
3378
+ field can only be used for a global or regional backend service with the
3379
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
3380
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
3381
+ """
3382
+ return pulumi.get(self, "name")
3383
+
3384
+ @name.setter
3385
+ def name(self, value: pulumi.Input[str]):
3386
+ pulumi.set(self, "name", value)
3387
+
3388
+ @property
3389
+ @pulumi.getter(name="maxUtilization")
3390
+ def max_utilization(self) -> Optional[pulumi.Input[float]]:
3391
+ """
3392
+ Optional parameter to define a target utilization for the Custom Metrics
3393
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
3394
+ """
3395
+ return pulumi.get(self, "max_utilization")
3396
+
3397
+ @max_utilization.setter
3398
+ def max_utilization(self, value: Optional[pulumi.Input[float]]):
3399
+ pulumi.set(self, "max_utilization", value)
3400
+
3401
+
3254
3402
  if not MYPY:
3255
3403
  class BackendServiceCdnPolicyArgsDict(TypedDict):
3256
3404
  bypass_cache_on_request_headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['BackendServiceCdnPolicyBypassCacheOnRequestHeaderArgsDict']]]]
@@ -4253,6 +4401,80 @@ class BackendServiceConsistentHashHttpCookieTtlArgs:
4253
4401
  pulumi.set(self, "nanos", value)
4254
4402
 
4255
4403
 
4404
+ if not MYPY:
4405
+ class BackendServiceCustomMetricArgsDict(TypedDict):
4406
+ dry_run: pulumi.Input[bool]
4407
+ """
4408
+ If true, the metric data is not used for load balancing.
4409
+ """
4410
+ name: pulumi.Input[str]
4411
+ """
4412
+ Name of a custom utilization signal. The name must be 1-64 characters
4413
+ long and match the regular expression a-z? which
4414
+ means the first character must be a lowercase letter, and all following
4415
+ characters must be a dash, period, underscore, lowercase letter, or
4416
+ digit, except the last character, which cannot be a dash, period, or
4417
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
4418
+ field can only be used for a global or regional backend service with the
4419
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
4420
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
4421
+ """
4422
+ elif False:
4423
+ BackendServiceCustomMetricArgsDict: TypeAlias = Mapping[str, Any]
4424
+
4425
+ @pulumi.input_type
4426
+ class BackendServiceCustomMetricArgs:
4427
+ def __init__(__self__, *,
4428
+ dry_run: pulumi.Input[bool],
4429
+ name: pulumi.Input[str]):
4430
+ """
4431
+ :param pulumi.Input[bool] dry_run: If true, the metric data is not used for load balancing.
4432
+ :param pulumi.Input[str] name: Name of a custom utilization signal. The name must be 1-64 characters
4433
+ long and match the regular expression a-z? which
4434
+ means the first character must be a lowercase letter, and all following
4435
+ characters must be a dash, period, underscore, lowercase letter, or
4436
+ digit, except the last character, which cannot be a dash, period, or
4437
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
4438
+ field can only be used for a global or regional backend service with the
4439
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
4440
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
4441
+ """
4442
+ pulumi.set(__self__, "dry_run", dry_run)
4443
+ pulumi.set(__self__, "name", name)
4444
+
4445
+ @property
4446
+ @pulumi.getter(name="dryRun")
4447
+ def dry_run(self) -> pulumi.Input[bool]:
4448
+ """
4449
+ If true, the metric data is not used for load balancing.
4450
+ """
4451
+ return pulumi.get(self, "dry_run")
4452
+
4453
+ @dry_run.setter
4454
+ def dry_run(self, value: pulumi.Input[bool]):
4455
+ pulumi.set(self, "dry_run", value)
4456
+
4457
+ @property
4458
+ @pulumi.getter
4459
+ def name(self) -> pulumi.Input[str]:
4460
+ """
4461
+ Name of a custom utilization signal. The name must be 1-64 characters
4462
+ long and match the regular expression a-z? which
4463
+ means the first character must be a lowercase letter, and all following
4464
+ characters must be a dash, period, underscore, lowercase letter, or
4465
+ digit, except the last character, which cannot be a dash, period, or
4466
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
4467
+ field can only be used for a global or regional backend service with the
4468
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
4469
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
4470
+ """
4471
+ return pulumi.get(self, "name")
4472
+
4473
+ @name.setter
4474
+ def name(self, value: pulumi.Input[str]):
4475
+ pulumi.set(self, "name", value)
4476
+
4477
+
4256
4478
  if not MYPY:
4257
4479
  class BackendServiceIamBindingConditionArgsDict(TypedDict):
4258
4480
  expression: pulumi.Input[str]
@@ -5914,6 +6136,44 @@ class DiskIamMemberConditionArgs:
5914
6136
  pulumi.set(self, "description", value)
5915
6137
 
5916
6138
 
6139
+ if not MYPY:
6140
+ class DiskParamsArgsDict(TypedDict):
6141
+ resource_manager_tags: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
6142
+ """
6143
+ Resource manager tags to be bound to the disk. Tag keys and values have the
6144
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
6145
+ and values are in the format tagValues/456.
6146
+ """
6147
+ elif False:
6148
+ DiskParamsArgsDict: TypeAlias = Mapping[str, Any]
6149
+
6150
+ @pulumi.input_type
6151
+ class DiskParamsArgs:
6152
+ def __init__(__self__, *,
6153
+ resource_manager_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
6154
+ """
6155
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_manager_tags: Resource manager tags to be bound to the disk. Tag keys and values have the
6156
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
6157
+ and values are in the format tagValues/456.
6158
+ """
6159
+ if resource_manager_tags is not None:
6160
+ pulumi.set(__self__, "resource_manager_tags", resource_manager_tags)
6161
+
6162
+ @property
6163
+ @pulumi.getter(name="resourceManagerTags")
6164
+ def resource_manager_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
6165
+ """
6166
+ Resource manager tags to be bound to the disk. Tag keys and values have the
6167
+ same definition as resource manager tags. Keys must be in the format tagKeys/{tag_key_id},
6168
+ and values are in the format tagValues/456.
6169
+ """
6170
+ return pulumi.get(self, "resource_manager_tags")
6171
+
6172
+ @resource_manager_tags.setter
6173
+ def resource_manager_tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
6174
+ pulumi.set(self, "resource_manager_tags", value)
6175
+
6176
+
5917
6177
  if not MYPY:
5918
6178
  class DiskSourceImageEncryptionKeyArgsDict(TypedDict):
5919
6179
  kms_key_self_link: NotRequired[pulumi.Input[str]]
@@ -12642,6 +12902,12 @@ if not MYPY:
12642
12902
  """
12643
12903
  Whether the instance is spot. If this is set as SPOT.
12644
12904
  """
12905
+ termination_time: NotRequired[pulumi.Input[str]]
12906
+ """
12907
+ Specifies the timestamp, when the instance will be terminated,
12908
+ in RFC3339 text format. If specified, the instance termination action
12909
+ will be performed at the termination time.
12910
+ """
12645
12911
  elif False:
12646
12912
  InstanceFromMachineImageSchedulingArgsDict: TypeAlias = Mapping[str, Any]
12647
12913
 
@@ -12661,7 +12927,8 @@ class InstanceFromMachineImageSchedulingArgs:
12661
12927
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
12662
12928
  on_instance_stop_action: Optional[pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs']] = None,
12663
12929
  preemptible: Optional[pulumi.Input[bool]] = None,
12664
- provisioning_model: Optional[pulumi.Input[str]] = None):
12930
+ provisioning_model: Optional[pulumi.Input[str]] = None,
12931
+ termination_time: Optional[pulumi.Input[str]] = None):
12665
12932
  """
12666
12933
  :param pulumi.Input[bool] automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
12667
12934
  :param pulumi.Input[int] availability_domain: Specifies the availability domain, which this instance should be scheduled on.
@@ -12679,6 +12946,9 @@ class InstanceFromMachineImageSchedulingArgs:
12679
12946
  :param pulumi.Input['InstanceFromMachineImageSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
12680
12947
  :param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
12681
12948
  :param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
12949
+ :param pulumi.Input[str] termination_time: Specifies the timestamp, when the instance will be terminated,
12950
+ in RFC3339 text format. If specified, the instance termination action
12951
+ will be performed at the termination time.
12682
12952
  """
12683
12953
  if automatic_restart is not None:
12684
12954
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -12708,6 +12978,8 @@ class InstanceFromMachineImageSchedulingArgs:
12708
12978
  pulumi.set(__self__, "preemptible", preemptible)
12709
12979
  if provisioning_model is not None:
12710
12980
  pulumi.set(__self__, "provisioning_model", provisioning_model)
12981
+ if termination_time is not None:
12982
+ pulumi.set(__self__, "termination_time", termination_time)
12711
12983
 
12712
12984
  @property
12713
12985
  @pulumi.getter(name="automaticRestart")
@@ -12877,6 +13149,20 @@ class InstanceFromMachineImageSchedulingArgs:
12877
13149
  def provisioning_model(self, value: Optional[pulumi.Input[str]]):
12878
13150
  pulumi.set(self, "provisioning_model", value)
12879
13151
 
13152
+ @property
13153
+ @pulumi.getter(name="terminationTime")
13154
+ def termination_time(self) -> Optional[pulumi.Input[str]]:
13155
+ """
13156
+ Specifies the timestamp, when the instance will be terminated,
13157
+ in RFC3339 text format. If specified, the instance termination action
13158
+ will be performed at the termination time.
13159
+ """
13160
+ return pulumi.get(self, "termination_time")
13161
+
13162
+ @termination_time.setter
13163
+ def termination_time(self, value: Optional[pulumi.Input[str]]):
13164
+ pulumi.set(self, "termination_time", value)
13165
+
12880
13166
 
12881
13167
  if not MYPY:
12882
13168
  class InstanceFromMachineImageSchedulingGracefulShutdownArgsDict(TypedDict):
@@ -15008,6 +15294,12 @@ if not MYPY:
15008
15294
  """
15009
15295
  Whether the instance is spot. If this is set as SPOT.
15010
15296
  """
15297
+ termination_time: NotRequired[pulumi.Input[str]]
15298
+ """
15299
+ Specifies the timestamp, when the instance will be terminated,
15300
+ in RFC3339 text format. If specified, the instance termination action
15301
+ will be performed at the termination time.
15302
+ """
15011
15303
  elif False:
15012
15304
  InstanceFromTemplateSchedulingArgsDict: TypeAlias = Mapping[str, Any]
15013
15305
 
@@ -15027,7 +15319,8 @@ class InstanceFromTemplateSchedulingArgs:
15027
15319
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
15028
15320
  on_instance_stop_action: Optional[pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs']] = None,
15029
15321
  preemptible: Optional[pulumi.Input[bool]] = None,
15030
- provisioning_model: Optional[pulumi.Input[str]] = None):
15322
+ provisioning_model: Optional[pulumi.Input[str]] = None,
15323
+ termination_time: Optional[pulumi.Input[str]] = None):
15031
15324
  """
15032
15325
  :param pulumi.Input[bool] automatic_restart: Specifies if the instance should be restarted if it was terminated by Compute Engine (not a user).
15033
15326
  :param pulumi.Input[int] availability_domain: Specifies the availability domain, which this instance should be scheduled on.
@@ -15045,6 +15338,9 @@ class InstanceFromTemplateSchedulingArgs:
15045
15338
  :param pulumi.Input['InstanceFromTemplateSchedulingOnInstanceStopActionArgs'] on_instance_stop_action: Defines the behaviour for instances with the instance_termination_action.
15046
15339
  :param pulumi.Input[bool] preemptible: Whether the instance is preemptible.
15047
15340
  :param pulumi.Input[str] provisioning_model: Whether the instance is spot. If this is set as SPOT.
15341
+ :param pulumi.Input[str] termination_time: Specifies the timestamp, when the instance will be terminated,
15342
+ in RFC3339 text format. If specified, the instance termination action
15343
+ will be performed at the termination time.
15048
15344
  """
15049
15345
  if automatic_restart is not None:
15050
15346
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -15074,6 +15370,8 @@ class InstanceFromTemplateSchedulingArgs:
15074
15370
  pulumi.set(__self__, "preemptible", preemptible)
15075
15371
  if provisioning_model is not None:
15076
15372
  pulumi.set(__self__, "provisioning_model", provisioning_model)
15373
+ if termination_time is not None:
15374
+ pulumi.set(__self__, "termination_time", termination_time)
15077
15375
 
15078
15376
  @property
15079
15377
  @pulumi.getter(name="automaticRestart")
@@ -15243,6 +15541,20 @@ class InstanceFromTemplateSchedulingArgs:
15243
15541
  def provisioning_model(self, value: Optional[pulumi.Input[str]]):
15244
15542
  pulumi.set(self, "provisioning_model", value)
15245
15543
 
15544
+ @property
15545
+ @pulumi.getter(name="terminationTime")
15546
+ def termination_time(self) -> Optional[pulumi.Input[str]]:
15547
+ """
15548
+ Specifies the timestamp, when the instance will be terminated,
15549
+ in RFC3339 text format. If specified, the instance termination action
15550
+ will be performed at the termination time.
15551
+ """
15552
+ return pulumi.get(self, "termination_time")
15553
+
15554
+ @termination_time.setter
15555
+ def termination_time(self, value: Optional[pulumi.Input[str]]):
15556
+ pulumi.set(self, "termination_time", value)
15557
+
15246
15558
 
15247
15559
  if not MYPY:
15248
15560
  class InstanceFromTemplateSchedulingGracefulShutdownArgsDict(TypedDict):
@@ -18015,6 +18327,10 @@ if not MYPY:
18015
18327
  `false`. For more info about
18016
18328
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
18017
18329
  """
18330
+ termination_time: NotRequired[pulumi.Input[str]]
18331
+ """
18332
+ 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.
18333
+ """
18018
18334
  elif False:
18019
18335
  InstanceSchedulingArgsDict: TypeAlias = Mapping[str, Any]
18020
18336
 
@@ -18034,7 +18350,8 @@ class InstanceSchedulingArgs:
18034
18350
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
18035
18351
  on_instance_stop_action: Optional[pulumi.Input['InstanceSchedulingOnInstanceStopActionArgs']] = None,
18036
18352
  preemptible: Optional[pulumi.Input[bool]] = None,
18037
- provisioning_model: Optional[pulumi.Input[str]] = None):
18353
+ provisioning_model: Optional[pulumi.Input[str]] = None,
18354
+ termination_time: Optional[pulumi.Input[str]] = None):
18038
18355
  """
18039
18356
  :param pulumi.Input[bool] automatic_restart: Specifies if the instance should be
18040
18357
  restarted if it was terminated by Compute Engine (not a user).
@@ -18066,6 +18383,7 @@ class InstanceSchedulingArgs:
18066
18383
  `preemptible` should be `true` and `automatic_restart` should be
18067
18384
  `false`. For more info about
18068
18385
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
18386
+ :param pulumi.Input[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.
18069
18387
  """
18070
18388
  if automatic_restart is not None:
18071
18389
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -18095,6 +18413,8 @@ class InstanceSchedulingArgs:
18095
18413
  pulumi.set(__self__, "preemptible", preemptible)
18096
18414
  if provisioning_model is not None:
18097
18415
  pulumi.set(__self__, "provisioning_model", provisioning_model)
18416
+ if termination_time is not None:
18417
+ pulumi.set(__self__, "termination_time", termination_time)
18098
18418
 
18099
18419
  @property
18100
18420
  @pulumi.getter(name="automaticRestart")
@@ -18280,6 +18600,18 @@ class InstanceSchedulingArgs:
18280
18600
  def provisioning_model(self, value: Optional[pulumi.Input[str]]):
18281
18601
  pulumi.set(self, "provisioning_model", value)
18282
18602
 
18603
+ @property
18604
+ @pulumi.getter(name="terminationTime")
18605
+ def termination_time(self) -> Optional[pulumi.Input[str]]:
18606
+ """
18607
+ 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.
18608
+ """
18609
+ return pulumi.get(self, "termination_time")
18610
+
18611
+ @termination_time.setter
18612
+ def termination_time(self, value: Optional[pulumi.Input[str]]):
18613
+ pulumi.set(self, "termination_time", value)
18614
+
18283
18615
 
18284
18616
  if not MYPY:
18285
18617
  class InstanceSchedulingGracefulShutdownArgsDict(TypedDict):
@@ -20765,6 +21097,10 @@ if not MYPY:
20765
21097
  `false`. For more info about
20766
21098
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
20767
21099
  """
21100
+ termination_time: NotRequired[pulumi.Input[str]]
21101
+ """
21102
+ 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.
21103
+ """
20768
21104
  elif False:
20769
21105
  InstanceTemplateSchedulingArgsDict: TypeAlias = Mapping[str, Any]
20770
21106
 
@@ -20784,7 +21120,8 @@ class InstanceTemplateSchedulingArgs:
20784
21120
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
20785
21121
  on_instance_stop_action: Optional[pulumi.Input['InstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
20786
21122
  preemptible: Optional[pulumi.Input[bool]] = None,
20787
- provisioning_model: Optional[pulumi.Input[str]] = None):
21123
+ provisioning_model: Optional[pulumi.Input[str]] = None,
21124
+ termination_time: Optional[pulumi.Input[str]] = None):
20788
21125
  """
20789
21126
  :param pulumi.Input[bool] automatic_restart: Specifies whether the instance should be
20790
21127
  automatically restarted if it is terminated by Compute Engine (not
@@ -20815,6 +21152,7 @@ class InstanceTemplateSchedulingArgs:
20815
21152
  `preemptible` should be `true` and `automatic_restart` should be
20816
21153
  `false`. For more info about
20817
21154
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
21155
+ :param pulumi.Input[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.
20818
21156
  """
20819
21157
  if automatic_restart is not None:
20820
21158
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -20844,6 +21182,8 @@ class InstanceTemplateSchedulingArgs:
20844
21182
  pulumi.set(__self__, "preemptible", preemptible)
20845
21183
  if provisioning_model is not None:
20846
21184
  pulumi.set(__self__, "provisioning_model", provisioning_model)
21185
+ if termination_time is not None:
21186
+ pulumi.set(__self__, "termination_time", termination_time)
20847
21187
 
20848
21188
  @property
20849
21189
  @pulumi.getter(name="automaticRestart")
@@ -21028,6 +21368,18 @@ class InstanceTemplateSchedulingArgs:
21028
21368
  def provisioning_model(self, value: Optional[pulumi.Input[str]]):
21029
21369
  pulumi.set(self, "provisioning_model", value)
21030
21370
 
21371
+ @property
21372
+ @pulumi.getter(name="terminationTime")
21373
+ def termination_time(self) -> Optional[pulumi.Input[str]]:
21374
+ """
21375
+ 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.
21376
+ """
21377
+ return pulumi.get(self, "termination_time")
21378
+
21379
+ @termination_time.setter
21380
+ def termination_time(self, value: Optional[pulumi.Input[str]]):
21381
+ pulumi.set(self, "termination_time", value)
21382
+
21031
21383
 
21032
21384
  if not MYPY:
21033
21385
  class InstanceTemplateSchedulingGracefulShutdownArgsDict(TypedDict):
@@ -21538,6 +21890,132 @@ class InstanceTemplateShieldedInstanceConfigArgs:
21538
21890
  pulumi.set(self, "enable_vtpm", value)
21539
21891
 
21540
21892
 
21893
+ if not MYPY:
21894
+ class InstantSnapshotIamBindingConditionArgsDict(TypedDict):
21895
+ expression: pulumi.Input[str]
21896
+ """
21897
+ Textual representation of an expression in Common Expression Language syntax.
21898
+ """
21899
+ title: pulumi.Input[str]
21900
+ """
21901
+ A title for the expression, i.e. a short string describing its purpose.
21902
+ """
21903
+ description: NotRequired[pulumi.Input[str]]
21904
+ elif False:
21905
+ InstantSnapshotIamBindingConditionArgsDict: TypeAlias = Mapping[str, Any]
21906
+
21907
+ @pulumi.input_type
21908
+ class InstantSnapshotIamBindingConditionArgs:
21909
+ def __init__(__self__, *,
21910
+ expression: pulumi.Input[str],
21911
+ title: pulumi.Input[str],
21912
+ description: Optional[pulumi.Input[str]] = None):
21913
+ """
21914
+ :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax.
21915
+ :param pulumi.Input[str] title: A title for the expression, i.e. a short string describing its purpose.
21916
+ """
21917
+ pulumi.set(__self__, "expression", expression)
21918
+ pulumi.set(__self__, "title", title)
21919
+ if description is not None:
21920
+ pulumi.set(__self__, "description", description)
21921
+
21922
+ @property
21923
+ @pulumi.getter
21924
+ def expression(self) -> pulumi.Input[str]:
21925
+ """
21926
+ Textual representation of an expression in Common Expression Language syntax.
21927
+ """
21928
+ return pulumi.get(self, "expression")
21929
+
21930
+ @expression.setter
21931
+ def expression(self, value: pulumi.Input[str]):
21932
+ pulumi.set(self, "expression", value)
21933
+
21934
+ @property
21935
+ @pulumi.getter
21936
+ def title(self) -> pulumi.Input[str]:
21937
+ """
21938
+ A title for the expression, i.e. a short string describing its purpose.
21939
+ """
21940
+ return pulumi.get(self, "title")
21941
+
21942
+ @title.setter
21943
+ def title(self, value: pulumi.Input[str]):
21944
+ pulumi.set(self, "title", value)
21945
+
21946
+ @property
21947
+ @pulumi.getter
21948
+ def description(self) -> Optional[pulumi.Input[str]]:
21949
+ return pulumi.get(self, "description")
21950
+
21951
+ @description.setter
21952
+ def description(self, value: Optional[pulumi.Input[str]]):
21953
+ pulumi.set(self, "description", value)
21954
+
21955
+
21956
+ if not MYPY:
21957
+ class InstantSnapshotIamMemberConditionArgsDict(TypedDict):
21958
+ expression: pulumi.Input[str]
21959
+ """
21960
+ Textual representation of an expression in Common Expression Language syntax.
21961
+ """
21962
+ title: pulumi.Input[str]
21963
+ """
21964
+ A title for the expression, i.e. a short string describing its purpose.
21965
+ """
21966
+ description: NotRequired[pulumi.Input[str]]
21967
+ elif False:
21968
+ InstantSnapshotIamMemberConditionArgsDict: TypeAlias = Mapping[str, Any]
21969
+
21970
+ @pulumi.input_type
21971
+ class InstantSnapshotIamMemberConditionArgs:
21972
+ def __init__(__self__, *,
21973
+ expression: pulumi.Input[str],
21974
+ title: pulumi.Input[str],
21975
+ description: Optional[pulumi.Input[str]] = None):
21976
+ """
21977
+ :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax.
21978
+ :param pulumi.Input[str] title: A title for the expression, i.e. a short string describing its purpose.
21979
+ """
21980
+ pulumi.set(__self__, "expression", expression)
21981
+ pulumi.set(__self__, "title", title)
21982
+ if description is not None:
21983
+ pulumi.set(__self__, "description", description)
21984
+
21985
+ @property
21986
+ @pulumi.getter
21987
+ def expression(self) -> pulumi.Input[str]:
21988
+ """
21989
+ Textual representation of an expression in Common Expression Language syntax.
21990
+ """
21991
+ return pulumi.get(self, "expression")
21992
+
21993
+ @expression.setter
21994
+ def expression(self, value: pulumi.Input[str]):
21995
+ pulumi.set(self, "expression", value)
21996
+
21997
+ @property
21998
+ @pulumi.getter
21999
+ def title(self) -> pulumi.Input[str]:
22000
+ """
22001
+ A title for the expression, i.e. a short string describing its purpose.
22002
+ """
22003
+ return pulumi.get(self, "title")
22004
+
22005
+ @title.setter
22006
+ def title(self, value: pulumi.Input[str]):
22007
+ pulumi.set(self, "title", value)
22008
+
22009
+ @property
22010
+ @pulumi.getter
22011
+ def description(self) -> Optional[pulumi.Input[str]]:
22012
+ return pulumi.get(self, "description")
22013
+
22014
+ @description.setter
22015
+ def description(self, value: Optional[pulumi.Input[str]]):
22016
+ pulumi.set(self, "description", value)
22017
+
22018
+
21541
22019
  if not MYPY:
21542
22020
  class InterconnectAttachmentPrivateInterconnectInfoArgsDict(TypedDict):
21543
22021
  tag8021q: NotRequired[pulumi.Input[int]]
@@ -27734,7 +28212,7 @@ if not MYPY:
27734
28212
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
27735
28213
  for an explanation of load balancing modes.
27736
28214
  Default value is `UTILIZATION`.
27737
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
28215
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
27738
28216
  """
27739
28217
  capacity_scaler: NotRequired[pulumi.Input[float]]
27740
28218
  """
@@ -27747,6 +28225,11 @@ if not MYPY:
27747
28225
  A setting of 0 means the group is completely drained, offering
27748
28226
  0% of its available Capacity. Valid range is [0.0,1.0].
27749
28227
  """
28228
+ custom_metrics: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionBackendServiceBackendCustomMetricArgsDict']]]]
28229
+ """
28230
+ The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
28231
+ Structure is documented below.
28232
+ """
27750
28233
  description: NotRequired[pulumi.Input[str]]
27751
28234
  """
27752
28235
  An optional description of this resource.
@@ -27826,6 +28309,7 @@ class RegionBackendServiceBackendArgs:
27826
28309
  group: pulumi.Input[str],
27827
28310
  balancing_mode: Optional[pulumi.Input[str]] = None,
27828
28311
  capacity_scaler: Optional[pulumi.Input[float]] = None,
28312
+ custom_metrics: Optional[pulumi.Input[Sequence[pulumi.Input['RegionBackendServiceBackendCustomMetricArgs']]]] = None,
27829
28313
  description: Optional[pulumi.Input[str]] = None,
27830
28314
  failover: Optional[pulumi.Input[bool]] = None,
27831
28315
  max_connections: Optional[pulumi.Input[int]] = None,
@@ -27856,7 +28340,7 @@ class RegionBackendServiceBackendArgs:
27856
28340
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
27857
28341
  for an explanation of load balancing modes.
27858
28342
  Default value is `UTILIZATION`.
27859
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
28343
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
27860
28344
  :param pulumi.Input[float] capacity_scaler: A multiplier applied to the group's maximum servicing capacity
27861
28345
  (based on UTILIZATION, RATE or CONNECTION).
27862
28346
  ~>**NOTE**: This field cannot be set for
@@ -27865,6 +28349,8 @@ class RegionBackendServiceBackendArgs:
27865
28349
  capacity_scaler for all backends must be non-zero.
27866
28350
  A setting of 0 means the group is completely drained, offering
27867
28351
  0% of its available Capacity. Valid range is [0.0,1.0].
28352
+ :param pulumi.Input[Sequence[pulumi.Input['RegionBackendServiceBackendCustomMetricArgs']]] custom_metrics: The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
28353
+ Structure is documented below.
27868
28354
  :param pulumi.Input[str] description: An optional description of this resource.
27869
28355
  Provide this property when you create the resource.
27870
28356
  :param pulumi.Input[bool] failover: This field designates whether this is a failover backend. More
@@ -27914,6 +28400,8 @@ class RegionBackendServiceBackendArgs:
27914
28400
  pulumi.set(__self__, "balancing_mode", balancing_mode)
27915
28401
  if capacity_scaler is not None:
27916
28402
  pulumi.set(__self__, "capacity_scaler", capacity_scaler)
28403
+ if custom_metrics is not None:
28404
+ pulumi.set(__self__, "custom_metrics", custom_metrics)
27917
28405
  if description is not None:
27918
28406
  pulumi.set(__self__, "description", description)
27919
28407
  if failover is not None:
@@ -27968,7 +28456,7 @@ class RegionBackendServiceBackendArgs:
27968
28456
  See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode)
27969
28457
  for an explanation of load balancing modes.
27970
28458
  Default value is `UTILIZATION`.
27971
- Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`.
28459
+ Possible values are: `UTILIZATION`, `RATE`, `CONNECTION`, `CUSTOM_METRICS`.
27972
28460
  """
27973
28461
  return pulumi.get(self, "balancing_mode")
27974
28462
 
@@ -27995,6 +28483,19 @@ class RegionBackendServiceBackendArgs:
27995
28483
  def capacity_scaler(self, value: Optional[pulumi.Input[float]]):
27996
28484
  pulumi.set(self, "capacity_scaler", value)
27997
28485
 
28486
+ @property
28487
+ @pulumi.getter(name="customMetrics")
28488
+ def custom_metrics(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionBackendServiceBackendCustomMetricArgs']]]]:
28489
+ """
28490
+ The set of custom metrics that are used for <code>CUSTOM_METRICS</code> BalancingMode.
28491
+ Structure is documented below.
28492
+ """
28493
+ return pulumi.get(self, "custom_metrics")
28494
+
28495
+ @custom_metrics.setter
28496
+ def custom_metrics(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionBackendServiceBackendCustomMetricArgs']]]]):
28497
+ pulumi.set(self, "custom_metrics", value)
28498
+
27998
28499
  @property
27999
28500
  @pulumi.getter
28000
28501
  def description(self) -> Optional[pulumi.Input[str]]:
@@ -28138,6 +28639,103 @@ class RegionBackendServiceBackendArgs:
28138
28639
  pulumi.set(self, "max_utilization", value)
28139
28640
 
28140
28641
 
28642
+ if not MYPY:
28643
+ class RegionBackendServiceBackendCustomMetricArgsDict(TypedDict):
28644
+ dry_run: pulumi.Input[bool]
28645
+ """
28646
+ If true, the metric data is not used for load balancing.
28647
+ """
28648
+ name: pulumi.Input[str]
28649
+ """
28650
+ Name of a custom utilization signal. The name must be 1-64 characters
28651
+ long and match the regular expression a-z? which
28652
+ means the first character must be a lowercase letter, and all following
28653
+ characters must be a dash, period, underscore, lowercase letter, or
28654
+ digit, except the last character, which cannot be a dash, period, or
28655
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
28656
+ field can only be used for a global or regional backend service with the
28657
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
28658
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
28659
+ """
28660
+ max_utilization: NotRequired[pulumi.Input[float]]
28661
+ """
28662
+ Optional parameter to define a target utilization for the Custom Metrics
28663
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
28664
+ """
28665
+ elif False:
28666
+ RegionBackendServiceBackendCustomMetricArgsDict: TypeAlias = Mapping[str, Any]
28667
+
28668
+ @pulumi.input_type
28669
+ class RegionBackendServiceBackendCustomMetricArgs:
28670
+ def __init__(__self__, *,
28671
+ dry_run: pulumi.Input[bool],
28672
+ name: pulumi.Input[str],
28673
+ max_utilization: Optional[pulumi.Input[float]] = None):
28674
+ """
28675
+ :param pulumi.Input[bool] dry_run: If true, the metric data is not used for load balancing.
28676
+ :param pulumi.Input[str] name: Name of a custom utilization signal. The name must be 1-64 characters
28677
+ long and match the regular expression a-z? which
28678
+ means the first character must be a lowercase letter, and all following
28679
+ characters must be a dash, period, underscore, lowercase letter, or
28680
+ digit, except the last character, which cannot be a dash, period, or
28681
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
28682
+ field can only be used for a global or regional backend service with the
28683
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
28684
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
28685
+ :param pulumi.Input[float] max_utilization: Optional parameter to define a target utilization for the Custom Metrics
28686
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
28687
+ """
28688
+ pulumi.set(__self__, "dry_run", dry_run)
28689
+ pulumi.set(__self__, "name", name)
28690
+ if max_utilization is not None:
28691
+ pulumi.set(__self__, "max_utilization", max_utilization)
28692
+
28693
+ @property
28694
+ @pulumi.getter(name="dryRun")
28695
+ def dry_run(self) -> pulumi.Input[bool]:
28696
+ """
28697
+ If true, the metric data is not used for load balancing.
28698
+ """
28699
+ return pulumi.get(self, "dry_run")
28700
+
28701
+ @dry_run.setter
28702
+ def dry_run(self, value: pulumi.Input[bool]):
28703
+ pulumi.set(self, "dry_run", value)
28704
+
28705
+ @property
28706
+ @pulumi.getter
28707
+ def name(self) -> pulumi.Input[str]:
28708
+ """
28709
+ Name of a custom utilization signal. The name must be 1-64 characters
28710
+ long and match the regular expression a-z? which
28711
+ means the first character must be a lowercase letter, and all following
28712
+ characters must be a dash, period, underscore, lowercase letter, or
28713
+ digit, except the last character, which cannot be a dash, period, or
28714
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
28715
+ field can only be used for a global or regional backend service with the
28716
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
28717
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
28718
+ """
28719
+ return pulumi.get(self, "name")
28720
+
28721
+ @name.setter
28722
+ def name(self, value: pulumi.Input[str]):
28723
+ pulumi.set(self, "name", value)
28724
+
28725
+ @property
28726
+ @pulumi.getter(name="maxUtilization")
28727
+ def max_utilization(self) -> Optional[pulumi.Input[float]]:
28728
+ """
28729
+ Optional parameter to define a target utilization for the Custom Metrics
28730
+ balancing mode. The valid range is <code>[0.0, 1.0]</code>.
28731
+ """
28732
+ return pulumi.get(self, "max_utilization")
28733
+
28734
+ @max_utilization.setter
28735
+ def max_utilization(self, value: Optional[pulumi.Input[float]]):
28736
+ pulumi.set(self, "max_utilization", value)
28737
+
28738
+
28141
28739
  if not MYPY:
28142
28740
  class RegionBackendServiceCdnPolicyArgsDict(TypedDict):
28143
28741
  cache_key_policy: NotRequired[pulumi.Input['RegionBackendServiceCdnPolicyCacheKeyPolicyArgsDict']]
@@ -29221,6 +29819,80 @@ class RegionBackendServiceConsistentHashHttpCookieTtlArgs:
29221
29819
  pulumi.set(self, "nanos", value)
29222
29820
 
29223
29821
 
29822
+ if not MYPY:
29823
+ class RegionBackendServiceCustomMetricArgsDict(TypedDict):
29824
+ dry_run: pulumi.Input[bool]
29825
+ """
29826
+ If true, the metric data is not used for load balancing.
29827
+ """
29828
+ name: pulumi.Input[str]
29829
+ """
29830
+ Name of a custom utilization signal. The name must be 1-64 characters
29831
+ long and match the regular expression a-z? which
29832
+ means the first character must be a lowercase letter, and all following
29833
+ characters must be a dash, period, underscore, lowercase letter, or
29834
+ digit, except the last character, which cannot be a dash, period, or
29835
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
29836
+ field can only be used for a global or regional backend service with the
29837
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
29838
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
29839
+ """
29840
+ elif False:
29841
+ RegionBackendServiceCustomMetricArgsDict: TypeAlias = Mapping[str, Any]
29842
+
29843
+ @pulumi.input_type
29844
+ class RegionBackendServiceCustomMetricArgs:
29845
+ def __init__(__self__, *,
29846
+ dry_run: pulumi.Input[bool],
29847
+ name: pulumi.Input[str]):
29848
+ """
29849
+ :param pulumi.Input[bool] dry_run: If true, the metric data is not used for load balancing.
29850
+ :param pulumi.Input[str] name: Name of a custom utilization signal. The name must be 1-64 characters
29851
+ long and match the regular expression a-z? which
29852
+ means the first character must be a lowercase letter, and all following
29853
+ characters must be a dash, period, underscore, lowercase letter, or
29854
+ digit, except the last character, which cannot be a dash, period, or
29855
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
29856
+ field can only be used for a global or regional backend service with the
29857
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
29858
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
29859
+ """
29860
+ pulumi.set(__self__, "dry_run", dry_run)
29861
+ pulumi.set(__self__, "name", name)
29862
+
29863
+ @property
29864
+ @pulumi.getter(name="dryRun")
29865
+ def dry_run(self) -> pulumi.Input[bool]:
29866
+ """
29867
+ If true, the metric data is not used for load balancing.
29868
+ """
29869
+ return pulumi.get(self, "dry_run")
29870
+
29871
+ @dry_run.setter
29872
+ def dry_run(self, value: pulumi.Input[bool]):
29873
+ pulumi.set(self, "dry_run", value)
29874
+
29875
+ @property
29876
+ @pulumi.getter
29877
+ def name(self) -> pulumi.Input[str]:
29878
+ """
29879
+ Name of a custom utilization signal. The name must be 1-64 characters
29880
+ long and match the regular expression a-z? which
29881
+ means the first character must be a lowercase letter, and all following
29882
+ characters must be a dash, period, underscore, lowercase letter, or
29883
+ digit, except the last character, which cannot be a dash, period, or
29884
+ underscore. For usage guidelines, see Custom Metrics balancing mode. This
29885
+ field can only be used for a global or regional backend service with the
29886
+ loadBalancingScheme set to <code>EXTERNAL_MANAGED</code>,
29887
+ <code>INTERNAL_MANAGED</code> <code>INTERNAL_SELF_MANAGED</code>.
29888
+ """
29889
+ return pulumi.get(self, "name")
29890
+
29891
+ @name.setter
29892
+ def name(self, value: pulumi.Input[str]):
29893
+ pulumi.set(self, "name", value)
29894
+
29895
+
29224
29896
  if not MYPY:
29225
29897
  class RegionBackendServiceFailoverPolicyArgsDict(TypedDict):
29226
29898
  disable_connection_drain_on_failover: NotRequired[pulumi.Input[bool]]
@@ -29576,6 +30248,16 @@ if not MYPY:
29576
30248
  """
29577
30249
  Whether to enable logging for the load balancer traffic served by this backend service.
29578
30250
  """
30251
+ optional_fields: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
30252
+ """
30253
+ Specifies the fields to include in logging. This field can only be specified if logging is enabled for this backend service.
30254
+ """
30255
+ optional_mode: NotRequired[pulumi.Input[str]]
30256
+ """
30257
+ Specifies the optional logging mode for the load balancer traffic.
30258
+ Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.
30259
+ Possible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.
30260
+ """
29579
30261
  sample_rate: NotRequired[pulumi.Input[float]]
29580
30262
  """
29581
30263
  This field can only be specified if logging is enabled for this backend service. The value of
@@ -29590,9 +30272,15 @@ elif False:
29590
30272
  class RegionBackendServiceLogConfigArgs:
29591
30273
  def __init__(__self__, *,
29592
30274
  enable: Optional[pulumi.Input[bool]] = None,
30275
+ optional_fields: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
30276
+ optional_mode: Optional[pulumi.Input[str]] = None,
29593
30277
  sample_rate: Optional[pulumi.Input[float]] = None):
29594
30278
  """
29595
30279
  :param pulumi.Input[bool] enable: Whether to enable logging for the load balancer traffic served by this backend service.
30280
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] optional_fields: Specifies the fields to include in logging. This field can only be specified if logging is enabled for this backend service.
30281
+ :param pulumi.Input[str] optional_mode: Specifies the optional logging mode for the load balancer traffic.
30282
+ Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.
30283
+ Possible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.
29596
30284
  :param pulumi.Input[float] sample_rate: This field can only be specified if logging is enabled for this backend service. The value of
29597
30285
  the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer
29598
30286
  where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported.
@@ -29600,6 +30288,10 @@ class RegionBackendServiceLogConfigArgs:
29600
30288
  """
29601
30289
  if enable is not None:
29602
30290
  pulumi.set(__self__, "enable", enable)
30291
+ if optional_fields is not None:
30292
+ pulumi.set(__self__, "optional_fields", optional_fields)
30293
+ if optional_mode is not None:
30294
+ pulumi.set(__self__, "optional_mode", optional_mode)
29603
30295
  if sample_rate is not None:
29604
30296
  pulumi.set(__self__, "sample_rate", sample_rate)
29605
30297
 
@@ -29615,6 +30307,32 @@ class RegionBackendServiceLogConfigArgs:
29615
30307
  def enable(self, value: Optional[pulumi.Input[bool]]):
29616
30308
  pulumi.set(self, "enable", value)
29617
30309
 
30310
+ @property
30311
+ @pulumi.getter(name="optionalFields")
30312
+ def optional_fields(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
30313
+ """
30314
+ Specifies the fields to include in logging. This field can only be specified if logging is enabled for this backend service.
30315
+ """
30316
+ return pulumi.get(self, "optional_fields")
30317
+
30318
+ @optional_fields.setter
30319
+ def optional_fields(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
30320
+ pulumi.set(self, "optional_fields", value)
30321
+
30322
+ @property
30323
+ @pulumi.getter(name="optionalMode")
30324
+ def optional_mode(self) -> Optional[pulumi.Input[str]]:
30325
+ """
30326
+ Specifies the optional logging mode for the load balancer traffic.
30327
+ Supported values: INCLUDE_ALL_OPTIONAL, EXCLUDE_ALL_OPTIONAL, CUSTOM.
30328
+ Possible values are: `INCLUDE_ALL_OPTIONAL`, `EXCLUDE_ALL_OPTIONAL`, `CUSTOM`.
30329
+ """
30330
+ return pulumi.get(self, "optional_mode")
30331
+
30332
+ @optional_mode.setter
30333
+ def optional_mode(self, value: Optional[pulumi.Input[str]]):
30334
+ pulumi.set(self, "optional_mode", value)
30335
+
29618
30336
  @property
29619
30337
  @pulumi.getter(name="sampleRate")
29620
30338
  def sample_rate(self) -> Optional[pulumi.Input[float]]:
@@ -30437,6 +31155,13 @@ if not MYPY:
30437
31155
  RFC 4648 base64 to either encrypt or decrypt this resource.
30438
31156
  **Note**: This property is sensitive and will not be displayed in the plan.
30439
31157
  """
31158
+ rsa_encrypted_key: NotRequired[pulumi.Input[str]]
31159
+ """
31160
+ Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
31161
+ customer-supplied encryption key to either encrypt or decrypt
31162
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
31163
+ **Note**: This property is sensitive and will not be displayed in the plan.
31164
+ """
30440
31165
  sha256: NotRequired[pulumi.Input[str]]
30441
31166
  """
30442
31167
  (Output)
@@ -30451,12 +31176,17 @@ class RegionDiskDiskEncryptionKeyArgs:
30451
31176
  def __init__(__self__, *,
30452
31177
  kms_key_name: Optional[pulumi.Input[str]] = None,
30453
31178
  raw_key: Optional[pulumi.Input[str]] = None,
31179
+ rsa_encrypted_key: Optional[pulumi.Input[str]] = None,
30454
31180
  sha256: Optional[pulumi.Input[str]] = None):
30455
31181
  """
30456
31182
  :param pulumi.Input[str] kms_key_name: The name of the encryption key that is stored in Google Cloud KMS.
30457
31183
  :param pulumi.Input[str] raw_key: Specifies a 256-bit customer-supplied encryption key, encoded in
30458
31184
  RFC 4648 base64 to either encrypt or decrypt this resource.
30459
31185
  **Note**: This property is sensitive and will not be displayed in the plan.
31186
+ :param pulumi.Input[str] rsa_encrypted_key: Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
31187
+ customer-supplied encryption key to either encrypt or decrypt
31188
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
31189
+ **Note**: This property is sensitive and will not be displayed in the plan.
30460
31190
  :param pulumi.Input[str] sha256: (Output)
30461
31191
  The RFC 4648 base64 encoded SHA-256 hash of the customer-supplied
30462
31192
  encryption key that protects this resource.
@@ -30465,6 +31195,8 @@ class RegionDiskDiskEncryptionKeyArgs:
30465
31195
  pulumi.set(__self__, "kms_key_name", kms_key_name)
30466
31196
  if raw_key is not None:
30467
31197
  pulumi.set(__self__, "raw_key", raw_key)
31198
+ if rsa_encrypted_key is not None:
31199
+ pulumi.set(__self__, "rsa_encrypted_key", rsa_encrypted_key)
30468
31200
  if sha256 is not None:
30469
31201
  pulumi.set(__self__, "sha256", sha256)
30470
31202
 
@@ -30494,6 +31226,21 @@ class RegionDiskDiskEncryptionKeyArgs:
30494
31226
  def raw_key(self, value: Optional[pulumi.Input[str]]):
30495
31227
  pulumi.set(self, "raw_key", value)
30496
31228
 
31229
+ @property
31230
+ @pulumi.getter(name="rsaEncryptedKey")
31231
+ def rsa_encrypted_key(self) -> Optional[pulumi.Input[str]]:
31232
+ """
31233
+ Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit
31234
+ customer-supplied encryption key to either encrypt or decrypt
31235
+ this resource. You can provide either the rawKey or the rsaEncryptedKey.
31236
+ **Note**: This property is sensitive and will not be displayed in the plan.
31237
+ """
31238
+ return pulumi.get(self, "rsa_encrypted_key")
31239
+
31240
+ @rsa_encrypted_key.setter
31241
+ def rsa_encrypted_key(self, value: Optional[pulumi.Input[str]]):
31242
+ pulumi.set(self, "rsa_encrypted_key", value)
31243
+
30497
31244
  @property
30498
31245
  @pulumi.getter
30499
31246
  def sha256(self) -> Optional[pulumi.Input[str]]:
@@ -34815,6 +35562,10 @@ if not MYPY:
34815
35562
  `false`. For more info about
34816
35563
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
34817
35564
  """
35565
+ termination_time: NotRequired[pulumi.Input[str]]
35566
+ """
35567
+ 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.
35568
+ """
34818
35569
  elif False:
34819
35570
  RegionInstanceTemplateSchedulingArgsDict: TypeAlias = Mapping[str, Any]
34820
35571
 
@@ -34834,7 +35585,8 @@ class RegionInstanceTemplateSchedulingArgs:
34834
35585
  on_host_maintenance: Optional[pulumi.Input[str]] = None,
34835
35586
  on_instance_stop_action: Optional[pulumi.Input['RegionInstanceTemplateSchedulingOnInstanceStopActionArgs']] = None,
34836
35587
  preemptible: Optional[pulumi.Input[bool]] = None,
34837
- provisioning_model: Optional[pulumi.Input[str]] = None):
35588
+ provisioning_model: Optional[pulumi.Input[str]] = None,
35589
+ termination_time: Optional[pulumi.Input[str]] = None):
34838
35590
  """
34839
35591
  :param pulumi.Input[bool] automatic_restart: Specifies whether the instance should be
34840
35592
  automatically restarted if it is terminated by Compute Engine (not
@@ -34865,6 +35617,7 @@ class RegionInstanceTemplateSchedulingArgs:
34865
35617
  `preemptible` should be `true` and `automatic_restart` should be
34866
35618
  `false`. For more info about
34867
35619
  `SPOT`, read [here](https://cloud.google.com/compute/docs/instances/spot)
35620
+ :param pulumi.Input[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.
34868
35621
  """
34869
35622
  if automatic_restart is not None:
34870
35623
  pulumi.set(__self__, "automatic_restart", automatic_restart)
@@ -34894,6 +35647,8 @@ class RegionInstanceTemplateSchedulingArgs:
34894
35647
  pulumi.set(__self__, "preemptible", preemptible)
34895
35648
  if provisioning_model is not None:
34896
35649
  pulumi.set(__self__, "provisioning_model", provisioning_model)
35650
+ if termination_time is not None:
35651
+ pulumi.set(__self__, "termination_time", termination_time)
34897
35652
 
34898
35653
  @property
34899
35654
  @pulumi.getter(name="automaticRestart")
@@ -35078,6 +35833,18 @@ class RegionInstanceTemplateSchedulingArgs:
35078
35833
  def provisioning_model(self, value: Optional[pulumi.Input[str]]):
35079
35834
  pulumi.set(self, "provisioning_model", value)
35080
35835
 
35836
+ @property
35837
+ @pulumi.getter(name="terminationTime")
35838
+ def termination_time(self) -> Optional[pulumi.Input[str]]:
35839
+ """
35840
+ 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.
35841
+ """
35842
+ return pulumi.get(self, "termination_time")
35843
+
35844
+ @termination_time.setter
35845
+ def termination_time(self, value: Optional[pulumi.Input[str]]):
35846
+ pulumi.set(self, "termination_time", value)
35847
+
35081
35848
 
35082
35849
  if not MYPY:
35083
35850
  class RegionInstanceTemplateSchedulingGracefulShutdownArgsDict(TypedDict):
@@ -51184,6 +51951,224 @@ class ResourcePolicySnapshotSchedulePolicySnapshotPropertiesArgs:
51184
51951
  pulumi.set(self, "storage_locations", value)
51185
51952
 
51186
51953
 
51954
+ if not MYPY:
51955
+ class RouteAsPathArgsDict(TypedDict):
51956
+ as_lists: NotRequired[pulumi.Input[Sequence[pulumi.Input[int]]]]
51957
+ """
51958
+ (Output)
51959
+ The AS numbers of the AS Path.
51960
+ """
51961
+ path_segment_type: NotRequired[pulumi.Input[str]]
51962
+ """
51963
+ (Output)
51964
+ The type of the AS Path, which can be one of the following values:
51965
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
51966
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
51967
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
51968
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
51969
+ """
51970
+ elif False:
51971
+ RouteAsPathArgsDict: TypeAlias = Mapping[str, Any]
51972
+
51973
+ @pulumi.input_type
51974
+ class RouteAsPathArgs:
51975
+ def __init__(__self__, *,
51976
+ as_lists: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
51977
+ path_segment_type: Optional[pulumi.Input[str]] = None):
51978
+ """
51979
+ :param pulumi.Input[Sequence[pulumi.Input[int]]] as_lists: (Output)
51980
+ The AS numbers of the AS Path.
51981
+ :param pulumi.Input[str] path_segment_type: (Output)
51982
+ The type of the AS Path, which can be one of the following values:
51983
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
51984
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
51985
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
51986
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
51987
+ """
51988
+ if as_lists is not None:
51989
+ pulumi.set(__self__, "as_lists", as_lists)
51990
+ if path_segment_type is not None:
51991
+ pulumi.set(__self__, "path_segment_type", path_segment_type)
51992
+
51993
+ @property
51994
+ @pulumi.getter(name="asLists")
51995
+ def as_lists(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]:
51996
+ """
51997
+ (Output)
51998
+ The AS numbers of the AS Path.
51999
+ """
52000
+ return pulumi.get(self, "as_lists")
52001
+
52002
+ @as_lists.setter
52003
+ def as_lists(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]):
52004
+ pulumi.set(self, "as_lists", value)
52005
+
52006
+ @property
52007
+ @pulumi.getter(name="pathSegmentType")
52008
+ def path_segment_type(self) -> Optional[pulumi.Input[str]]:
52009
+ """
52010
+ (Output)
52011
+ The type of the AS Path, which can be one of the following values:
52012
+ - 'AS_SET': unordered set of autonomous systems that the route in has traversed
52013
+ - 'AS_SEQUENCE': ordered set of autonomous systems that the route has traversed
52014
+ - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems in the local confederation that the route has traversed
52015
+ - 'AS_CONFED_SET': unordered set of Member Autonomous Systems in the local confederation that the route has traversed
52016
+ """
52017
+ return pulumi.get(self, "path_segment_type")
52018
+
52019
+ @path_segment_type.setter
52020
+ def path_segment_type(self, value: Optional[pulumi.Input[str]]):
52021
+ pulumi.set(self, "path_segment_type", value)
52022
+
52023
+
52024
+ if not MYPY:
52025
+ class RouteWarningArgsDict(TypedDict):
52026
+ code: NotRequired[pulumi.Input[str]]
52027
+ """
52028
+ (Output)
52029
+ A warning code, if applicable. For example, Compute Engine returns
52030
+ NO_RESULTS_ON_PAGE if there are no results in the response.
52031
+ """
52032
+ datas: NotRequired[pulumi.Input[Sequence[pulumi.Input['RouteWarningDataArgsDict']]]]
52033
+ """
52034
+ (Output)
52035
+ Metadata about this warning in key: value format. For example:
52036
+ "data": { "key": "scope", "value": "zones/us-east1-d" }
52037
+ Structure is [documented below.
52038
+ """
52039
+ message: NotRequired[pulumi.Input[str]]
52040
+ """
52041
+ (Output)
52042
+ A human-readable description of the warning code.
52043
+ """
52044
+ elif False:
52045
+ RouteWarningArgsDict: TypeAlias = Mapping[str, Any]
52046
+
52047
+ @pulumi.input_type
52048
+ class RouteWarningArgs:
52049
+ def __init__(__self__, *,
52050
+ code: Optional[pulumi.Input[str]] = None,
52051
+ datas: Optional[pulumi.Input[Sequence[pulumi.Input['RouteWarningDataArgs']]]] = None,
52052
+ message: Optional[pulumi.Input[str]] = None):
52053
+ """
52054
+ :param pulumi.Input[str] code: (Output)
52055
+ A warning code, if applicable. For example, Compute Engine returns
52056
+ NO_RESULTS_ON_PAGE if there are no results in the response.
52057
+ :param pulumi.Input[Sequence[pulumi.Input['RouteWarningDataArgs']]] datas: (Output)
52058
+ Metadata about this warning in key: value format. For example:
52059
+ "data": { "key": "scope", "value": "zones/us-east1-d" }
52060
+ Structure is [documented below.
52061
+ :param pulumi.Input[str] message: (Output)
52062
+ A human-readable description of the warning code.
52063
+ """
52064
+ if code is not None:
52065
+ pulumi.set(__self__, "code", code)
52066
+ if datas is not None:
52067
+ pulumi.set(__self__, "datas", datas)
52068
+ if message is not None:
52069
+ pulumi.set(__self__, "message", message)
52070
+
52071
+ @property
52072
+ @pulumi.getter
52073
+ def code(self) -> Optional[pulumi.Input[str]]:
52074
+ """
52075
+ (Output)
52076
+ A warning code, if applicable. For example, Compute Engine returns
52077
+ NO_RESULTS_ON_PAGE if there are no results in the response.
52078
+ """
52079
+ return pulumi.get(self, "code")
52080
+
52081
+ @code.setter
52082
+ def code(self, value: Optional[pulumi.Input[str]]):
52083
+ pulumi.set(self, "code", value)
52084
+
52085
+ @property
52086
+ @pulumi.getter
52087
+ def datas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteWarningDataArgs']]]]:
52088
+ """
52089
+ (Output)
52090
+ Metadata about this warning in key: value format. For example:
52091
+ "data": { "key": "scope", "value": "zones/us-east1-d" }
52092
+ Structure is [documented below.
52093
+ """
52094
+ return pulumi.get(self, "datas")
52095
+
52096
+ @datas.setter
52097
+ def datas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteWarningDataArgs']]]]):
52098
+ pulumi.set(self, "datas", value)
52099
+
52100
+ @property
52101
+ @pulumi.getter
52102
+ def message(self) -> Optional[pulumi.Input[str]]:
52103
+ """
52104
+ (Output)
52105
+ A human-readable description of the warning code.
52106
+ """
52107
+ return pulumi.get(self, "message")
52108
+
52109
+ @message.setter
52110
+ def message(self, value: Optional[pulumi.Input[str]]):
52111
+ pulumi.set(self, "message", value)
52112
+
52113
+
52114
+ if not MYPY:
52115
+ class RouteWarningDataArgsDict(TypedDict):
52116
+ key: NotRequired[pulumi.Input[str]]
52117
+ """
52118
+ (Output)
52119
+ 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).
52120
+ """
52121
+ value: NotRequired[pulumi.Input[str]]
52122
+ """
52123
+ (Output)
52124
+ A warning data value corresponding to the key.
52125
+ """
52126
+ elif False:
52127
+ RouteWarningDataArgsDict: TypeAlias = Mapping[str, Any]
52128
+
52129
+ @pulumi.input_type
52130
+ class RouteWarningDataArgs:
52131
+ def __init__(__self__, *,
52132
+ key: Optional[pulumi.Input[str]] = None,
52133
+ value: Optional[pulumi.Input[str]] = None):
52134
+ """
52135
+ :param pulumi.Input[str] key: (Output)
52136
+ 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).
52137
+ :param pulumi.Input[str] value: (Output)
52138
+ A warning data value corresponding to the key.
52139
+ """
52140
+ if key is not None:
52141
+ pulumi.set(__self__, "key", key)
52142
+ if value is not None:
52143
+ pulumi.set(__self__, "value", value)
52144
+
52145
+ @property
52146
+ @pulumi.getter
52147
+ def key(self) -> Optional[pulumi.Input[str]]:
52148
+ """
52149
+ (Output)
52150
+ 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).
52151
+ """
52152
+ return pulumi.get(self, "key")
52153
+
52154
+ @key.setter
52155
+ def key(self, value: Optional[pulumi.Input[str]]):
52156
+ pulumi.set(self, "key", value)
52157
+
52158
+ @property
52159
+ @pulumi.getter
52160
+ def value(self) -> Optional[pulumi.Input[str]]:
52161
+ """
52162
+ (Output)
52163
+ A warning data value corresponding to the key.
52164
+ """
52165
+ return pulumi.get(self, "value")
52166
+
52167
+ @value.setter
52168
+ def value(self, value: Optional[pulumi.Input[str]]):
52169
+ pulumi.set(self, "value", value)
52170
+
52171
+
51187
52172
  if not MYPY:
51188
52173
  class RouterBgpArgsDict(TypedDict):
51189
52174
  asn: pulumi.Input[int]
@@ -55972,6 +56957,15 @@ if not MYPY:
55972
56957
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
55973
56958
  Structure is documented below.
55974
56959
  """
56960
+ max_stream_duration: NotRequired[pulumi.Input['URLMapDefaultRouteActionMaxStreamDurationArgsDict']]
56961
+ """
56962
+ Specifies the maximum duration (timeout) for streams on the selected route.
56963
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
56964
+ has been fully processed (known as end-of-stream), the duration in this field
56965
+ is computed from the beginning of the stream until the response has been processed,
56966
+ including all retries. A stream that does not complete in this duration is closed.
56967
+ Structure is documented below.
56968
+ """
55975
56969
  request_mirror_policy: NotRequired[pulumi.Input['URLMapDefaultRouteActionRequestMirrorPolicyArgsDict']]
55976
56970
  """
55977
56971
  Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
@@ -56015,6 +57009,7 @@ class URLMapDefaultRouteActionArgs:
56015
57009
  def __init__(__self__, *,
56016
57010
  cors_policy: Optional[pulumi.Input['URLMapDefaultRouteActionCorsPolicyArgs']] = None,
56017
57011
  fault_injection_policy: Optional[pulumi.Input['URLMapDefaultRouteActionFaultInjectionPolicyArgs']] = None,
57012
+ max_stream_duration: Optional[pulumi.Input['URLMapDefaultRouteActionMaxStreamDurationArgs']] = None,
56018
57013
  request_mirror_policy: Optional[pulumi.Input['URLMapDefaultRouteActionRequestMirrorPolicyArgs']] = None,
56019
57014
  retry_policy: Optional[pulumi.Input['URLMapDefaultRouteActionRetryPolicyArgs']] = None,
56020
57015
  timeout: Optional[pulumi.Input['URLMapDefaultRouteActionTimeoutArgs']] = None,
@@ -56030,6 +57025,12 @@ class URLMapDefaultRouteActionArgs:
56030
57025
  by the Loadbalancer for a percentage of requests.
56031
57026
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
56032
57027
  Structure is documented below.
57028
+ :param pulumi.Input['URLMapDefaultRouteActionMaxStreamDurationArgs'] max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
57029
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
57030
+ has been fully processed (known as end-of-stream), the duration in this field
57031
+ is computed from the beginning of the stream until the response has been processed,
57032
+ including all retries. A stream that does not complete in this duration is closed.
57033
+ Structure is documented below.
56033
57034
  :param pulumi.Input['URLMapDefaultRouteActionRequestMirrorPolicyArgs'] request_mirror_policy: Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
56034
57035
  Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,
56035
57036
  the host / authority header is suffixed with -shadow.
@@ -56055,6 +57056,8 @@ class URLMapDefaultRouteActionArgs:
56055
57056
  pulumi.set(__self__, "cors_policy", cors_policy)
56056
57057
  if fault_injection_policy is not None:
56057
57058
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
57059
+ if max_stream_duration is not None:
57060
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
56058
57061
  if request_mirror_policy is not None:
56059
57062
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
56060
57063
  if retry_policy is not None:
@@ -56097,6 +57100,23 @@ class URLMapDefaultRouteActionArgs:
56097
57100
  def fault_injection_policy(self, value: Optional[pulumi.Input['URLMapDefaultRouteActionFaultInjectionPolicyArgs']]):
56098
57101
  pulumi.set(self, "fault_injection_policy", value)
56099
57102
 
57103
+ @property
57104
+ @pulumi.getter(name="maxStreamDuration")
57105
+ def max_stream_duration(self) -> Optional[pulumi.Input['URLMapDefaultRouteActionMaxStreamDurationArgs']]:
57106
+ """
57107
+ Specifies the maximum duration (timeout) for streams on the selected route.
57108
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
57109
+ has been fully processed (known as end-of-stream), the duration in this field
57110
+ is computed from the beginning of the stream until the response has been processed,
57111
+ including all retries. A stream that does not complete in this duration is closed.
57112
+ Structure is documented below.
57113
+ """
57114
+ return pulumi.get(self, "max_stream_duration")
57115
+
57116
+ @max_stream_duration.setter
57117
+ def max_stream_duration(self, value: Optional[pulumi.Input['URLMapDefaultRouteActionMaxStreamDurationArgs']]):
57118
+ pulumi.set(self, "max_stream_duration", value)
57119
+
56100
57120
  @property
56101
57121
  @pulumi.getter(name="requestMirrorPolicy")
56102
57122
  def request_mirror_policy(self) -> Optional[pulumi.Input['URLMapDefaultRouteActionRequestMirrorPolicyArgs']]:
@@ -56592,6 +57612,63 @@ class URLMapDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs:
56592
57612
  pulumi.set(self, "seconds", value)
56593
57613
 
56594
57614
 
57615
+ if not MYPY:
57616
+ class URLMapDefaultRouteActionMaxStreamDurationArgsDict(TypedDict):
57617
+ seconds: pulumi.Input[str]
57618
+ """
57619
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
57620
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
57621
+ """
57622
+ nanos: NotRequired[pulumi.Input[int]]
57623
+ """
57624
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
57625
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
57626
+ """
57627
+ elif False:
57628
+ URLMapDefaultRouteActionMaxStreamDurationArgsDict: TypeAlias = Mapping[str, Any]
57629
+
57630
+ @pulumi.input_type
57631
+ class URLMapDefaultRouteActionMaxStreamDurationArgs:
57632
+ def __init__(__self__, *,
57633
+ seconds: pulumi.Input[str],
57634
+ nanos: Optional[pulumi.Input[int]] = None):
57635
+ """
57636
+ :param pulumi.Input[str] seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
57637
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
57638
+ :param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
57639
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
57640
+ """
57641
+ pulumi.set(__self__, "seconds", seconds)
57642
+ if nanos is not None:
57643
+ pulumi.set(__self__, "nanos", nanos)
57644
+
57645
+ @property
57646
+ @pulumi.getter
57647
+ def seconds(self) -> pulumi.Input[str]:
57648
+ """
57649
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
57650
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
57651
+ """
57652
+ return pulumi.get(self, "seconds")
57653
+
57654
+ @seconds.setter
57655
+ def seconds(self, value: pulumi.Input[str]):
57656
+ pulumi.set(self, "seconds", value)
57657
+
57658
+ @property
57659
+ @pulumi.getter
57660
+ def nanos(self) -> Optional[pulumi.Input[int]]:
57661
+ """
57662
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
57663
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
57664
+ """
57665
+ return pulumi.get(self, "nanos")
57666
+
57667
+ @nanos.setter
57668
+ def nanos(self, value: Optional[pulumi.Input[int]]):
57669
+ pulumi.set(self, "nanos", value)
57670
+
57671
+
56595
57672
  if not MYPY:
56596
57673
  class URLMapDefaultRouteActionRequestMirrorPolicyArgsDict(TypedDict):
56597
57674
  backend_service: pulumi.Input[str]
@@ -58291,6 +59368,15 @@ if not MYPY:
58291
59368
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
58292
59369
  Structure is documented below.
58293
59370
  """
59371
+ max_stream_duration: NotRequired[pulumi.Input['URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgsDict']]
59372
+ """
59373
+ Specifies the maximum duration (timeout) for streams on the selected route.
59374
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
59375
+ has been fully processed (known as end-of-stream), the duration in this field
59376
+ is computed from the beginning of the stream until the response has been processed,
59377
+ including all retries. A stream that does not complete in this duration is closed.
59378
+ Structure is documented below.
59379
+ """
58294
59380
  request_mirror_policy: NotRequired[pulumi.Input['URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgsDict']]
58295
59381
  """
58296
59382
  Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
@@ -58334,6 +59420,7 @@ class URLMapPathMatcherDefaultRouteActionArgs:
58334
59420
  def __init__(__self__, *,
58335
59421
  cors_policy: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionCorsPolicyArgs']] = None,
58336
59422
  fault_injection_policy: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs']] = None,
59423
+ max_stream_duration: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs']] = None,
58337
59424
  request_mirror_policy: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs']] = None,
58338
59425
  retry_policy: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionRetryPolicyArgs']] = None,
58339
59426
  timeout: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionTimeoutArgs']] = None,
@@ -58349,6 +59436,12 @@ class URLMapPathMatcherDefaultRouteActionArgs:
58349
59436
  by the Loadbalancer for a percentage of requests.
58350
59437
  timeout and retryPolicy will be ignored by clients that are configured with a faultInjectionPolicy.
58351
59438
  Structure is documented below.
59439
+ :param pulumi.Input['URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs'] max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
59440
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
59441
+ has been fully processed (known as end-of-stream), the duration in this field
59442
+ is computed from the beginning of the stream until the response has been processed,
59443
+ including all retries. A stream that does not complete in this duration is closed.
59444
+ Structure is documented below.
58352
59445
  :param pulumi.Input['URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs'] request_mirror_policy: Specifies the policy on how requests intended for the route's backends are shadowed to a separate mirrored backend service.
58353
59446
  Loadbalancer does not wait for responses from the shadow service. Prior to sending traffic to the shadow service,
58354
59447
  the host / authority header is suffixed with -shadow.
@@ -58374,6 +59467,8 @@ class URLMapPathMatcherDefaultRouteActionArgs:
58374
59467
  pulumi.set(__self__, "cors_policy", cors_policy)
58375
59468
  if fault_injection_policy is not None:
58376
59469
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
59470
+ if max_stream_duration is not None:
59471
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
58377
59472
  if request_mirror_policy is not None:
58378
59473
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
58379
59474
  if retry_policy is not None:
@@ -58416,6 +59511,23 @@ class URLMapPathMatcherDefaultRouteActionArgs:
58416
59511
  def fault_injection_policy(self, value: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyArgs']]):
58417
59512
  pulumi.set(self, "fault_injection_policy", value)
58418
59513
 
59514
+ @property
59515
+ @pulumi.getter(name="maxStreamDuration")
59516
+ def max_stream_duration(self) -> Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs']]:
59517
+ """
59518
+ Specifies the maximum duration (timeout) for streams on the selected route.
59519
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
59520
+ has been fully processed (known as end-of-stream), the duration in this field
59521
+ is computed from the beginning of the stream until the response has been processed,
59522
+ including all retries. A stream that does not complete in this duration is closed.
59523
+ Structure is documented below.
59524
+ """
59525
+ return pulumi.get(self, "max_stream_duration")
59526
+
59527
+ @max_stream_duration.setter
59528
+ def max_stream_duration(self, value: Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs']]):
59529
+ pulumi.set(self, "max_stream_duration", value)
59530
+
58419
59531
  @property
58420
59532
  @pulumi.getter(name="requestMirrorPolicy")
58421
59533
  def request_mirror_policy(self) -> Optional[pulumi.Input['URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgs']]:
@@ -58911,6 +60023,63 @@ class URLMapPathMatcherDefaultRouteActionFaultInjectionPolicyDelayFixedDelayArgs
58911
60023
  pulumi.set(self, "seconds", value)
58912
60024
 
58913
60025
 
60026
+ if not MYPY:
60027
+ class URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgsDict(TypedDict):
60028
+ seconds: pulumi.Input[str]
60029
+ """
60030
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
60031
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
60032
+ """
60033
+ nanos: NotRequired[pulumi.Input[int]]
60034
+ """
60035
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
60036
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
60037
+ """
60038
+ elif False:
60039
+ URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgsDict: TypeAlias = Mapping[str, Any]
60040
+
60041
+ @pulumi.input_type
60042
+ class URLMapPathMatcherDefaultRouteActionMaxStreamDurationArgs:
60043
+ def __init__(__self__, *,
60044
+ seconds: pulumi.Input[str],
60045
+ nanos: Optional[pulumi.Input[int]] = None):
60046
+ """
60047
+ :param pulumi.Input[str] seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
60048
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
60049
+ :param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
60050
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
60051
+ """
60052
+ pulumi.set(__self__, "seconds", seconds)
60053
+ if nanos is not None:
60054
+ pulumi.set(__self__, "nanos", nanos)
60055
+
60056
+ @property
60057
+ @pulumi.getter
60058
+ def seconds(self) -> pulumi.Input[str]:
60059
+ """
60060
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
60061
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
60062
+ """
60063
+ return pulumi.get(self, "seconds")
60064
+
60065
+ @seconds.setter
60066
+ def seconds(self, value: pulumi.Input[str]):
60067
+ pulumi.set(self, "seconds", value)
60068
+
60069
+ @property
60070
+ @pulumi.getter
60071
+ def nanos(self) -> Optional[pulumi.Input[int]]:
60072
+ """
60073
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
60074
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
60075
+ """
60076
+ return pulumi.get(self, "nanos")
60077
+
60078
+ @nanos.setter
60079
+ def nanos(self, value: Optional[pulumi.Input[int]]):
60080
+ pulumi.set(self, "nanos", value)
60081
+
60082
+
58914
60083
  if not MYPY:
58915
60084
  class URLMapPathMatcherDefaultRouteActionRequestMirrorPolicyArgsDict(TypedDict):
58916
60085
  backend_service: pulumi.Input[str]
@@ -60411,6 +61580,15 @@ if not MYPY:
60411
61580
  ignored by clients that are configured with a fault_injection_policy.
60412
61581
  Structure is documented below.
60413
61582
  """
61583
+ max_stream_duration: NotRequired[pulumi.Input['URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgsDict']]
61584
+ """
61585
+ Specifies the maximum duration (timeout) for streams on the selected route.
61586
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
61587
+ has been fully processed (known as end-of-stream), the duration in this field
61588
+ is computed from the beginning of the stream until the response has been processed,
61589
+ including all retries. A stream that does not complete in this duration is closed.
61590
+ Structure is documented below.
61591
+ """
60414
61592
  request_mirror_policy: NotRequired[pulumi.Input['URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgsDict']]
60415
61593
  """
60416
61594
  Specifies the policy on how requests intended for the route's backends are
@@ -60458,6 +61636,7 @@ class URLMapPathMatcherPathRuleRouteActionArgs:
60458
61636
  def __init__(__self__, *,
60459
61637
  cors_policy: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionCorsPolicyArgs']] = None,
60460
61638
  fault_injection_policy: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs']] = None,
61639
+ max_stream_duration: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs']] = None,
60461
61640
  request_mirror_policy: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs']] = None,
60462
61641
  retry_policy: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionRetryPolicyArgs']] = None,
60463
61642
  timeout: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionTimeoutArgs']] = None,
@@ -60475,6 +61654,12 @@ class URLMapPathMatcherPathRuleRouteActionArgs:
60475
61654
  Loadbalancer for a percentage of requests. timeout and retry_policy will be
60476
61655
  ignored by clients that are configured with a fault_injection_policy.
60477
61656
  Structure is documented below.
61657
+ :param pulumi.Input['URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs'] max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
61658
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
61659
+ has been fully processed (known as end-of-stream), the duration in this field
61660
+ is computed from the beginning of the stream until the response has been processed,
61661
+ including all retries. A stream that does not complete in this duration is closed.
61662
+ Structure is documented below.
60478
61663
  :param pulumi.Input['URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs'] request_mirror_policy: Specifies the policy on how requests intended for the route's backends are
60479
61664
  shadowed to a separate mirrored backend service. Loadbalancer does not wait for
60480
61665
  responses from the shadow service. Prior to sending traffic to the shadow
@@ -60504,6 +61689,8 @@ class URLMapPathMatcherPathRuleRouteActionArgs:
60504
61689
  pulumi.set(__self__, "cors_policy", cors_policy)
60505
61690
  if fault_injection_policy is not None:
60506
61691
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
61692
+ if max_stream_duration is not None:
61693
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
60507
61694
  if request_mirror_policy is not None:
60508
61695
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
60509
61696
  if retry_policy is not None:
@@ -60548,6 +61735,23 @@ class URLMapPathMatcherPathRuleRouteActionArgs:
60548
61735
  def fault_injection_policy(self, value: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyArgs']]):
60549
61736
  pulumi.set(self, "fault_injection_policy", value)
60550
61737
 
61738
+ @property
61739
+ @pulumi.getter(name="maxStreamDuration")
61740
+ def max_stream_duration(self) -> Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs']]:
61741
+ """
61742
+ Specifies the maximum duration (timeout) for streams on the selected route.
61743
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
61744
+ has been fully processed (known as end-of-stream), the duration in this field
61745
+ is computed from the beginning of the stream until the response has been processed,
61746
+ including all retries. A stream that does not complete in this duration is closed.
61747
+ Structure is documented below.
61748
+ """
61749
+ return pulumi.get(self, "max_stream_duration")
61750
+
61751
+ @max_stream_duration.setter
61752
+ def max_stream_duration(self, value: Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs']]):
61753
+ pulumi.set(self, "max_stream_duration", value)
61754
+
60551
61755
  @property
60552
61756
  @pulumi.getter(name="requestMirrorPolicy")
60553
61757
  def request_mirror_policy(self) -> Optional[pulumi.Input['URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgs']]:
@@ -61041,6 +62245,63 @@ class URLMapPathMatcherPathRuleRouteActionFaultInjectionPolicyDelayFixedDelayArg
61041
62245
  pulumi.set(self, "nanos", value)
61042
62246
 
61043
62247
 
62248
+ if not MYPY:
62249
+ class URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgsDict(TypedDict):
62250
+ seconds: pulumi.Input[str]
62251
+ """
62252
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
62253
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
62254
+ """
62255
+ nanos: NotRequired[pulumi.Input[int]]
62256
+ """
62257
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
62258
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
62259
+ """
62260
+ elif False:
62261
+ URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgsDict: TypeAlias = Mapping[str, Any]
62262
+
62263
+ @pulumi.input_type
62264
+ class URLMapPathMatcherPathRuleRouteActionMaxStreamDurationArgs:
62265
+ def __init__(__self__, *,
62266
+ seconds: pulumi.Input[str],
62267
+ nanos: Optional[pulumi.Input[int]] = None):
62268
+ """
62269
+ :param pulumi.Input[str] seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
62270
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
62271
+ :param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
62272
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
62273
+ """
62274
+ pulumi.set(__self__, "seconds", seconds)
62275
+ if nanos is not None:
62276
+ pulumi.set(__self__, "nanos", nanos)
62277
+
62278
+ @property
62279
+ @pulumi.getter
62280
+ def seconds(self) -> pulumi.Input[str]:
62281
+ """
62282
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
62283
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
62284
+ """
62285
+ return pulumi.get(self, "seconds")
62286
+
62287
+ @seconds.setter
62288
+ def seconds(self, value: pulumi.Input[str]):
62289
+ pulumi.set(self, "seconds", value)
62290
+
62291
+ @property
62292
+ @pulumi.getter
62293
+ def nanos(self) -> Optional[pulumi.Input[int]]:
62294
+ """
62295
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
62296
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
62297
+ """
62298
+ return pulumi.get(self, "nanos")
62299
+
62300
+ @nanos.setter
62301
+ def nanos(self, value: Optional[pulumi.Input[int]]):
62302
+ pulumi.set(self, "nanos", value)
62303
+
62304
+
61044
62305
  if not MYPY:
61045
62306
  class URLMapPathMatcherPathRuleRouteActionRequestMirrorPolicyArgsDict(TypedDict):
61046
62307
  backend_service: pulumi.Input[str]
@@ -63203,6 +64464,15 @@ if not MYPY:
63203
64464
  ignored by clients that are configured with a fault_injection_policy.
63204
64465
  Structure is documented below.
63205
64466
  """
64467
+ max_stream_duration: NotRequired[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgsDict']]
64468
+ """
64469
+ Specifies the maximum duration (timeout) for streams on the selected route.
64470
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
64471
+ has been fully processed (known as end-of-stream), the duration in this field
64472
+ is computed from the beginning of the stream until the response has been processed,
64473
+ including all retries. A stream that does not complete in this duration is closed.
64474
+ Structure is documented below.
64475
+ """
63206
64476
  request_mirror_policy: NotRequired[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgsDict']]
63207
64477
  """
63208
64478
  Specifies the policy on how requests intended for the route's backends are
@@ -63250,6 +64520,7 @@ class URLMapPathMatcherRouteRuleRouteActionArgs:
63250
64520
  def __init__(__self__, *,
63251
64521
  cors_policy: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionCorsPolicyArgs']] = None,
63252
64522
  fault_injection_policy: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs']] = None,
64523
+ max_stream_duration: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs']] = None,
63253
64524
  request_mirror_policy: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs']] = None,
63254
64525
  retry_policy: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionRetryPolicyArgs']] = None,
63255
64526
  timeout: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionTimeoutArgs']] = None,
@@ -63267,6 +64538,12 @@ class URLMapPathMatcherRouteRuleRouteActionArgs:
63267
64538
  Loadbalancer for a percentage of requests. timeout and retry_policy will be
63268
64539
  ignored by clients that are configured with a fault_injection_policy.
63269
64540
  Structure is documented below.
64541
+ :param pulumi.Input['URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs'] max_stream_duration: Specifies the maximum duration (timeout) for streams on the selected route.
64542
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
64543
+ has been fully processed (known as end-of-stream), the duration in this field
64544
+ is computed from the beginning of the stream until the response has been processed,
64545
+ including all retries. A stream that does not complete in this duration is closed.
64546
+ Structure is documented below.
63270
64547
  :param pulumi.Input['URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs'] request_mirror_policy: Specifies the policy on how requests intended for the route's backends are
63271
64548
  shadowed to a separate mirrored backend service. Loadbalancer does not wait for
63272
64549
  responses from the shadow service. Prior to sending traffic to the shadow
@@ -63296,6 +64573,8 @@ class URLMapPathMatcherRouteRuleRouteActionArgs:
63296
64573
  pulumi.set(__self__, "cors_policy", cors_policy)
63297
64574
  if fault_injection_policy is not None:
63298
64575
  pulumi.set(__self__, "fault_injection_policy", fault_injection_policy)
64576
+ if max_stream_duration is not None:
64577
+ pulumi.set(__self__, "max_stream_duration", max_stream_duration)
63299
64578
  if request_mirror_policy is not None:
63300
64579
  pulumi.set(__self__, "request_mirror_policy", request_mirror_policy)
63301
64580
  if retry_policy is not None:
@@ -63340,6 +64619,23 @@ class URLMapPathMatcherRouteRuleRouteActionArgs:
63340
64619
  def fault_injection_policy(self, value: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyArgs']]):
63341
64620
  pulumi.set(self, "fault_injection_policy", value)
63342
64621
 
64622
+ @property
64623
+ @pulumi.getter(name="maxStreamDuration")
64624
+ def max_stream_duration(self) -> Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs']]:
64625
+ """
64626
+ Specifies the maximum duration (timeout) for streams on the selected route.
64627
+ Unlike the `Timeout` field where the timeout duration starts from the time the request
64628
+ has been fully processed (known as end-of-stream), the duration in this field
64629
+ is computed from the beginning of the stream until the response has been processed,
64630
+ including all retries. A stream that does not complete in this duration is closed.
64631
+ Structure is documented below.
64632
+ """
64633
+ return pulumi.get(self, "max_stream_duration")
64634
+
64635
+ @max_stream_duration.setter
64636
+ def max_stream_duration(self, value: Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs']]):
64637
+ pulumi.set(self, "max_stream_duration", value)
64638
+
63343
64639
  @property
63344
64640
  @pulumi.getter(name="requestMirrorPolicy")
63345
64641
  def request_mirror_policy(self) -> Optional[pulumi.Input['URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgs']]:
@@ -63838,6 +65134,63 @@ class URLMapPathMatcherRouteRuleRouteActionFaultInjectionPolicyDelayFixedDelayAr
63838
65134
  pulumi.set(self, "nanos", value)
63839
65135
 
63840
65136
 
65137
+ if not MYPY:
65138
+ class URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgsDict(TypedDict):
65139
+ seconds: pulumi.Input[str]
65140
+ """
65141
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
65142
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
65143
+ """
65144
+ nanos: NotRequired[pulumi.Input[int]]
65145
+ """
65146
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
65147
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
65148
+ """
65149
+ elif False:
65150
+ URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgsDict: TypeAlias = Mapping[str, Any]
65151
+
65152
+ @pulumi.input_type
65153
+ class URLMapPathMatcherRouteRuleRouteActionMaxStreamDurationArgs:
65154
+ def __init__(__self__, *,
65155
+ seconds: pulumi.Input[str],
65156
+ nanos: Optional[pulumi.Input[int]] = None):
65157
+ """
65158
+ :param pulumi.Input[str] seconds: Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
65159
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
65160
+ :param pulumi.Input[int] nanos: Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
65161
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
65162
+ """
65163
+ pulumi.set(__self__, "seconds", seconds)
65164
+ if nanos is not None:
65165
+ pulumi.set(__self__, "nanos", nanos)
65166
+
65167
+ @property
65168
+ @pulumi.getter
65169
+ def seconds(self) -> pulumi.Input[str]:
65170
+ """
65171
+ Span of time at a resolution of a second. Must be from 0 to 315,576,000,000 inclusive.
65172
+ Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
65173
+ """
65174
+ return pulumi.get(self, "seconds")
65175
+
65176
+ @seconds.setter
65177
+ def seconds(self, value: pulumi.Input[str]):
65178
+ pulumi.set(self, "seconds", value)
65179
+
65180
+ @property
65181
+ @pulumi.getter
65182
+ def nanos(self) -> Optional[pulumi.Input[int]]:
65183
+ """
65184
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented
65185
+ with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
65186
+ """
65187
+ return pulumi.get(self, "nanos")
65188
+
65189
+ @nanos.setter
65190
+ def nanos(self, value: Optional[pulumi.Input[int]]):
65191
+ pulumi.set(self, "nanos", value)
65192
+
65193
+
63841
65194
  if not MYPY:
63842
65195
  class URLMapPathMatcherRouteRuleRouteActionRequestMirrorPolicyArgsDict(TypedDict):
63843
65196
  backend_service: pulumi.Input[str]