/*
* 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
{
///
/// An object representing an Amazon EKS managed node group.
///
public partial class Nodegroup
{
private AMITypes _amiType;
private CapacityTypes _capacityType;
private string _clusterName;
private DateTime? _createdAt;
private int? _diskSize;
private NodegroupHealth _health;
private List _instanceTypes = new List();
private Dictionary _labels = new Dictionary();
private LaunchTemplateSpecification _launchTemplate;
private DateTime? _modifiedAt;
private string _nodegroupArn;
private string _nodegroupName;
private string _nodeRole;
private string _releaseVersion;
private RemoteAccessConfig _remoteAccess;
private NodegroupResources _resources;
private NodegroupScalingConfig _scalingConfig;
private NodegroupStatus _status;
private List _subnets = new List();
private Dictionary _tags = new Dictionary();
private List _taints = new List();
private NodegroupUpdateConfig _updateConfig;
private string _version;
///
/// Gets and sets the property AmiType.
///
/// If the node group was deployed using a launch template with a custom AMI, then this
/// is CUSTOM
. For node groups that weren't deployed using a launch template,
/// this is the AMI type that was specified in the node group configuration.
///
///
public AMITypes AmiType
{
get { return this._amiType; }
set { this._amiType = value; }
}
// Check to see if AmiType property is set
internal bool IsSetAmiType()
{
return this._amiType != null;
}
///
/// Gets and sets the property CapacityType.
///
/// The capacity type of your managed node group.
///
///
public CapacityTypes CapacityType
{
get { return this._capacityType; }
set { this._capacityType = value; }
}
// Check to see if CapacityType property is set
internal bool IsSetCapacityType()
{
return this._capacityType != null;
}
///
/// Gets and sets the property ClusterName.
///
/// The name of the cluster that the managed node group resides in.
///
///
public string ClusterName
{
get { return this._clusterName; }
set { this._clusterName = value; }
}
// Check to see if ClusterName property is set
internal bool IsSetClusterName()
{
return this._clusterName != null;
}
///
/// Gets and sets the property CreatedAt.
///
/// The Unix epoch timestamp in seconds for when the managed node group was created.
///
///
public DateTime CreatedAt
{
get { return this._createdAt.GetValueOrDefault(); }
set { this._createdAt = value; }
}
// Check to see if CreatedAt property is set
internal bool IsSetCreatedAt()
{
return this._createdAt.HasValue;
}
///
/// Gets and sets the property DiskSize.
///
/// If the node group wasn't deployed with a launch template, then this is the disk size
/// in the node group configuration. If the node group was deployed with a launch template,
/// then this is null
.
///
///
public int DiskSize
{
get { return this._diskSize.GetValueOrDefault(); }
set { this._diskSize = value; }
}
// Check to see if DiskSize property is set
internal bool IsSetDiskSize()
{
return this._diskSize.HasValue;
}
///
/// Gets and sets the property Health.
///
/// The health status of the node group. If there are issues with your node group's health,
/// they are listed here.
///
///
public NodegroupHealth Health
{
get { return this._health; }
set { this._health = value; }
}
// Check to see if Health property is set
internal bool IsSetHealth()
{
return this._health != null;
}
///
/// Gets and sets the property InstanceTypes.
///
/// If the node group wasn't deployed with a launch template, then this is the instance
/// type that is associated with the node group. If the node group was deployed with a
/// launch template, then this is null
.
///
///
public List InstanceTypes
{
get { return this._instanceTypes; }
set { this._instanceTypes = value; }
}
// Check to see if InstanceTypes property is set
internal bool IsSetInstanceTypes()
{
return this._instanceTypes != null && this._instanceTypes.Count > 0;
}
///
/// Gets and sets the property Labels.
///
/// The Kubernetes labels applied to the nodes in the node group.
///
///
///
/// Only labels that are applied with the Amazon EKS API are shown here. There may be
/// other Kubernetes labels applied to the nodes in this group.
///
///
///
public Dictionary Labels
{
get { return this._labels; }
set { this._labels = value; }
}
// Check to see if Labels property is set
internal bool IsSetLabels()
{
return this._labels != null && this._labels.Count > 0;
}
///
/// Gets and sets the property LaunchTemplate.
///
/// If a launch template was used to create the node group, then this is the launch template
/// that was used.
///
///
public LaunchTemplateSpecification LaunchTemplate
{
get { return this._launchTemplate; }
set { this._launchTemplate = value; }
}
// Check to see if LaunchTemplate property is set
internal bool IsSetLaunchTemplate()
{
return this._launchTemplate != null;
}
///
/// Gets and sets the property ModifiedAt.
///
/// The Unix epoch timestamp in seconds for when the managed node group was last modified.
///
///
public DateTime ModifiedAt
{
get { return this._modifiedAt.GetValueOrDefault(); }
set { this._modifiedAt = value; }
}
// Check to see if ModifiedAt property is set
internal bool IsSetModifiedAt()
{
return this._modifiedAt.HasValue;
}
///
/// Gets and sets the property NodegroupArn.
///
/// The Amazon Resource Name (ARN) associated with the managed node group.
///
///
public string NodegroupArn
{
get { return this._nodegroupArn; }
set { this._nodegroupArn = value; }
}
// Check to see if NodegroupArn property is set
internal bool IsSetNodegroupArn()
{
return this._nodegroupArn != null;
}
///
/// Gets and sets the property NodegroupName.
///
/// The name associated with an Amazon EKS managed node group.
///
///
public string NodegroupName
{
get { return this._nodegroupName; }
set { this._nodegroupName = value; }
}
// Check to see if NodegroupName property is set
internal bool IsSetNodegroupName()
{
return this._nodegroupName != null;
}
///
/// Gets and sets the property NodeRole.
///
/// The IAM role associated with your node group. The Amazon EKS node kubelet
/// daemon makes calls to Amazon Web Services APIs on your behalf. Nodes receive permissions
/// for these API calls through an IAM instance profile and associated policies.
///
///
public string NodeRole
{
get { return this._nodeRole; }
set { this._nodeRole = value; }
}
// Check to see if NodeRole property is set
internal bool IsSetNodeRole()
{
return this._nodeRole != null;
}
///
/// Gets and sets the property ReleaseVersion.
///
/// If the node group was deployed using a launch template with a custom AMI, then this
/// is the AMI ID that was specified in the launch template. For node groups that weren't
/// deployed using a launch template, this is the version of the Amazon EKS optimized
/// AMI that the node group was deployed with.
///
///
public string ReleaseVersion
{
get { return this._releaseVersion; }
set { this._releaseVersion = value; }
}
// Check to see if ReleaseVersion property is set
internal bool IsSetReleaseVersion()
{
return this._releaseVersion != null;
}
///
/// Gets and sets the property RemoteAccess.
///
/// If the node group wasn't deployed with a launch template, then this is the remote
/// access configuration that is associated with the node group. If the node group was
/// deployed with a launch template, then this is null
.
///
///
public RemoteAccessConfig RemoteAccess
{
get { return this._remoteAccess; }
set { this._remoteAccess = value; }
}
// Check to see if RemoteAccess property is set
internal bool IsSetRemoteAccess()
{
return this._remoteAccess != null;
}
///
/// Gets and sets the property Resources.
///
/// The resources associated with the node group, such as Auto Scaling groups and security
/// groups for remote access.
///
///
public NodegroupResources Resources
{
get { return this._resources; }
set { this._resources = value; }
}
// Check to see if Resources property is set
internal bool IsSetResources()
{
return this._resources != null;
}
///
/// Gets and sets the property ScalingConfig.
///
/// The scaling configuration details for the Auto Scaling group that is associated with
/// your node group.
///
///
public NodegroupScalingConfig ScalingConfig
{
get { return this._scalingConfig; }
set { this._scalingConfig = value; }
}
// Check to see if ScalingConfig property is set
internal bool IsSetScalingConfig()
{
return this._scalingConfig != null;
}
///
/// Gets and sets the property Status.
///
/// The current status of the managed node group.
///
///
public NodegroupStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property Subnets.
///
/// The subnets that were specified for the Auto Scaling group that is associated with
/// your node group.
///
///
public List Subnets
{
get { return this._subnets; }
set { this._subnets = value; }
}
// Check to see if Subnets property is set
internal bool IsSetSubnets()
{
return this._subnets != null && this._subnets.Count > 0;
}
///
/// Gets and sets the property Tags.
///
/// The metadata applied to the node group to assist with categorization and organization.
/// Each tag consists of a key and an optional value. You define both. Node group tags
/// do not propagate to any other resources associated with the node group, such as the
/// Amazon EC2 instances or subnets.
///
///
[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 Taints.
///
/// The Kubernetes taints to be applied to the nodes in the node group when they are created.
/// Effect is one of No_Schedule
, Prefer_No_Schedule
, or No_Execute
.
/// Kubernetes taints can be used together with tolerations to control how workloads are
/// scheduled to your nodes. For more information, see Node
/// taints on managed node groups.
///
///
public List Taints
{
get { return this._taints; }
set { this._taints = value; }
}
// Check to see if Taints property is set
internal bool IsSetTaints()
{
return this._taints != null && this._taints.Count > 0;
}
///
/// Gets and sets the property UpdateConfig.
///
/// The node group update configuration.
///
///
public NodegroupUpdateConfig UpdateConfig
{
get { return this._updateConfig; }
set { this._updateConfig = value; }
}
// Check to see if UpdateConfig property is set
internal bool IsSetUpdateConfig()
{
return this._updateConfig != null;
}
///
/// Gets and sets the property Version.
///
/// The Kubernetes version of the managed node group.
///
///
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;
}
}
}