com.aliyun.sdk.service.emr20210320.models.CreateClusterRequest 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 CreateClusterRequest} extends {@link RequestModel}
*
* CreateClusterRequest
*/
public class CreateClusterRequest extends Request {
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ApplicationConfigs")
private java.util.List < ApplicationConfig > applicationConfigs;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("Applications")
@com.aliyun.core.annotation.Validation(required = true)
private java.util.List < Application > applications;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("BootstrapScripts")
private java.util.List < Script > bootstrapScripts;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ClientToken")
private String clientToken;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ClusterName")
@com.aliyun.core.annotation.Validation(required = true)
private String clusterName;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ClusterType")
@com.aliyun.core.annotation.Validation(required = true)
private String clusterType;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("DeployMode")
private String deployMode;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("Description")
private String description;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("NodeAttributes")
@com.aliyun.core.annotation.Validation(required = true)
private NodeAttributes nodeAttributes;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("NodeGroups")
@com.aliyun.core.annotation.Validation(required = true)
private java.util.List < NodeGroupConfig > nodeGroups;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("PaymentType")
private String paymentType;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("RegionId")
@com.aliyun.core.annotation.Validation(required = true)
private String regionId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ReleaseVersion")
@com.aliyun.core.annotation.Validation(required = true)
private String releaseVersion;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("ResourceGroupId")
private String resourceGroupId;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("SecurityMode")
private String securityMode;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("SubscriptionConfig")
private SubscriptionConfig subscriptionConfig;
@com.aliyun.core.annotation.Query
@com.aliyun.core.annotation.NameInMap("Tags")
private java.util.List < Tag > tags;
private CreateClusterRequest(Builder builder) {
super(builder);
this.applicationConfigs = builder.applicationConfigs;
this.applications = builder.applications;
this.bootstrapScripts = builder.bootstrapScripts;
this.clientToken = builder.clientToken;
this.clusterName = builder.clusterName;
this.clusterType = builder.clusterType;
this.deployMode = builder.deployMode;
this.description = builder.description;
this.nodeAttributes = builder.nodeAttributes;
this.nodeGroups = builder.nodeGroups;
this.paymentType = builder.paymentType;
this.regionId = builder.regionId;
this.releaseVersion = builder.releaseVersion;
this.resourceGroupId = builder.resourceGroupId;
this.securityMode = builder.securityMode;
this.subscriptionConfig = builder.subscriptionConfig;
this.tags = builder.tags;
}
public static Builder builder() {
return new Builder();
}
public static CreateClusterRequest create() {
return builder().build();
}
@Override
public Builder toBuilder() {
return new Builder(this);
}
/**
* @return applicationConfigs
*/
public java.util.List < ApplicationConfig > getApplicationConfigs() {
return this.applicationConfigs;
}
/**
* @return applications
*/
public java.util.List < Application > getApplications() {
return this.applications;
}
/**
* @return bootstrapScripts
*/
public java.util.List < Script > getBootstrapScripts() {
return this.bootstrapScripts;
}
/**
* @return clientToken
*/
public String getClientToken() {
return this.clientToken;
}
/**
* @return clusterName
*/
public String getClusterName() {
return this.clusterName;
}
/**
* @return clusterType
*/
public String getClusterType() {
return this.clusterType;
}
/**
* @return deployMode
*/
public String getDeployMode() {
return this.deployMode;
}
/**
* @return description
*/
public String getDescription() {
return this.description;
}
/**
* @return nodeAttributes
*/
public NodeAttributes getNodeAttributes() {
return this.nodeAttributes;
}
/**
* @return nodeGroups
*/
public java.util.List < NodeGroupConfig > getNodeGroups() {
return this.nodeGroups;
}
/**
* @return paymentType
*/
public String getPaymentType() {
return this.paymentType;
}
/**
* @return regionId
*/
public String getRegionId() {
return this.regionId;
}
/**
* @return releaseVersion
*/
public String getReleaseVersion() {
return this.releaseVersion;
}
/**
* @return resourceGroupId
*/
public String getResourceGroupId() {
return this.resourceGroupId;
}
/**
* @return securityMode
*/
public String getSecurityMode() {
return this.securityMode;
}
/**
* @return subscriptionConfig
*/
public SubscriptionConfig getSubscriptionConfig() {
return this.subscriptionConfig;
}
/**
* @return tags
*/
public java.util.List < Tag > getTags() {
return this.tags;
}
public static final class Builder extends Request.Builder {
private java.util.List < ApplicationConfig > applicationConfigs;
private java.util.List < Application > applications;
private java.util.List < Script > bootstrapScripts;
private String clientToken;
private String clusterName;
private String clusterType;
private String deployMode;
private String description;
private NodeAttributes nodeAttributes;
private java.util.List < NodeGroupConfig > nodeGroups;
private String paymentType;
private String regionId;
private String releaseVersion;
private String resourceGroupId;
private String securityMode;
private SubscriptionConfig subscriptionConfig;
private java.util.List < Tag > tags;
private Builder() {
super();
}
private Builder(CreateClusterRequest request) {
super(request);
this.applicationConfigs = request.applicationConfigs;
this.applications = request.applications;
this.bootstrapScripts = request.bootstrapScripts;
this.clientToken = request.clientToken;
this.clusterName = request.clusterName;
this.clusterType = request.clusterType;
this.deployMode = request.deployMode;
this.description = request.description;
this.nodeAttributes = request.nodeAttributes;
this.nodeGroups = request.nodeGroups;
this.paymentType = request.paymentType;
this.regionId = request.regionId;
this.releaseVersion = request.releaseVersion;
this.resourceGroupId = request.resourceGroupId;
this.securityMode = request.securityMode;
this.subscriptionConfig = request.subscriptionConfig;
this.tags = request.tags;
}
/**
* The application configurations. You can specify a maximum of 1,000 items.
*/
public Builder applicationConfigs(java.util.List < ApplicationConfig > applicationConfigs) {
this.putQueryParameter("ApplicationConfigs", applicationConfigs);
this.applicationConfigs = applicationConfigs;
return this;
}
/**
* The applications. You can specify a maximum of 100 items.
*/
public Builder applications(java.util.List < Application > applications) {
this.putQueryParameter("Applications", applications);
this.applications = applications;
return this;
}
/**
* The bootstrap actions. You can specify a maximum of 10 items.
*/
public Builder bootstrapScripts(java.util.List < Script > bootstrapScripts) {
this.putQueryParameter("BootstrapScripts", bootstrapScripts);
this.bootstrapScripts = bootstrapScripts;
return this;
}
/**
* The idempotent client token. If you call the same ClientToken multiple times, the returned results are the same. Only one cluster can be created with the same ClientToken.
*/
public Builder clientToken(String clientToken) {
this.putQueryParameter("ClientToken", clientToken);
this.clientToken = clientToken;
return this;
}
/**
* The name of the cluster. The name must be 1 to 128 characters in length. It must start with a letter and cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (\_), periods (.), and hyphens (-).
*/
public Builder clusterName(String clusterName) {
this.putQueryParameter("ClusterName", clusterName);
this.clusterName = clusterName;
return this;
}
/**
* The type of the cluster. Valid values:
*
*
* * DATALAKE: data lake
* * OLAP: online analytical processing (OLAP)
* * DATAFLOW: Dataflow
* * DATASERVING: DataServing
* * CUSTOM: a custom hybrid cluster.
* * HADOOP: the old data lake. We recommend that you use the new data lake.
*
* If you create an EMR cluster for the first time after 17:00 (UTC +8) on December 19, 2022, you cannot select the HADOOP, DATA_SCIENCE, PRESTO, or ZOOKEEPER cluster type.
*/
public Builder clusterType(String clusterType) {
this.putQueryParameter("ClusterType", clusterType);
this.clusterType = clusterType;
return this;
}
/**
* The deployment mode of master nodes in the cluster. Valid values:
*
*
* * NORMAL: regular mode. This is the default value. A cluster that contains only one master node is created.
* * HA: high availability (HA) mode. A cluster that contains three master nodes is created.
*/
public Builder deployMode(String deployMode) {
this.putQueryParameter("DeployMode", deployMode);
this.deployMode = deployMode;
return this;
}
/**
* Description.
*/
public Builder description(String description) {
this.putQueryParameter("Description", description);
this.description = description;
return this;
}
/**
* The attributes of all ECS instances.
*/
public Builder nodeAttributes(NodeAttributes nodeAttributes) {
this.putQueryParameter("NodeAttributes", nodeAttributes);
this.nodeAttributes = nodeAttributes;
return this;
}
/**
* The node groups. You can specify a maximum of 100 items.
*/
public Builder nodeGroups(java.util.List < NodeGroupConfig > nodeGroups) {
this.putQueryParameter("NodeGroups", nodeGroups);
this.nodeGroups = nodeGroups;
return this;
}
/**
* The billing cycle of the instance. Valid values:
*
*
* * PayAsYouGo: pay-as-you-go
* * Subscription: subscription
*
* Default value: PayAsYouGo.
*/
public Builder paymentType(String paymentType) {
this.putQueryParameter("PaymentType", paymentType);
this.paymentType = paymentType;
return this;
}
/**
* The region ID.
*/
public Builder regionId(String regionId) {
this.putQueryParameter("RegionId", regionId);
this.regionId = regionId;
return this;
}
/**
* The version of EMR. You can view the EMR release version on the EMR cluster purchase page.
*/
public Builder releaseVersion(String releaseVersion) {
this.putQueryParameter("ReleaseVersion", releaseVersion);
this.releaseVersion = releaseVersion;
return this;
}
/**
* The ID of the resource group to which to assign the ENI.
*/
public Builder resourceGroupId(String resourceGroupId) {
this.putQueryParameter("ResourceGroupId", resourceGroupId);
this.resourceGroupId = resourceGroupId;
return this;
}
/**
* The security mode of the cluster. Valid values:
*
*
* * NORMAL: disables Kerberos authentication for the cluster. This is the default value.
* * KERBEROS: enables Kerberos authentication for the cluster.
*/
public Builder securityMode(String securityMode) {
this.putQueryParameter("SecurityMode", securityMode);
this.securityMode = securityMode;
return this;
}
/**
* The subscription configurations. This parameter is required only if you set the PaymentType parameter to Subscription.
*/
public Builder subscriptionConfig(SubscriptionConfig subscriptionConfig) {
this.putQueryParameter("SubscriptionConfig", subscriptionConfig);
this.subscriptionConfig = subscriptionConfig;
return this;
}
/**
* The tags. You can specify a maximum of 20 items.
*/
public Builder tags(java.util.List < Tag > tags) {
this.putQueryParameter("Tags", tags);
this.tags = tags;
return this;
}
@Override
public CreateClusterRequest build() {
return new CreateClusterRequest(this);
}
}
}