pulumi-gcp 7.27.0a1718103841__py3-none-any.whl → 7.27.0a1718247696__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 (81) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/appengine/_inputs.py +40 -0
  3. pulumi_gcp/appengine/flexible_app_version.py +47 -0
  4. pulumi_gcp/appengine/outputs.py +51 -0
  5. pulumi_gcp/bigtable/instance.py +47 -0
  6. pulumi_gcp/clouddeploy/_inputs.py +16 -0
  7. pulumi_gcp/clouddeploy/outputs.py +12 -0
  8. pulumi_gcp/compute/__init__.py +2 -0
  9. pulumi_gcp/compute/_inputs.py +84 -0
  10. pulumi_gcp/compute/backend_service.py +54 -0
  11. pulumi_gcp/compute/disk.py +68 -0
  12. pulumi_gcp/compute/get_backend_service.py +11 -1
  13. pulumi_gcp/compute/get_disk.py +11 -1
  14. pulumi_gcp/compute/get_instance.py +11 -1
  15. pulumi_gcp/compute/get_instance_group_manager.py +31 -1
  16. pulumi_gcp/compute/get_instance_template.py +11 -1
  17. pulumi_gcp/compute/get_region_instance_template.py +11 -1
  18. pulumi_gcp/compute/get_security_policy.py +214 -0
  19. pulumi_gcp/compute/instance.py +47 -0
  20. pulumi_gcp/compute/instance_from_machine_image.py +47 -0
  21. pulumi_gcp/compute/instance_from_template.py +47 -0
  22. pulumi_gcp/compute/instance_group_manager.py +185 -0
  23. pulumi_gcp/compute/instance_template.py +47 -0
  24. pulumi_gcp/compute/outputs.py +1039 -0
  25. pulumi_gcp/compute/project_cloud_armor_tier.py +336 -0
  26. pulumi_gcp/compute/region_instance_group_manager.py +185 -0
  27. pulumi_gcp/compute/region_instance_template.py +47 -0
  28. pulumi_gcp/config/__init__.pyi +2 -0
  29. pulumi_gcp/config/vars.py +4 -0
  30. pulumi_gcp/container/_inputs.py +33 -4
  31. pulumi_gcp/container/cluster.py +61 -0
  32. pulumi_gcp/container/get_cluster.py +11 -1
  33. pulumi_gcp/container/outputs.py +48 -4
  34. pulumi_gcp/dataloss/_inputs.py +185 -19
  35. pulumi_gcp/dataloss/outputs.py +206 -17
  36. pulumi_gcp/dataloss/prevention_inspect_template.py +54 -0
  37. pulumi_gcp/gkebackup/_inputs.py +282 -7
  38. pulumi_gcp/gkebackup/backup_plan.py +100 -0
  39. pulumi_gcp/gkebackup/outputs.py +312 -7
  40. pulumi_gcp/gkebackup/restore_plan.py +326 -0
  41. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +326 -0
  42. pulumi_gcp/gkebackup/restore_plan_iam_member.py +326 -0
  43. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +326 -0
  44. pulumi_gcp/healthcare/_inputs.py +17 -1
  45. pulumi_gcp/healthcare/dicom_store.py +2 -0
  46. pulumi_gcp/healthcare/fhir_store.py +44 -60
  47. pulumi_gcp/healthcare/outputs.py +15 -1
  48. pulumi_gcp/integrationconnectors/endpoint_attachment.py +47 -0
  49. pulumi_gcp/kms/crypto_key.py +14 -7
  50. pulumi_gcp/netapp/_inputs.py +58 -0
  51. pulumi_gcp/netapp/outputs.py +67 -0
  52. pulumi_gcp/netapp/volume.py +54 -0
  53. pulumi_gcp/networkservices/__init__.py +1 -0
  54. pulumi_gcp/networkservices/_inputs.py +47 -0
  55. pulumi_gcp/networkservices/outputs.py +56 -0
  56. pulumi_gcp/networkservices/service_lb_policies.py +782 -0
  57. pulumi_gcp/provider.py +20 -0
  58. pulumi_gcp/pulumi-plugin.json +1 -1
  59. pulumi_gcp/redis/_inputs.py +44 -0
  60. pulumi_gcp/redis/cluster.py +128 -3
  61. pulumi_gcp/redis/outputs.py +36 -0
  62. pulumi_gcp/secretmanager/_inputs.py +20 -0
  63. pulumi_gcp/secretmanager/outputs.py +20 -0
  64. pulumi_gcp/secretmanager/secret_iam_binding.py +244 -0
  65. pulumi_gcp/secretmanager/secret_iam_member.py +244 -0
  66. pulumi_gcp/secretmanager/secret_iam_policy.py +224 -0
  67. pulumi_gcp/securitycenter/__init__.py +1 -0
  68. pulumi_gcp/securitycenter/management_organization_event_threat_detection_custom_module.py +568 -0
  69. pulumi_gcp/spanner/__init__.py +1 -0
  70. pulumi_gcp/spanner/_inputs.py +68 -0
  71. pulumi_gcp/spanner/instance_config.py +569 -0
  72. pulumi_gcp/spanner/outputs.py +73 -0
  73. pulumi_gcp/sql/_inputs.py +8 -2
  74. pulumi_gcp/sql/outputs.py +9 -6
  75. pulumi_gcp/workstations/_inputs.py +51 -1
  76. pulumi_gcp/workstations/outputs.py +46 -2
  77. pulumi_gcp/workstations/workstation_config.py +10 -4
  78. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718247696.dist-info}/METADATA +1 -1
  79. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718247696.dist-info}/RECORD +81 -76
  80. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718247696.dist-info}/WHEEL +0 -0
  81. {pulumi_gcp-7.27.0a1718103841.dist-info → pulumi_gcp-7.27.0a1718247696.dist-info}/top_level.txt +0 -0
@@ -11,6 +11,7 @@ from .. import _utilities
11
11
  from . import outputs
12
12
 
13
13
  __all__ = [
14
+ 'VolumeBackupConfig',
14
15
  'VolumeExportPolicy',
15
16
  'VolumeExportPolicyRule',
16
17
  'VolumeMountOption',
@@ -24,6 +25,72 @@ __all__ = [
24
25
  'VolumeSnapshotPolicyWeeklySchedule',
25
26
  ]
26
27
 
28
+ @pulumi.output_type
29
+ class VolumeBackupConfig(dict):
30
+ @staticmethod
31
+ def __key_warning(key: str):
32
+ suggest = None
33
+ if key == "backupPolicies":
34
+ suggest = "backup_policies"
35
+ elif key == "backupVault":
36
+ suggest = "backup_vault"
37
+ elif key == "scheduledBackupEnabled":
38
+ suggest = "scheduled_backup_enabled"
39
+
40
+ if suggest:
41
+ pulumi.log.warn(f"Key '{key}' not found in VolumeBackupConfig. Access the value via the '{suggest}' property getter instead.")
42
+
43
+ def __getitem__(self, key: str) -> Any:
44
+ VolumeBackupConfig.__key_warning(key)
45
+ return super().__getitem__(key)
46
+
47
+ def get(self, key: str, default = None) -> Any:
48
+ VolumeBackupConfig.__key_warning(key)
49
+ return super().get(key, default)
50
+
51
+ def __init__(__self__, *,
52
+ backup_policies: Optional[Sequence[str]] = None,
53
+ backup_vault: Optional[str] = None,
54
+ scheduled_backup_enabled: Optional[bool] = None):
55
+ """
56
+ :param Sequence[str] backup_policies: Specify a single backup policy ID for scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupPolicies/{{backupPolicyName}}`
57
+ :param str backup_vault: ID of the backup vault to use. A backup vault is reqired to create manual or scheduled backups.
58
+ Format: `projects/{{projectId}}/locations/{{location}}/backupVaults/{{backupVaultName}}`
59
+ :param bool scheduled_backup_enabled: When set to true, scheduled backup is enabled on the volume. Omit if no backup_policy is specified.
60
+ """
61
+ if backup_policies is not None:
62
+ pulumi.set(__self__, "backup_policies", backup_policies)
63
+ if backup_vault is not None:
64
+ pulumi.set(__self__, "backup_vault", backup_vault)
65
+ if scheduled_backup_enabled is not None:
66
+ pulumi.set(__self__, "scheduled_backup_enabled", scheduled_backup_enabled)
67
+
68
+ @property
69
+ @pulumi.getter(name="backupPolicies")
70
+ def backup_policies(self) -> Optional[Sequence[str]]:
71
+ """
72
+ Specify a single backup policy ID for scheduled backups. Format: `projects/{{projectId}}/locations/{{location}}/backupPolicies/{{backupPolicyName}}`
73
+ """
74
+ return pulumi.get(self, "backup_policies")
75
+
76
+ @property
77
+ @pulumi.getter(name="backupVault")
78
+ def backup_vault(self) -> Optional[str]:
79
+ """
80
+ ID of the backup vault to use. A backup vault is reqired to create manual or scheduled backups.
81
+ Format: `projects/{{projectId}}/locations/{{location}}/backupVaults/{{backupVaultName}}`
82
+ """
83
+ return pulumi.get(self, "backup_vault")
84
+
85
+ @property
86
+ @pulumi.getter(name="scheduledBackupEnabled")
87
+ def scheduled_backup_enabled(self) -> Optional[bool]:
88
+ """
89
+ When set to true, scheduled backup is enabled on the volume. Omit if no backup_policy is specified.
90
+ """
91
+ return pulumi.get(self, "scheduled_backup_enabled")
92
+
93
+
27
94
  @pulumi.output_type
28
95
  class VolumeExportPolicy(dict):
29
96
  def __init__(__self__, *,
@@ -21,6 +21,7 @@ class VolumeArgs:
21
21
  protocols: pulumi.Input[Sequence[pulumi.Input[str]]],
22
22
  share_name: pulumi.Input[str],
23
23
  storage_pool: pulumi.Input[str],
24
+ backup_config: Optional[pulumi.Input['VolumeBackupConfigArgs']] = None,
24
25
  deletion_policy: Optional[pulumi.Input[str]] = None,
25
26
  description: Optional[pulumi.Input[str]] = None,
26
27
  export_policy: Optional[pulumi.Input['VolumeExportPolicyArgs']] = None,
@@ -43,6 +44,8 @@ class VolumeArgs:
43
44
  Each value may be one of: `NFSV3`, `NFSV4`, `SMB`.
44
45
  :param pulumi.Input[str] share_name: Share name (SMB) or export path (NFS) of the volume. Needs to be unique per location.
45
46
  :param pulumi.Input[str] storage_pool: Name of the storage pool to create the volume in. Pool needs enough spare capacity to accomodate the volume.
47
+ :param pulumi.Input['VolumeBackupConfigArgs'] backup_config: Backup configuration for the volume.
48
+ Structure is documented below.
46
49
  :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
47
50
  Volumes may have nested snapshot resources. Deleting such a volume will fail.
48
51
  Setting this parameter to FORCE will delete volumes including nested snapshots.
@@ -80,6 +83,8 @@ class VolumeArgs:
80
83
  pulumi.set(__self__, "protocols", protocols)
81
84
  pulumi.set(__self__, "share_name", share_name)
82
85
  pulumi.set(__self__, "storage_pool", storage_pool)
86
+ if backup_config is not None:
87
+ pulumi.set(__self__, "backup_config", backup_config)
83
88
  if deletion_policy is not None:
84
89
  pulumi.set(__self__, "deletion_policy", deletion_policy)
85
90
  if description is not None:
@@ -170,6 +175,19 @@ class VolumeArgs:
170
175
  def storage_pool(self, value: pulumi.Input[str]):
171
176
  pulumi.set(self, "storage_pool", value)
172
177
 
178
+ @property
179
+ @pulumi.getter(name="backupConfig")
180
+ def backup_config(self) -> Optional[pulumi.Input['VolumeBackupConfigArgs']]:
181
+ """
182
+ Backup configuration for the volume.
183
+ Structure is documented below.
184
+ """
185
+ return pulumi.get(self, "backup_config")
186
+
187
+ @backup_config.setter
188
+ def backup_config(self, value: Optional[pulumi.Input['VolumeBackupConfigArgs']]):
189
+ pulumi.set(self, "backup_config", value)
190
+
173
191
  @property
174
192
  @pulumi.getter(name="deletionPolicy")
175
193
  def deletion_policy(self) -> Optional[pulumi.Input[str]]:
@@ -360,6 +378,7 @@ class VolumeArgs:
360
378
  class _VolumeState:
361
379
  def __init__(__self__, *,
362
380
  active_directory: Optional[pulumi.Input[str]] = None,
381
+ backup_config: Optional[pulumi.Input['VolumeBackupConfigArgs']] = None,
363
382
  capacity_gib: Optional[pulumi.Input[str]] = None,
364
383
  create_time: Optional[pulumi.Input[str]] = None,
365
384
  deletion_policy: Optional[pulumi.Input[str]] = None,
@@ -396,6 +415,8 @@ class _VolumeState:
396
415
  """
397
416
  Input properties used for looking up and filtering Volume resources.
398
417
  :param pulumi.Input[str] active_directory: Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
418
+ :param pulumi.Input['VolumeBackupConfigArgs'] backup_config: Backup configuration for the volume.
419
+ Structure is documented below.
399
420
  :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
400
421
  :param pulumi.Input[str] create_time: Create time of the volume. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
401
422
  :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
@@ -452,6 +473,8 @@ class _VolumeState:
452
473
  """
453
474
  if active_directory is not None:
454
475
  pulumi.set(__self__, "active_directory", active_directory)
476
+ if backup_config is not None:
477
+ pulumi.set(__self__, "backup_config", backup_config)
455
478
  if capacity_gib is not None:
456
479
  pulumi.set(__self__, "capacity_gib", capacity_gib)
457
480
  if create_time is not None:
@@ -531,6 +554,19 @@ class _VolumeState:
531
554
  def active_directory(self, value: Optional[pulumi.Input[str]]):
532
555
  pulumi.set(self, "active_directory", value)
533
556
 
557
+ @property
558
+ @pulumi.getter(name="backupConfig")
559
+ def backup_config(self) -> Optional[pulumi.Input['VolumeBackupConfigArgs']]:
560
+ """
561
+ Backup configuration for the volume.
562
+ Structure is documented below.
563
+ """
564
+ return pulumi.get(self, "backup_config")
565
+
566
+ @backup_config.setter
567
+ def backup_config(self, value: Optional[pulumi.Input['VolumeBackupConfigArgs']]):
568
+ pulumi.set(self, "backup_config", value)
569
+
534
570
  @property
535
571
  @pulumi.getter(name="capacityGib")
536
572
  def capacity_gib(self) -> Optional[pulumi.Input[str]]:
@@ -953,6 +989,7 @@ class Volume(pulumi.CustomResource):
953
989
  def __init__(__self__,
954
990
  resource_name: str,
955
991
  opts: Optional[pulumi.ResourceOptions] = None,
992
+ backup_config: Optional[pulumi.Input[pulumi.InputType['VolumeBackupConfigArgs']]] = None,
956
993
  capacity_gib: Optional[pulumi.Input[str]] = None,
957
994
  deletion_policy: Optional[pulumi.Input[str]] = None,
958
995
  description: Optional[pulumi.Input[str]] = None,
@@ -1038,6 +1075,8 @@ class Volume(pulumi.CustomResource):
1038
1075
 
1039
1076
  :param str resource_name: The name of the resource.
1040
1077
  :param pulumi.ResourceOptions opts: Options for the resource.
1078
+ :param pulumi.Input[pulumi.InputType['VolumeBackupConfigArgs']] backup_config: Backup configuration for the volume.
1079
+ Structure is documented below.
1041
1080
  :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
1042
1081
  :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
1043
1082
  Volumes may have nested snapshot resources. Deleting such a volume will fail.
@@ -1160,6 +1199,7 @@ class Volume(pulumi.CustomResource):
1160
1199
  def _internal_init(__self__,
1161
1200
  resource_name: str,
1162
1201
  opts: Optional[pulumi.ResourceOptions] = None,
1202
+ backup_config: Optional[pulumi.Input[pulumi.InputType['VolumeBackupConfigArgs']]] = None,
1163
1203
  capacity_gib: Optional[pulumi.Input[str]] = None,
1164
1204
  deletion_policy: Optional[pulumi.Input[str]] = None,
1165
1205
  description: Optional[pulumi.Input[str]] = None,
@@ -1188,6 +1228,7 @@ class Volume(pulumi.CustomResource):
1188
1228
  raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
1189
1229
  __props__ = VolumeArgs.__new__(VolumeArgs)
1190
1230
 
1231
+ __props__.__dict__["backup_config"] = backup_config
1191
1232
  if capacity_gib is None and not opts.urn:
1192
1233
  raise TypeError("Missing required property 'capacity_gib'")
1193
1234
  __props__.__dict__["capacity_gib"] = capacity_gib
@@ -1245,6 +1286,7 @@ class Volume(pulumi.CustomResource):
1245
1286
  id: pulumi.Input[str],
1246
1287
  opts: Optional[pulumi.ResourceOptions] = None,
1247
1288
  active_directory: Optional[pulumi.Input[str]] = None,
1289
+ backup_config: Optional[pulumi.Input[pulumi.InputType['VolumeBackupConfigArgs']]] = None,
1248
1290
  capacity_gib: Optional[pulumi.Input[str]] = None,
1249
1291
  create_time: Optional[pulumi.Input[str]] = None,
1250
1292
  deletion_policy: Optional[pulumi.Input[str]] = None,
@@ -1286,6 +1328,8 @@ class Volume(pulumi.CustomResource):
1286
1328
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1287
1329
  :param pulumi.ResourceOptions opts: Options for the resource.
1288
1330
  :param pulumi.Input[str] active_directory: Reports the resource name of the Active Directory policy being used. Inherited from storage pool.
1331
+ :param pulumi.Input[pulumi.InputType['VolumeBackupConfigArgs']] backup_config: Backup configuration for the volume.
1332
+ Structure is documented below.
1289
1333
  :param pulumi.Input[str] capacity_gib: Capacity of the volume (in GiB).
1290
1334
  :param pulumi.Input[str] create_time: Create time of the volume. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
1291
1335
  :param pulumi.Input[str] deletion_policy: Policy to determine if the volume should be deleted forcefully.
@@ -1345,6 +1389,7 @@ class Volume(pulumi.CustomResource):
1345
1389
  __props__ = _VolumeState.__new__(_VolumeState)
1346
1390
 
1347
1391
  __props__.__dict__["active_directory"] = active_directory
1392
+ __props__.__dict__["backup_config"] = backup_config
1348
1393
  __props__.__dict__["capacity_gib"] = capacity_gib
1349
1394
  __props__.__dict__["create_time"] = create_time
1350
1395
  __props__.__dict__["deletion_policy"] = deletion_policy
@@ -1388,6 +1433,15 @@ class Volume(pulumi.CustomResource):
1388
1433
  """
1389
1434
  return pulumi.get(self, "active_directory")
1390
1435
 
1436
+ @property
1437
+ @pulumi.getter(name="backupConfig")
1438
+ def backup_config(self) -> pulumi.Output[Optional['outputs.VolumeBackupConfig']]:
1439
+ """
1440
+ Backup configuration for the volume.
1441
+ Structure is documented below.
1442
+ """
1443
+ return pulumi.get(self, "backup_config")
1444
+
1391
1445
  @property
1392
1446
  @pulumi.getter(name="capacityGib")
1393
1447
  def capacity_gib(self) -> pulumi.Output[str]:
@@ -16,6 +16,7 @@ from .lb_route_extension import *
16
16
  from .lb_traffic_extension import *
17
17
  from .mesh import *
18
18
  from .service_binding import *
19
+ from .service_lb_policies import *
19
20
  from .tcp_route import *
20
21
  from .tls_route import *
21
22
  from ._inputs import *
@@ -78,6 +78,8 @@ __all__ = [
78
78
  'LbTrafficExtensionExtensionChainArgs',
79
79
  'LbTrafficExtensionExtensionChainExtensionArgs',
80
80
  'LbTrafficExtensionExtensionChainMatchConditionArgs',
81
+ 'ServiceLbPoliciesAutoCapacityDrainArgs',
82
+ 'ServiceLbPoliciesFailoverConfigArgs',
81
83
  'TcpRouteRuleArgs',
82
84
  'TcpRouteRuleActionArgs',
83
85
  'TcpRouteRuleActionDestinationArgs',
@@ -4726,6 +4728,51 @@ class LbTrafficExtensionExtensionChainMatchConditionArgs:
4726
4728
  pulumi.set(self, "cel_expression", value)
4727
4729
 
4728
4730
 
4731
+ @pulumi.input_type
4732
+ class ServiceLbPoliciesAutoCapacityDrainArgs:
4733
+ def __init__(__self__, *,
4734
+ enable: Optional[pulumi.Input[bool]] = None):
4735
+ """
4736
+ :param pulumi.Input[bool] enable: Optional. If set to 'True', an unhealthy MIG/NEG will be set as drained. - An MIG/NEG is considered unhealthy if less than 25% of the instances/endpoints in the MIG/NEG are healthy. - This option will never result in draining more than 50% of the configured IGs/NEGs for the Backend Service.
4737
+ """
4738
+ if enable is not None:
4739
+ pulumi.set(__self__, "enable", enable)
4740
+
4741
+ @property
4742
+ @pulumi.getter
4743
+ def enable(self) -> Optional[pulumi.Input[bool]]:
4744
+ """
4745
+ Optional. If set to 'True', an unhealthy MIG/NEG will be set as drained. - An MIG/NEG is considered unhealthy if less than 25% of the instances/endpoints in the MIG/NEG are healthy. - This option will never result in draining more than 50% of the configured IGs/NEGs for the Backend Service.
4746
+ """
4747
+ return pulumi.get(self, "enable")
4748
+
4749
+ @enable.setter
4750
+ def enable(self, value: Optional[pulumi.Input[bool]]):
4751
+ pulumi.set(self, "enable", value)
4752
+
4753
+
4754
+ @pulumi.input_type
4755
+ class ServiceLbPoliciesFailoverConfigArgs:
4756
+ def __init__(__self__, *,
4757
+ failover_health_threshold: pulumi.Input[int]):
4758
+ """
4759
+ :param pulumi.Input[int] failover_health_threshold: Optional. The percentage threshold that a load balancer will begin to send traffic to failover backends. If the percentage of endpoints in a MIG/NEG is smaller than this value, traffic would be sent to failover backends if possible. This field should be set to a value between 1 and 99. The default value is 50 for Global external HTTP(S) load balancer (classic) and Proxyless service mesh, and 70 for others.
4760
+ """
4761
+ pulumi.set(__self__, "failover_health_threshold", failover_health_threshold)
4762
+
4763
+ @property
4764
+ @pulumi.getter(name="failoverHealthThreshold")
4765
+ def failover_health_threshold(self) -> pulumi.Input[int]:
4766
+ """
4767
+ Optional. The percentage threshold that a load balancer will begin to send traffic to failover backends. If the percentage of endpoints in a MIG/NEG is smaller than this value, traffic would be sent to failover backends if possible. This field should be set to a value between 1 and 99. The default value is 50 for Global external HTTP(S) load balancer (classic) and Proxyless service mesh, and 70 for others.
4768
+ """
4769
+ return pulumi.get(self, "failover_health_threshold")
4770
+
4771
+ @failover_health_threshold.setter
4772
+ def failover_health_threshold(self, value: pulumi.Input[int]):
4773
+ pulumi.set(self, "failover_health_threshold", value)
4774
+
4775
+
4729
4776
  @pulumi.input_type
4730
4777
  class TcpRouteRuleArgs:
4731
4778
  def __init__(__self__, *,
@@ -79,6 +79,8 @@ __all__ = [
79
79
  'LbTrafficExtensionExtensionChain',
80
80
  'LbTrafficExtensionExtensionChainExtension',
81
81
  'LbTrafficExtensionExtensionChainMatchCondition',
82
+ 'ServiceLbPoliciesAutoCapacityDrain',
83
+ 'ServiceLbPoliciesFailoverConfig',
82
84
  'TcpRouteRule',
83
85
  'TcpRouteRuleAction',
84
86
  'TcpRouteRuleActionDestination',
@@ -4975,6 +4977,60 @@ class LbTrafficExtensionExtensionChainMatchCondition(dict):
4975
4977
  return pulumi.get(self, "cel_expression")
4976
4978
 
4977
4979
 
4980
+ @pulumi.output_type
4981
+ class ServiceLbPoliciesAutoCapacityDrain(dict):
4982
+ def __init__(__self__, *,
4983
+ enable: Optional[bool] = None):
4984
+ """
4985
+ :param bool enable: Optional. If set to 'True', an unhealthy MIG/NEG will be set as drained. - An MIG/NEG is considered unhealthy if less than 25% of the instances/endpoints in the MIG/NEG are healthy. - This option will never result in draining more than 50% of the configured IGs/NEGs for the Backend Service.
4986
+ """
4987
+ if enable is not None:
4988
+ pulumi.set(__self__, "enable", enable)
4989
+
4990
+ @property
4991
+ @pulumi.getter
4992
+ def enable(self) -> Optional[bool]:
4993
+ """
4994
+ Optional. If set to 'True', an unhealthy MIG/NEG will be set as drained. - An MIG/NEG is considered unhealthy if less than 25% of the instances/endpoints in the MIG/NEG are healthy. - This option will never result in draining more than 50% of the configured IGs/NEGs for the Backend Service.
4995
+ """
4996
+ return pulumi.get(self, "enable")
4997
+
4998
+
4999
+ @pulumi.output_type
5000
+ class ServiceLbPoliciesFailoverConfig(dict):
5001
+ @staticmethod
5002
+ def __key_warning(key: str):
5003
+ suggest = None
5004
+ if key == "failoverHealthThreshold":
5005
+ suggest = "failover_health_threshold"
5006
+
5007
+ if suggest:
5008
+ pulumi.log.warn(f"Key '{key}' not found in ServiceLbPoliciesFailoverConfig. Access the value via the '{suggest}' property getter instead.")
5009
+
5010
+ def __getitem__(self, key: str) -> Any:
5011
+ ServiceLbPoliciesFailoverConfig.__key_warning(key)
5012
+ return super().__getitem__(key)
5013
+
5014
+ def get(self, key: str, default = None) -> Any:
5015
+ ServiceLbPoliciesFailoverConfig.__key_warning(key)
5016
+ return super().get(key, default)
5017
+
5018
+ def __init__(__self__, *,
5019
+ failover_health_threshold: int):
5020
+ """
5021
+ :param int failover_health_threshold: Optional. The percentage threshold that a load balancer will begin to send traffic to failover backends. If the percentage of endpoints in a MIG/NEG is smaller than this value, traffic would be sent to failover backends if possible. This field should be set to a value between 1 and 99. The default value is 50 for Global external HTTP(S) load balancer (classic) and Proxyless service mesh, and 70 for others.
5022
+ """
5023
+ pulumi.set(__self__, "failover_health_threshold", failover_health_threshold)
5024
+
5025
+ @property
5026
+ @pulumi.getter(name="failoverHealthThreshold")
5027
+ def failover_health_threshold(self) -> int:
5028
+ """
5029
+ Optional. The percentage threshold that a load balancer will begin to send traffic to failover backends. If the percentage of endpoints in a MIG/NEG is smaller than this value, traffic would be sent to failover backends if possible. This field should be set to a value between 1 and 99. The default value is 50 for Global external HTTP(S) load balancer (classic) and Proxyless service mesh, and 70 for others.
5030
+ """
5031
+ return pulumi.get(self, "failover_health_threshold")
5032
+
5033
+
4978
5034
  @pulumi.output_type
4979
5035
  class TcpRouteRule(dict):
4980
5036
  def __init__(__self__, *,