/*
* 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
{
///
/// Linux-specific modifications that are applied to the container, such as details for
/// device mappings.
///
public partial class LinuxParameters
{
private List _devices = new List();
private bool? _initProcessEnabled;
private int? _maxSwap;
private int? _sharedMemorySize;
private int? _swappiness;
private List _tmpfs = new List();
///
/// Gets and sets the property Devices.
///
/// Any of the host devices to expose to the container. This parameter maps to Devices
/// in the Create
/// a container section of the Docker
/// Remote API and the --device
option to docker
/// run.
///
///
///
/// This parameter isn't applicable to jobs that are running on Fargate resources. Don't
/// provide it for these jobs.
///
///
///
public List Devices
{
get { return this._devices; }
set { this._devices = value; }
}
// Check to see if Devices property is set
internal bool IsSetDevices()
{
return this._devices != null && this._devices.Count > 0;
}
///
/// Gets and sets the property InitProcessEnabled.
///
/// If true, run an init
process inside the container that forwards signals
/// and reaps processes. This parameter maps to the --init
option to docker
/// run. This parameter requires version 1.25 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"
///
///
public bool InitProcessEnabled
{
get { return this._initProcessEnabled.GetValueOrDefault(); }
set { this._initProcessEnabled = value; }
}
// Check to see if InitProcessEnabled property is set
internal bool IsSetInitProcessEnabled()
{
return this._initProcessEnabled.HasValue;
}
///
/// Gets and sets the property MaxSwap.
///
/// The total amount of swap memory (in MiB) a container can use. This parameter is translated
/// to the --memory-swap
option to docker
/// run where the value is the sum of the container memory plus the maxSwap
/// value. For more information, see
/// --memory-swap
details in the Docker documentation.
///
///
///
/// If a maxSwap
value of 0
is specified, the container doesn't
/// use swap. Accepted values are 0
or any positive integer. If the maxSwap
/// parameter is omitted, the container doesn't use the swap configuration for the container
/// instance that it's running on. A maxSwap
value must be set for the swappiness
/// parameter to be used.
///
///
///
/// This parameter isn't applicable to jobs that are running on Fargate resources. Don't
/// provide it for these jobs.
///
///
///
public int MaxSwap
{
get { return this._maxSwap.GetValueOrDefault(); }
set { this._maxSwap = value; }
}
// Check to see if MaxSwap property is set
internal bool IsSetMaxSwap()
{
return this._maxSwap.HasValue;
}
///
/// Gets and sets the property SharedMemorySize.
///
/// The value for the size (in MiB) of the /dev/shm
volume. This parameter
/// maps to the --shm-size
option to docker
/// run.
///
///
///
/// This parameter isn't applicable to jobs that are running on Fargate resources. Don't
/// provide it for these jobs.
///
///
///
public int SharedMemorySize
{
get { return this._sharedMemorySize.GetValueOrDefault(); }
set { this._sharedMemorySize = value; }
}
// Check to see if SharedMemorySize property is set
internal bool IsSetSharedMemorySize()
{
return this._sharedMemorySize.HasValue;
}
///
/// Gets and sets the property Swappiness.
///
/// You can use this parameter to tune a container's memory swappiness behavior. A swappiness
/// value of 0
causes swapping to not occur unless absolutely necessary.
/// A swappiness
value of 100
causes pages to be swapped aggressively.
/// Valid values are whole numbers between 0
and 100
. If the
/// swappiness
parameter isn't specified, a default value of 60
/// is used. If a value isn't specified for maxSwap
, then this parameter
/// is ignored. If maxSwap
is set to 0, the container doesn't use swap. This
/// parameter maps to the --memory-swappiness
option to docker
/// run.
///
///
///
/// Consider the following when you use a per-container swap configuration.
///
/// -
///
/// Swap space must be enabled and allocated on the container instance for the containers
/// to use.
///
///
///
/// By default, the Amazon ECS optimized AMIs don't have swap enabled. You must enable
/// swap on the instance to use this feature. For more information, see Instance
/// store swap volumes in the Amazon EC2 User Guide for Linux Instances or
/// How
/// do I allocate memory to work as swap space in an Amazon EC2 instance by using a swap
/// file?
///
///
-
///
/// The swap space parameters are only supported for job definitions using EC2 resources.
///
///
-
///
/// If the
maxSwap
and swappiness
parameters are omitted from
/// a job definition, each container has a default swappiness
value of 60.
/// Moreover, the total swap usage is limited to two times the memory reservation of the
/// container.
///
///
///
/// This parameter isn't applicable to jobs that are running on Fargate resources. Don't
/// provide it for these jobs.
///
///
///
public int Swappiness
{
get { return this._swappiness.GetValueOrDefault(); }
set { this._swappiness = value; }
}
// Check to see if Swappiness property is set
internal bool IsSetSwappiness()
{
return this._swappiness.HasValue;
}
///
/// Gets and sets the property Tmpfs.
///
/// The container path, mount options, and size (in MiB) of the tmpfs
mount.
/// This parameter maps to the --tmpfs
option to docker
/// run.
///
///
///
/// This parameter isn't applicable to jobs that are running on Fargate resources. Don't
/// provide this parameter for this resource type.
///
///
///
public List Tmpfs
{
get { return this._tmpfs; }
set { this._tmpfs = value; }
}
// Check to see if Tmpfs property is set
internal bool IsSetTmpfs()
{
return this._tmpfs != null && this._tmpfs.Count > 0;
}
}
}