/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the eks-2017-11-01.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.EKS.Model
{
///
/// Container for the parameters to the CreateCluster operation.
/// Creates an Amazon EKS control plane.
///
///
///
/// The Amazon EKS control plane consists of control plane instances that run the Kubernetes
/// software, such as etcd
and the API server. The control plane runs in
/// an account managed by Amazon Web Services, and the Kubernetes API is exposed by the
/// Amazon EKS API server endpoint. Each Amazon EKS cluster control plane is single tenant
/// and unique. It runs on its own set of Amazon EC2 instances.
///
///
///
/// The cluster control plane is provisioned across multiple Availability Zones and fronted
/// by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic
/// network interfaces in your VPC subnets to provide connectivity from the control plane
/// instances to the nodes (for example, to support kubectl exec
, logs
,
/// and proxy
data flows).
///
///
///
/// Amazon EKS nodes run in your Amazon Web Services account and connect to your cluster's
/// control plane over the Kubernetes API server endpoint and a certificate file that
/// is created for your cluster.
///
///
///
/// In most cases, it takes several minutes to create a cluster. After you create an Amazon
/// EKS cluster, you must configure your Kubernetes tooling to communicate with the API
/// server and launch nodes into your cluster. For more information, see Managing
/// Cluster Authentication and Launching
/// Amazon EKS nodes in the Amazon EKS User Guide.
///
///
public partial class CreateClusterRequest : AmazonEKSRequest
{
private string _clientRequestToken;
private List _encryptionConfig = new List();
private KubernetesNetworkConfigRequest _kubernetesNetworkConfig;
private Logging _logging;
private string _name;
private OutpostConfigRequest _outpostConfig;
private VpcConfigRequest _resourcesVpcConfig;
private string _roleArn;
private Dictionary _tags = new Dictionary();
private string _version;
///
/// Gets and sets the property ClientRequestToken.
///
/// Unique, case-sensitive identifier that you provide to ensure the idempotency of the
/// request.
///
///
public string ClientRequestToken
{
get { return this._clientRequestToken; }
set { this._clientRequestToken = value; }
}
// Check to see if ClientRequestToken property is set
internal bool IsSetClientRequestToken()
{
return this._clientRequestToken != null;
}
///
/// Gets and sets the property EncryptionConfig.
///
/// The encryption configuration for the cluster.
///
///
[AWSProperty(Max=1)]
public List EncryptionConfig
{
get { return this._encryptionConfig; }
set { this._encryptionConfig = value; }
}
// Check to see if EncryptionConfig property is set
internal bool IsSetEncryptionConfig()
{
return this._encryptionConfig != null && this._encryptionConfig.Count > 0;
}
///
/// Gets and sets the property KubernetesNetworkConfig.
///
/// The Kubernetes network configuration for the cluster.
///
///
public KubernetesNetworkConfigRequest KubernetesNetworkConfig
{
get { return this._kubernetesNetworkConfig; }
set { this._kubernetesNetworkConfig = value; }
}
// Check to see if KubernetesNetworkConfig property is set
internal bool IsSetKubernetesNetworkConfig()
{
return this._kubernetesNetworkConfig != null;
}
///
/// Gets and sets the property 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.
///
///
///
public Logging Logging
{
get { return this._logging; }
set { this._logging = value; }
}
// Check to see if Logging property is set
internal bool IsSetLogging()
{
return this._logging != null;
}
///
/// Gets and sets the property Name.
///
/// The unique name to give to your cluster.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property 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 OutpostConfigRequest OutpostConfig
{
get { return this._outpostConfig; }
set { this._outpostConfig = value; }
}
// Check to see if OutpostConfig property is set
internal bool IsSetOutpostConfig()
{
return this._outpostConfig != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Required=true)]
public VpcConfigRequest ResourcesVpcConfig
{
get { return this._resourcesVpcConfig; }
set { this._resourcesVpcConfig = value; }
}
// Check to see if ResourcesVpcConfig property is set
internal bool IsSetResourcesVpcConfig()
{
return this._resourcesVpcConfig != null;
}
///
/// Gets and sets the property 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 .
///
///
[AWSProperty(Required=true)]
public string RoleArn
{
get { return this._roleArn; }
set { this._roleArn = value; }
}
// Check to see if RoleArn property is set
internal bool IsSetRoleArn()
{
return this._roleArn != null;
}
///
/// Gets and sets the property 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.
///
///
[AWSProperty(Min=1, Max=50)]
public Dictionary Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property 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.
///
///
///
public string Version
{
get { return this._version; }
set { this._version = value; }
}
// Check to see if Version property is set
internal bool IsSetVersion()
{
return this._version != null;
}
}
}