pulumi-spotinst 3.112.0a1741317810__py3-none-any.whl → 3.128.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pulumi-spotinst might be problematic. Click here for more details.

Files changed (77) hide show
  1. pulumi_spotinst/__init__.py +11 -1
  2. pulumi_spotinst/_inputs.py +2283 -1519
  3. pulumi_spotinst/_utilities.py +1 -1
  4. pulumi_spotinst/account.py +20 -19
  5. pulumi_spotinst/aws/__init__.py +2 -1
  6. pulumi_spotinst/aws/_inputs.py +4047 -3607
  7. pulumi_spotinst/aws/account.py +20 -19
  8. pulumi_spotinst/aws/beanstalk.py +254 -177
  9. pulumi_spotinst/aws/credentials.py +37 -36
  10. pulumi_spotinst/aws/elastigroup.py +970 -924
  11. pulumi_spotinst/aws/managed_instance.py +507 -506
  12. pulumi_spotinst/aws/mr_scalar.py +658 -653
  13. pulumi_spotinst/aws/ocean.py +668 -526
  14. pulumi_spotinst/aws/ocean_extended_resource_definition.py +37 -36
  15. pulumi_spotinst/aws/ocean_launch_spec.py +439 -297
  16. pulumi_spotinst/aws/outputs.py +2697 -2363
  17. pulumi_spotinst/aws/suspension.py +23 -22
  18. pulumi_spotinst/azure/__init__.py +2 -1
  19. pulumi_spotinst/azure/_inputs.py +607 -607
  20. pulumi_spotinst/azure/ocean_np.py +387 -386
  21. pulumi_spotinst/azure/ocean_np_virtual_node_group.py +323 -322
  22. pulumi_spotinst/azure/outputs.py +411 -411
  23. pulumi_spotinst/config/__init__.py +2 -1
  24. pulumi_spotinst/config/__init__.pyi +2 -2
  25. pulumi_spotinst/config/vars.py +6 -6
  26. pulumi_spotinst/credentials_azure.py +139 -89
  27. pulumi_spotinst/credentials_gcp.py +190 -189
  28. pulumi_spotinst/data_integration.py +40 -39
  29. pulumi_spotinst/ecs/__init__.py +2 -1
  30. pulumi_spotinst/ecs/_inputs.py +584 -584
  31. pulumi_spotinst/ecs/ocean.py +628 -415
  32. pulumi_spotinst/ecs/ocean_launch_spec.py +197 -196
  33. pulumi_spotinst/ecs/outputs.py +394 -394
  34. pulumi_spotinst/elastigroup_azure_v3.py +326 -325
  35. pulumi_spotinst/gcp/__init__.py +2 -1
  36. pulumi_spotinst/gcp/_inputs.py +573 -499
  37. pulumi_spotinst/gcp/elastigroup.py +491 -482
  38. pulumi_spotinst/gcp/outputs.py +395 -330
  39. pulumi_spotinst/gke/__init__.py +2 -1
  40. pulumi_spotinst/gke/_inputs.py +1120 -895
  41. pulumi_spotinst/gke/elastigroup.py +341 -340
  42. pulumi_spotinst/gke/ocean_import.py +204 -203
  43. pulumi_spotinst/gke/ocean_launch_spec.py +288 -216
  44. pulumi_spotinst/gke/ocean_launch_spec_import.py +37 -36
  45. pulumi_spotinst/gke/outputs.py +769 -583
  46. pulumi_spotinst/health_check.py +106 -65
  47. pulumi_spotinst/notification_center.py +344 -0
  48. pulumi_spotinst/ocean_right_sizing_rule.py +424 -77
  49. pulumi_spotinst/oceancd/__init__.py +2 -1
  50. pulumi_spotinst/oceancd/_inputs.py +764 -764
  51. pulumi_spotinst/oceancd/outputs.py +526 -526
  52. pulumi_spotinst/oceancd/rollout_spec.py +35 -34
  53. pulumi_spotinst/oceancd/strategy.py +22 -21
  54. pulumi_spotinst/oceancd/verification_provider.py +52 -51
  55. pulumi_spotinst/oceancd/verification_template.py +26 -25
  56. pulumi_spotinst/organization/__init__.py +2 -1
  57. pulumi_spotinst/organization/_inputs.py +68 -68
  58. pulumi_spotinst/organization/outputs.py +46 -46
  59. pulumi_spotinst/organization/policy.py +40 -39
  60. pulumi_spotinst/organization/programmatic_user.py +60 -59
  61. pulumi_spotinst/organization/user.py +108 -107
  62. pulumi_spotinst/organization/user_group.py +57 -56
  63. pulumi_spotinst/outputs.py +1539 -932
  64. pulumi_spotinst/provider.py +61 -40
  65. pulumi_spotinst/pulumi-plugin.json +1 -1
  66. pulumi_spotinst/spark/__init__.py +2 -1
  67. pulumi_spotinst/spark/_inputs.py +104 -104
  68. pulumi_spotinst/spark/ocean.py +38 -37
  69. pulumi_spotinst/spark/ocean_virtual_node_group.py +29 -28
  70. pulumi_spotinst/spark/outputs.py +72 -72
  71. pulumi_spotinst/stateful_node_azure.py +340 -343
  72. pulumi_spotinst/subscription.py +88 -87
  73. {pulumi_spotinst-3.112.0a1741317810.dist-info → pulumi_spotinst-3.128.0.dist-info}/METADATA +4 -4
  74. pulumi_spotinst-3.128.0.dist-info/RECORD +77 -0
  75. {pulumi_spotinst-3.112.0a1741317810.dist-info → pulumi_spotinst-3.128.0.dist-info}/WHEEL +1 -1
  76. pulumi_spotinst-3.112.0a1741317810.dist-info/RECORD +0 -76
  77. {pulumi_spotinst-3.112.0a1741317810.dist-info → pulumi_spotinst-3.128.0.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,8 @@
1
1
  # coding=utf-8
2
- # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
3
  # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
4
 
5
- import copy
5
+ import builtins as _builtins
6
6
  import warnings
7
7
  import sys
8
8
  import pulumi
@@ -21,36 +21,36 @@ __all__ = ['ElastigroupArgs', 'Elastigroup']
21
21
  @pulumi.input_type
22
22
  class ElastigroupArgs:
23
23
  def __init__(__self__, *,
24
- fallback_to_ondemand: pulumi.Input[bool],
25
- orientation: pulumi.Input[str],
26
- product: pulumi.Input[str],
27
- security_groups: pulumi.Input[Sequence[pulumi.Input[str]]],
28
- auto_healing: Optional[pulumi.Input[bool]] = None,
29
- availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
30
- block_devices_mode: Optional[pulumi.Input[str]] = None,
31
- capacity_unit: Optional[pulumi.Input[str]] = None,
32
- consider_od_pricing: Optional[pulumi.Input[bool]] = None,
33
- cpu_credits: Optional[pulumi.Input[str]] = None,
24
+ fallback_to_ondemand: pulumi.Input[_builtins.bool],
25
+ orientation: pulumi.Input[_builtins.str],
26
+ product: pulumi.Input[_builtins.str],
27
+ security_groups: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]],
28
+ auto_healing: Optional[pulumi.Input[_builtins.bool]] = None,
29
+ availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
30
+ block_devices_mode: Optional[pulumi.Input[_builtins.str]] = None,
31
+ capacity_unit: Optional[pulumi.Input[_builtins.str]] = None,
32
+ consider_od_pricing: Optional[pulumi.Input[_builtins.bool]] = None,
33
+ cpu_credits: Optional[pulumi.Input[_builtins.str]] = None,
34
34
  cpu_options: Optional[pulumi.Input['ElastigroupCpuOptionsArgs']] = None,
35
- description: Optional[pulumi.Input[str]] = None,
36
- desired_capacity: Optional[pulumi.Input[int]] = None,
37
- draining_timeout: Optional[pulumi.Input[int]] = None,
35
+ description: Optional[pulumi.Input[_builtins.str]] = None,
36
+ desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
37
+ draining_timeout: Optional[pulumi.Input[_builtins.int]] = None,
38
38
  ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEbsBlockDeviceArgs']]]] = None,
39
- ebs_optimized: Optional[pulumi.Input[bool]] = None,
40
- elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
41
- elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
42
- enable_monitoring: Optional[pulumi.Input[bool]] = None,
39
+ ebs_optimized: Optional[pulumi.Input[_builtins.bool]] = None,
40
+ elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
41
+ elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
42
+ enable_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
43
43
  ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEphemeralBlockDeviceArgs']]]] = None,
44
- health_check_grace_period: Optional[pulumi.Input[int]] = None,
45
- health_check_type: Optional[pulumi.Input[str]] = None,
46
- health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[int]] = None,
47
- iam_instance_profile: Optional[pulumi.Input[str]] = None,
48
- image_id: Optional[pulumi.Input[str]] = None,
44
+ health_check_grace_period: Optional[pulumi.Input[_builtins.int]] = None,
45
+ health_check_type: Optional[pulumi.Input[_builtins.str]] = None,
46
+ health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[_builtins.int]] = None,
47
+ iam_instance_profile: Optional[pulumi.Input[_builtins.str]] = None,
48
+ image_id: Optional[pulumi.Input[_builtins.str]] = None,
49
49
  images: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]] = None,
50
- immediate_od_recover_threshold: Optional[pulumi.Input[int]] = None,
51
- instance_types_ondemand: Optional[pulumi.Input[str]] = None,
52
- instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
53
- instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
50
+ immediate_od_recover_threshold: Optional[pulumi.Input[_builtins.int]] = None,
51
+ instance_types_ondemand: Optional[pulumi.Input[_builtins.str]] = None,
52
+ instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
53
+ instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
54
54
  instance_types_weights: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]]] = None,
55
55
  integration_beanstalk: Optional[pulumi.Input['ElastigroupIntegrationBeanstalkArgs']] = None,
56
56
  integration_codedeploy: Optional[pulumi.Input['ElastigroupIntegrationCodedeployArgs']] = None,
@@ -63,107 +63,108 @@ class ElastigroupArgs:
63
63
  integration_rancher: Optional[pulumi.Input['ElastigroupIntegrationRancherArgs']] = None,
64
64
  integration_route53: Optional[pulumi.Input['ElastigroupIntegrationRoute53Args']] = None,
65
65
  itfs: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupItfArgs']]]] = None,
66
- key_name: Optional[pulumi.Input[str]] = None,
67
- lifetime_period: Optional[pulumi.Input[str]] = None,
66
+ key_name: Optional[pulumi.Input[_builtins.str]] = None,
67
+ lifetime_period: Optional[pulumi.Input[_builtins.str]] = None,
68
68
  logging: Optional[pulumi.Input['ElastigroupLoggingArgs']] = None,
69
- max_size: Optional[pulumi.Input[int]] = None,
69
+ max_replacements_percentage: Optional[pulumi.Input[_builtins.int]] = None,
70
+ max_size: Optional[pulumi.Input[_builtins.int]] = None,
70
71
  metadata_options: Optional[pulumi.Input['ElastigroupMetadataOptionsArgs']] = None,
71
- min_size: Optional[pulumi.Input[int]] = None,
72
- minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
72
+ min_size: Optional[pulumi.Input[_builtins.int]] = None,
73
+ minimum_instance_lifetime: Optional[pulumi.Input[_builtins.int]] = None,
73
74
  multiple_metrics: Optional[pulumi.Input['ElastigroupMultipleMetricsArgs']] = None,
74
- name: Optional[pulumi.Input[str]] = None,
75
+ name: Optional[pulumi.Input[_builtins.str]] = None,
75
76
  network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkInterfaceArgs']]]] = None,
76
- on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
77
- ondemand_count: Optional[pulumi.Input[int]] = None,
78
- persist_block_devices: Optional[pulumi.Input[bool]] = None,
79
- persist_private_ip: Optional[pulumi.Input[bool]] = None,
80
- persist_root_device: Optional[pulumi.Input[bool]] = None,
81
- placement_tenancy: Optional[pulumi.Input[str]] = None,
82
- preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
83
- private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
84
- region: Optional[pulumi.Input[str]] = None,
77
+ on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
78
+ ondemand_count: Optional[pulumi.Input[_builtins.int]] = None,
79
+ persist_block_devices: Optional[pulumi.Input[_builtins.bool]] = None,
80
+ persist_private_ip: Optional[pulumi.Input[_builtins.bool]] = None,
81
+ persist_root_device: Optional[pulumi.Input[_builtins.bool]] = None,
82
+ placement_tenancy: Optional[pulumi.Input[_builtins.str]] = None,
83
+ preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
84
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
85
+ region: Optional[pulumi.Input[_builtins.str]] = None,
85
86
  resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]]] = None,
86
87
  resource_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]]] = None,
87
- restrict_single_az: Optional[pulumi.Input[bool]] = None,
88
+ restrict_single_az: Optional[pulumi.Input[_builtins.bool]] = None,
88
89
  revert_to_spot: Optional[pulumi.Input['ElastigroupRevertToSpotArgs']] = None,
89
90
  scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]] = None,
90
91
  scaling_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]]] = None,
91
92
  scaling_target_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingTargetPolicyArgs']]]] = None,
92
93
  scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]] = None,
93
94
  scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]] = None,
94
- shutdown_script: Optional[pulumi.Input[str]] = None,
95
+ shutdown_script: Optional[pulumi.Input[_builtins.str]] = None,
95
96
  signals: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]] = None,
96
- spot_percentage: Optional[pulumi.Input[int]] = None,
97
+ spot_percentage: Optional[pulumi.Input[_builtins.int]] = None,
97
98
  stateful_deallocation: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']] = None,
98
99
  stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]] = None,
99
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
100
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
100
101
  tags: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]] = None,
101
- target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
102
+ target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
102
103
  update_policy: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']] = None,
103
- user_data: Optional[pulumi.Input[str]] = None,
104
- utilize_commitments: Optional[pulumi.Input[bool]] = None,
105
- utilize_reserved_instances: Optional[pulumi.Input[bool]] = None,
106
- wait_for_capacity: Optional[pulumi.Input[int]] = None,
107
- wait_for_capacity_timeout: Optional[pulumi.Input[int]] = None):
104
+ user_data: Optional[pulumi.Input[_builtins.str]] = None,
105
+ utilize_commitments: Optional[pulumi.Input[_builtins.bool]] = None,
106
+ utilize_reserved_instances: Optional[pulumi.Input[_builtins.bool]] = None,
107
+ wait_for_capacity: Optional[pulumi.Input[_builtins.int]] = None,
108
+ wait_for_capacity_timeout: Optional[pulumi.Input[_builtins.int]] = None):
108
109
  """
109
110
  The set of arguments for constructing a Elastigroup resource.
110
- :param pulumi.Input[bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
111
- :param pulumi.Input[str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
112
- :param pulumi.Input[str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
111
+ :param pulumi.Input[_builtins.bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
112
+ :param pulumi.Input[_builtins.str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
113
+ :param pulumi.Input[_builtins.str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
113
114
  For EC2 Classic instances: `"SUSE Linux (Amazon VPC)"`, `"Windows (Amazon VPC)"`.
114
- :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of associated security group IDS.
115
- :param pulumi.Input[bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
116
- :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
115
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] security_groups: A list of associated security group IDS.
116
+ :param pulumi.Input[_builtins.bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
117
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
117
118
  Note: `availability_zones` naming syntax follows the convention `availability-zone:subnet:placement-group-name`. For example, to set an AZ in `us-east-1` with subnet `subnet-123456` and placement group `ClusterI03`, you would set:
118
119
  `availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]`
119
- :param pulumi.Input[str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
120
- :param pulumi.Input[str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
120
+ :param pulumi.Input[_builtins.str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
121
+ :param pulumi.Input[_builtins.str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
121
122
  :param pulumi.Input['ElastigroupCpuOptionsArgs'] cpu_options: The CPU options for the instances that are launched within the group:
122
- :param pulumi.Input[str] description: The group description.
123
- :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time.
124
- :param pulumi.Input[int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
125
- :param pulumi.Input[bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
126
- :param pulumi.Input[Sequence[pulumi.Input[str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
127
- :param pulumi.Input[bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
128
- :param pulumi.Input[int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
129
- :param pulumi.Input[str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
130
- :param pulumi.Input[int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
131
- :param pulumi.Input[str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
132
- :param pulumi.Input[str] image_id: The ID of the AMI used to launch the instance.
123
+ :param pulumi.Input[_builtins.str] description: The group description.
124
+ :param pulumi.Input[_builtins.int] desired_capacity: The desired number of instances the group should have at any time.
125
+ :param pulumi.Input[_builtins.int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
126
+ :param pulumi.Input[_builtins.bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
127
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
128
+ :param pulumi.Input[_builtins.bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
129
+ :param pulumi.Input[_builtins.int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
130
+ :param pulumi.Input[_builtins.str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
131
+ :param pulumi.Input[_builtins.int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
132
+ :param pulumi.Input[_builtins.str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
133
+ :param pulumi.Input[_builtins.str] image_id: The ID of the AMI used to launch the instance.
133
134
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]] images: An array of image objects.
134
135
  Note: Elastigroup can be configured with either imageId or images, but not both.
135
- :param pulumi.Input[str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
136
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
137
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
136
+ :param pulumi.Input[_builtins.str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
137
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
138
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
138
139
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]] instance_types_weights: List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
139
- :param pulumi.Input[str] key_name: The key name that should be used for the instance.
140
+ :param pulumi.Input[_builtins.str] key_name: The key name that should be used for the instance.
140
141
  :param pulumi.Input['ElastigroupLoggingArgs'] logging: Logging configuration.
141
- :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time.
142
+ :param pulumi.Input[_builtins.int] max_size: The maximum number of instances the group should have at any time.
142
143
  :param pulumi.Input['ElastigroupMetadataOptionsArgs'] metadata_options: Data that used to configure or manage the running instances:
143
- :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time.
144
- :param pulumi.Input[int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
145
- :param pulumi.Input[str] name: The group name.
146
- :param pulumi.Input[Sequence[pulumi.Input[str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
147
- :param pulumi.Input[int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
148
- :param pulumi.Input[str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
149
- :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
144
+ :param pulumi.Input[_builtins.int] min_size: The minimum number of instances the group should have at any time.
145
+ :param pulumi.Input[_builtins.int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
146
+ :param pulumi.Input[_builtins.str] name: The group name.
147
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
148
+ :param pulumi.Input[_builtins.int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
149
+ :param pulumi.Input[_builtins.str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
150
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
150
151
  Note: Must be a sublist of `availability_zones` and `orientation` value must not be `"equalAzDistribution"`.
151
- :param pulumi.Input[str] region: The AWS region your group will be created in.
152
+ :param pulumi.Input[_builtins.str] region: The AWS region your group will be created in.
152
153
  Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
153
154
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]] resource_requirements: Required instance attributes. Instance types will be selected based on these requirements.
154
155
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]] resource_tag_specifications: User will specify which resources should be tagged with group tags.
155
- :param pulumi.Input[bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
156
+ :param pulumi.Input[_builtins.bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
156
157
  :param pulumi.Input['ElastigroupRevertToSpotArgs'] revert_to_spot: Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: `"never"`, `"always"`, `"timeWindow"`
157
158
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]] scaling_strategies: Set termination policy.
158
- :param pulumi.Input[str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
159
- :param pulumi.Input[int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
160
- :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of Strings of subnet identifiers.
159
+ :param pulumi.Input[_builtins.str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
160
+ :param pulumi.Input[_builtins.int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
161
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] subnet_ids: List of Strings of subnet identifiers.
161
162
  Note: When this parameter is set, `availability_zones` should be left unused.
162
163
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]] tags: A key/value mapping of tags to assign to the resource.
163
- :param pulumi.Input[str] user_data: The user data to provide when launching the instance.
164
- :param pulumi.Input[bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
165
- :param pulumi.Input[int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
166
- :param pulumi.Input[int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
164
+ :param pulumi.Input[_builtins.str] user_data: The user data to provide when launching the instance.
165
+ :param pulumi.Input[_builtins.bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
166
+ :param pulumi.Input[_builtins.int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
167
+ :param pulumi.Input[_builtins.int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
167
168
  """
168
169
  pulumi.set(__self__, "fallback_to_ondemand", fallback_to_ondemand)
169
170
  pulumi.set(__self__, "orientation", orientation)
@@ -251,6 +252,8 @@ class ElastigroupArgs:
251
252
  pulumi.set(__self__, "lifetime_period", lifetime_period)
252
253
  if logging is not None:
253
254
  pulumi.set(__self__, "logging", logging)
255
+ if max_replacements_percentage is not None:
256
+ pulumi.set(__self__, "max_replacements_percentage", max_replacements_percentage)
254
257
  if max_size is not None:
255
258
  pulumi.set(__self__, "max_size", max_size)
256
259
  if metadata_options is not None:
@@ -311,6 +314,9 @@ class ElastigroupArgs:
311
314
  pulumi.set(__self__, "stateful_deallocation", stateful_deallocation)
312
315
  if stateful_instance_actions is not None:
313
316
  pulumi.set(__self__, "stateful_instance_actions", stateful_instance_actions)
317
+ if subnet_ids is not None:
318
+ warnings.warn("""This field will soon be deprecated and handled by availability_zones""", DeprecationWarning)
319
+ pulumi.log.warn("""subnet_ids is deprecated: This field will soon be deprecated and handled by availability_zones""")
314
320
  if subnet_ids is not None:
315
321
  pulumi.set(__self__, "subnet_ids", subnet_ids)
316
322
  if tags is not None:
@@ -330,33 +336,33 @@ class ElastigroupArgs:
330
336
  if wait_for_capacity_timeout is not None:
331
337
  pulumi.set(__self__, "wait_for_capacity_timeout", wait_for_capacity_timeout)
332
338
 
333
- @property
339
+ @_builtins.property
334
340
  @pulumi.getter(name="fallbackToOndemand")
335
- def fallback_to_ondemand(self) -> pulumi.Input[bool]:
341
+ def fallback_to_ondemand(self) -> pulumi.Input[_builtins.bool]:
336
342
  """
337
343
  In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
338
344
  """
339
345
  return pulumi.get(self, "fallback_to_ondemand")
340
346
 
341
347
  @fallback_to_ondemand.setter
342
- def fallback_to_ondemand(self, value: pulumi.Input[bool]):
348
+ def fallback_to_ondemand(self, value: pulumi.Input[_builtins.bool]):
343
349
  pulumi.set(self, "fallback_to_ondemand", value)
344
350
 
345
- @property
351
+ @_builtins.property
346
352
  @pulumi.getter
347
- def orientation(self) -> pulumi.Input[str]:
353
+ def orientation(self) -> pulumi.Input[_builtins.str]:
348
354
  """
349
355
  Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
350
356
  """
351
357
  return pulumi.get(self, "orientation")
352
358
 
353
359
  @orientation.setter
354
- def orientation(self, value: pulumi.Input[str]):
360
+ def orientation(self, value: pulumi.Input[_builtins.str]):
355
361
  pulumi.set(self, "orientation", value)
356
362
 
357
- @property
363
+ @_builtins.property
358
364
  @pulumi.getter
359
- def product(self) -> pulumi.Input[str]:
365
+ def product(self) -> pulumi.Input[_builtins.str]:
360
366
  """
361
367
  Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
362
368
  For EC2 Classic instances: `"SUSE Linux (Amazon VPC)"`, `"Windows (Amazon VPC)"`.
@@ -364,36 +370,36 @@ class ElastigroupArgs:
364
370
  return pulumi.get(self, "product")
365
371
 
366
372
  @product.setter
367
- def product(self, value: pulumi.Input[str]):
373
+ def product(self, value: pulumi.Input[_builtins.str]):
368
374
  pulumi.set(self, "product", value)
369
375
 
370
- @property
376
+ @_builtins.property
371
377
  @pulumi.getter(name="securityGroups")
372
- def security_groups(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
378
+ def security_groups(self) -> pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]:
373
379
  """
374
380
  A list of associated security group IDS.
375
381
  """
376
382
  return pulumi.get(self, "security_groups")
377
383
 
378
384
  @security_groups.setter
379
- def security_groups(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
385
+ def security_groups(self, value: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]):
380
386
  pulumi.set(self, "security_groups", value)
381
387
 
382
- @property
388
+ @_builtins.property
383
389
  @pulumi.getter(name="autoHealing")
384
- def auto_healing(self) -> Optional[pulumi.Input[bool]]:
390
+ def auto_healing(self) -> Optional[pulumi.Input[_builtins.bool]]:
385
391
  """
386
392
  Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
387
393
  """
388
394
  return pulumi.get(self, "auto_healing")
389
395
 
390
396
  @auto_healing.setter
391
- def auto_healing(self, value: Optional[pulumi.Input[bool]]):
397
+ def auto_healing(self, value: Optional[pulumi.Input[_builtins.bool]]):
392
398
  pulumi.set(self, "auto_healing", value)
393
399
 
394
- @property
400
+ @_builtins.property
395
401
  @pulumi.getter(name="availabilityZones")
396
- def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
402
+ def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
397
403
  """
398
404
  List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
399
405
  Note: `availability_zones` naming syntax follows the convention `availability-zone:subnet:placement-group-name`. For example, to set an AZ in `us-east-1` with subnet `subnet-123456` and placement group `ClusterI03`, you would set:
@@ -402,52 +408,52 @@ class ElastigroupArgs:
402
408
  return pulumi.get(self, "availability_zones")
403
409
 
404
410
  @availability_zones.setter
405
- def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
411
+ def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
406
412
  pulumi.set(self, "availability_zones", value)
407
413
 
408
- @property
414
+ @_builtins.property
409
415
  @pulumi.getter(name="blockDevicesMode")
410
- def block_devices_mode(self) -> Optional[pulumi.Input[str]]:
416
+ def block_devices_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
411
417
  return pulumi.get(self, "block_devices_mode")
412
418
 
413
419
  @block_devices_mode.setter
414
- def block_devices_mode(self, value: Optional[pulumi.Input[str]]):
420
+ def block_devices_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
415
421
  pulumi.set(self, "block_devices_mode", value)
416
422
 
417
- @property
423
+ @_builtins.property
418
424
  @pulumi.getter(name="capacityUnit")
419
- def capacity_unit(self) -> Optional[pulumi.Input[str]]:
425
+ def capacity_unit(self) -> Optional[pulumi.Input[_builtins.str]]:
420
426
  """
421
427
  The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
422
428
  """
423
429
  return pulumi.get(self, "capacity_unit")
424
430
 
425
431
  @capacity_unit.setter
426
- def capacity_unit(self, value: Optional[pulumi.Input[str]]):
432
+ def capacity_unit(self, value: Optional[pulumi.Input[_builtins.str]]):
427
433
  pulumi.set(self, "capacity_unit", value)
428
434
 
429
- @property
435
+ @_builtins.property
430
436
  @pulumi.getter(name="considerOdPricing")
431
- def consider_od_pricing(self) -> Optional[pulumi.Input[bool]]:
437
+ def consider_od_pricing(self) -> Optional[pulumi.Input[_builtins.bool]]:
432
438
  return pulumi.get(self, "consider_od_pricing")
433
439
 
434
440
  @consider_od_pricing.setter
435
- def consider_od_pricing(self, value: Optional[pulumi.Input[bool]]):
441
+ def consider_od_pricing(self, value: Optional[pulumi.Input[_builtins.bool]]):
436
442
  pulumi.set(self, "consider_od_pricing", value)
437
443
 
438
- @property
444
+ @_builtins.property
439
445
  @pulumi.getter(name="cpuCredits")
440
- def cpu_credits(self) -> Optional[pulumi.Input[str]]:
446
+ def cpu_credits(self) -> Optional[pulumi.Input[_builtins.str]]:
441
447
  """
442
448
  Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
443
449
  """
444
450
  return pulumi.get(self, "cpu_credits")
445
451
 
446
452
  @cpu_credits.setter
447
- def cpu_credits(self, value: Optional[pulumi.Input[str]]):
453
+ def cpu_credits(self, value: Optional[pulumi.Input[_builtins.str]]):
448
454
  pulumi.set(self, "cpu_credits", value)
449
455
 
450
- @property
456
+ @_builtins.property
451
457
  @pulumi.getter(name="cpuOptions")
452
458
  def cpu_options(self) -> Optional[pulumi.Input['ElastigroupCpuOptionsArgs']]:
453
459
  """
@@ -459,43 +465,43 @@ class ElastigroupArgs:
459
465
  def cpu_options(self, value: Optional[pulumi.Input['ElastigroupCpuOptionsArgs']]):
460
466
  pulumi.set(self, "cpu_options", value)
461
467
 
462
- @property
468
+ @_builtins.property
463
469
  @pulumi.getter
464
- def description(self) -> Optional[pulumi.Input[str]]:
470
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
465
471
  """
466
472
  The group description.
467
473
  """
468
474
  return pulumi.get(self, "description")
469
475
 
470
476
  @description.setter
471
- def description(self, value: Optional[pulumi.Input[str]]):
477
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
472
478
  pulumi.set(self, "description", value)
473
479
 
474
- @property
480
+ @_builtins.property
475
481
  @pulumi.getter(name="desiredCapacity")
476
- def desired_capacity(self) -> Optional[pulumi.Input[int]]:
482
+ def desired_capacity(self) -> Optional[pulumi.Input[_builtins.int]]:
477
483
  """
478
484
  The desired number of instances the group should have at any time.
479
485
  """
480
486
  return pulumi.get(self, "desired_capacity")
481
487
 
482
488
  @desired_capacity.setter
483
- def desired_capacity(self, value: Optional[pulumi.Input[int]]):
489
+ def desired_capacity(self, value: Optional[pulumi.Input[_builtins.int]]):
484
490
  pulumi.set(self, "desired_capacity", value)
485
491
 
486
- @property
492
+ @_builtins.property
487
493
  @pulumi.getter(name="drainingTimeout")
488
- def draining_timeout(self) -> Optional[pulumi.Input[int]]:
494
+ def draining_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
489
495
  """
490
496
  The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
491
497
  """
492
498
  return pulumi.get(self, "draining_timeout")
493
499
 
494
500
  @draining_timeout.setter
495
- def draining_timeout(self, value: Optional[pulumi.Input[int]]):
501
+ def draining_timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
496
502
  pulumi.set(self, "draining_timeout", value)
497
503
 
498
- @property
504
+ @_builtins.property
499
505
  @pulumi.getter(name="ebsBlockDevices")
500
506
  def ebs_block_devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEbsBlockDeviceArgs']]]]:
501
507
  return pulumi.get(self, "ebs_block_devices")
@@ -504,52 +510,52 @@ class ElastigroupArgs:
504
510
  def ebs_block_devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEbsBlockDeviceArgs']]]]):
505
511
  pulumi.set(self, "ebs_block_devices", value)
506
512
 
507
- @property
513
+ @_builtins.property
508
514
  @pulumi.getter(name="ebsOptimized")
509
- def ebs_optimized(self) -> Optional[pulumi.Input[bool]]:
515
+ def ebs_optimized(self) -> Optional[pulumi.Input[_builtins.bool]]:
510
516
  """
511
517
  Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
512
518
  """
513
519
  return pulumi.get(self, "ebs_optimized")
514
520
 
515
521
  @ebs_optimized.setter
516
- def ebs_optimized(self, value: Optional[pulumi.Input[bool]]):
522
+ def ebs_optimized(self, value: Optional[pulumi.Input[_builtins.bool]]):
517
523
  pulumi.set(self, "ebs_optimized", value)
518
524
 
519
- @property
525
+ @_builtins.property
520
526
  @pulumi.getter(name="elasticIps")
521
- def elastic_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
527
+ def elastic_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
522
528
  """
523
529
  A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
524
530
  """
525
531
  return pulumi.get(self, "elastic_ips")
526
532
 
527
533
  @elastic_ips.setter
528
- def elastic_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
534
+ def elastic_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
529
535
  pulumi.set(self, "elastic_ips", value)
530
536
 
531
- @property
537
+ @_builtins.property
532
538
  @pulumi.getter(name="elasticLoadBalancers")
533
- def elastic_load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
539
+ def elastic_load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
534
540
  return pulumi.get(self, "elastic_load_balancers")
535
541
 
536
542
  @elastic_load_balancers.setter
537
- def elastic_load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
543
+ def elastic_load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
538
544
  pulumi.set(self, "elastic_load_balancers", value)
539
545
 
540
- @property
546
+ @_builtins.property
541
547
  @pulumi.getter(name="enableMonitoring")
542
- def enable_monitoring(self) -> Optional[pulumi.Input[bool]]:
548
+ def enable_monitoring(self) -> Optional[pulumi.Input[_builtins.bool]]:
543
549
  """
544
550
  Indicates whether monitoring is enabled for the instance.
545
551
  """
546
552
  return pulumi.get(self, "enable_monitoring")
547
553
 
548
554
  @enable_monitoring.setter
549
- def enable_monitoring(self, value: Optional[pulumi.Input[bool]]):
555
+ def enable_monitoring(self, value: Optional[pulumi.Input[_builtins.bool]]):
550
556
  pulumi.set(self, "enable_monitoring", value)
551
557
 
552
- @property
558
+ @_builtins.property
553
559
  @pulumi.getter(name="ephemeralBlockDevices")
554
560
  def ephemeral_block_devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEphemeralBlockDeviceArgs']]]]:
555
561
  return pulumi.get(self, "ephemeral_block_devices")
@@ -558,67 +564,67 @@ class ElastigroupArgs:
558
564
  def ephemeral_block_devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEphemeralBlockDeviceArgs']]]]):
559
565
  pulumi.set(self, "ephemeral_block_devices", value)
560
566
 
561
- @property
567
+ @_builtins.property
562
568
  @pulumi.getter(name="healthCheckGracePeriod")
563
- def health_check_grace_period(self) -> Optional[pulumi.Input[int]]:
569
+ def health_check_grace_period(self) -> Optional[pulumi.Input[_builtins.int]]:
564
570
  """
565
571
  The amount of time, in seconds, after the instance has launched to starts and check its health.
566
572
  """
567
573
  return pulumi.get(self, "health_check_grace_period")
568
574
 
569
575
  @health_check_grace_period.setter
570
- def health_check_grace_period(self, value: Optional[pulumi.Input[int]]):
576
+ def health_check_grace_period(self, value: Optional[pulumi.Input[_builtins.int]]):
571
577
  pulumi.set(self, "health_check_grace_period", value)
572
578
 
573
- @property
579
+ @_builtins.property
574
580
  @pulumi.getter(name="healthCheckType")
575
- def health_check_type(self) -> Optional[pulumi.Input[str]]:
581
+ def health_check_type(self) -> Optional[pulumi.Input[_builtins.str]]:
576
582
  """
577
583
  The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
578
584
  """
579
585
  return pulumi.get(self, "health_check_type")
580
586
 
581
587
  @health_check_type.setter
582
- def health_check_type(self, value: Optional[pulumi.Input[str]]):
588
+ def health_check_type(self, value: Optional[pulumi.Input[_builtins.str]]):
583
589
  pulumi.set(self, "health_check_type", value)
584
590
 
585
- @property
591
+ @_builtins.property
586
592
  @pulumi.getter(name="healthCheckUnhealthyDurationBeforeReplacement")
587
- def health_check_unhealthy_duration_before_replacement(self) -> Optional[pulumi.Input[int]]:
593
+ def health_check_unhealthy_duration_before_replacement(self) -> Optional[pulumi.Input[_builtins.int]]:
588
594
  """
589
595
  The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
590
596
  """
591
597
  return pulumi.get(self, "health_check_unhealthy_duration_before_replacement")
592
598
 
593
599
  @health_check_unhealthy_duration_before_replacement.setter
594
- def health_check_unhealthy_duration_before_replacement(self, value: Optional[pulumi.Input[int]]):
600
+ def health_check_unhealthy_duration_before_replacement(self, value: Optional[pulumi.Input[_builtins.int]]):
595
601
  pulumi.set(self, "health_check_unhealthy_duration_before_replacement", value)
596
602
 
597
- @property
603
+ @_builtins.property
598
604
  @pulumi.getter(name="iamInstanceProfile")
599
- def iam_instance_profile(self) -> Optional[pulumi.Input[str]]:
605
+ def iam_instance_profile(self) -> Optional[pulumi.Input[_builtins.str]]:
600
606
  """
601
607
  The ARN or name of an IAM instance profile to associate with launched instances.
602
608
  """
603
609
  return pulumi.get(self, "iam_instance_profile")
604
610
 
605
611
  @iam_instance_profile.setter
606
- def iam_instance_profile(self, value: Optional[pulumi.Input[str]]):
612
+ def iam_instance_profile(self, value: Optional[pulumi.Input[_builtins.str]]):
607
613
  pulumi.set(self, "iam_instance_profile", value)
608
614
 
609
- @property
615
+ @_builtins.property
610
616
  @pulumi.getter(name="imageId")
611
- def image_id(self) -> Optional[pulumi.Input[str]]:
617
+ def image_id(self) -> Optional[pulumi.Input[_builtins.str]]:
612
618
  """
613
619
  The ID of the AMI used to launch the instance.
614
620
  """
615
621
  return pulumi.get(self, "image_id")
616
622
 
617
623
  @image_id.setter
618
- def image_id(self, value: Optional[pulumi.Input[str]]):
624
+ def image_id(self, value: Optional[pulumi.Input[_builtins.str]]):
619
625
  pulumi.set(self, "image_id", value)
620
626
 
621
- @property
627
+ @_builtins.property
622
628
  @pulumi.getter
623
629
  def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]:
624
630
  """
@@ -631,52 +637,52 @@ class ElastigroupArgs:
631
637
  def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]):
632
638
  pulumi.set(self, "images", value)
633
639
 
634
- @property
640
+ @_builtins.property
635
641
  @pulumi.getter(name="immediateOdRecoverThreshold")
636
- def immediate_od_recover_threshold(self) -> Optional[pulumi.Input[int]]:
642
+ def immediate_od_recover_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
637
643
  return pulumi.get(self, "immediate_od_recover_threshold")
638
644
 
639
645
  @immediate_od_recover_threshold.setter
640
- def immediate_od_recover_threshold(self, value: Optional[pulumi.Input[int]]):
646
+ def immediate_od_recover_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
641
647
  pulumi.set(self, "immediate_od_recover_threshold", value)
642
648
 
643
- @property
649
+ @_builtins.property
644
650
  @pulumi.getter(name="instanceTypesOndemand")
645
- def instance_types_ondemand(self) -> Optional[pulumi.Input[str]]:
651
+ def instance_types_ondemand(self) -> Optional[pulumi.Input[_builtins.str]]:
646
652
  """
647
653
  The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
648
654
  """
649
655
  return pulumi.get(self, "instance_types_ondemand")
650
656
 
651
657
  @instance_types_ondemand.setter
652
- def instance_types_ondemand(self, value: Optional[pulumi.Input[str]]):
658
+ def instance_types_ondemand(self, value: Optional[pulumi.Input[_builtins.str]]):
653
659
  pulumi.set(self, "instance_types_ondemand", value)
654
660
 
655
- @property
661
+ @_builtins.property
656
662
  @pulumi.getter(name="instanceTypesPreferredSpots")
657
- def instance_types_preferred_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
663
+ def instance_types_preferred_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
658
664
  """
659
665
  Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
660
666
  """
661
667
  return pulumi.get(self, "instance_types_preferred_spots")
662
668
 
663
669
  @instance_types_preferred_spots.setter
664
- def instance_types_preferred_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
670
+ def instance_types_preferred_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
665
671
  pulumi.set(self, "instance_types_preferred_spots", value)
666
672
 
667
- @property
673
+ @_builtins.property
668
674
  @pulumi.getter(name="instanceTypesSpots")
669
- def instance_types_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
675
+ def instance_types_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
670
676
  """
671
677
  One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
672
678
  """
673
679
  return pulumi.get(self, "instance_types_spots")
674
680
 
675
681
  @instance_types_spots.setter
676
- def instance_types_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
682
+ def instance_types_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
677
683
  pulumi.set(self, "instance_types_spots", value)
678
684
 
679
- @property
685
+ @_builtins.property
680
686
  @pulumi.getter(name="instanceTypesWeights")
681
687
  def instance_types_weights(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]]]:
682
688
  """
@@ -688,7 +694,7 @@ class ElastigroupArgs:
688
694
  def instance_types_weights(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]]]):
689
695
  pulumi.set(self, "instance_types_weights", value)
690
696
 
691
- @property
697
+ @_builtins.property
692
698
  @pulumi.getter(name="integrationBeanstalk")
693
699
  def integration_beanstalk(self) -> Optional[pulumi.Input['ElastigroupIntegrationBeanstalkArgs']]:
694
700
  return pulumi.get(self, "integration_beanstalk")
@@ -697,7 +703,7 @@ class ElastigroupArgs:
697
703
  def integration_beanstalk(self, value: Optional[pulumi.Input['ElastigroupIntegrationBeanstalkArgs']]):
698
704
  pulumi.set(self, "integration_beanstalk", value)
699
705
 
700
- @property
706
+ @_builtins.property
701
707
  @pulumi.getter(name="integrationCodedeploy")
702
708
  def integration_codedeploy(self) -> Optional[pulumi.Input['ElastigroupIntegrationCodedeployArgs']]:
703
709
  return pulumi.get(self, "integration_codedeploy")
@@ -706,7 +712,7 @@ class ElastigroupArgs:
706
712
  def integration_codedeploy(self, value: Optional[pulumi.Input['ElastigroupIntegrationCodedeployArgs']]):
707
713
  pulumi.set(self, "integration_codedeploy", value)
708
714
 
709
- @property
715
+ @_builtins.property
710
716
  @pulumi.getter(name="integrationDockerSwarm")
711
717
  def integration_docker_swarm(self) -> Optional[pulumi.Input['ElastigroupIntegrationDockerSwarmArgs']]:
712
718
  return pulumi.get(self, "integration_docker_swarm")
@@ -715,7 +721,7 @@ class ElastigroupArgs:
715
721
  def integration_docker_swarm(self, value: Optional[pulumi.Input['ElastigroupIntegrationDockerSwarmArgs']]):
716
722
  pulumi.set(self, "integration_docker_swarm", value)
717
723
 
718
- @property
724
+ @_builtins.property
719
725
  @pulumi.getter(name="integrationEcs")
720
726
  def integration_ecs(self) -> Optional[pulumi.Input['ElastigroupIntegrationEcsArgs']]:
721
727
  return pulumi.get(self, "integration_ecs")
@@ -724,7 +730,7 @@ class ElastigroupArgs:
724
730
  def integration_ecs(self, value: Optional[pulumi.Input['ElastigroupIntegrationEcsArgs']]):
725
731
  pulumi.set(self, "integration_ecs", value)
726
732
 
727
- @property
733
+ @_builtins.property
728
734
  @pulumi.getter(name="integrationGitlab")
729
735
  def integration_gitlab(self) -> Optional[pulumi.Input['ElastigroupIntegrationGitlabArgs']]:
730
736
  return pulumi.get(self, "integration_gitlab")
@@ -733,7 +739,7 @@ class ElastigroupArgs:
733
739
  def integration_gitlab(self, value: Optional[pulumi.Input['ElastigroupIntegrationGitlabArgs']]):
734
740
  pulumi.set(self, "integration_gitlab", value)
735
741
 
736
- @property
742
+ @_builtins.property
737
743
  @pulumi.getter(name="integrationKubernetes")
738
744
  def integration_kubernetes(self) -> Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]:
739
745
  return pulumi.get(self, "integration_kubernetes")
@@ -742,7 +748,7 @@ class ElastigroupArgs:
742
748
  def integration_kubernetes(self, value: Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]):
743
749
  pulumi.set(self, "integration_kubernetes", value)
744
750
 
745
- @property
751
+ @_builtins.property
746
752
  @pulumi.getter(name="integrationMesosphere")
747
753
  def integration_mesosphere(self) -> Optional[pulumi.Input['ElastigroupIntegrationMesosphereArgs']]:
748
754
  return pulumi.get(self, "integration_mesosphere")
@@ -751,7 +757,7 @@ class ElastigroupArgs:
751
757
  def integration_mesosphere(self, value: Optional[pulumi.Input['ElastigroupIntegrationMesosphereArgs']]):
752
758
  pulumi.set(self, "integration_mesosphere", value)
753
759
 
754
- @property
760
+ @_builtins.property
755
761
  @pulumi.getter(name="integrationNomad")
756
762
  def integration_nomad(self) -> Optional[pulumi.Input['ElastigroupIntegrationNomadArgs']]:
757
763
  return pulumi.get(self, "integration_nomad")
@@ -760,7 +766,7 @@ class ElastigroupArgs:
760
766
  def integration_nomad(self, value: Optional[pulumi.Input['ElastigroupIntegrationNomadArgs']]):
761
767
  pulumi.set(self, "integration_nomad", value)
762
768
 
763
- @property
769
+ @_builtins.property
764
770
  @pulumi.getter(name="integrationRancher")
765
771
  def integration_rancher(self) -> Optional[pulumi.Input['ElastigroupIntegrationRancherArgs']]:
766
772
  return pulumi.get(self, "integration_rancher")
@@ -769,7 +775,7 @@ class ElastigroupArgs:
769
775
  def integration_rancher(self, value: Optional[pulumi.Input['ElastigroupIntegrationRancherArgs']]):
770
776
  pulumi.set(self, "integration_rancher", value)
771
777
 
772
- @property
778
+ @_builtins.property
773
779
  @pulumi.getter(name="integrationRoute53")
774
780
  def integration_route53(self) -> Optional[pulumi.Input['ElastigroupIntegrationRoute53Args']]:
775
781
  return pulumi.get(self, "integration_route53")
@@ -778,7 +784,7 @@ class ElastigroupArgs:
778
784
  def integration_route53(self, value: Optional[pulumi.Input['ElastigroupIntegrationRoute53Args']]):
779
785
  pulumi.set(self, "integration_route53", value)
780
786
 
781
- @property
787
+ @_builtins.property
782
788
  @pulumi.getter
783
789
  def itfs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupItfArgs']]]]:
784
790
  return pulumi.get(self, "itfs")
@@ -787,28 +793,28 @@ class ElastigroupArgs:
787
793
  def itfs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupItfArgs']]]]):
788
794
  pulumi.set(self, "itfs", value)
789
795
 
790
- @property
796
+ @_builtins.property
791
797
  @pulumi.getter(name="keyName")
792
- def key_name(self) -> Optional[pulumi.Input[str]]:
798
+ def key_name(self) -> Optional[pulumi.Input[_builtins.str]]:
793
799
  """
794
800
  The key name that should be used for the instance.
795
801
  """
796
802
  return pulumi.get(self, "key_name")
797
803
 
798
804
  @key_name.setter
799
- def key_name(self, value: Optional[pulumi.Input[str]]):
805
+ def key_name(self, value: Optional[pulumi.Input[_builtins.str]]):
800
806
  pulumi.set(self, "key_name", value)
801
807
 
802
- @property
808
+ @_builtins.property
803
809
  @pulumi.getter(name="lifetimePeriod")
804
- def lifetime_period(self) -> Optional[pulumi.Input[str]]:
810
+ def lifetime_period(self) -> Optional[pulumi.Input[_builtins.str]]:
805
811
  return pulumi.get(self, "lifetime_period")
806
812
 
807
813
  @lifetime_period.setter
808
- def lifetime_period(self, value: Optional[pulumi.Input[str]]):
814
+ def lifetime_period(self, value: Optional[pulumi.Input[_builtins.str]]):
809
815
  pulumi.set(self, "lifetime_period", value)
810
816
 
811
- @property
817
+ @_builtins.property
812
818
  @pulumi.getter
813
819
  def logging(self) -> Optional[pulumi.Input['ElastigroupLoggingArgs']]:
814
820
  """
@@ -820,19 +826,28 @@ class ElastigroupArgs:
820
826
  def logging(self, value: Optional[pulumi.Input['ElastigroupLoggingArgs']]):
821
827
  pulumi.set(self, "logging", value)
822
828
 
823
- @property
829
+ @_builtins.property
830
+ @pulumi.getter(name="maxReplacementsPercentage")
831
+ def max_replacements_percentage(self) -> Optional[pulumi.Input[_builtins.int]]:
832
+ return pulumi.get(self, "max_replacements_percentage")
833
+
834
+ @max_replacements_percentage.setter
835
+ def max_replacements_percentage(self, value: Optional[pulumi.Input[_builtins.int]]):
836
+ pulumi.set(self, "max_replacements_percentage", value)
837
+
838
+ @_builtins.property
824
839
  @pulumi.getter(name="maxSize")
825
- def max_size(self) -> Optional[pulumi.Input[int]]:
840
+ def max_size(self) -> Optional[pulumi.Input[_builtins.int]]:
826
841
  """
827
842
  The maximum number of instances the group should have at any time.
828
843
  """
829
844
  return pulumi.get(self, "max_size")
830
845
 
831
846
  @max_size.setter
832
- def max_size(self, value: Optional[pulumi.Input[int]]):
847
+ def max_size(self, value: Optional[pulumi.Input[_builtins.int]]):
833
848
  pulumi.set(self, "max_size", value)
834
849
 
835
- @property
850
+ @_builtins.property
836
851
  @pulumi.getter(name="metadataOptions")
837
852
  def metadata_options(self) -> Optional[pulumi.Input['ElastigroupMetadataOptionsArgs']]:
838
853
  """
@@ -844,31 +859,31 @@ class ElastigroupArgs:
844
859
  def metadata_options(self, value: Optional[pulumi.Input['ElastigroupMetadataOptionsArgs']]):
845
860
  pulumi.set(self, "metadata_options", value)
846
861
 
847
- @property
862
+ @_builtins.property
848
863
  @pulumi.getter(name="minSize")
849
- def min_size(self) -> Optional[pulumi.Input[int]]:
864
+ def min_size(self) -> Optional[pulumi.Input[_builtins.int]]:
850
865
  """
851
866
  The minimum number of instances the group should have at any time.
852
867
  """
853
868
  return pulumi.get(self, "min_size")
854
869
 
855
870
  @min_size.setter
856
- def min_size(self, value: Optional[pulumi.Input[int]]):
871
+ def min_size(self, value: Optional[pulumi.Input[_builtins.int]]):
857
872
  pulumi.set(self, "min_size", value)
858
873
 
859
- @property
874
+ @_builtins.property
860
875
  @pulumi.getter(name="minimumInstanceLifetime")
861
- def minimum_instance_lifetime(self) -> Optional[pulumi.Input[int]]:
876
+ def minimum_instance_lifetime(self) -> Optional[pulumi.Input[_builtins.int]]:
862
877
  """
863
878
  Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
864
879
  """
865
880
  return pulumi.get(self, "minimum_instance_lifetime")
866
881
 
867
882
  @minimum_instance_lifetime.setter
868
- def minimum_instance_lifetime(self, value: Optional[pulumi.Input[int]]):
883
+ def minimum_instance_lifetime(self, value: Optional[pulumi.Input[_builtins.int]]):
869
884
  pulumi.set(self, "minimum_instance_lifetime", value)
870
885
 
871
- @property
886
+ @_builtins.property
872
887
  @pulumi.getter(name="multipleMetrics")
873
888
  def multiple_metrics(self) -> Optional[pulumi.Input['ElastigroupMultipleMetricsArgs']]:
874
889
  return pulumi.get(self, "multiple_metrics")
@@ -877,19 +892,19 @@ class ElastigroupArgs:
877
892
  def multiple_metrics(self, value: Optional[pulumi.Input['ElastigroupMultipleMetricsArgs']]):
878
893
  pulumi.set(self, "multiple_metrics", value)
879
894
 
880
- @property
895
+ @_builtins.property
881
896
  @pulumi.getter
882
- def name(self) -> Optional[pulumi.Input[str]]:
897
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
883
898
  """
884
899
  The group name.
885
900
  """
886
901
  return pulumi.get(self, "name")
887
902
 
888
903
  @name.setter
889
- def name(self, value: Optional[pulumi.Input[str]]):
904
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
890
905
  pulumi.set(self, "name", value)
891
906
 
892
- @property
907
+ @_builtins.property
893
908
  @pulumi.getter(name="networkInterfaces")
894
909
  def network_interfaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkInterfaceArgs']]]]:
895
910
  return pulumi.get(self, "network_interfaces")
@@ -898,72 +913,72 @@ class ElastigroupArgs:
898
913
  def network_interfaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkInterfaceArgs']]]]):
899
914
  pulumi.set(self, "network_interfaces", value)
900
915
 
901
- @property
916
+ @_builtins.property
902
917
  @pulumi.getter(name="onDemandTypes")
903
- def on_demand_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
918
+ def on_demand_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
904
919
  """
905
920
  Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
906
921
  """
907
922
  return pulumi.get(self, "on_demand_types")
908
923
 
909
924
  @on_demand_types.setter
910
- def on_demand_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
925
+ def on_demand_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
911
926
  pulumi.set(self, "on_demand_types", value)
912
927
 
913
- @property
928
+ @_builtins.property
914
929
  @pulumi.getter(name="ondemandCount")
915
- def ondemand_count(self) -> Optional[pulumi.Input[int]]:
930
+ def ondemand_count(self) -> Optional[pulumi.Input[_builtins.int]]:
916
931
  """
917
932
  Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
918
933
  """
919
934
  return pulumi.get(self, "ondemand_count")
920
935
 
921
936
  @ondemand_count.setter
922
- def ondemand_count(self, value: Optional[pulumi.Input[int]]):
937
+ def ondemand_count(self, value: Optional[pulumi.Input[_builtins.int]]):
923
938
  pulumi.set(self, "ondemand_count", value)
924
939
 
925
- @property
940
+ @_builtins.property
926
941
  @pulumi.getter(name="persistBlockDevices")
927
- def persist_block_devices(self) -> Optional[pulumi.Input[bool]]:
942
+ def persist_block_devices(self) -> Optional[pulumi.Input[_builtins.bool]]:
928
943
  return pulumi.get(self, "persist_block_devices")
929
944
 
930
945
  @persist_block_devices.setter
931
- def persist_block_devices(self, value: Optional[pulumi.Input[bool]]):
946
+ def persist_block_devices(self, value: Optional[pulumi.Input[_builtins.bool]]):
932
947
  pulumi.set(self, "persist_block_devices", value)
933
948
 
934
- @property
949
+ @_builtins.property
935
950
  @pulumi.getter(name="persistPrivateIp")
936
- def persist_private_ip(self) -> Optional[pulumi.Input[bool]]:
951
+ def persist_private_ip(self) -> Optional[pulumi.Input[_builtins.bool]]:
937
952
  return pulumi.get(self, "persist_private_ip")
938
953
 
939
954
  @persist_private_ip.setter
940
- def persist_private_ip(self, value: Optional[pulumi.Input[bool]]):
955
+ def persist_private_ip(self, value: Optional[pulumi.Input[_builtins.bool]]):
941
956
  pulumi.set(self, "persist_private_ip", value)
942
957
 
943
- @property
958
+ @_builtins.property
944
959
  @pulumi.getter(name="persistRootDevice")
945
- def persist_root_device(self) -> Optional[pulumi.Input[bool]]:
960
+ def persist_root_device(self) -> Optional[pulumi.Input[_builtins.bool]]:
946
961
  return pulumi.get(self, "persist_root_device")
947
962
 
948
963
  @persist_root_device.setter
949
- def persist_root_device(self, value: Optional[pulumi.Input[bool]]):
964
+ def persist_root_device(self, value: Optional[pulumi.Input[_builtins.bool]]):
950
965
  pulumi.set(self, "persist_root_device", value)
951
966
 
952
- @property
967
+ @_builtins.property
953
968
  @pulumi.getter(name="placementTenancy")
954
- def placement_tenancy(self) -> Optional[pulumi.Input[str]]:
969
+ def placement_tenancy(self) -> Optional[pulumi.Input[_builtins.str]]:
955
970
  """
956
971
  Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
957
972
  """
958
973
  return pulumi.get(self, "placement_tenancy")
959
974
 
960
975
  @placement_tenancy.setter
961
- def placement_tenancy(self, value: Optional[pulumi.Input[str]]):
976
+ def placement_tenancy(self, value: Optional[pulumi.Input[_builtins.str]]):
962
977
  pulumi.set(self, "placement_tenancy", value)
963
978
 
964
- @property
979
+ @_builtins.property
965
980
  @pulumi.getter(name="preferredAvailabilityZones")
966
- def preferred_availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
981
+ def preferred_availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
967
982
  """
968
983
  The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
969
984
  Note: Must be a sublist of `availability_zones` and `orientation` value must not be `"equalAzDistribution"`.
@@ -971,21 +986,21 @@ class ElastigroupArgs:
971
986
  return pulumi.get(self, "preferred_availability_zones")
972
987
 
973
988
  @preferred_availability_zones.setter
974
- def preferred_availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
989
+ def preferred_availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
975
990
  pulumi.set(self, "preferred_availability_zones", value)
976
991
 
977
- @property
992
+ @_builtins.property
978
993
  @pulumi.getter(name="privateIps")
979
- def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
994
+ def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
980
995
  return pulumi.get(self, "private_ips")
981
996
 
982
997
  @private_ips.setter
983
- def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
998
+ def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
984
999
  pulumi.set(self, "private_ips", value)
985
1000
 
986
- @property
1001
+ @_builtins.property
987
1002
  @pulumi.getter
988
- def region(self) -> Optional[pulumi.Input[str]]:
1003
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
989
1004
  """
990
1005
  The AWS region your group will be created in.
991
1006
  Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
@@ -993,10 +1008,10 @@ class ElastigroupArgs:
993
1008
  return pulumi.get(self, "region")
994
1009
 
995
1010
  @region.setter
996
- def region(self, value: Optional[pulumi.Input[str]]):
1011
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
997
1012
  pulumi.set(self, "region", value)
998
1013
 
999
- @property
1014
+ @_builtins.property
1000
1015
  @pulumi.getter(name="resourceRequirements")
1001
1016
  def resource_requirements(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]]]:
1002
1017
  """
@@ -1008,7 +1023,7 @@ class ElastigroupArgs:
1008
1023
  def resource_requirements(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]]]):
1009
1024
  pulumi.set(self, "resource_requirements", value)
1010
1025
 
1011
- @property
1026
+ @_builtins.property
1012
1027
  @pulumi.getter(name="resourceTagSpecifications")
1013
1028
  def resource_tag_specifications(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]]]:
1014
1029
  """
@@ -1020,19 +1035,19 @@ class ElastigroupArgs:
1020
1035
  def resource_tag_specifications(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]]]):
1021
1036
  pulumi.set(self, "resource_tag_specifications", value)
1022
1037
 
1023
- @property
1038
+ @_builtins.property
1024
1039
  @pulumi.getter(name="restrictSingleAz")
1025
- def restrict_single_az(self) -> Optional[pulumi.Input[bool]]:
1040
+ def restrict_single_az(self) -> Optional[pulumi.Input[_builtins.bool]]:
1026
1041
  """
1027
1042
  Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
1028
1043
  """
1029
1044
  return pulumi.get(self, "restrict_single_az")
1030
1045
 
1031
1046
  @restrict_single_az.setter
1032
- def restrict_single_az(self, value: Optional[pulumi.Input[bool]]):
1047
+ def restrict_single_az(self, value: Optional[pulumi.Input[_builtins.bool]]):
1033
1048
  pulumi.set(self, "restrict_single_az", value)
1034
1049
 
1035
- @property
1050
+ @_builtins.property
1036
1051
  @pulumi.getter(name="revertToSpot")
1037
1052
  def revert_to_spot(self) -> Optional[pulumi.Input['ElastigroupRevertToSpotArgs']]:
1038
1053
  """
@@ -1044,7 +1059,7 @@ class ElastigroupArgs:
1044
1059
  def revert_to_spot(self, value: Optional[pulumi.Input['ElastigroupRevertToSpotArgs']]):
1045
1060
  pulumi.set(self, "revert_to_spot", value)
1046
1061
 
1047
- @property
1062
+ @_builtins.property
1048
1063
  @pulumi.getter(name="scalingDownPolicies")
1049
1064
  def scaling_down_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]:
1050
1065
  return pulumi.get(self, "scaling_down_policies")
@@ -1053,7 +1068,7 @@ class ElastigroupArgs:
1053
1068
  def scaling_down_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]):
1054
1069
  pulumi.set(self, "scaling_down_policies", value)
1055
1070
 
1056
- @property
1071
+ @_builtins.property
1057
1072
  @pulumi.getter(name="scalingStrategies")
1058
1073
  def scaling_strategies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]]]:
1059
1074
  """
@@ -1065,7 +1080,7 @@ class ElastigroupArgs:
1065
1080
  def scaling_strategies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]]]):
1066
1081
  pulumi.set(self, "scaling_strategies", value)
1067
1082
 
1068
- @property
1083
+ @_builtins.property
1069
1084
  @pulumi.getter(name="scalingTargetPolicies")
1070
1085
  def scaling_target_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingTargetPolicyArgs']]]]:
1071
1086
  return pulumi.get(self, "scaling_target_policies")
@@ -1074,7 +1089,7 @@ class ElastigroupArgs:
1074
1089
  def scaling_target_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingTargetPolicyArgs']]]]):
1075
1090
  pulumi.set(self, "scaling_target_policies", value)
1076
1091
 
1077
- @property
1092
+ @_builtins.property
1078
1093
  @pulumi.getter(name="scalingUpPolicies")
1079
1094
  def scaling_up_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]:
1080
1095
  return pulumi.get(self, "scaling_up_policies")
@@ -1083,7 +1098,7 @@ class ElastigroupArgs:
1083
1098
  def scaling_up_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]):
1084
1099
  pulumi.set(self, "scaling_up_policies", value)
1085
1100
 
1086
- @property
1101
+ @_builtins.property
1087
1102
  @pulumi.getter(name="scheduledTasks")
1088
1103
  def scheduled_tasks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]:
1089
1104
  return pulumi.get(self, "scheduled_tasks")
@@ -1092,19 +1107,19 @@ class ElastigroupArgs:
1092
1107
  def scheduled_tasks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]):
1093
1108
  pulumi.set(self, "scheduled_tasks", value)
1094
1109
 
1095
- @property
1110
+ @_builtins.property
1096
1111
  @pulumi.getter(name="shutdownScript")
1097
- def shutdown_script(self) -> Optional[pulumi.Input[str]]:
1112
+ def shutdown_script(self) -> Optional[pulumi.Input[_builtins.str]]:
1098
1113
  """
1099
1114
  The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
1100
1115
  """
1101
1116
  return pulumi.get(self, "shutdown_script")
1102
1117
 
1103
1118
  @shutdown_script.setter
1104
- def shutdown_script(self, value: Optional[pulumi.Input[str]]):
1119
+ def shutdown_script(self, value: Optional[pulumi.Input[_builtins.str]]):
1105
1120
  pulumi.set(self, "shutdown_script", value)
1106
1121
 
1107
- @property
1122
+ @_builtins.property
1108
1123
  @pulumi.getter
1109
1124
  def signals(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]]:
1110
1125
  return pulumi.get(self, "signals")
@@ -1113,19 +1128,19 @@ class ElastigroupArgs:
1113
1128
  def signals(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]]):
1114
1129
  pulumi.set(self, "signals", value)
1115
1130
 
1116
- @property
1131
+ @_builtins.property
1117
1132
  @pulumi.getter(name="spotPercentage")
1118
- def spot_percentage(self) -> Optional[pulumi.Input[int]]:
1133
+ def spot_percentage(self) -> Optional[pulumi.Input[_builtins.int]]:
1119
1134
  """
1120
1135
  The percentage of Spot instances that would spin up from the `desired_capacity` number.
1121
1136
  """
1122
1137
  return pulumi.get(self, "spot_percentage")
1123
1138
 
1124
1139
  @spot_percentage.setter
1125
- def spot_percentage(self, value: Optional[pulumi.Input[int]]):
1140
+ def spot_percentage(self, value: Optional[pulumi.Input[_builtins.int]]):
1126
1141
  pulumi.set(self, "spot_percentage", value)
1127
1142
 
1128
- @property
1143
+ @_builtins.property
1129
1144
  @pulumi.getter(name="statefulDeallocation")
1130
1145
  def stateful_deallocation(self) -> Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']]:
1131
1146
  return pulumi.get(self, "stateful_deallocation")
@@ -1134,7 +1149,7 @@ class ElastigroupArgs:
1134
1149
  def stateful_deallocation(self, value: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']]):
1135
1150
  pulumi.set(self, "stateful_deallocation", value)
1136
1151
 
1137
- @property
1152
+ @_builtins.property
1138
1153
  @pulumi.getter(name="statefulInstanceActions")
1139
1154
  def stateful_instance_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]:
1140
1155
  return pulumi.get(self, "stateful_instance_actions")
@@ -1143,9 +1158,10 @@ class ElastigroupArgs:
1143
1158
  def stateful_instance_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]):
1144
1159
  pulumi.set(self, "stateful_instance_actions", value)
1145
1160
 
1146
- @property
1161
+ @_builtins.property
1147
1162
  @pulumi.getter(name="subnetIds")
1148
- def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1163
+ @_utilities.deprecated("""This field will soon be deprecated and handled by availability_zones""")
1164
+ def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1149
1165
  """
1150
1166
  List of Strings of subnet identifiers.
1151
1167
  Note: When this parameter is set, `availability_zones` should be left unused.
@@ -1153,10 +1169,10 @@ class ElastigroupArgs:
1153
1169
  return pulumi.get(self, "subnet_ids")
1154
1170
 
1155
1171
  @subnet_ids.setter
1156
- def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1172
+ def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1157
1173
  pulumi.set(self, "subnet_ids", value)
1158
1174
 
1159
- @property
1175
+ @_builtins.property
1160
1176
  @pulumi.getter
1161
1177
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]]:
1162
1178
  """
@@ -1168,16 +1184,16 @@ class ElastigroupArgs:
1168
1184
  def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]]):
1169
1185
  pulumi.set(self, "tags", value)
1170
1186
 
1171
- @property
1187
+ @_builtins.property
1172
1188
  @pulumi.getter(name="targetGroupArns")
1173
- def target_group_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1189
+ def target_group_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1174
1190
  return pulumi.get(self, "target_group_arns")
1175
1191
 
1176
1192
  @target_group_arns.setter
1177
- def target_group_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1193
+ def target_group_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1178
1194
  pulumi.set(self, "target_group_arns", value)
1179
1195
 
1180
- @property
1196
+ @_builtins.property
1181
1197
  @pulumi.getter(name="updatePolicy")
1182
1198
  def update_policy(self) -> Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]:
1183
1199
  return pulumi.get(self, "update_policy")
@@ -1186,94 +1202,94 @@ class ElastigroupArgs:
1186
1202
  def update_policy(self, value: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]):
1187
1203
  pulumi.set(self, "update_policy", value)
1188
1204
 
1189
- @property
1205
+ @_builtins.property
1190
1206
  @pulumi.getter(name="userData")
1191
- def user_data(self) -> Optional[pulumi.Input[str]]:
1207
+ def user_data(self) -> Optional[pulumi.Input[_builtins.str]]:
1192
1208
  """
1193
1209
  The user data to provide when launching the instance.
1194
1210
  """
1195
1211
  return pulumi.get(self, "user_data")
1196
1212
 
1197
1213
  @user_data.setter
1198
- def user_data(self, value: Optional[pulumi.Input[str]]):
1214
+ def user_data(self, value: Optional[pulumi.Input[_builtins.str]]):
1199
1215
  pulumi.set(self, "user_data", value)
1200
1216
 
1201
- @property
1217
+ @_builtins.property
1202
1218
  @pulumi.getter(name="utilizeCommitments")
1203
- def utilize_commitments(self) -> Optional[pulumi.Input[bool]]:
1219
+ def utilize_commitments(self) -> Optional[pulumi.Input[_builtins.bool]]:
1204
1220
  return pulumi.get(self, "utilize_commitments")
1205
1221
 
1206
1222
  @utilize_commitments.setter
1207
- def utilize_commitments(self, value: Optional[pulumi.Input[bool]]):
1223
+ def utilize_commitments(self, value: Optional[pulumi.Input[_builtins.bool]]):
1208
1224
  pulumi.set(self, "utilize_commitments", value)
1209
1225
 
1210
- @property
1226
+ @_builtins.property
1211
1227
  @pulumi.getter(name="utilizeReservedInstances")
1212
- def utilize_reserved_instances(self) -> Optional[pulumi.Input[bool]]:
1228
+ def utilize_reserved_instances(self) -> Optional[pulumi.Input[_builtins.bool]]:
1213
1229
  """
1214
1230
  In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
1215
1231
  """
1216
1232
  return pulumi.get(self, "utilize_reserved_instances")
1217
1233
 
1218
1234
  @utilize_reserved_instances.setter
1219
- def utilize_reserved_instances(self, value: Optional[pulumi.Input[bool]]):
1235
+ def utilize_reserved_instances(self, value: Optional[pulumi.Input[_builtins.bool]]):
1220
1236
  pulumi.set(self, "utilize_reserved_instances", value)
1221
1237
 
1222
- @property
1238
+ @_builtins.property
1223
1239
  @pulumi.getter(name="waitForCapacity")
1224
- def wait_for_capacity(self) -> Optional[pulumi.Input[int]]:
1240
+ def wait_for_capacity(self) -> Optional[pulumi.Input[_builtins.int]]:
1225
1241
  """
1226
1242
  Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
1227
1243
  """
1228
1244
  return pulumi.get(self, "wait_for_capacity")
1229
1245
 
1230
1246
  @wait_for_capacity.setter
1231
- def wait_for_capacity(self, value: Optional[pulumi.Input[int]]):
1247
+ def wait_for_capacity(self, value: Optional[pulumi.Input[_builtins.int]]):
1232
1248
  pulumi.set(self, "wait_for_capacity", value)
1233
1249
 
1234
- @property
1250
+ @_builtins.property
1235
1251
  @pulumi.getter(name="waitForCapacityTimeout")
1236
- def wait_for_capacity_timeout(self) -> Optional[pulumi.Input[int]]:
1252
+ def wait_for_capacity_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
1237
1253
  """
1238
1254
  Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
1239
1255
  """
1240
1256
  return pulumi.get(self, "wait_for_capacity_timeout")
1241
1257
 
1242
1258
  @wait_for_capacity_timeout.setter
1243
- def wait_for_capacity_timeout(self, value: Optional[pulumi.Input[int]]):
1259
+ def wait_for_capacity_timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
1244
1260
  pulumi.set(self, "wait_for_capacity_timeout", value)
1245
1261
 
1246
1262
 
1247
1263
  @pulumi.input_type
1248
1264
  class _ElastigroupState:
1249
1265
  def __init__(__self__, *,
1250
- auto_healing: Optional[pulumi.Input[bool]] = None,
1251
- availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1252
- block_devices_mode: Optional[pulumi.Input[str]] = None,
1253
- capacity_unit: Optional[pulumi.Input[str]] = None,
1254
- consider_od_pricing: Optional[pulumi.Input[bool]] = None,
1255
- cpu_credits: Optional[pulumi.Input[str]] = None,
1266
+ auto_healing: Optional[pulumi.Input[_builtins.bool]] = None,
1267
+ availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1268
+ block_devices_mode: Optional[pulumi.Input[_builtins.str]] = None,
1269
+ capacity_unit: Optional[pulumi.Input[_builtins.str]] = None,
1270
+ consider_od_pricing: Optional[pulumi.Input[_builtins.bool]] = None,
1271
+ cpu_credits: Optional[pulumi.Input[_builtins.str]] = None,
1256
1272
  cpu_options: Optional[pulumi.Input['ElastigroupCpuOptionsArgs']] = None,
1257
- description: Optional[pulumi.Input[str]] = None,
1258
- desired_capacity: Optional[pulumi.Input[int]] = None,
1259
- draining_timeout: Optional[pulumi.Input[int]] = None,
1273
+ description: Optional[pulumi.Input[_builtins.str]] = None,
1274
+ desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
1275
+ draining_timeout: Optional[pulumi.Input[_builtins.int]] = None,
1260
1276
  ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEbsBlockDeviceArgs']]]] = None,
1261
- ebs_optimized: Optional[pulumi.Input[bool]] = None,
1262
- elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1263
- elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1264
- enable_monitoring: Optional[pulumi.Input[bool]] = None,
1277
+ ebs_optimized: Optional[pulumi.Input[_builtins.bool]] = None,
1278
+ elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1279
+ elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1280
+ enable_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
1265
1281
  ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEphemeralBlockDeviceArgs']]]] = None,
1266
- fallback_to_ondemand: Optional[pulumi.Input[bool]] = None,
1267
- health_check_grace_period: Optional[pulumi.Input[int]] = None,
1268
- health_check_type: Optional[pulumi.Input[str]] = None,
1269
- health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[int]] = None,
1270
- iam_instance_profile: Optional[pulumi.Input[str]] = None,
1271
- image_id: Optional[pulumi.Input[str]] = None,
1282
+ fallback_to_ondemand: Optional[pulumi.Input[_builtins.bool]] = None,
1283
+ health_check_grace_period: Optional[pulumi.Input[_builtins.int]] = None,
1284
+ health_check_type: Optional[pulumi.Input[_builtins.str]] = None,
1285
+ health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[_builtins.int]] = None,
1286
+ iam_instance_profile: Optional[pulumi.Input[_builtins.str]] = None,
1287
+ image_id: Optional[pulumi.Input[_builtins.str]] = None,
1272
1288
  images: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]] = None,
1273
- immediate_od_recover_threshold: Optional[pulumi.Input[int]] = None,
1274
- instance_types_ondemand: Optional[pulumi.Input[str]] = None,
1275
- instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1276
- instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1289
+ immediate_od_recover_threshold: Optional[pulumi.Input[_builtins.int]] = None,
1290
+ instance_types_ondemand: Optional[pulumi.Input[_builtins.str]] = None,
1291
+ instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1292
+ instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1277
1293
  instance_types_weights: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]]] = None,
1278
1294
  integration_beanstalk: Optional[pulumi.Input['ElastigroupIntegrationBeanstalkArgs']] = None,
1279
1295
  integration_codedeploy: Optional[pulumi.Input['ElastigroupIntegrationCodedeployArgs']] = None,
@@ -1286,110 +1302,111 @@ class _ElastigroupState:
1286
1302
  integration_rancher: Optional[pulumi.Input['ElastigroupIntegrationRancherArgs']] = None,
1287
1303
  integration_route53: Optional[pulumi.Input['ElastigroupIntegrationRoute53Args']] = None,
1288
1304
  itfs: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupItfArgs']]]] = None,
1289
- key_name: Optional[pulumi.Input[str]] = None,
1290
- lifetime_period: Optional[pulumi.Input[str]] = None,
1305
+ key_name: Optional[pulumi.Input[_builtins.str]] = None,
1306
+ lifetime_period: Optional[pulumi.Input[_builtins.str]] = None,
1291
1307
  logging: Optional[pulumi.Input['ElastigroupLoggingArgs']] = None,
1292
- max_size: Optional[pulumi.Input[int]] = None,
1308
+ max_replacements_percentage: Optional[pulumi.Input[_builtins.int]] = None,
1309
+ max_size: Optional[pulumi.Input[_builtins.int]] = None,
1293
1310
  metadata_options: Optional[pulumi.Input['ElastigroupMetadataOptionsArgs']] = None,
1294
- min_size: Optional[pulumi.Input[int]] = None,
1295
- minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
1311
+ min_size: Optional[pulumi.Input[_builtins.int]] = None,
1312
+ minimum_instance_lifetime: Optional[pulumi.Input[_builtins.int]] = None,
1296
1313
  multiple_metrics: Optional[pulumi.Input['ElastigroupMultipleMetricsArgs']] = None,
1297
- name: Optional[pulumi.Input[str]] = None,
1314
+ name: Optional[pulumi.Input[_builtins.str]] = None,
1298
1315
  network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkInterfaceArgs']]]] = None,
1299
- on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1300
- ondemand_count: Optional[pulumi.Input[int]] = None,
1301
- orientation: Optional[pulumi.Input[str]] = None,
1302
- persist_block_devices: Optional[pulumi.Input[bool]] = None,
1303
- persist_private_ip: Optional[pulumi.Input[bool]] = None,
1304
- persist_root_device: Optional[pulumi.Input[bool]] = None,
1305
- placement_tenancy: Optional[pulumi.Input[str]] = None,
1306
- preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1307
- private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1308
- product: Optional[pulumi.Input[str]] = None,
1309
- region: Optional[pulumi.Input[str]] = None,
1316
+ on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1317
+ ondemand_count: Optional[pulumi.Input[_builtins.int]] = None,
1318
+ orientation: Optional[pulumi.Input[_builtins.str]] = None,
1319
+ persist_block_devices: Optional[pulumi.Input[_builtins.bool]] = None,
1320
+ persist_private_ip: Optional[pulumi.Input[_builtins.bool]] = None,
1321
+ persist_root_device: Optional[pulumi.Input[_builtins.bool]] = None,
1322
+ placement_tenancy: Optional[pulumi.Input[_builtins.str]] = None,
1323
+ preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1324
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1325
+ product: Optional[pulumi.Input[_builtins.str]] = None,
1326
+ region: Optional[pulumi.Input[_builtins.str]] = None,
1310
1327
  resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]]] = None,
1311
1328
  resource_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]]] = None,
1312
- restrict_single_az: Optional[pulumi.Input[bool]] = None,
1329
+ restrict_single_az: Optional[pulumi.Input[_builtins.bool]] = None,
1313
1330
  revert_to_spot: Optional[pulumi.Input['ElastigroupRevertToSpotArgs']] = None,
1314
1331
  scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]] = None,
1315
1332
  scaling_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]]] = None,
1316
1333
  scaling_target_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingTargetPolicyArgs']]]] = None,
1317
1334
  scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]] = None,
1318
1335
  scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]] = None,
1319
- security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1320
- shutdown_script: Optional[pulumi.Input[str]] = None,
1336
+ security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1337
+ shutdown_script: Optional[pulumi.Input[_builtins.str]] = None,
1321
1338
  signals: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]] = None,
1322
- spot_percentage: Optional[pulumi.Input[int]] = None,
1339
+ spot_percentage: Optional[pulumi.Input[_builtins.int]] = None,
1323
1340
  stateful_deallocation: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']] = None,
1324
1341
  stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]] = None,
1325
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1342
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1326
1343
  tags: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]] = None,
1327
- target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1344
+ target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1328
1345
  update_policy: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']] = None,
1329
- user_data: Optional[pulumi.Input[str]] = None,
1330
- utilize_commitments: Optional[pulumi.Input[bool]] = None,
1331
- utilize_reserved_instances: Optional[pulumi.Input[bool]] = None,
1332
- wait_for_capacity: Optional[pulumi.Input[int]] = None,
1333
- wait_for_capacity_timeout: Optional[pulumi.Input[int]] = None):
1346
+ user_data: Optional[pulumi.Input[_builtins.str]] = None,
1347
+ utilize_commitments: Optional[pulumi.Input[_builtins.bool]] = None,
1348
+ utilize_reserved_instances: Optional[pulumi.Input[_builtins.bool]] = None,
1349
+ wait_for_capacity: Optional[pulumi.Input[_builtins.int]] = None,
1350
+ wait_for_capacity_timeout: Optional[pulumi.Input[_builtins.int]] = None):
1334
1351
  """
1335
1352
  Input properties used for looking up and filtering Elastigroup resources.
1336
- :param pulumi.Input[bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
1337
- :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
1353
+ :param pulumi.Input[_builtins.bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
1354
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
1338
1355
  Note: `availability_zones` naming syntax follows the convention `availability-zone:subnet:placement-group-name`. For example, to set an AZ in `us-east-1` with subnet `subnet-123456` and placement group `ClusterI03`, you would set:
1339
1356
  `availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]`
1340
- :param pulumi.Input[str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
1341
- :param pulumi.Input[str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
1357
+ :param pulumi.Input[_builtins.str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
1358
+ :param pulumi.Input[_builtins.str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
1342
1359
  :param pulumi.Input['ElastigroupCpuOptionsArgs'] cpu_options: The CPU options for the instances that are launched within the group:
1343
- :param pulumi.Input[str] description: The group description.
1344
- :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time.
1345
- :param pulumi.Input[int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
1346
- :param pulumi.Input[bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
1347
- :param pulumi.Input[Sequence[pulumi.Input[str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
1348
- :param pulumi.Input[bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
1349
- :param pulumi.Input[bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
1350
- :param pulumi.Input[int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
1351
- :param pulumi.Input[str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
1352
- :param pulumi.Input[int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
1353
- :param pulumi.Input[str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
1354
- :param pulumi.Input[str] image_id: The ID of the AMI used to launch the instance.
1360
+ :param pulumi.Input[_builtins.str] description: The group description.
1361
+ :param pulumi.Input[_builtins.int] desired_capacity: The desired number of instances the group should have at any time.
1362
+ :param pulumi.Input[_builtins.int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
1363
+ :param pulumi.Input[_builtins.bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
1364
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
1365
+ :param pulumi.Input[_builtins.bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
1366
+ :param pulumi.Input[_builtins.bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
1367
+ :param pulumi.Input[_builtins.int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
1368
+ :param pulumi.Input[_builtins.str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
1369
+ :param pulumi.Input[_builtins.int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
1370
+ :param pulumi.Input[_builtins.str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
1371
+ :param pulumi.Input[_builtins.str] image_id: The ID of the AMI used to launch the instance.
1355
1372
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]] images: An array of image objects.
1356
1373
  Note: Elastigroup can be configured with either imageId or images, but not both.
1357
- :param pulumi.Input[str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
1358
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
1359
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
1374
+ :param pulumi.Input[_builtins.str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
1375
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
1376
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
1360
1377
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]] instance_types_weights: List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
1361
- :param pulumi.Input[str] key_name: The key name that should be used for the instance.
1378
+ :param pulumi.Input[_builtins.str] key_name: The key name that should be used for the instance.
1362
1379
  :param pulumi.Input['ElastigroupLoggingArgs'] logging: Logging configuration.
1363
- :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time.
1380
+ :param pulumi.Input[_builtins.int] max_size: The maximum number of instances the group should have at any time.
1364
1381
  :param pulumi.Input['ElastigroupMetadataOptionsArgs'] metadata_options: Data that used to configure or manage the running instances:
1365
- :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time.
1366
- :param pulumi.Input[int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
1367
- :param pulumi.Input[str] name: The group name.
1368
- :param pulumi.Input[Sequence[pulumi.Input[str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
1369
- :param pulumi.Input[int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
1370
- :param pulumi.Input[str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
1371
- :param pulumi.Input[str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
1372
- :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
1382
+ :param pulumi.Input[_builtins.int] min_size: The minimum number of instances the group should have at any time.
1383
+ :param pulumi.Input[_builtins.int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
1384
+ :param pulumi.Input[_builtins.str] name: The group name.
1385
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
1386
+ :param pulumi.Input[_builtins.int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
1387
+ :param pulumi.Input[_builtins.str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
1388
+ :param pulumi.Input[_builtins.str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
1389
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
1373
1390
  Note: Must be a sublist of `availability_zones` and `orientation` value must not be `"equalAzDistribution"`.
1374
- :param pulumi.Input[str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
1391
+ :param pulumi.Input[_builtins.str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
1375
1392
  For EC2 Classic instances: `"SUSE Linux (Amazon VPC)"`, `"Windows (Amazon VPC)"`.
1376
- :param pulumi.Input[str] region: The AWS region your group will be created in.
1393
+ :param pulumi.Input[_builtins.str] region: The AWS region your group will be created in.
1377
1394
  Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
1378
1395
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]] resource_requirements: Required instance attributes. Instance types will be selected based on these requirements.
1379
1396
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]] resource_tag_specifications: User will specify which resources should be tagged with group tags.
1380
- :param pulumi.Input[bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
1397
+ :param pulumi.Input[_builtins.bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
1381
1398
  :param pulumi.Input['ElastigroupRevertToSpotArgs'] revert_to_spot: Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: `"never"`, `"always"`, `"timeWindow"`
1382
1399
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]] scaling_strategies: Set termination policy.
1383
- :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of associated security group IDS.
1384
- :param pulumi.Input[str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
1385
- :param pulumi.Input[int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
1386
- :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of Strings of subnet identifiers.
1400
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] security_groups: A list of associated security group IDS.
1401
+ :param pulumi.Input[_builtins.str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
1402
+ :param pulumi.Input[_builtins.int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
1403
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] subnet_ids: List of Strings of subnet identifiers.
1387
1404
  Note: When this parameter is set, `availability_zones` should be left unused.
1388
1405
  :param pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]] tags: A key/value mapping of tags to assign to the resource.
1389
- :param pulumi.Input[str] user_data: The user data to provide when launching the instance.
1390
- :param pulumi.Input[bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
1391
- :param pulumi.Input[int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
1392
- :param pulumi.Input[int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
1406
+ :param pulumi.Input[_builtins.str] user_data: The user data to provide when launching the instance.
1407
+ :param pulumi.Input[_builtins.bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
1408
+ :param pulumi.Input[_builtins.int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
1409
+ :param pulumi.Input[_builtins.int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
1393
1410
  """
1394
1411
  if auto_healing is not None:
1395
1412
  pulumi.set(__self__, "auto_healing", auto_healing)
@@ -1475,6 +1492,8 @@ class _ElastigroupState:
1475
1492
  pulumi.set(__self__, "lifetime_period", lifetime_period)
1476
1493
  if logging is not None:
1477
1494
  pulumi.set(__self__, "logging", logging)
1495
+ if max_replacements_percentage is not None:
1496
+ pulumi.set(__self__, "max_replacements_percentage", max_replacements_percentage)
1478
1497
  if max_size is not None:
1479
1498
  pulumi.set(__self__, "max_size", max_size)
1480
1499
  if metadata_options is not None:
@@ -1541,6 +1560,9 @@ class _ElastigroupState:
1541
1560
  pulumi.set(__self__, "stateful_deallocation", stateful_deallocation)
1542
1561
  if stateful_instance_actions is not None:
1543
1562
  pulumi.set(__self__, "stateful_instance_actions", stateful_instance_actions)
1563
+ if subnet_ids is not None:
1564
+ warnings.warn("""This field will soon be deprecated and handled by availability_zones""", DeprecationWarning)
1565
+ pulumi.log.warn("""subnet_ids is deprecated: This field will soon be deprecated and handled by availability_zones""")
1544
1566
  if subnet_ids is not None:
1545
1567
  pulumi.set(__self__, "subnet_ids", subnet_ids)
1546
1568
  if tags is not None:
@@ -1560,21 +1582,21 @@ class _ElastigroupState:
1560
1582
  if wait_for_capacity_timeout is not None:
1561
1583
  pulumi.set(__self__, "wait_for_capacity_timeout", wait_for_capacity_timeout)
1562
1584
 
1563
- @property
1585
+ @_builtins.property
1564
1586
  @pulumi.getter(name="autoHealing")
1565
- def auto_healing(self) -> Optional[pulumi.Input[bool]]:
1587
+ def auto_healing(self) -> Optional[pulumi.Input[_builtins.bool]]:
1566
1588
  """
1567
1589
  Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
1568
1590
  """
1569
1591
  return pulumi.get(self, "auto_healing")
1570
1592
 
1571
1593
  @auto_healing.setter
1572
- def auto_healing(self, value: Optional[pulumi.Input[bool]]):
1594
+ def auto_healing(self, value: Optional[pulumi.Input[_builtins.bool]]):
1573
1595
  pulumi.set(self, "auto_healing", value)
1574
1596
 
1575
- @property
1597
+ @_builtins.property
1576
1598
  @pulumi.getter(name="availabilityZones")
1577
- def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1599
+ def availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1578
1600
  """
1579
1601
  List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
1580
1602
  Note: `availability_zones` naming syntax follows the convention `availability-zone:subnet:placement-group-name`. For example, to set an AZ in `us-east-1` with subnet `subnet-123456` and placement group `ClusterI03`, you would set:
@@ -1583,52 +1605,52 @@ class _ElastigroupState:
1583
1605
  return pulumi.get(self, "availability_zones")
1584
1606
 
1585
1607
  @availability_zones.setter
1586
- def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1608
+ def availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1587
1609
  pulumi.set(self, "availability_zones", value)
1588
1610
 
1589
- @property
1611
+ @_builtins.property
1590
1612
  @pulumi.getter(name="blockDevicesMode")
1591
- def block_devices_mode(self) -> Optional[pulumi.Input[str]]:
1613
+ def block_devices_mode(self) -> Optional[pulumi.Input[_builtins.str]]:
1592
1614
  return pulumi.get(self, "block_devices_mode")
1593
1615
 
1594
1616
  @block_devices_mode.setter
1595
- def block_devices_mode(self, value: Optional[pulumi.Input[str]]):
1617
+ def block_devices_mode(self, value: Optional[pulumi.Input[_builtins.str]]):
1596
1618
  pulumi.set(self, "block_devices_mode", value)
1597
1619
 
1598
- @property
1620
+ @_builtins.property
1599
1621
  @pulumi.getter(name="capacityUnit")
1600
- def capacity_unit(self) -> Optional[pulumi.Input[str]]:
1622
+ def capacity_unit(self) -> Optional[pulumi.Input[_builtins.str]]:
1601
1623
  """
1602
1624
  The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
1603
1625
  """
1604
1626
  return pulumi.get(self, "capacity_unit")
1605
1627
 
1606
1628
  @capacity_unit.setter
1607
- def capacity_unit(self, value: Optional[pulumi.Input[str]]):
1629
+ def capacity_unit(self, value: Optional[pulumi.Input[_builtins.str]]):
1608
1630
  pulumi.set(self, "capacity_unit", value)
1609
1631
 
1610
- @property
1632
+ @_builtins.property
1611
1633
  @pulumi.getter(name="considerOdPricing")
1612
- def consider_od_pricing(self) -> Optional[pulumi.Input[bool]]:
1634
+ def consider_od_pricing(self) -> Optional[pulumi.Input[_builtins.bool]]:
1613
1635
  return pulumi.get(self, "consider_od_pricing")
1614
1636
 
1615
1637
  @consider_od_pricing.setter
1616
- def consider_od_pricing(self, value: Optional[pulumi.Input[bool]]):
1638
+ def consider_od_pricing(self, value: Optional[pulumi.Input[_builtins.bool]]):
1617
1639
  pulumi.set(self, "consider_od_pricing", value)
1618
1640
 
1619
- @property
1641
+ @_builtins.property
1620
1642
  @pulumi.getter(name="cpuCredits")
1621
- def cpu_credits(self) -> Optional[pulumi.Input[str]]:
1643
+ def cpu_credits(self) -> Optional[pulumi.Input[_builtins.str]]:
1622
1644
  """
1623
1645
  Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
1624
1646
  """
1625
1647
  return pulumi.get(self, "cpu_credits")
1626
1648
 
1627
1649
  @cpu_credits.setter
1628
- def cpu_credits(self, value: Optional[pulumi.Input[str]]):
1650
+ def cpu_credits(self, value: Optional[pulumi.Input[_builtins.str]]):
1629
1651
  pulumi.set(self, "cpu_credits", value)
1630
1652
 
1631
- @property
1653
+ @_builtins.property
1632
1654
  @pulumi.getter(name="cpuOptions")
1633
1655
  def cpu_options(self) -> Optional[pulumi.Input['ElastigroupCpuOptionsArgs']]:
1634
1656
  """
@@ -1640,43 +1662,43 @@ class _ElastigroupState:
1640
1662
  def cpu_options(self, value: Optional[pulumi.Input['ElastigroupCpuOptionsArgs']]):
1641
1663
  pulumi.set(self, "cpu_options", value)
1642
1664
 
1643
- @property
1665
+ @_builtins.property
1644
1666
  @pulumi.getter
1645
- def description(self) -> Optional[pulumi.Input[str]]:
1667
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
1646
1668
  """
1647
1669
  The group description.
1648
1670
  """
1649
1671
  return pulumi.get(self, "description")
1650
1672
 
1651
1673
  @description.setter
1652
- def description(self, value: Optional[pulumi.Input[str]]):
1674
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
1653
1675
  pulumi.set(self, "description", value)
1654
1676
 
1655
- @property
1677
+ @_builtins.property
1656
1678
  @pulumi.getter(name="desiredCapacity")
1657
- def desired_capacity(self) -> Optional[pulumi.Input[int]]:
1679
+ def desired_capacity(self) -> Optional[pulumi.Input[_builtins.int]]:
1658
1680
  """
1659
1681
  The desired number of instances the group should have at any time.
1660
1682
  """
1661
1683
  return pulumi.get(self, "desired_capacity")
1662
1684
 
1663
1685
  @desired_capacity.setter
1664
- def desired_capacity(self, value: Optional[pulumi.Input[int]]):
1686
+ def desired_capacity(self, value: Optional[pulumi.Input[_builtins.int]]):
1665
1687
  pulumi.set(self, "desired_capacity", value)
1666
1688
 
1667
- @property
1689
+ @_builtins.property
1668
1690
  @pulumi.getter(name="drainingTimeout")
1669
- def draining_timeout(self) -> Optional[pulumi.Input[int]]:
1691
+ def draining_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
1670
1692
  """
1671
1693
  The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
1672
1694
  """
1673
1695
  return pulumi.get(self, "draining_timeout")
1674
1696
 
1675
1697
  @draining_timeout.setter
1676
- def draining_timeout(self, value: Optional[pulumi.Input[int]]):
1698
+ def draining_timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
1677
1699
  pulumi.set(self, "draining_timeout", value)
1678
1700
 
1679
- @property
1701
+ @_builtins.property
1680
1702
  @pulumi.getter(name="ebsBlockDevices")
1681
1703
  def ebs_block_devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEbsBlockDeviceArgs']]]]:
1682
1704
  return pulumi.get(self, "ebs_block_devices")
@@ -1685,52 +1707,52 @@ class _ElastigroupState:
1685
1707
  def ebs_block_devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEbsBlockDeviceArgs']]]]):
1686
1708
  pulumi.set(self, "ebs_block_devices", value)
1687
1709
 
1688
- @property
1710
+ @_builtins.property
1689
1711
  @pulumi.getter(name="ebsOptimized")
1690
- def ebs_optimized(self) -> Optional[pulumi.Input[bool]]:
1712
+ def ebs_optimized(self) -> Optional[pulumi.Input[_builtins.bool]]:
1691
1713
  """
1692
1714
  Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
1693
1715
  """
1694
1716
  return pulumi.get(self, "ebs_optimized")
1695
1717
 
1696
1718
  @ebs_optimized.setter
1697
- def ebs_optimized(self, value: Optional[pulumi.Input[bool]]):
1719
+ def ebs_optimized(self, value: Optional[pulumi.Input[_builtins.bool]]):
1698
1720
  pulumi.set(self, "ebs_optimized", value)
1699
1721
 
1700
- @property
1722
+ @_builtins.property
1701
1723
  @pulumi.getter(name="elasticIps")
1702
- def elastic_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1724
+ def elastic_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1703
1725
  """
1704
1726
  A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
1705
1727
  """
1706
1728
  return pulumi.get(self, "elastic_ips")
1707
1729
 
1708
1730
  @elastic_ips.setter
1709
- def elastic_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1731
+ def elastic_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1710
1732
  pulumi.set(self, "elastic_ips", value)
1711
1733
 
1712
- @property
1734
+ @_builtins.property
1713
1735
  @pulumi.getter(name="elasticLoadBalancers")
1714
- def elastic_load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1736
+ def elastic_load_balancers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1715
1737
  return pulumi.get(self, "elastic_load_balancers")
1716
1738
 
1717
1739
  @elastic_load_balancers.setter
1718
- def elastic_load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1740
+ def elastic_load_balancers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1719
1741
  pulumi.set(self, "elastic_load_balancers", value)
1720
1742
 
1721
- @property
1743
+ @_builtins.property
1722
1744
  @pulumi.getter(name="enableMonitoring")
1723
- def enable_monitoring(self) -> Optional[pulumi.Input[bool]]:
1745
+ def enable_monitoring(self) -> Optional[pulumi.Input[_builtins.bool]]:
1724
1746
  """
1725
1747
  Indicates whether monitoring is enabled for the instance.
1726
1748
  """
1727
1749
  return pulumi.get(self, "enable_monitoring")
1728
1750
 
1729
1751
  @enable_monitoring.setter
1730
- def enable_monitoring(self, value: Optional[pulumi.Input[bool]]):
1752
+ def enable_monitoring(self, value: Optional[pulumi.Input[_builtins.bool]]):
1731
1753
  pulumi.set(self, "enable_monitoring", value)
1732
1754
 
1733
- @property
1755
+ @_builtins.property
1734
1756
  @pulumi.getter(name="ephemeralBlockDevices")
1735
1757
  def ephemeral_block_devices(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEphemeralBlockDeviceArgs']]]]:
1736
1758
  return pulumi.get(self, "ephemeral_block_devices")
@@ -1739,79 +1761,79 @@ class _ElastigroupState:
1739
1761
  def ephemeral_block_devices(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupEphemeralBlockDeviceArgs']]]]):
1740
1762
  pulumi.set(self, "ephemeral_block_devices", value)
1741
1763
 
1742
- @property
1764
+ @_builtins.property
1743
1765
  @pulumi.getter(name="fallbackToOndemand")
1744
- def fallback_to_ondemand(self) -> Optional[pulumi.Input[bool]]:
1766
+ def fallback_to_ondemand(self) -> Optional[pulumi.Input[_builtins.bool]]:
1745
1767
  """
1746
1768
  In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
1747
1769
  """
1748
1770
  return pulumi.get(self, "fallback_to_ondemand")
1749
1771
 
1750
1772
  @fallback_to_ondemand.setter
1751
- def fallback_to_ondemand(self, value: Optional[pulumi.Input[bool]]):
1773
+ def fallback_to_ondemand(self, value: Optional[pulumi.Input[_builtins.bool]]):
1752
1774
  pulumi.set(self, "fallback_to_ondemand", value)
1753
1775
 
1754
- @property
1776
+ @_builtins.property
1755
1777
  @pulumi.getter(name="healthCheckGracePeriod")
1756
- def health_check_grace_period(self) -> Optional[pulumi.Input[int]]:
1778
+ def health_check_grace_period(self) -> Optional[pulumi.Input[_builtins.int]]:
1757
1779
  """
1758
1780
  The amount of time, in seconds, after the instance has launched to starts and check its health.
1759
1781
  """
1760
1782
  return pulumi.get(self, "health_check_grace_period")
1761
1783
 
1762
1784
  @health_check_grace_period.setter
1763
- def health_check_grace_period(self, value: Optional[pulumi.Input[int]]):
1785
+ def health_check_grace_period(self, value: Optional[pulumi.Input[_builtins.int]]):
1764
1786
  pulumi.set(self, "health_check_grace_period", value)
1765
1787
 
1766
- @property
1788
+ @_builtins.property
1767
1789
  @pulumi.getter(name="healthCheckType")
1768
- def health_check_type(self) -> Optional[pulumi.Input[str]]:
1790
+ def health_check_type(self) -> Optional[pulumi.Input[_builtins.str]]:
1769
1791
  """
1770
1792
  The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
1771
1793
  """
1772
1794
  return pulumi.get(self, "health_check_type")
1773
1795
 
1774
1796
  @health_check_type.setter
1775
- def health_check_type(self, value: Optional[pulumi.Input[str]]):
1797
+ def health_check_type(self, value: Optional[pulumi.Input[_builtins.str]]):
1776
1798
  pulumi.set(self, "health_check_type", value)
1777
1799
 
1778
- @property
1800
+ @_builtins.property
1779
1801
  @pulumi.getter(name="healthCheckUnhealthyDurationBeforeReplacement")
1780
- def health_check_unhealthy_duration_before_replacement(self) -> Optional[pulumi.Input[int]]:
1802
+ def health_check_unhealthy_duration_before_replacement(self) -> Optional[pulumi.Input[_builtins.int]]:
1781
1803
  """
1782
1804
  The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
1783
1805
  """
1784
1806
  return pulumi.get(self, "health_check_unhealthy_duration_before_replacement")
1785
1807
 
1786
1808
  @health_check_unhealthy_duration_before_replacement.setter
1787
- def health_check_unhealthy_duration_before_replacement(self, value: Optional[pulumi.Input[int]]):
1809
+ def health_check_unhealthy_duration_before_replacement(self, value: Optional[pulumi.Input[_builtins.int]]):
1788
1810
  pulumi.set(self, "health_check_unhealthy_duration_before_replacement", value)
1789
1811
 
1790
- @property
1812
+ @_builtins.property
1791
1813
  @pulumi.getter(name="iamInstanceProfile")
1792
- def iam_instance_profile(self) -> Optional[pulumi.Input[str]]:
1814
+ def iam_instance_profile(self) -> Optional[pulumi.Input[_builtins.str]]:
1793
1815
  """
1794
1816
  The ARN or name of an IAM instance profile to associate with launched instances.
1795
1817
  """
1796
1818
  return pulumi.get(self, "iam_instance_profile")
1797
1819
 
1798
1820
  @iam_instance_profile.setter
1799
- def iam_instance_profile(self, value: Optional[pulumi.Input[str]]):
1821
+ def iam_instance_profile(self, value: Optional[pulumi.Input[_builtins.str]]):
1800
1822
  pulumi.set(self, "iam_instance_profile", value)
1801
1823
 
1802
- @property
1824
+ @_builtins.property
1803
1825
  @pulumi.getter(name="imageId")
1804
- def image_id(self) -> Optional[pulumi.Input[str]]:
1826
+ def image_id(self) -> Optional[pulumi.Input[_builtins.str]]:
1805
1827
  """
1806
1828
  The ID of the AMI used to launch the instance.
1807
1829
  """
1808
1830
  return pulumi.get(self, "image_id")
1809
1831
 
1810
1832
  @image_id.setter
1811
- def image_id(self, value: Optional[pulumi.Input[str]]):
1833
+ def image_id(self, value: Optional[pulumi.Input[_builtins.str]]):
1812
1834
  pulumi.set(self, "image_id", value)
1813
1835
 
1814
- @property
1836
+ @_builtins.property
1815
1837
  @pulumi.getter
1816
1838
  def images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]:
1817
1839
  """
@@ -1824,52 +1846,52 @@ class _ElastigroupState:
1824
1846
  def images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupImageArgs']]]]):
1825
1847
  pulumi.set(self, "images", value)
1826
1848
 
1827
- @property
1849
+ @_builtins.property
1828
1850
  @pulumi.getter(name="immediateOdRecoverThreshold")
1829
- def immediate_od_recover_threshold(self) -> Optional[pulumi.Input[int]]:
1851
+ def immediate_od_recover_threshold(self) -> Optional[pulumi.Input[_builtins.int]]:
1830
1852
  return pulumi.get(self, "immediate_od_recover_threshold")
1831
1853
 
1832
1854
  @immediate_od_recover_threshold.setter
1833
- def immediate_od_recover_threshold(self, value: Optional[pulumi.Input[int]]):
1855
+ def immediate_od_recover_threshold(self, value: Optional[pulumi.Input[_builtins.int]]):
1834
1856
  pulumi.set(self, "immediate_od_recover_threshold", value)
1835
1857
 
1836
- @property
1858
+ @_builtins.property
1837
1859
  @pulumi.getter(name="instanceTypesOndemand")
1838
- def instance_types_ondemand(self) -> Optional[pulumi.Input[str]]:
1860
+ def instance_types_ondemand(self) -> Optional[pulumi.Input[_builtins.str]]:
1839
1861
  """
1840
1862
  The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
1841
1863
  """
1842
1864
  return pulumi.get(self, "instance_types_ondemand")
1843
1865
 
1844
1866
  @instance_types_ondemand.setter
1845
- def instance_types_ondemand(self, value: Optional[pulumi.Input[str]]):
1867
+ def instance_types_ondemand(self, value: Optional[pulumi.Input[_builtins.str]]):
1846
1868
  pulumi.set(self, "instance_types_ondemand", value)
1847
1869
 
1848
- @property
1870
+ @_builtins.property
1849
1871
  @pulumi.getter(name="instanceTypesPreferredSpots")
1850
- def instance_types_preferred_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1872
+ def instance_types_preferred_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1851
1873
  """
1852
1874
  Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
1853
1875
  """
1854
1876
  return pulumi.get(self, "instance_types_preferred_spots")
1855
1877
 
1856
1878
  @instance_types_preferred_spots.setter
1857
- def instance_types_preferred_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1879
+ def instance_types_preferred_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1858
1880
  pulumi.set(self, "instance_types_preferred_spots", value)
1859
1881
 
1860
- @property
1882
+ @_builtins.property
1861
1883
  @pulumi.getter(name="instanceTypesSpots")
1862
- def instance_types_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1884
+ def instance_types_spots(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1863
1885
  """
1864
1886
  One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
1865
1887
  """
1866
1888
  return pulumi.get(self, "instance_types_spots")
1867
1889
 
1868
1890
  @instance_types_spots.setter
1869
- def instance_types_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1891
+ def instance_types_spots(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1870
1892
  pulumi.set(self, "instance_types_spots", value)
1871
1893
 
1872
- @property
1894
+ @_builtins.property
1873
1895
  @pulumi.getter(name="instanceTypesWeights")
1874
1896
  def instance_types_weights(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]]]:
1875
1897
  """
@@ -1881,7 +1903,7 @@ class _ElastigroupState:
1881
1903
  def instance_types_weights(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupInstanceTypesWeightArgs']]]]):
1882
1904
  pulumi.set(self, "instance_types_weights", value)
1883
1905
 
1884
- @property
1906
+ @_builtins.property
1885
1907
  @pulumi.getter(name="integrationBeanstalk")
1886
1908
  def integration_beanstalk(self) -> Optional[pulumi.Input['ElastigroupIntegrationBeanstalkArgs']]:
1887
1909
  return pulumi.get(self, "integration_beanstalk")
@@ -1890,7 +1912,7 @@ class _ElastigroupState:
1890
1912
  def integration_beanstalk(self, value: Optional[pulumi.Input['ElastigroupIntegrationBeanstalkArgs']]):
1891
1913
  pulumi.set(self, "integration_beanstalk", value)
1892
1914
 
1893
- @property
1915
+ @_builtins.property
1894
1916
  @pulumi.getter(name="integrationCodedeploy")
1895
1917
  def integration_codedeploy(self) -> Optional[pulumi.Input['ElastigroupIntegrationCodedeployArgs']]:
1896
1918
  return pulumi.get(self, "integration_codedeploy")
@@ -1899,7 +1921,7 @@ class _ElastigroupState:
1899
1921
  def integration_codedeploy(self, value: Optional[pulumi.Input['ElastigroupIntegrationCodedeployArgs']]):
1900
1922
  pulumi.set(self, "integration_codedeploy", value)
1901
1923
 
1902
- @property
1924
+ @_builtins.property
1903
1925
  @pulumi.getter(name="integrationDockerSwarm")
1904
1926
  def integration_docker_swarm(self) -> Optional[pulumi.Input['ElastigroupIntegrationDockerSwarmArgs']]:
1905
1927
  return pulumi.get(self, "integration_docker_swarm")
@@ -1908,7 +1930,7 @@ class _ElastigroupState:
1908
1930
  def integration_docker_swarm(self, value: Optional[pulumi.Input['ElastigroupIntegrationDockerSwarmArgs']]):
1909
1931
  pulumi.set(self, "integration_docker_swarm", value)
1910
1932
 
1911
- @property
1933
+ @_builtins.property
1912
1934
  @pulumi.getter(name="integrationEcs")
1913
1935
  def integration_ecs(self) -> Optional[pulumi.Input['ElastigroupIntegrationEcsArgs']]:
1914
1936
  return pulumi.get(self, "integration_ecs")
@@ -1917,7 +1939,7 @@ class _ElastigroupState:
1917
1939
  def integration_ecs(self, value: Optional[pulumi.Input['ElastigroupIntegrationEcsArgs']]):
1918
1940
  pulumi.set(self, "integration_ecs", value)
1919
1941
 
1920
- @property
1942
+ @_builtins.property
1921
1943
  @pulumi.getter(name="integrationGitlab")
1922
1944
  def integration_gitlab(self) -> Optional[pulumi.Input['ElastigroupIntegrationGitlabArgs']]:
1923
1945
  return pulumi.get(self, "integration_gitlab")
@@ -1926,7 +1948,7 @@ class _ElastigroupState:
1926
1948
  def integration_gitlab(self, value: Optional[pulumi.Input['ElastigroupIntegrationGitlabArgs']]):
1927
1949
  pulumi.set(self, "integration_gitlab", value)
1928
1950
 
1929
- @property
1951
+ @_builtins.property
1930
1952
  @pulumi.getter(name="integrationKubernetes")
1931
1953
  def integration_kubernetes(self) -> Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]:
1932
1954
  return pulumi.get(self, "integration_kubernetes")
@@ -1935,7 +1957,7 @@ class _ElastigroupState:
1935
1957
  def integration_kubernetes(self, value: Optional[pulumi.Input['ElastigroupIntegrationKubernetesArgs']]):
1936
1958
  pulumi.set(self, "integration_kubernetes", value)
1937
1959
 
1938
- @property
1960
+ @_builtins.property
1939
1961
  @pulumi.getter(name="integrationMesosphere")
1940
1962
  def integration_mesosphere(self) -> Optional[pulumi.Input['ElastigroupIntegrationMesosphereArgs']]:
1941
1963
  return pulumi.get(self, "integration_mesosphere")
@@ -1944,7 +1966,7 @@ class _ElastigroupState:
1944
1966
  def integration_mesosphere(self, value: Optional[pulumi.Input['ElastigroupIntegrationMesosphereArgs']]):
1945
1967
  pulumi.set(self, "integration_mesosphere", value)
1946
1968
 
1947
- @property
1969
+ @_builtins.property
1948
1970
  @pulumi.getter(name="integrationNomad")
1949
1971
  def integration_nomad(self) -> Optional[pulumi.Input['ElastigroupIntegrationNomadArgs']]:
1950
1972
  return pulumi.get(self, "integration_nomad")
@@ -1953,7 +1975,7 @@ class _ElastigroupState:
1953
1975
  def integration_nomad(self, value: Optional[pulumi.Input['ElastigroupIntegrationNomadArgs']]):
1954
1976
  pulumi.set(self, "integration_nomad", value)
1955
1977
 
1956
- @property
1978
+ @_builtins.property
1957
1979
  @pulumi.getter(name="integrationRancher")
1958
1980
  def integration_rancher(self) -> Optional[pulumi.Input['ElastigroupIntegrationRancherArgs']]:
1959
1981
  return pulumi.get(self, "integration_rancher")
@@ -1962,7 +1984,7 @@ class _ElastigroupState:
1962
1984
  def integration_rancher(self, value: Optional[pulumi.Input['ElastigroupIntegrationRancherArgs']]):
1963
1985
  pulumi.set(self, "integration_rancher", value)
1964
1986
 
1965
- @property
1987
+ @_builtins.property
1966
1988
  @pulumi.getter(name="integrationRoute53")
1967
1989
  def integration_route53(self) -> Optional[pulumi.Input['ElastigroupIntegrationRoute53Args']]:
1968
1990
  return pulumi.get(self, "integration_route53")
@@ -1971,7 +1993,7 @@ class _ElastigroupState:
1971
1993
  def integration_route53(self, value: Optional[pulumi.Input['ElastigroupIntegrationRoute53Args']]):
1972
1994
  pulumi.set(self, "integration_route53", value)
1973
1995
 
1974
- @property
1996
+ @_builtins.property
1975
1997
  @pulumi.getter
1976
1998
  def itfs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupItfArgs']]]]:
1977
1999
  return pulumi.get(self, "itfs")
@@ -1980,28 +2002,28 @@ class _ElastigroupState:
1980
2002
  def itfs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupItfArgs']]]]):
1981
2003
  pulumi.set(self, "itfs", value)
1982
2004
 
1983
- @property
2005
+ @_builtins.property
1984
2006
  @pulumi.getter(name="keyName")
1985
- def key_name(self) -> Optional[pulumi.Input[str]]:
2007
+ def key_name(self) -> Optional[pulumi.Input[_builtins.str]]:
1986
2008
  """
1987
2009
  The key name that should be used for the instance.
1988
2010
  """
1989
2011
  return pulumi.get(self, "key_name")
1990
2012
 
1991
2013
  @key_name.setter
1992
- def key_name(self, value: Optional[pulumi.Input[str]]):
2014
+ def key_name(self, value: Optional[pulumi.Input[_builtins.str]]):
1993
2015
  pulumi.set(self, "key_name", value)
1994
2016
 
1995
- @property
2017
+ @_builtins.property
1996
2018
  @pulumi.getter(name="lifetimePeriod")
1997
- def lifetime_period(self) -> Optional[pulumi.Input[str]]:
2019
+ def lifetime_period(self) -> Optional[pulumi.Input[_builtins.str]]:
1998
2020
  return pulumi.get(self, "lifetime_period")
1999
2021
 
2000
2022
  @lifetime_period.setter
2001
- def lifetime_period(self, value: Optional[pulumi.Input[str]]):
2023
+ def lifetime_period(self, value: Optional[pulumi.Input[_builtins.str]]):
2002
2024
  pulumi.set(self, "lifetime_period", value)
2003
2025
 
2004
- @property
2026
+ @_builtins.property
2005
2027
  @pulumi.getter
2006
2028
  def logging(self) -> Optional[pulumi.Input['ElastigroupLoggingArgs']]:
2007
2029
  """
@@ -2013,19 +2035,28 @@ class _ElastigroupState:
2013
2035
  def logging(self, value: Optional[pulumi.Input['ElastigroupLoggingArgs']]):
2014
2036
  pulumi.set(self, "logging", value)
2015
2037
 
2016
- @property
2038
+ @_builtins.property
2039
+ @pulumi.getter(name="maxReplacementsPercentage")
2040
+ def max_replacements_percentage(self) -> Optional[pulumi.Input[_builtins.int]]:
2041
+ return pulumi.get(self, "max_replacements_percentage")
2042
+
2043
+ @max_replacements_percentage.setter
2044
+ def max_replacements_percentage(self, value: Optional[pulumi.Input[_builtins.int]]):
2045
+ pulumi.set(self, "max_replacements_percentage", value)
2046
+
2047
+ @_builtins.property
2017
2048
  @pulumi.getter(name="maxSize")
2018
- def max_size(self) -> Optional[pulumi.Input[int]]:
2049
+ def max_size(self) -> Optional[pulumi.Input[_builtins.int]]:
2019
2050
  """
2020
2051
  The maximum number of instances the group should have at any time.
2021
2052
  """
2022
2053
  return pulumi.get(self, "max_size")
2023
2054
 
2024
2055
  @max_size.setter
2025
- def max_size(self, value: Optional[pulumi.Input[int]]):
2056
+ def max_size(self, value: Optional[pulumi.Input[_builtins.int]]):
2026
2057
  pulumi.set(self, "max_size", value)
2027
2058
 
2028
- @property
2059
+ @_builtins.property
2029
2060
  @pulumi.getter(name="metadataOptions")
2030
2061
  def metadata_options(self) -> Optional[pulumi.Input['ElastigroupMetadataOptionsArgs']]:
2031
2062
  """
@@ -2037,31 +2068,31 @@ class _ElastigroupState:
2037
2068
  def metadata_options(self, value: Optional[pulumi.Input['ElastigroupMetadataOptionsArgs']]):
2038
2069
  pulumi.set(self, "metadata_options", value)
2039
2070
 
2040
- @property
2071
+ @_builtins.property
2041
2072
  @pulumi.getter(name="minSize")
2042
- def min_size(self) -> Optional[pulumi.Input[int]]:
2073
+ def min_size(self) -> Optional[pulumi.Input[_builtins.int]]:
2043
2074
  """
2044
2075
  The minimum number of instances the group should have at any time.
2045
2076
  """
2046
2077
  return pulumi.get(self, "min_size")
2047
2078
 
2048
2079
  @min_size.setter
2049
- def min_size(self, value: Optional[pulumi.Input[int]]):
2080
+ def min_size(self, value: Optional[pulumi.Input[_builtins.int]]):
2050
2081
  pulumi.set(self, "min_size", value)
2051
2082
 
2052
- @property
2083
+ @_builtins.property
2053
2084
  @pulumi.getter(name="minimumInstanceLifetime")
2054
- def minimum_instance_lifetime(self) -> Optional[pulumi.Input[int]]:
2085
+ def minimum_instance_lifetime(self) -> Optional[pulumi.Input[_builtins.int]]:
2055
2086
  """
2056
2087
  Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
2057
2088
  """
2058
2089
  return pulumi.get(self, "minimum_instance_lifetime")
2059
2090
 
2060
2091
  @minimum_instance_lifetime.setter
2061
- def minimum_instance_lifetime(self, value: Optional[pulumi.Input[int]]):
2092
+ def minimum_instance_lifetime(self, value: Optional[pulumi.Input[_builtins.int]]):
2062
2093
  pulumi.set(self, "minimum_instance_lifetime", value)
2063
2094
 
2064
- @property
2095
+ @_builtins.property
2065
2096
  @pulumi.getter(name="multipleMetrics")
2066
2097
  def multiple_metrics(self) -> Optional[pulumi.Input['ElastigroupMultipleMetricsArgs']]:
2067
2098
  return pulumi.get(self, "multiple_metrics")
@@ -2070,19 +2101,19 @@ class _ElastigroupState:
2070
2101
  def multiple_metrics(self, value: Optional[pulumi.Input['ElastigroupMultipleMetricsArgs']]):
2071
2102
  pulumi.set(self, "multiple_metrics", value)
2072
2103
 
2073
- @property
2104
+ @_builtins.property
2074
2105
  @pulumi.getter
2075
- def name(self) -> Optional[pulumi.Input[str]]:
2106
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
2076
2107
  """
2077
2108
  The group name.
2078
2109
  """
2079
2110
  return pulumi.get(self, "name")
2080
2111
 
2081
2112
  @name.setter
2082
- def name(self, value: Optional[pulumi.Input[str]]):
2113
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
2083
2114
  pulumi.set(self, "name", value)
2084
2115
 
2085
- @property
2116
+ @_builtins.property
2086
2117
  @pulumi.getter(name="networkInterfaces")
2087
2118
  def network_interfaces(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkInterfaceArgs']]]]:
2088
2119
  return pulumi.get(self, "network_interfaces")
@@ -2091,84 +2122,84 @@ class _ElastigroupState:
2091
2122
  def network_interfaces(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupNetworkInterfaceArgs']]]]):
2092
2123
  pulumi.set(self, "network_interfaces", value)
2093
2124
 
2094
- @property
2125
+ @_builtins.property
2095
2126
  @pulumi.getter(name="onDemandTypes")
2096
- def on_demand_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2127
+ def on_demand_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2097
2128
  """
2098
2129
  Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
2099
2130
  """
2100
2131
  return pulumi.get(self, "on_demand_types")
2101
2132
 
2102
2133
  @on_demand_types.setter
2103
- def on_demand_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2134
+ def on_demand_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2104
2135
  pulumi.set(self, "on_demand_types", value)
2105
2136
 
2106
- @property
2137
+ @_builtins.property
2107
2138
  @pulumi.getter(name="ondemandCount")
2108
- def ondemand_count(self) -> Optional[pulumi.Input[int]]:
2139
+ def ondemand_count(self) -> Optional[pulumi.Input[_builtins.int]]:
2109
2140
  """
2110
2141
  Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
2111
2142
  """
2112
2143
  return pulumi.get(self, "ondemand_count")
2113
2144
 
2114
2145
  @ondemand_count.setter
2115
- def ondemand_count(self, value: Optional[pulumi.Input[int]]):
2146
+ def ondemand_count(self, value: Optional[pulumi.Input[_builtins.int]]):
2116
2147
  pulumi.set(self, "ondemand_count", value)
2117
2148
 
2118
- @property
2149
+ @_builtins.property
2119
2150
  @pulumi.getter
2120
- def orientation(self) -> Optional[pulumi.Input[str]]:
2151
+ def orientation(self) -> Optional[pulumi.Input[_builtins.str]]:
2121
2152
  """
2122
2153
  Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
2123
2154
  """
2124
2155
  return pulumi.get(self, "orientation")
2125
2156
 
2126
2157
  @orientation.setter
2127
- def orientation(self, value: Optional[pulumi.Input[str]]):
2158
+ def orientation(self, value: Optional[pulumi.Input[_builtins.str]]):
2128
2159
  pulumi.set(self, "orientation", value)
2129
2160
 
2130
- @property
2161
+ @_builtins.property
2131
2162
  @pulumi.getter(name="persistBlockDevices")
2132
- def persist_block_devices(self) -> Optional[pulumi.Input[bool]]:
2163
+ def persist_block_devices(self) -> Optional[pulumi.Input[_builtins.bool]]:
2133
2164
  return pulumi.get(self, "persist_block_devices")
2134
2165
 
2135
2166
  @persist_block_devices.setter
2136
- def persist_block_devices(self, value: Optional[pulumi.Input[bool]]):
2167
+ def persist_block_devices(self, value: Optional[pulumi.Input[_builtins.bool]]):
2137
2168
  pulumi.set(self, "persist_block_devices", value)
2138
2169
 
2139
- @property
2170
+ @_builtins.property
2140
2171
  @pulumi.getter(name="persistPrivateIp")
2141
- def persist_private_ip(self) -> Optional[pulumi.Input[bool]]:
2172
+ def persist_private_ip(self) -> Optional[pulumi.Input[_builtins.bool]]:
2142
2173
  return pulumi.get(self, "persist_private_ip")
2143
2174
 
2144
2175
  @persist_private_ip.setter
2145
- def persist_private_ip(self, value: Optional[pulumi.Input[bool]]):
2176
+ def persist_private_ip(self, value: Optional[pulumi.Input[_builtins.bool]]):
2146
2177
  pulumi.set(self, "persist_private_ip", value)
2147
2178
 
2148
- @property
2179
+ @_builtins.property
2149
2180
  @pulumi.getter(name="persistRootDevice")
2150
- def persist_root_device(self) -> Optional[pulumi.Input[bool]]:
2181
+ def persist_root_device(self) -> Optional[pulumi.Input[_builtins.bool]]:
2151
2182
  return pulumi.get(self, "persist_root_device")
2152
2183
 
2153
2184
  @persist_root_device.setter
2154
- def persist_root_device(self, value: Optional[pulumi.Input[bool]]):
2185
+ def persist_root_device(self, value: Optional[pulumi.Input[_builtins.bool]]):
2155
2186
  pulumi.set(self, "persist_root_device", value)
2156
2187
 
2157
- @property
2188
+ @_builtins.property
2158
2189
  @pulumi.getter(name="placementTenancy")
2159
- def placement_tenancy(self) -> Optional[pulumi.Input[str]]:
2190
+ def placement_tenancy(self) -> Optional[pulumi.Input[_builtins.str]]:
2160
2191
  """
2161
2192
  Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
2162
2193
  """
2163
2194
  return pulumi.get(self, "placement_tenancy")
2164
2195
 
2165
2196
  @placement_tenancy.setter
2166
- def placement_tenancy(self, value: Optional[pulumi.Input[str]]):
2197
+ def placement_tenancy(self, value: Optional[pulumi.Input[_builtins.str]]):
2167
2198
  pulumi.set(self, "placement_tenancy", value)
2168
2199
 
2169
- @property
2200
+ @_builtins.property
2170
2201
  @pulumi.getter(name="preferredAvailabilityZones")
2171
- def preferred_availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2202
+ def preferred_availability_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2172
2203
  """
2173
2204
  The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
2174
2205
  Note: Must be a sublist of `availability_zones` and `orientation` value must not be `"equalAzDistribution"`.
@@ -2176,21 +2207,21 @@ class _ElastigroupState:
2176
2207
  return pulumi.get(self, "preferred_availability_zones")
2177
2208
 
2178
2209
  @preferred_availability_zones.setter
2179
- def preferred_availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2210
+ def preferred_availability_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2180
2211
  pulumi.set(self, "preferred_availability_zones", value)
2181
2212
 
2182
- @property
2213
+ @_builtins.property
2183
2214
  @pulumi.getter(name="privateIps")
2184
- def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2215
+ def private_ips(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2185
2216
  return pulumi.get(self, "private_ips")
2186
2217
 
2187
2218
  @private_ips.setter
2188
- def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2219
+ def private_ips(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2189
2220
  pulumi.set(self, "private_ips", value)
2190
2221
 
2191
- @property
2222
+ @_builtins.property
2192
2223
  @pulumi.getter
2193
- def product(self) -> Optional[pulumi.Input[str]]:
2224
+ def product(self) -> Optional[pulumi.Input[_builtins.str]]:
2194
2225
  """
2195
2226
  Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
2196
2227
  For EC2 Classic instances: `"SUSE Linux (Amazon VPC)"`, `"Windows (Amazon VPC)"`.
@@ -2198,12 +2229,12 @@ class _ElastigroupState:
2198
2229
  return pulumi.get(self, "product")
2199
2230
 
2200
2231
  @product.setter
2201
- def product(self, value: Optional[pulumi.Input[str]]):
2232
+ def product(self, value: Optional[pulumi.Input[_builtins.str]]):
2202
2233
  pulumi.set(self, "product", value)
2203
2234
 
2204
- @property
2235
+ @_builtins.property
2205
2236
  @pulumi.getter
2206
- def region(self) -> Optional[pulumi.Input[str]]:
2237
+ def region(self) -> Optional[pulumi.Input[_builtins.str]]:
2207
2238
  """
2208
2239
  The AWS region your group will be created in.
2209
2240
  Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
@@ -2211,10 +2242,10 @@ class _ElastigroupState:
2211
2242
  return pulumi.get(self, "region")
2212
2243
 
2213
2244
  @region.setter
2214
- def region(self, value: Optional[pulumi.Input[str]]):
2245
+ def region(self, value: Optional[pulumi.Input[_builtins.str]]):
2215
2246
  pulumi.set(self, "region", value)
2216
2247
 
2217
- @property
2248
+ @_builtins.property
2218
2249
  @pulumi.getter(name="resourceRequirements")
2219
2250
  def resource_requirements(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]]]:
2220
2251
  """
@@ -2226,7 +2257,7 @@ class _ElastigroupState:
2226
2257
  def resource_requirements(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceRequirementArgs']]]]):
2227
2258
  pulumi.set(self, "resource_requirements", value)
2228
2259
 
2229
- @property
2260
+ @_builtins.property
2230
2261
  @pulumi.getter(name="resourceTagSpecifications")
2231
2262
  def resource_tag_specifications(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]]]:
2232
2263
  """
@@ -2238,19 +2269,19 @@ class _ElastigroupState:
2238
2269
  def resource_tag_specifications(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupResourceTagSpecificationArgs']]]]):
2239
2270
  pulumi.set(self, "resource_tag_specifications", value)
2240
2271
 
2241
- @property
2272
+ @_builtins.property
2242
2273
  @pulumi.getter(name="restrictSingleAz")
2243
- def restrict_single_az(self) -> Optional[pulumi.Input[bool]]:
2274
+ def restrict_single_az(self) -> Optional[pulumi.Input[_builtins.bool]]:
2244
2275
  """
2245
2276
  Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
2246
2277
  """
2247
2278
  return pulumi.get(self, "restrict_single_az")
2248
2279
 
2249
2280
  @restrict_single_az.setter
2250
- def restrict_single_az(self, value: Optional[pulumi.Input[bool]]):
2281
+ def restrict_single_az(self, value: Optional[pulumi.Input[_builtins.bool]]):
2251
2282
  pulumi.set(self, "restrict_single_az", value)
2252
2283
 
2253
- @property
2284
+ @_builtins.property
2254
2285
  @pulumi.getter(name="revertToSpot")
2255
2286
  def revert_to_spot(self) -> Optional[pulumi.Input['ElastigroupRevertToSpotArgs']]:
2256
2287
  """
@@ -2262,7 +2293,7 @@ class _ElastigroupState:
2262
2293
  def revert_to_spot(self, value: Optional[pulumi.Input['ElastigroupRevertToSpotArgs']]):
2263
2294
  pulumi.set(self, "revert_to_spot", value)
2264
2295
 
2265
- @property
2296
+ @_builtins.property
2266
2297
  @pulumi.getter(name="scalingDownPolicies")
2267
2298
  def scaling_down_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]:
2268
2299
  return pulumi.get(self, "scaling_down_policies")
@@ -2271,7 +2302,7 @@ class _ElastigroupState:
2271
2302
  def scaling_down_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingDownPolicyArgs']]]]):
2272
2303
  pulumi.set(self, "scaling_down_policies", value)
2273
2304
 
2274
- @property
2305
+ @_builtins.property
2275
2306
  @pulumi.getter(name="scalingStrategies")
2276
2307
  def scaling_strategies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]]]:
2277
2308
  """
@@ -2283,7 +2314,7 @@ class _ElastigroupState:
2283
2314
  def scaling_strategies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingStrategyArgs']]]]):
2284
2315
  pulumi.set(self, "scaling_strategies", value)
2285
2316
 
2286
- @property
2317
+ @_builtins.property
2287
2318
  @pulumi.getter(name="scalingTargetPolicies")
2288
2319
  def scaling_target_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingTargetPolicyArgs']]]]:
2289
2320
  return pulumi.get(self, "scaling_target_policies")
@@ -2292,7 +2323,7 @@ class _ElastigroupState:
2292
2323
  def scaling_target_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingTargetPolicyArgs']]]]):
2293
2324
  pulumi.set(self, "scaling_target_policies", value)
2294
2325
 
2295
- @property
2326
+ @_builtins.property
2296
2327
  @pulumi.getter(name="scalingUpPolicies")
2297
2328
  def scaling_up_policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]:
2298
2329
  return pulumi.get(self, "scaling_up_policies")
@@ -2301,7 +2332,7 @@ class _ElastigroupState:
2301
2332
  def scaling_up_policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScalingUpPolicyArgs']]]]):
2302
2333
  pulumi.set(self, "scaling_up_policies", value)
2303
2334
 
2304
- @property
2335
+ @_builtins.property
2305
2336
  @pulumi.getter(name="scheduledTasks")
2306
2337
  def scheduled_tasks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]:
2307
2338
  return pulumi.get(self, "scheduled_tasks")
@@ -2310,31 +2341,31 @@ class _ElastigroupState:
2310
2341
  def scheduled_tasks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupScheduledTaskArgs']]]]):
2311
2342
  pulumi.set(self, "scheduled_tasks", value)
2312
2343
 
2313
- @property
2344
+ @_builtins.property
2314
2345
  @pulumi.getter(name="securityGroups")
2315
- def security_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2346
+ def security_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2316
2347
  """
2317
2348
  A list of associated security group IDS.
2318
2349
  """
2319
2350
  return pulumi.get(self, "security_groups")
2320
2351
 
2321
2352
  @security_groups.setter
2322
- def security_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2353
+ def security_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2323
2354
  pulumi.set(self, "security_groups", value)
2324
2355
 
2325
- @property
2356
+ @_builtins.property
2326
2357
  @pulumi.getter(name="shutdownScript")
2327
- def shutdown_script(self) -> Optional[pulumi.Input[str]]:
2358
+ def shutdown_script(self) -> Optional[pulumi.Input[_builtins.str]]:
2328
2359
  """
2329
2360
  The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
2330
2361
  """
2331
2362
  return pulumi.get(self, "shutdown_script")
2332
2363
 
2333
2364
  @shutdown_script.setter
2334
- def shutdown_script(self, value: Optional[pulumi.Input[str]]):
2365
+ def shutdown_script(self, value: Optional[pulumi.Input[_builtins.str]]):
2335
2366
  pulumi.set(self, "shutdown_script", value)
2336
2367
 
2337
- @property
2368
+ @_builtins.property
2338
2369
  @pulumi.getter
2339
2370
  def signals(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]]:
2340
2371
  return pulumi.get(self, "signals")
@@ -2343,19 +2374,19 @@ class _ElastigroupState:
2343
2374
  def signals(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupSignalArgs']]]]):
2344
2375
  pulumi.set(self, "signals", value)
2345
2376
 
2346
- @property
2377
+ @_builtins.property
2347
2378
  @pulumi.getter(name="spotPercentage")
2348
- def spot_percentage(self) -> Optional[pulumi.Input[int]]:
2379
+ def spot_percentage(self) -> Optional[pulumi.Input[_builtins.int]]:
2349
2380
  """
2350
2381
  The percentage of Spot instances that would spin up from the `desired_capacity` number.
2351
2382
  """
2352
2383
  return pulumi.get(self, "spot_percentage")
2353
2384
 
2354
2385
  @spot_percentage.setter
2355
- def spot_percentage(self, value: Optional[pulumi.Input[int]]):
2386
+ def spot_percentage(self, value: Optional[pulumi.Input[_builtins.int]]):
2356
2387
  pulumi.set(self, "spot_percentage", value)
2357
2388
 
2358
- @property
2389
+ @_builtins.property
2359
2390
  @pulumi.getter(name="statefulDeallocation")
2360
2391
  def stateful_deallocation(self) -> Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']]:
2361
2392
  return pulumi.get(self, "stateful_deallocation")
@@ -2364,7 +2395,7 @@ class _ElastigroupState:
2364
2395
  def stateful_deallocation(self, value: Optional[pulumi.Input['ElastigroupStatefulDeallocationArgs']]):
2365
2396
  pulumi.set(self, "stateful_deallocation", value)
2366
2397
 
2367
- @property
2398
+ @_builtins.property
2368
2399
  @pulumi.getter(name="statefulInstanceActions")
2369
2400
  def stateful_instance_actions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]:
2370
2401
  return pulumi.get(self, "stateful_instance_actions")
@@ -2373,9 +2404,10 @@ class _ElastigroupState:
2373
2404
  def stateful_instance_actions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupStatefulInstanceActionArgs']]]]):
2374
2405
  pulumi.set(self, "stateful_instance_actions", value)
2375
2406
 
2376
- @property
2407
+ @_builtins.property
2377
2408
  @pulumi.getter(name="subnetIds")
2378
- def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2409
+ @_utilities.deprecated("""This field will soon be deprecated and handled by availability_zones""")
2410
+ def subnet_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2379
2411
  """
2380
2412
  List of Strings of subnet identifiers.
2381
2413
  Note: When this parameter is set, `availability_zones` should be left unused.
@@ -2383,10 +2415,10 @@ class _ElastigroupState:
2383
2415
  return pulumi.get(self, "subnet_ids")
2384
2416
 
2385
2417
  @subnet_ids.setter
2386
- def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2418
+ def subnet_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2387
2419
  pulumi.set(self, "subnet_ids", value)
2388
2420
 
2389
- @property
2421
+ @_builtins.property
2390
2422
  @pulumi.getter
2391
2423
  def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]]:
2392
2424
  """
@@ -2398,16 +2430,16 @@ class _ElastigroupState:
2398
2430
  def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ElastigroupTagArgs']]]]):
2399
2431
  pulumi.set(self, "tags", value)
2400
2432
 
2401
- @property
2433
+ @_builtins.property
2402
2434
  @pulumi.getter(name="targetGroupArns")
2403
- def target_group_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2435
+ def target_group_arns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
2404
2436
  return pulumi.get(self, "target_group_arns")
2405
2437
 
2406
2438
  @target_group_arns.setter
2407
- def target_group_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2439
+ def target_group_arns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
2408
2440
  pulumi.set(self, "target_group_arns", value)
2409
2441
 
2410
- @property
2442
+ @_builtins.property
2411
2443
  @pulumi.getter(name="updatePolicy")
2412
2444
  def update_policy(self) -> Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]:
2413
2445
  return pulumi.get(self, "update_policy")
@@ -2416,96 +2448,97 @@ class _ElastigroupState:
2416
2448
  def update_policy(self, value: Optional[pulumi.Input['ElastigroupUpdatePolicyArgs']]):
2417
2449
  pulumi.set(self, "update_policy", value)
2418
2450
 
2419
- @property
2451
+ @_builtins.property
2420
2452
  @pulumi.getter(name="userData")
2421
- def user_data(self) -> Optional[pulumi.Input[str]]:
2453
+ def user_data(self) -> Optional[pulumi.Input[_builtins.str]]:
2422
2454
  """
2423
2455
  The user data to provide when launching the instance.
2424
2456
  """
2425
2457
  return pulumi.get(self, "user_data")
2426
2458
 
2427
2459
  @user_data.setter
2428
- def user_data(self, value: Optional[pulumi.Input[str]]):
2460
+ def user_data(self, value: Optional[pulumi.Input[_builtins.str]]):
2429
2461
  pulumi.set(self, "user_data", value)
2430
2462
 
2431
- @property
2463
+ @_builtins.property
2432
2464
  @pulumi.getter(name="utilizeCommitments")
2433
- def utilize_commitments(self) -> Optional[pulumi.Input[bool]]:
2465
+ def utilize_commitments(self) -> Optional[pulumi.Input[_builtins.bool]]:
2434
2466
  return pulumi.get(self, "utilize_commitments")
2435
2467
 
2436
2468
  @utilize_commitments.setter
2437
- def utilize_commitments(self, value: Optional[pulumi.Input[bool]]):
2469
+ def utilize_commitments(self, value: Optional[pulumi.Input[_builtins.bool]]):
2438
2470
  pulumi.set(self, "utilize_commitments", value)
2439
2471
 
2440
- @property
2472
+ @_builtins.property
2441
2473
  @pulumi.getter(name="utilizeReservedInstances")
2442
- def utilize_reserved_instances(self) -> Optional[pulumi.Input[bool]]:
2474
+ def utilize_reserved_instances(self) -> Optional[pulumi.Input[_builtins.bool]]:
2443
2475
  """
2444
2476
  In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
2445
2477
  """
2446
2478
  return pulumi.get(self, "utilize_reserved_instances")
2447
2479
 
2448
2480
  @utilize_reserved_instances.setter
2449
- def utilize_reserved_instances(self, value: Optional[pulumi.Input[bool]]):
2481
+ def utilize_reserved_instances(self, value: Optional[pulumi.Input[_builtins.bool]]):
2450
2482
  pulumi.set(self, "utilize_reserved_instances", value)
2451
2483
 
2452
- @property
2484
+ @_builtins.property
2453
2485
  @pulumi.getter(name="waitForCapacity")
2454
- def wait_for_capacity(self) -> Optional[pulumi.Input[int]]:
2486
+ def wait_for_capacity(self) -> Optional[pulumi.Input[_builtins.int]]:
2455
2487
  """
2456
2488
  Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
2457
2489
  """
2458
2490
  return pulumi.get(self, "wait_for_capacity")
2459
2491
 
2460
2492
  @wait_for_capacity.setter
2461
- def wait_for_capacity(self, value: Optional[pulumi.Input[int]]):
2493
+ def wait_for_capacity(self, value: Optional[pulumi.Input[_builtins.int]]):
2462
2494
  pulumi.set(self, "wait_for_capacity", value)
2463
2495
 
2464
- @property
2496
+ @_builtins.property
2465
2497
  @pulumi.getter(name="waitForCapacityTimeout")
2466
- def wait_for_capacity_timeout(self) -> Optional[pulumi.Input[int]]:
2498
+ def wait_for_capacity_timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
2467
2499
  """
2468
2500
  Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
2469
2501
  """
2470
2502
  return pulumi.get(self, "wait_for_capacity_timeout")
2471
2503
 
2472
2504
  @wait_for_capacity_timeout.setter
2473
- def wait_for_capacity_timeout(self, value: Optional[pulumi.Input[int]]):
2505
+ def wait_for_capacity_timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
2474
2506
  pulumi.set(self, "wait_for_capacity_timeout", value)
2475
2507
 
2476
2508
 
2509
+ @pulumi.type_token("spotinst:aws/elastigroup:Elastigroup")
2477
2510
  class Elastigroup(pulumi.CustomResource):
2478
2511
  @overload
2479
2512
  def __init__(__self__,
2480
2513
  resource_name: str,
2481
2514
  opts: Optional[pulumi.ResourceOptions] = None,
2482
- auto_healing: Optional[pulumi.Input[bool]] = None,
2483
- availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2484
- block_devices_mode: Optional[pulumi.Input[str]] = None,
2485
- capacity_unit: Optional[pulumi.Input[str]] = None,
2486
- consider_od_pricing: Optional[pulumi.Input[bool]] = None,
2487
- cpu_credits: Optional[pulumi.Input[str]] = None,
2515
+ auto_healing: Optional[pulumi.Input[_builtins.bool]] = None,
2516
+ availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2517
+ block_devices_mode: Optional[pulumi.Input[_builtins.str]] = None,
2518
+ capacity_unit: Optional[pulumi.Input[_builtins.str]] = None,
2519
+ consider_od_pricing: Optional[pulumi.Input[_builtins.bool]] = None,
2520
+ cpu_credits: Optional[pulumi.Input[_builtins.str]] = None,
2488
2521
  cpu_options: Optional[pulumi.Input[Union['ElastigroupCpuOptionsArgs', 'ElastigroupCpuOptionsArgsDict']]] = None,
2489
- description: Optional[pulumi.Input[str]] = None,
2490
- desired_capacity: Optional[pulumi.Input[int]] = None,
2491
- draining_timeout: Optional[pulumi.Input[int]] = None,
2522
+ description: Optional[pulumi.Input[_builtins.str]] = None,
2523
+ desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
2524
+ draining_timeout: Optional[pulumi.Input[_builtins.int]] = None,
2492
2525
  ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupEbsBlockDeviceArgs', 'ElastigroupEbsBlockDeviceArgsDict']]]]] = None,
2493
- ebs_optimized: Optional[pulumi.Input[bool]] = None,
2494
- elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2495
- elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2496
- enable_monitoring: Optional[pulumi.Input[bool]] = None,
2526
+ ebs_optimized: Optional[pulumi.Input[_builtins.bool]] = None,
2527
+ elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2528
+ elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2529
+ enable_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
2497
2530
  ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupEphemeralBlockDeviceArgs', 'ElastigroupEphemeralBlockDeviceArgsDict']]]]] = None,
2498
- fallback_to_ondemand: Optional[pulumi.Input[bool]] = None,
2499
- health_check_grace_period: Optional[pulumi.Input[int]] = None,
2500
- health_check_type: Optional[pulumi.Input[str]] = None,
2501
- health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[int]] = None,
2502
- iam_instance_profile: Optional[pulumi.Input[str]] = None,
2503
- image_id: Optional[pulumi.Input[str]] = None,
2531
+ fallback_to_ondemand: Optional[pulumi.Input[_builtins.bool]] = None,
2532
+ health_check_grace_period: Optional[pulumi.Input[_builtins.int]] = None,
2533
+ health_check_type: Optional[pulumi.Input[_builtins.str]] = None,
2534
+ health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[_builtins.int]] = None,
2535
+ iam_instance_profile: Optional[pulumi.Input[_builtins.str]] = None,
2536
+ image_id: Optional[pulumi.Input[_builtins.str]] = None,
2504
2537
  images: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupImageArgs', 'ElastigroupImageArgsDict']]]]] = None,
2505
- immediate_od_recover_threshold: Optional[pulumi.Input[int]] = None,
2506
- instance_types_ondemand: Optional[pulumi.Input[str]] = None,
2507
- instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2508
- instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2538
+ immediate_od_recover_threshold: Optional[pulumi.Input[_builtins.int]] = None,
2539
+ instance_types_ondemand: Optional[pulumi.Input[_builtins.str]] = None,
2540
+ instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2541
+ instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2509
2542
  instance_types_weights: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupInstanceTypesWeightArgs', 'ElastigroupInstanceTypesWeightArgsDict']]]]] = None,
2510
2543
  integration_beanstalk: Optional[pulumi.Input[Union['ElastigroupIntegrationBeanstalkArgs', 'ElastigroupIntegrationBeanstalkArgsDict']]] = None,
2511
2544
  integration_codedeploy: Optional[pulumi.Input[Union['ElastigroupIntegrationCodedeployArgs', 'ElastigroupIntegrationCodedeployArgsDict']]] = None,
@@ -2518,51 +2551,52 @@ class Elastigroup(pulumi.CustomResource):
2518
2551
  integration_rancher: Optional[pulumi.Input[Union['ElastigroupIntegrationRancherArgs', 'ElastigroupIntegrationRancherArgsDict']]] = None,
2519
2552
  integration_route53: Optional[pulumi.Input[Union['ElastigroupIntegrationRoute53Args', 'ElastigroupIntegrationRoute53ArgsDict']]] = None,
2520
2553
  itfs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupItfArgs', 'ElastigroupItfArgsDict']]]]] = None,
2521
- key_name: Optional[pulumi.Input[str]] = None,
2522
- lifetime_period: Optional[pulumi.Input[str]] = None,
2554
+ key_name: Optional[pulumi.Input[_builtins.str]] = None,
2555
+ lifetime_period: Optional[pulumi.Input[_builtins.str]] = None,
2523
2556
  logging: Optional[pulumi.Input[Union['ElastigroupLoggingArgs', 'ElastigroupLoggingArgsDict']]] = None,
2524
- max_size: Optional[pulumi.Input[int]] = None,
2557
+ max_replacements_percentage: Optional[pulumi.Input[_builtins.int]] = None,
2558
+ max_size: Optional[pulumi.Input[_builtins.int]] = None,
2525
2559
  metadata_options: Optional[pulumi.Input[Union['ElastigroupMetadataOptionsArgs', 'ElastigroupMetadataOptionsArgsDict']]] = None,
2526
- min_size: Optional[pulumi.Input[int]] = None,
2527
- minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
2560
+ min_size: Optional[pulumi.Input[_builtins.int]] = None,
2561
+ minimum_instance_lifetime: Optional[pulumi.Input[_builtins.int]] = None,
2528
2562
  multiple_metrics: Optional[pulumi.Input[Union['ElastigroupMultipleMetricsArgs', 'ElastigroupMultipleMetricsArgsDict']]] = None,
2529
- name: Optional[pulumi.Input[str]] = None,
2563
+ name: Optional[pulumi.Input[_builtins.str]] = None,
2530
2564
  network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupNetworkInterfaceArgs', 'ElastigroupNetworkInterfaceArgsDict']]]]] = None,
2531
- on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2532
- ondemand_count: Optional[pulumi.Input[int]] = None,
2533
- orientation: Optional[pulumi.Input[str]] = None,
2534
- persist_block_devices: Optional[pulumi.Input[bool]] = None,
2535
- persist_private_ip: Optional[pulumi.Input[bool]] = None,
2536
- persist_root_device: Optional[pulumi.Input[bool]] = None,
2537
- placement_tenancy: Optional[pulumi.Input[str]] = None,
2538
- preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2539
- private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2540
- product: Optional[pulumi.Input[str]] = None,
2541
- region: Optional[pulumi.Input[str]] = None,
2565
+ on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2566
+ ondemand_count: Optional[pulumi.Input[_builtins.int]] = None,
2567
+ orientation: Optional[pulumi.Input[_builtins.str]] = None,
2568
+ persist_block_devices: Optional[pulumi.Input[_builtins.bool]] = None,
2569
+ persist_private_ip: Optional[pulumi.Input[_builtins.bool]] = None,
2570
+ persist_root_device: Optional[pulumi.Input[_builtins.bool]] = None,
2571
+ placement_tenancy: Optional[pulumi.Input[_builtins.str]] = None,
2572
+ preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2573
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2574
+ product: Optional[pulumi.Input[_builtins.str]] = None,
2575
+ region: Optional[pulumi.Input[_builtins.str]] = None,
2542
2576
  resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceRequirementArgs', 'ElastigroupResourceRequirementArgsDict']]]]] = None,
2543
2577
  resource_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceTagSpecificationArgs', 'ElastigroupResourceTagSpecificationArgsDict']]]]] = None,
2544
- restrict_single_az: Optional[pulumi.Input[bool]] = None,
2578
+ restrict_single_az: Optional[pulumi.Input[_builtins.bool]] = None,
2545
2579
  revert_to_spot: Optional[pulumi.Input[Union['ElastigroupRevertToSpotArgs', 'ElastigroupRevertToSpotArgsDict']]] = None,
2546
2580
  scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingDownPolicyArgs', 'ElastigroupScalingDownPolicyArgsDict']]]]] = None,
2547
2581
  scaling_strategies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingStrategyArgs', 'ElastigroupScalingStrategyArgsDict']]]]] = None,
2548
2582
  scaling_target_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingTargetPolicyArgs', 'ElastigroupScalingTargetPolicyArgsDict']]]]] = None,
2549
2583
  scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingUpPolicyArgs', 'ElastigroupScalingUpPolicyArgsDict']]]]] = None,
2550
2584
  scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScheduledTaskArgs', 'ElastigroupScheduledTaskArgsDict']]]]] = None,
2551
- security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2552
- shutdown_script: Optional[pulumi.Input[str]] = None,
2585
+ security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2586
+ shutdown_script: Optional[pulumi.Input[_builtins.str]] = None,
2553
2587
  signals: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupSignalArgs', 'ElastigroupSignalArgsDict']]]]] = None,
2554
- spot_percentage: Optional[pulumi.Input[int]] = None,
2588
+ spot_percentage: Optional[pulumi.Input[_builtins.int]] = None,
2555
2589
  stateful_deallocation: Optional[pulumi.Input[Union['ElastigroupStatefulDeallocationArgs', 'ElastigroupStatefulDeallocationArgsDict']]] = None,
2556
2590
  stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupStatefulInstanceActionArgs', 'ElastigroupStatefulInstanceActionArgsDict']]]]] = None,
2557
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2591
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2558
2592
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupTagArgs', 'ElastigroupTagArgsDict']]]]] = None,
2559
- target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2593
+ target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2560
2594
  update_policy: Optional[pulumi.Input[Union['ElastigroupUpdatePolicyArgs', 'ElastigroupUpdatePolicyArgsDict']]] = None,
2561
- user_data: Optional[pulumi.Input[str]] = None,
2562
- utilize_commitments: Optional[pulumi.Input[bool]] = None,
2563
- utilize_reserved_instances: Optional[pulumi.Input[bool]] = None,
2564
- wait_for_capacity: Optional[pulumi.Input[int]] = None,
2565
- wait_for_capacity_timeout: Optional[pulumi.Input[int]] = None,
2595
+ user_data: Optional[pulumi.Input[_builtins.str]] = None,
2596
+ utilize_commitments: Optional[pulumi.Input[_builtins.bool]] = None,
2597
+ utilize_reserved_instances: Optional[pulumi.Input[_builtins.bool]] = None,
2598
+ wait_for_capacity: Optional[pulumi.Input[_builtins.int]] = None,
2599
+ wait_for_capacity_timeout: Optional[pulumi.Input[_builtins.int]] = None,
2566
2600
  __props__=None):
2567
2601
  """
2568
2602
  Provides a Spotinst AWS group resource.
@@ -2641,6 +2675,7 @@ class Elastigroup(pulumi.CustomResource):
2641
2675
  fallback_to_ondemand=False,
2642
2676
  cpu_credits="unlimited",
2643
2677
  minimum_instance_lifetime=12,
2678
+ max_replacements_percentage=10,
2644
2679
  wait_for_capacity=5,
2645
2680
  wait_for_capacity_timeout=300,
2646
2681
  scaling_strategies=[{
@@ -2702,63 +2737,63 @@ class Elastigroup(pulumi.CustomResource):
2702
2737
 
2703
2738
  :param str resource_name: The name of the resource.
2704
2739
  :param pulumi.ResourceOptions opts: Options for the resource.
2705
- :param pulumi.Input[bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
2706
- :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
2740
+ :param pulumi.Input[_builtins.bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
2741
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
2707
2742
  Note: `availability_zones` naming syntax follows the convention `availability-zone:subnet:placement-group-name`. For example, to set an AZ in `us-east-1` with subnet `subnet-123456` and placement group `ClusterI03`, you would set:
2708
2743
  `availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]`
2709
- :param pulumi.Input[str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
2710
- :param pulumi.Input[str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
2744
+ :param pulumi.Input[_builtins.str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
2745
+ :param pulumi.Input[_builtins.str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
2711
2746
  :param pulumi.Input[Union['ElastigroupCpuOptionsArgs', 'ElastigroupCpuOptionsArgsDict']] cpu_options: The CPU options for the instances that are launched within the group:
2712
- :param pulumi.Input[str] description: The group description.
2713
- :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time.
2714
- :param pulumi.Input[int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
2715
- :param pulumi.Input[bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
2716
- :param pulumi.Input[Sequence[pulumi.Input[str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
2717
- :param pulumi.Input[bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
2718
- :param pulumi.Input[bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
2719
- :param pulumi.Input[int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
2720
- :param pulumi.Input[str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
2721
- :param pulumi.Input[int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
2722
- :param pulumi.Input[str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
2723
- :param pulumi.Input[str] image_id: The ID of the AMI used to launch the instance.
2747
+ :param pulumi.Input[_builtins.str] description: The group description.
2748
+ :param pulumi.Input[_builtins.int] desired_capacity: The desired number of instances the group should have at any time.
2749
+ :param pulumi.Input[_builtins.int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
2750
+ :param pulumi.Input[_builtins.bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
2751
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
2752
+ :param pulumi.Input[_builtins.bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
2753
+ :param pulumi.Input[_builtins.bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
2754
+ :param pulumi.Input[_builtins.int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
2755
+ :param pulumi.Input[_builtins.str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
2756
+ :param pulumi.Input[_builtins.int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
2757
+ :param pulumi.Input[_builtins.str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
2758
+ :param pulumi.Input[_builtins.str] image_id: The ID of the AMI used to launch the instance.
2724
2759
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupImageArgs', 'ElastigroupImageArgsDict']]]] images: An array of image objects.
2725
2760
  Note: Elastigroup can be configured with either imageId or images, but not both.
2726
- :param pulumi.Input[str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
2727
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
2728
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
2761
+ :param pulumi.Input[_builtins.str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
2762
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
2763
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
2729
2764
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupInstanceTypesWeightArgs', 'ElastigroupInstanceTypesWeightArgsDict']]]] instance_types_weights: List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
2730
- :param pulumi.Input[str] key_name: The key name that should be used for the instance.
2765
+ :param pulumi.Input[_builtins.str] key_name: The key name that should be used for the instance.
2731
2766
  :param pulumi.Input[Union['ElastigroupLoggingArgs', 'ElastigroupLoggingArgsDict']] logging: Logging configuration.
2732
- :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time.
2767
+ :param pulumi.Input[_builtins.int] max_size: The maximum number of instances the group should have at any time.
2733
2768
  :param pulumi.Input[Union['ElastigroupMetadataOptionsArgs', 'ElastigroupMetadataOptionsArgsDict']] metadata_options: Data that used to configure or manage the running instances:
2734
- :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time.
2735
- :param pulumi.Input[int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
2736
- :param pulumi.Input[str] name: The group name.
2737
- :param pulumi.Input[Sequence[pulumi.Input[str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
2738
- :param pulumi.Input[int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
2739
- :param pulumi.Input[str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
2740
- :param pulumi.Input[str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
2741
- :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
2769
+ :param pulumi.Input[_builtins.int] min_size: The minimum number of instances the group should have at any time.
2770
+ :param pulumi.Input[_builtins.int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
2771
+ :param pulumi.Input[_builtins.str] name: The group name.
2772
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
2773
+ :param pulumi.Input[_builtins.int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
2774
+ :param pulumi.Input[_builtins.str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
2775
+ :param pulumi.Input[_builtins.str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
2776
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
2742
2777
  Note: Must be a sublist of `availability_zones` and `orientation` value must not be `"equalAzDistribution"`.
2743
- :param pulumi.Input[str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
2778
+ :param pulumi.Input[_builtins.str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
2744
2779
  For EC2 Classic instances: `"SUSE Linux (Amazon VPC)"`, `"Windows (Amazon VPC)"`.
2745
- :param pulumi.Input[str] region: The AWS region your group will be created in.
2780
+ :param pulumi.Input[_builtins.str] region: The AWS region your group will be created in.
2746
2781
  Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
2747
2782
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceRequirementArgs', 'ElastigroupResourceRequirementArgsDict']]]] resource_requirements: Required instance attributes. Instance types will be selected based on these requirements.
2748
2783
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceTagSpecificationArgs', 'ElastigroupResourceTagSpecificationArgsDict']]]] resource_tag_specifications: User will specify which resources should be tagged with group tags.
2749
- :param pulumi.Input[bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
2784
+ :param pulumi.Input[_builtins.bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
2750
2785
  :param pulumi.Input[Union['ElastigroupRevertToSpotArgs', 'ElastigroupRevertToSpotArgsDict']] revert_to_spot: Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: `"never"`, `"always"`, `"timeWindow"`
2751
2786
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingStrategyArgs', 'ElastigroupScalingStrategyArgsDict']]]] scaling_strategies: Set termination policy.
2752
- :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of associated security group IDS.
2753
- :param pulumi.Input[str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
2754
- :param pulumi.Input[int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
2755
- :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of Strings of subnet identifiers.
2787
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] security_groups: A list of associated security group IDS.
2788
+ :param pulumi.Input[_builtins.str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
2789
+ :param pulumi.Input[_builtins.int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
2790
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] subnet_ids: List of Strings of subnet identifiers.
2756
2791
  Note: When this parameter is set, `availability_zones` should be left unused.
2757
2792
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupTagArgs', 'ElastigroupTagArgsDict']]]] tags: A key/value mapping of tags to assign to the resource.
2758
- :param pulumi.Input[str] user_data: The user data to provide when launching the instance.
2759
- :param pulumi.Input[bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
2760
- :param pulumi.Input[int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
2761
- :param pulumi.Input[int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
2793
+ :param pulumi.Input[_builtins.str] user_data: The user data to provide when launching the instance.
2794
+ :param pulumi.Input[_builtins.bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
2795
+ :param pulumi.Input[_builtins.int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
2796
+ :param pulumi.Input[_builtins.int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
2762
2797
  """
2763
2798
  ...
2764
2799
  @overload
@@ -2843,6 +2878,7 @@ class Elastigroup(pulumi.CustomResource):
2843
2878
  fallback_to_ondemand=False,
2844
2879
  cpu_credits="unlimited",
2845
2880
  minimum_instance_lifetime=12,
2881
+ max_replacements_percentage=10,
2846
2882
  wait_for_capacity=5,
2847
2883
  wait_for_capacity_timeout=300,
2848
2884
  scaling_strategies=[{
@@ -2917,33 +2953,33 @@ class Elastigroup(pulumi.CustomResource):
2917
2953
  def _internal_init(__self__,
2918
2954
  resource_name: str,
2919
2955
  opts: Optional[pulumi.ResourceOptions] = None,
2920
- auto_healing: Optional[pulumi.Input[bool]] = None,
2921
- availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2922
- block_devices_mode: Optional[pulumi.Input[str]] = None,
2923
- capacity_unit: Optional[pulumi.Input[str]] = None,
2924
- consider_od_pricing: Optional[pulumi.Input[bool]] = None,
2925
- cpu_credits: Optional[pulumi.Input[str]] = None,
2956
+ auto_healing: Optional[pulumi.Input[_builtins.bool]] = None,
2957
+ availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2958
+ block_devices_mode: Optional[pulumi.Input[_builtins.str]] = None,
2959
+ capacity_unit: Optional[pulumi.Input[_builtins.str]] = None,
2960
+ consider_od_pricing: Optional[pulumi.Input[_builtins.bool]] = None,
2961
+ cpu_credits: Optional[pulumi.Input[_builtins.str]] = None,
2926
2962
  cpu_options: Optional[pulumi.Input[Union['ElastigroupCpuOptionsArgs', 'ElastigroupCpuOptionsArgsDict']]] = None,
2927
- description: Optional[pulumi.Input[str]] = None,
2928
- desired_capacity: Optional[pulumi.Input[int]] = None,
2929
- draining_timeout: Optional[pulumi.Input[int]] = None,
2963
+ description: Optional[pulumi.Input[_builtins.str]] = None,
2964
+ desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
2965
+ draining_timeout: Optional[pulumi.Input[_builtins.int]] = None,
2930
2966
  ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupEbsBlockDeviceArgs', 'ElastigroupEbsBlockDeviceArgsDict']]]]] = None,
2931
- ebs_optimized: Optional[pulumi.Input[bool]] = None,
2932
- elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2933
- elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2934
- enable_monitoring: Optional[pulumi.Input[bool]] = None,
2967
+ ebs_optimized: Optional[pulumi.Input[_builtins.bool]] = None,
2968
+ elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2969
+ elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2970
+ enable_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
2935
2971
  ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupEphemeralBlockDeviceArgs', 'ElastigroupEphemeralBlockDeviceArgsDict']]]]] = None,
2936
- fallback_to_ondemand: Optional[pulumi.Input[bool]] = None,
2937
- health_check_grace_period: Optional[pulumi.Input[int]] = None,
2938
- health_check_type: Optional[pulumi.Input[str]] = None,
2939
- health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[int]] = None,
2940
- iam_instance_profile: Optional[pulumi.Input[str]] = None,
2941
- image_id: Optional[pulumi.Input[str]] = None,
2972
+ fallback_to_ondemand: Optional[pulumi.Input[_builtins.bool]] = None,
2973
+ health_check_grace_period: Optional[pulumi.Input[_builtins.int]] = None,
2974
+ health_check_type: Optional[pulumi.Input[_builtins.str]] = None,
2975
+ health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[_builtins.int]] = None,
2976
+ iam_instance_profile: Optional[pulumi.Input[_builtins.str]] = None,
2977
+ image_id: Optional[pulumi.Input[_builtins.str]] = None,
2942
2978
  images: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupImageArgs', 'ElastigroupImageArgsDict']]]]] = None,
2943
- immediate_od_recover_threshold: Optional[pulumi.Input[int]] = None,
2944
- instance_types_ondemand: Optional[pulumi.Input[str]] = None,
2945
- instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2946
- instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2979
+ immediate_od_recover_threshold: Optional[pulumi.Input[_builtins.int]] = None,
2980
+ instance_types_ondemand: Optional[pulumi.Input[_builtins.str]] = None,
2981
+ instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2982
+ instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2947
2983
  instance_types_weights: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupInstanceTypesWeightArgs', 'ElastigroupInstanceTypesWeightArgsDict']]]]] = None,
2948
2984
  integration_beanstalk: Optional[pulumi.Input[Union['ElastigroupIntegrationBeanstalkArgs', 'ElastigroupIntegrationBeanstalkArgsDict']]] = None,
2949
2985
  integration_codedeploy: Optional[pulumi.Input[Union['ElastigroupIntegrationCodedeployArgs', 'ElastigroupIntegrationCodedeployArgsDict']]] = None,
@@ -2956,51 +2992,52 @@ class Elastigroup(pulumi.CustomResource):
2956
2992
  integration_rancher: Optional[pulumi.Input[Union['ElastigroupIntegrationRancherArgs', 'ElastigroupIntegrationRancherArgsDict']]] = None,
2957
2993
  integration_route53: Optional[pulumi.Input[Union['ElastigroupIntegrationRoute53Args', 'ElastigroupIntegrationRoute53ArgsDict']]] = None,
2958
2994
  itfs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupItfArgs', 'ElastigroupItfArgsDict']]]]] = None,
2959
- key_name: Optional[pulumi.Input[str]] = None,
2960
- lifetime_period: Optional[pulumi.Input[str]] = None,
2995
+ key_name: Optional[pulumi.Input[_builtins.str]] = None,
2996
+ lifetime_period: Optional[pulumi.Input[_builtins.str]] = None,
2961
2997
  logging: Optional[pulumi.Input[Union['ElastigroupLoggingArgs', 'ElastigroupLoggingArgsDict']]] = None,
2962
- max_size: Optional[pulumi.Input[int]] = None,
2998
+ max_replacements_percentage: Optional[pulumi.Input[_builtins.int]] = None,
2999
+ max_size: Optional[pulumi.Input[_builtins.int]] = None,
2963
3000
  metadata_options: Optional[pulumi.Input[Union['ElastigroupMetadataOptionsArgs', 'ElastigroupMetadataOptionsArgsDict']]] = None,
2964
- min_size: Optional[pulumi.Input[int]] = None,
2965
- minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
3001
+ min_size: Optional[pulumi.Input[_builtins.int]] = None,
3002
+ minimum_instance_lifetime: Optional[pulumi.Input[_builtins.int]] = None,
2966
3003
  multiple_metrics: Optional[pulumi.Input[Union['ElastigroupMultipleMetricsArgs', 'ElastigroupMultipleMetricsArgsDict']]] = None,
2967
- name: Optional[pulumi.Input[str]] = None,
3004
+ name: Optional[pulumi.Input[_builtins.str]] = None,
2968
3005
  network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupNetworkInterfaceArgs', 'ElastigroupNetworkInterfaceArgsDict']]]]] = None,
2969
- on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2970
- ondemand_count: Optional[pulumi.Input[int]] = None,
2971
- orientation: Optional[pulumi.Input[str]] = None,
2972
- persist_block_devices: Optional[pulumi.Input[bool]] = None,
2973
- persist_private_ip: Optional[pulumi.Input[bool]] = None,
2974
- persist_root_device: Optional[pulumi.Input[bool]] = None,
2975
- placement_tenancy: Optional[pulumi.Input[str]] = None,
2976
- preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2977
- private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2978
- product: Optional[pulumi.Input[str]] = None,
2979
- region: Optional[pulumi.Input[str]] = None,
3006
+ on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3007
+ ondemand_count: Optional[pulumi.Input[_builtins.int]] = None,
3008
+ orientation: Optional[pulumi.Input[_builtins.str]] = None,
3009
+ persist_block_devices: Optional[pulumi.Input[_builtins.bool]] = None,
3010
+ persist_private_ip: Optional[pulumi.Input[_builtins.bool]] = None,
3011
+ persist_root_device: Optional[pulumi.Input[_builtins.bool]] = None,
3012
+ placement_tenancy: Optional[pulumi.Input[_builtins.str]] = None,
3013
+ preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3014
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3015
+ product: Optional[pulumi.Input[_builtins.str]] = None,
3016
+ region: Optional[pulumi.Input[_builtins.str]] = None,
2980
3017
  resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceRequirementArgs', 'ElastigroupResourceRequirementArgsDict']]]]] = None,
2981
3018
  resource_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceTagSpecificationArgs', 'ElastigroupResourceTagSpecificationArgsDict']]]]] = None,
2982
- restrict_single_az: Optional[pulumi.Input[bool]] = None,
3019
+ restrict_single_az: Optional[pulumi.Input[_builtins.bool]] = None,
2983
3020
  revert_to_spot: Optional[pulumi.Input[Union['ElastigroupRevertToSpotArgs', 'ElastigroupRevertToSpotArgsDict']]] = None,
2984
3021
  scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingDownPolicyArgs', 'ElastigroupScalingDownPolicyArgsDict']]]]] = None,
2985
3022
  scaling_strategies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingStrategyArgs', 'ElastigroupScalingStrategyArgsDict']]]]] = None,
2986
3023
  scaling_target_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingTargetPolicyArgs', 'ElastigroupScalingTargetPolicyArgsDict']]]]] = None,
2987
3024
  scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingUpPolicyArgs', 'ElastigroupScalingUpPolicyArgsDict']]]]] = None,
2988
3025
  scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScheduledTaskArgs', 'ElastigroupScheduledTaskArgsDict']]]]] = None,
2989
- security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
2990
- shutdown_script: Optional[pulumi.Input[str]] = None,
3026
+ security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3027
+ shutdown_script: Optional[pulumi.Input[_builtins.str]] = None,
2991
3028
  signals: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupSignalArgs', 'ElastigroupSignalArgsDict']]]]] = None,
2992
- spot_percentage: Optional[pulumi.Input[int]] = None,
3029
+ spot_percentage: Optional[pulumi.Input[_builtins.int]] = None,
2993
3030
  stateful_deallocation: Optional[pulumi.Input[Union['ElastigroupStatefulDeallocationArgs', 'ElastigroupStatefulDeallocationArgsDict']]] = None,
2994
3031
  stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupStatefulInstanceActionArgs', 'ElastigroupStatefulInstanceActionArgsDict']]]]] = None,
2995
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3032
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2996
3033
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupTagArgs', 'ElastigroupTagArgsDict']]]]] = None,
2997
- target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3034
+ target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
2998
3035
  update_policy: Optional[pulumi.Input[Union['ElastigroupUpdatePolicyArgs', 'ElastigroupUpdatePolicyArgsDict']]] = None,
2999
- user_data: Optional[pulumi.Input[str]] = None,
3000
- utilize_commitments: Optional[pulumi.Input[bool]] = None,
3001
- utilize_reserved_instances: Optional[pulumi.Input[bool]] = None,
3002
- wait_for_capacity: Optional[pulumi.Input[int]] = None,
3003
- wait_for_capacity_timeout: Optional[pulumi.Input[int]] = None,
3036
+ user_data: Optional[pulumi.Input[_builtins.str]] = None,
3037
+ utilize_commitments: Optional[pulumi.Input[_builtins.bool]] = None,
3038
+ utilize_reserved_instances: Optional[pulumi.Input[_builtins.bool]] = None,
3039
+ wait_for_capacity: Optional[pulumi.Input[_builtins.int]] = None,
3040
+ wait_for_capacity_timeout: Optional[pulumi.Input[_builtins.int]] = None,
3004
3041
  __props__=None):
3005
3042
  opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
3006
3043
  if not isinstance(opts, pulumi.ResourceOptions):
@@ -3054,6 +3091,7 @@ class Elastigroup(pulumi.CustomResource):
3054
3091
  __props__.__dict__["key_name"] = key_name
3055
3092
  __props__.__dict__["lifetime_period"] = lifetime_period
3056
3093
  __props__.__dict__["logging"] = logging
3094
+ __props__.__dict__["max_replacements_percentage"] = max_replacements_percentage
3057
3095
  __props__.__dict__["max_size"] = max_size
3058
3096
  __props__.__dict__["metadata_options"] = metadata_options
3059
3097
  __props__.__dict__["min_size"] = min_size
@@ -3112,33 +3150,33 @@ class Elastigroup(pulumi.CustomResource):
3112
3150
  def get(resource_name: str,
3113
3151
  id: pulumi.Input[str],
3114
3152
  opts: Optional[pulumi.ResourceOptions] = None,
3115
- auto_healing: Optional[pulumi.Input[bool]] = None,
3116
- availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3117
- block_devices_mode: Optional[pulumi.Input[str]] = None,
3118
- capacity_unit: Optional[pulumi.Input[str]] = None,
3119
- consider_od_pricing: Optional[pulumi.Input[bool]] = None,
3120
- cpu_credits: Optional[pulumi.Input[str]] = None,
3153
+ auto_healing: Optional[pulumi.Input[_builtins.bool]] = None,
3154
+ availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3155
+ block_devices_mode: Optional[pulumi.Input[_builtins.str]] = None,
3156
+ capacity_unit: Optional[pulumi.Input[_builtins.str]] = None,
3157
+ consider_od_pricing: Optional[pulumi.Input[_builtins.bool]] = None,
3158
+ cpu_credits: Optional[pulumi.Input[_builtins.str]] = None,
3121
3159
  cpu_options: Optional[pulumi.Input[Union['ElastigroupCpuOptionsArgs', 'ElastigroupCpuOptionsArgsDict']]] = None,
3122
- description: Optional[pulumi.Input[str]] = None,
3123
- desired_capacity: Optional[pulumi.Input[int]] = None,
3124
- draining_timeout: Optional[pulumi.Input[int]] = None,
3160
+ description: Optional[pulumi.Input[_builtins.str]] = None,
3161
+ desired_capacity: Optional[pulumi.Input[_builtins.int]] = None,
3162
+ draining_timeout: Optional[pulumi.Input[_builtins.int]] = None,
3125
3163
  ebs_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupEbsBlockDeviceArgs', 'ElastigroupEbsBlockDeviceArgsDict']]]]] = None,
3126
- ebs_optimized: Optional[pulumi.Input[bool]] = None,
3127
- elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3128
- elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3129
- enable_monitoring: Optional[pulumi.Input[bool]] = None,
3164
+ ebs_optimized: Optional[pulumi.Input[_builtins.bool]] = None,
3165
+ elastic_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3166
+ elastic_load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3167
+ enable_monitoring: Optional[pulumi.Input[_builtins.bool]] = None,
3130
3168
  ephemeral_block_devices: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupEphemeralBlockDeviceArgs', 'ElastigroupEphemeralBlockDeviceArgsDict']]]]] = None,
3131
- fallback_to_ondemand: Optional[pulumi.Input[bool]] = None,
3132
- health_check_grace_period: Optional[pulumi.Input[int]] = None,
3133
- health_check_type: Optional[pulumi.Input[str]] = None,
3134
- health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[int]] = None,
3135
- iam_instance_profile: Optional[pulumi.Input[str]] = None,
3136
- image_id: Optional[pulumi.Input[str]] = None,
3169
+ fallback_to_ondemand: Optional[pulumi.Input[_builtins.bool]] = None,
3170
+ health_check_grace_period: Optional[pulumi.Input[_builtins.int]] = None,
3171
+ health_check_type: Optional[pulumi.Input[_builtins.str]] = None,
3172
+ health_check_unhealthy_duration_before_replacement: Optional[pulumi.Input[_builtins.int]] = None,
3173
+ iam_instance_profile: Optional[pulumi.Input[_builtins.str]] = None,
3174
+ image_id: Optional[pulumi.Input[_builtins.str]] = None,
3137
3175
  images: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupImageArgs', 'ElastigroupImageArgsDict']]]]] = None,
3138
- immediate_od_recover_threshold: Optional[pulumi.Input[int]] = None,
3139
- instance_types_ondemand: Optional[pulumi.Input[str]] = None,
3140
- instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3141
- instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3176
+ immediate_od_recover_threshold: Optional[pulumi.Input[_builtins.int]] = None,
3177
+ instance_types_ondemand: Optional[pulumi.Input[_builtins.str]] = None,
3178
+ instance_types_preferred_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3179
+ instance_types_spots: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3142
3180
  instance_types_weights: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupInstanceTypesWeightArgs', 'ElastigroupInstanceTypesWeightArgsDict']]]]] = None,
3143
3181
  integration_beanstalk: Optional[pulumi.Input[Union['ElastigroupIntegrationBeanstalkArgs', 'ElastigroupIntegrationBeanstalkArgsDict']]] = None,
3144
3182
  integration_codedeploy: Optional[pulumi.Input[Union['ElastigroupIntegrationCodedeployArgs', 'ElastigroupIntegrationCodedeployArgsDict']]] = None,
@@ -3151,51 +3189,52 @@ class Elastigroup(pulumi.CustomResource):
3151
3189
  integration_rancher: Optional[pulumi.Input[Union['ElastigroupIntegrationRancherArgs', 'ElastigroupIntegrationRancherArgsDict']]] = None,
3152
3190
  integration_route53: Optional[pulumi.Input[Union['ElastigroupIntegrationRoute53Args', 'ElastigroupIntegrationRoute53ArgsDict']]] = None,
3153
3191
  itfs: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupItfArgs', 'ElastigroupItfArgsDict']]]]] = None,
3154
- key_name: Optional[pulumi.Input[str]] = None,
3155
- lifetime_period: Optional[pulumi.Input[str]] = None,
3192
+ key_name: Optional[pulumi.Input[_builtins.str]] = None,
3193
+ lifetime_period: Optional[pulumi.Input[_builtins.str]] = None,
3156
3194
  logging: Optional[pulumi.Input[Union['ElastigroupLoggingArgs', 'ElastigroupLoggingArgsDict']]] = None,
3157
- max_size: Optional[pulumi.Input[int]] = None,
3195
+ max_replacements_percentage: Optional[pulumi.Input[_builtins.int]] = None,
3196
+ max_size: Optional[pulumi.Input[_builtins.int]] = None,
3158
3197
  metadata_options: Optional[pulumi.Input[Union['ElastigroupMetadataOptionsArgs', 'ElastigroupMetadataOptionsArgsDict']]] = None,
3159
- min_size: Optional[pulumi.Input[int]] = None,
3160
- minimum_instance_lifetime: Optional[pulumi.Input[int]] = None,
3198
+ min_size: Optional[pulumi.Input[_builtins.int]] = None,
3199
+ minimum_instance_lifetime: Optional[pulumi.Input[_builtins.int]] = None,
3161
3200
  multiple_metrics: Optional[pulumi.Input[Union['ElastigroupMultipleMetricsArgs', 'ElastigroupMultipleMetricsArgsDict']]] = None,
3162
- name: Optional[pulumi.Input[str]] = None,
3201
+ name: Optional[pulumi.Input[_builtins.str]] = None,
3163
3202
  network_interfaces: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupNetworkInterfaceArgs', 'ElastigroupNetworkInterfaceArgsDict']]]]] = None,
3164
- on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3165
- ondemand_count: Optional[pulumi.Input[int]] = None,
3166
- orientation: Optional[pulumi.Input[str]] = None,
3167
- persist_block_devices: Optional[pulumi.Input[bool]] = None,
3168
- persist_private_ip: Optional[pulumi.Input[bool]] = None,
3169
- persist_root_device: Optional[pulumi.Input[bool]] = None,
3170
- placement_tenancy: Optional[pulumi.Input[str]] = None,
3171
- preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3172
- private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3173
- product: Optional[pulumi.Input[str]] = None,
3174
- region: Optional[pulumi.Input[str]] = None,
3203
+ on_demand_types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3204
+ ondemand_count: Optional[pulumi.Input[_builtins.int]] = None,
3205
+ orientation: Optional[pulumi.Input[_builtins.str]] = None,
3206
+ persist_block_devices: Optional[pulumi.Input[_builtins.bool]] = None,
3207
+ persist_private_ip: Optional[pulumi.Input[_builtins.bool]] = None,
3208
+ persist_root_device: Optional[pulumi.Input[_builtins.bool]] = None,
3209
+ placement_tenancy: Optional[pulumi.Input[_builtins.str]] = None,
3210
+ preferred_availability_zones: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3211
+ private_ips: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3212
+ product: Optional[pulumi.Input[_builtins.str]] = None,
3213
+ region: Optional[pulumi.Input[_builtins.str]] = None,
3175
3214
  resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceRequirementArgs', 'ElastigroupResourceRequirementArgsDict']]]]] = None,
3176
3215
  resource_tag_specifications: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceTagSpecificationArgs', 'ElastigroupResourceTagSpecificationArgsDict']]]]] = None,
3177
- restrict_single_az: Optional[pulumi.Input[bool]] = None,
3216
+ restrict_single_az: Optional[pulumi.Input[_builtins.bool]] = None,
3178
3217
  revert_to_spot: Optional[pulumi.Input[Union['ElastigroupRevertToSpotArgs', 'ElastigroupRevertToSpotArgsDict']]] = None,
3179
3218
  scaling_down_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingDownPolicyArgs', 'ElastigroupScalingDownPolicyArgsDict']]]]] = None,
3180
3219
  scaling_strategies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingStrategyArgs', 'ElastigroupScalingStrategyArgsDict']]]]] = None,
3181
3220
  scaling_target_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingTargetPolicyArgs', 'ElastigroupScalingTargetPolicyArgsDict']]]]] = None,
3182
3221
  scaling_up_policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingUpPolicyArgs', 'ElastigroupScalingUpPolicyArgsDict']]]]] = None,
3183
3222
  scheduled_tasks: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScheduledTaskArgs', 'ElastigroupScheduledTaskArgsDict']]]]] = None,
3184
- security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3185
- shutdown_script: Optional[pulumi.Input[str]] = None,
3223
+ security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3224
+ shutdown_script: Optional[pulumi.Input[_builtins.str]] = None,
3186
3225
  signals: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupSignalArgs', 'ElastigroupSignalArgsDict']]]]] = None,
3187
- spot_percentage: Optional[pulumi.Input[int]] = None,
3226
+ spot_percentage: Optional[pulumi.Input[_builtins.int]] = None,
3188
3227
  stateful_deallocation: Optional[pulumi.Input[Union['ElastigroupStatefulDeallocationArgs', 'ElastigroupStatefulDeallocationArgsDict']]] = None,
3189
3228
  stateful_instance_actions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupStatefulInstanceActionArgs', 'ElastigroupStatefulInstanceActionArgsDict']]]]] = None,
3190
- subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3229
+ subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3191
3230
  tags: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupTagArgs', 'ElastigroupTagArgsDict']]]]] = None,
3192
- target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
3231
+ target_group_arns: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3193
3232
  update_policy: Optional[pulumi.Input[Union['ElastigroupUpdatePolicyArgs', 'ElastigroupUpdatePolicyArgsDict']]] = None,
3194
- user_data: Optional[pulumi.Input[str]] = None,
3195
- utilize_commitments: Optional[pulumi.Input[bool]] = None,
3196
- utilize_reserved_instances: Optional[pulumi.Input[bool]] = None,
3197
- wait_for_capacity: Optional[pulumi.Input[int]] = None,
3198
- wait_for_capacity_timeout: Optional[pulumi.Input[int]] = None) -> 'Elastigroup':
3233
+ user_data: Optional[pulumi.Input[_builtins.str]] = None,
3234
+ utilize_commitments: Optional[pulumi.Input[_builtins.bool]] = None,
3235
+ utilize_reserved_instances: Optional[pulumi.Input[_builtins.bool]] = None,
3236
+ wait_for_capacity: Optional[pulumi.Input[_builtins.int]] = None,
3237
+ wait_for_capacity_timeout: Optional[pulumi.Input[_builtins.int]] = None) -> 'Elastigroup':
3199
3238
  """
3200
3239
  Get an existing Elastigroup resource's state with the given name, id, and optional extra
3201
3240
  properties used to qualify the lookup.
@@ -3203,63 +3242,63 @@ class Elastigroup(pulumi.CustomResource):
3203
3242
  :param str resource_name: The unique name of the resulting resource.
3204
3243
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
3205
3244
  :param pulumi.ResourceOptions opts: Options for the resource.
3206
- :param pulumi.Input[bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
3207
- :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
3245
+ :param pulumi.Input[_builtins.bool] auto_healing: Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
3246
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] availability_zones: List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
3208
3247
  Note: `availability_zones` naming syntax follows the convention `availability-zone:subnet:placement-group-name`. For example, to set an AZ in `us-east-1` with subnet `subnet-123456` and placement group `ClusterI03`, you would set:
3209
3248
  `availability_zones = ["us-east-1a:subnet-123456:ClusterI03"]`
3210
- :param pulumi.Input[str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
3211
- :param pulumi.Input[str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
3249
+ :param pulumi.Input[_builtins.str] capacity_unit: The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
3250
+ :param pulumi.Input[_builtins.str] cpu_credits: Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
3212
3251
  :param pulumi.Input[Union['ElastigroupCpuOptionsArgs', 'ElastigroupCpuOptionsArgsDict']] cpu_options: The CPU options for the instances that are launched within the group:
3213
- :param pulumi.Input[str] description: The group description.
3214
- :param pulumi.Input[int] desired_capacity: The desired number of instances the group should have at any time.
3215
- :param pulumi.Input[int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
3216
- :param pulumi.Input[bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
3217
- :param pulumi.Input[Sequence[pulumi.Input[str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
3218
- :param pulumi.Input[bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
3219
- :param pulumi.Input[bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
3220
- :param pulumi.Input[int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
3221
- :param pulumi.Input[str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
3222
- :param pulumi.Input[int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
3223
- :param pulumi.Input[str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
3224
- :param pulumi.Input[str] image_id: The ID of the AMI used to launch the instance.
3252
+ :param pulumi.Input[_builtins.str] description: The group description.
3253
+ :param pulumi.Input[_builtins.int] desired_capacity: The desired number of instances the group should have at any time.
3254
+ :param pulumi.Input[_builtins.int] draining_timeout: The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
3255
+ :param pulumi.Input[_builtins.bool] ebs_optimized: Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
3256
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] elastic_ips: A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
3257
+ :param pulumi.Input[_builtins.bool] enable_monitoring: Indicates whether monitoring is enabled for the instance.
3258
+ :param pulumi.Input[_builtins.bool] fallback_to_ondemand: In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
3259
+ :param pulumi.Input[_builtins.int] health_check_grace_period: The amount of time, in seconds, after the instance has launched to starts and check its health.
3260
+ :param pulumi.Input[_builtins.str] health_check_type: The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
3261
+ :param pulumi.Input[_builtins.int] health_check_unhealthy_duration_before_replacement: The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
3262
+ :param pulumi.Input[_builtins.str] iam_instance_profile: The ARN or name of an IAM instance profile to associate with launched instances.
3263
+ :param pulumi.Input[_builtins.str] image_id: The ID of the AMI used to launch the instance.
3225
3264
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupImageArgs', 'ElastigroupImageArgsDict']]]] images: An array of image objects.
3226
3265
  Note: Elastigroup can be configured with either imageId or images, but not both.
3227
- :param pulumi.Input[str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
3228
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
3229
- :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
3266
+ :param pulumi.Input[_builtins.str] instance_types_ondemand: The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
3267
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_preferred_spots: Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
3268
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] instance_types_spots: One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
3230
3269
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupInstanceTypesWeightArgs', 'ElastigroupInstanceTypesWeightArgsDict']]]] instance_types_weights: List of weights per instance type for weighted groups. Each object in the list should have the following attributes:
3231
- :param pulumi.Input[str] key_name: The key name that should be used for the instance.
3270
+ :param pulumi.Input[_builtins.str] key_name: The key name that should be used for the instance.
3232
3271
  :param pulumi.Input[Union['ElastigroupLoggingArgs', 'ElastigroupLoggingArgsDict']] logging: Logging configuration.
3233
- :param pulumi.Input[int] max_size: The maximum number of instances the group should have at any time.
3272
+ :param pulumi.Input[_builtins.int] max_size: The maximum number of instances the group should have at any time.
3234
3273
  :param pulumi.Input[Union['ElastigroupMetadataOptionsArgs', 'ElastigroupMetadataOptionsArgsDict']] metadata_options: Data that used to configure or manage the running instances:
3235
- :param pulumi.Input[int] min_size: The minimum number of instances the group should have at any time.
3236
- :param pulumi.Input[int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
3237
- :param pulumi.Input[str] name: The group name.
3238
- :param pulumi.Input[Sequence[pulumi.Input[str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
3239
- :param pulumi.Input[int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
3240
- :param pulumi.Input[str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
3241
- :param pulumi.Input[str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
3242
- :param pulumi.Input[Sequence[pulumi.Input[str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
3274
+ :param pulumi.Input[_builtins.int] min_size: The minimum number of instances the group should have at any time.
3275
+ :param pulumi.Input[_builtins.int] minimum_instance_lifetime: Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
3276
+ :param pulumi.Input[_builtins.str] name: The group name.
3277
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] on_demand_types: Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
3278
+ :param pulumi.Input[_builtins.int] ondemand_count: Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
3279
+ :param pulumi.Input[_builtins.str] orientation: Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
3280
+ :param pulumi.Input[_builtins.str] placement_tenancy: Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
3281
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_availability_zones: The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
3243
3282
  Note: Must be a sublist of `availability_zones` and `orientation` value must not be `"equalAzDistribution"`.
3244
- :param pulumi.Input[str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
3283
+ :param pulumi.Input[_builtins.str] product: Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
3245
3284
  For EC2 Classic instances: `"SUSE Linux (Amazon VPC)"`, `"Windows (Amazon VPC)"`.
3246
- :param pulumi.Input[str] region: The AWS region your group will be created in.
3285
+ :param pulumi.Input[_builtins.str] region: The AWS region your group will be created in.
3247
3286
  Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
3248
3287
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceRequirementArgs', 'ElastigroupResourceRequirementArgsDict']]]] resource_requirements: Required instance attributes. Instance types will be selected based on these requirements.
3249
3288
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupResourceTagSpecificationArgs', 'ElastigroupResourceTagSpecificationArgsDict']]]] resource_tag_specifications: User will specify which resources should be tagged with group tags.
3250
- :param pulumi.Input[bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
3289
+ :param pulumi.Input[_builtins.bool] restrict_single_az: Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
3251
3290
  :param pulumi.Input[Union['ElastigroupRevertToSpotArgs', 'ElastigroupRevertToSpotArgsDict']] revert_to_spot: Hold settings for strategy correction – replacing On-Demand for Spot instances. Supported Values: `"never"`, `"always"`, `"timeWindow"`
3252
3291
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupScalingStrategyArgs', 'ElastigroupScalingStrategyArgsDict']]]] scaling_strategies: Set termination policy.
3253
- :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of associated security group IDS.
3254
- :param pulumi.Input[str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
3255
- :param pulumi.Input[int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
3256
- :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: List of Strings of subnet identifiers.
3292
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] security_groups: A list of associated security group IDS.
3293
+ :param pulumi.Input[_builtins.str] shutdown_script: The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
3294
+ :param pulumi.Input[_builtins.int] spot_percentage: The percentage of Spot instances that would spin up from the `desired_capacity` number.
3295
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] subnet_ids: List of Strings of subnet identifiers.
3257
3296
  Note: When this parameter is set, `availability_zones` should be left unused.
3258
3297
  :param pulumi.Input[Sequence[pulumi.Input[Union['ElastigroupTagArgs', 'ElastigroupTagArgsDict']]]] tags: A key/value mapping of tags to assign to the resource.
3259
- :param pulumi.Input[str] user_data: The user data to provide when launching the instance.
3260
- :param pulumi.Input[bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
3261
- :param pulumi.Input[int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
3262
- :param pulumi.Input[int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
3298
+ :param pulumi.Input[_builtins.str] user_data: The user data to provide when launching the instance.
3299
+ :param pulumi.Input[_builtins.bool] utilize_reserved_instances: In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
3300
+ :param pulumi.Input[_builtins.int] wait_for_capacity: Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
3301
+ :param pulumi.Input[_builtins.int] wait_for_capacity_timeout: Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
3263
3302
  """
3264
3303
  opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
3265
3304
 
@@ -3307,6 +3346,7 @@ class Elastigroup(pulumi.CustomResource):
3307
3346
  __props__.__dict__["key_name"] = key_name
3308
3347
  __props__.__dict__["lifetime_period"] = lifetime_period
3309
3348
  __props__.__dict__["logging"] = logging
3349
+ __props__.__dict__["max_replacements_percentage"] = max_replacements_percentage
3310
3350
  __props__.__dict__["max_size"] = max_size
3311
3351
  __props__.__dict__["metadata_options"] = metadata_options
3312
3352
  __props__.__dict__["min_size"] = min_size
@@ -3351,17 +3391,17 @@ class Elastigroup(pulumi.CustomResource):
3351
3391
  __props__.__dict__["wait_for_capacity_timeout"] = wait_for_capacity_timeout
3352
3392
  return Elastigroup(resource_name, opts=opts, __props__=__props__)
3353
3393
 
3354
- @property
3394
+ @_builtins.property
3355
3395
  @pulumi.getter(name="autoHealing")
3356
- def auto_healing(self) -> pulumi.Output[Optional[bool]]:
3396
+ def auto_healing(self) -> pulumi.Output[Optional[_builtins.bool]]:
3357
3397
  """
3358
3398
  Auto-healing replacement won't be triggered if this parameter value is "false". In a case of a stateful group - no recycling will start if this parameter value is "false".
3359
3399
  """
3360
3400
  return pulumi.get(self, "auto_healing")
3361
3401
 
3362
- @property
3402
+ @_builtins.property
3363
3403
  @pulumi.getter(name="availabilityZones")
3364
- def availability_zones(self) -> pulumi.Output[Optional[Sequence[str]]]:
3404
+ def availability_zones(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3365
3405
  """
3366
3406
  List of Strings of availability zones. When this parameter is set, `subnet_ids` should be left unused.
3367
3407
  Note: `availability_zones` naming syntax follows the convention `availability-zone:subnet:placement-group-name`. For example, to set an AZ in `us-east-1` with subnet `subnet-123456` and placement group `ClusterI03`, you would set:
@@ -3369,33 +3409,33 @@ class Elastigroup(pulumi.CustomResource):
3369
3409
  """
3370
3410
  return pulumi.get(self, "availability_zones")
3371
3411
 
3372
- @property
3412
+ @_builtins.property
3373
3413
  @pulumi.getter(name="blockDevicesMode")
3374
- def block_devices_mode(self) -> pulumi.Output[Optional[str]]:
3414
+ def block_devices_mode(self) -> pulumi.Output[Optional[_builtins.str]]:
3375
3415
  return pulumi.get(self, "block_devices_mode")
3376
3416
 
3377
- @property
3417
+ @_builtins.property
3378
3418
  @pulumi.getter(name="capacityUnit")
3379
- def capacity_unit(self) -> pulumi.Output[str]:
3419
+ def capacity_unit(self) -> pulumi.Output[_builtins.str]:
3380
3420
  """
3381
3421
  The capacity unit to launch instances by. If not specified, when choosing the weight unit, each instance will weight as the number of its vCPUs. Valid values: `instance`, `weight`.
3382
3422
  """
3383
3423
  return pulumi.get(self, "capacity_unit")
3384
3424
 
3385
- @property
3425
+ @_builtins.property
3386
3426
  @pulumi.getter(name="considerOdPricing")
3387
- def consider_od_pricing(self) -> pulumi.Output[Optional[bool]]:
3427
+ def consider_od_pricing(self) -> pulumi.Output[Optional[_builtins.bool]]:
3388
3428
  return pulumi.get(self, "consider_od_pricing")
3389
3429
 
3390
- @property
3430
+ @_builtins.property
3391
3431
  @pulumi.getter(name="cpuCredits")
3392
- def cpu_credits(self) -> pulumi.Output[Optional[str]]:
3432
+ def cpu_credits(self) -> pulumi.Output[Optional[_builtins.str]]:
3393
3433
  """
3394
3434
  Controls how T3 instances are launched. Valid values: `standard`, `unlimited`.
3395
3435
  """
3396
3436
  return pulumi.get(self, "cpu_credits")
3397
3437
 
3398
- @property
3438
+ @_builtins.property
3399
3439
  @pulumi.getter(name="cpuOptions")
3400
3440
  def cpu_options(self) -> pulumi.Output[Optional['outputs.ElastigroupCpuOptions']]:
3401
3441
  """
@@ -3403,118 +3443,118 @@ class Elastigroup(pulumi.CustomResource):
3403
3443
  """
3404
3444
  return pulumi.get(self, "cpu_options")
3405
3445
 
3406
- @property
3446
+ @_builtins.property
3407
3447
  @pulumi.getter
3408
- def description(self) -> pulumi.Output[Optional[str]]:
3448
+ def description(self) -> pulumi.Output[Optional[_builtins.str]]:
3409
3449
  """
3410
3450
  The group description.
3411
3451
  """
3412
3452
  return pulumi.get(self, "description")
3413
3453
 
3414
- @property
3454
+ @_builtins.property
3415
3455
  @pulumi.getter(name="desiredCapacity")
3416
- def desired_capacity(self) -> pulumi.Output[Optional[int]]:
3456
+ def desired_capacity(self) -> pulumi.Output[Optional[_builtins.int]]:
3417
3457
  """
3418
3458
  The desired number of instances the group should have at any time.
3419
3459
  """
3420
3460
  return pulumi.get(self, "desired_capacity")
3421
3461
 
3422
- @property
3462
+ @_builtins.property
3423
3463
  @pulumi.getter(name="drainingTimeout")
3424
- def draining_timeout(self) -> pulumi.Output[int]:
3464
+ def draining_timeout(self) -> pulumi.Output[_builtins.int]:
3425
3465
  """
3426
3466
  The time in seconds, the instance is allowed to run while detached from the ELB. This is to allow the instance time to be drained from incoming TCP connections before terminating it, during a scale down operation.
3427
3467
  """
3428
3468
  return pulumi.get(self, "draining_timeout")
3429
3469
 
3430
- @property
3470
+ @_builtins.property
3431
3471
  @pulumi.getter(name="ebsBlockDevices")
3432
3472
  def ebs_block_devices(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupEbsBlockDevice']]]:
3433
3473
  return pulumi.get(self, "ebs_block_devices")
3434
3474
 
3435
- @property
3475
+ @_builtins.property
3436
3476
  @pulumi.getter(name="ebsOptimized")
3437
- def ebs_optimized(self) -> pulumi.Output[bool]:
3477
+ def ebs_optimized(self) -> pulumi.Output[_builtins.bool]:
3438
3478
  """
3439
3479
  Enable high bandwidth connectivity between instances and AWS’s Elastic Block Store (EBS). For instance types that are EBS-optimized by default this parameter will be ignored.
3440
3480
  """
3441
3481
  return pulumi.get(self, "ebs_optimized")
3442
3482
 
3443
- @property
3483
+ @_builtins.property
3444
3484
  @pulumi.getter(name="elasticIps")
3445
- def elastic_ips(self) -> pulumi.Output[Optional[Sequence[str]]]:
3485
+ def elastic_ips(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3446
3486
  """
3447
3487
  A list of [AWS Elastic IP](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) allocation IDs to associate to the group instances.
3448
3488
  """
3449
3489
  return pulumi.get(self, "elastic_ips")
3450
3490
 
3451
- @property
3491
+ @_builtins.property
3452
3492
  @pulumi.getter(name="elasticLoadBalancers")
3453
- def elastic_load_balancers(self) -> pulumi.Output[Optional[Sequence[str]]]:
3493
+ def elastic_load_balancers(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3454
3494
  return pulumi.get(self, "elastic_load_balancers")
3455
3495
 
3456
- @property
3496
+ @_builtins.property
3457
3497
  @pulumi.getter(name="enableMonitoring")
3458
- def enable_monitoring(self) -> pulumi.Output[Optional[bool]]:
3498
+ def enable_monitoring(self) -> pulumi.Output[Optional[_builtins.bool]]:
3459
3499
  """
3460
3500
  Indicates whether monitoring is enabled for the instance.
3461
3501
  """
3462
3502
  return pulumi.get(self, "enable_monitoring")
3463
3503
 
3464
- @property
3504
+ @_builtins.property
3465
3505
  @pulumi.getter(name="ephemeralBlockDevices")
3466
3506
  def ephemeral_block_devices(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupEphemeralBlockDevice']]]:
3467
3507
  return pulumi.get(self, "ephemeral_block_devices")
3468
3508
 
3469
- @property
3509
+ @_builtins.property
3470
3510
  @pulumi.getter(name="fallbackToOndemand")
3471
- def fallback_to_ondemand(self) -> pulumi.Output[bool]:
3511
+ def fallback_to_ondemand(self) -> pulumi.Output[_builtins.bool]:
3472
3512
  """
3473
3513
  In a case of no Spot instances available, Elastigroup will launch on-demand instances instead.
3474
3514
  """
3475
3515
  return pulumi.get(self, "fallback_to_ondemand")
3476
3516
 
3477
- @property
3517
+ @_builtins.property
3478
3518
  @pulumi.getter(name="healthCheckGracePeriod")
3479
- def health_check_grace_period(self) -> pulumi.Output[Optional[int]]:
3519
+ def health_check_grace_period(self) -> pulumi.Output[Optional[_builtins.int]]:
3480
3520
  """
3481
3521
  The amount of time, in seconds, after the instance has launched to starts and check its health.
3482
3522
  """
3483
3523
  return pulumi.get(self, "health_check_grace_period")
3484
3524
 
3485
- @property
3525
+ @_builtins.property
3486
3526
  @pulumi.getter(name="healthCheckType")
3487
- def health_check_type(self) -> pulumi.Output[Optional[str]]:
3527
+ def health_check_type(self) -> pulumi.Output[Optional[_builtins.str]]:
3488
3528
  """
3489
3529
  The service that will perform health checks for the instance. Valid values: `"ELB"`, `"HCS"`, `"TARGET_GROUP"`, `"EC2"`, `"K8S_NODE"`, `"NOMAD_NODE"`, `"ECS_CLUSTER_INSTANCE"`.
3490
3530
  """
3491
3531
  return pulumi.get(self, "health_check_type")
3492
3532
 
3493
- @property
3533
+ @_builtins.property
3494
3534
  @pulumi.getter(name="healthCheckUnhealthyDurationBeforeReplacement")
3495
- def health_check_unhealthy_duration_before_replacement(self) -> pulumi.Output[Optional[int]]:
3535
+ def health_check_unhealthy_duration_before_replacement(self) -> pulumi.Output[Optional[_builtins.int]]:
3496
3536
  """
3497
3537
  The amount of time, in seconds, that we will wait before replacing an instance that is running and became unhealthy (this is only applicable for instances that were once healthy).
3498
3538
  """
3499
3539
  return pulumi.get(self, "health_check_unhealthy_duration_before_replacement")
3500
3540
 
3501
- @property
3541
+ @_builtins.property
3502
3542
  @pulumi.getter(name="iamInstanceProfile")
3503
- def iam_instance_profile(self) -> pulumi.Output[Optional[str]]:
3543
+ def iam_instance_profile(self) -> pulumi.Output[Optional[_builtins.str]]:
3504
3544
  """
3505
3545
  The ARN or name of an IAM instance profile to associate with launched instances.
3506
3546
  """
3507
3547
  return pulumi.get(self, "iam_instance_profile")
3508
3548
 
3509
- @property
3549
+ @_builtins.property
3510
3550
  @pulumi.getter(name="imageId")
3511
- def image_id(self) -> pulumi.Output[Optional[str]]:
3551
+ def image_id(self) -> pulumi.Output[Optional[_builtins.str]]:
3512
3552
  """
3513
3553
  The ID of the AMI used to launch the instance.
3514
3554
  """
3515
3555
  return pulumi.get(self, "image_id")
3516
3556
 
3517
- @property
3557
+ @_builtins.property
3518
3558
  @pulumi.getter
3519
3559
  def images(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupImage']]]:
3520
3560
  """
@@ -3523,36 +3563,36 @@ class Elastigroup(pulumi.CustomResource):
3523
3563
  """
3524
3564
  return pulumi.get(self, "images")
3525
3565
 
3526
- @property
3566
+ @_builtins.property
3527
3567
  @pulumi.getter(name="immediateOdRecoverThreshold")
3528
- def immediate_od_recover_threshold(self) -> pulumi.Output[Optional[int]]:
3568
+ def immediate_od_recover_threshold(self) -> pulumi.Output[Optional[_builtins.int]]:
3529
3569
  return pulumi.get(self, "immediate_od_recover_threshold")
3530
3570
 
3531
- @property
3571
+ @_builtins.property
3532
3572
  @pulumi.getter(name="instanceTypesOndemand")
3533
- def instance_types_ondemand(self) -> pulumi.Output[Optional[str]]:
3573
+ def instance_types_ondemand(self) -> pulumi.Output[Optional[_builtins.str]]:
3534
3574
  """
3535
3575
  The type of instance determines your instance's CPU capacity, memory and storage (e.g., m1.small, c1.xlarge).
3536
3576
  """
3537
3577
  return pulumi.get(self, "instance_types_ondemand")
3538
3578
 
3539
- @property
3579
+ @_builtins.property
3540
3580
  @pulumi.getter(name="instanceTypesPreferredSpots")
3541
- def instance_types_preferred_spots(self) -> pulumi.Output[Optional[Sequence[str]]]:
3581
+ def instance_types_preferred_spots(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3542
3582
  """
3543
3583
  Prioritize a subset of spot instance types. Must be a subset of the selected spot instance types.
3544
3584
  """
3545
3585
  return pulumi.get(self, "instance_types_preferred_spots")
3546
3586
 
3547
- @property
3587
+ @_builtins.property
3548
3588
  @pulumi.getter(name="instanceTypesSpots")
3549
- def instance_types_spots(self) -> pulumi.Output[Optional[Sequence[str]]]:
3589
+ def instance_types_spots(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3550
3590
  """
3551
3591
  One or more instance types. Note: Cannot be defined if 'resourceRequirements' is defined.
3552
3592
  """
3553
3593
  return pulumi.get(self, "instance_types_spots")
3554
3594
 
3555
- @property
3595
+ @_builtins.property
3556
3596
  @pulumi.getter(name="instanceTypesWeights")
3557
3597
  def instance_types_weights(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupInstanceTypesWeight']]]:
3558
3598
  """
@@ -3560,75 +3600,75 @@ class Elastigroup(pulumi.CustomResource):
3560
3600
  """
3561
3601
  return pulumi.get(self, "instance_types_weights")
3562
3602
 
3563
- @property
3603
+ @_builtins.property
3564
3604
  @pulumi.getter(name="integrationBeanstalk")
3565
3605
  def integration_beanstalk(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationBeanstalk']]:
3566
3606
  return pulumi.get(self, "integration_beanstalk")
3567
3607
 
3568
- @property
3608
+ @_builtins.property
3569
3609
  @pulumi.getter(name="integrationCodedeploy")
3570
3610
  def integration_codedeploy(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationCodedeploy']]:
3571
3611
  return pulumi.get(self, "integration_codedeploy")
3572
3612
 
3573
- @property
3613
+ @_builtins.property
3574
3614
  @pulumi.getter(name="integrationDockerSwarm")
3575
3615
  def integration_docker_swarm(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationDockerSwarm']]:
3576
3616
  return pulumi.get(self, "integration_docker_swarm")
3577
3617
 
3578
- @property
3618
+ @_builtins.property
3579
3619
  @pulumi.getter(name="integrationEcs")
3580
3620
  def integration_ecs(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationEcs']]:
3581
3621
  return pulumi.get(self, "integration_ecs")
3582
3622
 
3583
- @property
3623
+ @_builtins.property
3584
3624
  @pulumi.getter(name="integrationGitlab")
3585
3625
  def integration_gitlab(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationGitlab']]:
3586
3626
  return pulumi.get(self, "integration_gitlab")
3587
3627
 
3588
- @property
3628
+ @_builtins.property
3589
3629
  @pulumi.getter(name="integrationKubernetes")
3590
3630
  def integration_kubernetes(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationKubernetes']]:
3591
3631
  return pulumi.get(self, "integration_kubernetes")
3592
3632
 
3593
- @property
3633
+ @_builtins.property
3594
3634
  @pulumi.getter(name="integrationMesosphere")
3595
3635
  def integration_mesosphere(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationMesosphere']]:
3596
3636
  return pulumi.get(self, "integration_mesosphere")
3597
3637
 
3598
- @property
3638
+ @_builtins.property
3599
3639
  @pulumi.getter(name="integrationNomad")
3600
3640
  def integration_nomad(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationNomad']]:
3601
3641
  return pulumi.get(self, "integration_nomad")
3602
3642
 
3603
- @property
3643
+ @_builtins.property
3604
3644
  @pulumi.getter(name="integrationRancher")
3605
3645
  def integration_rancher(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationRancher']]:
3606
3646
  return pulumi.get(self, "integration_rancher")
3607
3647
 
3608
- @property
3648
+ @_builtins.property
3609
3649
  @pulumi.getter(name="integrationRoute53")
3610
3650
  def integration_route53(self) -> pulumi.Output[Optional['outputs.ElastigroupIntegrationRoute53']]:
3611
3651
  return pulumi.get(self, "integration_route53")
3612
3652
 
3613
- @property
3653
+ @_builtins.property
3614
3654
  @pulumi.getter
3615
3655
  def itfs(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupItf']]]:
3616
3656
  return pulumi.get(self, "itfs")
3617
3657
 
3618
- @property
3658
+ @_builtins.property
3619
3659
  @pulumi.getter(name="keyName")
3620
- def key_name(self) -> pulumi.Output[Optional[str]]:
3660
+ def key_name(self) -> pulumi.Output[Optional[_builtins.str]]:
3621
3661
  """
3622
3662
  The key name that should be used for the instance.
3623
3663
  """
3624
3664
  return pulumi.get(self, "key_name")
3625
3665
 
3626
- @property
3666
+ @_builtins.property
3627
3667
  @pulumi.getter(name="lifetimePeriod")
3628
- def lifetime_period(self) -> pulumi.Output[Optional[str]]:
3668
+ def lifetime_period(self) -> pulumi.Output[Optional[_builtins.str]]:
3629
3669
  return pulumi.get(self, "lifetime_period")
3630
3670
 
3631
- @property
3671
+ @_builtins.property
3632
3672
  @pulumi.getter
3633
3673
  def logging(self) -> pulumi.Output[Optional['outputs.ElastigroupLogging']]:
3634
3674
  """
@@ -3636,15 +3676,20 @@ class Elastigroup(pulumi.CustomResource):
3636
3676
  """
3637
3677
  return pulumi.get(self, "logging")
3638
3678
 
3639
- @property
3679
+ @_builtins.property
3680
+ @pulumi.getter(name="maxReplacementsPercentage")
3681
+ def max_replacements_percentage(self) -> pulumi.Output[Optional[_builtins.int]]:
3682
+ return pulumi.get(self, "max_replacements_percentage")
3683
+
3684
+ @_builtins.property
3640
3685
  @pulumi.getter(name="maxSize")
3641
- def max_size(self) -> pulumi.Output[int]:
3686
+ def max_size(self) -> pulumi.Output[_builtins.int]:
3642
3687
  """
3643
3688
  The maximum number of instances the group should have at any time.
3644
3689
  """
3645
3690
  return pulumi.get(self, "max_size")
3646
3691
 
3647
- @property
3692
+ @_builtins.property
3648
3693
  @pulumi.getter(name="metadataOptions")
3649
3694
  def metadata_options(self) -> pulumi.Output[Optional['outputs.ElastigroupMetadataOptions']]:
3650
3695
  """
@@ -3652,120 +3697,120 @@ class Elastigroup(pulumi.CustomResource):
3652
3697
  """
3653
3698
  return pulumi.get(self, "metadata_options")
3654
3699
 
3655
- @property
3700
+ @_builtins.property
3656
3701
  @pulumi.getter(name="minSize")
3657
- def min_size(self) -> pulumi.Output[int]:
3702
+ def min_size(self) -> pulumi.Output[_builtins.int]:
3658
3703
  """
3659
3704
  The minimum number of instances the group should have at any time.
3660
3705
  """
3661
3706
  return pulumi.get(self, "min_size")
3662
3707
 
3663
- @property
3708
+ @_builtins.property
3664
3709
  @pulumi.getter(name="minimumInstanceLifetime")
3665
- def minimum_instance_lifetime(self) -> pulumi.Output[Optional[int]]:
3710
+ def minimum_instance_lifetime(self) -> pulumi.Output[Optional[_builtins.int]]:
3666
3711
  """
3667
3712
  Defines the preferred minimum instance lifetime in hours. Markets which comply with this preference will be prioritized. Optional values: 1, 3, 6, 12, 24.
3668
3713
  """
3669
3714
  return pulumi.get(self, "minimum_instance_lifetime")
3670
3715
 
3671
- @property
3716
+ @_builtins.property
3672
3717
  @pulumi.getter(name="multipleMetrics")
3673
3718
  def multiple_metrics(self) -> pulumi.Output[Optional['outputs.ElastigroupMultipleMetrics']]:
3674
3719
  return pulumi.get(self, "multiple_metrics")
3675
3720
 
3676
- @property
3721
+ @_builtins.property
3677
3722
  @pulumi.getter
3678
- def name(self) -> pulumi.Output[str]:
3723
+ def name(self) -> pulumi.Output[_builtins.str]:
3679
3724
  """
3680
3725
  The group name.
3681
3726
  """
3682
3727
  return pulumi.get(self, "name")
3683
3728
 
3684
- @property
3729
+ @_builtins.property
3685
3730
  @pulumi.getter(name="networkInterfaces")
3686
3731
  def network_interfaces(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupNetworkInterface']]]:
3687
3732
  return pulumi.get(self, "network_interfaces")
3688
3733
 
3689
- @property
3734
+ @_builtins.property
3690
3735
  @pulumi.getter(name="onDemandTypes")
3691
- def on_demand_types(self) -> pulumi.Output[Optional[Sequence[str]]]:
3736
+ def on_demand_types(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3692
3737
  """
3693
3738
  Available ondemand instance types. Note: Either ondemand or onDemandTypes must be defined, but not both.
3694
3739
  """
3695
3740
  return pulumi.get(self, "on_demand_types")
3696
3741
 
3697
- @property
3742
+ @_builtins.property
3698
3743
  @pulumi.getter(name="ondemandCount")
3699
- def ondemand_count(self) -> pulumi.Output[Optional[int]]:
3744
+ def ondemand_count(self) -> pulumi.Output[Optional[_builtins.int]]:
3700
3745
  """
3701
3746
  Number of on demand instances to launch in the group. All other instances will be spot instances. When this parameter is set the `spot_percentage` parameter is being ignored.
3702
3747
  """
3703
3748
  return pulumi.get(self, "ondemand_count")
3704
3749
 
3705
- @property
3750
+ @_builtins.property
3706
3751
  @pulumi.getter
3707
- def orientation(self) -> pulumi.Output[str]:
3752
+ def orientation(self) -> pulumi.Output[_builtins.str]:
3708
3753
  """
3709
3754
  Select a prediction strategy. Valid values: `balanced`, `costOriented`, `equalAzDistribution`, `availabilityOriented`. You can read more in our documentation.
3710
3755
  """
3711
3756
  return pulumi.get(self, "orientation")
3712
3757
 
3713
- @property
3758
+ @_builtins.property
3714
3759
  @pulumi.getter(name="persistBlockDevices")
3715
- def persist_block_devices(self) -> pulumi.Output[Optional[bool]]:
3760
+ def persist_block_devices(self) -> pulumi.Output[Optional[_builtins.bool]]:
3716
3761
  return pulumi.get(self, "persist_block_devices")
3717
3762
 
3718
- @property
3763
+ @_builtins.property
3719
3764
  @pulumi.getter(name="persistPrivateIp")
3720
- def persist_private_ip(self) -> pulumi.Output[Optional[bool]]:
3765
+ def persist_private_ip(self) -> pulumi.Output[Optional[_builtins.bool]]:
3721
3766
  return pulumi.get(self, "persist_private_ip")
3722
3767
 
3723
- @property
3768
+ @_builtins.property
3724
3769
  @pulumi.getter(name="persistRootDevice")
3725
- def persist_root_device(self) -> pulumi.Output[Optional[bool]]:
3770
+ def persist_root_device(self) -> pulumi.Output[Optional[_builtins.bool]]:
3726
3771
  return pulumi.get(self, "persist_root_device")
3727
3772
 
3728
- @property
3773
+ @_builtins.property
3729
3774
  @pulumi.getter(name="placementTenancy")
3730
- def placement_tenancy(self) -> pulumi.Output[Optional[str]]:
3775
+ def placement_tenancy(self) -> pulumi.Output[Optional[_builtins.str]]:
3731
3776
  """
3732
3777
  Enable dedicated tenancy. Note: There is a flat hourly fee for each region in which dedicated tenancy is used. Valid values: "default", "dedicated" .
3733
3778
  """
3734
3779
  return pulumi.get(self, "placement_tenancy")
3735
3780
 
3736
- @property
3781
+ @_builtins.property
3737
3782
  @pulumi.getter(name="preferredAvailabilityZones")
3738
- def preferred_availability_zones(self) -> pulumi.Output[Optional[Sequence[str]]]:
3783
+ def preferred_availability_zones(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3739
3784
  """
3740
3785
  The AZs to prioritize when launching Spot instances. If no markets are available in the Preferred AZs, Spot instances are launched in the non-preferred AZs.
3741
3786
  Note: Must be a sublist of `availability_zones` and `orientation` value must not be `"equalAzDistribution"`.
3742
3787
  """
3743
3788
  return pulumi.get(self, "preferred_availability_zones")
3744
3789
 
3745
- @property
3790
+ @_builtins.property
3746
3791
  @pulumi.getter(name="privateIps")
3747
- def private_ips(self) -> pulumi.Output[Optional[Sequence[str]]]:
3792
+ def private_ips(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3748
3793
  return pulumi.get(self, "private_ips")
3749
3794
 
3750
- @property
3795
+ @_builtins.property
3751
3796
  @pulumi.getter
3752
- def product(self) -> pulumi.Output[str]:
3797
+ def product(self) -> pulumi.Output[_builtins.str]:
3753
3798
  """
3754
3799
  Operation system type. Valid values: `"Linux/UNIX"`, `"SUSE Linux"`, `"Windows"`.
3755
3800
  For EC2 Classic instances: `"SUSE Linux (Amazon VPC)"`, `"Windows (Amazon VPC)"`.
3756
3801
  """
3757
3802
  return pulumi.get(self, "product")
3758
3803
 
3759
- @property
3804
+ @_builtins.property
3760
3805
  @pulumi.getter
3761
- def region(self) -> pulumi.Output[Optional[str]]:
3806
+ def region(self) -> pulumi.Output[Optional[_builtins.str]]:
3762
3807
  """
3763
3808
  The AWS region your group will be created in.
3764
3809
  Note: This parameter is required if you specify subnets (through subnet_ids). This parameter is optional if you specify Availability Zones (through availability_zones).
3765
3810
  """
3766
3811
  return pulumi.get(self, "region")
3767
3812
 
3768
- @property
3813
+ @_builtins.property
3769
3814
  @pulumi.getter(name="resourceRequirements")
3770
3815
  def resource_requirements(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupResourceRequirement']]]:
3771
3816
  """
@@ -3773,7 +3818,7 @@ class Elastigroup(pulumi.CustomResource):
3773
3818
  """
3774
3819
  return pulumi.get(self, "resource_requirements")
3775
3820
 
3776
- @property
3821
+ @_builtins.property
3777
3822
  @pulumi.getter(name="resourceTagSpecifications")
3778
3823
  def resource_tag_specifications(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupResourceTagSpecification']]]:
3779
3824
  """
@@ -3781,15 +3826,15 @@ class Elastigroup(pulumi.CustomResource):
3781
3826
  """
3782
3827
  return pulumi.get(self, "resource_tag_specifications")
3783
3828
 
3784
- @property
3829
+ @_builtins.property
3785
3830
  @pulumi.getter(name="restrictSingleAz")
3786
- def restrict_single_az(self) -> pulumi.Output[Optional[bool]]:
3831
+ def restrict_single_az(self) -> pulumi.Output[Optional[_builtins.bool]]:
3787
3832
  """
3788
3833
  Elastigroup will automatically scale your instances in the most available and cost efficient availability zone. Every evaluation will be done when there are no active instances in the group.
3789
3834
  """
3790
3835
  return pulumi.get(self, "restrict_single_az")
3791
3836
 
3792
- @property
3837
+ @_builtins.property
3793
3838
  @pulumi.getter(name="revertToSpot")
3794
3839
  def revert_to_spot(self) -> pulumi.Output[Optional['outputs.ElastigroupRevertToSpot']]:
3795
3840
  """
@@ -3797,12 +3842,12 @@ class Elastigroup(pulumi.CustomResource):
3797
3842
  """
3798
3843
  return pulumi.get(self, "revert_to_spot")
3799
3844
 
3800
- @property
3845
+ @_builtins.property
3801
3846
  @pulumi.getter(name="scalingDownPolicies")
3802
3847
  def scaling_down_policies(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScalingDownPolicy']]]:
3803
3848
  return pulumi.get(self, "scaling_down_policies")
3804
3849
 
3805
- @property
3850
+ @_builtins.property
3806
3851
  @pulumi.getter(name="scalingStrategies")
3807
3852
  def scaling_strategies(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScalingStrategy']]]:
3808
3853
  """
@@ -3810,70 +3855,71 @@ class Elastigroup(pulumi.CustomResource):
3810
3855
  """
3811
3856
  return pulumi.get(self, "scaling_strategies")
3812
3857
 
3813
- @property
3858
+ @_builtins.property
3814
3859
  @pulumi.getter(name="scalingTargetPolicies")
3815
3860
  def scaling_target_policies(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScalingTargetPolicy']]]:
3816
3861
  return pulumi.get(self, "scaling_target_policies")
3817
3862
 
3818
- @property
3863
+ @_builtins.property
3819
3864
  @pulumi.getter(name="scalingUpPolicies")
3820
3865
  def scaling_up_policies(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScalingUpPolicy']]]:
3821
3866
  return pulumi.get(self, "scaling_up_policies")
3822
3867
 
3823
- @property
3868
+ @_builtins.property
3824
3869
  @pulumi.getter(name="scheduledTasks")
3825
3870
  def scheduled_tasks(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupScheduledTask']]]:
3826
3871
  return pulumi.get(self, "scheduled_tasks")
3827
3872
 
3828
- @property
3873
+ @_builtins.property
3829
3874
  @pulumi.getter(name="securityGroups")
3830
- def security_groups(self) -> pulumi.Output[Sequence[str]]:
3875
+ def security_groups(self) -> pulumi.Output[Sequence[_builtins.str]]:
3831
3876
  """
3832
3877
  A list of associated security group IDS.
3833
3878
  """
3834
3879
  return pulumi.get(self, "security_groups")
3835
3880
 
3836
- @property
3881
+ @_builtins.property
3837
3882
  @pulumi.getter(name="shutdownScript")
3838
- def shutdown_script(self) -> pulumi.Output[Optional[str]]:
3883
+ def shutdown_script(self) -> pulumi.Output[Optional[_builtins.str]]:
3839
3884
  """
3840
3885
  The Base64-encoded shutdown script that executes prior to instance termination, for more information please see: [Shutdown Script](https://api.spotinst.com/integration-docs/elastigroup/concepts/compute-concepts/shutdown-scripts/)
3841
3886
  """
3842
3887
  return pulumi.get(self, "shutdown_script")
3843
3888
 
3844
- @property
3889
+ @_builtins.property
3845
3890
  @pulumi.getter
3846
3891
  def signals(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupSignal']]]:
3847
3892
  return pulumi.get(self, "signals")
3848
3893
 
3849
- @property
3894
+ @_builtins.property
3850
3895
  @pulumi.getter(name="spotPercentage")
3851
- def spot_percentage(self) -> pulumi.Output[Optional[int]]:
3896
+ def spot_percentage(self) -> pulumi.Output[Optional[_builtins.int]]:
3852
3897
  """
3853
3898
  The percentage of Spot instances that would spin up from the `desired_capacity` number.
3854
3899
  """
3855
3900
  return pulumi.get(self, "spot_percentage")
3856
3901
 
3857
- @property
3902
+ @_builtins.property
3858
3903
  @pulumi.getter(name="statefulDeallocation")
3859
3904
  def stateful_deallocation(self) -> pulumi.Output[Optional['outputs.ElastigroupStatefulDeallocation']]:
3860
3905
  return pulumi.get(self, "stateful_deallocation")
3861
3906
 
3862
- @property
3907
+ @_builtins.property
3863
3908
  @pulumi.getter(name="statefulInstanceActions")
3864
3909
  def stateful_instance_actions(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupStatefulInstanceAction']]]:
3865
3910
  return pulumi.get(self, "stateful_instance_actions")
3866
3911
 
3867
- @property
3912
+ @_builtins.property
3868
3913
  @pulumi.getter(name="subnetIds")
3869
- def subnet_ids(self) -> pulumi.Output[Optional[Sequence[str]]]:
3914
+ @_utilities.deprecated("""This field will soon be deprecated and handled by availability_zones""")
3915
+ def subnet_ids(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3870
3916
  """
3871
3917
  List of Strings of subnet identifiers.
3872
3918
  Note: When this parameter is set, `availability_zones` should be left unused.
3873
3919
  """
3874
3920
  return pulumi.get(self, "subnet_ids")
3875
3921
 
3876
- @property
3922
+ @_builtins.property
3877
3923
  @pulumi.getter
3878
3924
  def tags(self) -> pulumi.Output[Optional[Sequence['outputs.ElastigroupTag']]]:
3879
3925
  """
@@ -3881,48 +3927,48 @@ class Elastigroup(pulumi.CustomResource):
3881
3927
  """
3882
3928
  return pulumi.get(self, "tags")
3883
3929
 
3884
- @property
3930
+ @_builtins.property
3885
3931
  @pulumi.getter(name="targetGroupArns")
3886
- def target_group_arns(self) -> pulumi.Output[Optional[Sequence[str]]]:
3932
+ def target_group_arns(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
3887
3933
  return pulumi.get(self, "target_group_arns")
3888
3934
 
3889
- @property
3935
+ @_builtins.property
3890
3936
  @pulumi.getter(name="updatePolicy")
3891
3937
  def update_policy(self) -> pulumi.Output[Optional['outputs.ElastigroupUpdatePolicy']]:
3892
3938
  return pulumi.get(self, "update_policy")
3893
3939
 
3894
- @property
3940
+ @_builtins.property
3895
3941
  @pulumi.getter(name="userData")
3896
- def user_data(self) -> pulumi.Output[Optional[str]]:
3942
+ def user_data(self) -> pulumi.Output[Optional[_builtins.str]]:
3897
3943
  """
3898
3944
  The user data to provide when launching the instance.
3899
3945
  """
3900
3946
  return pulumi.get(self, "user_data")
3901
3947
 
3902
- @property
3948
+ @_builtins.property
3903
3949
  @pulumi.getter(name="utilizeCommitments")
3904
- def utilize_commitments(self) -> pulumi.Output[Optional[bool]]:
3950
+ def utilize_commitments(self) -> pulumi.Output[Optional[_builtins.bool]]:
3905
3951
  return pulumi.get(self, "utilize_commitments")
3906
3952
 
3907
- @property
3953
+ @_builtins.property
3908
3954
  @pulumi.getter(name="utilizeReservedInstances")
3909
- def utilize_reserved_instances(self) -> pulumi.Output[Optional[bool]]:
3955
+ def utilize_reserved_instances(self) -> pulumi.Output[Optional[_builtins.bool]]:
3910
3956
  """
3911
3957
  In a case of any available reserved instances, Elastigroup will utilize them first before purchasing Spot instances.
3912
3958
  """
3913
3959
  return pulumi.get(self, "utilize_reserved_instances")
3914
3960
 
3915
- @property
3961
+ @_builtins.property
3916
3962
  @pulumi.getter(name="waitForCapacity")
3917
- def wait_for_capacity(self) -> pulumi.Output[Optional[int]]:
3963
+ def wait_for_capacity(self) -> pulumi.Output[Optional[_builtins.int]]:
3918
3964
  """
3919
3965
  Minimum number of instances in a 'HEALTHY' status that is required before continuing. This is ignored when updating with blue/green deployment. Cannot exceed `desired_capacity`.
3920
3966
  """
3921
3967
  return pulumi.get(self, "wait_for_capacity")
3922
3968
 
3923
- @property
3969
+ @_builtins.property
3924
3970
  @pulumi.getter(name="waitForCapacityTimeout")
3925
- def wait_for_capacity_timeout(self) -> pulumi.Output[Optional[int]]:
3971
+ def wait_for_capacity_timeout(self) -> pulumi.Output[Optional[_builtins.int]]:
3926
3972
  """
3927
3973
  Time (seconds) to wait for instances to report a 'HEALTHY' status. Useful for plans with multiple dependencies that take some time to initialize. Leave undefined or set to `0` to indicate no wait. This is ignored when updating with blue/green deployment.
3928
3974
  """