/* * 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 CreateFargateProfile operation. /// Creates an Fargate profile for your Amazon EKS cluster. You must have at least one /// Fargate profile in a cluster to be able to run pods on Fargate. /// /// /// /// The Fargate profile allows an administrator to declare which pods run on Fargate and /// specify which pods run on which Fargate profile. This declaration is done through /// the profile’s selectors. Each profile can have up to five selectors that contain a /// namespace and labels. A namespace is required for every selector. The label field /// consists of multiple optional key-value pairs. Pods that match the selectors are scheduled /// on Fargate. If a to-be-scheduled pod matches any of the selectors in the Fargate profile, /// then that pod is run on Fargate. /// /// /// /// When you create a Fargate profile, you must specify a pod execution role to use with /// the pods that are scheduled with the profile. This role is added to the cluster's /// Kubernetes Role Based /// Access Control (RBAC) for authorization so that the kubelet that /// is running on the Fargate infrastructure can register with your Amazon EKS cluster /// so that it can appear in your cluster as a node. The pod execution role also provides /// IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image /// repositories. For more information, see Pod /// Execution Role in the Amazon EKS User Guide. /// /// /// /// Fargate profiles are immutable. However, you can create a new updated profile to replace /// an existing profile and then delete the original after the updated profile has finished /// creating. /// /// /// /// If any Fargate profiles in a cluster are in the DELETING status, you /// must wait for that Fargate profile to finish deleting before you can create any other /// profiles in that cluster. /// /// /// /// For more information, see Fargate /// Profile in the Amazon EKS User Guide. /// /// public partial class CreateFargateProfileRequest : AmazonEKSRequest { private string _clientRequestToken; private string _clusterName; private string _fargateProfileName; private string _podExecutionRoleArn; private List _selectors = new List(); private List _subnets = new List(); private Dictionary _tags = new Dictionary(); /// /// 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 ClusterName. /// /// The name of the Amazon EKS cluster to apply the Fargate profile to. /// /// [AWSProperty(Required=true)] 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 FargateProfileName. /// /// The name of the Fargate profile. /// /// [AWSProperty(Required=true)] public string FargateProfileName { get { return this._fargateProfileName; } set { this._fargateProfileName = value; } } // Check to see if FargateProfileName property is set internal bool IsSetFargateProfileName() { return this._fargateProfileName != null; } /// /// Gets and sets the property PodExecutionRoleArn. /// /// The Amazon Resource Name (ARN) of the pod execution role to use for pods that match /// the selectors in the Fargate profile. The pod execution role allows Fargate infrastructure /// to register with your cluster as a node, and it provides read access to Amazon ECR /// image repositories. For more information, see Pod /// Execution Role in the Amazon EKS User Guide. /// /// [AWSProperty(Required=true)] public string PodExecutionRoleArn { get { return this._podExecutionRoleArn; } set { this._podExecutionRoleArn = value; } } // Check to see if PodExecutionRoleArn property is set internal bool IsSetPodExecutionRoleArn() { return this._podExecutionRoleArn != null; } /// /// Gets and sets the property Selectors. /// /// The selectors to match for pods to use this Fargate profile. Each selector must have /// an associated namespace. Optionally, you can also specify labels for a namespace. /// You may specify up to five selectors in a Fargate profile. /// /// public List Selectors { get { return this._selectors; } set { this._selectors = value; } } // Check to see if Selectors property is set internal bool IsSetSelectors() { return this._selectors != null && this._selectors.Count > 0; } /// /// Gets and sets the property Subnets. /// /// The IDs of subnets to launch your pods into. At this time, pods running on Fargate /// are not assigned public IP addresses, so only private subnets (with no direct route /// to an Internet Gateway) are accepted for this parameter. /// /// 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 to apply to the Fargate profile to assist with categorization and organization. /// Each tag consists of a key and an optional value. You define both. Fargate profile /// tags do not propagate to any other resources associated with the Fargate profile, /// such as the pods that are scheduled with it. /// /// [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; } } }