/* * 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 batch-2016-08-10.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.Batch.Model { /// /// Container properties are used for Amazon ECS based job definitions. These properties /// to describe the container that's launched as part of a job. /// public partial class ContainerProperties { private List _command = new List(); private List _environment = new List(); private EphemeralStorage _ephemeralStorage; private string _executionRoleArn; private FargatePlatformConfiguration _fargatePlatformConfiguration; private string _image; private string _instanceType; private string _jobRoleArn; private LinuxParameters _linuxParameters; private LogConfiguration _logConfiguration; private int? _memory; private List _mountPoints = new List(); private NetworkConfiguration _networkConfiguration; private bool? _privileged; private bool? _readonlyRootFilesystem; private List _resourceRequirements = new List(); private RuntimePlatform _runtimePlatform; private List _secrets = new List(); private List _ulimits = new List(); private string _user; private int? _vcpus; private List _volumes = new List(); /// /// Gets and sets the property Command. /// /// The command that's passed to the container. This parameter maps to Cmd /// in the Create /// a container section of the Docker /// Remote API and the COMMAND parameter to docker /// run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd. /// /// public List Command { get { return this._command; } set { this._command = value; } } // Check to see if Command property is set internal bool IsSetCommand() { return this._command != null && this._command.Count > 0; } /// /// Gets and sets the property Environment. /// /// The environment variables to pass to a container. This parameter maps to Env /// in the Create /// a container section of the Docker /// Remote API and the --env option to docker /// run. /// /// /// /// We don't recommend using plaintext environment variables for sensitive information, /// such as credential data. /// /// /// /// Environment variables cannot start with "AWS_BATCH". This naming convention /// is reserved for variables that Batch sets. /// /// /// public List Environment { get { return this._environment; } set { this._environment = value; } } // Check to see if Environment property is set internal bool IsSetEnvironment() { return this._environment != null && this._environment.Count > 0; } /// /// Gets and sets the property EphemeralStorage. /// /// The amount of ephemeral storage to allocate for the task. This parameter is used to /// expand the total amount of ephemeral storage available, beyond the default amount, /// for tasks hosted on Fargate. /// /// public EphemeralStorage EphemeralStorage { get { return this._ephemeralStorage; } set { this._ephemeralStorage = value; } } // Check to see if EphemeralStorage property is set internal bool IsSetEphemeralStorage() { return this._ephemeralStorage != null; } /// /// Gets and sets the property ExecutionRoleArn. /// /// The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs /// that run on Fargate resources, you must provide an execution role. For more information, /// see Batch /// execution IAM role in the Batch User Guide. /// /// public string ExecutionRoleArn { get { return this._executionRoleArn; } set { this._executionRoleArn = value; } } // Check to see if ExecutionRoleArn property is set internal bool IsSetExecutionRoleArn() { return this._executionRoleArn != null; } /// /// Gets and sets the property FargatePlatformConfiguration. /// /// The platform configuration for jobs that are running on Fargate resources. Jobs that /// are running on EC2 resources must not specify this parameter. /// /// public FargatePlatformConfiguration FargatePlatformConfiguration { get { return this._fargatePlatformConfiguration; } set { this._fargatePlatformConfiguration = value; } } // Check to see if FargatePlatformConfiguration property is set internal bool IsSetFargatePlatformConfiguration() { return this._fargatePlatformConfiguration != null; } /// /// Gets and sets the property Image. /// /// The image used to start a container. This string is passed directly to the Docker /// daemon. Images in the Docker Hub registry are available by default. Other repositories /// are specified with repository-url/image:tag . It /// can be 255 characters long. It can contain uppercase and lowercase letters, numbers, /// hyphens (-), underscores (_), colons (:), periods (.), forward slashes (/), and number /// signs (#). This parameter maps to Image in the Create /// a container section of the Docker /// Remote API and the IMAGE parameter of docker /// run. /// /// /// /// Docker image architecture must match the processor architecture of the compute resources /// that they're scheduled on. For example, ARM-based Docker images can only run on ARM-based /// compute resources. /// ///
  • /// /// Images in Amazon ECR Public repositories use the full registry/repository[:tag] /// or registry/repository[@digest] naming conventions. For example, public.ecr.aws/registry_alias/my-web-app:latest /// . /// ///
  • /// /// Images in Amazon ECR repositories use the full registry and repository URI (for example, /// 123456789012.dkr.ecr.<region-name>.amazonaws.com/<repository-name>). /// ///
  • /// /// Images in official repositories on Docker Hub use a single name (for example, ubuntu /// or mongo). /// ///
  • /// /// Images in other repositories on Docker Hub are qualified with an organization name /// (for example, amazon/amazon-ecs-agent). /// ///
  • /// /// Images in other online repositories are qualified further by a domain name (for example, /// quay.io/assemblyline/ubuntu). /// ///
///
public string Image { get { return this._image; } set { this._image = value; } } // Check to see if Image property is set internal bool IsSetImage() { return this._image != null; } /// /// Gets and sets the property InstanceType. /// /// The instance type to use for a multi-node parallel job. All node groups in a multi-node /// parallel job must use the same instance type. /// /// /// /// This parameter isn't applicable to single-node container jobs or jobs that run on /// Fargate resources, and shouldn't be provided. /// /// /// public string InstanceType { get { return this._instanceType; } set { this._instanceType = value; } } // Check to see if InstanceType property is set internal bool IsSetInstanceType() { return this._instanceType != null; } /// /// Gets and sets the property JobRoleArn. /// /// The Amazon Resource Name (ARN) of the IAM role that the container can assume for Amazon /// Web Services permissions. For more information, see IAM /// roles for tasks in the Amazon Elastic Container Service Developer Guide. /// /// public string JobRoleArn { get { return this._jobRoleArn; } set { this._jobRoleArn = value; } } // Check to see if JobRoleArn property is set internal bool IsSetJobRoleArn() { return this._jobRoleArn != null; } /// /// Gets and sets the property LinuxParameters. /// /// Linux-specific modifications that are applied to the container, such as details for /// device mappings. /// /// public LinuxParameters LinuxParameters { get { return this._linuxParameters; } set { this._linuxParameters = value; } } // Check to see if LinuxParameters property is set internal bool IsSetLinuxParameters() { return this._linuxParameters != null; } /// /// Gets and sets the property LogConfiguration. /// /// The log configuration specification for the container. /// /// /// /// This parameter maps to LogConfig in the Create /// a container section of the Docker /// Remote API and the --log-driver option to docker /// run. By default, containers use the same logging driver that the Docker daemon /// uses. However the container might use a different logging driver than the Docker daemon /// by specifying a log driver with this parameter in the container definition. To use /// a different logging driver for a container, the log system must be configured properly /// on the container instance (or on a different log server for remote logging options). /// For more information on the options for different supported log drivers, see Configure /// logging drivers in the Docker documentation. /// /// /// /// Batch currently supports a subset of the logging drivers available to the Docker daemon /// (shown in the LogConfiguration data type). /// /// /// /// This parameter requires version 1.18 of the Docker Remote API or greater on your container /// instance. To check the Docker Remote API version on your container instance, log in /// to your container instance and run the following command: sudo docker version /// | grep "Server API version" /// /// /// /// The Amazon ECS container agent running on a container instance must register the logging /// drivers available on that instance with the ECS_AVAILABLE_LOGGING_DRIVERS /// environment variable before containers placed on that instance can use these log configuration /// options. For more information, see Amazon /// ECS container agent configuration in the Amazon Elastic Container Service Developer /// Guide. /// /// /// public LogConfiguration LogConfiguration { get { return this._logConfiguration; } set { this._logConfiguration = value; } } // Check to see if LogConfiguration property is set internal bool IsSetLogConfiguration() { return this._logConfiguration != null; } /// /// Gets and sets the property Memory. /// /// This parameter is deprecated, use resourceRequirements to specify the /// memory requirements for the job definition. It's not supported for jobs running on /// Fargate resources. For jobs that run on EC2 resources, it specifies the memory hard /// limit (in MiB) for a container. If your container attempts to exceed the specified /// number, it's terminated. You must specify at least 4 MiB of memory for a job using /// this parameter. The memory hard limit can be specified in several places. It must /// be specified for each node at least once. /// /// [Obsolete("This field is deprecated, use resourceRequirements instead.")] public int Memory { get { return this._memory.GetValueOrDefault(); } set { this._memory = value; } } // Check to see if Memory property is set internal bool IsSetMemory() { return this._memory.HasValue; } /// /// Gets and sets the property MountPoints. /// /// The mount points for data volumes in your container. This parameter maps to Volumes /// in the Create /// a container section of the Docker /// Remote API and the --volume option to docker /// run. /// /// public List MountPoints { get { return this._mountPoints; } set { this._mountPoints = value; } } // Check to see if MountPoints property is set internal bool IsSetMountPoints() { return this._mountPoints != null && this._mountPoints.Count > 0; } /// /// Gets and sets the property NetworkConfiguration. /// /// The network configuration for jobs that are running on Fargate resources. Jobs that /// are running on EC2 resources must not specify this parameter. /// /// 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 Privileged. /// /// When this parameter is true, the container is given elevated permissions on the host /// container instance (similar to the root user). This parameter maps to /// Privileged in the Create /// a container section of the Docker /// Remote API and the --privileged option to docker /// run. The default value is false. /// /// /// /// This parameter isn't applicable to jobs that are running on Fargate resources and /// shouldn't be provided, or specified as false. /// /// /// public bool Privileged { get { return this._privileged.GetValueOrDefault(); } set { this._privileged = value; } } // Check to see if Privileged property is set internal bool IsSetPrivileged() { return this._privileged.HasValue; } /// /// Gets and sets the property ReadonlyRootFilesystem. /// /// When this parameter is true, the container is given read-only access to its root file /// system. This parameter maps to ReadonlyRootfs in the Create /// a container section of the Docker /// Remote API and the --read-only option to docker run. /// /// public bool ReadonlyRootFilesystem { get { return this._readonlyRootFilesystem.GetValueOrDefault(); } set { this._readonlyRootFilesystem = value; } } // Check to see if ReadonlyRootFilesystem property is set internal bool IsSetReadonlyRootFilesystem() { return this._readonlyRootFilesystem.HasValue; } /// /// Gets and sets the property ResourceRequirements. /// /// The type and amount of resources to assign to a container. The supported resources /// include GPU, MEMORY, and VCPU. /// /// public List ResourceRequirements { get { return this._resourceRequirements; } set { this._resourceRequirements = value; } } // Check to see if ResourceRequirements property is set internal bool IsSetResourceRequirements() { return this._resourceRequirements != null && this._resourceRequirements.Count > 0; } /// /// Gets and sets the property RuntimePlatform. /// public RuntimePlatform RuntimePlatform { get { return this._runtimePlatform; } set { this._runtimePlatform = value; } } // Check to see if RuntimePlatform property is set internal bool IsSetRuntimePlatform() { return this._runtimePlatform != null; } /// /// Gets and sets the property Secrets. /// /// The secrets for the container. For more information, see Specifying /// sensitive data in the Batch User Guide. /// /// public List Secrets { get { return this._secrets; } set { this._secrets = value; } } // Check to see if Secrets property is set internal bool IsSetSecrets() { return this._secrets != null && this._secrets.Count > 0; } /// /// Gets and sets the property Ulimits. /// /// A list of ulimits to set in the container. This parameter maps to Ulimits /// in the Create /// a container section of the Docker /// Remote API and the --ulimit option to docker /// run. /// /// /// /// This parameter isn't applicable to jobs that are running on Fargate resources and /// shouldn't be provided. /// /// /// public List Ulimits { get { return this._ulimits; } set { this._ulimits = value; } } // Check to see if Ulimits property is set internal bool IsSetUlimits() { return this._ulimits != null && this._ulimits.Count > 0; } /// /// Gets and sets the property User. /// /// The user name to use inside the container. This parameter maps to User /// in the Create /// a container section of the Docker /// Remote API and the --user option to docker /// run. /// /// public string User { get { return this._user; } set { this._user = value; } } // Check to see if User property is set internal bool IsSetUser() { return this._user != null; } /// /// Gets and sets the property Vcpus. /// /// This parameter is deprecated, use resourceRequirements to specify the /// vCPU requirements for the job definition. It's not supported for jobs running on Fargate /// resources. For jobs running on EC2 resources, it specifies the number of vCPUs reserved /// for the job. /// /// /// /// Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to CpuShares /// in the Create /// a container section of the Docker /// Remote API and the --cpu-shares option to docker /// run. The number of vCPUs must be specified but can be specified in several places. /// You must specify it at least once for each node. /// /// [Obsolete("This field is deprecated, use resourceRequirements instead.")] public int Vcpus { get { return this._vcpus.GetValueOrDefault(); } set { this._vcpus = value; } } // Check to see if Vcpus property is set internal bool IsSetVcpus() { return this._vcpus.HasValue; } /// /// Gets and sets the property Volumes. /// /// A list of data volumes used in a job. /// /// public List Volumes { get { return this._volumes; } set { this._volumes = value; } } // Check to see if Volumes property is set internal bool IsSetVolumes() { return this._volumes != null && this._volumes.Count > 0; } } }