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
@@ -231,6 +231,7 @@ __all__ = [
231
231
  'NodeGroupShareSettings',
232
232
  'NodeGroupShareSettingsProjectMap',
233
233
  'NodeTemplateAccelerator',
234
+ 'NodeTemplateDisk',
234
235
  'NodeTemplateNodeTypeFlexibility',
235
236
  'NodeTemplateServerBinding',
236
237
  'OrganizationSecurityPolicyRuleMatch',
@@ -295,6 +296,8 @@ __all__ = [
295
296
  'RegionHealthCheckTcpHealthCheck',
296
297
  'RegionInstanceGroupManagerAllInstancesConfig',
297
298
  'RegionInstanceGroupManagerAutoHealingPolicies',
299
+ 'RegionInstanceGroupManagerInstanceFlexibilityPolicy',
300
+ 'RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection',
298
301
  'RegionInstanceGroupManagerInstanceLifecyclePolicy',
299
302
  'RegionInstanceGroupManagerNamedPort',
300
303
  'RegionInstanceGroupManagerParams',
@@ -355,7 +358,27 @@ __all__ = [
355
358
  'RegionPerInstanceConfigPreservedStateExternalIpIpAddress',
356
359
  'RegionPerInstanceConfigPreservedStateInternalIp',
357
360
  'RegionPerInstanceConfigPreservedStateInternalIpIpAddress',
361
+ 'RegionResizeRequestRequestedRunDuration',
362
+ 'RegionResizeRequestStatus',
363
+ 'RegionResizeRequestStatusError',
364
+ 'RegionResizeRequestStatusErrorError',
365
+ 'RegionResizeRequestStatusErrorErrorErrorDetail',
366
+ 'RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo',
367
+ 'RegionResizeRequestStatusErrorErrorErrorDetailHelp',
368
+ 'RegionResizeRequestStatusErrorErrorErrorDetailHelpLink',
369
+ 'RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage',
370
+ 'RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo',
371
+ 'RegionResizeRequestStatusLastAttempt',
372
+ 'RegionResizeRequestStatusLastAttemptError',
373
+ 'RegionResizeRequestStatusLastAttemptErrorError',
374
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail',
375
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo',
376
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp',
377
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink',
378
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage',
379
+ 'RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo',
358
380
  'RegionSecurityPolicyDdosProtectionConfig',
381
+ 'RegionSecurityPolicyRule',
359
382
  'RegionSecurityPolicyRuleMatch',
360
383
  'RegionSecurityPolicyRuleMatchConfig',
361
384
  'RegionSecurityPolicyRuleMatchExpr',
@@ -738,6 +761,8 @@ __all__ = [
738
761
  'GetRegionInstanceGroupInstanceNamedPortResult',
739
762
  'GetRegionInstanceGroupManagerAllInstancesConfigResult',
740
763
  'GetRegionInstanceGroupManagerAutoHealingPolicyResult',
764
+ 'GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult',
765
+ 'GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult',
741
766
  'GetRegionInstanceGroupManagerInstanceLifecyclePolicyResult',
742
767
  'GetRegionInstanceGroupManagerNamedPortResult',
743
768
  'GetRegionInstanceGroupManagerParamResult',
@@ -1342,7 +1367,7 @@ class AutoscalerAutoscalingPolicyScaleDownControl(dict):
1342
1367
  max_scaled_down_replicas: Optional['outputs.AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas'] = None,
1343
1368
  time_window_sec: Optional[int] = None):
1344
1369
  """
1345
- :param 'AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource
1370
+ :param 'AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource.
1346
1371
  Structure is documented below.
1347
1372
  :param int time_window_sec: How long back autoscaling should look when computing recommendations
1348
1373
  to include directives regarding slower scale down, as described above.
@@ -1356,7 +1381,7 @@ class AutoscalerAutoscalingPolicyScaleDownControl(dict):
1356
1381
  @pulumi.getter(name="maxScaledDownReplicas")
1357
1382
  def max_scaled_down_replicas(self) -> Optional['outputs.AutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas']:
1358
1383
  """
1359
- A nested object resource
1384
+ A nested object resource.
1360
1385
  Structure is documented below.
1361
1386
  """
1362
1387
  return pulumi.get(self, "max_scaled_down_replicas")
@@ -1431,7 +1456,7 @@ class AutoscalerAutoscalingPolicyScaleInControl(dict):
1431
1456
  max_scaled_in_replicas: Optional['outputs.AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas'] = None,
1432
1457
  time_window_sec: Optional[int] = None):
1433
1458
  """
1434
- :param 'AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource
1459
+ :param 'AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource.
1435
1460
  Structure is documented below.
1436
1461
  :param int time_window_sec: How long back autoscaling should look when computing recommendations
1437
1462
  to include directives regarding slower scale down, as described above.
@@ -1445,7 +1470,7 @@ class AutoscalerAutoscalingPolicyScaleInControl(dict):
1445
1470
  @pulumi.getter(name="maxScaledInReplicas")
1446
1471
  def max_scaled_in_replicas(self) -> Optional['outputs.AutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas']:
1447
1472
  """
1448
- A nested object resource
1473
+ A nested object resource.
1449
1474
  Structure is documented below.
1450
1475
  """
1451
1476
  return pulumi.get(self, "max_scaled_in_replicas")
@@ -4599,18 +4624,20 @@ class FirewallPolicyRuleMatch(dict):
4599
4624
  src_threat_intelligences: Optional[Sequence[str]] = None):
4600
4625
  """
4601
4626
  :param Sequence['FirewallPolicyRuleMatchLayer4ConfigArgs'] layer4_configs: Pairs of IP protocols and ports that the rule should match.
4602
- :param Sequence[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.
4603
- :param Sequence[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.
4604
- :param Sequence[str] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256.
4605
- :param Sequence[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.
4606
- :param Sequence[str] dest_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
4607
- :param Sequence[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.
4608
- :param Sequence[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.
4609
- :param Sequence[str] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
4610
- :param Sequence[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.
4611
- :param Sequence[str] src_threat_intelligences: Name of the Google Cloud Threat Intelligence list.
4627
+ Structure is documented below.
4628
+ :param Sequence[str] dest_address_groups: Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.
4629
+ :param Sequence[str] dest_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.
4630
+ :param Sequence[str] dest_ip_ranges: CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
4631
+ :param Sequence[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.
4632
+ :param Sequence[str] dest_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.
4633
+ :param Sequence[str] src_address_groups: Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.
4634
+ :param Sequence[str] src_fqdns: Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.
4635
+ :param Sequence[str] src_ip_ranges: CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
4636
+ :param Sequence[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.
4637
+ :param Sequence[str] src_threat_intelligences: Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.
4638
+
4612
4639
 
4613
- The `layer4_configs` block supports:
4640
+ <a name="nested_layer4_configs"></a>The `layer4_configs` block supports:
4614
4641
  """
4615
4642
  pulumi.set(__self__, "layer4_configs", layer4_configs)
4616
4643
  if dest_address_groups is not None:
@@ -4639,6 +4666,7 @@ class FirewallPolicyRuleMatch(dict):
4639
4666
  def layer4_configs(self) -> Sequence['outputs.FirewallPolicyRuleMatchLayer4Config']:
4640
4667
  """
4641
4668
  Pairs of IP protocols and ports that the rule should match.
4669
+ Structure is documented below.
4642
4670
  """
4643
4671
  return pulumi.get(self, "layer4_configs")
4644
4672
 
@@ -4646,7 +4674,7 @@ class FirewallPolicyRuleMatch(dict):
4646
4674
  @pulumi.getter(name="destAddressGroups")
4647
4675
  def dest_address_groups(self) -> Optional[Sequence[str]]:
4648
4676
  """
4649
- 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.
4677
+ Address groups which should be matched against the traffic destination. Maximum number of destination address groups is 10.
4650
4678
  """
4651
4679
  return pulumi.get(self, "dest_address_groups")
4652
4680
 
@@ -4654,7 +4682,7 @@ class FirewallPolicyRuleMatch(dict):
4654
4682
  @pulumi.getter(name="destFqdns")
4655
4683
  def dest_fqdns(self) -> Optional[Sequence[str]]:
4656
4684
  """
4657
- 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.
4685
+ Fully Qualified Domain Name (FQDN) which should be matched against traffic destination. Maximum number of destination fqdn allowed is 100.
4658
4686
  """
4659
4687
  return pulumi.get(self, "dest_fqdns")
4660
4688
 
@@ -4662,7 +4690,7 @@ class FirewallPolicyRuleMatch(dict):
4662
4690
  @pulumi.getter(name="destIpRanges")
4663
4691
  def dest_ip_ranges(self) -> Optional[Sequence[str]]:
4664
4692
  """
4665
- CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 256.
4693
+ CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is 5000.
4666
4694
  """
4667
4695
  return pulumi.get(self, "dest_ip_ranges")
4668
4696
 
@@ -4670,7 +4698,7 @@ class FirewallPolicyRuleMatch(dict):
4670
4698
  @pulumi.getter(name="destRegionCodes")
4671
4699
  def dest_region_codes(self) -> Optional[Sequence[str]]:
4672
4700
  """
4673
- 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.
4701
+ 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.
4674
4702
  """
4675
4703
  return pulumi.get(self, "dest_region_codes")
4676
4704
 
@@ -4678,7 +4706,7 @@ class FirewallPolicyRuleMatch(dict):
4678
4706
  @pulumi.getter(name="destThreatIntelligences")
4679
4707
  def dest_threat_intelligences(self) -> Optional[Sequence[str]]:
4680
4708
  """
4681
- Name of the Google Cloud Threat Intelligence list.
4709
+ Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic destination.
4682
4710
  """
4683
4711
  return pulumi.get(self, "dest_threat_intelligences")
4684
4712
 
@@ -4686,7 +4714,7 @@ class FirewallPolicyRuleMatch(dict):
4686
4714
  @pulumi.getter(name="srcAddressGroups")
4687
4715
  def src_address_groups(self) -> Optional[Sequence[str]]:
4688
4716
  """
4689
- 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.
4717
+ Address groups which should be matched against the traffic source. Maximum number of source address groups is 10.
4690
4718
  """
4691
4719
  return pulumi.get(self, "src_address_groups")
4692
4720
 
@@ -4694,7 +4722,7 @@ class FirewallPolicyRuleMatch(dict):
4694
4722
  @pulumi.getter(name="srcFqdns")
4695
4723
  def src_fqdns(self) -> Optional[Sequence[str]]:
4696
4724
  """
4697
- 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.
4725
+ Fully Qualified Domain Name (FQDN) which should be matched against traffic source. Maximum number of source fqdn allowed is 100.
4698
4726
  """
4699
4727
  return pulumi.get(self, "src_fqdns")
4700
4728
 
@@ -4702,7 +4730,7 @@ class FirewallPolicyRuleMatch(dict):
4702
4730
  @pulumi.getter(name="srcIpRanges")
4703
4731
  def src_ip_ranges(self) -> Optional[Sequence[str]]:
4704
4732
  """
4705
- CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 256.
4733
+ CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
4706
4734
  """
4707
4735
  return pulumi.get(self, "src_ip_ranges")
4708
4736
 
@@ -4710,7 +4738,7 @@ class FirewallPolicyRuleMatch(dict):
4710
4738
  @pulumi.getter(name="srcRegionCodes")
4711
4739
  def src_region_codes(self) -> Optional[Sequence[str]]:
4712
4740
  """
4713
- 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.
4741
+ 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.
4714
4742
  """
4715
4743
  return pulumi.get(self, "src_region_codes")
4716
4744
 
@@ -4718,9 +4746,10 @@ class FirewallPolicyRuleMatch(dict):
4718
4746
  @pulumi.getter(name="srcThreatIntelligences")
4719
4747
  def src_threat_intelligences(self) -> Optional[Sequence[str]]:
4720
4748
  """
4721
- Name of the Google Cloud Threat Intelligence list.
4749
+ Names of Network Threat Intelligence lists. The IPs in these lists will be matched against traffic source.
4722
4750
 
4723
- The `layer4_configs` block supports:
4751
+
4752
+ <a name="nested_layer4_configs"></a>The `layer4_configs` block supports:
4724
4753
  """
4725
4754
  return pulumi.get(self, "src_threat_intelligences")
4726
4755
 
@@ -4748,8 +4777,10 @@ class FirewallPolicyRuleMatchLayer4Config(dict):
4748
4777
  ip_protocol: str,
4749
4778
  ports: Optional[Sequence[str]] = None):
4750
4779
  """
4751
- :param 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.
4752
- :param Sequence[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: ``.
4780
+ :param str ip_protocol: The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.
4781
+ 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.
4782
+ :param Sequence[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.
4783
+ Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
4753
4784
  """
4754
4785
  pulumi.set(__self__, "ip_protocol", ip_protocol)
4755
4786
  if ports is not None:
@@ -4759,7 +4790,8 @@ class FirewallPolicyRuleMatchLayer4Config(dict):
4759
4790
  @pulumi.getter(name="ipProtocol")
4760
4791
  def ip_protocol(self) -> str:
4761
4792
  """
4762
- 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.
4793
+ The IP protocol to which this rule applies. The protocol type is required when creating a firewall rule.
4794
+ 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.
4763
4795
  """
4764
4796
  return pulumi.get(self, "ip_protocol")
4765
4797
 
@@ -4767,7 +4799,8 @@ class FirewallPolicyRuleMatchLayer4Config(dict):
4767
4799
  @pulumi.getter
4768
4800
  def ports(self) -> Optional[Sequence[str]]:
4769
4801
  """
4770
- 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: ``.
4802
+ 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.
4803
+ Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
4771
4804
  """
4772
4805
  return pulumi.get(self, "ports")
4773
4806
 
@@ -17817,6 +17850,70 @@ class NodeTemplateAccelerator(dict):
17817
17850
  return pulumi.get(self, "accelerator_type")
17818
17851
 
17819
17852
 
17853
+ @pulumi.output_type
17854
+ class NodeTemplateDisk(dict):
17855
+ @staticmethod
17856
+ def __key_warning(key: str):
17857
+ suggest = None
17858
+ if key == "diskCount":
17859
+ suggest = "disk_count"
17860
+ elif key == "diskSizeGb":
17861
+ suggest = "disk_size_gb"
17862
+ elif key == "diskType":
17863
+ suggest = "disk_type"
17864
+
17865
+ if suggest:
17866
+ pulumi.log.warn(f"Key '{key}' not found in NodeTemplateDisk. Access the value via the '{suggest}' property getter instead.")
17867
+
17868
+ def __getitem__(self, key: str) -> Any:
17869
+ NodeTemplateDisk.__key_warning(key)
17870
+ return super().__getitem__(key)
17871
+
17872
+ def get(self, key: str, default = None) -> Any:
17873
+ NodeTemplateDisk.__key_warning(key)
17874
+ return super().get(key, default)
17875
+
17876
+ def __init__(__self__, *,
17877
+ disk_count: Optional[int] = None,
17878
+ disk_size_gb: Optional[int] = None,
17879
+ disk_type: Optional[str] = None):
17880
+ """
17881
+ :param int disk_count: Specifies the number of such disks.
17882
+ :param int disk_size_gb: Specifies the size of the disk in base-2 GB.
17883
+ :param 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.
17884
+ """
17885
+ if disk_count is not None:
17886
+ pulumi.set(__self__, "disk_count", disk_count)
17887
+ if disk_size_gb is not None:
17888
+ pulumi.set(__self__, "disk_size_gb", disk_size_gb)
17889
+ if disk_type is not None:
17890
+ pulumi.set(__self__, "disk_type", disk_type)
17891
+
17892
+ @property
17893
+ @pulumi.getter(name="diskCount")
17894
+ def disk_count(self) -> Optional[int]:
17895
+ """
17896
+ Specifies the number of such disks.
17897
+ """
17898
+ return pulumi.get(self, "disk_count")
17899
+
17900
+ @property
17901
+ @pulumi.getter(name="diskSizeGb")
17902
+ def disk_size_gb(self) -> Optional[int]:
17903
+ """
17904
+ Specifies the size of the disk in base-2 GB.
17905
+ """
17906
+ return pulumi.get(self, "disk_size_gb")
17907
+
17908
+ @property
17909
+ @pulumi.getter(name="diskType")
17910
+ def disk_type(self) -> Optional[str]:
17911
+ """
17912
+ 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.
17913
+ """
17914
+ return pulumi.get(self, "disk_type")
17915
+
17916
+
17820
17917
  @pulumi.output_type
17821
17918
  class NodeTemplateNodeTypeFlexibility(dict):
17822
17919
  @staticmethod
@@ -19170,7 +19267,7 @@ class RegionAutoscalerAutoscalingPolicyScaleDownControl(dict):
19170
19267
  max_scaled_down_replicas: Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas'] = None,
19171
19268
  time_window_sec: Optional[int] = None):
19172
19269
  """
19173
- :param 'RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource
19270
+ :param 'RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicasArgs' max_scaled_down_replicas: A nested object resource.
19174
19271
  Structure is documented below.
19175
19272
  :param int time_window_sec: How long back autoscaling should look when computing recommendations
19176
19273
  to include directives regarding slower scale down, as described above.
@@ -19184,7 +19281,7 @@ class RegionAutoscalerAutoscalingPolicyScaleDownControl(dict):
19184
19281
  @pulumi.getter(name="maxScaledDownReplicas")
19185
19282
  def max_scaled_down_replicas(self) -> Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleDownControlMaxScaledDownReplicas']:
19186
19283
  """
19187
- A nested object resource
19284
+ A nested object resource.
19188
19285
  Structure is documented below.
19189
19286
  """
19190
19287
  return pulumi.get(self, "max_scaled_down_replicas")
@@ -19259,7 +19356,7 @@ class RegionAutoscalerAutoscalingPolicyScaleInControl(dict):
19259
19356
  max_scaled_in_replicas: Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas'] = None,
19260
19357
  time_window_sec: Optional[int] = None):
19261
19358
  """
19262
- :param 'RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource
19359
+ :param 'RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicasArgs' max_scaled_in_replicas: A nested object resource.
19263
19360
  Structure is documented below.
19264
19361
  :param int time_window_sec: How long back autoscaling should look when computing recommendations
19265
19362
  to include directives regarding slower scale down, as described above.
@@ -19273,7 +19370,7 @@ class RegionAutoscalerAutoscalingPolicyScaleInControl(dict):
19273
19370
  @pulumi.getter(name="maxScaledInReplicas")
19274
19371
  def max_scaled_in_replicas(self) -> Optional['outputs.RegionAutoscalerAutoscalingPolicyScaleInControlMaxScaledInReplicas']:
19275
19372
  """
19276
- A nested object resource
19373
+ A nested object resource.
19277
19374
  Structure is documented below.
19278
19375
  """
19279
19376
  return pulumi.get(self, "max_scaled_in_replicas")
@@ -22478,10 +22575,8 @@ class RegionInstanceGroupManagerAllInstancesConfig(dict):
22478
22575
  labels: Optional[Mapping[str, str]] = None,
22479
22576
  metadata: Optional[Mapping[str, str]] = None):
22480
22577
  """
22481
- :param Mapping[str, str] labels: , The label key-value pairs that you want to patch onto the instance.
22482
-
22483
- - - -
22484
- :param Mapping[str, 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).
22578
+ :param Mapping[str, str] labels: The label key-value pairs that you want to patch onto the instance,
22579
+ :param Mapping[str, str] metadata: The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata,
22485
22580
  """
22486
22581
  if labels is not None:
22487
22582
  pulumi.set(__self__, "labels", labels)
@@ -22492,9 +22587,7 @@ class RegionInstanceGroupManagerAllInstancesConfig(dict):
22492
22587
  @pulumi.getter
22493
22588
  def labels(self) -> Optional[Mapping[str, str]]:
22494
22589
  """
22495
- , The label key-value pairs that you want to patch onto the instance.
22496
-
22497
- - - -
22590
+ The label key-value pairs that you want to patch onto the instance,
22498
22591
  """
22499
22592
  return pulumi.get(self, "labels")
22500
22593
 
@@ -22502,7 +22595,7 @@ class RegionInstanceGroupManagerAllInstancesConfig(dict):
22502
22595
  @pulumi.getter
22503
22596
  def metadata(self) -> Optional[Mapping[str, str]]:
22504
22597
  """
22505
- , 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).
22598
+ The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata,
22506
22599
  """
22507
22600
  return pulumi.get(self, "metadata")
22508
22601
 
@@ -22557,6 +22650,106 @@ class RegionInstanceGroupManagerAutoHealingPolicies(dict):
22557
22650
  return pulumi.get(self, "initial_delay_sec")
22558
22651
 
22559
22652
 
22653
+ @pulumi.output_type
22654
+ class RegionInstanceGroupManagerInstanceFlexibilityPolicy(dict):
22655
+ @staticmethod
22656
+ def __key_warning(key: str):
22657
+ suggest = None
22658
+ if key == "instanceSelections":
22659
+ suggest = "instance_selections"
22660
+
22661
+ if suggest:
22662
+ pulumi.log.warn(f"Key '{key}' not found in RegionInstanceGroupManagerInstanceFlexibilityPolicy. Access the value via the '{suggest}' property getter instead.")
22663
+
22664
+ def __getitem__(self, key: str) -> Any:
22665
+ RegionInstanceGroupManagerInstanceFlexibilityPolicy.__key_warning(key)
22666
+ return super().__getitem__(key)
22667
+
22668
+ def get(self, key: str, default = None) -> Any:
22669
+ RegionInstanceGroupManagerInstanceFlexibilityPolicy.__key_warning(key)
22670
+ return super().get(key, default)
22671
+
22672
+ def __init__(__self__, *,
22673
+ instance_selections: Optional[Sequence['outputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection']] = None):
22674
+ """
22675
+ :param Sequence['RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs'] instance_selections: Named instance selections configuring properties that the group will use when creating new VMs.
22676
+ """
22677
+ if instance_selections is not None:
22678
+ pulumi.set(__self__, "instance_selections", instance_selections)
22679
+
22680
+ @property
22681
+ @pulumi.getter(name="instanceSelections")
22682
+ def instance_selections(self) -> Optional[Sequence['outputs.RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection']]:
22683
+ """
22684
+ Named instance selections configuring properties that the group will use when creating new VMs.
22685
+ """
22686
+ return pulumi.get(self, "instance_selections")
22687
+
22688
+
22689
+ @pulumi.output_type
22690
+ class RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection(dict):
22691
+ @staticmethod
22692
+ def __key_warning(key: str):
22693
+ suggest = None
22694
+ if key == "machineTypes":
22695
+ suggest = "machine_types"
22696
+
22697
+ if suggest:
22698
+ pulumi.log.warn(f"Key '{key}' not found in RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection. Access the value via the '{suggest}' property getter instead.")
22699
+
22700
+ def __getitem__(self, key: str) -> Any:
22701
+ RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.__key_warning(key)
22702
+ return super().__getitem__(key)
22703
+
22704
+ def get(self, key: str, default = None) -> Any:
22705
+ RegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection.__key_warning(key)
22706
+ return super().get(key, default)
22707
+
22708
+ def __init__(__self__, *,
22709
+ machine_types: Sequence[str],
22710
+ name: str,
22711
+ rank: Optional[int] = None):
22712
+ """
22713
+ :param Sequence[str] machine_types: Full machine-type names, e.g. "n1-standard-16"
22714
+ :param str name: The name of the instance group manager. Must be 1-63
22715
+ characters long and comply with
22716
+ [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters
22717
+ include lowercase letters, numbers, and hyphens.
22718
+ :param 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.
22719
+ """
22720
+ pulumi.set(__self__, "machine_types", machine_types)
22721
+ pulumi.set(__self__, "name", name)
22722
+ if rank is not None:
22723
+ pulumi.set(__self__, "rank", rank)
22724
+
22725
+ @property
22726
+ @pulumi.getter(name="machineTypes")
22727
+ def machine_types(self) -> Sequence[str]:
22728
+ """
22729
+ Full machine-type names, e.g. "n1-standard-16"
22730
+ """
22731
+ return pulumi.get(self, "machine_types")
22732
+
22733
+ @property
22734
+ @pulumi.getter
22735
+ def name(self) -> str:
22736
+ """
22737
+ The name of the instance group manager. Must be 1-63
22738
+ characters long and comply with
22739
+ [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Supported characters
22740
+ include lowercase letters, numbers, and hyphens.
22741
+ """
22742
+ return pulumi.get(self, "name")
22743
+
22744
+ @property
22745
+ @pulumi.getter
22746
+ def rank(self) -> Optional[int]:
22747
+ """
22748
+ 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.
22749
+ """
22750
+ return pulumi.get(self, "rank")
22751
+
22752
+
22560
22753
  @pulumi.output_type
22561
22754
  class RegionInstanceGroupManagerInstanceLifecyclePolicy(dict):
22562
22755
  @staticmethod
@@ -22585,6 +22778,7 @@ class RegionInstanceGroupManagerInstanceLifecyclePolicy(dict):
22585
22778
  :param 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.
22586
22779
 
22587
22780
  - - -
22781
+ <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports:
22588
22782
  :param 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.
22589
22783
  """
22590
22784
  if default_action_on_failure is not None:
@@ -22599,6 +22793,7 @@ class RegionInstanceGroupManagerInstanceLifecyclePolicy(dict):
22599
22793
  , 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.
22600
22794
 
22601
22795
  - - -
22796
+ <a name="nested_instance_flexibility_policy"></a>The `instance_flexibility_policy` block supports:
22602
22797
  """
22603
22798
  return pulumi.get(self, "default_action_on_failure")
22604
22799
 
@@ -27063,287 +27258,1298 @@ class RegionPerInstanceConfigPreservedState(dict):
27063
27258
  return pulumi.get(self, "external_ips")
27064
27259
 
27065
27260
  @property
27066
- @pulumi.getter(name="internalIps")
27067
- def internal_ips(self) -> Optional[Sequence['outputs.RegionPerInstanceConfigPreservedStateInternalIp']]:
27261
+ @pulumi.getter(name="internalIps")
27262
+ def internal_ips(self) -> Optional[Sequence['outputs.RegionPerInstanceConfigPreservedStateInternalIp']]:
27263
+ """
27264
+ Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.
27265
+ Structure is documented below.
27266
+ """
27267
+ return pulumi.get(self, "internal_ips")
27268
+
27269
+ @property
27270
+ @pulumi.getter
27271
+ def metadata(self) -> Optional[Mapping[str, str]]:
27272
+ """
27273
+ Preserved metadata defined for this instance. This is a list of key->value pairs.
27274
+ """
27275
+ return pulumi.get(self, "metadata")
27276
+
27277
+
27278
+ @pulumi.output_type
27279
+ class RegionPerInstanceConfigPreservedStateDisk(dict):
27280
+ @staticmethod
27281
+ def __key_warning(key: str):
27282
+ suggest = None
27283
+ if key == "deviceName":
27284
+ suggest = "device_name"
27285
+ elif key == "deleteRule":
27286
+ suggest = "delete_rule"
27287
+
27288
+ if suggest:
27289
+ pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateDisk. Access the value via the '{suggest}' property getter instead.")
27290
+
27291
+ def __getitem__(self, key: str) -> Any:
27292
+ RegionPerInstanceConfigPreservedStateDisk.__key_warning(key)
27293
+ return super().__getitem__(key)
27294
+
27295
+ def get(self, key: str, default = None) -> Any:
27296
+ RegionPerInstanceConfigPreservedStateDisk.__key_warning(key)
27297
+ return super().get(key, default)
27298
+
27299
+ def __init__(__self__, *,
27300
+ device_name: str,
27301
+ source: str,
27302
+ delete_rule: Optional[str] = None,
27303
+ mode: Optional[str] = None):
27304
+ """
27305
+ :param str device_name: A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
27306
+ :param str source: The URI of an existing persistent disk to attach under the specified device-name in the format
27307
+ `projects/project-id/zones/zone/disks/disk-name`.
27308
+ :param str delete_rule: A value that prescribes what should happen to the stateful disk when the VM instance is deleted.
27309
+ The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`.
27310
+ `NEVER` - detach the disk when the VM is deleted, but do not delete the disk.
27311
+ `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently
27312
+ deleted from the instance group.
27313
+ Default value is `NEVER`.
27314
+ Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27315
+ :param str mode: The mode of the disk.
27316
+ Default value is `READ_WRITE`.
27317
+ Possible values are: `READ_ONLY`, `READ_WRITE`.
27318
+ """
27319
+ pulumi.set(__self__, "device_name", device_name)
27320
+ pulumi.set(__self__, "source", source)
27321
+ if delete_rule is not None:
27322
+ pulumi.set(__self__, "delete_rule", delete_rule)
27323
+ if mode is not None:
27324
+ pulumi.set(__self__, "mode", mode)
27325
+
27326
+ @property
27327
+ @pulumi.getter(name="deviceName")
27328
+ def device_name(self) -> str:
27329
+ """
27330
+ A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
27331
+ """
27332
+ return pulumi.get(self, "device_name")
27333
+
27334
+ @property
27335
+ @pulumi.getter
27336
+ def source(self) -> str:
27337
+ """
27338
+ The URI of an existing persistent disk to attach under the specified device-name in the format
27339
+ `projects/project-id/zones/zone/disks/disk-name`.
27340
+ """
27341
+ return pulumi.get(self, "source")
27342
+
27343
+ @property
27344
+ @pulumi.getter(name="deleteRule")
27345
+ def delete_rule(self) -> Optional[str]:
27346
+ """
27347
+ A value that prescribes what should happen to the stateful disk when the VM instance is deleted.
27348
+ The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`.
27349
+ `NEVER` - detach the disk when the VM is deleted, but do not delete the disk.
27350
+ `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently
27351
+ deleted from the instance group.
27352
+ Default value is `NEVER`.
27353
+ Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27354
+ """
27355
+ return pulumi.get(self, "delete_rule")
27356
+
27357
+ @property
27358
+ @pulumi.getter
27359
+ def mode(self) -> Optional[str]:
27360
+ """
27361
+ The mode of the disk.
27362
+ Default value is `READ_WRITE`.
27363
+ Possible values are: `READ_ONLY`, `READ_WRITE`.
27364
+ """
27365
+ return pulumi.get(self, "mode")
27366
+
27367
+
27368
+ @pulumi.output_type
27369
+ class RegionPerInstanceConfigPreservedStateExternalIp(dict):
27370
+ @staticmethod
27371
+ def __key_warning(key: str):
27372
+ suggest = None
27373
+ if key == "interfaceName":
27374
+ suggest = "interface_name"
27375
+ elif key == "autoDelete":
27376
+ suggest = "auto_delete"
27377
+ elif key == "ipAddress":
27378
+ suggest = "ip_address"
27379
+
27380
+ if suggest:
27381
+ pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateExternalIp. Access the value via the '{suggest}' property getter instead.")
27382
+
27383
+ def __getitem__(self, key: str) -> Any:
27384
+ RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key)
27385
+ return super().__getitem__(key)
27386
+
27387
+ def get(self, key: str, default = None) -> Any:
27388
+ RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key)
27389
+ return super().get(key, default)
27390
+
27391
+ def __init__(__self__, *,
27392
+ interface_name: str,
27393
+ auto_delete: Optional[str] = None,
27394
+ ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress'] = None):
27395
+ """
27396
+ :param str interface_name: The identifier for this object. Format specified above.
27397
+ :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27398
+ Default value is `NEVER`.
27399
+ Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27400
+ :param 'RegionPerInstanceConfigPreservedStateExternalIpIpAddressArgs' ip_address: Ip address representation
27401
+ Structure is documented below.
27402
+ """
27403
+ pulumi.set(__self__, "interface_name", interface_name)
27404
+ if auto_delete is not None:
27405
+ pulumi.set(__self__, "auto_delete", auto_delete)
27406
+ if ip_address is not None:
27407
+ pulumi.set(__self__, "ip_address", ip_address)
27408
+
27409
+ @property
27410
+ @pulumi.getter(name="interfaceName")
27411
+ def interface_name(self) -> str:
27412
+ """
27413
+ The identifier for this object. Format specified above.
27414
+ """
27415
+ return pulumi.get(self, "interface_name")
27416
+
27417
+ @property
27418
+ @pulumi.getter(name="autoDelete")
27419
+ def auto_delete(self) -> Optional[str]:
27420
+ """
27421
+ These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27422
+ Default value is `NEVER`.
27423
+ Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27424
+ """
27425
+ return pulumi.get(self, "auto_delete")
27426
+
27427
+ @property
27428
+ @pulumi.getter(name="ipAddress")
27429
+ def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress']:
27430
+ """
27431
+ Ip address representation
27432
+ Structure is documented below.
27433
+ """
27434
+ return pulumi.get(self, "ip_address")
27435
+
27436
+
27437
+ @pulumi.output_type
27438
+ class RegionPerInstanceConfigPreservedStateExternalIpIpAddress(dict):
27439
+ def __init__(__self__, *,
27440
+ address: Optional[str] = None):
27441
+ """
27442
+ :param str address: The URL of the reservation for this IP address.
27443
+ """
27444
+ if address is not None:
27445
+ pulumi.set(__self__, "address", address)
27446
+
27447
+ @property
27448
+ @pulumi.getter
27449
+ def address(self) -> Optional[str]:
27450
+ """
27451
+ The URL of the reservation for this IP address.
27452
+ """
27453
+ return pulumi.get(self, "address")
27454
+
27455
+
27456
+ @pulumi.output_type
27457
+ class RegionPerInstanceConfigPreservedStateInternalIp(dict):
27458
+ @staticmethod
27459
+ def __key_warning(key: str):
27460
+ suggest = None
27461
+ if key == "interfaceName":
27462
+ suggest = "interface_name"
27463
+ elif key == "autoDelete":
27464
+ suggest = "auto_delete"
27465
+ elif key == "ipAddress":
27466
+ suggest = "ip_address"
27467
+
27468
+ if suggest:
27469
+ pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateInternalIp. Access the value via the '{suggest}' property getter instead.")
27470
+
27471
+ def __getitem__(self, key: str) -> Any:
27472
+ RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key)
27473
+ return super().__getitem__(key)
27474
+
27475
+ def get(self, key: str, default = None) -> Any:
27476
+ RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key)
27477
+ return super().get(key, default)
27478
+
27479
+ def __init__(__self__, *,
27480
+ interface_name: str,
27481
+ auto_delete: Optional[str] = None,
27482
+ ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress'] = None):
27483
+ """
27484
+ :param str interface_name: The identifier for this object. Format specified above.
27485
+ :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27486
+ Default value is `NEVER`.
27487
+ Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27488
+ :param 'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs' ip_address: Ip address representation
27489
+ Structure is documented below.
27490
+ """
27491
+ pulumi.set(__self__, "interface_name", interface_name)
27492
+ if auto_delete is not None:
27493
+ pulumi.set(__self__, "auto_delete", auto_delete)
27494
+ if ip_address is not None:
27495
+ pulumi.set(__self__, "ip_address", ip_address)
27496
+
27497
+ @property
27498
+ @pulumi.getter(name="interfaceName")
27499
+ def interface_name(self) -> str:
27500
+ """
27501
+ The identifier for this object. Format specified above.
27502
+ """
27503
+ return pulumi.get(self, "interface_name")
27504
+
27505
+ @property
27506
+ @pulumi.getter(name="autoDelete")
27507
+ def auto_delete(self) -> Optional[str]:
27508
+ """
27509
+ These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27510
+ Default value is `NEVER`.
27511
+ Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27512
+ """
27513
+ return pulumi.get(self, "auto_delete")
27514
+
27515
+ @property
27516
+ @pulumi.getter(name="ipAddress")
27517
+ def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress']:
27518
+ """
27519
+ Ip address representation
27520
+ Structure is documented below.
27521
+ """
27522
+ return pulumi.get(self, "ip_address")
27523
+
27524
+
27525
+ @pulumi.output_type
27526
+ class RegionPerInstanceConfigPreservedStateInternalIpIpAddress(dict):
27527
+ def __init__(__self__, *,
27528
+ address: Optional[str] = None):
27529
+ """
27530
+ :param str address: The URL of the reservation for this IP address.
27531
+ """
27532
+ if address is not None:
27533
+ pulumi.set(__self__, "address", address)
27534
+
27535
+ @property
27536
+ @pulumi.getter
27537
+ def address(self) -> Optional[str]:
27538
+ """
27539
+ The URL of the reservation for this IP address.
27540
+ """
27541
+ return pulumi.get(self, "address")
27542
+
27543
+
27544
+ @pulumi.output_type
27545
+ class RegionResizeRequestRequestedRunDuration(dict):
27546
+ def __init__(__self__, *,
27547
+ seconds: str,
27548
+ nanos: Optional[int] = None):
27549
+ """
27550
+ :param 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.
27551
+ :param 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.
27552
+ """
27553
+ pulumi.set(__self__, "seconds", seconds)
27554
+ if nanos is not None:
27555
+ pulumi.set(__self__, "nanos", nanos)
27556
+
27557
+ @property
27558
+ @pulumi.getter
27559
+ def seconds(self) -> str:
27560
+ """
27561
+ 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.
27562
+ """
27563
+ return pulumi.get(self, "seconds")
27564
+
27565
+ @property
27566
+ @pulumi.getter
27567
+ def nanos(self) -> Optional[int]:
27568
+ """
27569
+ 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.
27570
+ """
27571
+ return pulumi.get(self, "nanos")
27572
+
27573
+
27574
+ @pulumi.output_type
27575
+ class RegionResizeRequestStatus(dict):
27576
+ @staticmethod
27577
+ def __key_warning(key: str):
27578
+ suggest = None
27579
+ if key == "lastAttempts":
27580
+ suggest = "last_attempts"
27581
+
27582
+ if suggest:
27583
+ pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatus. Access the value via the '{suggest}' property getter instead.")
27584
+
27585
+ def __getitem__(self, key: str) -> Any:
27586
+ RegionResizeRequestStatus.__key_warning(key)
27587
+ return super().__getitem__(key)
27588
+
27589
+ def get(self, key: str, default = None) -> Any:
27590
+ RegionResizeRequestStatus.__key_warning(key)
27591
+ return super().get(key, default)
27592
+
27593
+ def __init__(__self__, *,
27594
+ errors: Optional[Sequence['outputs.RegionResizeRequestStatusError']] = None,
27595
+ last_attempts: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttempt']] = None):
27596
+ """
27597
+ :param Sequence['RegionResizeRequestStatusErrorArgs'] errors: (Output)
27598
+ 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.
27599
+ Structure is documented below.
27600
+ :param Sequence['RegionResizeRequestStatusLastAttemptArgs'] last_attempts: (Output)
27601
+ 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.
27602
+ Structure is documented below.
27603
+ """
27604
+ if errors is not None:
27605
+ pulumi.set(__self__, "errors", errors)
27606
+ if last_attempts is not None:
27607
+ pulumi.set(__self__, "last_attempts", last_attempts)
27608
+
27609
+ @property
27610
+ @pulumi.getter
27611
+ def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusError']]:
27612
+ """
27613
+ (Output)
27614
+ 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.
27615
+ Structure is documented below.
27616
+ """
27617
+ return pulumi.get(self, "errors")
27618
+
27619
+ @property
27620
+ @pulumi.getter(name="lastAttempts")
27621
+ def last_attempts(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttempt']]:
27622
+ """
27623
+ (Output)
27624
+ 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.
27625
+ Structure is documented below.
27626
+ """
27627
+ return pulumi.get(self, "last_attempts")
27628
+
27629
+
27630
+ @pulumi.output_type
27631
+ class RegionResizeRequestStatusError(dict):
27632
+ def __init__(__self__, *,
27633
+ errors: Optional[Sequence['outputs.RegionResizeRequestStatusErrorError']] = None):
27634
+ """
27635
+ :param Sequence['RegionResizeRequestStatusErrorErrorArgs'] errors: (Output)
27636
+ The array of errors encountered while processing this operation.
27637
+ Structure is documented below.
27638
+ """
27639
+ if errors is not None:
27640
+ pulumi.set(__self__, "errors", errors)
27641
+
27642
+ @property
27643
+ @pulumi.getter
27644
+ def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorError']]:
27645
+ """
27646
+ (Output)
27647
+ The array of errors encountered while processing this operation.
27648
+ Structure is documented below.
27649
+ """
27650
+ return pulumi.get(self, "errors")
27651
+
27652
+
27653
+ @pulumi.output_type
27654
+ class RegionResizeRequestStatusErrorError(dict):
27655
+ @staticmethod
27656
+ def __key_warning(key: str):
27657
+ suggest = None
27658
+ if key == "errorDetails":
27659
+ suggest = "error_details"
27660
+
27661
+ if suggest:
27662
+ pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusErrorError. Access the value via the '{suggest}' property getter instead.")
27663
+
27664
+ def __getitem__(self, key: str) -> Any:
27665
+ RegionResizeRequestStatusErrorError.__key_warning(key)
27666
+ return super().__getitem__(key)
27667
+
27668
+ def get(self, key: str, default = None) -> Any:
27669
+ RegionResizeRequestStatusErrorError.__key_warning(key)
27670
+ return super().get(key, default)
27671
+
27672
+ def __init__(__self__, *,
27673
+ code: Optional[str] = None,
27674
+ error_details: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetail']] = None,
27675
+ location: Optional[str] = None,
27676
+ message: Optional[str] = None):
27677
+ """
27678
+ :param str code: (Output)
27679
+ The error type identifier for this error.
27680
+ :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailArgs'] error_details: (Output)
27681
+ 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.
27682
+ Structure is documented below.
27683
+ :param str location: (Output)
27684
+ Indicates the field in the request that caused the error. This property is optional.
27685
+ :param str message: (Output)
27686
+ The localized error message in the above locale.
27687
+ """
27688
+ if code is not None:
27689
+ pulumi.set(__self__, "code", code)
27690
+ if error_details is not None:
27691
+ pulumi.set(__self__, "error_details", error_details)
27692
+ if location is not None:
27693
+ pulumi.set(__self__, "location", location)
27694
+ if message is not None:
27695
+ pulumi.set(__self__, "message", message)
27696
+
27697
+ @property
27698
+ @pulumi.getter
27699
+ def code(self) -> Optional[str]:
27700
+ """
27701
+ (Output)
27702
+ The error type identifier for this error.
27703
+ """
27704
+ return pulumi.get(self, "code")
27705
+
27706
+ @property
27707
+ @pulumi.getter(name="errorDetails")
27708
+ def error_details(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetail']]:
27709
+ """
27710
+ (Output)
27711
+ 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.
27712
+ Structure is documented below.
27713
+ """
27714
+ return pulumi.get(self, "error_details")
27715
+
27716
+ @property
27717
+ @pulumi.getter
27718
+ def location(self) -> Optional[str]:
27719
+ """
27720
+ (Output)
27721
+ Indicates the field in the request that caused the error. This property is optional.
27722
+ """
27723
+ return pulumi.get(self, "location")
27724
+
27725
+ @property
27726
+ @pulumi.getter
27727
+ def message(self) -> Optional[str]:
27728
+ """
27729
+ (Output)
27730
+ The localized error message in the above locale.
27731
+ """
27732
+ return pulumi.get(self, "message")
27733
+
27734
+
27735
+ @pulumi.output_type
27736
+ class RegionResizeRequestStatusErrorErrorErrorDetail(dict):
27737
+ @staticmethod
27738
+ def __key_warning(key: str):
27739
+ suggest = None
27740
+ if key == "errorInfos":
27741
+ suggest = "error_infos"
27742
+ elif key == "localizedMessages":
27743
+ suggest = "localized_messages"
27744
+ elif key == "quotaInfos":
27745
+ suggest = "quota_infos"
27746
+
27747
+ if suggest:
27748
+ pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.")
27749
+
27750
+ def __getitem__(self, key: str) -> Any:
27751
+ RegionResizeRequestStatusErrorErrorErrorDetail.__key_warning(key)
27752
+ return super().__getitem__(key)
27753
+
27754
+ def get(self, key: str, default = None) -> Any:
27755
+ RegionResizeRequestStatusErrorErrorErrorDetail.__key_warning(key)
27756
+ return super().get(key, default)
27757
+
27758
+ def __init__(__self__, *,
27759
+ error_infos: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo']] = None,
27760
+ helps: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelp']] = None,
27761
+ localized_messages: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']] = None,
27762
+ quota_infos: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo']] = None):
27763
+ """
27764
+ :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output)
27765
+ A nested object resource.
27766
+ Structure is documented below.
27767
+ :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailHelpArgs'] helps: (Output)
27768
+ A nested object resource.
27769
+ Structure is documented below.
27770
+ :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output)
27771
+ A nested object resource.
27772
+ Structure is documented below.
27773
+ :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output)
27774
+ A nested object resource.
27775
+ Structure is documented below.
27776
+ """
27777
+ if error_infos is not None:
27778
+ pulumi.set(__self__, "error_infos", error_infos)
27779
+ if helps is not None:
27780
+ pulumi.set(__self__, "helps", helps)
27781
+ if localized_messages is not None:
27782
+ pulumi.set(__self__, "localized_messages", localized_messages)
27783
+ if quota_infos is not None:
27784
+ pulumi.set(__self__, "quota_infos", quota_infos)
27785
+
27786
+ @property
27787
+ @pulumi.getter(name="errorInfos")
27788
+ def error_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo']]:
27789
+ """
27790
+ (Output)
27791
+ A nested object resource.
27792
+ Structure is documented below.
27793
+ """
27794
+ return pulumi.get(self, "error_infos")
27795
+
27796
+ @property
27797
+ @pulumi.getter
27798
+ def helps(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelp']]:
27799
+ """
27800
+ (Output)
27801
+ A nested object resource.
27802
+ Structure is documented below.
27803
+ """
27804
+ return pulumi.get(self, "helps")
27805
+
27806
+ @property
27807
+ @pulumi.getter(name="localizedMessages")
27808
+ def localized_messages(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage']]:
27809
+ """
27810
+ (Output)
27811
+ A nested object resource.
27812
+ Structure is documented below.
27813
+ """
27814
+ return pulumi.get(self, "localized_messages")
27815
+
27816
+ @property
27817
+ @pulumi.getter(name="quotaInfos")
27818
+ def quota_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo']]:
27819
+ """
27820
+ (Output)
27821
+ A nested object resource.
27822
+ Structure is documented below.
27823
+ """
27824
+ return pulumi.get(self, "quota_infos")
27825
+
27826
+
27827
+ @pulumi.output_type
27828
+ class RegionResizeRequestStatusErrorErrorErrorDetailErrorInfo(dict):
27829
+ def __init__(__self__, *,
27830
+ domain: Optional[str] = None,
27831
+ metadatas: Optional[Mapping[str, str]] = None,
27832
+ reason: Optional[str] = None):
27833
+ """
27834
+ :param str domain: (Output)
27835
+ 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".
27836
+ :param Mapping[str, str] metadatas: (Output)
27837
+ Additional structured details about this error.
27838
+ :param str reason: (Output)
27839
+ 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.
27840
+ """
27841
+ if domain is not None:
27842
+ pulumi.set(__self__, "domain", domain)
27843
+ if metadatas is not None:
27844
+ pulumi.set(__self__, "metadatas", metadatas)
27845
+ if reason is not None:
27846
+ pulumi.set(__self__, "reason", reason)
27847
+
27848
+ @property
27849
+ @pulumi.getter
27850
+ def domain(self) -> Optional[str]:
27851
+ """
27852
+ (Output)
27853
+ 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".
27854
+ """
27855
+ return pulumi.get(self, "domain")
27856
+
27857
+ @property
27858
+ @pulumi.getter
27859
+ def metadatas(self) -> Optional[Mapping[str, str]]:
27860
+ """
27861
+ (Output)
27862
+ Additional structured details about this error.
27863
+ """
27864
+ return pulumi.get(self, "metadatas")
27865
+
27866
+ @property
27867
+ @pulumi.getter
27868
+ def reason(self) -> Optional[str]:
27869
+ """
27870
+ (Output)
27871
+ 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.
27872
+ """
27873
+ return pulumi.get(self, "reason")
27874
+
27875
+
27876
+ @pulumi.output_type
27877
+ class RegionResizeRequestStatusErrorErrorErrorDetailHelp(dict):
27878
+ def __init__(__self__, *,
27879
+ links: Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelpLink']] = None):
27880
+ """
27881
+ :param Sequence['RegionResizeRequestStatusErrorErrorErrorDetailHelpLinkArgs'] links: (Output)
27882
+ A nested object resource.
27883
+ Structure is documented below.
27884
+ """
27885
+ if links is not None:
27886
+ pulumi.set(__self__, "links", links)
27887
+
27888
+ @property
27889
+ @pulumi.getter
27890
+ def links(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusErrorErrorErrorDetailHelpLink']]:
27891
+ """
27892
+ (Output)
27893
+ A nested object resource.
27894
+ Structure is documented below.
27895
+ """
27896
+ return pulumi.get(self, "links")
27897
+
27898
+
27899
+ @pulumi.output_type
27900
+ class RegionResizeRequestStatusErrorErrorErrorDetailHelpLink(dict):
27901
+ def __init__(__self__, *,
27902
+ description: Optional[str] = None,
27903
+ url: Optional[str] = None):
27904
+ """
27905
+ :param str description: An optional description of this resize-request.
27906
+ :param str url: (Output)
27907
+ The URL of the link.
27908
+ """
27909
+ if description is not None:
27910
+ pulumi.set(__self__, "description", description)
27911
+ if url is not None:
27912
+ pulumi.set(__self__, "url", url)
27913
+
27914
+ @property
27915
+ @pulumi.getter
27916
+ def description(self) -> Optional[str]:
27917
+ """
27918
+ An optional description of this resize-request.
27919
+ """
27920
+ return pulumi.get(self, "description")
27921
+
27922
+ @property
27923
+ @pulumi.getter
27924
+ def url(self) -> Optional[str]:
27925
+ """
27926
+ (Output)
27927
+ The URL of the link.
27928
+ """
27929
+ return pulumi.get(self, "url")
27930
+
27931
+
27932
+ @pulumi.output_type
27933
+ class RegionResizeRequestStatusErrorErrorErrorDetailLocalizedMessage(dict):
27934
+ def __init__(__self__, *,
27935
+ locale: Optional[str] = None,
27936
+ message: Optional[str] = None):
27937
+ """
27938
+ :param str locale: (Output)
27939
+ 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"
27940
+ :param str message: (Output)
27941
+ The localized error message in the above locale.
27942
+ """
27943
+ if locale is not None:
27944
+ pulumi.set(__self__, "locale", locale)
27945
+ if message is not None:
27946
+ pulumi.set(__self__, "message", message)
27947
+
27948
+ @property
27949
+ @pulumi.getter
27950
+ def locale(self) -> Optional[str]:
27951
+ """
27952
+ (Output)
27953
+ 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"
27954
+ """
27955
+ return pulumi.get(self, "locale")
27956
+
27957
+ @property
27958
+ @pulumi.getter
27959
+ def message(self) -> Optional[str]:
27960
+ """
27961
+ (Output)
27962
+ The localized error message in the above locale.
27963
+ """
27964
+ return pulumi.get(self, "message")
27965
+
27966
+
27967
+ @pulumi.output_type
27968
+ class RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo(dict):
27969
+ @staticmethod
27970
+ def __key_warning(key: str):
27971
+ suggest = None
27972
+ if key == "futureLimit":
27973
+ suggest = "future_limit"
27974
+ elif key == "limitName":
27975
+ suggest = "limit_name"
27976
+ elif key == "metricName":
27977
+ suggest = "metric_name"
27978
+ elif key == "rolloutStatus":
27979
+ suggest = "rollout_status"
27980
+
27981
+ if suggest:
27982
+ pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.")
27983
+
27984
+ def __getitem__(self, key: str) -> Any:
27985
+ RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key)
27986
+ return super().__getitem__(key)
27987
+
27988
+ def get(self, key: str, default = None) -> Any:
27989
+ RegionResizeRequestStatusErrorErrorErrorDetailQuotaInfo.__key_warning(key)
27990
+ return super().get(key, default)
27991
+
27992
+ def __init__(__self__, *,
27993
+ dimensions: Optional[Mapping[str, str]] = None,
27994
+ future_limit: Optional[int] = None,
27995
+ limit: Optional[int] = None,
27996
+ limit_name: Optional[str] = None,
27997
+ metric_name: Optional[str] = None,
27998
+ rollout_status: Optional[str] = None):
27999
+ """
28000
+ :param Mapping[str, str] dimensions: (Output)
28001
+ The map holding related quota dimensions
28002
+ :param int future_limit: (Output)
28003
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
28004
+ :param int limit: (Output)
28005
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
28006
+ :param str limit_name: (Output)
28007
+ The name of the quota limit.
28008
+ :param str metric_name: (Output)
28009
+ The Compute Engine quota metric name.
28010
+ :param str rollout_status: (Output)
28011
+ Rollout status of the future quota limit.
28012
+ """
28013
+ if dimensions is not None:
28014
+ pulumi.set(__self__, "dimensions", dimensions)
28015
+ if future_limit is not None:
28016
+ pulumi.set(__self__, "future_limit", future_limit)
28017
+ if limit is not None:
28018
+ pulumi.set(__self__, "limit", limit)
28019
+ if limit_name is not None:
28020
+ pulumi.set(__self__, "limit_name", limit_name)
28021
+ if metric_name is not None:
28022
+ pulumi.set(__self__, "metric_name", metric_name)
28023
+ if rollout_status is not None:
28024
+ pulumi.set(__self__, "rollout_status", rollout_status)
28025
+
28026
+ @property
28027
+ @pulumi.getter
28028
+ def dimensions(self) -> Optional[Mapping[str, str]]:
28029
+ """
28030
+ (Output)
28031
+ The map holding related quota dimensions
28032
+ """
28033
+ return pulumi.get(self, "dimensions")
28034
+
28035
+ @property
28036
+ @pulumi.getter(name="futureLimit")
28037
+ def future_limit(self) -> Optional[int]:
28038
+ """
28039
+ (Output)
28040
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
28041
+ """
28042
+ return pulumi.get(self, "future_limit")
28043
+
28044
+ @property
28045
+ @pulumi.getter
28046
+ def limit(self) -> Optional[int]:
28047
+ """
28048
+ (Output)
28049
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
28050
+ """
28051
+ return pulumi.get(self, "limit")
28052
+
28053
+ @property
28054
+ @pulumi.getter(name="limitName")
28055
+ def limit_name(self) -> Optional[str]:
28056
+ """
28057
+ (Output)
28058
+ The name of the quota limit.
28059
+ """
28060
+ return pulumi.get(self, "limit_name")
28061
+
28062
+ @property
28063
+ @pulumi.getter(name="metricName")
28064
+ def metric_name(self) -> Optional[str]:
28065
+ """
28066
+ (Output)
28067
+ The Compute Engine quota metric name.
28068
+ """
28069
+ return pulumi.get(self, "metric_name")
28070
+
28071
+ @property
28072
+ @pulumi.getter(name="rolloutStatus")
28073
+ def rollout_status(self) -> Optional[str]:
28074
+ """
28075
+ (Output)
28076
+ Rollout status of the future quota limit.
28077
+ """
28078
+ return pulumi.get(self, "rollout_status")
28079
+
28080
+
28081
+ @pulumi.output_type
28082
+ class RegionResizeRequestStatusLastAttempt(dict):
28083
+ def __init__(__self__, *,
28084
+ errors: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptError']] = None):
28085
+ """
28086
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorArgs'] errors: (Output)
28087
+ 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.
28088
+ Structure is documented below.
28089
+ """
28090
+ if errors is not None:
28091
+ pulumi.set(__self__, "errors", errors)
28092
+
28093
+ @property
28094
+ @pulumi.getter
28095
+ def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptError']]:
28096
+ """
28097
+ (Output)
28098
+ 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.
28099
+ Structure is documented below.
28100
+ """
28101
+ return pulumi.get(self, "errors")
28102
+
28103
+
28104
+ @pulumi.output_type
28105
+ class RegionResizeRequestStatusLastAttemptError(dict):
28106
+ def __init__(__self__, *,
28107
+ errors: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorError']] = None):
28108
+ """
28109
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorArgs'] errors: (Output)
28110
+ The array of errors encountered while processing this operation.
28111
+ Structure is documented below.
28112
+ """
28113
+ if errors is not None:
28114
+ pulumi.set(__self__, "errors", errors)
28115
+
28116
+ @property
28117
+ @pulumi.getter
28118
+ def errors(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorError']]:
28119
+ """
28120
+ (Output)
28121
+ The array of errors encountered while processing this operation.
28122
+ Structure is documented below.
28123
+ """
28124
+ return pulumi.get(self, "errors")
28125
+
28126
+
28127
+ @pulumi.output_type
28128
+ class RegionResizeRequestStatusLastAttemptErrorError(dict):
28129
+ @staticmethod
28130
+ def __key_warning(key: str):
28131
+ suggest = None
28132
+ if key == "errorDetails":
28133
+ suggest = "error_details"
28134
+
28135
+ if suggest:
28136
+ pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusLastAttemptErrorError. Access the value via the '{suggest}' property getter instead.")
28137
+
28138
+ def __getitem__(self, key: str) -> Any:
28139
+ RegionResizeRequestStatusLastAttemptErrorError.__key_warning(key)
28140
+ return super().__getitem__(key)
28141
+
28142
+ def get(self, key: str, default = None) -> Any:
28143
+ RegionResizeRequestStatusLastAttemptErrorError.__key_warning(key)
28144
+ return super().get(key, default)
28145
+
28146
+ def __init__(__self__, *,
28147
+ code: Optional[str] = None,
28148
+ error_details: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail']] = None,
28149
+ location: Optional[str] = None,
28150
+ message: Optional[str] = None):
28151
+ """
28152
+ :param str code: (Output)
28153
+ The error type identifier for this error.
28154
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailArgs'] error_details: (Output)
28155
+ 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.
28156
+ Structure is documented below.
28157
+ :param str location: (Output)
28158
+ Indicates the field in the request that caused the error. This property is optional.
28159
+ :param str message: (Output)
28160
+ The localized error message in the above locale.
28161
+ """
28162
+ if code is not None:
28163
+ pulumi.set(__self__, "code", code)
28164
+ if error_details is not None:
28165
+ pulumi.set(__self__, "error_details", error_details)
28166
+ if location is not None:
28167
+ pulumi.set(__self__, "location", location)
28168
+ if message is not None:
28169
+ pulumi.set(__self__, "message", message)
28170
+
28171
+ @property
28172
+ @pulumi.getter
28173
+ def code(self) -> Optional[str]:
28174
+ """
28175
+ (Output)
28176
+ The error type identifier for this error.
28177
+ """
28178
+ return pulumi.get(self, "code")
28179
+
28180
+ @property
28181
+ @pulumi.getter(name="errorDetails")
28182
+ def error_details(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail']]:
28183
+ """
28184
+ (Output)
28185
+ 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.
28186
+ Structure is documented below.
28187
+ """
28188
+ return pulumi.get(self, "error_details")
28189
+
28190
+ @property
28191
+ @pulumi.getter
28192
+ def location(self) -> Optional[str]:
27068
28193
  """
27069
- Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.
27070
- Structure is documented below.
28194
+ (Output)
28195
+ Indicates the field in the request that caused the error. This property is optional.
27071
28196
  """
27072
- return pulumi.get(self, "internal_ips")
28197
+ return pulumi.get(self, "location")
27073
28198
 
27074
28199
  @property
27075
28200
  @pulumi.getter
27076
- def metadata(self) -> Optional[Mapping[str, str]]:
28201
+ def message(self) -> Optional[str]:
27077
28202
  """
27078
- Preserved metadata defined for this instance. This is a list of key->value pairs.
28203
+ (Output)
28204
+ The localized error message in the above locale.
27079
28205
  """
27080
- return pulumi.get(self, "metadata")
28206
+ return pulumi.get(self, "message")
27081
28207
 
27082
28208
 
27083
28209
  @pulumi.output_type
27084
- class RegionPerInstanceConfigPreservedStateDisk(dict):
28210
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail(dict):
27085
28211
  @staticmethod
27086
28212
  def __key_warning(key: str):
27087
28213
  suggest = None
27088
- if key == "deviceName":
27089
- suggest = "device_name"
27090
- elif key == "deleteRule":
27091
- suggest = "delete_rule"
28214
+ if key == "errorInfos":
28215
+ suggest = "error_infos"
28216
+ elif key == "localizedMessages":
28217
+ suggest = "localized_messages"
28218
+ elif key == "quotaInfos":
28219
+ suggest = "quota_infos"
27092
28220
 
27093
28221
  if suggest:
27094
- pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateDisk. Access the value via the '{suggest}' property getter instead.")
28222
+ pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail. Access the value via the '{suggest}' property getter instead.")
27095
28223
 
27096
28224
  def __getitem__(self, key: str) -> Any:
27097
- RegionPerInstanceConfigPreservedStateDisk.__key_warning(key)
28225
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key)
27098
28226
  return super().__getitem__(key)
27099
28227
 
27100
28228
  def get(self, key: str, default = None) -> Any:
27101
- RegionPerInstanceConfigPreservedStateDisk.__key_warning(key)
28229
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetail.__key_warning(key)
27102
28230
  return super().get(key, default)
27103
28231
 
27104
28232
  def __init__(__self__, *,
27105
- device_name: str,
27106
- source: str,
27107
- delete_rule: Optional[str] = None,
27108
- mode: Optional[str] = None):
28233
+ error_infos: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']] = None,
28234
+ helps: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']] = None,
28235
+ localized_messages: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']] = None,
28236
+ quota_infos: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']] = None):
27109
28237
  """
27110
- :param str device_name: A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
27111
- :param str source: The URI of an existing persistent disk to attach under the specified device-name in the format
27112
- `projects/project-id/zones/zone/disks/disk-name`.
27113
- :param str delete_rule: A value that prescribes what should happen to the stateful disk when the VM instance is deleted.
27114
- The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`.
27115
- `NEVER` - detach the disk when the VM is deleted, but do not delete the disk.
27116
- `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently
27117
- deleted from the instance group.
27118
- Default value is `NEVER`.
27119
- Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27120
- :param str mode: The mode of the disk.
27121
- Default value is `READ_WRITE`.
27122
- Possible values are: `READ_ONLY`, `READ_WRITE`.
28238
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfoArgs'] error_infos: (Output)
28239
+ A nested object resource.
28240
+ Structure is documented below.
28241
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpArgs'] helps: (Output)
28242
+ A nested object resource.
28243
+ Structure is documented below.
28244
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessageArgs'] localized_messages: (Output)
28245
+ A nested object resource.
28246
+ Structure is documented below.
28247
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfoArgs'] quota_infos: (Output)
28248
+ A nested object resource.
28249
+ Structure is documented below.
27123
28250
  """
27124
- pulumi.set(__self__, "device_name", device_name)
27125
- pulumi.set(__self__, "source", source)
27126
- if delete_rule is not None:
27127
- pulumi.set(__self__, "delete_rule", delete_rule)
27128
- if mode is not None:
27129
- pulumi.set(__self__, "mode", mode)
28251
+ if error_infos is not None:
28252
+ pulumi.set(__self__, "error_infos", error_infos)
28253
+ if helps is not None:
28254
+ pulumi.set(__self__, "helps", helps)
28255
+ if localized_messages is not None:
28256
+ pulumi.set(__self__, "localized_messages", localized_messages)
28257
+ if quota_infos is not None:
28258
+ pulumi.set(__self__, "quota_infos", quota_infos)
27130
28259
 
27131
28260
  @property
27132
- @pulumi.getter(name="deviceName")
27133
- def device_name(self) -> str:
28261
+ @pulumi.getter(name="errorInfos")
28262
+ def error_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo']]:
27134
28263
  """
27135
- A unique device name that is reflected into the /dev/ tree of a Linux operating system running within the instance.
28264
+ (Output)
28265
+ A nested object resource.
28266
+ Structure is documented below.
27136
28267
  """
27137
- return pulumi.get(self, "device_name")
28268
+ return pulumi.get(self, "error_infos")
27138
28269
 
27139
28270
  @property
27140
28271
  @pulumi.getter
27141
- def source(self) -> str:
28272
+ def helps(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp']]:
27142
28273
  """
27143
- The URI of an existing persistent disk to attach under the specified device-name in the format
27144
- `projects/project-id/zones/zone/disks/disk-name`.
28274
+ (Output)
28275
+ A nested object resource.
28276
+ Structure is documented below.
27145
28277
  """
27146
- return pulumi.get(self, "source")
28278
+ return pulumi.get(self, "helps")
27147
28279
 
27148
28280
  @property
27149
- @pulumi.getter(name="deleteRule")
27150
- def delete_rule(self) -> Optional[str]:
28281
+ @pulumi.getter(name="localizedMessages")
28282
+ def localized_messages(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage']]:
27151
28283
  """
27152
- A value that prescribes what should happen to the stateful disk when the VM instance is deleted.
27153
- The available options are `NEVER` and `ON_PERMANENT_INSTANCE_DELETION`.
27154
- `NEVER` - detach the disk when the VM is deleted, but do not delete the disk.
27155
- `ON_PERMANENT_INSTANCE_DELETION` will delete the stateful disk when the VM is permanently
27156
- deleted from the instance group.
27157
- Default value is `NEVER`.
27158
- Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
28284
+ (Output)
28285
+ A nested object resource.
28286
+ Structure is documented below.
27159
28287
  """
27160
- return pulumi.get(self, "delete_rule")
28288
+ return pulumi.get(self, "localized_messages")
27161
28289
 
27162
28290
  @property
27163
- @pulumi.getter
27164
- def mode(self) -> Optional[str]:
28291
+ @pulumi.getter(name="quotaInfos")
28292
+ def quota_infos(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo']]:
27165
28293
  """
27166
- The mode of the disk.
27167
- Default value is `READ_WRITE`.
27168
- Possible values are: `READ_ONLY`, `READ_WRITE`.
28294
+ (Output)
28295
+ A nested object resource.
28296
+ Structure is documented below.
27169
28297
  """
27170
- return pulumi.get(self, "mode")
28298
+ return pulumi.get(self, "quota_infos")
27171
28299
 
27172
28300
 
27173
28301
  @pulumi.output_type
27174
- class RegionPerInstanceConfigPreservedStateExternalIp(dict):
27175
- @staticmethod
27176
- def __key_warning(key: str):
27177
- suggest = None
27178
- if key == "interfaceName":
27179
- suggest = "interface_name"
27180
- elif key == "autoDelete":
27181
- suggest = "auto_delete"
27182
- elif key == "ipAddress":
27183
- suggest = "ip_address"
28302
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailErrorInfo(dict):
28303
+ def __init__(__self__, *,
28304
+ domain: Optional[str] = None,
28305
+ metadatas: Optional[Mapping[str, str]] = None,
28306
+ reason: Optional[str] = None):
28307
+ """
28308
+ :param str domain: (Output)
28309
+ 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".
28310
+ :param Mapping[str, str] metadatas: (Output)
28311
+ Additional structured details about this error.
28312
+ :param str reason: (Output)
28313
+ 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.
28314
+ """
28315
+ if domain is not None:
28316
+ pulumi.set(__self__, "domain", domain)
28317
+ if metadatas is not None:
28318
+ pulumi.set(__self__, "metadatas", metadatas)
28319
+ if reason is not None:
28320
+ pulumi.set(__self__, "reason", reason)
27184
28321
 
27185
- if suggest:
27186
- pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateExternalIp. Access the value via the '{suggest}' property getter instead.")
28322
+ @property
28323
+ @pulumi.getter
28324
+ def domain(self) -> Optional[str]:
28325
+ """
28326
+ (Output)
28327
+ 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".
28328
+ """
28329
+ return pulumi.get(self, "domain")
27187
28330
 
27188
- def __getitem__(self, key: str) -> Any:
27189
- RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key)
27190
- return super().__getitem__(key)
28331
+ @property
28332
+ @pulumi.getter
28333
+ def metadatas(self) -> Optional[Mapping[str, str]]:
28334
+ """
28335
+ (Output)
28336
+ Additional structured details about this error.
28337
+ """
28338
+ return pulumi.get(self, "metadatas")
27191
28339
 
27192
- def get(self, key: str, default = None) -> Any:
27193
- RegionPerInstanceConfigPreservedStateExternalIp.__key_warning(key)
27194
- return super().get(key, default)
28340
+ @property
28341
+ @pulumi.getter
28342
+ def reason(self) -> Optional[str]:
28343
+ """
28344
+ (Output)
28345
+ 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.
28346
+ """
28347
+ return pulumi.get(self, "reason")
27195
28348
 
28349
+
28350
+ @pulumi.output_type
28351
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelp(dict):
27196
28352
  def __init__(__self__, *,
27197
- interface_name: str,
27198
- auto_delete: Optional[str] = None,
27199
- ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress'] = None):
28353
+ links: Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']] = None):
27200
28354
  """
27201
- :param str interface_name: The identifier for this object. Format specified above.
27202
- :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27203
- Default value is `NEVER`.
27204
- Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27205
- :param 'RegionPerInstanceConfigPreservedStateExternalIpIpAddressArgs' ip_address: Ip address representation
28355
+ :param Sequence['RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLinkArgs'] links: (Output)
28356
+ A nested object resource.
27206
28357
  Structure is documented below.
27207
28358
  """
27208
- pulumi.set(__self__, "interface_name", interface_name)
27209
- if auto_delete is not None:
27210
- pulumi.set(__self__, "auto_delete", auto_delete)
27211
- if ip_address is not None:
27212
- pulumi.set(__self__, "ip_address", ip_address)
28359
+ if links is not None:
28360
+ pulumi.set(__self__, "links", links)
27213
28361
 
27214
28362
  @property
27215
- @pulumi.getter(name="interfaceName")
27216
- def interface_name(self) -> str:
28363
+ @pulumi.getter
28364
+ def links(self) -> Optional[Sequence['outputs.RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink']]:
27217
28365
  """
27218
- The identifier for this object. Format specified above.
28366
+ (Output)
28367
+ A nested object resource.
28368
+ Structure is documented below.
27219
28369
  """
27220
- return pulumi.get(self, "interface_name")
28370
+ return pulumi.get(self, "links")
28371
+
28372
+
28373
+ @pulumi.output_type
28374
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailHelpLink(dict):
28375
+ def __init__(__self__, *,
28376
+ description: Optional[str] = None,
28377
+ url: Optional[str] = None):
28378
+ """
28379
+ :param str description: An optional description of this resize-request.
28380
+ :param str url: (Output)
28381
+ The URL of the link.
28382
+ """
28383
+ if description is not None:
28384
+ pulumi.set(__self__, "description", description)
28385
+ if url is not None:
28386
+ pulumi.set(__self__, "url", url)
27221
28387
 
27222
28388
  @property
27223
- @pulumi.getter(name="autoDelete")
27224
- def auto_delete(self) -> Optional[str]:
28389
+ @pulumi.getter
28390
+ def description(self) -> Optional[str]:
27225
28391
  """
27226
- These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27227
- Default value is `NEVER`.
27228
- Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
28392
+ An optional description of this resize-request.
27229
28393
  """
27230
- return pulumi.get(self, "auto_delete")
28394
+ return pulumi.get(self, "description")
27231
28395
 
27232
28396
  @property
27233
- @pulumi.getter(name="ipAddress")
27234
- def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateExternalIpIpAddress']:
28397
+ @pulumi.getter
28398
+ def url(self) -> Optional[str]:
27235
28399
  """
27236
- Ip address representation
27237
- Structure is documented below.
28400
+ (Output)
28401
+ The URL of the link.
27238
28402
  """
27239
- return pulumi.get(self, "ip_address")
28403
+ return pulumi.get(self, "url")
27240
28404
 
27241
28405
 
27242
28406
  @pulumi.output_type
27243
- class RegionPerInstanceConfigPreservedStateExternalIpIpAddress(dict):
28407
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailLocalizedMessage(dict):
27244
28408
  def __init__(__self__, *,
27245
- address: Optional[str] = None):
28409
+ locale: Optional[str] = None,
28410
+ message: Optional[str] = None):
27246
28411
  """
27247
- :param str address: The URL of the reservation for this IP address.
28412
+ :param str locale: (Output)
28413
+ 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"
28414
+ :param str message: (Output)
28415
+ The localized error message in the above locale.
27248
28416
  """
27249
- if address is not None:
27250
- pulumi.set(__self__, "address", address)
28417
+ if locale is not None:
28418
+ pulumi.set(__self__, "locale", locale)
28419
+ if message is not None:
28420
+ pulumi.set(__self__, "message", message)
27251
28421
 
27252
28422
  @property
27253
28423
  @pulumi.getter
27254
- def address(self) -> Optional[str]:
28424
+ def locale(self) -> Optional[str]:
27255
28425
  """
27256
- The URL of the reservation for this IP address.
28426
+ (Output)
28427
+ 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"
27257
28428
  """
27258
- return pulumi.get(self, "address")
28429
+ return pulumi.get(self, "locale")
28430
+
28431
+ @property
28432
+ @pulumi.getter
28433
+ def message(self) -> Optional[str]:
28434
+ """
28435
+ (Output)
28436
+ The localized error message in the above locale.
28437
+ """
28438
+ return pulumi.get(self, "message")
27259
28439
 
27260
28440
 
27261
28441
  @pulumi.output_type
27262
- class RegionPerInstanceConfigPreservedStateInternalIp(dict):
28442
+ class RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo(dict):
27263
28443
  @staticmethod
27264
28444
  def __key_warning(key: str):
27265
28445
  suggest = None
27266
- if key == "interfaceName":
27267
- suggest = "interface_name"
27268
- elif key == "autoDelete":
27269
- suggest = "auto_delete"
27270
- elif key == "ipAddress":
27271
- suggest = "ip_address"
28446
+ if key == "futureLimit":
28447
+ suggest = "future_limit"
28448
+ elif key == "limitName":
28449
+ suggest = "limit_name"
28450
+ elif key == "metricName":
28451
+ suggest = "metric_name"
28452
+ elif key == "rolloutStatus":
28453
+ suggest = "rollout_status"
27272
28454
 
27273
28455
  if suggest:
27274
- pulumi.log.warn(f"Key '{key}' not found in RegionPerInstanceConfigPreservedStateInternalIp. Access the value via the '{suggest}' property getter instead.")
28456
+ pulumi.log.warn(f"Key '{key}' not found in RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo. Access the value via the '{suggest}' property getter instead.")
27275
28457
 
27276
28458
  def __getitem__(self, key: str) -> Any:
27277
- RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key)
28459
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key)
27278
28460
  return super().__getitem__(key)
27279
28461
 
27280
28462
  def get(self, key: str, default = None) -> Any:
27281
- RegionPerInstanceConfigPreservedStateInternalIp.__key_warning(key)
28463
+ RegionResizeRequestStatusLastAttemptErrorErrorErrorDetailQuotaInfo.__key_warning(key)
27282
28464
  return super().get(key, default)
27283
28465
 
27284
28466
  def __init__(__self__, *,
27285
- interface_name: str,
27286
- auto_delete: Optional[str] = None,
27287
- ip_address: Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress'] = None):
28467
+ dimensions: Optional[Mapping[str, str]] = None,
28468
+ future_limit: Optional[int] = None,
28469
+ limit: Optional[int] = None,
28470
+ limit_name: Optional[str] = None,
28471
+ metric_name: Optional[str] = None,
28472
+ rollout_status: Optional[str] = None):
27288
28473
  """
27289
- :param str interface_name: The identifier for this object. Format specified above.
27290
- :param str auto_delete: These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27291
- Default value is `NEVER`.
27292
- Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
27293
- :param 'RegionPerInstanceConfigPreservedStateInternalIpIpAddressArgs' ip_address: Ip address representation
27294
- Structure is documented below.
28474
+ :param Mapping[str, str] dimensions: (Output)
28475
+ The map holding related quota dimensions
28476
+ :param int future_limit: (Output)
28477
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
28478
+ :param int limit: (Output)
28479
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
28480
+ :param str limit_name: (Output)
28481
+ The name of the quota limit.
28482
+ :param str metric_name: (Output)
28483
+ The Compute Engine quota metric name.
28484
+ :param str rollout_status: (Output)
28485
+ Rollout status of the future quota limit.
27295
28486
  """
27296
- pulumi.set(__self__, "interface_name", interface_name)
27297
- if auto_delete is not None:
27298
- pulumi.set(__self__, "auto_delete", auto_delete)
27299
- if ip_address is not None:
27300
- pulumi.set(__self__, "ip_address", ip_address)
28487
+ if dimensions is not None:
28488
+ pulumi.set(__self__, "dimensions", dimensions)
28489
+ if future_limit is not None:
28490
+ pulumi.set(__self__, "future_limit", future_limit)
28491
+ if limit is not None:
28492
+ pulumi.set(__self__, "limit", limit)
28493
+ if limit_name is not None:
28494
+ pulumi.set(__self__, "limit_name", limit_name)
28495
+ if metric_name is not None:
28496
+ pulumi.set(__self__, "metric_name", metric_name)
28497
+ if rollout_status is not None:
28498
+ pulumi.set(__self__, "rollout_status", rollout_status)
27301
28499
 
27302
28500
  @property
27303
- @pulumi.getter(name="interfaceName")
27304
- def interface_name(self) -> str:
28501
+ @pulumi.getter
28502
+ def dimensions(self) -> Optional[Mapping[str, str]]:
27305
28503
  """
27306
- The identifier for this object. Format specified above.
28504
+ (Output)
28505
+ The map holding related quota dimensions
27307
28506
  """
27308
- return pulumi.get(self, "interface_name")
28507
+ return pulumi.get(self, "dimensions")
27309
28508
 
27310
28509
  @property
27311
- @pulumi.getter(name="autoDelete")
27312
- def auto_delete(self) -> Optional[str]:
28510
+ @pulumi.getter(name="futureLimit")
28511
+ def future_limit(self) -> Optional[int]:
27313
28512
  """
27314
- These stateful IPs will never be released during autohealing, update or VM instance recreate operations. This flag is used to configure if the IP reservation should be deleted after it is no longer used by the group, e.g. when the given instance or the whole group is deleted.
27315
- Default value is `NEVER`.
27316
- Possible values are: `NEVER`, `ON_PERMANENT_INSTANCE_DELETION`.
28513
+ (Output)
28514
+ Future quota limit being rolled out. The limit's unit depends on the quota type or metric.
27317
28515
  """
27318
- return pulumi.get(self, "auto_delete")
28516
+ return pulumi.get(self, "future_limit")
27319
28517
 
27320
28518
  @property
27321
- @pulumi.getter(name="ipAddress")
27322
- def ip_address(self) -> Optional['outputs.RegionPerInstanceConfigPreservedStateInternalIpIpAddress']:
28519
+ @pulumi.getter
28520
+ def limit(self) -> Optional[int]:
27323
28521
  """
27324
- Ip address representation
27325
- Structure is documented below.
28522
+ (Output)
28523
+ Current effective quota limit. The limit's unit depends on the quota type or metric.
27326
28524
  """
27327
- return pulumi.get(self, "ip_address")
28525
+ return pulumi.get(self, "limit")
27328
28526
 
28527
+ @property
28528
+ @pulumi.getter(name="limitName")
28529
+ def limit_name(self) -> Optional[str]:
28530
+ """
28531
+ (Output)
28532
+ The name of the quota limit.
28533
+ """
28534
+ return pulumi.get(self, "limit_name")
27329
28535
 
27330
- @pulumi.output_type
27331
- class RegionPerInstanceConfigPreservedStateInternalIpIpAddress(dict):
27332
- def __init__(__self__, *,
27333
- address: Optional[str] = None):
28536
+ @property
28537
+ @pulumi.getter(name="metricName")
28538
+ def metric_name(self) -> Optional[str]:
27334
28539
  """
27335
- :param str address: The URL of the reservation for this IP address.
28540
+ (Output)
28541
+ The Compute Engine quota metric name.
27336
28542
  """
27337
- if address is not None:
27338
- pulumi.set(__self__, "address", address)
28543
+ return pulumi.get(self, "metric_name")
27339
28544
 
27340
28545
  @property
27341
- @pulumi.getter
27342
- def address(self) -> Optional[str]:
28546
+ @pulumi.getter(name="rolloutStatus")
28547
+ def rollout_status(self) -> Optional[str]:
27343
28548
  """
27344
- The URL of the reservation for this IP address.
28549
+ (Output)
28550
+ Rollout status of the future quota limit.
27345
28551
  """
27346
- return pulumi.get(self, "address")
28552
+ return pulumi.get(self, "rollout_status")
27347
28553
 
27348
28554
 
27349
28555
  @pulumi.output_type
@@ -27389,6 +28595,168 @@ class RegionSecurityPolicyDdosProtectionConfig(dict):
27389
28595
  return pulumi.get(self, "ddos_protection")
27390
28596
 
27391
28597
 
28598
+ @pulumi.output_type
28599
+ class RegionSecurityPolicyRule(dict):
28600
+ @staticmethod
28601
+ def __key_warning(key: str):
28602
+ suggest = None
28603
+ if key == "networkMatch":
28604
+ suggest = "network_match"
28605
+ elif key == "preconfiguredWafConfig":
28606
+ suggest = "preconfigured_waf_config"
28607
+ elif key == "rateLimitOptions":
28608
+ suggest = "rate_limit_options"
28609
+
28610
+ if suggest:
28611
+ pulumi.log.warn(f"Key '{key}' not found in RegionSecurityPolicyRule. Access the value via the '{suggest}' property getter instead.")
28612
+
28613
+ def __getitem__(self, key: str) -> Any:
28614
+ RegionSecurityPolicyRule.__key_warning(key)
28615
+ return super().__getitem__(key)
28616
+
28617
+ def get(self, key: str, default = None) -> Any:
28618
+ RegionSecurityPolicyRule.__key_warning(key)
28619
+ return super().get(key, default)
28620
+
28621
+ def __init__(__self__, *,
28622
+ action: str,
28623
+ priority: int,
28624
+ description: Optional[str] = None,
28625
+ match: Optional['outputs.RegionSecurityPolicyRuleMatch'] = None,
28626
+ network_match: Optional['outputs.RegionSecurityPolicyRuleNetworkMatch'] = None,
28627
+ preconfigured_waf_config: Optional['outputs.RegionSecurityPolicyRulePreconfiguredWafConfig'] = None,
28628
+ preview: Optional[bool] = None,
28629
+ rate_limit_options: Optional['outputs.RegionSecurityPolicyRuleRateLimitOptions'] = None):
28630
+ """
28631
+ :param str action: The Action to perform when the rule is matched. The following are the valid actions:
28632
+ * allow: allow access to target.
28633
+ * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502.
28634
+ * 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.
28635
+ * 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.
28636
+ * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this.
28637
+ :param int priority: An integer indicating the priority of a rule in the list.
28638
+ The priority must be a positive value between 0 and 2147483647.
28639
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
28640
+ :param str description: An optional description of this resource. Provide this property when you create the resource.
28641
+ :param 'RegionSecurityPolicyRuleMatchArgs' match: A match condition that incoming traffic is evaluated against.
28642
+ If it evaluates to true, the corresponding 'action' is enforced.
28643
+ Structure is documented below.
28644
+ :param '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.
28645
+ The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields').
28646
+ 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.
28647
+ 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.
28648
+ For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet.
28649
+ Example:
28650
+ networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff"
28651
+ 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
28652
+ Structure is documented below.
28653
+ :param 'RegionSecurityPolicyRulePreconfiguredWafConfigArgs' preconfigured_waf_config: Preconfigured WAF configuration to be applied for the rule.
28654
+ If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.
28655
+ Structure is documented below.
28656
+ :param bool preview: If set to true, the specified action is not enforced.
28657
+ :param 'RegionSecurityPolicyRuleRateLimitOptionsArgs' rate_limit_options: Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions.
28658
+ Structure is documented below.
28659
+ """
28660
+ pulumi.set(__self__, "action", action)
28661
+ pulumi.set(__self__, "priority", priority)
28662
+ if description is not None:
28663
+ pulumi.set(__self__, "description", description)
28664
+ if match is not None:
28665
+ pulumi.set(__self__, "match", match)
28666
+ if network_match is not None:
28667
+ pulumi.set(__self__, "network_match", network_match)
28668
+ if preconfigured_waf_config is not None:
28669
+ pulumi.set(__self__, "preconfigured_waf_config", preconfigured_waf_config)
28670
+ if preview is not None:
28671
+ pulumi.set(__self__, "preview", preview)
28672
+ if rate_limit_options is not None:
28673
+ pulumi.set(__self__, "rate_limit_options", rate_limit_options)
28674
+
28675
+ @property
28676
+ @pulumi.getter
28677
+ def action(self) -> str:
28678
+ """
28679
+ The Action to perform when the rule is matched. The following are the valid actions:
28680
+ * allow: allow access to target.
28681
+ * deny(STATUS): deny access to target, returns the HTTP response code specified. Valid values for STATUS are 403, 404, and 502.
28682
+ * 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.
28683
+ * 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.
28684
+ * throttle: limit client traffic to the configured threshold. Configure parameters for this action in rateLimitOptions. Requires rateLimitOptions to be set for this.
28685
+ """
28686
+ return pulumi.get(self, "action")
28687
+
28688
+ @property
28689
+ @pulumi.getter
28690
+ def priority(self) -> int:
28691
+ """
28692
+ An integer indicating the priority of a rule in the list.
28693
+ The priority must be a positive value between 0 and 2147483647.
28694
+ Rules are evaluated from highest to lowest priority where 0 is the highest priority and 2147483647 is the lowest priority.
28695
+ """
28696
+ return pulumi.get(self, "priority")
28697
+
28698
+ @property
28699
+ @pulumi.getter
28700
+ def description(self) -> Optional[str]:
28701
+ """
28702
+ An optional description of this resource. Provide this property when you create the resource.
28703
+ """
28704
+ return pulumi.get(self, "description")
28705
+
28706
+ @property
28707
+ @pulumi.getter
28708
+ def match(self) -> Optional['outputs.RegionSecurityPolicyRuleMatch']:
28709
+ """
28710
+ A match condition that incoming traffic is evaluated against.
28711
+ If it evaluates to true, the corresponding 'action' is enforced.
28712
+ Structure is documented below.
28713
+ """
28714
+ return pulumi.get(self, "match")
28715
+
28716
+ @property
28717
+ @pulumi.getter(name="networkMatch")
28718
+ def network_match(self) -> Optional['outputs.RegionSecurityPolicyRuleNetworkMatch']:
28719
+ """
28720
+ A match condition that incoming packets are evaluated against for CLOUD_ARMOR_NETWORK security policies. If it matches, the corresponding 'action' is enforced.
28721
+ The match criteria for a rule consists of built-in match fields (like 'srcIpRanges') and potentially multiple user-defined match fields ('userDefinedFields').
28722
+ 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.
28723
+ 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.
28724
+ For a packet to match a rule, all specified match fields must match the corresponding field values derived from the packet.
28725
+ Example:
28726
+ networkMatch: srcIpRanges: - "192.0.2.0/24" - "198.51.100.0/24" userDefinedFields: - name: "ipv4_fragment_offset" values: - "1-0x1fff"
28727
+ 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
28728
+ Structure is documented below.
28729
+ """
28730
+ return pulumi.get(self, "network_match")
28731
+
28732
+ @property
28733
+ @pulumi.getter(name="preconfiguredWafConfig")
28734
+ def preconfigured_waf_config(self) -> Optional['outputs.RegionSecurityPolicyRulePreconfiguredWafConfig']:
28735
+ """
28736
+ Preconfigured WAF configuration to be applied for the rule.
28737
+ If the rule does not evaluate preconfigured WAF rules, i.e., if evaluatePreconfiguredWaf() is not used, this field will have no effect.
28738
+ Structure is documented below.
28739
+ """
28740
+ return pulumi.get(self, "preconfigured_waf_config")
28741
+
28742
+ @property
28743
+ @pulumi.getter
28744
+ def preview(self) -> Optional[bool]:
28745
+ """
28746
+ If set to true, the specified action is not enforced.
28747
+ """
28748
+ return pulumi.get(self, "preview")
28749
+
28750
+ @property
28751
+ @pulumi.getter(name="rateLimitOptions")
28752
+ def rate_limit_options(self) -> Optional['outputs.RegionSecurityPolicyRuleRateLimitOptions']:
28753
+ """
28754
+ Must be specified if the action is "rate_based_ban" or "throttle". Cannot be specified for any other actions.
28755
+ Structure is documented below.
28756
+ """
28757
+ return pulumi.get(self, "rate_limit_options")
28758
+
28759
+
27392
28760
  @pulumi.output_type
27393
28761
  class RegionSecurityPolicyRuleMatch(dict):
27394
28762
  @staticmethod
@@ -28372,7 +29740,7 @@ class RegionSecurityPolicyUserDefinedField(dict):
28372
29740
  :param str mask: If specified, apply this mask (bitwise AND) to the field to ignore bits before matching.
28373
29741
  Encoded as a hexadecimal number (starting with "0x").
28374
29742
  The last byte of the field (in network byte order) corresponds to the least significant byte of the mask.
28375
- :param str name: The name of this field. Must be unique within the policy.
29743
+ :param str name: Name of the user-defined field, as given in the definition.
28376
29744
  :param int offset: Offset of the first byte of the field (in network byte order) relative to 'base'.
28377
29745
  :param int size: Size of the field in bytes. Valid values: 1-4.
28378
29746
  """
@@ -28413,7 +29781,7 @@ class RegionSecurityPolicyUserDefinedField(dict):
28413
29781
  @pulumi.getter
28414
29782
  def name(self) -> Optional[str]:
28415
29783
  """
28416
- The name of this field. Must be unique within the policy.
29784
+ Name of the user-defined field, as given in the definition.
28417
29785
  """
28418
29786
  return pulumi.get(self, "name")
28419
29787
 
@@ -36171,7 +37539,7 @@ class RouterPeerCustomLearnedIpRange(dict):
36171
37539
  def __init__(__self__, *,
36172
37540
  range: str):
36173
37541
  """
36174
- :param str range: The IP range to advertise. The value must be a
37542
+ :param str range: The IP range to learn. The value must be a
36175
37543
  CIDR-formatted string.
36176
37544
  """
36177
37545
  pulumi.set(__self__, "range", range)
@@ -36180,7 +37548,7 @@ class RouterPeerCustomLearnedIpRange(dict):
36180
37548
  @pulumi.getter
36181
37549
  def range(self) -> str:
36182
37550
  """
36183
- The IP range to advertise. The value must be a
37551
+ The IP range to learn. The value must be a
36184
37552
  CIDR-formatted string.
36185
37553
  """
36186
37554
  return pulumi.get(self, "range")
@@ -53756,6 +55124,64 @@ class GetRegionInstanceGroupManagerAutoHealingPolicyResult(dict):
53756
55124
  return pulumi.get(self, "initial_delay_sec")
53757
55125
 
53758
55126
 
55127
+ @pulumi.output_type
55128
+ class GetRegionInstanceGroupManagerInstanceFlexibilityPolicyResult(dict):
55129
+ def __init__(__self__, *,
55130
+ instance_selections: Sequence['outputs.GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult']):
55131
+ """
55132
+ :param Sequence['GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionArgs'] instance_selections: Named instance selections configuring properties that the group will use when creating new VMs.
55133
+ """
55134
+ pulumi.set(__self__, "instance_selections", instance_selections)
55135
+
55136
+ @property
55137
+ @pulumi.getter(name="instanceSelections")
55138
+ def instance_selections(self) -> Sequence['outputs.GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult']:
55139
+ """
55140
+ Named instance selections configuring properties that the group will use when creating new VMs.
55141
+ """
55142
+ return pulumi.get(self, "instance_selections")
55143
+
55144
+
55145
+ @pulumi.output_type
55146
+ class GetRegionInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelectionResult(dict):
55147
+ def __init__(__self__, *,
55148
+ machine_types: Sequence[str],
55149
+ name: str,
55150
+ rank: int):
55151
+ """
55152
+ :param Sequence[str] machine_types: Full machine-type names, e.g. "n1-standard-16"
55153
+ :param str name: The name of the instance group. Either `name` or `self_link` must be provided.
55154
+ :param 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.
55155
+ """
55156
+ pulumi.set(__self__, "machine_types", machine_types)
55157
+ pulumi.set(__self__, "name", name)
55158
+ pulumi.set(__self__, "rank", rank)
55159
+
55160
+ @property
55161
+ @pulumi.getter(name="machineTypes")
55162
+ def machine_types(self) -> Sequence[str]:
55163
+ """
55164
+ Full machine-type names, e.g. "n1-standard-16"
55165
+ """
55166
+ return pulumi.get(self, "machine_types")
55167
+
55168
+ @property
55169
+ @pulumi.getter
55170
+ def name(self) -> str:
55171
+ """
55172
+ The name of the instance group. Either `name` or `self_link` must be provided.
55173
+ """
55174
+ return pulumi.get(self, "name")
55175
+
55176
+ @property
55177
+ @pulumi.getter
55178
+ def rank(self) -> int:
55179
+ """
55180
+ 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.
55181
+ """
55182
+ return pulumi.get(self, "rank")
55183
+
55184
+
53759
55185
  @pulumi.output_type
53760
55186
  class GetRegionInstanceGroupManagerInstanceLifecyclePolicyResult(dict):
53761
55187
  def __init__(__self__, *,