@aws-cdk/aws-ecs
Version:
The CDK Construct Library for AWS::ECS
224 lines (223 loc) • 5.91 kB
TypeScript
import { Construct } from 'constructs';
import { CfnTaskDefinition } from './ecs.generated';
import { Construct as CoreConstruct } from '@aws-cdk/core';
/**
* The properties for defining Linux-specific options that are applied to the container.
*/
export interface LinuxParametersProps {
/**
* Specifies whether to run an init process inside the container that forwards signals and reaps processes.
*
* @default false
*/
readonly initProcessEnabled?: boolean;
/**
* The value for the size (in MiB) of the /dev/shm volume.
*
* @default No shared memory.
*/
readonly sharedMemorySize?: number;
}
/**
* Linux-specific options that are applied to the container.
*/
export declare class LinuxParameters extends CoreConstruct {
/**
* Whether the init process is enabled
*/
private readonly initProcessEnabled?;
/**
* The shared memory size. Not valid for Fargate launch type
*/
private readonly sharedMemorySize?;
/**
* Capabilities to be added
*/
private readonly capAdd;
/**
* Capabilities to be dropped
*/
private readonly capDrop;
/**
* Device mounts
*/
private readonly devices;
/**
* TmpFs mounts
*/
private readonly tmpfs;
/**
* Constructs a new instance of the LinuxParameters class.
*/
constructor(scope: Construct, id: string, props?: LinuxParametersProps);
/**
* Adds one or more Linux capabilities to the Docker configuration of a container.
*
* Only works with EC2 launch type.
*/
addCapabilities(...cap: Capability[]): void;
/**
* Removes one or more Linux capabilities to the Docker configuration of a container.
*
* Only works with EC2 launch type.
*/
dropCapabilities(...cap: Capability[]): void;
/**
* Adds one or more host devices to a container.
*/
addDevices(...device: Device[]): void;
/**
* Specifies the container path, mount options, and size (in MiB) of the tmpfs mount for a container.
*
* Only works with EC2 launch type.
*/
addTmpfs(...tmpfs: Tmpfs[]): void;
/**
* Renders the Linux parameters to a CloudFormation object.
*/
renderLinuxParameters(): CfnTaskDefinition.LinuxParametersProperty;
}
/**
* A container instance host device.
*/
export interface Device {
/**
* The path inside the container at which to expose the host device.
*
* @default Same path as the host
*/
readonly containerPath?: string;
/**
* The path for the device on the host container instance.
*/
readonly hostPath: string;
/**
* The explicit permissions to provide to the container for the device.
* By default, the container has permissions for read, write, and mknod for the device.
*
* @default Readonly
*/
readonly permissions?: DevicePermission[];
}
/**
* The details of a tmpfs mount for a container.
*/
export interface Tmpfs {
/**
* The absolute file path where the tmpfs volume is to be mounted.
*/
readonly containerPath: string;
/**
* The size (in MiB) of the tmpfs volume.
*/
readonly size: number;
/**
* The list of tmpfs volume mount options. For more information, see
* [TmpfsMountOptions](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Tmpfs.html).
*/
readonly mountOptions?: TmpfsMountOption[];
}
/**
* A Linux capability
*/
export declare enum Capability {
ALL = "ALL",
AUDIT_CONTROL = "AUDIT_CONTROL",
AUDIT_WRITE = "AUDIT_WRITE",
BLOCK_SUSPEND = "BLOCK_SUSPEND",
CHOWN = "CHOWN",
DAC_OVERRIDE = "DAC_OVERRIDE",
DAC_READ_SEARCH = "DAC_READ_SEARCH",
FOWNER = "FOWNER",
FSETID = "FSETID",
IPC_LOCK = "IPC_LOCK",
IPC_OWNER = "IPC_OWNER",
KILL = "KILL",
LEASE = "LEASE",
LINUX_IMMUTABLE = "LINUX_IMMUTABLE",
MAC_ADMIN = "MAC_ADMIN",
MAC_OVERRIDE = "MAC_OVERRIDE",
MKNOD = "MKNOD",
NET_ADMIN = "NET_ADMIN",
NET_BIND_SERVICE = "NET_BIND_SERVICE",
NET_BROADCAST = "NET_BROADCAST",
NET_RAW = "NET_RAW",
SETFCAP = "SETFCAP",
SETGID = "SETGID",
SETPCAP = "SETPCAP",
SETUID = "SETUID",
SYS_ADMIN = "SYS_ADMIN",
SYS_BOOT = "SYS_BOOT",
SYS_CHROOT = "SYS_CHROOT",
SYS_MODULE = "SYS_MODULE",
SYS_NICE = "SYS_NICE",
SYS_PACCT = "SYS_PACCT",
SYS_PTRACE = "SYS_PTRACE",
SYS_RAWIO = "SYS_RAWIO",
SYS_RESOURCE = "SYS_RESOURCE",
SYS_TIME = "SYS_TIME",
SYS_TTY_CONFIG = "SYS_TTY_CONFIG",
SYSLOG = "SYSLOG",
WAKE_ALARM = "WAKE_ALARM"
}
/**
* Permissions for device access
*/
export declare enum DevicePermission {
/**
* Read
*/
READ = "read",
/**
* Write
*/
WRITE = "write",
/**
* Make a node
*/
MKNOD = "mknod"
}
/**
* The supported options for a tmpfs mount for a container.
*/
export declare enum TmpfsMountOption {
DEFAULTS = "defaults",
RO = "ro",
RW = "rw",
SUID = "suid",
NOSUID = "nosuid",
DEV = "dev",
NODEV = "nodev",
EXEC = "exec",
NOEXEC = "noexec",
SYNC = "sync",
ASYNC = "async",
DIRSYNC = "dirsync",
REMOUNT = "remount",
MAND = "mand",
NOMAND = "nomand",
ATIME = "atime",
NOATIME = "noatime",
DIRATIME = "diratime",
NODIRATIME = "nodiratime",
BIND = "bind",
RBIND = "rbind",
UNBINDABLE = "unbindable",
RUNBINDABLE = "runbindable",
PRIVATE = "private",
RPRIVATE = "rprivate",
SHARED = "shared",
RSHARED = "rshared",
SLAVE = "slave",
RSLAVE = "rslave",
RELATIME = "relatime",
NORELATIME = "norelatime",
STRICTATIME = "strictatime",
NOSTRICTATIME = "nostrictatime",
MODE = "mode",
UID = "uid",
GID = "gid",
NR_INODES = "nr_inodes",
NR_BLOCKS = "nr_blocks",
MPOL = "mpol"
}