pulumi-gcp 8.9.0a1731221331__py3-none-any.whl → 8.9.0a1731432418__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 (114) hide show
  1. pulumi_gcp/__init__.py +64 -0
  2. pulumi_gcp/activedirectory/domain.py +24 -0
  3. pulumi_gcp/apigee/__init__.py +1 -0
  4. pulumi_gcp/apigee/_inputs.py +74 -0
  5. pulumi_gcp/apigee/api.py +456 -0
  6. pulumi_gcp/apigee/outputs.py +65 -0
  7. pulumi_gcp/applicationintegration/auth_config.py +24 -0
  8. pulumi_gcp/backupdisasterrecovery/__init__.py +4 -0
  9. pulumi_gcp/backupdisasterrecovery/_inputs.py +533 -0
  10. pulumi_gcp/backupdisasterrecovery/backup_plan.py +653 -0
  11. pulumi_gcp/backupdisasterrecovery/backup_plan_association.py +766 -0
  12. pulumi_gcp/backupdisasterrecovery/backup_vault.py +146 -6
  13. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +204 -0
  14. pulumi_gcp/backupdisasterrecovery/get_backup_plan_association.py +243 -0
  15. pulumi_gcp/backupdisasterrecovery/outputs.py +702 -0
  16. pulumi_gcp/bigquery/data_transfer_config.py +24 -0
  17. pulumi_gcp/cloudrunv2/_inputs.py +46 -0
  18. pulumi_gcp/cloudrunv2/job.py +0 -2
  19. pulumi_gcp/cloudrunv2/outputs.py +60 -2
  20. pulumi_gcp/cloudrunv2/service.py +0 -2
  21. pulumi_gcp/compute/__init__.py +1 -0
  22. pulumi_gcp/compute/_inputs.py +2163 -256
  23. pulumi_gcp/compute/disk.py +7 -7
  24. pulumi_gcp/compute/firewall_policy_rule.py +108 -54
  25. pulumi_gcp/compute/get_region_instance_group_manager.py +12 -1
  26. pulumi_gcp/compute/health_check.py +42 -42
  27. pulumi_gcp/compute/network_firewall_policy_rule.py +4 -4
  28. pulumi_gcp/compute/network_firewall_policy_with_rules.py +10 -10
  29. pulumi_gcp/compute/node_template.py +95 -0
  30. pulumi_gcp/compute/outputs.py +1639 -213
  31. pulumi_gcp/compute/region_disk.py +7 -7
  32. pulumi_gcp/compute/region_health_check.py +42 -42
  33. pulumi_gcp/compute/region_instance_group_manager.py +54 -14
  34. pulumi_gcp/compute/region_network_firewall_policy_rule.py +4 -4
  35. pulumi_gcp/compute/region_network_firewall_policy_with_rules.py +10 -10
  36. pulumi_gcp/compute/region_resize_request.py +772 -0
  37. pulumi_gcp/compute/region_security_policy.py +120 -0
  38. pulumi_gcp/compute/region_security_policy_rule.py +6 -6
  39. pulumi_gcp/compute/router_peer.py +56 -35
  40. pulumi_gcp/compute/security_scan_config.py +8 -8
  41. pulumi_gcp/config/__init__.pyi +4 -0
  42. pulumi_gcp/config/vars.py +8 -0
  43. pulumi_gcp/container/_inputs.py +345 -10
  44. pulumi_gcp/container/cluster.py +101 -0
  45. pulumi_gcp/container/get_cluster.py +23 -1
  46. pulumi_gcp/container/outputs.py +456 -8
  47. pulumi_gcp/dataloss/prevention_discovery_config.py +7 -7
  48. pulumi_gcp/dataproc/__init__.py +2 -0
  49. pulumi_gcp/dataproc/_inputs.py +101 -0
  50. pulumi_gcp/dataproc/gdc_application_environment.py +931 -0
  51. pulumi_gcp/dataproc/gdc_service_instance.py +1022 -0
  52. pulumi_gcp/dataproc/outputs.py +94 -0
  53. pulumi_gcp/edgecontainer/vpn_connection.py +4 -4
  54. pulumi_gcp/firebase/android_app.py +2 -2
  55. pulumi_gcp/firebase/apple_app.py +2 -2
  56. pulumi_gcp/firebase/web_app.py +2 -2
  57. pulumi_gcp/firestore/index.py +44 -0
  58. pulumi_gcp/gkeonprem/_inputs.py +15 -15
  59. pulumi_gcp/gkeonprem/outputs.py +10 -10
  60. pulumi_gcp/healthcare/dataset.py +7 -7
  61. pulumi_gcp/healthcare/dicom_store.py +7 -7
  62. pulumi_gcp/healthcare/fhir_store.py +7 -7
  63. pulumi_gcp/healthcare/hl7_store.py +14 -14
  64. pulumi_gcp/iam/__init__.py +1 -0
  65. pulumi_gcp/iam/_inputs.py +161 -0
  66. pulumi_gcp/iam/outputs.py +114 -0
  67. pulumi_gcp/iam/principal_access_boundary_policy.py +679 -0
  68. pulumi_gcp/logging/metric.py +2 -2
  69. pulumi_gcp/looker/_inputs.py +6 -0
  70. pulumi_gcp/looker/instance.py +169 -321
  71. pulumi_gcp/looker/outputs.py +4 -0
  72. pulumi_gcp/memorystore/instance.py +4 -0
  73. pulumi_gcp/monitoring/alert_policy.py +24 -0
  74. pulumi_gcp/monitoring/custom_service.py +24 -0
  75. pulumi_gcp/monitoring/group.py +24 -0
  76. pulumi_gcp/monitoring/metric_descriptor.py +24 -0
  77. pulumi_gcp/monitoring/slo.py +24 -0
  78. pulumi_gcp/monitoring/uptime_check_config.py +24 -0
  79. pulumi_gcp/networkmanagement/__init__.py +1 -0
  80. pulumi_gcp/networkmanagement/vpc_flow_logs_config.py +1358 -0
  81. pulumi_gcp/osconfig/patch_deployment.py +8 -8
  82. pulumi_gcp/provider.py +40 -0
  83. pulumi_gcp/pulumi-plugin.json +1 -1
  84. pulumi_gcp/redis/_inputs.py +3 -3
  85. pulumi_gcp/redis/outputs.py +2 -2
  86. pulumi_gcp/securitycenter/notification_config.py +4 -16
  87. pulumi_gcp/securitycenter/project_notification_config.py +0 -24
  88. pulumi_gcp/securitycenter/v2_organization_notification_config.py +4 -16
  89. pulumi_gcp/spanner/__init__.py +1 -0
  90. pulumi_gcp/spanner/_inputs.py +9 -9
  91. pulumi_gcp/spanner/get_database.py +229 -0
  92. pulumi_gcp/spanner/get_instance.py +12 -1
  93. pulumi_gcp/spanner/instance.py +70 -0
  94. pulumi_gcp/spanner/outputs.py +46 -12
  95. pulumi_gcp/sql/_inputs.py +26 -0
  96. pulumi_gcp/sql/database_instance.py +124 -11
  97. pulumi_gcp/sql/get_database_instance.py +12 -1
  98. pulumi_gcp/sql/outputs.py +51 -0
  99. pulumi_gcp/storage/_inputs.py +3 -3
  100. pulumi_gcp/storage/outputs.py +2 -2
  101. pulumi_gcp/tags/tag_binding.py +4 -4
  102. pulumi_gcp/tags/tag_value.py +2 -2
  103. pulumi_gcp/transcoder/job.py +24 -0
  104. pulumi_gcp/vertex/_inputs.py +184 -0
  105. pulumi_gcp/vertex/ai_endpoint.py +394 -8
  106. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  107. pulumi_gcp/vertex/outputs.py +166 -0
  108. pulumi_gcp/workbench/instance.py +21 -7
  109. pulumi_gcp/workflows/workflow.py +36 -0
  110. pulumi_gcp/workstations/workstation_config.py +8 -8
  111. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/METADATA +1 -1
  112. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/RECORD +114 -103
  113. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/WHEEL +1 -1
  114. {pulumi_gcp-8.9.0a1731221331.dist-info → pulumi_gcp-8.9.0a1731432418.dist-info}/top_level.txt +0 -0
@@ -445,6 +445,8 @@ __all__ = [
445
445
  'NodeGroupShareSettingsProjectMapArgsDict',
446
446
  'NodeTemplateAcceleratorArgs',
447
447
  'NodeTemplateAcceleratorArgsDict',
448
+ 'NodeTemplateDiskArgs',
449
+ 'NodeTemplateDiskArgsDict',
448
450
  'NodeTemplateNodeTypeFlexibilityArgs',
449
451
  'NodeTemplateNodeTypeFlexibilityArgsDict',
450
452
  'NodeTemplateServerBindingArgs',
@@ -573,6 +575,10 @@ __all__ = [
573
575
  'RegionInstanceGroupManagerAllInstancesConfigArgsDict',
574
576
  'RegionInstanceGroupManagerAutoHealingPoliciesArgs',
575
577
  'RegionInstanceGroupManagerAutoHealingPoliciesArgsDict',
578
+ 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs',
579
+ 'RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict',
580
+ 'RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs',
581
+ 'RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict',
576
582
  'RegionInstanceGroupManagerInstanceLifecyclePolicyArgs',
577
583
  'RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict',
578
584
  'RegionInstanceGroupManagerNamedPortArgs',
@@ -693,8 +699,48 @@ __all__ = [
693
699
  'RegionPerInstanceConfigPreservedStateInternalIpArgsDict',
694
700
  'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs',
695
701
  'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgsDict',
702
+ 'RegionResizeRequestRequestedRunDurationArgs',
703
+ 'RegionResizeRequestRequestedRunDurationArgsDict',
704
+ 'RegionResizeRequestStatusArgs',
705
+ 'RegionResizeRequestStatusArgsDict',
706
+ 'RegionResizeRequestStatusErrorArgs',
707
+ 'RegionResizeRequestStatusErrorArgsDict',
708
+ 'RegionResizeRequestStatusErrorErrorArgs',
709
+ 'RegionResizeRequestStatusErrorErrorArgsDict',
710
+ 'RegionResizeRequestStatusErrorErrorErrorDetailArgs',
711
+ 'RegionResizeRequestStatusErrorErrorErrorDetailArgsDict',
712
+ 'RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs',
713
+ 'RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict',
714
+ 'RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs',
715
+ 'RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict',
716
+ 'RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs',
717
+ 'RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict',
718
+ 'RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs',
719
+ 'RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict',
720
+ 'RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs',
721
+ 'RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict',
722
+ 'RegionResizeRequestStatusLastAttemptArgs',
723
+ 'RegionResizeRequestStatusLastAttemptArgsDict',
724
+ 'RegionResizeRequestStatusLastAttemptErrorArgs',
725
+ 'RegionResizeRequestStatusLastAttemptErrorArgsDict',
726
+ 'RegionResizeRequestStatusLastAttemptErrorErrorArgs',
727
+ 'RegionResizeRequestStatusLastAttemptErrorErrorArgsDict',
728
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs',
729
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict',
730
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs',
731
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict',
732
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs',
733
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict',
734
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs',
735
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict',
736
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs',
737
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict',
738
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs',
739
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict',
696
740
  'RegionSecurityPolicyDdosProtectionConfigArgs',
697
741
  'RegionSecurityPolicyDdosProtectionConfigArgsDict',
742
+ 'RegionSecurityPolicyRuleArgs',
743
+ 'RegionSecurityPolicyRuleArgsDict',
698
744
  'RegionSecurityPolicyRuleMatchArgs',
699
745
  'RegionSecurityPolicyRuleMatchArgsDict',
700
746
  'RegionSecurityPolicyRuleMatchConfigArgs',
@@ -1890,7 +1936,7 @@ if not MYPY:
1890
1936
  class AutoscalerAutoscalingPolicyScaleDownControlArgsDict(TypedDict):
1891
1937
  max_scaled_down_replicas: NotRequired[pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgsDict']]
1892
1938
  """
1893
- A nested object resource
1939
+ A nested object resource.
1894
1940
  Structure is documented below.
1895
1941
  """
1896
1942
  time_window_sec: NotRequired[pulumi.Input[int]]
@@ -1907,7 +1953,7 @@ class AutoscalerAutoscalingPolicyScaleDownControlArgs:
1907
1953
  max_scaled_down_replicas: Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']] = None,
1908
1954
  time_window_sec: Optional[pulumi.Input[int]] = None):
1909
1955
  """
1910
- :param pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource
1956
+ :param pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource.
1911
1957
  Structure is documented below.
1912
1958
  :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations
1913
1959
  to include directives regarding slower scale down, as described above.
@@ -1921,7 +1967,7 @@ class AutoscalerAutoscalingPolicyScaleDownControlArgs:
1921
1967
  @pulumi.getter(name="maxScaledDownReplicas")
1922
1968
  def max_scaled_down_replicas(self) -> Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']]:
1923
1969
  """
1924
- A nested object resource
1970
+ A nested object resource.
1925
1971
  Structure is documented below.
1926
1972
  """
1927
1973
  return pulumi.get(self, "max_scaled_down_replicas")
@@ -2006,7 +2052,7 @@ if not MYPY:
2006
2052
  class AutoscalerAutoscalingPolicyScaleInControlArgsDict(TypedDict):
2007
2053
  max_scaled_in_replicas: NotRequired[pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgsDict']]
2008
2054
  """
2009
- A nested object resource
2055
+ A nested object resource.
2010
2056
  Structure is documented below.
2011
2057
  """
2012
2058
  time_window_sec: NotRequired[pulumi.Input[int]]
@@ -2023,7 +2069,7 @@ class AutoscalerAutoscalingPolicyScaleInControlArgs:
2023
2069
  max_scaled_in_replicas: Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']] = None,
2024
2070
  time_window_sec: Optional[pulumi.Input[int]] = None):
2025
2071
  """
2026
- :param pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource
2072
+ :param pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource.
2027
2073
  Structure is documented below.
2028
2074
  :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations
2029
2075
  to include directives regarding slower scale down, as described above.
@@ -2037,7 +2083,7 @@ class AutoscalerAutoscalingPolicyScaleInControlArgs:
2037
2083
  @pulumi.getter(name="maxScaledInReplicas")
2038
2084
  def max_scaled_in_replicas(self) -> Optional[pulumi.Input['AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']]:
2039
2085
  """
2040
- A nested object resource
2086
+ A nested object resource.
2041
2087
  Structure is documented below.
2042
2088
  """
2043
2089
  return pulumi.get(self, "max_scaled_in_replicas")
@@ -6361,48 +6407,50 @@ if not MYPY:
6361
6407
  layer4_configs: pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleMatchLayer4ConfigArgsDict']]]
6362
6408
  """
6363
6409
  Pairs of IP protocols and ports that the rule should match.
6410
+ Structure is documented below.
6364
6411
  """
6365
6412
  dest_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6366
6413
  """
6367
- Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
6414
+ Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.
6368
6415
  """
6369
6416
  dest_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6370
6417
  """
6371
- Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
6418
+ Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.
6372
6419
  """
6373
6420
  dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6374
6421
  """
6375
- CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256.
6422
+ CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
6376
6423
  """
6377
6424
  dest_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6378
6425
  """
6379
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
6426
+ Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000.
6380
6427
  """
6381
6428
  dest_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6382
6429
  """
6383
- Name of the Google Cloud Threat Intelligence list.
6430
+ Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.
6384
6431
  """
6385
6432
  src_address_groups: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6386
6433
  """
6387
- Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
6434
+ Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.
6388
6435
  """
6389
6436
  src_fqdns: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6390
6437
  """
6391
- Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
6438
+ Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.
6392
6439
  """
6393
6440
  src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6394
6441
  """
6395
- CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
6442
+ CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
6396
6443
  """
6397
6444
  src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6398
6445
  """
6399
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
6446
+ Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000.
6400
6447
  """
6401
6448
  src_threat_intelligences: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6402
6449
  """
6403
- Name of the Google Cloud Threat Intelligence list.
6450
+ Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.
6451
+
6404
6452
 
6405
- The `layer4_configs` block supports:
6453
+ <a name="nested_layer4_configs"></a>The `layer4_configs` block supports:
6406
6454
  """
6407
6455
  elif False:
6408
6456
  FirewallPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
@@ -6423,18 +6471,20 @@ class FirewallPolicyRuleMatchArgs:
6423
6471
  src_threat_intelligences: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
6424
6472
  """
6425
6473
  :param pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleMatchLayer4ConfigArgs']]] layer4_configs: Pairs of IP protocols and ports that the rule should match.
6426
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
6427
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
6428
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256.
6429
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
6430
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
6431
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
6432
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
6433
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
6434
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
6435
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
6474
+ Structure is documented below.
6475
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.
6476
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.
6477
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
6478
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_region_codes: Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000.
6479
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.
6480
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.
6481
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.
6482
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
6483
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000.
6484
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.
6436
6485
 
6437
- The `layer4_configs` block supports:
6486
+
6487
+ <a name="nested_layer4_configs"></a>The `layer4_configs` block supports:
6438
6488
  """
6439
6489
  pulumi.set(__self__, "layer4_configs", layer4_configs)
6440
6490
  if dest_address_groups is not None:
@@ -6463,6 +6513,7 @@ class FirewallPolicyRuleMatchArgs:
6463
6513
  def layer4_configs(self) -> pulumi.Input[Sequence[pulumi.Input['FirewallPolicyRuleMatchLayer4ConfigArgs']]]:
6464
6514
  """
6465
6515
  Pairs of IP protocols and ports that the rule should match.
6516
+ Structure is documented below.
6466
6517
  """
6467
6518
  return pulumi.get(self, "layer4_configs")
6468
6519
 
@@ -6474,7 +6525,7 @@ class FirewallPolicyRuleMatchArgs:
6474
6525
  @pulumi.getter(name="destAddressGroups")
6475
6526
  def dest_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6476
6527
  """
6477
- Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10. Destination address groups is only supported in Egress rules.
6528
+ Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.
6478
6529
  """
6479
6530
  return pulumi.get(self, "dest_address_groups")
6480
6531
 
@@ -6486,7 +6537,7 @@ class FirewallPolicyRuleMatchArgs:
6486
6537
  @pulumi.getter(name="destFqdns")
6487
6538
  def dest_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6488
6539
  """
6489
- Domain names that will be used to match against the resolved domain name of destination of traffic. Can only be specified if DIRECTION is egress.
6540
+ Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.
6490
6541
  """
6491
6542
  return pulumi.get(self, "dest_fqdns")
6492
6543
 
@@ -6498,7 +6549,7 @@ class FirewallPolicyRuleMatchArgs:
6498
6549
  @pulumi.getter(name="destIpRanges")
6499
6550
  def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6500
6551
  """
6501
- CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256.
6552
+ CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
6502
6553
  """
6503
6554
  return pulumi.get(self, "dest_ip_ranges")
6504
6555
 
@@ -6510,7 +6561,7 @@ class FirewallPolicyRuleMatchArgs:
6510
6561
  @pulumi.getter(name="destRegionCodes")
6511
6562
  def dest_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6512
6563
  """
6513
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is egress.
6564
+ Region codes whose IP addresses will be used to match for destination of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of dest region codes allowed is 5000.
6514
6565
  """
6515
6566
  return pulumi.get(self, "dest_region_codes")
6516
6567
 
@@ -6522,7 +6573,7 @@ class FirewallPolicyRuleMatchArgs:
6522
6573
  @pulumi.getter(name="destThreatIntelligences")
6523
6574
  def dest_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6524
6575
  """
6525
- Name of the Google Cloud Threat Intelligence list.
6576
+ Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.
6526
6577
  """
6527
6578
  return pulumi.get(self, "dest_threat_intelligences")
6528
6579
 
@@ -6534,7 +6585,7 @@ class FirewallPolicyRuleMatchArgs:
6534
6585
  @pulumi.getter(name="srcAddressGroups")
6535
6586
  def src_address_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6536
6587
  """
6537
- Address groups which should be matched against the traffic source. Maximum number of source address groups is 10. Source address groups is only supported in Ingress rules.
6588
+ Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.
6538
6589
  """
6539
6590
  return pulumi.get(self, "src_address_groups")
6540
6591
 
@@ -6546,7 +6597,7 @@ class FirewallPolicyRuleMatchArgs:
6546
6597
  @pulumi.getter(name="srcFqdns")
6547
6598
  def src_fqdns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6548
6599
  """
6549
- Domain names that will be used to match against the resolved domain name of source of traffic. Can only be specified if DIRECTION is ingress.
6600
+ Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.
6550
6601
  """
6551
6602
  return pulumi.get(self, "src_fqdns")
6552
6603
 
@@ -6558,7 +6609,7 @@ class FirewallPolicyRuleMatchArgs:
6558
6609
  @pulumi.getter(name="srcIpRanges")
6559
6610
  def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6560
6611
  """
6561
- CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
6612
+ CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
6562
6613
  """
6563
6614
  return pulumi.get(self, "src_ip_ranges")
6564
6615
 
@@ -6570,7 +6621,7 @@ class FirewallPolicyRuleMatchArgs:
6570
6621
  @pulumi.getter(name="srcRegionCodes")
6571
6622
  def src_region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6572
6623
  """
6573
- The Unicode country codes whose IP addresses will be used to match against the source of traffic. Can only be specified if DIRECTION is ingress.
6624
+ Region codes whose IP addresses will be used to match for source of traffic. Should be specified as 2 letter country code defined as per ISO 3166 alpha-2 country codes. ex."US" Maximum number of source region codes allowed is 5000.
6574
6625
  """
6575
6626
  return pulumi.get(self, "src_region_codes")
6576
6627
 
@@ -6582,9 +6633,10 @@ class FirewallPolicyRuleMatchArgs:
6582
6633
  @pulumi.getter(name="srcThreatIntelligences")
6583
6634
  def src_threat_intelligences(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6584
6635
  """
6585
- Name of the Google Cloud Threat Intelligence list.
6636
+ Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.
6637
+
6586
6638
 
6587
- The `layer4_configs` block supports:
6639
+ <a name="nested_layer4_configs"></a>The `layer4_configs` block supports:
6588
6640
  """
6589
6641
  return pulumi.get(self, "src_threat_intelligences")
6590
6642
 
@@ -6597,11 +6649,13 @@ if not MYPY:
6597
6649
  class FirewallPolicyRuleMatchLayer4ConfigArgsDict(TypedDict):
6598
6650
  ip_protocol: pulumi.Input[str]
6599
6651
  """
6600
- The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
6652
+ The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.
6653
+ This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.
6601
6654
  """
6602
6655
  ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
6603
6656
  """
6604
- An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
6657
+ An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port.
6658
+ Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
6605
6659
  """
6606
6660
  elif False:
6607
6661
  FirewallPolicyRuleMatchLayer4ConfigArgsDict: TypeAlias = Mapping[str, Any]
@@ -6612,8 +6666,10 @@ class FirewallPolicyRuleMatchLayer4ConfigArgs:
6612
6666
  ip_protocol: pulumi.Input[str],
6613
6667
  ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
6614
6668
  """
6615
- :param pulumi.Input[str] ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
6616
- :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
6669
+ :param pulumi.Input[str] ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.
6670
+ This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.
6671
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ports: An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port.
6672
+ Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
6617
6673
  """
6618
6674
  pulumi.set(__self__, "ip_protocol", ip_protocol)
6619
6675
  if ports is not None:
@@ -6623,7 +6679,8 @@ class FirewallPolicyRuleMatchLayer4ConfigArgs:
6623
6679
  @pulumi.getter(name="ipProtocol")
6624
6680
  def ip_protocol(self) -> pulumi.Input[str]:
6625
6681
  """
6626
- The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule. This value can either be one of the following well known protocol strings (`tcp`, `udp`, `icmp`, `esp`, `ah`, `ipip`, `sctp`), or the IP protocol number.
6682
+ The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.
6683
+ This value can either be one of the following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp), or the IP protocol number.
6627
6684
  """
6628
6685
  return pulumi.get(self, "ip_protocol")
6629
6686
 
@@ -6635,7 +6692,8 @@ class FirewallPolicyRuleMatchLayer4ConfigArgs:
6635
6692
  @pulumi.getter
6636
6693
  def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
6637
6694
  """
6638
- An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port. Example inputs include: ``.
6695
+ An optional list of ports to which this rule applies. This field is only applicable for UDP or TCP protocol. Each entry must be either an integer or a range. If not specified, this rule applies to connections through any port.
6696
+ Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
6639
6697
  """
6640
6698
  return pulumi.get(self, "ports")
6641
6699
 
@@ -23971,6 +24029,78 @@ class NodeTemplateAcceleratorArgs:
23971
24029
  pulumi.set(self, "accelerator_type", value)
23972
24030
 
23973
24031
 
24032
+ if not MYPY:
24033
+ class NodeTemplateDiskArgsDict(TypedDict):
24034
+ disk_count: NotRequired[pulumi.Input[int]]
24035
+ """
24036
+ Specifies the number of such disks.
24037
+ """
24038
+ disk_size_gb: NotRequired[pulumi.Input[int]]
24039
+ """
24040
+ Specifies the size of the disk in base-2 GB.
24041
+ """
24042
+ disk_type: NotRequired[pulumi.Input[str]]
24043
+ """
24044
+ Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL.
24045
+ """
24046
+ elif False:
24047
+ NodeTemplateDiskArgsDict: TypeAlias = Mapping[str, Any]
24048
+
24049
+ @pulumi.input_type
24050
+ class NodeTemplateDiskArgs:
24051
+ def __init__(__self__, *,
24052
+ disk_count: Optional[pulumi.Input[int]] = None,
24053
+ disk_size_gb: Optional[pulumi.Input[int]] = None,
24054
+ disk_type: Optional[pulumi.Input[str]] = None):
24055
+ """
24056
+ :param pulumi.Input[int] disk_count: Specifies the number of such disks.
24057
+ :param pulumi.Input[int] disk_size_gb: Specifies the size of the disk in base-2 GB.
24058
+ :param pulumi.Input[str] disk_type: Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL.
24059
+ """
24060
+ if disk_count is not None:
24061
+ pulumi.set(__self__, "disk_count", disk_count)
24062
+ if disk_size_gb is not None:
24063
+ pulumi.set(__self__, "disk_size_gb", disk_size_gb)
24064
+ if disk_type is not None:
24065
+ pulumi.set(__self__, "disk_type", disk_type)
24066
+
24067
+ @property
24068
+ @pulumi.getter(name="diskCount")
24069
+ def disk_count(self) -> Optional[pulumi.Input[int]]:
24070
+ """
24071
+ Specifies the number of such disks.
24072
+ """
24073
+ return pulumi.get(self, "disk_count")
24074
+
24075
+ @disk_count.setter
24076
+ def disk_count(self, value: Optional[pulumi.Input[int]]):
24077
+ pulumi.set(self, "disk_count", value)
24078
+
24079
+ @property
24080
+ @pulumi.getter(name="diskSizeGb")
24081
+ def disk_size_gb(self) -> Optional[pulumi.Input[int]]:
24082
+ """
24083
+ Specifies the size of the disk in base-2 GB.
24084
+ """
24085
+ return pulumi.get(self, "disk_size_gb")
24086
+
24087
+ @disk_size_gb.setter
24088
+ def disk_size_gb(self, value: Optional[pulumi.Input[int]]):
24089
+ pulumi.set(self, "disk_size_gb", value)
24090
+
24091
+ @property
24092
+ @pulumi.getter(name="diskType")
24093
+ def disk_type(self) -> Optional[pulumi.Input[str]]:
24094
+ """
24095
+ Specifies the desired disk type on the node. This disk type must be a local storage type (e.g.: local-ssd). Note that for nodeTemplates, this should be the name of the disk type and not its URL.
24096
+ """
24097
+ return pulumi.get(self, "disk_type")
24098
+
24099
+ @disk_type.setter
24100
+ def disk_type(self, value: Optional[pulumi.Input[str]]):
24101
+ pulumi.set(self, "disk_type", value)
24102
+
24103
+
23974
24104
  if not MYPY:
23975
24105
  class NodeTemplateNodeTypeFlexibilityArgsDict(TypedDict):
23976
24106
  cpus: NotRequired[pulumi.Input[str]]
@@ -25765,7 +25895,7 @@ if not MYPY:
25765
25895
  class RegionAutoscalerAutoscalingPolicyScaleDownControlArgsDict(TypedDict):
25766
25896
  max_scaled_down_replicas: NotRequired[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgsDict']]
25767
25897
  """
25768
- A nested object resource
25898
+ A nested object resource.
25769
25899
  Structure is documented below.
25770
25900
  """
25771
25901
  time_window_sec: NotRequired[pulumi.Input[int]]
@@ -25782,7 +25912,7 @@ class RegionAutoscalerAutoscalingPolicyScaleDownControlArgs:
25782
25912
  max_scaled_down_replicas: Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']] = None,
25783
25913
  time_window_sec: Optional[pulumi.Input[int]] = None):
25784
25914
  """
25785
- :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource
25915
+ :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs'] max_scaled_down_replicas: A nested object resource.
25786
25916
  Structure is documented below.
25787
25917
  :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations
25788
25918
  to include directives regarding slower scale down, as described above.
@@ -25796,7 +25926,7 @@ class RegionAutoscalerAutoscalingPolicyScaleDownControlArgs:
25796
25926
  @pulumi.getter(name="maxScaledDownReplicas")
25797
25927
  def max_scaled_down_replicas(self) -> Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs']]:
25798
25928
  """
25799
- A nested object resource
25929
+ A nested object resource.
25800
25930
  Structure is documented below.
25801
25931
  """
25802
25932
  return pulumi.get(self, "max_scaled_down_replicas")
@@ -25881,7 +26011,7 @@ if not MYPY:
25881
26011
  class RegionAutoscalerAutoscalingPolicyScaleInControlArgsDict(TypedDict):
25882
26012
  max_scaled_in_replicas: NotRequired[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgsDict']]
25883
26013
  """
25884
- A nested object resource
26014
+ A nested object resource.
25885
26015
  Structure is documented below.
25886
26016
  """
25887
26017
  time_window_sec: NotRequired[pulumi.Input[int]]
@@ -25898,7 +26028,7 @@ class RegionAutoscalerAutoscalingPolicyScaleInControlArgs:
25898
26028
  max_scaled_in_replicas: Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']] = None,
25899
26029
  time_window_sec: Optional[pulumi.Input[int]] = None):
25900
26030
  """
25901
- :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource
26031
+ :param pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs'] max_scaled_in_replicas: A nested object resource.
25902
26032
  Structure is documented below.
25903
26033
  :param pulumi.Input[int] time_window_sec: How long back autoscaling should look when computing recommendations
25904
26034
  to include directives regarding slower scale down, as described above.
@@ -25912,7 +26042,7 @@ class RegionAutoscalerAutoscalingPolicyScaleInControlArgs:
25912
26042
  @pulumi.getter(name="maxScaledInReplicas")
25913
26043
  def max_scaled_in_replicas(self) -> Optional[pulumi.Input['RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs']]:
25914
26044
  """
25915
- A nested object resource
26045
+ A nested object resource.
25916
26046
  Structure is documented below.
25917
26047
  """
25918
26048
  return pulumi.get(self, "max_scaled_in_replicas")
@@ -30357,13 +30487,11 @@ if not MYPY:
30357
30487
  class RegionInstanceGroupManagerAllInstancesConfigArgsDict(TypedDict):
30358
30488
  labels: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
30359
30489
  """
30360
- , The label key-value pairs that you want to patch onto the instance.
30361
-
30362
- - - -
30490
+ The label key-value pairs that you want to patch onto the instance,
30363
30491
  """
30364
30492
  metadata: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
30365
30493
  """
30366
- , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata).
30494
+ The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata,
30367
30495
  """
30368
30496
  elif False:
30369
30497
  RegionInstanceGroupManagerAllInstancesConfigArgsDict: TypeAlias = Mapping[str, Any]
@@ -30374,10 +30502,8 @@ class RegionInstanceGroupManagerAllInstancesConfigArgs:
30374
30502
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
30375
30503
  metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
30376
30504
  """
30377
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: , The label key-value pairs that you want to patch onto the instance.
30378
-
30379
- - - -
30380
- :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata).
30505
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: The label key-value pairs that you want to patch onto the instance,
30506
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadata: The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata,
30381
30507
  """
30382
30508
  if labels is not None:
30383
30509
  pulumi.set(__self__, "labels", labels)
@@ -30388,9 +30514,7 @@ class RegionInstanceGroupManagerAllInstancesConfigArgs:
30388
30514
  @pulumi.getter
30389
30515
  def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
30390
30516
  """
30391
- , The label key-value pairs that you want to patch onto the instance.
30392
-
30393
- - - -
30517
+ The label key-value pairs that you want to patch onto the instance,
30394
30518
  """
30395
30519
  return pulumi.get(self, "labels")
30396
30520
 
@@ -30402,7 +30526,7 @@ class RegionInstanceGroupManagerAllInstancesConfigArgs:
30402
30526
  @pulumi.getter
30403
30527
  def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
30404
30528
  """
30405
- , The metadata key-value pairs that you want to patch onto the instance. For more information, see [Project and instance metadata](https://cloud.google.com/compute/docs/metadata#project_and_instance_metadata).
30529
+ The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata,
30406
30530
  """
30407
30531
  return pulumi.get(self, "metadata")
30408
30532
 
@@ -30464,6 +30588,117 @@ class RegionInstanceGroupManagerAutoHealingPoliciesArgs:
30464
30588
  pulumi.set(self, "initial_delay_sec", value)
30465
30589
 
30466
30590
 
30591
+ if not MYPY:
30592
+ class RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict(TypedDict):
30593
+ instance_selections: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict']]]]
30594
+ """
30595
+ Named instance selections configuring properties that the group will use when creating new VMs.
30596
+ """
30597
+ elif False:
30598
+ RegionInstanceGroupManagerInstanceFlexibilityPolicyArgsDict: TypeAlias = Mapping[str, Any]
30599
+
30600
+ @pulumi.input_type
30601
+ class RegionInstanceGroupManagerInstanceFlexibilityPolicyArgs:
30602
+ def __init__(__self__, *,
30603
+ instance_selections: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]]] = None):
30604
+ """
30605
+ :param pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]] instance_selections: Named instance selections configuring properties that the group will use when creating new VMs.
30606
+ """
30607
+ if instance_selections is not None:
30608
+ pulumi.set(__self__, "instance_selections", instance_selections)
30609
+
30610
+ @property
30611
+ @pulumi.getter(name="instanceSelections")
30612
+ def instance_selections(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]]]:
30613
+ """
30614
+ Named instance selections configuring properties that the group will use when creating new VMs.
30615
+ """
30616
+ return pulumi.get(self, "instance_selections")
30617
+
30618
+ @instance_selections.setter
30619
+ def instance_selections(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs']]]]):
30620
+ pulumi.set(self, "instance_selections", value)
30621
+
30622
+
30623
+ if not MYPY:
30624
+ class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict(TypedDict):
30625
+ machine_types: pulumi.Input[Sequence[pulumi.Input[str]]]
30626
+ """
30627
+ Full machine-type names, e.g. "n1-standard-16"
30628
+ """
30629
+ name: pulumi.Input[str]
30630
+ """
30631
+ The name of the instance group manager. Must be 1-63
30632
+ characters long and comply with
30633
+ [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters
30634
+ include lowercase letters, numbers, and hyphens.
30635
+ """
30636
+ rank: NotRequired[pulumi.Input[int]]
30637
+ """
30638
+ Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference.
30639
+ """
30640
+ elif False:
30641
+ RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgsDict: TypeAlias = Mapping[str, Any]
30642
+
30643
+ @pulumi.input_type
30644
+ class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs:
30645
+ def __init__(__self__, *,
30646
+ machine_types: pulumi.Input[Sequence[pulumi.Input[str]]],
30647
+ name: pulumi.Input[str],
30648
+ rank: Optional[pulumi.Input[int]] = None):
30649
+ """
30650
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] machine_types: Full machine-type names, e.g. "n1-standard-16"
30651
+ :param pulumi.Input[str] name: The name of the instance group manager. Must be 1-63
30652
+ characters long and comply with
30653
+ [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters
30654
+ include lowercase letters, numbers, and hyphens.
30655
+ :param pulumi.Input[int] rank: Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference.
30656
+ """
30657
+ pulumi.set(__self__, "machine_types", machine_types)
30658
+ pulumi.set(__self__, "name", name)
30659
+ if rank is not None:
30660
+ pulumi.set(__self__, "rank", rank)
30661
+
30662
+ @property
30663
+ @pulumi.getter(name="machineTypes")
30664
+ def machine_types(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
30665
+ """
30666
+ Full machine-type names, e.g. "n1-standard-16"
30667
+ """
30668
+ return pulumi.get(self, "machine_types")
30669
+
30670
+ @machine_types.setter
30671
+ def machine_types(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
30672
+ pulumi.set(self, "machine_types", value)
30673
+
30674
+ @property
30675
+ @pulumi.getter
30676
+ def name(self) -> pulumi.Input[str]:
30677
+ """
30678
+ The name of the instance group manager. Must be 1-63
30679
+ characters long and comply with
30680
+ [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters
30681
+ include lowercase letters, numbers, and hyphens.
30682
+ """
30683
+ return pulumi.get(self, "name")
30684
+
30685
+ @name.setter
30686
+ def name(self, value: pulumi.Input[str]):
30687
+ pulumi.set(self, "name", value)
30688
+
30689
+ @property
30690
+ @pulumi.getter
30691
+ def rank(self) -> Optional[pulumi.Input[int]]:
30692
+ """
30693
+ Preference of this instance selection. Lower number means higher preference. MIG will first try to create a VM based on the machine-type with lowest rank and fallback to next rank based on availability. Machine types and instance selections with the same rank have the same preference.
30694
+ """
30695
+ return pulumi.get(self, "rank")
30696
+
30697
+ @rank.setter
30698
+ def rank(self, value: Optional[pulumi.Input[int]]):
30699
+ pulumi.set(self, "rank", value)
30700
+
30701
+
30467
30702
  if not MYPY:
30468
30703
  class RegionInstanceGroupManagerInstanceLifecyclePolicyArgsDict(TypedDict):
30469
30704
  default_action_on_failure: NotRequired[pulumi.Input[str]]
@@ -30471,6 +30706,7 @@ if not MYPY:
30471
30706
  , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired.
30472
30707
 
30473
30708
  - - -
30709
+ <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports:
30474
30710
  """
30475
30711
  force_update_on_repair: NotRequired[pulumi.Input[str]]
30476
30712
  """
@@ -30488,6 +30724,7 @@ class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs:
30488
30724
  :param pulumi.Input[str] default_action_on_failure: , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired.
30489
30725
 
30490
30726
  - - -
30727
+ <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports:
30491
30728
  :param pulumi.Input[str] force_update_on_repair: , Specifies whether to apply the group's latest configuration when repairing a VM. Valid options are: `YES`, `NO`. If `YES` and you updated the group's instance template or per-instance configurations after the VM was created, then these changes are applied when VM is repaired. If `NO` (default), then updates are applied in accordance with the group's update policy type.
30492
30729
  """
30493
30730
  if default_action_on_failure is not None:
@@ -30502,6 +30739,7 @@ class RegionInstanceGroupManagerInstanceLifecyclePolicyArgs:
30502
30739
  , Default behavior for all instance or health check failures. Valid options are: `REPAIR`, `DO_NOTHING`. If `DO_NOTHING` then instances will not be repaired. If `REPAIR` (default), then failed instances will be repaired.
30503
30740
 
30504
30741
  - - -
30742
+ <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports:
30505
30743
  """
30506
30744
  return pulumi.get(self, "default_action_on_failure")
30507
30745
 
@@ -36759,306 +36997,1975 @@ class RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs:
36759
36997
 
36760
36998
 
36761
36999
  if not MYPY:
36762
- class RegionSecurityPolicyDdosProtectionConfigArgsDict(TypedDict):
36763
- ddos_protection: pulumi.Input[str]
37000
+ class RegionResizeRequestRequestedRunDurationArgsDict(TypedDict):
37001
+ seconds: pulumi.Input[str]
36764
37002
  """
36765
- Google Cloud Armor offers the following options to help protect systems against DDoS attacks:
36766
- - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.
36767
- - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.
36768
- - ADVANCED_PREVIEW: flag to enable the security policy in preview mode.
36769
- Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`.
37003
+ Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly.
37004
+ """
37005
+ nanos: NotRequired[pulumi.Input[int]]
37006
+ """
37007
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
36770
37008
  """
36771
37009
  elif False:
36772
- RegionSecurityPolicyDdosProtectionConfigArgsDict: TypeAlias = Mapping[str, Any]
37010
+ RegionResizeRequestRequestedRunDurationArgsDict: TypeAlias = Mapping[str, Any]
36773
37011
 
36774
37012
  @pulumi.input_type
36775
- class RegionSecurityPolicyDdosProtectionConfigArgs:
37013
+ class RegionResizeRequestRequestedRunDurationArgs:
36776
37014
  def __init__(__self__, *,
36777
- ddos_protection: pulumi.Input[str]):
37015
+ seconds: pulumi.Input[str],
37016
+ nanos: Optional[pulumi.Input[int]] = None):
36778
37017
  """
36779
- :param pulumi.Input[str] ddos_protection: Google Cloud Armor offers the following options to help protect systems against DDoS attacks:
36780
- - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.
36781
- - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.
36782
- - ADVANCED_PREVIEW: flag to enable the security policy in preview mode.
36783
- Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`.
37018
+ :param pulumi.Input[str] seconds: Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly.
37019
+ :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 with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
36784
37020
  """
36785
- pulumi.set(__self__, "ddos_protection", ddos_protection)
37021
+ pulumi.set(__self__, "seconds", seconds)
37022
+ if nanos is not None:
37023
+ pulumi.set(__self__, "nanos", nanos)
36786
37024
 
36787
37025
  @property
36788
- @pulumi.getter(name="ddosProtection")
36789
- def ddos_protection(self) -> pulumi.Input[str]:
37026
+ @pulumi.getter
37027
+ def seconds(self) -> pulumi.Input[str]:
36790
37028
  """
36791
- Google Cloud Armor offers the following options to help protect systems against DDoS attacks:
36792
- - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.
36793
- - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.
36794
- - ADVANCED_PREVIEW: flag to enable the security policy in preview mode.
36795
- Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`.
37029
+ Span of time at a resolution of a second. Must be from 600 to 604800 inclusive. Note: minimum and maximum allowed range for requestedRunDuration is 10 minutes (600 seconds) and 7 days(604800 seconds) correspondingly.
36796
37030
  """
36797
- return pulumi.get(self, "ddos_protection")
37031
+ return pulumi.get(self, "seconds")
36798
37032
 
36799
- @ddos_protection.setter
36800
- def ddos_protection(self, value: pulumi.Input[str]):
36801
- pulumi.set(self, "ddos_protection", value)
37033
+ @seconds.setter
37034
+ def seconds(self, value: pulumi.Input[str]):
37035
+ pulumi.set(self, "seconds", value)
37036
+
37037
+ @property
37038
+ @pulumi.getter
37039
+ def nanos(self) -> Optional[pulumi.Input[int]]:
37040
+ """
37041
+ Span of time that's a fraction of a second at nanosecond resolution. Durations less than one second are represented with a 0 seconds field and a positive nanos field. Must be from 0 to 999,999,999 inclusive.
37042
+ """
37043
+ return pulumi.get(self, "nanos")
37044
+
37045
+ @nanos.setter
37046
+ def nanos(self, value: Optional[pulumi.Input[int]]):
37047
+ pulumi.set(self, "nanos", value)
36802
37048
 
36803
37049
 
36804
37050
  if not MYPY:
36805
- class RegionSecurityPolicyRuleMatchArgsDict(TypedDict):
36806
- config: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgsDict']]
37051
+ class RegionResizeRequestStatusArgsDict(TypedDict):
37052
+ errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgsDict']]]]
36807
37053
  """
36808
- The configuration options available when specifying versionedExpr.
36809
- This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
37054
+ (Output)
37055
+ Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
36810
37056
  Structure is documented below.
36811
37057
  """
36812
- expr: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgsDict']]
37058
+ last_attempts: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgsDict']]]]
36813
37059
  """
36814
- User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
37060
+ (Output)
37061
+ Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only.
36815
37062
  Structure is documented below.
36816
37063
  """
36817
- versioned_expr: NotRequired[pulumi.Input[str]]
36818
- """
36819
- Preconfigured versioned expression. If this field is specified, config must also be specified.
36820
- Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
36821
- Possible values are: `SRC_IPS_V1`.
36822
- """
36823
37064
  elif False:
36824
- RegionSecurityPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
37065
+ RegionResizeRequestStatusArgsDict: TypeAlias = Mapping[str, Any]
36825
37066
 
36826
37067
  @pulumi.input_type
36827
- class RegionSecurityPolicyRuleMatchArgs:
37068
+ class RegionResizeRequestStatusArgs:
36828
37069
  def __init__(__self__, *,
36829
- config: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']] = None,
36830
- expr: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']] = None,
36831
- versioned_expr: Optional[pulumi.Input[str]] = None):
37070
+ errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]]] = None,
37071
+ last_attempts: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]]] = None):
36832
37072
  """
36833
- :param pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs'] config: The configuration options available when specifying versionedExpr.
36834
- This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
37073
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]] errors: (Output)
37074
+ Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
36835
37075
  Structure is documented below.
36836
- :param pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs'] expr: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
37076
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]] last_attempts: (Output)
37077
+ Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only.
36837
37078
  Structure is documented below.
36838
- :param pulumi.Input[str] versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified.
36839
- Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
36840
- Possible values are: `SRC_IPS_V1`.
36841
37079
  """
36842
- if config is not None:
36843
- pulumi.set(__self__, "config", config)
36844
- if expr is not None:
36845
- pulumi.set(__self__, "expr", expr)
36846
- if versioned_expr is not None:
36847
- pulumi.set(__self__, "versioned_expr", versioned_expr)
37080
+ if errors is not None:
37081
+ pulumi.set(__self__, "errors", errors)
37082
+ if last_attempts is not None:
37083
+ pulumi.set(__self__, "last_attempts", last_attempts)
36848
37084
 
36849
37085
  @property
36850
37086
  @pulumi.getter
36851
- def config(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]:
37087
+ def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]]]:
36852
37088
  """
36853
- The configuration options available when specifying versionedExpr.
36854
- This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
37089
+ (Output)
37090
+ Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
36855
37091
  Structure is documented below.
36856
37092
  """
36857
- return pulumi.get(self, "config")
37093
+ return pulumi.get(self, "errors")
36858
37094
 
36859
- @config.setter
36860
- def config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]):
36861
- pulumi.set(self, "config", value)
37095
+ @errors.setter
37096
+ def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorArgs']]]]):
37097
+ pulumi.set(self, "errors", value)
36862
37098
 
36863
37099
  @property
36864
- @pulumi.getter
36865
- def expr(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]:
37100
+ @pulumi.getter(name="lastAttempts")
37101
+ def last_attempts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]]]:
36866
37102
  """
36867
- User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
37103
+ (Output)
37104
+ Information about the last attempt to fulfill the request. The value is temporary since the ResizeRequest can retry, as long as it's still active and the last attempt value can either be cleared or replaced with a different error. Since ResizeRequest retries infrequently, the value may be stale and no longer show an active problem. The value is cleared when ResizeRequest transitions to the final state (becomes inactive). If the final state is FAILED the error describing it will be storred in the "error" field only.
36868
37105
  Structure is documented below.
36869
37106
  """
36870
- return pulumi.get(self, "expr")
36871
-
36872
- @expr.setter
36873
- def expr(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]):
36874
- pulumi.set(self, "expr", value)
36875
-
36876
- @property
36877
- @pulumi.getter(name="versionedExpr")
36878
- def versioned_expr(self) -> Optional[pulumi.Input[str]]:
36879
- """
36880
- Preconfigured versioned expression. If this field is specified, config must also be specified.
36881
- Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
36882
- Possible values are: `SRC_IPS_V1`.
36883
- """
36884
- return pulumi.get(self, "versioned_expr")
37107
+ return pulumi.get(self, "last_attempts")
36885
37108
 
36886
- @versioned_expr.setter
36887
- def versioned_expr(self, value: Optional[pulumi.Input[str]]):
36888
- pulumi.set(self, "versioned_expr", value)
37109
+ @last_attempts.setter
37110
+ def last_attempts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptArgs']]]]):
37111
+ pulumi.set(self, "last_attempts", value)
36889
37112
 
36890
37113
 
36891
37114
  if not MYPY:
36892
- class RegionSecurityPolicyRuleMatchConfigArgsDict(TypedDict):
36893
- src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
37115
+ class RegionResizeRequestStatusErrorArgsDict(TypedDict):
37116
+ errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgsDict']]]]
36894
37117
  """
36895
- CIDR IP address range. Maximum number of srcIpRanges allowed is 10.
37118
+ (Output)
37119
+ The array of errors encountered while processing this operation.
37120
+ Structure is documented below.
36896
37121
  """
36897
37122
  elif False:
36898
- RegionSecurityPolicyRuleMatchConfigArgsDict: TypeAlias = Mapping[str, Any]
37123
+ RegionResizeRequestStatusErrorArgsDict: TypeAlias = Mapping[str, Any]
36899
37124
 
36900
37125
  @pulumi.input_type
36901
- class RegionSecurityPolicyRuleMatchConfigArgs:
37126
+ class RegionResizeRequestStatusErrorArgs:
36902
37127
  def __init__(__self__, *,
36903
- src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
37128
+ errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]]] = None):
36904
37129
  """
36905
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of srcIpRanges allowed is 10.
37130
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]] errors: (Output)
37131
+ The array of errors encountered while processing this operation.
37132
+ Structure is documented below.
36906
37133
  """
36907
- if src_ip_ranges is not None:
36908
- pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
37134
+ if errors is not None:
37135
+ pulumi.set(__self__, "errors", errors)
36909
37136
 
36910
37137
  @property
36911
- @pulumi.getter(name="srcIpRanges")
36912
- def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
37138
+ @pulumi.getter
37139
+ def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]]]:
36913
37140
  """
36914
- CIDR IP address range. Maximum number of srcIpRanges allowed is 10.
37141
+ (Output)
37142
+ The array of errors encountered while processing this operation.
37143
+ Structure is documented below.
36915
37144
  """
36916
- return pulumi.get(self, "src_ip_ranges")
37145
+ return pulumi.get(self, "errors")
36917
37146
 
36918
- @src_ip_ranges.setter
36919
- def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
36920
- pulumi.set(self, "src_ip_ranges", value)
37147
+ @errors.setter
37148
+ def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorArgs']]]]):
37149
+ pulumi.set(self, "errors", value)
36921
37150
 
36922
37151
 
36923
37152
  if not MYPY:
36924
- class RegionSecurityPolicyRuleMatchExprArgsDict(TypedDict):
36925
- expression: pulumi.Input[str]
37153
+ class RegionResizeRequestStatusErrorErrorArgsDict(TypedDict):
37154
+ code: NotRequired[pulumi.Input[str]]
36926
37155
  """
36927
- Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
37156
+ (Output)
37157
+ The error type identifier for this error.
37158
+ """
37159
+ error_details: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgsDict']]]]
37160
+ """
37161
+ (Output)
37162
+ An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
37163
+ Structure is documented below.
37164
+ """
37165
+ location: NotRequired[pulumi.Input[str]]
37166
+ """
37167
+ (Output)
37168
+ Indicates the field in the request that caused the error. This property is optional.
37169
+ """
37170
+ message: NotRequired[pulumi.Input[str]]
37171
+ """
37172
+ (Output)
37173
+ The localized error message in the above locale.
36928
37174
  """
36929
37175
  elif False:
36930
- RegionSecurityPolicyRuleMatchExprArgsDict: TypeAlias = Mapping[str, Any]
37176
+ RegionResizeRequestStatusErrorErrorArgsDict: TypeAlias = Mapping[str, Any]
36931
37177
 
36932
37178
  @pulumi.input_type
36933
- class RegionSecurityPolicyRuleMatchExprArgs:
37179
+ class RegionResizeRequestStatusErrorErrorArgs:
36934
37180
  def __init__(__self__, *,
36935
- expression: pulumi.Input[str]):
37181
+ code: Optional[pulumi.Input[str]] = None,
37182
+ error_details: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]]] = None,
37183
+ location: Optional[pulumi.Input[str]] = None,
37184
+ message: Optional[pulumi.Input[str]] = None):
36936
37185
  """
36937
- :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
37186
+ :param pulumi.Input[str] code: (Output)
37187
+ The error type identifier for this error.
37188
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]] error_details: (Output)
37189
+ An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
37190
+ Structure is documented below.
37191
+ :param pulumi.Input[str] location: (Output)
37192
+ Indicates the field in the request that caused the error. This property is optional.
37193
+ :param pulumi.Input[str] message: (Output)
37194
+ The localized error message in the above locale.
36938
37195
  """
36939
- pulumi.set(__self__, "expression", expression)
37196
+ if code is not None:
37197
+ pulumi.set(__self__, "code", code)
37198
+ if error_details is not None:
37199
+ pulumi.set(__self__, "error_details", error_details)
37200
+ if location is not None:
37201
+ pulumi.set(__self__, "location", location)
37202
+ if message is not None:
37203
+ pulumi.set(__self__, "message", message)
36940
37204
 
36941
37205
  @property
36942
37206
  @pulumi.getter
36943
- def expression(self) -> pulumi.Input[str]:
37207
+ def code(self) -> Optional[pulumi.Input[str]]:
36944
37208
  """
36945
- Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
37209
+ (Output)
37210
+ The error type identifier for this error.
36946
37211
  """
36947
- return pulumi.get(self, "expression")
36948
-
36949
- @expression.setter
36950
- def expression(self, value: pulumi.Input[str]):
36951
- pulumi.set(self, "expression", value)
37212
+ return pulumi.get(self, "code")
36952
37213
 
37214
+ @code.setter
37215
+ def code(self, value: Optional[pulumi.Input[str]]):
37216
+ pulumi.set(self, "code", value)
36953
37217
 
36954
- if not MYPY:
36955
- class RegionSecurityPolicyRuleNetworkMatchArgsDict(TypedDict):
36956
- dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
36957
- """
36958
- Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
36959
- """
36960
- dest_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
37218
+ @property
37219
+ @pulumi.getter(name="errorDetails")
37220
+ def error_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]]]:
36961
37221
  """
36962
- Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
37222
+ (Output)
37223
+ An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
37224
+ Structure is documented below.
36963
37225
  """
36964
- ip_protocols: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
37226
+ return pulumi.get(self, "error_details")
37227
+
37228
+ @error_details.setter
37229
+ def error_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailArgs']]]]):
37230
+ pulumi.set(self, "error_details", value)
37231
+
37232
+ @property
37233
+ @pulumi.getter
37234
+ def location(self) -> Optional[pulumi.Input[str]]:
36965
37235
  """
36966
- IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp".
37236
+ (Output)
37237
+ Indicates the field in the request that caused the error. This property is optional.
36967
37238
  """
36968
- src_asns: NotRequired[pulumi.Input[Sequence[pulumi.Input[int]]]]
37239
+ return pulumi.get(self, "location")
37240
+
37241
+ @location.setter
37242
+ def location(self, value: Optional[pulumi.Input[str]]):
37243
+ pulumi.set(self, "location", value)
37244
+
37245
+ @property
37246
+ @pulumi.getter
37247
+ def message(self) -> Optional[pulumi.Input[str]]:
36969
37248
  """
36970
- BGP Autonomous System Number associated with the source IP address.
37249
+ (Output)
37250
+ The localized error message in the above locale.
36971
37251
  """
36972
- src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
37252
+ return pulumi.get(self, "message")
37253
+
37254
+ @message.setter
37255
+ def message(self, value: Optional[pulumi.Input[str]]):
37256
+ pulumi.set(self, "message", value)
37257
+
37258
+
37259
+ if not MYPY:
37260
+ class RegionResizeRequestStatusErrorErrorErrorDetailArgsDict(TypedDict):
37261
+ error_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict']]]]
36973
37262
  """
36974
- Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
37263
+ (Output)
37264
+ A nested object resource.
37265
+ Structure is documented below.
36975
37266
  """
36976
- src_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
37267
+ helps: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict']]]]
36977
37268
  """
36978
- Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
37269
+ (Output)
37270
+ A nested object resource.
37271
+ Structure is documented below.
36979
37272
  """
36980
- src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
37273
+ localized_messages: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict']]]]
36981
37274
  """
36982
- Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.
37275
+ (Output)
37276
+ A nested object resource.
37277
+ Structure is documented below.
36983
37278
  """
36984
- user_defined_fields: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgsDict']]]]
37279
+ quota_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict']]]]
36985
37280
  """
36986
- User-defined fields. Each element names a defined field and lists the matching values for that field.
37281
+ (Output)
37282
+ A nested object resource.
36987
37283
  Structure is documented below.
36988
37284
  """
36989
37285
  elif False:
36990
- RegionSecurityPolicyRuleNetworkMatchArgsDict: TypeAlias = Mapping[str, Any]
37286
+ RegionResizeRequestStatusErrorErrorErrorDetailArgsDict: TypeAlias = Mapping[str, Any]
36991
37287
 
36992
37288
  @pulumi.input_type
36993
- class RegionSecurityPolicyRuleNetworkMatchArgs:
37289
+ class RegionResizeRequestStatusErrorErrorErrorDetailArgs:
36994
37290
  def __init__(__self__, *,
36995
- dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
36996
- dest_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
36997
- ip_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
36998
- src_asns: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
36999
- src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
37000
- src_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
37001
- src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
37002
- user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]]] = None):
37291
+ error_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]] = None,
37292
+ helps: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]] = None,
37293
+ localized_messages: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]] = None,
37294
+ quota_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]] = None):
37003
37295
  """
37004
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
37005
- :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ports: Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
37006
- :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_protocols: IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp".
37007
- :param pulumi.Input[Sequence[pulumi.Input[int]]] src_asns: BGP Autonomous System Number associated with the source IP address.
37008
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
37009
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ports: Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
37010
- :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.
37011
- :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]] user_defined_fields: User-defined fields. Each element names a defined field and lists the matching values for that field.
37296
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]] error_infos: (Output)
37297
+ A nested object resource.
37298
+ Structure is documented below.
37299
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]] helps: (Output)
37300
+ A nested object resource.
37301
+ Structure is documented below.
37302
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]] localized_messages: (Output)
37303
+ A nested object resource.
37304
+ Structure is documented below.
37305
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]] quota_infos: (Output)
37306
+ A nested object resource.
37012
37307
  Structure is documented below.
37013
37308
  """
37014
- if dest_ip_ranges is not None:
37015
- pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
37016
- if dest_ports is not None:
37017
- pulumi.set(__self__, "dest_ports", dest_ports)
37018
- if ip_protocols is not None:
37019
- pulumi.set(__self__, "ip_protocols", ip_protocols)
37020
- if src_asns is not None:
37021
- pulumi.set(__self__, "src_asns", src_asns)
37022
- if src_ip_ranges is not None:
37023
- pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
37024
- if src_ports is not None:
37025
- pulumi.set(__self__, "src_ports", src_ports)
37026
- if src_region_codes is not None:
37027
- pulumi.set(__self__, "src_region_codes", src_region_codes)
37028
- if user_defined_fields is not None:
37029
- pulumi.set(__self__, "user_defined_fields", user_defined_fields)
37309
+ if error_infos is not None:
37310
+ pulumi.set(__self__, "error_infos", error_infos)
37311
+ if helps is not None:
37312
+ pulumi.set(__self__, "helps", helps)
37313
+ if localized_messages is not None:
37314
+ pulumi.set(__self__, "localized_messages", localized_messages)
37315
+ if quota_infos is not None:
37316
+ pulumi.set(__self__, "quota_infos", quota_infos)
37030
37317
 
37031
37318
  @property
37032
- @pulumi.getter(name="destIpRanges")
37033
- def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
37319
+ @pulumi.getter(name="errorInfos")
37320
+ def error_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]]:
37034
37321
  """
37035
- Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
37322
+ (Output)
37323
+ A nested object resource.
37324
+ Structure is documented below.
37036
37325
  """
37037
- return pulumi.get(self, "dest_ip_ranges")
37326
+ return pulumi.get(self, "error_infos")
37038
37327
 
37039
- @dest_ip_ranges.setter
37040
- def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
37041
- pulumi.set(self, "dest_ip_ranges", value)
37328
+ @error_infos.setter
37329
+ def error_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs']]]]):
37330
+ pulumi.set(self, "error_infos", value)
37042
37331
 
37043
37332
  @property
37044
- @pulumi.getter(name="destPorts")
37045
- def dest_ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
37333
+ @pulumi.getter
37334
+ def helps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]]:
37046
37335
  """
37047
- Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
37336
+ (Output)
37337
+ A nested object resource.
37338
+ Structure is documented below.
37048
37339
  """
37049
- return pulumi.get(self, "dest_ports")
37340
+ return pulumi.get(self, "helps")
37050
37341
 
37051
- @dest_ports.setter
37052
- def dest_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
37053
- pulumi.set(self, "dest_ports", value)
37342
+ @helps.setter
37343
+ def helps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs']]]]):
37344
+ pulumi.set(self, "helps", value)
37054
37345
 
37055
37346
  @property
37056
- @pulumi.getter(name="ipProtocols")
37057
- def ip_protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
37347
+ @pulumi.getter(name="localizedMessages")
37348
+ def localized_messages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]]:
37058
37349
  """
37059
- IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp".
37350
+ (Output)
37351
+ A nested object resource.
37352
+ Structure is documented below.
37060
37353
  """
37061
- return pulumi.get(self, "ip_protocols")
37354
+ return pulumi.get(self, "localized_messages")
37355
+
37356
+ @localized_messages.setter
37357
+ def localized_messages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs']]]]):
37358
+ pulumi.set(self, "localized_messages", value)
37359
+
37360
+ @property
37361
+ @pulumi.getter(name="quotaInfos")
37362
+ def quota_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]]:
37363
+ """
37364
+ (Output)
37365
+ A nested object resource.
37366
+ Structure is documented below.
37367
+ """
37368
+ return pulumi.get(self, "quota_infos")
37369
+
37370
+ @quota_infos.setter
37371
+ def quota_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs']]]]):
37372
+ pulumi.set(self, "quota_infos", value)
37373
+
37374
+
37375
+ if not MYPY:
37376
+ class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict(TypedDict):
37377
+ domain: NotRequired[pulumi.Input[str]]
37378
+ """
37379
+ (Output)
37380
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com".
37381
+ """
37382
+ metadatas: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
37383
+ """
37384
+ (Output)
37385
+ Additional structured details about this error.
37386
+ """
37387
+ reason: NotRequired[pulumi.Input[str]]
37388
+ """
37389
+ (Output)
37390
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.
37391
+ """
37392
+ elif False:
37393
+ RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgsDict: TypeAlias = Mapping[str, Any]
37394
+
37395
+ @pulumi.input_type
37396
+ class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs:
37397
+ def __init__(__self__, *,
37398
+ domain: Optional[pulumi.Input[str]] = None,
37399
+ metadatas: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
37400
+ reason: Optional[pulumi.Input[str]] = None):
37401
+ """
37402
+ :param pulumi.Input[str] domain: (Output)
37403
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com".
37404
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadatas: (Output)
37405
+ Additional structured details about this error.
37406
+ :param pulumi.Input[str] reason: (Output)
37407
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.
37408
+ """
37409
+ if domain is not None:
37410
+ pulumi.set(__self__, "domain", domain)
37411
+ if metadatas is not None:
37412
+ pulumi.set(__self__, "metadatas", metadatas)
37413
+ if reason is not None:
37414
+ pulumi.set(__self__, "reason", reason)
37415
+
37416
+ @property
37417
+ @pulumi.getter
37418
+ def domain(self) -> Optional[pulumi.Input[str]]:
37419
+ """
37420
+ (Output)
37421
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com".
37422
+ """
37423
+ return pulumi.get(self, "domain")
37424
+
37425
+ @domain.setter
37426
+ def domain(self, value: Optional[pulumi.Input[str]]):
37427
+ pulumi.set(self, "domain", value)
37428
+
37429
+ @property
37430
+ @pulumi.getter
37431
+ def metadatas(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
37432
+ """
37433
+ (Output)
37434
+ Additional structured details about this error.
37435
+ """
37436
+ return pulumi.get(self, "metadatas")
37437
+
37438
+ @metadatas.setter
37439
+ def metadatas(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
37440
+ pulumi.set(self, "metadatas", value)
37441
+
37442
+ @property
37443
+ @pulumi.getter
37444
+ def reason(self) -> Optional[pulumi.Input[str]]:
37445
+ """
37446
+ (Output)
37447
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.
37448
+ """
37449
+ return pulumi.get(self, "reason")
37450
+
37451
+ @reason.setter
37452
+ def reason(self, value: Optional[pulumi.Input[str]]):
37453
+ pulumi.set(self, "reason", value)
37454
+
37455
+
37456
+ if not MYPY:
37457
+ class RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict(TypedDict):
37458
+ links: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict']]]]
37459
+ """
37460
+ (Output)
37461
+ A nested object resource.
37462
+ Structure is documented below.
37463
+ """
37464
+ elif False:
37465
+ RegionResizeRequestStatusErrorErrorErrorDetailHelpArgsDict: TypeAlias = Mapping[str, Any]
37466
+
37467
+ @pulumi.input_type
37468
+ class RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs:
37469
+ def __init__(__self__, *,
37470
+ links: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]] = None):
37471
+ """
37472
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]] links: (Output)
37473
+ A nested object resource.
37474
+ Structure is documented below.
37475
+ """
37476
+ if links is not None:
37477
+ pulumi.set(__self__, "links", links)
37478
+
37479
+ @property
37480
+ @pulumi.getter
37481
+ def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]]:
37482
+ """
37483
+ (Output)
37484
+ A nested object resource.
37485
+ Structure is documented below.
37486
+ """
37487
+ return pulumi.get(self, "links")
37488
+
37489
+ @links.setter
37490
+ def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs']]]]):
37491
+ pulumi.set(self, "links", value)
37492
+
37493
+
37494
+ if not MYPY:
37495
+ class RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict(TypedDict):
37496
+ description: NotRequired[pulumi.Input[str]]
37497
+ """
37498
+ An optional description of this resize-request.
37499
+ """
37500
+ url: NotRequired[pulumi.Input[str]]
37501
+ """
37502
+ (Output)
37503
+ The URL of the link.
37504
+ """
37505
+ elif False:
37506
+ RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgsDict: TypeAlias = Mapping[str, Any]
37507
+
37508
+ @pulumi.input_type
37509
+ class RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs:
37510
+ def __init__(__self__, *,
37511
+ description: Optional[pulumi.Input[str]] = None,
37512
+ url: Optional[pulumi.Input[str]] = None):
37513
+ """
37514
+ :param pulumi.Input[str] description: An optional description of this resize-request.
37515
+ :param pulumi.Input[str] url: (Output)
37516
+ The URL of the link.
37517
+ """
37518
+ if description is not None:
37519
+ pulumi.set(__self__, "description", description)
37520
+ if url is not None:
37521
+ pulumi.set(__self__, "url", url)
37522
+
37523
+ @property
37524
+ @pulumi.getter
37525
+ def description(self) -> Optional[pulumi.Input[str]]:
37526
+ """
37527
+ An optional description of this resize-request.
37528
+ """
37529
+ return pulumi.get(self, "description")
37530
+
37531
+ @description.setter
37532
+ def description(self, value: Optional[pulumi.Input[str]]):
37533
+ pulumi.set(self, "description", value)
37534
+
37535
+ @property
37536
+ @pulumi.getter
37537
+ def url(self) -> Optional[pulumi.Input[str]]:
37538
+ """
37539
+ (Output)
37540
+ The URL of the link.
37541
+ """
37542
+ return pulumi.get(self, "url")
37543
+
37544
+ @url.setter
37545
+ def url(self, value: Optional[pulumi.Input[str]]):
37546
+ pulumi.set(self, "url", value)
37547
+
37548
+
37549
+ if not MYPY:
37550
+ class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict(TypedDict):
37551
+ locale: NotRequired[pulumi.Input[str]]
37552
+ """
37553
+ (Output)
37554
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
37555
+ """
37556
+ message: NotRequired[pulumi.Input[str]]
37557
+ """
37558
+ (Output)
37559
+ The localized error message in the above locale.
37560
+ """
37561
+ elif False:
37562
+ RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgsDict: TypeAlias = Mapping[str, Any]
37563
+
37564
+ @pulumi.input_type
37565
+ class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs:
37566
+ def __init__(__self__, *,
37567
+ locale: Optional[pulumi.Input[str]] = None,
37568
+ message: Optional[pulumi.Input[str]] = None):
37569
+ """
37570
+ :param pulumi.Input[str] locale: (Output)
37571
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
37572
+ :param pulumi.Input[str] message: (Output)
37573
+ The localized error message in the above locale.
37574
+ """
37575
+ if locale is not None:
37576
+ pulumi.set(__self__, "locale", locale)
37577
+ if message is not None:
37578
+ pulumi.set(__self__, "message", message)
37579
+
37580
+ @property
37581
+ @pulumi.getter
37582
+ def locale(self) -> Optional[pulumi.Input[str]]:
37583
+ """
37584
+ (Output)
37585
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
37586
+ """
37587
+ return pulumi.get(self, "locale")
37588
+
37589
+ @locale.setter
37590
+ def locale(self, value: Optional[pulumi.Input[str]]):
37591
+ pulumi.set(self, "locale", value)
37592
+
37593
+ @property
37594
+ @pulumi.getter
37595
+ def message(self) -> Optional[pulumi.Input[str]]:
37596
+ """
37597
+ (Output)
37598
+ The localized error message in the above locale.
37599
+ """
37600
+ return pulumi.get(self, "message")
37601
+
37602
+ @message.setter
37603
+ def message(self, value: Optional[pulumi.Input[str]]):
37604
+ pulumi.set(self, "message", value)
37605
+
37606
+
37607
+ if not MYPY:
37608
+ class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict(TypedDict):
37609
+ dimensions: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
37610
+ """
37611
+ (Output)
37612
+ The map holding related quota dimensions
37613
+ """
37614
+ future_limit: NotRequired[pulumi.Input[int]]
37615
+ """
37616
+ (Output)
37617
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
37618
+ """
37619
+ limit: NotRequired[pulumi.Input[int]]
37620
+ """
37621
+ (Output)
37622
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
37623
+ """
37624
+ limit_name: NotRequired[pulumi.Input[str]]
37625
+ """
37626
+ (Output)
37627
+ The name of the quota limit.
37628
+ """
37629
+ metric_name: NotRequired[pulumi.Input[str]]
37630
+ """
37631
+ (Output)
37632
+ The Compute Engine quota metric name.
37633
+ """
37634
+ rollout_status: NotRequired[pulumi.Input[str]]
37635
+ """
37636
+ (Output)
37637
+ Rollout status of the future quota limit.
37638
+ """
37639
+ elif False:
37640
+ RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgsDict: TypeAlias = Mapping[str, Any]
37641
+
37642
+ @pulumi.input_type
37643
+ class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs:
37644
+ def __init__(__self__, *,
37645
+ dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
37646
+ future_limit: Optional[pulumi.Input[int]] = None,
37647
+ limit: Optional[pulumi.Input[int]] = None,
37648
+ limit_name: Optional[pulumi.Input[str]] = None,
37649
+ metric_name: Optional[pulumi.Input[str]] = None,
37650
+ rollout_status: Optional[pulumi.Input[str]] = None):
37651
+ """
37652
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: (Output)
37653
+ The map holding related quota dimensions
37654
+ :param pulumi.Input[int] future_limit: (Output)
37655
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
37656
+ :param pulumi.Input[int] limit: (Output)
37657
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
37658
+ :param pulumi.Input[str] limit_name: (Output)
37659
+ The name of the quota limit.
37660
+ :param pulumi.Input[str] metric_name: (Output)
37661
+ The Compute Engine quota metric name.
37662
+ :param pulumi.Input[str] rollout_status: (Output)
37663
+ Rollout status of the future quota limit.
37664
+ """
37665
+ if dimensions is not None:
37666
+ pulumi.set(__self__, "dimensions", dimensions)
37667
+ if future_limit is not None:
37668
+ pulumi.set(__self__, "future_limit", future_limit)
37669
+ if limit is not None:
37670
+ pulumi.set(__self__, "limit", limit)
37671
+ if limit_name is not None:
37672
+ pulumi.set(__self__, "limit_name", limit_name)
37673
+ if metric_name is not None:
37674
+ pulumi.set(__self__, "metric_name", metric_name)
37675
+ if rollout_status is not None:
37676
+ pulumi.set(__self__, "rollout_status", rollout_status)
37677
+
37678
+ @property
37679
+ @pulumi.getter
37680
+ def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
37681
+ """
37682
+ (Output)
37683
+ The map holding related quota dimensions
37684
+ """
37685
+ return pulumi.get(self, "dimensions")
37686
+
37687
+ @dimensions.setter
37688
+ def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
37689
+ pulumi.set(self, "dimensions", value)
37690
+
37691
+ @property
37692
+ @pulumi.getter(name="futureLimit")
37693
+ def future_limit(self) -> Optional[pulumi.Input[int]]:
37694
+ """
37695
+ (Output)
37696
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
37697
+ """
37698
+ return pulumi.get(self, "future_limit")
37699
+
37700
+ @future_limit.setter
37701
+ def future_limit(self, value: Optional[pulumi.Input[int]]):
37702
+ pulumi.set(self, "future_limit", value)
37703
+
37704
+ @property
37705
+ @pulumi.getter
37706
+ def limit(self) -> Optional[pulumi.Input[int]]:
37707
+ """
37708
+ (Output)
37709
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
37710
+ """
37711
+ return pulumi.get(self, "limit")
37712
+
37713
+ @limit.setter
37714
+ def limit(self, value: Optional[pulumi.Input[int]]):
37715
+ pulumi.set(self, "limit", value)
37716
+
37717
+ @property
37718
+ @pulumi.getter(name="limitName")
37719
+ def limit_name(self) -> Optional[pulumi.Input[str]]:
37720
+ """
37721
+ (Output)
37722
+ The name of the quota limit.
37723
+ """
37724
+ return pulumi.get(self, "limit_name")
37725
+
37726
+ @limit_name.setter
37727
+ def limit_name(self, value: Optional[pulumi.Input[str]]):
37728
+ pulumi.set(self, "limit_name", value)
37729
+
37730
+ @property
37731
+ @pulumi.getter(name="metricName")
37732
+ def metric_name(self) -> Optional[pulumi.Input[str]]:
37733
+ """
37734
+ (Output)
37735
+ The Compute Engine quota metric name.
37736
+ """
37737
+ return pulumi.get(self, "metric_name")
37738
+
37739
+ @metric_name.setter
37740
+ def metric_name(self, value: Optional[pulumi.Input[str]]):
37741
+ pulumi.set(self, "metric_name", value)
37742
+
37743
+ @property
37744
+ @pulumi.getter(name="rolloutStatus")
37745
+ def rollout_status(self) -> Optional[pulumi.Input[str]]:
37746
+ """
37747
+ (Output)
37748
+ Rollout status of the future quota limit.
37749
+ """
37750
+ return pulumi.get(self, "rollout_status")
37751
+
37752
+ @rollout_status.setter
37753
+ def rollout_status(self, value: Optional[pulumi.Input[str]]):
37754
+ pulumi.set(self, "rollout_status", value)
37755
+
37756
+
37757
+ if not MYPY:
37758
+ class RegionResizeRequestStatusLastAttemptArgsDict(TypedDict):
37759
+ errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgsDict']]]]
37760
+ """
37761
+ (Output)
37762
+ Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
37763
+ Structure is documented below.
37764
+ """
37765
+ elif False:
37766
+ RegionResizeRequestStatusLastAttemptArgsDict: TypeAlias = Mapping[str, Any]
37767
+
37768
+ @pulumi.input_type
37769
+ class RegionResizeRequestStatusLastAttemptArgs:
37770
+ def __init__(__self__, *,
37771
+ errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]]] = None):
37772
+ """
37773
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]] errors: (Output)
37774
+ Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
37775
+ Structure is documented below.
37776
+ """
37777
+ if errors is not None:
37778
+ pulumi.set(__self__, "errors", errors)
37779
+
37780
+ @property
37781
+ @pulumi.getter
37782
+ def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]]]:
37783
+ """
37784
+ (Output)
37785
+ Fatal errors encountered during the queueing or provisioning phases of the ResizeRequest that caused the transition to the FAILED state. Contrary to the lastAttempt errors, this field is final and errors are never removed from here, as the ResizeRequest is not going to retry.
37786
+ Structure is documented below.
37787
+ """
37788
+ return pulumi.get(self, "errors")
37789
+
37790
+ @errors.setter
37791
+ def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorArgs']]]]):
37792
+ pulumi.set(self, "errors", value)
37793
+
37794
+
37795
+ if not MYPY:
37796
+ class RegionResizeRequestStatusLastAttemptErrorArgsDict(TypedDict):
37797
+ errors: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgsDict']]]]
37798
+ """
37799
+ (Output)
37800
+ The array of errors encountered while processing this operation.
37801
+ Structure is documented below.
37802
+ """
37803
+ elif False:
37804
+ RegionResizeRequestStatusLastAttemptErrorArgsDict: TypeAlias = Mapping[str, Any]
37805
+
37806
+ @pulumi.input_type
37807
+ class RegionResizeRequestStatusLastAttemptErrorArgs:
37808
+ def __init__(__self__, *,
37809
+ errors: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]]] = None):
37810
+ """
37811
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]] errors: (Output)
37812
+ The array of errors encountered while processing this operation.
37813
+ Structure is documented below.
37814
+ """
37815
+ if errors is not None:
37816
+ pulumi.set(__self__, "errors", errors)
37817
+
37818
+ @property
37819
+ @pulumi.getter
37820
+ def errors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]]]:
37821
+ """
37822
+ (Output)
37823
+ The array of errors encountered while processing this operation.
37824
+ Structure is documented below.
37825
+ """
37826
+ return pulumi.get(self, "errors")
37827
+
37828
+ @errors.setter
37829
+ def errors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorArgs']]]]):
37830
+ pulumi.set(self, "errors", value)
37831
+
37832
+
37833
+ if not MYPY:
37834
+ class RegionResizeRequestStatusLastAttemptErrorErrorArgsDict(TypedDict):
37835
+ code: NotRequired[pulumi.Input[str]]
37836
+ """
37837
+ (Output)
37838
+ The error type identifier for this error.
37839
+ """
37840
+ error_details: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict']]]]
37841
+ """
37842
+ (Output)
37843
+ An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
37844
+ Structure is documented below.
37845
+ """
37846
+ location: NotRequired[pulumi.Input[str]]
37847
+ """
37848
+ (Output)
37849
+ Indicates the field in the request that caused the error. This property is optional.
37850
+ """
37851
+ message: NotRequired[pulumi.Input[str]]
37852
+ """
37853
+ (Output)
37854
+ The localized error message in the above locale.
37855
+ """
37856
+ elif False:
37857
+ RegionResizeRequestStatusLastAttemptErrorErrorArgsDict: TypeAlias = Mapping[str, Any]
37858
+
37859
+ @pulumi.input_type
37860
+ class RegionResizeRequestStatusLastAttemptErrorErrorArgs:
37861
+ def __init__(__self__, *,
37862
+ code: Optional[pulumi.Input[str]] = None,
37863
+ error_details: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]] = None,
37864
+ location: Optional[pulumi.Input[str]] = None,
37865
+ message: Optional[pulumi.Input[str]] = None):
37866
+ """
37867
+ :param pulumi.Input[str] code: (Output)
37868
+ The error type identifier for this error.
37869
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]] error_details: (Output)
37870
+ An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
37871
+ Structure is documented below.
37872
+ :param pulumi.Input[str] location: (Output)
37873
+ Indicates the field in the request that caused the error. This property is optional.
37874
+ :param pulumi.Input[str] message: (Output)
37875
+ The localized error message in the above locale.
37876
+ """
37877
+ if code is not None:
37878
+ pulumi.set(__self__, "code", code)
37879
+ if error_details is not None:
37880
+ pulumi.set(__self__, "error_details", error_details)
37881
+ if location is not None:
37882
+ pulumi.set(__self__, "location", location)
37883
+ if message is not None:
37884
+ pulumi.set(__self__, "message", message)
37885
+
37886
+ @property
37887
+ @pulumi.getter
37888
+ def code(self) -> Optional[pulumi.Input[str]]:
37889
+ """
37890
+ (Output)
37891
+ The error type identifier for this error.
37892
+ """
37893
+ return pulumi.get(self, "code")
37894
+
37895
+ @code.setter
37896
+ def code(self, value: Optional[pulumi.Input[str]]):
37897
+ pulumi.set(self, "code", value)
37898
+
37899
+ @property
37900
+ @pulumi.getter(name="errorDetails")
37901
+ def error_details(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]]:
37902
+ """
37903
+ (Output)
37904
+ An array of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.
37905
+ Structure is documented below.
37906
+ """
37907
+ return pulumi.get(self, "error_details")
37908
+
37909
+ @error_details.setter
37910
+ def error_details(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs']]]]):
37911
+ pulumi.set(self, "error_details", value)
37912
+
37913
+ @property
37914
+ @pulumi.getter
37915
+ def location(self) -> Optional[pulumi.Input[str]]:
37916
+ """
37917
+ (Output)
37918
+ Indicates the field in the request that caused the error. This property is optional.
37919
+ """
37920
+ return pulumi.get(self, "location")
37921
+
37922
+ @location.setter
37923
+ def location(self, value: Optional[pulumi.Input[str]]):
37924
+ pulumi.set(self, "location", value)
37925
+
37926
+ @property
37927
+ @pulumi.getter
37928
+ def message(self) -> Optional[pulumi.Input[str]]:
37929
+ """
37930
+ (Output)
37931
+ The localized error message in the above locale.
37932
+ """
37933
+ return pulumi.get(self, "message")
37934
+
37935
+ @message.setter
37936
+ def message(self, value: Optional[pulumi.Input[str]]):
37937
+ pulumi.set(self, "message", value)
37938
+
37939
+
37940
+ if not MYPY:
37941
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict(TypedDict):
37942
+ error_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict']]]]
37943
+ """
37944
+ (Output)
37945
+ A nested object resource.
37946
+ Structure is documented below.
37947
+ """
37948
+ helps: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict']]]]
37949
+ """
37950
+ (Output)
37951
+ A nested object resource.
37952
+ Structure is documented below.
37953
+ """
37954
+ localized_messages: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict']]]]
37955
+ """
37956
+ (Output)
37957
+ A nested object resource.
37958
+ Structure is documented below.
37959
+ """
37960
+ quota_infos: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict']]]]
37961
+ """
37962
+ (Output)
37963
+ A nested object resource.
37964
+ Structure is documented below.
37965
+ """
37966
+ elif False:
37967
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgsDict: TypeAlias = Mapping[str, Any]
37968
+
37969
+ @pulumi.input_type
37970
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs:
37971
+ def __init__(__self__, *,
37972
+ error_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]] = None,
37973
+ helps: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]] = None,
37974
+ localized_messages: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]] = None,
37975
+ quota_infos: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]] = None):
37976
+ """
37977
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]] error_infos: (Output)
37978
+ A nested object resource.
37979
+ Structure is documented below.
37980
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]] helps: (Output)
37981
+ A nested object resource.
37982
+ Structure is documented below.
37983
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]] localized_messages: (Output)
37984
+ A nested object resource.
37985
+ Structure is documented below.
37986
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]] quota_infos: (Output)
37987
+ A nested object resource.
37988
+ Structure is documented below.
37989
+ """
37990
+ if error_infos is not None:
37991
+ pulumi.set(__self__, "error_infos", error_infos)
37992
+ if helps is not None:
37993
+ pulumi.set(__self__, "helps", helps)
37994
+ if localized_messages is not None:
37995
+ pulumi.set(__self__, "localized_messages", localized_messages)
37996
+ if quota_infos is not None:
37997
+ pulumi.set(__self__, "quota_infos", quota_infos)
37998
+
37999
+ @property
38000
+ @pulumi.getter(name="errorInfos")
38001
+ def error_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]]:
38002
+ """
38003
+ (Output)
38004
+ A nested object resource.
38005
+ Structure is documented below.
38006
+ """
38007
+ return pulumi.get(self, "error_infos")
38008
+
38009
+ @error_infos.setter
38010
+ def error_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs']]]]):
38011
+ pulumi.set(self, "error_infos", value)
38012
+
38013
+ @property
38014
+ @pulumi.getter
38015
+ def helps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]]:
38016
+ """
38017
+ (Output)
38018
+ A nested object resource.
38019
+ Structure is documented below.
38020
+ """
38021
+ return pulumi.get(self, "helps")
38022
+
38023
+ @helps.setter
38024
+ def helps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs']]]]):
38025
+ pulumi.set(self, "helps", value)
38026
+
38027
+ @property
38028
+ @pulumi.getter(name="localizedMessages")
38029
+ def localized_messages(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]]:
38030
+ """
38031
+ (Output)
38032
+ A nested object resource.
38033
+ Structure is documented below.
38034
+ """
38035
+ return pulumi.get(self, "localized_messages")
38036
+
38037
+ @localized_messages.setter
38038
+ def localized_messages(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs']]]]):
38039
+ pulumi.set(self, "localized_messages", value)
38040
+
38041
+ @property
38042
+ @pulumi.getter(name="quotaInfos")
38043
+ def quota_infos(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]]:
38044
+ """
38045
+ (Output)
38046
+ A nested object resource.
38047
+ Structure is documented below.
38048
+ """
38049
+ return pulumi.get(self, "quota_infos")
38050
+
38051
+ @quota_infos.setter
38052
+ def quota_infos(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs']]]]):
38053
+ pulumi.set(self, "quota_infos", value)
38054
+
38055
+
38056
+ if not MYPY:
38057
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict(TypedDict):
38058
+ domain: NotRequired[pulumi.Input[str]]
38059
+ """
38060
+ (Output)
38061
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com".
38062
+ """
38063
+ metadatas: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
38064
+ """
38065
+ (Output)
38066
+ Additional structured details about this error.
38067
+ """
38068
+ reason: NotRequired[pulumi.Input[str]]
38069
+ """
38070
+ (Output)
38071
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.
38072
+ """
38073
+ elif False:
38074
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgsDict: TypeAlias = Mapping[str, Any]
38075
+
38076
+ @pulumi.input_type
38077
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs:
38078
+ def __init__(__self__, *,
38079
+ domain: Optional[pulumi.Input[str]] = None,
38080
+ metadatas: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
38081
+ reason: Optional[pulumi.Input[str]] = None):
38082
+ """
38083
+ :param pulumi.Input[str] domain: (Output)
38084
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com".
38085
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] metadatas: (Output)
38086
+ Additional structured details about this error.
38087
+ :param pulumi.Input[str] reason: (Output)
38088
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.
38089
+ """
38090
+ if domain is not None:
38091
+ pulumi.set(__self__, "domain", domain)
38092
+ if metadatas is not None:
38093
+ pulumi.set(__self__, "metadatas", metadatas)
38094
+ if reason is not None:
38095
+ pulumi.set(__self__, "reason", reason)
38096
+
38097
+ @property
38098
+ @pulumi.getter
38099
+ def domain(self) -> Optional[pulumi.Input[str]]:
38100
+ """
38101
+ (Output)
38102
+ The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com".
38103
+ """
38104
+ return pulumi.get(self, "domain")
38105
+
38106
+ @domain.setter
38107
+ def domain(self, value: Optional[pulumi.Input[str]]):
38108
+ pulumi.set(self, "domain", value)
38109
+
38110
+ @property
38111
+ @pulumi.getter
38112
+ def metadatas(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
38113
+ """
38114
+ (Output)
38115
+ Additional structured details about this error.
38116
+ """
38117
+ return pulumi.get(self, "metadatas")
38118
+
38119
+ @metadatas.setter
38120
+ def metadatas(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
38121
+ pulumi.set(self, "metadatas", value)
38122
+
38123
+ @property
38124
+ @pulumi.getter
38125
+ def reason(self) -> Optional[pulumi.Input[str]]:
38126
+ """
38127
+ (Output)
38128
+ The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors.
38129
+ """
38130
+ return pulumi.get(self, "reason")
38131
+
38132
+ @reason.setter
38133
+ def reason(self, value: Optional[pulumi.Input[str]]):
38134
+ pulumi.set(self, "reason", value)
38135
+
38136
+
38137
+ if not MYPY:
38138
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict(TypedDict):
38139
+ links: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict']]]]
38140
+ """
38141
+ (Output)
38142
+ A nested object resource.
38143
+ Structure is documented below.
38144
+ """
38145
+ elif False:
38146
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgsDict: TypeAlias = Mapping[str, Any]
38147
+
38148
+ @pulumi.input_type
38149
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs:
38150
+ def __init__(__self__, *,
38151
+ links: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]] = None):
38152
+ """
38153
+ :param pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]] links: (Output)
38154
+ A nested object resource.
38155
+ Structure is documented below.
38156
+ """
38157
+ if links is not None:
38158
+ pulumi.set(__self__, "links", links)
38159
+
38160
+ @property
38161
+ @pulumi.getter
38162
+ def links(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]]:
38163
+ """
38164
+ (Output)
38165
+ A nested object resource.
38166
+ Structure is documented below.
38167
+ """
38168
+ return pulumi.get(self, "links")
38169
+
38170
+ @links.setter
38171
+ def links(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs']]]]):
38172
+ pulumi.set(self, "links", value)
38173
+
38174
+
38175
+ if not MYPY:
38176
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict(TypedDict):
38177
+ description: NotRequired[pulumi.Input[str]]
38178
+ """
38179
+ An optional description of this resize-request.
38180
+ """
38181
+ url: NotRequired[pulumi.Input[str]]
38182
+ """
38183
+ (Output)
38184
+ The URL of the link.
38185
+ """
38186
+ elif False:
38187
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgsDict: TypeAlias = Mapping[str, Any]
38188
+
38189
+ @pulumi.input_type
38190
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs:
38191
+ def __init__(__self__, *,
38192
+ description: Optional[pulumi.Input[str]] = None,
38193
+ url: Optional[pulumi.Input[str]] = None):
38194
+ """
38195
+ :param pulumi.Input[str] description: An optional description of this resize-request.
38196
+ :param pulumi.Input[str] url: (Output)
38197
+ The URL of the link.
38198
+ """
38199
+ if description is not None:
38200
+ pulumi.set(__self__, "description", description)
38201
+ if url is not None:
38202
+ pulumi.set(__self__, "url", url)
38203
+
38204
+ @property
38205
+ @pulumi.getter
38206
+ def description(self) -> Optional[pulumi.Input[str]]:
38207
+ """
38208
+ An optional description of this resize-request.
38209
+ """
38210
+ return pulumi.get(self, "description")
38211
+
38212
+ @description.setter
38213
+ def description(self, value: Optional[pulumi.Input[str]]):
38214
+ pulumi.set(self, "description", value)
38215
+
38216
+ @property
38217
+ @pulumi.getter
38218
+ def url(self) -> Optional[pulumi.Input[str]]:
38219
+ """
38220
+ (Output)
38221
+ The URL of the link.
38222
+ """
38223
+ return pulumi.get(self, "url")
38224
+
38225
+ @url.setter
38226
+ def url(self, value: Optional[pulumi.Input[str]]):
38227
+ pulumi.set(self, "url", value)
38228
+
38229
+
38230
+ if not MYPY:
38231
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict(TypedDict):
38232
+ locale: NotRequired[pulumi.Input[str]]
38233
+ """
38234
+ (Output)
38235
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
38236
+ """
38237
+ message: NotRequired[pulumi.Input[str]]
38238
+ """
38239
+ (Output)
38240
+ The localized error message in the above locale.
38241
+ """
38242
+ elif False:
38243
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgsDict: TypeAlias = Mapping[str, Any]
38244
+
38245
+ @pulumi.input_type
38246
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs:
38247
+ def __init__(__self__, *,
38248
+ locale: Optional[pulumi.Input[str]] = None,
38249
+ message: Optional[pulumi.Input[str]] = None):
38250
+ """
38251
+ :param pulumi.Input[str] locale: (Output)
38252
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
38253
+ :param pulumi.Input[str] message: (Output)
38254
+ The localized error message in the above locale.
38255
+ """
38256
+ if locale is not None:
38257
+ pulumi.set(__self__, "locale", locale)
38258
+ if message is not None:
38259
+ pulumi.set(__self__, "message", message)
38260
+
38261
+ @property
38262
+ @pulumi.getter
38263
+ def locale(self) -> Optional[pulumi.Input[str]]:
38264
+ """
38265
+ (Output)
38266
+ The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"
38267
+ """
38268
+ return pulumi.get(self, "locale")
38269
+
38270
+ @locale.setter
38271
+ def locale(self, value: Optional[pulumi.Input[str]]):
38272
+ pulumi.set(self, "locale", value)
38273
+
38274
+ @property
38275
+ @pulumi.getter
38276
+ def message(self) -> Optional[pulumi.Input[str]]:
38277
+ """
38278
+ (Output)
38279
+ The localized error message in the above locale.
38280
+ """
38281
+ return pulumi.get(self, "message")
38282
+
38283
+ @message.setter
38284
+ def message(self, value: Optional[pulumi.Input[str]]):
38285
+ pulumi.set(self, "message", value)
38286
+
38287
+
38288
+ if not MYPY:
38289
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict(TypedDict):
38290
+ dimensions: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[str]]]]
38291
+ """
38292
+ (Output)
38293
+ The map holding related quota dimensions
38294
+ """
38295
+ future_limit: NotRequired[pulumi.Input[int]]
38296
+ """
38297
+ (Output)
38298
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
38299
+ """
38300
+ limit: NotRequired[pulumi.Input[int]]
38301
+ """
38302
+ (Output)
38303
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
38304
+ """
38305
+ limit_name: NotRequired[pulumi.Input[str]]
38306
+ """
38307
+ (Output)
38308
+ The name of the quota limit.
38309
+ """
38310
+ metric_name: NotRequired[pulumi.Input[str]]
38311
+ """
38312
+ (Output)
38313
+ The Compute Engine quota metric name.
38314
+ """
38315
+ rollout_status: NotRequired[pulumi.Input[str]]
38316
+ """
38317
+ (Output)
38318
+ Rollout status of the future quota limit.
38319
+ """
38320
+ elif False:
38321
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgsDict: TypeAlias = Mapping[str, Any]
38322
+
38323
+ @pulumi.input_type
38324
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs:
38325
+ def __init__(__self__, *,
38326
+ dimensions: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
38327
+ future_limit: Optional[pulumi.Input[int]] = None,
38328
+ limit: Optional[pulumi.Input[int]] = None,
38329
+ limit_name: Optional[pulumi.Input[str]] = None,
38330
+ metric_name: Optional[pulumi.Input[str]] = None,
38331
+ rollout_status: Optional[pulumi.Input[str]] = None):
38332
+ """
38333
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] dimensions: (Output)
38334
+ The map holding related quota dimensions
38335
+ :param pulumi.Input[int] future_limit: (Output)
38336
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
38337
+ :param pulumi.Input[int] limit: (Output)
38338
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
38339
+ :param pulumi.Input[str] limit_name: (Output)
38340
+ The name of the quota limit.
38341
+ :param pulumi.Input[str] metric_name: (Output)
38342
+ The Compute Engine quota metric name.
38343
+ :param pulumi.Input[str] rollout_status: (Output)
38344
+ Rollout status of the future quota limit.
38345
+ """
38346
+ if dimensions is not None:
38347
+ pulumi.set(__self__, "dimensions", dimensions)
38348
+ if future_limit is not None:
38349
+ pulumi.set(__self__, "future_limit", future_limit)
38350
+ if limit is not None:
38351
+ pulumi.set(__self__, "limit", limit)
38352
+ if limit_name is not None:
38353
+ pulumi.set(__self__, "limit_name", limit_name)
38354
+ if metric_name is not None:
38355
+ pulumi.set(__self__, "metric_name", metric_name)
38356
+ if rollout_status is not None:
38357
+ pulumi.set(__self__, "rollout_status", rollout_status)
38358
+
38359
+ @property
38360
+ @pulumi.getter
38361
+ def dimensions(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
38362
+ """
38363
+ (Output)
38364
+ The map holding related quota dimensions
38365
+ """
38366
+ return pulumi.get(self, "dimensions")
38367
+
38368
+ @dimensions.setter
38369
+ def dimensions(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
38370
+ pulumi.set(self, "dimensions", value)
38371
+
38372
+ @property
38373
+ @pulumi.getter(name="futureLimit")
38374
+ def future_limit(self) -> Optional[pulumi.Input[int]]:
38375
+ """
38376
+ (Output)
38377
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
38378
+ """
38379
+ return pulumi.get(self, "future_limit")
38380
+
38381
+ @future_limit.setter
38382
+ def future_limit(self, value: Optional[pulumi.Input[int]]):
38383
+ pulumi.set(self, "future_limit", value)
38384
+
38385
+ @property
38386
+ @pulumi.getter
38387
+ def limit(self) -> Optional[pulumi.Input[int]]:
38388
+ """
38389
+ (Output)
38390
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
38391
+ """
38392
+ return pulumi.get(self, "limit")
38393
+
38394
+ @limit.setter
38395
+ def limit(self, value: Optional[pulumi.Input[int]]):
38396
+ pulumi.set(self, "limit", value)
38397
+
38398
+ @property
38399
+ @pulumi.getter(name="limitName")
38400
+ def limit_name(self) -> Optional[pulumi.Input[str]]:
38401
+ """
38402
+ (Output)
38403
+ The name of the quota limit.
38404
+ """
38405
+ return pulumi.get(self, "limit_name")
38406
+
38407
+ @limit_name.setter
38408
+ def limit_name(self, value: Optional[pulumi.Input[str]]):
38409
+ pulumi.set(self, "limit_name", value)
38410
+
38411
+ @property
38412
+ @pulumi.getter(name="metricName")
38413
+ def metric_name(self) -> Optional[pulumi.Input[str]]:
38414
+ """
38415
+ (Output)
38416
+ The Compute Engine quota metric name.
38417
+ """
38418
+ return pulumi.get(self, "metric_name")
38419
+
38420
+ @metric_name.setter
38421
+ def metric_name(self, value: Optional[pulumi.Input[str]]):
38422
+ pulumi.set(self, "metric_name", value)
38423
+
38424
+ @property
38425
+ @pulumi.getter(name="rolloutStatus")
38426
+ def rollout_status(self) -> Optional[pulumi.Input[str]]:
38427
+ """
38428
+ (Output)
38429
+ Rollout status of the future quota limit.
38430
+ """
38431
+ return pulumi.get(self, "rollout_status")
38432
+
38433
+ @rollout_status.setter
38434
+ def rollout_status(self, value: Optional[pulumi.Input[str]]):
38435
+ pulumi.set(self, "rollout_status", value)
38436
+
38437
+
38438
+ if not MYPY:
38439
+ class RegionSecurityPolicyDdosProtectionConfigArgsDict(TypedDict):
38440
+ ddos_protection: pulumi.Input[str]
38441
+ """
38442
+ Google Cloud Armor offers the following options to help protect systems against DDoS attacks:
38443
+ - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.
38444
+ - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.
38445
+ - ADVANCED_PREVIEW: flag to enable the security policy in preview mode.
38446
+ Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`.
38447
+ """
38448
+ elif False:
38449
+ RegionSecurityPolicyDdosProtectionConfigArgsDict: TypeAlias = Mapping[str, Any]
38450
+
38451
+ @pulumi.input_type
38452
+ class RegionSecurityPolicyDdosProtectionConfigArgs:
38453
+ def __init__(__self__, *,
38454
+ ddos_protection: pulumi.Input[str]):
38455
+ """
38456
+ :param pulumi.Input[str] ddos_protection: Google Cloud Armor offers the following options to help protect systems against DDoS attacks:
38457
+ - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.
38458
+ - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.
38459
+ - ADVANCED_PREVIEW: flag to enable the security policy in preview mode.
38460
+ Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`.
38461
+ """
38462
+ pulumi.set(__self__, "ddos_protection", ddos_protection)
38463
+
38464
+ @property
38465
+ @pulumi.getter(name="ddosProtection")
38466
+ def ddos_protection(self) -> pulumi.Input[str]:
38467
+ """
38468
+ Google Cloud Armor offers the following options to help protect systems against DDoS attacks:
38469
+ - STANDARD: basic always-on protection for network load balancers, protocol forwarding, or VMs with public IP addresses.
38470
+ - ADVANCED: additional protections for Managed Protection Plus subscribers who use network load balancers, protocol forwarding, or VMs with public IP addresses.
38471
+ - ADVANCED_PREVIEW: flag to enable the security policy in preview mode.
38472
+ Possible values are: `ADVANCED`, `ADVANCED_PREVIEW`, `STANDARD`.
38473
+ """
38474
+ return pulumi.get(self, "ddos_protection")
38475
+
38476
+ @ddos_protection.setter
38477
+ def ddos_protection(self, value: pulumi.Input[str]):
38478
+ pulumi.set(self, "ddos_protection", value)
38479
+
38480
+
38481
+ if not MYPY:
38482
+ class RegionSecurityPolicyRuleArgsDict(TypedDict):
38483
+ action: pulumi.Input[str]
38484
+ """
38485
+ The Action to perform when the rule is matched. The following are the valid actions:
38486
+ * allow: allow access to target.
38487
+ * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502.
38488
+ * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set.
38489
+ * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR.
38490
+ * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this.
38491
+ """
38492
+ priority: pulumi.Input[int]
38493
+ """
38494
+ An integer indicating the priority of a rule in the list.
38495
+ The priority must be a positive value between 0 and 2147483647.
38496
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
38497
+ """
38498
+ description: NotRequired[pulumi.Input[str]]
38499
+ """
38500
+ An optional description of this resource. Provide this property when you create the resource.
38501
+ """
38502
+ match: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchArgsDict']]
38503
+ """
38504
+ A match condition that incoming traffic is evaluated against.
38505
+ If it evaluates to true, the corresponding 'action' is enforced.
38506
+ Structure is documented below.
38507
+ """
38508
+ network_match: NotRequired[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgsDict']]
38509
+ """
38510
+ A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced.
38511
+ The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields').
38512
+ Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds.
38513
+ Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all.
38514
+ For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet.
38515
+ Example:
38516
+ networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff"
38517
+ The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive
38518
+ Structure is documented below.
38519
+ """
38520
+ preconfigured_waf_config: NotRequired[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgsDict']]
38521
+ """
38522
+ Preconfigured WAF configuration to be applied for the rule.
38523
+ If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.
38524
+ Structure is documented below.
38525
+ """
38526
+ preview: NotRequired[pulumi.Input[bool]]
38527
+ """
38528
+ If set to true, the specified action is not enforced.
38529
+ """
38530
+ rate_limit_options: NotRequired[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgsDict']]
38531
+ """
38532
+ Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions.
38533
+ Structure is documented below.
38534
+ """
38535
+ elif False:
38536
+ RegionSecurityPolicyRuleArgsDict: TypeAlias = Mapping[str, Any]
38537
+
38538
+ @pulumi.input_type
38539
+ class RegionSecurityPolicyRuleArgs:
38540
+ def __init__(__self__, *,
38541
+ action: pulumi.Input[str],
38542
+ priority: pulumi.Input[int],
38543
+ description: Optional[pulumi.Input[str]] = None,
38544
+ match: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchArgs']] = None,
38545
+ network_match: Optional[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs']] = None,
38546
+ preconfigured_waf_config: Optional[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs']] = None,
38547
+ preview: Optional[pulumi.Input[bool]] = None,
38548
+ rate_limit_options: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs']] = None):
38549
+ """
38550
+ :param pulumi.Input[str] action: The Action to perform when the rule is matched. The following are the valid actions:
38551
+ * allow: allow access to target.
38552
+ * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502.
38553
+ * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set.
38554
+ * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR.
38555
+ * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this.
38556
+ :param pulumi.Input[int] priority: An integer indicating the priority of a rule in the list.
38557
+ The priority must be a positive value between 0 and 2147483647.
38558
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
38559
+ :param pulumi.Input[str] description: An optional description of this resource. Provide this property when you create the resource.
38560
+ :param pulumi.Input['RegionSecurityPolicyRuleMatchArgs'] match: A match condition that incoming traffic is evaluated against.
38561
+ If it evaluates to true, the corresponding 'action' is enforced.
38562
+ Structure is documented below.
38563
+ :param pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs'] network_match: A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced.
38564
+ The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields').
38565
+ Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds.
38566
+ Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all.
38567
+ For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet.
38568
+ Example:
38569
+ networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff"
38570
+ The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive
38571
+ Structure is documented below.
38572
+ :param pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs'] preconfigured_waf_config: Preconfigured WAF configuration to be applied for the rule.
38573
+ If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.
38574
+ Structure is documented below.
38575
+ :param pulumi.Input[bool] preview: If set to true, the specified action is not enforced.
38576
+ :param pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs'] rate_limit_options: Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions.
38577
+ Structure is documented below.
38578
+ """
38579
+ pulumi.set(__self__, "action", action)
38580
+ pulumi.set(__self__, "priority", priority)
38581
+ if description is not None:
38582
+ pulumi.set(__self__, "description", description)
38583
+ if match is not None:
38584
+ pulumi.set(__self__, "match", match)
38585
+ if network_match is not None:
38586
+ pulumi.set(__self__, "network_match", network_match)
38587
+ if preconfigured_waf_config is not None:
38588
+ pulumi.set(__self__, "preconfigured_waf_config", preconfigured_waf_config)
38589
+ if preview is not None:
38590
+ pulumi.set(__self__, "preview", preview)
38591
+ if rate_limit_options is not None:
38592
+ pulumi.set(__self__, "rate_limit_options", rate_limit_options)
38593
+
38594
+ @property
38595
+ @pulumi.getter
38596
+ def action(self) -> pulumi.Input[str]:
38597
+ """
38598
+ The Action to perform when the rule is matched. The following are the valid actions:
38599
+ * allow: allow access to target.
38600
+ * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502.
38601
+ * rate_based_ban: limit client traffic to the configured threshold and ban the client if the traffic exceeds the threshold. Configure parameters for this action in RateLimitOptions. Requires rateLimitOptions to be set.
38602
+ * redirect: redirect to a different target. This can either be an internal reCAPTCHA redirect, or an external URL-based redirect via a 302 response. Parameters for this action can be configured via redirectOptions. This action is only supported in Global Security Policies of type CLOUD_ARMOR.
38603
+ * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this.
38604
+ """
38605
+ return pulumi.get(self, "action")
38606
+
38607
+ @action.setter
38608
+ def action(self, value: pulumi.Input[str]):
38609
+ pulumi.set(self, "action", value)
38610
+
38611
+ @property
38612
+ @pulumi.getter
38613
+ def priority(self) -> pulumi.Input[int]:
38614
+ """
38615
+ An integer indicating the priority of a rule in the list.
38616
+ The priority must be a positive value between 0 and 2147483647.
38617
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
38618
+ """
38619
+ return pulumi.get(self, "priority")
38620
+
38621
+ @priority.setter
38622
+ def priority(self, value: pulumi.Input[int]):
38623
+ pulumi.set(self, "priority", value)
38624
+
38625
+ @property
38626
+ @pulumi.getter
38627
+ def description(self) -> Optional[pulumi.Input[str]]:
38628
+ """
38629
+ An optional description of this resource. Provide this property when you create the resource.
38630
+ """
38631
+ return pulumi.get(self, "description")
38632
+
38633
+ @description.setter
38634
+ def description(self, value: Optional[pulumi.Input[str]]):
38635
+ pulumi.set(self, "description", value)
38636
+
38637
+ @property
38638
+ @pulumi.getter
38639
+ def match(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchArgs']]:
38640
+ """
38641
+ A match condition that incoming traffic is evaluated against.
38642
+ If it evaluates to true, the corresponding 'action' is enforced.
38643
+ Structure is documented below.
38644
+ """
38645
+ return pulumi.get(self, "match")
38646
+
38647
+ @match.setter
38648
+ def match(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchArgs']]):
38649
+ pulumi.set(self, "match", value)
38650
+
38651
+ @property
38652
+ @pulumi.getter(name="networkMatch")
38653
+ def network_match(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs']]:
38654
+ """
38655
+ A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced.
38656
+ The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields').
38657
+ Field values may be extracted directly from the packet or derived from it (e.g. 'srcRegionCodes'). Some fields may not be present in every packet (e.g. 'srcPorts'). A user-defined field is only present if the base header is found in the packet and the entire field is in bounds.
38658
+ Each match field may specify which values can match it, listing one or more ranges, prefixes, or exact values that are considered a match for the field. A field value must be present in order to match a specified match field. If no match values are specified for a match field, then any field value is considered to match it, and it's not required to be present. For strings specifying '*' is also equivalent to match all.
38659
+ For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet.
38660
+ Example:
38661
+ networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff"
38662
+ The above match condition matches packets with a source IP in 192.0.2.0/24 or 198.51.100.0/24 and a user-defined field named "ipv4_fragment_offset" with a value between 1 and 0x1fff inclusive
38663
+ Structure is documented below.
38664
+ """
38665
+ return pulumi.get(self, "network_match")
38666
+
38667
+ @network_match.setter
38668
+ def network_match(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchArgs']]):
38669
+ pulumi.set(self, "network_match", value)
38670
+
38671
+ @property
38672
+ @pulumi.getter(name="preconfiguredWafConfig")
38673
+ def preconfigured_waf_config(self) -> Optional[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs']]:
38674
+ """
38675
+ Preconfigured WAF configuration to be applied for the rule.
38676
+ If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.
38677
+ Structure is documented below.
38678
+ """
38679
+ return pulumi.get(self, "preconfigured_waf_config")
38680
+
38681
+ @preconfigured_waf_config.setter
38682
+ def preconfigured_waf_config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRulePreconfiguredWafConfigArgs']]):
38683
+ pulumi.set(self, "preconfigured_waf_config", value)
38684
+
38685
+ @property
38686
+ @pulumi.getter
38687
+ def preview(self) -> Optional[pulumi.Input[bool]]:
38688
+ """
38689
+ If set to true, the specified action is not enforced.
38690
+ """
38691
+ return pulumi.get(self, "preview")
38692
+
38693
+ @preview.setter
38694
+ def preview(self, value: Optional[pulumi.Input[bool]]):
38695
+ pulumi.set(self, "preview", value)
38696
+
38697
+ @property
38698
+ @pulumi.getter(name="rateLimitOptions")
38699
+ def rate_limit_options(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs']]:
38700
+ """
38701
+ Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions.
38702
+ Structure is documented below.
38703
+ """
38704
+ return pulumi.get(self, "rate_limit_options")
38705
+
38706
+ @rate_limit_options.setter
38707
+ def rate_limit_options(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleRateLimitOptionsArgs']]):
38708
+ pulumi.set(self, "rate_limit_options", value)
38709
+
38710
+
38711
+ if not MYPY:
38712
+ class RegionSecurityPolicyRuleMatchArgsDict(TypedDict):
38713
+ config: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgsDict']]
38714
+ """
38715
+ The configuration options available when specifying versionedExpr.
38716
+ This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
38717
+ Structure is documented below.
38718
+ """
38719
+ expr: NotRequired[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgsDict']]
38720
+ """
38721
+ User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
38722
+ Structure is documented below.
38723
+ """
38724
+ versioned_expr: NotRequired[pulumi.Input[str]]
38725
+ """
38726
+ Preconfigured versioned expression. If this field is specified, config must also be specified.
38727
+ Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
38728
+ Possible values are: `SRC_IPS_V1`.
38729
+ """
38730
+ elif False:
38731
+ RegionSecurityPolicyRuleMatchArgsDict: TypeAlias = Mapping[str, Any]
38732
+
38733
+ @pulumi.input_type
38734
+ class RegionSecurityPolicyRuleMatchArgs:
38735
+ def __init__(__self__, *,
38736
+ config: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']] = None,
38737
+ expr: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']] = None,
38738
+ versioned_expr: Optional[pulumi.Input[str]] = None):
38739
+ """
38740
+ :param pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs'] config: The configuration options available when specifying versionedExpr.
38741
+ This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
38742
+ Structure is documented below.
38743
+ :param pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs'] expr: User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
38744
+ Structure is documented below.
38745
+ :param pulumi.Input[str] versioned_expr: Preconfigured versioned expression. If this field is specified, config must also be specified.
38746
+ Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
38747
+ Possible values are: `SRC_IPS_V1`.
38748
+ """
38749
+ if config is not None:
38750
+ pulumi.set(__self__, "config", config)
38751
+ if expr is not None:
38752
+ pulumi.set(__self__, "expr", expr)
38753
+ if versioned_expr is not None:
38754
+ pulumi.set(__self__, "versioned_expr", versioned_expr)
38755
+
38756
+ @property
38757
+ @pulumi.getter
38758
+ def config(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]:
38759
+ """
38760
+ The configuration options available when specifying versionedExpr.
38761
+ This field must be specified if versionedExpr is specified and cannot be specified if versionedExpr is not specified.
38762
+ Structure is documented below.
38763
+ """
38764
+ return pulumi.get(self, "config")
38765
+
38766
+ @config.setter
38767
+ def config(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchConfigArgs']]):
38768
+ pulumi.set(self, "config", value)
38769
+
38770
+ @property
38771
+ @pulumi.getter
38772
+ def expr(self) -> Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]:
38773
+ """
38774
+ User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header.
38775
+ Structure is documented below.
38776
+ """
38777
+ return pulumi.get(self, "expr")
38778
+
38779
+ @expr.setter
38780
+ def expr(self, value: Optional[pulumi.Input['RegionSecurityPolicyRuleMatchExprArgs']]):
38781
+ pulumi.set(self, "expr", value)
38782
+
38783
+ @property
38784
+ @pulumi.getter(name="versionedExpr")
38785
+ def versioned_expr(self) -> Optional[pulumi.Input[str]]:
38786
+ """
38787
+ Preconfigured versioned expression. If this field is specified, config must also be specified.
38788
+ Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding srcIpRange field in config.
38789
+ Possible values are: `SRC_IPS_V1`.
38790
+ """
38791
+ return pulumi.get(self, "versioned_expr")
38792
+
38793
+ @versioned_expr.setter
38794
+ def versioned_expr(self, value: Optional[pulumi.Input[str]]):
38795
+ pulumi.set(self, "versioned_expr", value)
38796
+
38797
+
38798
+ if not MYPY:
38799
+ class RegionSecurityPolicyRuleMatchConfigArgsDict(TypedDict):
38800
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
38801
+ """
38802
+ CIDR IP address range. Maximum number of srcIpRanges allowed is 10.
38803
+ """
38804
+ elif False:
38805
+ RegionSecurityPolicyRuleMatchConfigArgsDict: TypeAlias = Mapping[str, Any]
38806
+
38807
+ @pulumi.input_type
38808
+ class RegionSecurityPolicyRuleMatchConfigArgs:
38809
+ def __init__(__self__, *,
38810
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
38811
+ """
38812
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: CIDR IP address range. Maximum number of srcIpRanges allowed is 10.
38813
+ """
38814
+ if src_ip_ranges is not None:
38815
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
38816
+
38817
+ @property
38818
+ @pulumi.getter(name="srcIpRanges")
38819
+ def src_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
38820
+ """
38821
+ CIDR IP address range. Maximum number of srcIpRanges allowed is 10.
38822
+ """
38823
+ return pulumi.get(self, "src_ip_ranges")
38824
+
38825
+ @src_ip_ranges.setter
38826
+ def src_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
38827
+ pulumi.set(self, "src_ip_ranges", value)
38828
+
38829
+
38830
+ if not MYPY:
38831
+ class RegionSecurityPolicyRuleMatchExprArgsDict(TypedDict):
38832
+ expression: pulumi.Input[str]
38833
+ """
38834
+ Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
38835
+ """
38836
+ elif False:
38837
+ RegionSecurityPolicyRuleMatchExprArgsDict: TypeAlias = Mapping[str, Any]
38838
+
38839
+ @pulumi.input_type
38840
+ class RegionSecurityPolicyRuleMatchExprArgs:
38841
+ def __init__(__self__, *,
38842
+ expression: pulumi.Input[str]):
38843
+ """
38844
+ :param pulumi.Input[str] expression: Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
38845
+ """
38846
+ pulumi.set(__self__, "expression", expression)
38847
+
38848
+ @property
38849
+ @pulumi.getter
38850
+ def expression(self) -> pulumi.Input[str]:
38851
+ """
38852
+ Textual representation of an expression in Common Expression Language syntax. The application context of the containing message determines which well-known feature set of CEL is supported.
38853
+ """
38854
+ return pulumi.get(self, "expression")
38855
+
38856
+ @expression.setter
38857
+ def expression(self, value: pulumi.Input[str]):
38858
+ pulumi.set(self, "expression", value)
38859
+
38860
+
38861
+ if not MYPY:
38862
+ class RegionSecurityPolicyRuleNetworkMatchArgsDict(TypedDict):
38863
+ dest_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
38864
+ """
38865
+ Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
38866
+ """
38867
+ dest_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
38868
+ """
38869
+ Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
38870
+ """
38871
+ ip_protocols: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
38872
+ """
38873
+ IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp".
38874
+ """
38875
+ src_asns: NotRequired[pulumi.Input[Sequence[pulumi.Input[int]]]]
38876
+ """
38877
+ BGP Autonomous System Number associated with the source IP address.
38878
+ """
38879
+ src_ip_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
38880
+ """
38881
+ Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
38882
+ """
38883
+ src_ports: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
38884
+ """
38885
+ Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
38886
+ """
38887
+ src_region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
38888
+ """
38889
+ Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.
38890
+ """
38891
+ user_defined_fields: NotRequired[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgsDict']]]]
38892
+ """
38893
+ User-defined fields. Each element names a defined field and lists the matching values for that field.
38894
+ Structure is documented below.
38895
+ """
38896
+ elif False:
38897
+ RegionSecurityPolicyRuleNetworkMatchArgsDict: TypeAlias = Mapping[str, Any]
38898
+
38899
+ @pulumi.input_type
38900
+ class RegionSecurityPolicyRuleNetworkMatchArgs:
38901
+ def __init__(__self__, *,
38902
+ dest_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38903
+ dest_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38904
+ ip_protocols: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38905
+ src_asns: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None,
38906
+ src_ip_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38907
+ src_ports: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38908
+ src_region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
38909
+ user_defined_fields: Optional[pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]]] = None):
38910
+ """
38911
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ip_ranges: Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
38912
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] dest_ports: Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
38913
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_protocols: IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp".
38914
+ :param pulumi.Input[Sequence[pulumi.Input[int]]] src_asns: BGP Autonomous System Number associated with the source IP address.
38915
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ip_ranges: Source IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
38916
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_ports: Source port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
38917
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] src_region_codes: Two-letter ISO 3166-1 alpha-2 country code associated with the source IP address.
38918
+ :param pulumi.Input[Sequence[pulumi.Input['RegionSecurityPolicyRuleNetworkMatchUserDefinedFieldArgs']]] user_defined_fields: User-defined fields. Each element names a defined field and lists the matching values for that field.
38919
+ Structure is documented below.
38920
+ """
38921
+ if dest_ip_ranges is not None:
38922
+ pulumi.set(__self__, "dest_ip_ranges", dest_ip_ranges)
38923
+ if dest_ports is not None:
38924
+ pulumi.set(__self__, "dest_ports", dest_ports)
38925
+ if ip_protocols is not None:
38926
+ pulumi.set(__self__, "ip_protocols", ip_protocols)
38927
+ if src_asns is not None:
38928
+ pulumi.set(__self__, "src_asns", src_asns)
38929
+ if src_ip_ranges is not None:
38930
+ pulumi.set(__self__, "src_ip_ranges", src_ip_ranges)
38931
+ if src_ports is not None:
38932
+ pulumi.set(__self__, "src_ports", src_ports)
38933
+ if src_region_codes is not None:
38934
+ pulumi.set(__self__, "src_region_codes", src_region_codes)
38935
+ if user_defined_fields is not None:
38936
+ pulumi.set(__self__, "user_defined_fields", user_defined_fields)
38937
+
38938
+ @property
38939
+ @pulumi.getter(name="destIpRanges")
38940
+ def dest_ip_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
38941
+ """
38942
+ Destination IPv4/IPv6 addresses or CIDR prefixes, in standard text format.
38943
+ """
38944
+ return pulumi.get(self, "dest_ip_ranges")
38945
+
38946
+ @dest_ip_ranges.setter
38947
+ def dest_ip_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
38948
+ pulumi.set(self, "dest_ip_ranges", value)
38949
+
38950
+ @property
38951
+ @pulumi.getter(name="destPorts")
38952
+ def dest_ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
38953
+ """
38954
+ Destination port numbers for TCP/UDP/SCTP. Each element can be a 16-bit unsigned decimal number (e.g. "80") or range (e.g. "0-1023").
38955
+ """
38956
+ return pulumi.get(self, "dest_ports")
38957
+
38958
+ @dest_ports.setter
38959
+ def dest_ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
38960
+ pulumi.set(self, "dest_ports", value)
38961
+
38962
+ @property
38963
+ @pulumi.getter(name="ipProtocols")
38964
+ def ip_protocols(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
38965
+ """
38966
+ IPv4 protocol / IPv6 next header (after extension headers). Each element can be an 8-bit unsigned decimal number (e.g. "6"), range (e.g. "253-254"), or one of the following protocol names: "tcp", "udp", "icmp", "esp", "ah", "ipip", or "sctp".
38967
+ """
38968
+ return pulumi.get(self, "ip_protocols")
37062
38969
 
37063
38970
  @ip_protocols.setter
37064
38971
  def ip_protocols(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
@@ -38117,7 +40024,7 @@ if not MYPY:
38117
40024
  """
38118
40025
  name: NotRequired[pulumi.Input[str]]
38119
40026
  """
38120
- The name of this field. Must be unique within the policy.
40027
+ Name of the user-defined field, as given in the definition.
38121
40028
  """
38122
40029
  offset: NotRequired[pulumi.Input[int]]
38123
40030
  """
@@ -38148,7 +40055,7 @@ class RegionSecurityPolicyUserDefinedFieldArgs:
38148
40055
  :param pulumi.Input[str] mask: If specified, apply this mask (bitwise AND) to the field to ignore bits before matching.
38149
40056
  Encoded as a hexadecimal number (starting with "0x").
38150
40057
  The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.
38151
- :param pulumi.Input[str] name: The name of this field. Must be unique within the policy.
40058
+ :param pulumi.Input[str] name: Name of the user-defined field, as given in the definition.
38152
40059
  :param pulumi.Input[int] offset: Offset of the first byte of the field (in network byte order) relative to 'base'.
38153
40060
  :param pulumi.Input[int] size: Size of the field in bytes. Valid values: 1-4.
38154
40061
  """
@@ -38197,7 +40104,7 @@ class RegionSecurityPolicyUserDefinedFieldArgs:
38197
40104
  @pulumi.getter
38198
40105
  def name(self) -> Optional[pulumi.Input[str]]:
38199
40106
  """
38200
- The name of this field. Must be unique within the policy.
40107
+ Name of the user-defined field, as given in the definition.
38201
40108
  """
38202
40109
  return pulumi.get(self, "name")
38203
40110
 
@@ -48314,7 +50221,7 @@ if not MYPY:
48314
50221
  class RouterPeerCustomLearnedIpRangeArgsDict(TypedDict):
48315
50222
  range: pulumi.Input[str]
48316
50223
  """
48317
- The IP range to advertise. The value must be a
50224
+ The IP range to learn. The value must be a
48318
50225
  CIDR-formatted string.
48319
50226
  """
48320
50227
  elif False:
@@ -48325,7 +50232,7 @@ class RouterPeerCustomLearnedIpRangeArgs:
48325
50232
  def __init__(__self__, *,
48326
50233
  range: pulumi.Input[str]):
48327
50234
  """
48328
- :param pulumi.Input[str] range: The IP range to advertise. The value must be a
50235
+ :param pulumi.Input[str] range: The IP range to learn. The value must be a
48329
50236
  CIDR-formatted string.
48330
50237
  """
48331
50238
  pulumi.set(__self__, "range", range)
@@ -48334,7 +50241,7 @@ class RouterPeerCustomLearnedIpRangeArgs:
48334
50241
  @pulumi.getter
48335
50242
  def range(self) -> pulumi.Input[str]:
48336
50243
  """
48337
- The IP range to advertise. The value must be a
50244
+ The IP range to learn. The value must be a
48338
50245
  CIDR-formatted string.
48339
50246
  """
48340
50247
  return pulumi.get(self, "range")