All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliyun.ros.cdk.ecs.AutoProvisioningGroupProps Maven / Gradle / Ivy

package com.aliyun.ros.cdk.ecs;

/**
 * Properties for defining a AutoProvisioningGroup.
 * 

* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-autoprovisioninggroup */ @javax.annotation.Generated(value = "jsii-pacmak/1.85.0 (build 08ee592)", date = "2024-08-22T08:56:19.814Z") @software.amazon.jsii.Jsii(module = com.aliyun.ros.cdk.ecs.$Module.class, fqn = "@alicloud/ros-cdk-ecs.AutoProvisioningGroupProps") @software.amazon.jsii.Jsii.Proxy(AutoProvisioningGroupProps.Jsii$Proxy.class) public interface AutoProvisioningGroupProps extends software.amazon.jsii.JsiiSerializable { /** * Property totalTargetCapacity: The total target capacity of the auto provisioning group. *

* The target capacity consists * of the following three parts: * The target capacity of pay-as-you-go instances specified by the PayAsYouGoTargetCapacity parameter * The target capacity of preemptible instances specified by the SpotTargetCapacity parameter * The supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity */ @org.jetbrains.annotations.NotNull java.lang.Object getTotalTargetCapacity(); /** * Property autoProvisioningGroupName: The name of the auto provisioning group to be created. *

* It must be 2 to 128 characters * in length. It must start with a letter but cannot start with http:// or https://. * It can contain letters, digits, colons (:), underscores (_), and hyphens (-). */ default @org.jetbrains.annotations.Nullable java.lang.Object getAutoProvisioningGroupName() { return null; } /** * Property autoProvisioningGroupType: The type of the auto provisioning group. *

* Valid values: * request: One-time delivery. After the auto provisioning group is started, it only attempts * to create an instance cluster once. If the cluster fails to be created, the group * does not try again. * maintain: The continuous delivery and maintain capacity type. After the auto provisioning group * is started, it continuously attempts to create and maintain the instance cluster. * The auto provisioning group compares the real-time and target capacity of the cluster. * If the cluster does not meet the target capacity, the group will create instances * until the cluster meets the target capacity. * Default value: maintain */ default @org.jetbrains.annotations.Nullable java.lang.Object getAutoProvisioningGroupType() { return null; } /** * Property checkExecutionStatus: Whether check execution status. *

* If set true, ROS will check the state of AutoProvisioningGroup to be fulfilled. Otherwise ROS will regard AutoProvisioningGroup create failed. */ default @org.jetbrains.annotations.Nullable java.lang.Object getCheckExecutionStatus() { return null; } /** * Property defaultTargetCapacityType: The type of supplemental instances. *

* When the total value of PayAsYouGoTargetCapacity and SpotTargetCapacity is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet * the capacity requirements. Valid values: * PayAsYouGo: Pay-as-you-go instances. * Spot: Preemptible instances. * Default value: Spot */ default @org.jetbrains.annotations.Nullable java.lang.Object getDefaultTargetCapacityType() { return null; } /** * Property description: The description of the auto provisioning group. */ default @org.jetbrains.annotations.Nullable java.lang.Object getDescription() { return null; } /** * Property excessCapacityTerminationPolicy: The shutdown policy for excess preemptible instances followed when the capacity of the auto provisioning group exceeds the target capacity. *

* Valid values: * no-termination: Excess preemptible instances are not shut down. * termination: Excess preemptible instances are to be shut down. The action to be performed on these * shutdown instances is specified by the SpotInstanceInterruptionBehavior parameter. * Default value: no-termination */ default @org.jetbrains.annotations.Nullable java.lang.Object getExcessCapacityTerminationPolicy() { return null; } /** * Property launchConfiguration:. */ default @org.jetbrains.annotations.Nullable java.lang.Object getLaunchConfiguration() { return null; } /** * Property launchTemplateConfig:. */ default @org.jetbrains.annotations.Nullable java.lang.Object getLaunchTemplateConfig() { return null; } /** * Property launchTemplateId: The ID of the instance launch template associated with the auto provisioning group. *

* You can call the DescribeLaunchTemplates operation to query available instance launch templates. * An auto provisioning group can be associated with only one instance launch template. * But you can configure multiple extended configurations for the launch template through * the LaunchTemplateConfig parameter. */ default @org.jetbrains.annotations.Nullable java.lang.Object getLaunchTemplateId() { return null; } /** * Property launchTemplateVersion: The version of the instance launch template associated with the auto provisioning group. *

* You can call the DescribeLaunchTemplateVersions operation to query the versions of available instance launch templates. */ default @org.jetbrains.annotations.Nullable java.lang.Object getLaunchTemplateVersion() { return null; } /** * Property maxSpotPrice: The global maximum price for preemptible instances in the auto provisioning group. *

* If both the MaxSpotPrice and LaunchTemplateConfig.N.MaxPrice parameters are specified, the maximum price is the lower value of the two. */ default @org.jetbrains.annotations.Nullable java.lang.Object getMaxSpotPrice() { return null; } /** * Property payAsYouGoAllocationStrategy: The scale-out policy for pay-as-you-go instances. *

* Valid values: * lowest-price: The cost optimization policy the auto provisioning group follows to select instance * types of the lowest cost to create instances. * prioritized: The priority-based policy the auto provisioning group follows to create instances. * The priority of an instance type is specified by the LaunchTemplateConfig.N.Priority parameter. * Default value: lowest-price */ default @org.jetbrains.annotations.Nullable java.lang.Object getPayAsYouGoAllocationStrategy() { return null; } /** * Property payAsYouGoTargetCapacity: The target capacity of pay-as-you-go instances in the auto provisioning group. */ default @org.jetbrains.annotations.Nullable java.lang.Object getPayAsYouGoTargetCapacity() { return null; } /** * Property spotAllocationStrategy: The scale-out policy for preemptible instances. *

* Valid values: * lowest-price: The cost optimization policy the auto provisioning group follows to select instance * types of the lowest cost to create instances. * diversified: The distribution balancing policy the auto provisioning group follows to evenly create * instances across zones specified in multiple extended template configurations. * Default value: lowest-price */ default @org.jetbrains.annotations.Nullable java.lang.Object getSpotAllocationStrategy() { return null; } /** * Property spotInstanceInterruptionBehavior: The default behavior after preemptible instances are shut down. *

* Value values: * stop: stops preemptible instances. * terminate: releases preemptible instances. * Default value: stop */ default @org.jetbrains.annotations.Nullable java.lang.Object getSpotInstanceInterruptionBehavior() { return null; } /** * Property spotInstancePoolsToUseCount: This parameter takes effect when the SpotAllocationStrategy parameter is set to lowest-price. *

* The auto provisioning group selects instance types of the lowest cost to create * instances. */ default @org.jetbrains.annotations.Nullable java.lang.Object getSpotInstancePoolsToUseCount() { return null; } /** * Property spotTargetCapacity: The target capacity of preemptible instances in the auto provisioning group. */ default @org.jetbrains.annotations.Nullable java.lang.Object getSpotTargetCapacity() { return null; } /** * Property terminateInstances: Specifies whether to release instances of the auto provisioning group. *

* Valid values: * true * false * Default: false */ default @org.jetbrains.annotations.Nullable java.lang.Object getTerminateInstances() { return null; } /** * Property terminateInstancesWithExpiration: The shutdown policy for preemptible instances when the auto provisioning group expires. *

* Valid values: * true: shuts down preemptible instances. The action to be performed on these shutdown instances * is specified by the SpotInstanceInterruptionBehavior parameter. * false: does not shut down preemptible instances. * Default: false */ default @org.jetbrains.annotations.Nullable java.lang.Object getTerminateInstancesWithExpiration() { return null; } /** * Property validFrom: The time when the auto provisioning group is started. *

* The period of time between this * point in time and the point in time specified by the ValidUntil parameter is the effective time period of the auto provisioning group. * By default, an auto provisioning group is immediately started after creation. */ default @org.jetbrains.annotations.Nullable java.lang.Object getValidFrom() { return null; } /** * Property validUntil: The time when the auto provisioning group expires. *

* The period of time between this * point in time and the point in time specified by the ValidFrom parameter is the effective time period of the auto provisioning group. * By default, an auto provisioning group never expires. */ default @org.jetbrains.annotations.Nullable java.lang.Object getValidUntil() { return null; } /** * @return a {@link Builder} of {@link AutoProvisioningGroupProps} */ static Builder builder() { return new Builder(); } /** * A builder for {@link AutoProvisioningGroupProps} */ public static final class Builder implements software.amazon.jsii.Builder { java.lang.Object totalTargetCapacity; java.lang.Object autoProvisioningGroupName; java.lang.Object autoProvisioningGroupType; java.lang.Object checkExecutionStatus; java.lang.Object defaultTargetCapacityType; java.lang.Object description; java.lang.Object excessCapacityTerminationPolicy; java.lang.Object launchConfiguration; java.lang.Object launchTemplateConfig; java.lang.Object launchTemplateId; java.lang.Object launchTemplateVersion; java.lang.Object maxSpotPrice; java.lang.Object payAsYouGoAllocationStrategy; java.lang.Object payAsYouGoTargetCapacity; java.lang.Object spotAllocationStrategy; java.lang.Object spotInstanceInterruptionBehavior; java.lang.Object spotInstancePoolsToUseCount; java.lang.Object spotTargetCapacity; java.lang.Object terminateInstances; java.lang.Object terminateInstancesWithExpiration; java.lang.Object validFrom; java.lang.Object validUntil; /** * Sets the value of {@link AutoProvisioningGroupProps#getTotalTargetCapacity} * @param totalTargetCapacity Property totalTargetCapacity: The total target capacity of the auto provisioning group. This parameter is required. * The target capacity consists * of the following three parts: * The target capacity of pay-as-you-go instances specified by the PayAsYouGoTargetCapacity parameter * The target capacity of preemptible instances specified by the SpotTargetCapacity parameter * The supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity * @return {@code this} */ public Builder totalTargetCapacity(java.lang.String totalTargetCapacity) { this.totalTargetCapacity = totalTargetCapacity; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getTotalTargetCapacity} * @param totalTargetCapacity Property totalTargetCapacity: The total target capacity of the auto provisioning group. This parameter is required. * The target capacity consists * of the following three parts: * The target capacity of pay-as-you-go instances specified by the PayAsYouGoTargetCapacity parameter * The target capacity of preemptible instances specified by the SpotTargetCapacity parameter * The supplemental capacity besides PayAsYouGoTargetCapacity and SpotTargetCapacity * @return {@code this} */ public Builder totalTargetCapacity(com.aliyun.ros.cdk.core.IResolvable totalTargetCapacity) { this.totalTargetCapacity = totalTargetCapacity; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getAutoProvisioningGroupName} * @param autoProvisioningGroupName Property autoProvisioningGroupName: The name of the auto provisioning group to be created. * It must be 2 to 128 characters * in length. It must start with a letter but cannot start with http:// or https://. * It can contain letters, digits, colons (:), underscores (_), and hyphens (-). * @return {@code this} */ public Builder autoProvisioningGroupName(java.lang.String autoProvisioningGroupName) { this.autoProvisioningGroupName = autoProvisioningGroupName; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getAutoProvisioningGroupName} * @param autoProvisioningGroupName Property autoProvisioningGroupName: The name of the auto provisioning group to be created. * It must be 2 to 128 characters * in length. It must start with a letter but cannot start with http:// or https://. * It can contain letters, digits, colons (:), underscores (_), and hyphens (-). * @return {@code this} */ public Builder autoProvisioningGroupName(com.aliyun.ros.cdk.core.IResolvable autoProvisioningGroupName) { this.autoProvisioningGroupName = autoProvisioningGroupName; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getAutoProvisioningGroupType} * @param autoProvisioningGroupType Property autoProvisioningGroupType: The type of the auto provisioning group. * Valid values: * request: One-time delivery. After the auto provisioning group is started, it only attempts * to create an instance cluster once. If the cluster fails to be created, the group * does not try again. * maintain: The continuous delivery and maintain capacity type. After the auto provisioning group * is started, it continuously attempts to create and maintain the instance cluster. * The auto provisioning group compares the real-time and target capacity of the cluster. * If the cluster does not meet the target capacity, the group will create instances * until the cluster meets the target capacity. * Default value: maintain * @return {@code this} */ public Builder autoProvisioningGroupType(java.lang.String autoProvisioningGroupType) { this.autoProvisioningGroupType = autoProvisioningGroupType; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getAutoProvisioningGroupType} * @param autoProvisioningGroupType Property autoProvisioningGroupType: The type of the auto provisioning group. * Valid values: * request: One-time delivery. After the auto provisioning group is started, it only attempts * to create an instance cluster once. If the cluster fails to be created, the group * does not try again. * maintain: The continuous delivery and maintain capacity type. After the auto provisioning group * is started, it continuously attempts to create and maintain the instance cluster. * The auto provisioning group compares the real-time and target capacity of the cluster. * If the cluster does not meet the target capacity, the group will create instances * until the cluster meets the target capacity. * Default value: maintain * @return {@code this} */ public Builder autoProvisioningGroupType(com.aliyun.ros.cdk.core.IResolvable autoProvisioningGroupType) { this.autoProvisioningGroupType = autoProvisioningGroupType; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getCheckExecutionStatus} * @param checkExecutionStatus Property checkExecutionStatus: Whether check execution status. * If set true, ROS will check the state of AutoProvisioningGroup to be fulfilled. Otherwise ROS will regard AutoProvisioningGroup create failed. * @return {@code this} */ public Builder checkExecutionStatus(java.lang.Boolean checkExecutionStatus) { this.checkExecutionStatus = checkExecutionStatus; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getCheckExecutionStatus} * @param checkExecutionStatus Property checkExecutionStatus: Whether check execution status. * If set true, ROS will check the state of AutoProvisioningGroup to be fulfilled. Otherwise ROS will regard AutoProvisioningGroup create failed. * @return {@code this} */ public Builder checkExecutionStatus(com.aliyun.ros.cdk.core.IResolvable checkExecutionStatus) { this.checkExecutionStatus = checkExecutionStatus; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getDefaultTargetCapacityType} * @param defaultTargetCapacityType Property defaultTargetCapacityType: The type of supplemental instances. * When the total value of PayAsYouGoTargetCapacity and SpotTargetCapacity is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet * the capacity requirements. Valid values: * PayAsYouGo: Pay-as-you-go instances. * Spot: Preemptible instances. * Default value: Spot * @return {@code this} */ public Builder defaultTargetCapacityType(java.lang.String defaultTargetCapacityType) { this.defaultTargetCapacityType = defaultTargetCapacityType; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getDefaultTargetCapacityType} * @param defaultTargetCapacityType Property defaultTargetCapacityType: The type of supplemental instances. * When the total value of PayAsYouGoTargetCapacity and SpotTargetCapacity is smaller than the value of TotalTargetCapacity, the auto provisioning group will create instances of the specified type to meet * the capacity requirements. Valid values: * PayAsYouGo: Pay-as-you-go instances. * Spot: Preemptible instances. * Default value: Spot * @return {@code this} */ public Builder defaultTargetCapacityType(com.aliyun.ros.cdk.core.IResolvable defaultTargetCapacityType) { this.defaultTargetCapacityType = defaultTargetCapacityType; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getDescription} * @param description Property description: The description of the auto provisioning group. * @return {@code this} */ public Builder description(java.lang.String description) { this.description = description; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getDescription} * @param description Property description: The description of the auto provisioning group. * @return {@code this} */ public Builder description(com.aliyun.ros.cdk.core.IResolvable description) { this.description = description; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getExcessCapacityTerminationPolicy} * @param excessCapacityTerminationPolicy Property excessCapacityTerminationPolicy: The shutdown policy for excess preemptible instances followed when the capacity of the auto provisioning group exceeds the target capacity. * Valid values: * no-termination: Excess preemptible instances are not shut down. * termination: Excess preemptible instances are to be shut down. The action to be performed on these * shutdown instances is specified by the SpotInstanceInterruptionBehavior parameter. * Default value: no-termination * @return {@code this} */ public Builder excessCapacityTerminationPolicy(java.lang.String excessCapacityTerminationPolicy) { this.excessCapacityTerminationPolicy = excessCapacityTerminationPolicy; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getExcessCapacityTerminationPolicy} * @param excessCapacityTerminationPolicy Property excessCapacityTerminationPolicy: The shutdown policy for excess preemptible instances followed when the capacity of the auto provisioning group exceeds the target capacity. * Valid values: * no-termination: Excess preemptible instances are not shut down. * termination: Excess preemptible instances are to be shut down. The action to be performed on these * shutdown instances is specified by the SpotInstanceInterruptionBehavior parameter. * Default value: no-termination * @return {@code this} */ public Builder excessCapacityTerminationPolicy(com.aliyun.ros.cdk.core.IResolvable excessCapacityTerminationPolicy) { this.excessCapacityTerminationPolicy = excessCapacityTerminationPolicy; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchConfiguration} * @param launchConfiguration Property launchConfiguration:. * @return {@code this} */ public Builder launchConfiguration(com.aliyun.ros.cdk.core.IResolvable launchConfiguration) { this.launchConfiguration = launchConfiguration; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchConfiguration} * @param launchConfiguration Property launchConfiguration:. * @return {@code this} */ public Builder launchConfiguration(com.aliyun.ros.cdk.ecs.RosAutoProvisioningGroup.LaunchConfigurationProperty launchConfiguration) { this.launchConfiguration = launchConfiguration; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchTemplateConfig} * @param launchTemplateConfig Property launchTemplateConfig:. * @return {@code this} */ public Builder launchTemplateConfig(com.aliyun.ros.cdk.core.IResolvable launchTemplateConfig) { this.launchTemplateConfig = launchTemplateConfig; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchTemplateConfig} * @param launchTemplateConfig Property launchTemplateConfig:. * @return {@code this} */ public Builder launchTemplateConfig(java.util.List launchTemplateConfig) { this.launchTemplateConfig = launchTemplateConfig; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchTemplateId} * @param launchTemplateId Property launchTemplateId: The ID of the instance launch template associated with the auto provisioning group. * You can call the DescribeLaunchTemplates operation to query available instance launch templates. * An auto provisioning group can be associated with only one instance launch template. * But you can configure multiple extended configurations for the launch template through * the LaunchTemplateConfig parameter. * @return {@code this} */ public Builder launchTemplateId(java.lang.String launchTemplateId) { this.launchTemplateId = launchTemplateId; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchTemplateId} * @param launchTemplateId Property launchTemplateId: The ID of the instance launch template associated with the auto provisioning group. * You can call the DescribeLaunchTemplates operation to query available instance launch templates. * An auto provisioning group can be associated with only one instance launch template. * But you can configure multiple extended configurations for the launch template through * the LaunchTemplateConfig parameter. * @return {@code this} */ public Builder launchTemplateId(com.aliyun.ros.cdk.core.IResolvable launchTemplateId) { this.launchTemplateId = launchTemplateId; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchTemplateVersion} * @param launchTemplateVersion Property launchTemplateVersion: The version of the instance launch template associated with the auto provisioning group. * You can call the DescribeLaunchTemplateVersions operation to query the versions of available instance launch templates. * @return {@code this} */ public Builder launchTemplateVersion(java.lang.String launchTemplateVersion) { this.launchTemplateVersion = launchTemplateVersion; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getLaunchTemplateVersion} * @param launchTemplateVersion Property launchTemplateVersion: The version of the instance launch template associated with the auto provisioning group. * You can call the DescribeLaunchTemplateVersions operation to query the versions of available instance launch templates. * @return {@code this} */ public Builder launchTemplateVersion(com.aliyun.ros.cdk.core.IResolvable launchTemplateVersion) { this.launchTemplateVersion = launchTemplateVersion; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getMaxSpotPrice} * @param maxSpotPrice Property maxSpotPrice: The global maximum price for preemptible instances in the auto provisioning group. * If both the MaxSpotPrice and LaunchTemplateConfig.N.MaxPrice parameters are specified, the maximum price is the lower value of the two. * @return {@code this} */ public Builder maxSpotPrice(java.lang.Number maxSpotPrice) { this.maxSpotPrice = maxSpotPrice; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getMaxSpotPrice} * @param maxSpotPrice Property maxSpotPrice: The global maximum price for preemptible instances in the auto provisioning group. * If both the MaxSpotPrice and LaunchTemplateConfig.N.MaxPrice parameters are specified, the maximum price is the lower value of the two. * @return {@code this} */ public Builder maxSpotPrice(com.aliyun.ros.cdk.core.IResolvable maxSpotPrice) { this.maxSpotPrice = maxSpotPrice; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getPayAsYouGoAllocationStrategy} * @param payAsYouGoAllocationStrategy Property payAsYouGoAllocationStrategy: The scale-out policy for pay-as-you-go instances. * Valid values: * lowest-price: The cost optimization policy the auto provisioning group follows to select instance * types of the lowest cost to create instances. * prioritized: The priority-based policy the auto provisioning group follows to create instances. * The priority of an instance type is specified by the LaunchTemplateConfig.N.Priority parameter. * Default value: lowest-price * @return {@code this} */ public Builder payAsYouGoAllocationStrategy(java.lang.String payAsYouGoAllocationStrategy) { this.payAsYouGoAllocationStrategy = payAsYouGoAllocationStrategy; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getPayAsYouGoAllocationStrategy} * @param payAsYouGoAllocationStrategy Property payAsYouGoAllocationStrategy: The scale-out policy for pay-as-you-go instances. * Valid values: * lowest-price: The cost optimization policy the auto provisioning group follows to select instance * types of the lowest cost to create instances. * prioritized: The priority-based policy the auto provisioning group follows to create instances. * The priority of an instance type is specified by the LaunchTemplateConfig.N.Priority parameter. * Default value: lowest-price * @return {@code this} */ public Builder payAsYouGoAllocationStrategy(com.aliyun.ros.cdk.core.IResolvable payAsYouGoAllocationStrategy) { this.payAsYouGoAllocationStrategy = payAsYouGoAllocationStrategy; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getPayAsYouGoTargetCapacity} * @param payAsYouGoTargetCapacity Property payAsYouGoTargetCapacity: The target capacity of pay-as-you-go instances in the auto provisioning group. * @return {@code this} */ public Builder payAsYouGoTargetCapacity(java.lang.String payAsYouGoTargetCapacity) { this.payAsYouGoTargetCapacity = payAsYouGoTargetCapacity; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getPayAsYouGoTargetCapacity} * @param payAsYouGoTargetCapacity Property payAsYouGoTargetCapacity: The target capacity of pay-as-you-go instances in the auto provisioning group. * @return {@code this} */ public Builder payAsYouGoTargetCapacity(com.aliyun.ros.cdk.core.IResolvable payAsYouGoTargetCapacity) { this.payAsYouGoTargetCapacity = payAsYouGoTargetCapacity; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotAllocationStrategy} * @param spotAllocationStrategy Property spotAllocationStrategy: The scale-out policy for preemptible instances. * Valid values: * lowest-price: The cost optimization policy the auto provisioning group follows to select instance * types of the lowest cost to create instances. * diversified: The distribution balancing policy the auto provisioning group follows to evenly create * instances across zones specified in multiple extended template configurations. * Default value: lowest-price * @return {@code this} */ public Builder spotAllocationStrategy(java.lang.String spotAllocationStrategy) { this.spotAllocationStrategy = spotAllocationStrategy; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotAllocationStrategy} * @param spotAllocationStrategy Property spotAllocationStrategy: The scale-out policy for preemptible instances. * Valid values: * lowest-price: The cost optimization policy the auto provisioning group follows to select instance * types of the lowest cost to create instances. * diversified: The distribution balancing policy the auto provisioning group follows to evenly create * instances across zones specified in multiple extended template configurations. * Default value: lowest-price * @return {@code this} */ public Builder spotAllocationStrategy(com.aliyun.ros.cdk.core.IResolvable spotAllocationStrategy) { this.spotAllocationStrategy = spotAllocationStrategy; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotInstanceInterruptionBehavior} * @param spotInstanceInterruptionBehavior Property spotInstanceInterruptionBehavior: The default behavior after preemptible instances are shut down. * Value values: * stop: stops preemptible instances. * terminate: releases preemptible instances. * Default value: stop * @return {@code this} */ public Builder spotInstanceInterruptionBehavior(java.lang.String spotInstanceInterruptionBehavior) { this.spotInstanceInterruptionBehavior = spotInstanceInterruptionBehavior; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotInstanceInterruptionBehavior} * @param spotInstanceInterruptionBehavior Property spotInstanceInterruptionBehavior: The default behavior after preemptible instances are shut down. * Value values: * stop: stops preemptible instances. * terminate: releases preemptible instances. * Default value: stop * @return {@code this} */ public Builder spotInstanceInterruptionBehavior(com.aliyun.ros.cdk.core.IResolvable spotInstanceInterruptionBehavior) { this.spotInstanceInterruptionBehavior = spotInstanceInterruptionBehavior; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotInstancePoolsToUseCount} * @param spotInstancePoolsToUseCount Property spotInstancePoolsToUseCount: This parameter takes effect when the SpotAllocationStrategy parameter is set to lowest-price. * The auto provisioning group selects instance types of the lowest cost to create * instances. * @return {@code this} */ public Builder spotInstancePoolsToUseCount(java.lang.Number spotInstancePoolsToUseCount) { this.spotInstancePoolsToUseCount = spotInstancePoolsToUseCount; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotInstancePoolsToUseCount} * @param spotInstancePoolsToUseCount Property spotInstancePoolsToUseCount: This parameter takes effect when the SpotAllocationStrategy parameter is set to lowest-price. * The auto provisioning group selects instance types of the lowest cost to create * instances. * @return {@code this} */ public Builder spotInstancePoolsToUseCount(com.aliyun.ros.cdk.core.IResolvable spotInstancePoolsToUseCount) { this.spotInstancePoolsToUseCount = spotInstancePoolsToUseCount; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotTargetCapacity} * @param spotTargetCapacity Property spotTargetCapacity: The target capacity of preemptible instances in the auto provisioning group. * @return {@code this} */ public Builder spotTargetCapacity(java.lang.String spotTargetCapacity) { this.spotTargetCapacity = spotTargetCapacity; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getSpotTargetCapacity} * @param spotTargetCapacity Property spotTargetCapacity: The target capacity of preemptible instances in the auto provisioning group. * @return {@code this} */ public Builder spotTargetCapacity(com.aliyun.ros.cdk.core.IResolvable spotTargetCapacity) { this.spotTargetCapacity = spotTargetCapacity; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getTerminateInstances} * @param terminateInstances Property terminateInstances: Specifies whether to release instances of the auto provisioning group. * Valid values: * true * false * Default: false * @return {@code this} */ public Builder terminateInstances(java.lang.Boolean terminateInstances) { this.terminateInstances = terminateInstances; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getTerminateInstances} * @param terminateInstances Property terminateInstances: Specifies whether to release instances of the auto provisioning group. * Valid values: * true * false * Default: false * @return {@code this} */ public Builder terminateInstances(com.aliyun.ros.cdk.core.IResolvable terminateInstances) { this.terminateInstances = terminateInstances; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getTerminateInstancesWithExpiration} * @param terminateInstancesWithExpiration Property terminateInstancesWithExpiration: The shutdown policy for preemptible instances when the auto provisioning group expires. * Valid values: * true: shuts down preemptible instances. The action to be performed on these shutdown instances * is specified by the SpotInstanceInterruptionBehavior parameter. * false: does not shut down preemptible instances. * Default: false * @return {@code this} */ public Builder terminateInstancesWithExpiration(java.lang.Boolean terminateInstancesWithExpiration) { this.terminateInstancesWithExpiration = terminateInstancesWithExpiration; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getTerminateInstancesWithExpiration} * @param terminateInstancesWithExpiration Property terminateInstancesWithExpiration: The shutdown policy for preemptible instances when the auto provisioning group expires. * Valid values: * true: shuts down preemptible instances. The action to be performed on these shutdown instances * is specified by the SpotInstanceInterruptionBehavior parameter. * false: does not shut down preemptible instances. * Default: false * @return {@code this} */ public Builder terminateInstancesWithExpiration(com.aliyun.ros.cdk.core.IResolvable terminateInstancesWithExpiration) { this.terminateInstancesWithExpiration = terminateInstancesWithExpiration; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getValidFrom} * @param validFrom Property validFrom: The time when the auto provisioning group is started. * The period of time between this * point in time and the point in time specified by the ValidUntil parameter is the effective time period of the auto provisioning group. * By default, an auto provisioning group is immediately started after creation. * @return {@code this} */ public Builder validFrom(java.lang.String validFrom) { this.validFrom = validFrom; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getValidFrom} * @param validFrom Property validFrom: The time when the auto provisioning group is started. * The period of time between this * point in time and the point in time specified by the ValidUntil parameter is the effective time period of the auto provisioning group. * By default, an auto provisioning group is immediately started after creation. * @return {@code this} */ public Builder validFrom(com.aliyun.ros.cdk.core.IResolvable validFrom) { this.validFrom = validFrom; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getValidUntil} * @param validUntil Property validUntil: The time when the auto provisioning group expires. * The period of time between this * point in time and the point in time specified by the ValidFrom parameter is the effective time period of the auto provisioning group. * By default, an auto provisioning group never expires. * @return {@code this} */ public Builder validUntil(java.lang.String validUntil) { this.validUntil = validUntil; return this; } /** * Sets the value of {@link AutoProvisioningGroupProps#getValidUntil} * @param validUntil Property validUntil: The time when the auto provisioning group expires. * The period of time between this * point in time and the point in time specified by the ValidFrom parameter is the effective time period of the auto provisioning group. * By default, an auto provisioning group never expires. * @return {@code this} */ public Builder validUntil(com.aliyun.ros.cdk.core.IResolvable validUntil) { this.validUntil = validUntil; return this; } /** * Builds the configured instance. * @return a new instance of {@link AutoProvisioningGroupProps} * @throws NullPointerException if any required attribute was not provided */ @Override public AutoProvisioningGroupProps build() { return new Jsii$Proxy(this); } } /** * An implementation for {@link AutoProvisioningGroupProps} */ @software.amazon.jsii.Internal final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements AutoProvisioningGroupProps { private final java.lang.Object totalTargetCapacity; private final java.lang.Object autoProvisioningGroupName; private final java.lang.Object autoProvisioningGroupType; private final java.lang.Object checkExecutionStatus; private final java.lang.Object defaultTargetCapacityType; private final java.lang.Object description; private final java.lang.Object excessCapacityTerminationPolicy; private final java.lang.Object launchConfiguration; private final java.lang.Object launchTemplateConfig; private final java.lang.Object launchTemplateId; private final java.lang.Object launchTemplateVersion; private final java.lang.Object maxSpotPrice; private final java.lang.Object payAsYouGoAllocationStrategy; private final java.lang.Object payAsYouGoTargetCapacity; private final java.lang.Object spotAllocationStrategy; private final java.lang.Object spotInstanceInterruptionBehavior; private final java.lang.Object spotInstancePoolsToUseCount; private final java.lang.Object spotTargetCapacity; private final java.lang.Object terminateInstances; private final java.lang.Object terminateInstancesWithExpiration; private final java.lang.Object validFrom; private final java.lang.Object validUntil; /** * Constructor that initializes the object based on values retrieved from the JsiiObject. * @param objRef Reference to the JSII managed object. */ protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) { super(objRef); this.totalTargetCapacity = software.amazon.jsii.Kernel.get(this, "totalTargetCapacity", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.autoProvisioningGroupName = software.amazon.jsii.Kernel.get(this, "autoProvisioningGroupName", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.autoProvisioningGroupType = software.amazon.jsii.Kernel.get(this, "autoProvisioningGroupType", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.checkExecutionStatus = software.amazon.jsii.Kernel.get(this, "checkExecutionStatus", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.defaultTargetCapacityType = software.amazon.jsii.Kernel.get(this, "defaultTargetCapacityType", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.description = software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.excessCapacityTerminationPolicy = software.amazon.jsii.Kernel.get(this, "excessCapacityTerminationPolicy", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.launchConfiguration = software.amazon.jsii.Kernel.get(this, "launchConfiguration", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.launchTemplateConfig = software.amazon.jsii.Kernel.get(this, "launchTemplateConfig", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.launchTemplateId = software.amazon.jsii.Kernel.get(this, "launchTemplateId", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.launchTemplateVersion = software.amazon.jsii.Kernel.get(this, "launchTemplateVersion", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.maxSpotPrice = software.amazon.jsii.Kernel.get(this, "maxSpotPrice", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.payAsYouGoAllocationStrategy = software.amazon.jsii.Kernel.get(this, "payAsYouGoAllocationStrategy", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.payAsYouGoTargetCapacity = software.amazon.jsii.Kernel.get(this, "payAsYouGoTargetCapacity", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.spotAllocationStrategy = software.amazon.jsii.Kernel.get(this, "spotAllocationStrategy", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.spotInstanceInterruptionBehavior = software.amazon.jsii.Kernel.get(this, "spotInstanceInterruptionBehavior", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.spotInstancePoolsToUseCount = software.amazon.jsii.Kernel.get(this, "spotInstancePoolsToUseCount", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.spotTargetCapacity = software.amazon.jsii.Kernel.get(this, "spotTargetCapacity", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.terminateInstances = software.amazon.jsii.Kernel.get(this, "terminateInstances", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.terminateInstancesWithExpiration = software.amazon.jsii.Kernel.get(this, "terminateInstancesWithExpiration", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.validFrom = software.amazon.jsii.Kernel.get(this, "validFrom", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); this.validUntil = software.amazon.jsii.Kernel.get(this, "validUntil", software.amazon.jsii.NativeType.forClass(java.lang.Object.class)); } /** * Constructor that initializes the object based on literal property values passed by the {@link Builder}. */ protected Jsii$Proxy(final Builder builder) { super(software.amazon.jsii.JsiiObject.InitializationMode.JSII); this.totalTargetCapacity = java.util.Objects.requireNonNull(builder.totalTargetCapacity, "totalTargetCapacity is required"); this.autoProvisioningGroupName = builder.autoProvisioningGroupName; this.autoProvisioningGroupType = builder.autoProvisioningGroupType; this.checkExecutionStatus = builder.checkExecutionStatus; this.defaultTargetCapacityType = builder.defaultTargetCapacityType; this.description = builder.description; this.excessCapacityTerminationPolicy = builder.excessCapacityTerminationPolicy; this.launchConfiguration = builder.launchConfiguration; this.launchTemplateConfig = builder.launchTemplateConfig; this.launchTemplateId = builder.launchTemplateId; this.launchTemplateVersion = builder.launchTemplateVersion; this.maxSpotPrice = builder.maxSpotPrice; this.payAsYouGoAllocationStrategy = builder.payAsYouGoAllocationStrategy; this.payAsYouGoTargetCapacity = builder.payAsYouGoTargetCapacity; this.spotAllocationStrategy = builder.spotAllocationStrategy; this.spotInstanceInterruptionBehavior = builder.spotInstanceInterruptionBehavior; this.spotInstancePoolsToUseCount = builder.spotInstancePoolsToUseCount; this.spotTargetCapacity = builder.spotTargetCapacity; this.terminateInstances = builder.terminateInstances; this.terminateInstancesWithExpiration = builder.terminateInstancesWithExpiration; this.validFrom = builder.validFrom; this.validUntil = builder.validUntil; } @Override public final java.lang.Object getTotalTargetCapacity() { return this.totalTargetCapacity; } @Override public final java.lang.Object getAutoProvisioningGroupName() { return this.autoProvisioningGroupName; } @Override public final java.lang.Object getAutoProvisioningGroupType() { return this.autoProvisioningGroupType; } @Override public final java.lang.Object getCheckExecutionStatus() { return this.checkExecutionStatus; } @Override public final java.lang.Object getDefaultTargetCapacityType() { return this.defaultTargetCapacityType; } @Override public final java.lang.Object getDescription() { return this.description; } @Override public final java.lang.Object getExcessCapacityTerminationPolicy() { return this.excessCapacityTerminationPolicy; } @Override public final java.lang.Object getLaunchConfiguration() { return this.launchConfiguration; } @Override public final java.lang.Object getLaunchTemplateConfig() { return this.launchTemplateConfig; } @Override public final java.lang.Object getLaunchTemplateId() { return this.launchTemplateId; } @Override public final java.lang.Object getLaunchTemplateVersion() { return this.launchTemplateVersion; } @Override public final java.lang.Object getMaxSpotPrice() { return this.maxSpotPrice; } @Override public final java.lang.Object getPayAsYouGoAllocationStrategy() { return this.payAsYouGoAllocationStrategy; } @Override public final java.lang.Object getPayAsYouGoTargetCapacity() { return this.payAsYouGoTargetCapacity; } @Override public final java.lang.Object getSpotAllocationStrategy() { return this.spotAllocationStrategy; } @Override public final java.lang.Object getSpotInstanceInterruptionBehavior() { return this.spotInstanceInterruptionBehavior; } @Override public final java.lang.Object getSpotInstancePoolsToUseCount() { return this.spotInstancePoolsToUseCount; } @Override public final java.lang.Object getSpotTargetCapacity() { return this.spotTargetCapacity; } @Override public final java.lang.Object getTerminateInstances() { return this.terminateInstances; } @Override public final java.lang.Object getTerminateInstancesWithExpiration() { return this.terminateInstancesWithExpiration; } @Override public final java.lang.Object getValidFrom() { return this.validFrom; } @Override public final java.lang.Object getValidUntil() { return this.validUntil; } @Override @software.amazon.jsii.Internal public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() { final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE; final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); data.set("totalTargetCapacity", om.valueToTree(this.getTotalTargetCapacity())); if (this.getAutoProvisioningGroupName() != null) { data.set("autoProvisioningGroupName", om.valueToTree(this.getAutoProvisioningGroupName())); } if (this.getAutoProvisioningGroupType() != null) { data.set("autoProvisioningGroupType", om.valueToTree(this.getAutoProvisioningGroupType())); } if (this.getCheckExecutionStatus() != null) { data.set("checkExecutionStatus", om.valueToTree(this.getCheckExecutionStatus())); } if (this.getDefaultTargetCapacityType() != null) { data.set("defaultTargetCapacityType", om.valueToTree(this.getDefaultTargetCapacityType())); } if (this.getDescription() != null) { data.set("description", om.valueToTree(this.getDescription())); } if (this.getExcessCapacityTerminationPolicy() != null) { data.set("excessCapacityTerminationPolicy", om.valueToTree(this.getExcessCapacityTerminationPolicy())); } if (this.getLaunchConfiguration() != null) { data.set("launchConfiguration", om.valueToTree(this.getLaunchConfiguration())); } if (this.getLaunchTemplateConfig() != null) { data.set("launchTemplateConfig", om.valueToTree(this.getLaunchTemplateConfig())); } if (this.getLaunchTemplateId() != null) { data.set("launchTemplateId", om.valueToTree(this.getLaunchTemplateId())); } if (this.getLaunchTemplateVersion() != null) { data.set("launchTemplateVersion", om.valueToTree(this.getLaunchTemplateVersion())); } if (this.getMaxSpotPrice() != null) { data.set("maxSpotPrice", om.valueToTree(this.getMaxSpotPrice())); } if (this.getPayAsYouGoAllocationStrategy() != null) { data.set("payAsYouGoAllocationStrategy", om.valueToTree(this.getPayAsYouGoAllocationStrategy())); } if (this.getPayAsYouGoTargetCapacity() != null) { data.set("payAsYouGoTargetCapacity", om.valueToTree(this.getPayAsYouGoTargetCapacity())); } if (this.getSpotAllocationStrategy() != null) { data.set("spotAllocationStrategy", om.valueToTree(this.getSpotAllocationStrategy())); } if (this.getSpotInstanceInterruptionBehavior() != null) { data.set("spotInstanceInterruptionBehavior", om.valueToTree(this.getSpotInstanceInterruptionBehavior())); } if (this.getSpotInstancePoolsToUseCount() != null) { data.set("spotInstancePoolsToUseCount", om.valueToTree(this.getSpotInstancePoolsToUseCount())); } if (this.getSpotTargetCapacity() != null) { data.set("spotTargetCapacity", om.valueToTree(this.getSpotTargetCapacity())); } if (this.getTerminateInstances() != null) { data.set("terminateInstances", om.valueToTree(this.getTerminateInstances())); } if (this.getTerminateInstancesWithExpiration() != null) { data.set("terminateInstancesWithExpiration", om.valueToTree(this.getTerminateInstancesWithExpiration())); } if (this.getValidFrom() != null) { data.set("validFrom", om.valueToTree(this.getValidFrom())); } if (this.getValidUntil() != null) { data.set("validUntil", om.valueToTree(this.getValidUntil())); } final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); struct.set("fqn", om.valueToTree("@alicloud/ros-cdk-ecs.AutoProvisioningGroupProps")); struct.set("data", data); final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode(); obj.set("$jsii.struct", struct); return obj; } @Override public final boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; AutoProvisioningGroupProps.Jsii$Proxy that = (AutoProvisioningGroupProps.Jsii$Proxy) o; if (!totalTargetCapacity.equals(that.totalTargetCapacity)) return false; if (this.autoProvisioningGroupName != null ? !this.autoProvisioningGroupName.equals(that.autoProvisioningGroupName) : that.autoProvisioningGroupName != null) return false; if (this.autoProvisioningGroupType != null ? !this.autoProvisioningGroupType.equals(that.autoProvisioningGroupType) : that.autoProvisioningGroupType != null) return false; if (this.checkExecutionStatus != null ? !this.checkExecutionStatus.equals(that.checkExecutionStatus) : that.checkExecutionStatus != null) return false; if (this.defaultTargetCapacityType != null ? !this.defaultTargetCapacityType.equals(that.defaultTargetCapacityType) : that.defaultTargetCapacityType != null) return false; if (this.description != null ? !this.description.equals(that.description) : that.description != null) return false; if (this.excessCapacityTerminationPolicy != null ? !this.excessCapacityTerminationPolicy.equals(that.excessCapacityTerminationPolicy) : that.excessCapacityTerminationPolicy != null) return false; if (this.launchConfiguration != null ? !this.launchConfiguration.equals(that.launchConfiguration) : that.launchConfiguration != null) return false; if (this.launchTemplateConfig != null ? !this.launchTemplateConfig.equals(that.launchTemplateConfig) : that.launchTemplateConfig != null) return false; if (this.launchTemplateId != null ? !this.launchTemplateId.equals(that.launchTemplateId) : that.launchTemplateId != null) return false; if (this.launchTemplateVersion != null ? !this.launchTemplateVersion.equals(that.launchTemplateVersion) : that.launchTemplateVersion != null) return false; if (this.maxSpotPrice != null ? !this.maxSpotPrice.equals(that.maxSpotPrice) : that.maxSpotPrice != null) return false; if (this.payAsYouGoAllocationStrategy != null ? !this.payAsYouGoAllocationStrategy.equals(that.payAsYouGoAllocationStrategy) : that.payAsYouGoAllocationStrategy != null) return false; if (this.payAsYouGoTargetCapacity != null ? !this.payAsYouGoTargetCapacity.equals(that.payAsYouGoTargetCapacity) : that.payAsYouGoTargetCapacity != null) return false; if (this.spotAllocationStrategy != null ? !this.spotAllocationStrategy.equals(that.spotAllocationStrategy) : that.spotAllocationStrategy != null) return false; if (this.spotInstanceInterruptionBehavior != null ? !this.spotInstanceInterruptionBehavior.equals(that.spotInstanceInterruptionBehavior) : that.spotInstanceInterruptionBehavior != null) return false; if (this.spotInstancePoolsToUseCount != null ? !this.spotInstancePoolsToUseCount.equals(that.spotInstancePoolsToUseCount) : that.spotInstancePoolsToUseCount != null) return false; if (this.spotTargetCapacity != null ? !this.spotTargetCapacity.equals(that.spotTargetCapacity) : that.spotTargetCapacity != null) return false; if (this.terminateInstances != null ? !this.terminateInstances.equals(that.terminateInstances) : that.terminateInstances != null) return false; if (this.terminateInstancesWithExpiration != null ? !this.terminateInstancesWithExpiration.equals(that.terminateInstancesWithExpiration) : that.terminateInstancesWithExpiration != null) return false; if (this.validFrom != null ? !this.validFrom.equals(that.validFrom) : that.validFrom != null) return false; return this.validUntil != null ? this.validUntil.equals(that.validUntil) : that.validUntil == null; } @Override public final int hashCode() { int result = this.totalTargetCapacity.hashCode(); result = 31 * result + (this.autoProvisioningGroupName != null ? this.autoProvisioningGroupName.hashCode() : 0); result = 31 * result + (this.autoProvisioningGroupType != null ? this.autoProvisioningGroupType.hashCode() : 0); result = 31 * result + (this.checkExecutionStatus != null ? this.checkExecutionStatus.hashCode() : 0); result = 31 * result + (this.defaultTargetCapacityType != null ? this.defaultTargetCapacityType.hashCode() : 0); result = 31 * result + (this.description != null ? this.description.hashCode() : 0); result = 31 * result + (this.excessCapacityTerminationPolicy != null ? this.excessCapacityTerminationPolicy.hashCode() : 0); result = 31 * result + (this.launchConfiguration != null ? this.launchConfiguration.hashCode() : 0); result = 31 * result + (this.launchTemplateConfig != null ? this.launchTemplateConfig.hashCode() : 0); result = 31 * result + (this.launchTemplateId != null ? this.launchTemplateId.hashCode() : 0); result = 31 * result + (this.launchTemplateVersion != null ? this.launchTemplateVersion.hashCode() : 0); result = 31 * result + (this.maxSpotPrice != null ? this.maxSpotPrice.hashCode() : 0); result = 31 * result + (this.payAsYouGoAllocationStrategy != null ? this.payAsYouGoAllocationStrategy.hashCode() : 0); result = 31 * result + (this.payAsYouGoTargetCapacity != null ? this.payAsYouGoTargetCapacity.hashCode() : 0); result = 31 * result + (this.spotAllocationStrategy != null ? this.spotAllocationStrategy.hashCode() : 0); result = 31 * result + (this.spotInstanceInterruptionBehavior != null ? this.spotInstanceInterruptionBehavior.hashCode() : 0); result = 31 * result + (this.spotInstancePoolsToUseCount != null ? this.spotInstancePoolsToUseCount.hashCode() : 0); result = 31 * result + (this.spotTargetCapacity != null ? this.spotTargetCapacity.hashCode() : 0); result = 31 * result + (this.terminateInstances != null ? this.terminateInstances.hashCode() : 0); result = 31 * result + (this.terminateInstancesWithExpiration != null ? this.terminateInstancesWithExpiration.hashCode() : 0); result = 31 * result + (this.validFrom != null ? this.validFrom.hashCode() : 0); result = 31 * result + (this.validUntil != null ? this.validUntil.hashCode() : 0); return result; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy