import * as ec2 from "../../../aws-ec2";
import * as sfn from "../../../aws-stepfunctions";
import { Duration } from "../../../core";
/**
 * (experimental) The overrides that should be sent to a container.
 *
 * @experimental
 */
export interface ContainerOverrides {
    /**
     * (experimental) The command to send to the container that overrides the default command from the Docker image or the job definition.
     *
     * @default - No command overrides
     * @experimental
     */
    readonly command?: string[];
    /**
     * (experimental) The environment variables to send to the container.
     *
     * You can add new environment variables, which are added to the container
     * at launch, or you can override the existing environment variables from
     * the Docker image or the job definition.
     *
     * @default - No environment overrides
     * @experimental
     */
    readonly environment?: {
        [key: string]: string;
    };
    /**
     * (experimental) The instance type to use for a multi-node parallel job.
     *
     * This parameter is not valid for single-node container jobs.
     *
     * @default - No instance type overrides
     * @experimental
     */
    readonly instanceType?: ec2.InstanceType;
    /**
     * (experimental) The number of MiB of memory reserved for the job.
     *
     * This value overrides the value set in the job definition.
     *
     * @default - No memory overrides
     * @experimental
     */
    readonly memory?: number;
    /**
     * (experimental) The number of physical GPUs to reserve for the container.
     *
     * The number of GPUs reserved for all containers in a job
     * should not exceed the number of available GPUs on the compute
     * resource that the job is launched on.
     *
     * @default - No GPU reservation
     * @experimental
     */
    readonly gpuCount?: number;
    /**
     * (experimental) The number of vCPUs to reserve for the container.
     *
     * This value overrides the value set in the job definition.
     *
     * @default - No vCPUs overrides
     * @experimental
     */
    readonly vcpus?: number;
}
/**
 * (experimental) An object representing an AWS Batch job dependency.
 *
 * @experimental
 */
export interface JobDependency {
    /**
     * (experimental) The job ID of the AWS Batch job associated with this dependency.
     *
     * @default - No jobId
     * @experimental
     */
    readonly jobId?: string;
    /**
     * (experimental) The type of the job dependency.
     *
     * @default - No type
     * @experimental
     */
    readonly type?: string;
}
