/*
* 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
{
///
/// An object that represents the details of a container that's part of a job.
///
public partial class ContainerDetail
{
private List _command = new List();
private string _containerInstanceArn;
private List _environment = new List();
private EphemeralStorage _ephemeralStorage;
private string _executionRoleArn;
private int? _exitCode;
private FargatePlatformConfiguration _fargatePlatformConfiguration;
private string _image;
private string _instanceType;
private string _jobRoleArn;
private LinuxParameters _linuxParameters;
private LogConfiguration _logConfiguration;
private string _logStreamName;
private int? _memory;
private List _mountPoints = new List();
private NetworkConfiguration _networkConfiguration;
private List _networkInterfaces = new List();
private bool? _privileged;
private bool? _readonlyRootFilesystem;
private string _reason;
private List _resourceRequirements = new List();
private RuntimePlatform _runtimePlatform;
private List _secrets = new List();
private string _taskArn;
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.
///
///
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 ContainerInstanceArn.
///
/// The Amazon Resource Name (ARN) of the container instance that the container is running
/// on.
///
///
public string ContainerInstanceArn
{
get { return this._containerInstanceArn; }
set { this._containerInstanceArn = value; }
}
// Check to see if ContainerInstanceArn property is set
internal bool IsSetContainerInstanceArn()
{
return this._containerInstanceArn != null;
}
///
/// Gets and sets the property Environment.
///
/// The environment variables to pass to a container.
///
///
///
/// 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 allocated 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 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 ExitCode.
///
/// The exit code to return upon completion.
///
///
public int ExitCode
{
get { return this._exitCode.GetValueOrDefault(); }
set { this._exitCode = value; }
}
// Check to see if ExitCode property is set
internal bool IsSetExitCode()
{
return this._exitCode.HasValue;
}
///
/// 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 the container.
///
///
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 of the underlying host infrastructure of a multi-node parallel job.
///
///
///
/// This parameter isn't applicable to jobs that are running on Fargate resources.
///
///
///
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) that's associated with the job when run.
///
///
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, alternatively, it must be configured 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). Additional log drivers might be
/// available in future releases of the Amazon ECS container agent.
///
///
///
/// 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 LogStreamName.
///
/// The name of the Amazon CloudWatch Logs log stream that's associated with the container.
/// The log group for Batch jobs is /aws/batch/job
. Each container attempt
/// receives a log stream name when they reach the RUNNING
status.
///
///
public string LogStreamName
{
get { return this._logStreamName; }
set { this._logStreamName = value; }
}
// Check to see if LogStreamName property is set
internal bool IsSetLogStreamName()
{
return this._logStreamName != null;
}
///
/// Gets and sets the property Memory.
///
/// For jobs running on EC2 resources that didn't specify memory requirements using resourceRequirements
,
/// the number of MiB of memory reserved for the job. For other jobs, including all run
/// on Fargate resources, see resourceRequirements
.
///
///
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.
///
///
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 NetworkInterfaces.
///
/// The network interfaces that are associated with the job.
///
///
public List NetworkInterfaces
{
get { return this._networkInterfaces; }
set { this._networkInterfaces = value; }
}
// Check to see if NetworkInterfaces property is set
internal bool IsSetNetworkInterfaces()
{
return this._networkInterfaces != null && this._networkInterfaces.Count > 0;
}
///
/// 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). 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 Reason.
///
/// A short (255 max characters) human-readable string to provide additional details for
/// a running or stopped container.
///
///
public string Reason
{
get { return this._reason; }
set { this._reason = value; }
}
// Check to see if Reason property is set
internal bool IsSetReason()
{
return this._reason != null;
}
///
/// 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 to pass to 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 TaskArn.
///
/// The Amazon Resource Name (ARN) of the Amazon ECS task that's associated with the container
/// job. Each container attempt receives a task ARN when they reach the STARTING
/// status.
///
///
public string TaskArn
{
get { return this._taskArn; }
set { this._taskArn = value; }
}
// Check to see if TaskArn property is set
internal bool IsSetTaskArn()
{
return this._taskArn != null;
}
///
/// Gets and sets the property Ulimits.
///
/// A list of ulimit
values 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.
///
///
///
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.
///
/// The number of vCPUs reserved for the container. For jobs that run on EC2 resources,
/// you can specify the vCPU requirement for the job using resourceRequirements
,
/// but you can't specify the vCPU requirements in both the vcpus
and resourceRequirements
/// object. This parameter maps to CpuShares
in the Create
/// a container section of the Docker
/// Remote API and the --cpu-shares
option to docker
/// run. Each vCPU is equivalent to 1,024 CPU shares. You must specify at least one
/// vCPU. This is required but can be specified in several places. It must be specified
/// for each node at least once.
///
///
///
/// This parameter isn't applicable to jobs that run on Fargate resources. For jobs that
/// run on Fargate resources, you must specify the vCPU requirement for the job using
/// resourceRequirements
.
///
///
///
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 volumes that are associated with the 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;
}
}
}