import * as pulumi from "@pulumi/pulumi"; export interface ContainerDefinition { command?: pulumi.Input; cpu?: pulumi.Input; dependsOn?: ContainerDependency[]; disableNetworking?: pulumi.Input; dnsSearchDomains?: pulumi.Input; dnsServers?: pulumi.Input; dockerLabels?: { [label: string]: pulumi.Input; }; dockerSecurityOptions?: pulumi.Input; entryPoint?: pulumi.Input; environment?: KeyValuePair[]; environmentFiles?: EnvironmentFile[]; essential?: pulumi.Input; extraHosts?: HostEntry[]; firelensConfiguration?: FirelensConfiguration; healthCheck?: HealthCheck; hostname?: pulumi.Input; image?: pulumi.Input; interactive?: pulumi.Input; links?: pulumi.Input; linuxParameters?: LinuxParameters; logConfiguration?: LogConfiguration; memory?: pulumi.Input; memoryReservation?: pulumi.Input; mountPoints?: MountPoint[]; name: pulumi.Input; portMappings?: PortMapping[]; privileged?: pulumi.Input; pseudoTerminal?: pulumi.Input; readonlyRootFilesystem?: pulumi.Input; repositoryCredentials?: RepositoryCredentials; resourceRequirements?: ResourceRequirements[]; restartPolicy?: ContainerRestartPolicy; secrets?: Secret[]; startTimeout?: pulumi.Input; stopTimeout?: pulumi.Input; systemControls?: SystemControl[]; ulimits?: Ulimit[]; user?: pulumi.Input; versionConsistency?: VersionConsistency; volumesFrom?: VolumeFrom[]; workingDirectory?: pulumi.Input; } export interface EnvironmentFile { type: "s3"; value: pulumi.Input; } export interface ContainerDependency { containerName?: pulumi.Input; condition?: pulumi.Input; } export interface KeyValuePair { name: pulumi.Input; value: pulumi.Input; } export interface FirelensConfiguration { options?: { [key: string]: pulumi.Input; }; type: pulumi.Input; } /** * The health check command and associated configuration parameters for the container. This * parameter maps to HealthCheck in the Create a container section of the Docker Remote API and the * HEALTHCHECK parameter of docker run. * * https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_HealthCheck.html */ export interface HealthCheck { /** * A string array representing the command that the container runs to determine if it is * healthy. The string array must start with CMD to execute the command arguments directly, or * CMD-SHELL to run the command with the container's default shell. For example: * * [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ] * * An exit code of 0 indicates success, and non-zero exit code indicates failure. For more * information, see HealthCheck in the Create a container section of the Docker Remote API. */ command?: pulumi.Input; /** * The time period in seconds between each health check execution. You may specify between 5 and * 300 seconds. The default value is 30 seconds. */ interval?: pulumi.Input; /** * The number of times to retry a failed health check before the container is considered * unhealthy. You may specify between 1 and 10 retries. The default value is 3. */ retries?: pulumi.Input; /** * The optional grace period within which to provide containers time to bootstrap before failed * health checks count towards the maximum number of retries. You may specify between 0 and 300 * seconds. The startPeriod is disabled by default. * * Note: * If a health check succeeds within the startPeriod, then the container is considered healthy * and any subsequent failures count toward the maximum number of retries. */ startPeriod?: pulumi.Input; /** * The time period in seconds to wait for a health check to succeed before it is considered a * failure. You may specify between 2 and 60 seconds. The default value is 5. */ timeout?: pulumi.Input; } export interface HostEntry { hostname: pulumi.Input; ipAddress: pulumi.Input; } export interface LinuxParameters { capabilities?: KernelCapabilities; devices?: Device[]; initProcessEnabled?: pulumi.Input; } export interface KernelCapabilities { add?: KernelCapability[]; drop?: KernelCapability[]; } export type KernelCapability = "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" | "SYSLOG" | "WAKE_ALARM"; export interface Device { containerPath?: pulumi.Input; hostPath: pulumi.Input; permissions?: pulumi.Input; } export interface LogConfiguration { logDriver: LogDriver; options?: { [key: string]: pulumi.Input; }; secretOptions?: { name: pulumi.Input; valueFrom: pulumi.Input; }[]; } export type LogDriver = "json-file" | "syslog" | "journald" | "gelf" | "fluentd" | "awslogs" | "splunk" | "awsfirelens"; export interface MountPoint { containerPath?: pulumi.Input; readOnly?: pulumi.Input; sourceVolume?: pulumi.Input; } export interface PortMapping { appProtocol?: AppProtocol; containerPort?: pulumi.Input; containerPortRange?: pulumi.Input; hostPort?: pulumi.Input; name?: pulumi.Input; protocol?: Protocol; } export type AppProtocol = "http" | "http2" | "grpc"; export type Protocol = "tcp" | "udp"; export interface Ulimit { name: UlimitName; hardLimit: pulumi.Input; softLimit: pulumi.Input; } export type UlimitName = "core" | "cpu" | "data" | "fsize" | "locks" | "memlock" | "msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" | "sigpending" | "stack"; export interface VolumeFrom { sourceContainer?: pulumi.Input; readOnly?: pulumi.Input; } export interface RepositoryCredentials { credentialsParameter: pulumi.Input; } /** * The type and amount of a resource to assign to a container. The only supported resource is a GPU. * For more information, see [Working with GPUs on Amazon * ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-gpu.html) in the Amazon * Elastic Container Service Developer Guide. * * See https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ResourceRequirement.html. */ export interface ResourceRequirements { /** * The type of resource to assign to a container. The only supported value is GPU. */ type: pulumi.Input; /** * The number of physical GPUs the Amazon ECS container agent will reserve for the container. * The number of GPUs reserved for all containers in a task should not exceed the number of * available GPUs on the container instance the task is launched on. */ value: pulumi.Input; } /** * The restart policy for the container. When you enable a restart policy for a container, Amazon * ECS can restart the container if it exits, without needing to replace the task. For more * information, see [Restart individual containers in Amazon ECS tasks with container restart * policies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/container-restart-policy.html) * in the Amazon Elastic Container Service Developer Guide. * * See https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerRestartPolicy.html. */ export interface ContainerRestartPolicy { /** * Specifies whether a restart policy is enabled for the container. */ enabled: pulumi.Input; /** * A list of exit codes that Amazon ECS will ignore and not attempt a restart on. You can * specify a maximum of 50 container exit codes. By default, Amazon ECS does not ignore any * exit codes. */ ignoredExitCodes?: pulumi.Input; /** * A period of time (in seconds) that the container must run for before a restart can be * attempted. A container can be restarted only once every restartAttemptPeriod seconds. You * can set a minimum restartAttemptPeriod of 60 seconds and a maximum restartAttemptPeriod of * 1800 seconds. By default, a container must run for 300 seconds before it can be restarted. */ restartAttemptPeriod?: pulumi.Input; } /** * An object representing the secret to expose to your container. Secrets can be exposed to a * container in the following ways: * * * To inject sensitive data into your containers as environment variables, use the secrets * container definition parameter. * * * To reference sensitive information in the log configuration of a container, use the * secretOptions container definition parameter. * * For more information, see [Specifying Sensitive * Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) * in the Amazon Elastic Container Service Developer Guide. * * See https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Secret.html. */ export interface Secret { /** * The name of the secret. */ name: pulumi.Input; /** * The secret to expose to the container. The supported values are either the full ARN of the * AWS Secrets Manager secret or the full ARN of the parameter in the AWS Systems Manager * Parameter Store. * * Note: If the AWS Systems Manager Parameter Store parameter exists in the same Region as the * task you are launching, then you can use either the full ARN or name of the parameter. If the * parameter exists in a different Region, then the full ARN must be specified. */ valueFrom: pulumi.Input; } /** * A list of namespaced kernel parameters to set in the container. This parameter maps to Sysctls in * the [Create a container](https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) * section of the Docker Remote API and the --sysctl option to docker run. * * It is not recommended that you specify network-related systemControls parameters for multiple * containers in a single task that also uses either the awsvpc or host network mode for the * following reasons: * * * For tasks that use the awsvpc network mode, if you set systemControls for any container, it * applies to all containers in the task. If you set different systemControls for multiple * containers in a single task, the container that is started last determines which systemControls * take effect. * * For tasks that use the host network mode, the systemControls parameter applies to the container * instance's kernel parameter as well as that of all containers of any tasks running on that * container instance. * * See https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_SystemControl.html. */ export interface SystemControl { /** * The namespaced kernel parameter for which to set a value. */ namespace?: pulumi.Input; /** * The value for the namespaced kernel parameter specified in namespace. */ value?: pulumi.Input; } export type VersionConsistency = "enabled" | "disabled"; //# sourceMappingURL=container.d.ts.map