com.aliyun.sdk.service.emr20210320.models.NodeGroupConfig Maven / Gradle / Ivy
Show all versions of alibabacloud-emr20210320 Show documentation
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sdk.service.emr20210320.models;
import darabonba.core.RequestModel;
import darabonba.core.TeaModel;
import com.aliyun.sdk.gateway.pop.models.*;
/**
* {@link NodeGroupConfig} extends {@link TeaModel}
*
* NodeGroupConfig
*/
public class NodeGroupConfig extends TeaModel {
@com.aliyun.core.annotation.NameInMap("AdditionalSecurityGroupIds")
private java.util.List < String > additionalSecurityGroupIds;
@com.aliyun.core.annotation.NameInMap("AutoScalingPolicy")
private AutoScalingPolicy autoScalingPolicy;
@com.aliyun.core.annotation.NameInMap("ComponentTags")
private java.util.List < String > componentTags;
@com.aliyun.core.annotation.NameInMap("CostOptimizedConfig")
private CostOptimizedConfig costOptimizedConfig;
@com.aliyun.core.annotation.NameInMap("DataDisks")
private java.util.List < DataDisk > dataDisks;
@com.aliyun.core.annotation.NameInMap("DeploymentSetStrategy")
private String deploymentSetStrategy;
@com.aliyun.core.annotation.NameInMap("GracefulShutdown")
private Boolean gracefulShutdown;
@com.aliyun.core.annotation.NameInMap("InstanceTypes")
private java.util.List < String > instanceTypes;
@com.aliyun.core.annotation.NameInMap("NodeCount")
private Integer nodeCount;
@com.aliyun.core.annotation.NameInMap("NodeGroupName")
private String nodeGroupName;
@com.aliyun.core.annotation.NameInMap("NodeGroupType")
@com.aliyun.core.annotation.Validation(required = true)
private String nodeGroupType;
@com.aliyun.core.annotation.NameInMap("NodeResizeStrategy")
private String nodeResizeStrategy;
@com.aliyun.core.annotation.NameInMap("PaymentType")
private String paymentType;
@com.aliyun.core.annotation.NameInMap("SpotBidPrices")
private java.util.List < SpotBidPrice > spotBidPrices;
@com.aliyun.core.annotation.NameInMap("SpotInstanceRemedy")
private Boolean spotInstanceRemedy;
@com.aliyun.core.annotation.NameInMap("SpotStrategy")
private String spotStrategy;
@com.aliyun.core.annotation.NameInMap("SubscriptionConfig")
private SubscriptionConfig subscriptionConfig;
@com.aliyun.core.annotation.NameInMap("SystemDisk")
private SystemDisk systemDisk;
@com.aliyun.core.annotation.NameInMap("VSwitchIds")
private java.util.List < String > vSwitchIds;
@com.aliyun.core.annotation.NameInMap("WithPublicIp")
private Boolean withPublicIp;
private NodeGroupConfig(Builder builder) {
this.additionalSecurityGroupIds = builder.additionalSecurityGroupIds;
this.autoScalingPolicy = builder.autoScalingPolicy;
this.componentTags = builder.componentTags;
this.costOptimizedConfig = builder.costOptimizedConfig;
this.dataDisks = builder.dataDisks;
this.deploymentSetStrategy = builder.deploymentSetStrategy;
this.gracefulShutdown = builder.gracefulShutdown;
this.instanceTypes = builder.instanceTypes;
this.nodeCount = builder.nodeCount;
this.nodeGroupName = builder.nodeGroupName;
this.nodeGroupType = builder.nodeGroupType;
this.nodeResizeStrategy = builder.nodeResizeStrategy;
this.paymentType = builder.paymentType;
this.spotBidPrices = builder.spotBidPrices;
this.spotInstanceRemedy = builder.spotInstanceRemedy;
this.spotStrategy = builder.spotStrategy;
this.subscriptionConfig = builder.subscriptionConfig;
this.systemDisk = builder.systemDisk;
this.vSwitchIds = builder.vSwitchIds;
this.withPublicIp = builder.withPublicIp;
}
public static Builder builder() {
return new Builder();
}
public static NodeGroupConfig create() {
return builder().build();
}
/**
* @return additionalSecurityGroupIds
*/
public java.util.List < String > getAdditionalSecurityGroupIds() {
return this.additionalSecurityGroupIds;
}
/**
* @return autoScalingPolicy
*/
public AutoScalingPolicy getAutoScalingPolicy() {
return this.autoScalingPolicy;
}
/**
* @return componentTags
*/
public java.util.List < String > getComponentTags() {
return this.componentTags;
}
/**
* @return costOptimizedConfig
*/
public CostOptimizedConfig getCostOptimizedConfig() {
return this.costOptimizedConfig;
}
/**
* @return dataDisks
*/
public java.util.List < DataDisk > getDataDisks() {
return this.dataDisks;
}
/**
* @return deploymentSetStrategy
*/
public String getDeploymentSetStrategy() {
return this.deploymentSetStrategy;
}
/**
* @return gracefulShutdown
*/
public Boolean getGracefulShutdown() {
return this.gracefulShutdown;
}
/**
* @return instanceTypes
*/
public java.util.List < String > getInstanceTypes() {
return this.instanceTypes;
}
/**
* @return nodeCount
*/
public Integer getNodeCount() {
return this.nodeCount;
}
/**
* @return nodeGroupName
*/
public String getNodeGroupName() {
return this.nodeGroupName;
}
/**
* @return nodeGroupType
*/
public String getNodeGroupType() {
return this.nodeGroupType;
}
/**
* @return nodeResizeStrategy
*/
public String getNodeResizeStrategy() {
return this.nodeResizeStrategy;
}
/**
* @return paymentType
*/
public String getPaymentType() {
return this.paymentType;
}
/**
* @return spotBidPrices
*/
public java.util.List < SpotBidPrice > getSpotBidPrices() {
return this.spotBidPrices;
}
/**
* @return spotInstanceRemedy
*/
public Boolean getSpotInstanceRemedy() {
return this.spotInstanceRemedy;
}
/**
* @return spotStrategy
*/
public String getSpotStrategy() {
return this.spotStrategy;
}
/**
* @return subscriptionConfig
*/
public SubscriptionConfig getSubscriptionConfig() {
return this.subscriptionConfig;
}
/**
* @return systemDisk
*/
public SystemDisk getSystemDisk() {
return this.systemDisk;
}
/**
* @return vSwitchIds
*/
public java.util.List < String > getVSwitchIds() {
return this.vSwitchIds;
}
/**
* @return withPublicIp
*/
public Boolean getWithPublicIp() {
return this.withPublicIp;
}
public static final class Builder {
private java.util.List < String > additionalSecurityGroupIds;
private AutoScalingPolicy autoScalingPolicy;
private java.util.List < String > componentTags;
private CostOptimizedConfig costOptimizedConfig;
private java.util.List < DataDisk > dataDisks;
private String deploymentSetStrategy;
private Boolean gracefulShutdown;
private java.util.List < String > instanceTypes;
private Integer nodeCount;
private String nodeGroupName;
private String nodeGroupType;
private String nodeResizeStrategy;
private String paymentType;
private java.util.List < SpotBidPrice > spotBidPrices;
private Boolean spotInstanceRemedy;
private String spotStrategy;
private SubscriptionConfig subscriptionConfig;
private SystemDisk systemDisk;
private java.util.List < String > vSwitchIds;
private Boolean withPublicIp;
/**
* 附加安全组。除集群设置的安全组外,为节点组单独设置的附加安全组。数组元数个数N的取值范围:0~2。
*/
public Builder additionalSecurityGroupIds(java.util.List < String > additionalSecurityGroupIds) {
this.additionalSecurityGroupIds = additionalSecurityGroupIds;
return this;
}
/**
* AutoScalingPolicy.
*/
public Builder autoScalingPolicy(AutoScalingPolicy autoScalingPolicy) {
this.autoScalingPolicy = autoScalingPolicy;
return this;
}
/**
* ComponentTags.
*/
public Builder componentTags(java.util.List < String > componentTags) {
this.componentTags = componentTags;
return this;
}
/**
* 成本优化模式配置。
*/
public Builder costOptimizedConfig(CostOptimizedConfig costOptimizedConfig) {
this.costOptimizedConfig = costOptimizedConfig;
return this;
}
/**
* 数据盘。当前数据盘只支持一种磁盘类型,即数组元数个数N的取值范围:1~1。
*/
public Builder dataDisks(java.util.List < DataDisk > dataDisks) {
this.dataDisks = dataDisks;
return this;
}
/**
* 部署集策略。取值范围:
*
* - NONE:不适用部署集。
* - CLUSTER:使用集群级别部署集。
* - NODE_GROUP:使用节点组级别部署集。
*
* 默认值:NONE。
*/
public Builder deploymentSetStrategy(String deploymentSetStrategy) {
this.deploymentSetStrategy = deploymentSetStrategy;
return this;
}
/**
* 节点组上部署的组件是否开启优雅下线。取值范围:
*
* - true:开启优雅下线。
* - false:不开启优雅下线。
*
* 默认值:false。
*/
public Builder gracefulShutdown(Boolean gracefulShutdown) {
this.gracefulShutdown = gracefulShutdown;
return this;
}
/**
* 节点实例类型列表。数组元数个数N的取值范围:1~100。
*/
public Builder instanceTypes(java.util.List < String > instanceTypes) {
this.instanceTypes = instanceTypes;
return this;
}
/**
* 节点数量。取值范围:1~1000。
*/
public Builder nodeCount(Integer nodeCount) {
this.nodeCount = nodeCount;
return this;
}
/**
* 节点组名称。最大长度128个字符。集群内要求节点组名称唯一。
*/
public Builder nodeGroupName(String nodeGroupName) {
this.nodeGroupName = nodeGroupName;
return this;
}
/**
* 节点组类型。取值范围:
*
* - MASTER:管理类型节点组。
* - CORE:存储类型节点组。
* - TASK:计算类型节点组。
*/
public Builder nodeGroupType(String nodeGroupType) {
this.nodeGroupType = nodeGroupType;
return this;
}
/**
* 节点扩容策略。取值范围:
*
* - COST_OPTIMIZED:成本优化策略。
* - PRIORITY:优先级策略。
*
* 默认值:PRIORITY。
*/
public Builder nodeResizeStrategy(String nodeResizeStrategy) {
this.nodeResizeStrategy = nodeResizeStrategy;
return this;
}
/**
* 节点组付费类型。不传入时默认和集群付费类型一致。取值范围:
*
* - PayAsYouGo:后付费,按量付费。
* - Subscription:预付费,包年包月。
*
* 默认值:PayAsYouGo。
*/
public Builder paymentType(String paymentType) {
this.paymentType = paymentType;
return this;
}
/**
* 抢占式Spot实例出价价格。参数SpotStrategy取值为SpotWithPriceLimit时生效。数组元数个数N的取值范围:0~100。
*/
public Builder spotBidPrices(java.util.List < SpotBidPrice > spotBidPrices) {
this.spotBidPrices = spotBidPrices;
return this;
}
/**
* 开启后,当收到抢占式实例将被回收的系统消息时,伸缩组将尝试创建新的实例,替换掉将被回收的抢占式实例。取值范围:
*
* - true:开启补齐抢占式实例。
* - false:不开启补齐抢占式实例。
*
* 默认值:false。
*/
public Builder spotInstanceRemedy(Boolean spotInstanceRemedy) {
this.spotInstanceRemedy = spotInstanceRemedy;
return this;
}
/**
* 抢占式Spot实例策略。取值范围:
*
* - NoSpot:正常按量付费实例。
* - SpotWithPriceLimit:设置最高出价的抢占式实例。
* - SpotAsPriceGo:系统自动出价,最高按量付费价格的抢占式实例。
*
* 默认值:NoSpot。
*/
public Builder spotStrategy(String spotStrategy) {
this.spotStrategy = spotStrategy;
return this;
}
/**
* 节点组预付费配置。不传入时默认和集群预付费配置一致。
*/
public Builder subscriptionConfig(SubscriptionConfig subscriptionConfig) {
this.subscriptionConfig = subscriptionConfig;
return this;
}
/**
* 系统盘。
*/
public Builder systemDisk(SystemDisk systemDisk) {
this.systemDisk = systemDisk;
return this;
}
/**
* 虚拟机交换机ID列表。数组元数个数N的取值范围:1~20。
*/
public Builder vSwitchIds(java.util.List < String > vSwitchIds) {
this.vSwitchIds = vSwitchIds;
return this;
}
/**
* 是否开公网IP。取值范围:
*
* - true:开公网。
* - false:不开公网。
*
* 默认值:false。
*/
public Builder withPublicIp(Boolean withPublicIp) {
this.withPublicIp = withPublicIp;
return this;
}
public NodeGroupConfig build() {
return new NodeGroupConfig(this);
}
}
}