/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.eks.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateClusterRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The unique name to give to your cluster. *
*/ private String name; /** ** The desired Kubernetes version for your cluster. If you don't specify a value here, the default version available * in Amazon EKS is used. *
** The default version might not be the latest version available. *
** The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make * calls to Amazon Web Services API operations on your behalf. For more information, see Amazon EKS Service IAM Role in * the Amazon EKS User Guide . *
*/ private String roleArn; /** ** The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific * requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group * Considerations in the Amazon EKS User Guide. You must specify at least two subnets. You can specify up * to five security groups. However, we recommend that you use a dedicated security group for your cluster control * plane. *
*/ private VpcConfigRequest resourcesVpcConfig; /** ** The Kubernetes network configuration for the cluster. *
*/ private KubernetesNetworkConfigRequest kubernetesNetworkConfig; /** ** Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, * cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster control plane * logs in the Amazon EKS User Guide . *
** CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For * more information, see CloudWatch Pricing. *
** Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. *
*/ private String clientRequestToken; /** ** The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key * and an optional value. You define both. *
*/ private java.util.Map* The encryption configuration for the cluster. *
*/ private java.util.List* An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. * Before creating a local cluster on an Outpost, review Local clusters * for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This object isn't * available for creating Amazon EKS clusters on the Amazon Web Services cloud. *
*/ private OutpostConfigRequest outpostConfig; /** ** The unique name to give to your cluster. *
* * @param name * The unique name to give to your cluster. */ public void setName(String name) { this.name = name; } /** ** The unique name to give to your cluster. *
* * @return The unique name to give to your cluster. */ public String getName() { return this.name; } /** ** The unique name to give to your cluster. *
* * @param name * The unique name to give to your cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withName(String name) { setName(name); return this; } /** ** The desired Kubernetes version for your cluster. If you don't specify a value here, the default version available * in Amazon EKS is used. *
** The default version might not be the latest version available. *
** The default version might not be the latest version available. *
*/ public void setVersion(String version) { this.version = version; } /** ** The desired Kubernetes version for your cluster. If you don't specify a value here, the default version available * in Amazon EKS is used. *
** The default version might not be the latest version available. *
** The default version might not be the latest version available. *
*/ public String getVersion() { return this.version; } /** ** The desired Kubernetes version for your cluster. If you don't specify a value here, the default version available * in Amazon EKS is used. *
** The default version might not be the latest version available. *
** The default version might not be the latest version available. *
* @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withVersion(String version) { setVersion(version); return this; } /** ** The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make * calls to Amazon Web Services API operations on your behalf. For more information, see Amazon EKS Service IAM Role in * the Amazon EKS User Guide . *
* * @param roleArn * The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane * to make calls to Amazon Web Services API operations on your behalf. For more information, see Amazon EKS Service IAM * Role in the Amazon EKS User Guide . */ public void setRoleArn(String roleArn) { this.roleArn = roleArn; } /** ** The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make * calls to Amazon Web Services API operations on your behalf. For more information, see Amazon EKS Service IAM Role in * the Amazon EKS User Guide . *
* * @return The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane * to make calls to Amazon Web Services API operations on your behalf. For more information, see Amazon EKS Service IAM * Role in the Amazon EKS User Guide . */ public String getRoleArn() { return this.roleArn; } /** ** The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make * calls to Amazon Web Services API operations on your behalf. For more information, see Amazon EKS Service IAM Role in * the Amazon EKS User Guide . *
* * @param roleArn * The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane * to make calls to Amazon Web Services API operations on your behalf. For more information, see Amazon EKS Service IAM * Role in the Amazon EKS User Guide . * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withRoleArn(String roleArn) { setRoleArn(roleArn); return this; } /** ** The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific * requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group * Considerations in the Amazon EKS User Guide. You must specify at least two subnets. You can specify up * to five security groups. However, we recommend that you use a dedicated security group for your cluster control * plane. *
* * @param resourcesVpcConfig * The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific * requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations * and Cluster Security Group * Considerations in the Amazon EKS User Guide. You must specify at least two subnets. You can * specify up to five security groups. However, we recommend that you use a dedicated security group for your * cluster control plane. */ public void setResourcesVpcConfig(VpcConfigRequest resourcesVpcConfig) { this.resourcesVpcConfig = resourcesVpcConfig; } /** ** The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific * requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group * Considerations in the Amazon EKS User Guide. You must specify at least two subnets. You can specify up * to five security groups. However, we recommend that you use a dedicated security group for your cluster control * plane. *
* * @return The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific * requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations * and Cluster Security Group * Considerations in the Amazon EKS User Guide. You must specify at least two subnets. You can * specify up to five security groups. However, we recommend that you use a dedicated security group for * your cluster control plane. */ public VpcConfigRequest getResourcesVpcConfig() { return this.resourcesVpcConfig; } /** ** The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific * requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations and Cluster Security Group * Considerations in the Amazon EKS User Guide. You must specify at least two subnets. You can specify up * to five security groups. However, we recommend that you use a dedicated security group for your cluster control * plane. *
* * @param resourcesVpcConfig * The VPC configuration that's used by the cluster control plane. Amazon EKS VPC resources have specific * requirements to work properly with Kubernetes. For more information, see Cluster VPC Considerations * and Cluster Security Group * Considerations in the Amazon EKS User Guide. You must specify at least two subnets. You can * specify up to five security groups. However, we recommend that you use a dedicated security group for your * cluster control plane. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withResourcesVpcConfig(VpcConfigRequest resourcesVpcConfig) { setResourcesVpcConfig(resourcesVpcConfig); return this; } /** ** The Kubernetes network configuration for the cluster. *
* * @param kubernetesNetworkConfig * The Kubernetes network configuration for the cluster. */ public void setKubernetesNetworkConfig(KubernetesNetworkConfigRequest kubernetesNetworkConfig) { this.kubernetesNetworkConfig = kubernetesNetworkConfig; } /** ** The Kubernetes network configuration for the cluster. *
* * @return The Kubernetes network configuration for the cluster. */ public KubernetesNetworkConfigRequest getKubernetesNetworkConfig() { return this.kubernetesNetworkConfig; } /** ** The Kubernetes network configuration for the cluster. *
* * @param kubernetesNetworkConfig * The Kubernetes network configuration for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withKubernetesNetworkConfig(KubernetesNetworkConfigRequest kubernetesNetworkConfig) { setKubernetesNetworkConfig(kubernetesNetworkConfig); return this; } /** ** Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, * cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster control plane * logs in the Amazon EKS User Guide . *
** CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For * more information, see CloudWatch Pricing. *
** CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. * For more information, see CloudWatch Pricing. *
*/ public void setLogging(Logging logging) { this.logging = logging; } /** ** Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, * cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster control plane * logs in the Amazon EKS User Guide . *
** CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For * more information, see CloudWatch Pricing. *
** CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. * For more information, see CloudWatch Pricing. *
*/ public Logging getLogging() { return this.logging; } /** ** Enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, * cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster control plane * logs in the Amazon EKS User Guide . *
** CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For * more information, see CloudWatch Pricing. *
** CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. * For more information, see CloudWatch Pricing. *
* @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withLogging(Logging logging) { setLogging(logging); return this; } /** ** Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. *
* * @param clientRequestToken * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */ public void setClientRequestToken(String clientRequestToken) { this.clientRequestToken = clientRequestToken; } /** ** Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. *
* * @return Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */ public String getClientRequestToken() { return this.clientRequestToken; } /** ** Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. *
* * @param clientRequestToken * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withClientRequestToken(String clientRequestToken) { setClientRequestToken(clientRequestToken); return this; } /** ** The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key * and an optional value. You define both. *
* * @return The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of * a key and an optional value. You define both. */ public java.util.Map* The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key * and an optional value. You define both. *
* * @param tags * The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of * a key and an optional value. You define both. */ public void setTags(java.util.Map* The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key * and an optional value. You define both. *
* * @param tags * The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of * a key and an optional value. You define both. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withTags(java.util.Map* The encryption configuration for the cluster. *
* * @return The encryption configuration for the cluster. */ public java.util.List* The encryption configuration for the cluster. *
* * @param encryptionConfig * The encryption configuration for the cluster. */ public void setEncryptionConfig(java.util.Collection* The encryption configuration for the cluster. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setEncryptionConfig(java.util.Collection)} or {@link #withEncryptionConfig(java.util.Collection)} if you * want to override the existing values. *
* * @param encryptionConfig * The encryption configuration for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withEncryptionConfig(EncryptionConfig... encryptionConfig) { if (this.encryptionConfig == null) { setEncryptionConfig(new java.util.ArrayList* The encryption configuration for the cluster. *
* * @param encryptionConfig * The encryption configuration for the cluster. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withEncryptionConfig(java.util.Collection* An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. * Before creating a local cluster on an Outpost, review Local clusters * for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This object isn't * available for creating Amazon EKS clusters on the Amazon Web Services cloud. *
* * @param outpostConfig * An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services * Outpost. Before creating a local cluster on an Outpost, review Local * clusters for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This * object isn't available for creating Amazon EKS clusters on the Amazon Web Services cloud. */ public void setOutpostConfig(OutpostConfigRequest outpostConfig) { this.outpostConfig = outpostConfig; } /** ** An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. * Before creating a local cluster on an Outpost, review Local clusters * for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This object isn't * available for creating Amazon EKS clusters on the Amazon Web Services cloud. *
* * @return An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services * Outpost. Before creating a local cluster on an Outpost, review Local * clusters for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This * object isn't available for creating Amazon EKS clusters on the Amazon Web Services cloud. */ public OutpostConfigRequest getOutpostConfig() { return this.outpostConfig; } /** ** An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. * Before creating a local cluster on an Outpost, review Local clusters * for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This object isn't * available for creating Amazon EKS clusters on the Amazon Web Services cloud. *
* * @param outpostConfig * An object representing the configuration of your local Amazon EKS cluster on an Amazon Web Services * Outpost. Before creating a local cluster on an Outpost, review Local * clusters for Amazon EKS on Amazon Web Services Outposts in the Amazon EKS User Guide. This * object isn't available for creating Amazon EKS clusters on the Amazon Web Services cloud. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateClusterRequest withOutpostConfig(OutpostConfigRequest outpostConfig) { setOutpostConfig(outpostConfig); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getName() != null) sb.append("Name: ").append(getName()).append(","); if (getVersion() != null) sb.append("Version: ").append(getVersion()).append(","); if (getRoleArn() != null) sb.append("RoleArn: ").append(getRoleArn()).append(","); if (getResourcesVpcConfig() != null) sb.append("ResourcesVpcConfig: ").append(getResourcesVpcConfig()).append(","); if (getKubernetesNetworkConfig() != null) sb.append("KubernetesNetworkConfig: ").append(getKubernetesNetworkConfig()).append(","); if (getLogging() != null) sb.append("Logging: ").append(getLogging()).append(","); if (getClientRequestToken() != null) sb.append("ClientRequestToken: ").append(getClientRequestToken()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()).append(","); if (getEncryptionConfig() != null) sb.append("EncryptionConfig: ").append(getEncryptionConfig()).append(","); if (getOutpostConfig() != null) sb.append("OutpostConfig: ").append(getOutpostConfig()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof CreateClusterRequest == false) return false; CreateClusterRequest other = (CreateClusterRequest) obj; if (other.getName() == null ^ this.getName() == null) return false; if (other.getName() != null && other.getName().equals(this.getName()) == false) return false; if (other.getVersion() == null ^ this.getVersion() == null) return false; if (other.getVersion() != null && other.getVersion().equals(this.getVersion()) == false) return false; if (other.getRoleArn() == null ^ this.getRoleArn() == null) return false; if (other.getRoleArn() != null && other.getRoleArn().equals(this.getRoleArn()) == false) return false; if (other.getResourcesVpcConfig() == null ^ this.getResourcesVpcConfig() == null) return false; if (other.getResourcesVpcConfig() != null && other.getResourcesVpcConfig().equals(this.getResourcesVpcConfig()) == false) return false; if (other.getKubernetesNetworkConfig() == null ^ this.getKubernetesNetworkConfig() == null) return false; if (other.getKubernetesNetworkConfig() != null && other.getKubernetesNetworkConfig().equals(this.getKubernetesNetworkConfig()) == false) return false; if (other.getLogging() == null ^ this.getLogging() == null) return false; if (other.getLogging() != null && other.getLogging().equals(this.getLogging()) == false) return false; if (other.getClientRequestToken() == null ^ this.getClientRequestToken() == null) return false; if (other.getClientRequestToken() != null && other.getClientRequestToken().equals(this.getClientRequestToken()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getEncryptionConfig() == null ^ this.getEncryptionConfig() == null) return false; if (other.getEncryptionConfig() != null && other.getEncryptionConfig().equals(this.getEncryptionConfig()) == false) return false; if (other.getOutpostConfig() == null ^ this.getOutpostConfig() == null) return false; if (other.getOutpostConfig() != null && other.getOutpostConfig().equals(this.getOutpostConfig()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getName() == null) ? 0 : getName().hashCode()); hashCode = prime * hashCode + ((getVersion() == null) ? 0 : getVersion().hashCode()); hashCode = prime * hashCode + ((getRoleArn() == null) ? 0 : getRoleArn().hashCode()); hashCode = prime * hashCode + ((getResourcesVpcConfig() == null) ? 0 : getResourcesVpcConfig().hashCode()); hashCode = prime * hashCode + ((getKubernetesNetworkConfig() == null) ? 0 : getKubernetesNetworkConfig().hashCode()); hashCode = prime * hashCode + ((getLogging() == null) ? 0 : getLogging().hashCode()); hashCode = prime * hashCode + ((getClientRequestToken() == null) ? 0 : getClientRequestToken().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getEncryptionConfig() == null) ? 0 : getEncryptionConfig().hashCode()); hashCode = prime * hashCode + ((getOutpostConfig() == null) ? 0 : getOutpostConfig().hashCode()); return hashCode; } @Override public CreateClusterRequest clone() { return (CreateClusterRequest) super.clone(); } }