/*
* 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 ecs-2014-11-13.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.ECS.Model
{
///
/// Container for the parameters to the CreateTaskSet operation.
/// Create a task set in the specified cluster and service. This is used when a service
/// uses the EXTERNAL
deployment controller type. For more information, see
/// Amazon
/// ECS deployment types in the Amazon Elastic Container Service Developer Guide.
///
public partial class CreateTaskSetRequest : AmazonECSRequest
{
private List _capacityProviderStrategy = new List();
private string _clientToken;
private string _cluster;
private string _externalId;
private LaunchType _launchType;
private List _loadBalancers = new List();
private NetworkConfiguration _networkConfiguration;
private string _platformVersion;
private Scale _scale;
private string _service;
private List _serviceRegistries = new List();
private List _tags = new List();
private string _taskDefinition;
///
/// Gets and sets the property CapacityProviderStrategy.
///
/// The capacity provider strategy to use for the task set.
///
///
///
/// A capacity provider strategy consists of one or more capacity providers along with
/// the base
and weight
to assign to them. A capacity provider
/// must be associated with the cluster to be used in a capacity provider strategy. The
/// PutClusterCapacityProviders API is used to associate a capacity provider with
/// a cluster. Only capacity providers with an ACTIVE
or UPDATING
/// status can be used.
///
///
///
/// If a capacityProviderStrategy
is specified, the launchType
/// parameter must be omitted. If no capacityProviderStrategy
or launchType
/// is specified, the defaultCapacityProviderStrategy
for the cluster is
/// used.
///
///
///
/// If specifying a capacity provider that uses an Auto Scaling group, the capacity provider
/// must already be created. New capacity providers can be created with the CreateCapacityProvider
/// API operation.
///
///
///
/// To use a Fargate capacity provider, specify either the FARGATE
or FARGATE_SPOT
/// capacity providers. The Fargate capacity providers are available to all accounts and
/// only need to be associated with a cluster to be used.
///
///
///
/// The PutClusterCapacityProviders API operation is used to update the list of
/// available capacity providers for a cluster after the cluster is created.
///
///
public List CapacityProviderStrategy
{
get { return this._capacityProviderStrategy; }
set { this._capacityProviderStrategy = value; }
}
// Check to see if CapacityProviderStrategy property is set
internal bool IsSetCapacityProviderStrategy()
{
return this._capacityProviderStrategy != null && this._capacityProviderStrategy.Count > 0;
}
///
/// Gets and sets the property ClientToken.
///
/// The identifier that you provide to ensure the idempotency of the request. It's case
/// sensitive and must be unique. It can be up to 32 ASCII characters are allowed.
///
///
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property Cluster.
///
/// The short name or full Amazon Resource Name (ARN) of the cluster that hosts the service
/// to create the task set in.
///
///
[AWSProperty(Required=true)]
public string Cluster
{
get { return this._cluster; }
set { this._cluster = value; }
}
// Check to see if Cluster property is set
internal bool IsSetCluster()
{
return this._cluster != null;
}
///
/// Gets and sets the property ExternalId.
///
/// An optional non-unique tag that identifies this task set in external systems. If the
/// task set is associated with a service discovery registry, the tasks in this task set
/// will have the ECS_TASK_SET_EXTERNAL_ID
Cloud Map attribute set to the
/// provided value.
///
///
public string ExternalId
{
get { return this._externalId; }
set { this._externalId = value; }
}
// Check to see if ExternalId property is set
internal bool IsSetExternalId()
{
return this._externalId != null;
}
///
/// Gets and sets the property LaunchType.
///
/// The launch type that new tasks in the task set uses. For more information, see Amazon
/// ECS launch types in the Amazon Elastic Container Service Developer Guide.
///
///
///
/// If a launchType
is specified, the capacityProviderStrategy
/// parameter must be omitted.
///
///
public LaunchType LaunchType
{
get { return this._launchType; }
set { this._launchType = value; }
}
// Check to see if LaunchType property is set
internal bool IsSetLaunchType()
{
return this._launchType != null;
}
///
/// Gets and sets the property LoadBalancers.
///
/// A load balancer object representing the load balancer to use with the task set. The
/// supported load balancer types are either an Application Load Balancer or a Network
/// Load Balancer.
///
///
public List LoadBalancers
{
get { return this._loadBalancers; }
set { this._loadBalancers = value; }
}
// Check to see if LoadBalancers property is set
internal bool IsSetLoadBalancers()
{
return this._loadBalancers != null && this._loadBalancers.Count > 0;
}
///
/// Gets and sets the property NetworkConfiguration.
///
/// An object representing the network configuration for a task set.
///
///
public NetworkConfiguration NetworkConfiguration
{
get { return this._networkConfiguration; }
set { this._networkConfiguration = value; }
}
// Check to see if NetworkConfiguration property is set
internal bool IsSetNetworkConfiguration()
{
return this._networkConfiguration != null;
}
///
/// Gets and sets the property PlatformVersion.
///
/// The platform version that the tasks in the task set uses. A platform version is specified
/// only for tasks using the Fargate launch type. If one isn't specified, the LATEST
/// platform version is used.
///
///
public string PlatformVersion
{
get { return this._platformVersion; }
set { this._platformVersion = value; }
}
// Check to see if PlatformVersion property is set
internal bool IsSetPlatformVersion()
{
return this._platformVersion != null;
}
///
/// Gets and sets the property Scale.
///
/// A floating-point percentage of the desired number of tasks to place and keep running
/// in the task set.
///
///
public Scale Scale
{
get { return this._scale; }
set { this._scale = value; }
}
// Check to see if Scale property is set
internal bool IsSetScale()
{
return this._scale != null;
}
///
/// Gets and sets the property Service.
///
/// The short name or full Amazon Resource Name (ARN) of the service to create the task
/// set in.
///
///
[AWSProperty(Required=true)]
public string Service
{
get { return this._service; }
set { this._service = value; }
}
// Check to see if Service property is set
internal bool IsSetService()
{
return this._service != null;
}
///
/// Gets and sets the property ServiceRegistries.
///
/// The details of the service discovery registries to assign to this task set. For more
/// information, see Service
/// discovery.
///
///
public List ServiceRegistries
{
get { return this._serviceRegistries; }
set { this._serviceRegistries = value; }
}
// Check to see if ServiceRegistries property is set
internal bool IsSetServiceRegistries()
{
return this._serviceRegistries != null && this._serviceRegistries.Count > 0;
}
///
/// Gets and sets the property Tags.
///
/// The metadata that you apply to the task set to help you categorize and organize them.
/// Each tag consists of a key and an optional value. You define both. When a service
/// is deleted, the tags are deleted.
///
///
///
/// The following basic restrictions apply to tags:
///
/// -
///
/// Maximum number of tags per resource - 50
///
///
-
///
/// For each resource, each tag key must be unique, and each tag key can have only one
/// value.
///
///
-
///
/// Maximum key length - 128 Unicode characters in UTF-8
///
///
-
///
/// Maximum value length - 256 Unicode characters in UTF-8
///
///
-
///
/// If your tagging schema is used across multiple services and resources, remember that
/// other services may have restrictions on allowed characters. Generally allowed characters
/// are: letters, numbers, and spaces representable in UTF-8, and the following characters:
/// + - = . _ : / @.
///
///
-
///
/// Tag keys and values are case-sensitive.
///
///
-
///
/// Do not use
aws:
, AWS:
, or any upper or lowercase combination
/// of such as a prefix for either keys or values as it is reserved for Amazon Web Services
/// use. You cannot edit or delete tag keys or values with this prefix. Tags with this
/// prefix do not count against your tags per resource limit.
///
///
///
[AWSProperty(Min=0, Max=50)]
public List 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 TaskDefinition.
///
/// The task definition for the tasks in the task set to use.
///
///
[AWSProperty(Required=true)]
public string TaskDefinition
{
get { return this._taskDefinition; }
set { this._taskDefinition = value; }
}
// Check to see if TaskDefinition property is set
internal bool IsSetTaskDefinition()
{
return this._taskDefinition != null;
}
}
}