From b79e4665a9fa831a2eaea16982937c463c449246 Mon Sep 17 00:00:00 2001 From: aws-sdk-go-automation <43143561+aws-sdk-go-automation@users.noreply.github.com> Date: Wed, 28 Feb 2024 14:26:41 -0500 Subject: [PATCH] Release v1.50.28 (2024-02-28) (#5185) Release v1.50.28 (2024-02-28) === ### Service Client Updates * `service/batch`: Updates service API and documentation * This release adds Batch support for configuration of multicontainer jobs in ECS, Fargate, and EKS. This support is available for all types of jobs, including both array jobs and multi-node parallel jobs. * `service/bedrock-agent-runtime`: Updates service API and documentation * `service/ce`: Updates service API and documentation * `service/ec2`: Updates service API and documentation * This release increases the range of MaxResults for GetNetworkInsightsAccessScopeAnalysisFindings to 1,000. * `service/iot`: Updates service API and documentation * This release reduces the maximum results returned per query invocation from 500 to 100 for the SearchIndex API. This change has no implications as long as the API is invoked until the nextToken is NULL. * `service/wafv2`: Updates service API and documentation --- CHANGELOG.md | 14 + aws/version.go | 2 +- models/apis/batch/2016-08-10/api-2.json | 176 +- models/apis/batch/2016-08-10/docs-2.json | 301 +- .../2023-07-26/api-2.json | 28 +- .../2023-07-26/docs-2.json | 7 + models/apis/ce/2017-10-25/api-2.json | 53 + models/apis/ce/2017-10-25/docs-2.json | 42 +- models/apis/ec2/2016-11-15/api-2.json | 7 +- models/apis/ec2/2016-11-15/docs-2.json | 9 +- models/apis/iot/2015-05-28/api-2.json | 6 +- models/apis/iot/2015-05-28/docs-2.json | 25 +- models/apis/wafv2/2019-07-29/api-2.json | 2 + models/apis/wafv2/2019-07-29/docs-2.json | 6 + service/batch/api.go | 8508 ++++++++++------- service/bedrockagentruntime/api.go | 83 +- service/costexplorer/api.go | 221 + .../costexploreriface/interface.go | 4 + service/iot/api.go | 30 +- service/wafv2/api.go | 17 + 20 files changed, 5968 insertions(+), 3573 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9648e3d78f2..c0f2df47513 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +Release v1.50.28 (2024-02-28) +=== + +### Service Client Updates +* `service/batch`: Updates service API and documentation + * This release adds Batch support for configuration of multicontainer jobs in ECS, Fargate, and EKS. This support is available for all types of jobs, including both array jobs and multi-node parallel jobs. +* `service/bedrock-agent-runtime`: Updates service API and documentation +* `service/ce`: Updates service API and documentation +* `service/ec2`: Updates service API and documentation + * This release increases the range of MaxResults for GetNetworkInsightsAccessScopeAnalysisFindings to 1,000. +* `service/iot`: Updates service API and documentation + * This release reduces the maximum results returned per query invocation from 500 to 100 for the SearchIndex API. This change has no implications as long as the API is invoked until the nextToken is NULL. +* `service/wafv2`: Updates service API and documentation + Release v1.50.27 (2024-02-27) === diff --git a/aws/version.go b/aws/version.go index f7ab62a809d..b283a3e1b1a 100644 --- a/aws/version.go +++ b/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.50.27" +const SDKVersion = "1.50.28" diff --git a/models/apis/batch/2016-08-10/api-2.json b/models/apis/batch/2016-08-10/api-2.json index 193b5cc4ccd..9cd5bbb736c 100644 --- a/models/apis/batch/2016-08-10/api-2.json +++ b/models/apis/batch/2016-08-10/api-2.json @@ -920,6 +920,58 @@ "type":"list", "member":{"shape":"Ec2Configuration"} }, + "EcsProperties":{ + "type":"structure", + "required":["taskProperties"], + "members":{ + "taskProperties":{"shape":"ListEcsTaskProperties"} + } + }, + "EcsPropertiesDetail":{ + "type":"structure", + "members":{ + "taskProperties":{"shape":"ListEcsTaskDetails"} + } + }, + "EcsPropertiesOverride":{ + "type":"structure", + "members":{ + "taskProperties":{"shape":"ListTaskPropertiesOverride"} + } + }, + "EcsTaskDetails":{ + "type":"structure", + "members":{ + "containers":{"shape":"ListTaskContainerDetails"}, + "containerInstanceArn":{"shape":"String"}, + "taskArn":{"shape":"String"}, + "ephemeralStorage":{"shape":"EphemeralStorage"}, + "executionRoleArn":{"shape":"String"}, + "platformVersion":{"shape":"String"}, + "ipcMode":{"shape":"String"}, + "taskRoleArn":{"shape":"String"}, + "pidMode":{"shape":"String"}, + "networkConfiguration":{"shape":"NetworkConfiguration"}, + "runtimePlatform":{"shape":"RuntimePlatform"}, + "volumes":{"shape":"Volumes"} + } + }, + "EcsTaskProperties":{ + "type":"structure", + "required":["containers"], + "members":{ + "containers":{"shape":"ListTaskContainerProperties"}, + "ephemeralStorage":{"shape":"EphemeralStorage"}, + "executionRoleArn":{"shape":"String"}, + "platformVersion":{"shape":"String"}, + "ipcMode":{"shape":"String"}, + "taskRoleArn":{"shape":"String"}, + "pidMode":{"shape":"String"}, + "networkConfiguration":{"shape":"NetworkConfiguration"}, + "runtimePlatform":{"shape":"RuntimePlatform"}, + "volumes":{"shape":"Volumes"} + } + }, "EksAttemptContainerDetail":{ "type":"structure", "members":{ @@ -935,6 +987,7 @@ "type":"structure", "members":{ "containers":{"shape":"EksAttemptContainerDetails"}, + "initContainers":{"shape":"EksAttemptContainerDetails"}, "podName":{"shape":"String"}, "nodeName":{"shape":"String"}, "startedAt":{"shape":"Long"}, @@ -1007,6 +1060,7 @@ "EksContainerOverride":{ "type":"structure", "members":{ + "name":{"shape":"String"}, "image":{"shape":"String"}, "command":{"shape":"StringList"}, "args":{"shape":"StringList"}, @@ -1087,8 +1141,10 @@ "hostNetwork":{"shape":"Boolean"}, "dnsPolicy":{"shape":"String"}, "containers":{"shape":"EksContainers"}, + "initContainers":{"shape":"EksContainers"}, "volumes":{"shape":"EksVolumes"}, - "metadata":{"shape":"EksMetadata"} + "metadata":{"shape":"EksMetadata"}, + "shareProcessNamespace":{"shape":"Boolean"} } }, "EksPodPropertiesDetail":{ @@ -1098,16 +1154,19 @@ "hostNetwork":{"shape":"Boolean"}, "dnsPolicy":{"shape":"String"}, "containers":{"shape":"EksContainerDetails"}, + "initContainers":{"shape":"EksContainerDetails"}, "volumes":{"shape":"EksVolumes"}, "podName":{"shape":"String"}, "nodeName":{"shape":"String"}, - "metadata":{"shape":"EksMetadata"} + "metadata":{"shape":"EksMetadata"}, + "shareProcessNamespace":{"shape":"Boolean"} } }, "EksPodPropertiesOverride":{ "type":"structure", "members":{ "containers":{"shape":"EksContainerOverrideList"}, + "initContainers":{"shape":"EksContainerOverrideList"}, "metadata":{"shape":"EksMetadata"} } }, @@ -1254,6 +1313,7 @@ "tags":{"shape":"TagrisTagsMap"}, "propagateTags":{"shape":"Boolean"}, "platformCapabilities":{"shape":"PlatformCapabilityList"}, + "ecsProperties":{"shape":"EcsProperties"}, "eksProperties":{"shape":"EksProperties"}, "containerOrchestrationType":{"shape":"OrchestrationType"} } @@ -1317,6 +1377,7 @@ "platformCapabilities":{"shape":"PlatformCapabilityList"}, "eksProperties":{"shape":"EksPropertiesDetail"}, "eksAttempts":{"shape":"EksAttemptDetails"}, + "ecsProperties":{"shape":"EcsPropertiesDetail"}, "isCancelled":{"shape":"Boolean"}, "isTerminated":{"shape":"Boolean"} } @@ -1436,6 +1497,14 @@ "swappiness":{"shape":"Integer"} } }, + "ListEcsTaskDetails":{ + "type":"list", + "member":{"shape":"EcsTaskDetails"} + }, + "ListEcsTaskProperties":{ + "type":"list", + "member":{"shape":"EcsTaskProperties"} + }, "ListJobsFilterList":{ "type":"list", "member":{"shape":"KeyValuesPair"} @@ -1491,6 +1560,22 @@ "tags":{"shape":"TagrisTagsMap"} } }, + "ListTaskContainerDetails":{ + "type":"list", + "member":{"shape":"TaskContainerDetails"} + }, + "ListTaskContainerOverrides":{ + "type":"list", + "member":{"shape":"TaskContainerOverrides"} + }, + "ListTaskContainerProperties":{ + "type":"list", + "member":{"shape":"TaskContainerProperties"} + }, + "ListTaskPropertiesOverride":{ + "type":"list", + "member":{"shape":"TaskPropertiesOverride"} + }, "LogConfiguration":{ "type":"structure", "required":["logDriver"], @@ -1588,7 +1673,9 @@ "required":["targetNodes"], "members":{ "targetNodes":{"shape":"String"}, - "containerOverrides":{"shape":"ContainerOverrides"} + "containerOverrides":{"shape":"ContainerOverrides"}, + "ecsPropertiesOverride":{"shape":"EcsPropertiesOverride"}, + "instanceTypes":{"shape":"StringList"} } }, "NodePropertyOverrides":{ @@ -1604,7 +1691,9 @@ "required":["targetNodes"], "members":{ "targetNodes":{"shape":"String"}, - "container":{"shape":"ContainerProperties"} + "container":{"shape":"ContainerProperties"}, + "instanceTypes":{"shape":"StringList"}, + "ecsProperties":{"shape":"EcsProperties"} } }, "OrchestrationType":{ @@ -1653,7 +1742,8 @@ "timeout":{"shape":"JobTimeout"}, "tags":{"shape":"TagrisTagsMap"}, "platformCapabilities":{"shape":"PlatformCapabilityList"}, - "eksProperties":{"shape":"EksProperties"} + "eksProperties":{"shape":"EksProperties"}, + "ecsProperties":{"shape":"EcsProperties"} } }, "RegisterJobDefinitionResponse":{ @@ -1811,7 +1901,8 @@ "propagateTags":{"shape":"Boolean"}, "timeout":{"shape":"JobTimeout"}, "tags":{"shape":"TagrisTagsMap"}, - "eksPropertiesOverride":{"shape":"EksPropertiesOverride"} + "eksPropertiesOverride":{"shape":"EksPropertiesOverride"}, + "ecsPropertiesOverride":{"shape":"EcsPropertiesOverride"} } }, "SubmitJobResponse":{ @@ -1873,6 +1964,79 @@ "key":{"shape":"String"}, "value":{"shape":"String"} }, + "TaskContainerDependency":{ + "type":"structure", + "members":{ + "containerName":{"shape":"String"}, + "condition":{"shape":"String"} + } + }, + "TaskContainerDependencyList":{ + "type":"list", + "member":{"shape":"TaskContainerDependency"} + }, + "TaskContainerDetails":{ + "type":"structure", + "members":{ + "command":{"shape":"StringList"}, + "dependsOn":{"shape":"TaskContainerDependencyList"}, + "environment":{"shape":"EnvironmentVariables"}, + "essential":{"shape":"Boolean"}, + "image":{"shape":"String"}, + "linuxParameters":{"shape":"LinuxParameters"}, + "logConfiguration":{"shape":"LogConfiguration"}, + "mountPoints":{"shape":"MountPoints"}, + "name":{"shape":"String"}, + "privileged":{"shape":"Boolean"}, + "readonlyRootFilesystem":{"shape":"Boolean"}, + "repositoryCredentials":{"shape":"RepositoryCredentials"}, + "resourceRequirements":{"shape":"ResourceRequirements"}, + "secrets":{"shape":"SecretList"}, + "ulimits":{"shape":"Ulimits"}, + "user":{"shape":"String"}, + "exitCode":{"shape":"Integer"}, + "reason":{"shape":"String"}, + "logStreamName":{"shape":"String"}, + "networkInterfaces":{"shape":"NetworkInterfaceList"} + } + }, + "TaskContainerOverrides":{ + "type":"structure", + "members":{ + "command":{"shape":"StringList"}, + "environment":{"shape":"EnvironmentVariables"}, + "name":{"shape":"String"}, + "resourceRequirements":{"shape":"ResourceRequirements"} + } + }, + "TaskContainerProperties":{ + "type":"structure", + "required":["image"], + "members":{ + "command":{"shape":"StringList"}, + "dependsOn":{"shape":"TaskContainerDependencyList"}, + "environment":{"shape":"EnvironmentVariables"}, + "essential":{"shape":"Boolean"}, + "image":{"shape":"String"}, + "linuxParameters":{"shape":"LinuxParameters"}, + "logConfiguration":{"shape":"LogConfiguration"}, + "mountPoints":{"shape":"MountPoints"}, + "name":{"shape":"String"}, + "privileged":{"shape":"Boolean"}, + "readonlyRootFilesystem":{"shape":"Boolean"}, + "repositoryCredentials":{"shape":"RepositoryCredentials"}, + "resourceRequirements":{"shape":"ResourceRequirements"}, + "secrets":{"shape":"SecretList"}, + "ulimits":{"shape":"Ulimits"}, + "user":{"shape":"String"} + } + }, + "TaskPropertiesOverride":{ + "type":"structure", + "members":{ + "containers":{"shape":"ListTaskContainerOverrides"} + } + }, "TerminateJobRequest":{ "type":"structure", "required":[ diff --git a/models/apis/batch/2016-08-10/docs-2.json b/models/apis/batch/2016-08-10/docs-2.json index f5ced0fbc7a..d3c0c2cb541 100644 --- a/models/apis/batch/2016-08-10/docs-2.json +++ b/models/apis/batch/2016-08-10/docs-2.json @@ -95,7 +95,9 @@ "EksContainerSecurityContext$runAsNonRoot": "

When this parameter is specified, the container is run as a user with a uid other than 0. If this parameter isn't specified, so such rule is enforced. This parameter maps to RunAsUser and MustRunAsNonRoot policy in the Users and groups pod security policies in the Kubernetes documentation.

", "EksContainerVolumeMount$readOnly": "

If this value is true, the container has read-only access to the volume. Otherwise, the container can write to the volume. The default value is false.

", "EksPodProperties$hostNetwork": "

Indicates if the pod uses the hosts' network IP address. The default value is true. Setting this to false enables the Kubernetes pod networking model. Most Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see Host namespaces and Pod networking in the Kubernetes documentation.

", + "EksPodProperties$shareProcessNamespace": "

Indicates if the processes in a container are shared, or visible, to other containers in the same pod. For more information, see Share Process Namespace between Containers in a Pod.

", "EksPodPropertiesDetail$hostNetwork": "

Indicates if the pod uses the hosts' network IP address. The default value is true. Setting this to false enables the Kubernetes pod networking model. Most Batch workloads are egress-only and don't require the overhead of IP allocation for each pod for incoming connections. For more information, see Host namespaces and Pod networking in the Kubernetes documentation.

", + "EksPodPropertiesDetail$shareProcessNamespace": "

Indicates if the processes in a container are shared, or visible, to other containers in the same pod. For more information, see Share Process Namespace between Containers in a Pod.

", "EksSecret$optional": "

Specifies whether the secret or the secret's keys must be defined.

", "JobDefinition$propagateTags": "

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

", "JobDetail$propagateTags": "

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks when the tasks are created. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

", @@ -107,6 +109,12 @@ "NodePropertiesSummary$isMainNode": "

Specifies whether the current node is the main node for a multi-node parallel job.

", "RegisterJobDefinitionRequest$propagateTags": "

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags are not propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state.

If the job runs on Amazon EKS resources, then you must not specify propagateTags.

", "SubmitJobRequest$propagateTags": "

Specifies whether to propagate the tags from the job or job definition to the corresponding Amazon ECS task. If no value is specified, the tags aren't propagated. Tags can only be propagated to the tasks during task creation. For tags with the same name, job tags are given priority over job definitions tags. If the total number of combined tags from the job and job definition is over 50, the job is moved to the FAILED state. When specified, this overrides the tag propagation setting in the job definition.

", + "TaskContainerDetails$essential": "

If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon Elastic Container Service Developer Guide.

", + "TaskContainerDetails$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

This parameter is not supported for Windows containers or tasks run on Fargate.

", + "TaskContainerDetails$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.

This parameter is not supported for Windows containers.

", + "TaskContainerProperties$essential": "

If the essential parameter of a container is marked as true, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the essential parameter of a container is marked as false, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential.

All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see Application Architecture in the Amazon Elastic Container Service Developer Guide.

", + "TaskContainerProperties$privileged": "

When this parameter is true, the container is given elevated privileges on the host container instance (similar to the root user). This parameter maps to Privileged in the Create a container section of the Docker Remote API and the --privileged option to docker run.

This parameter is not supported for Windows containers or tasks run on Fargate.

", + "TaskContainerProperties$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.

This parameter is not supported for Windows containers.

", "UpdatePolicy$terminateJobsOnUpdate": "

Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated. The default value is false.

" } }, @@ -178,7 +186,7 @@ } }, "ComputeEnvironmentOrder": { - "base": "

The order that compute environments are tried in for job placement within a queue. Compute environments are tried in ascending order. For example, if two compute environments are associated with a job queue, the compute environment with a lower order integer value is tried for job placement first. Compute environments must be in the VALID state before you can associate them with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

All compute environments that are associated with a job queue must share the same architecture. Batch doesn't support mixing compute environment architecture types in a single job queue.

", + "base": "

The order that compute environments are tried in for job placement within a queue. Compute environments are tried in ascending order. For example, if two compute environments are associated with a job queue, the compute environment with a lower order integer value is tried for job placement first. Compute environments must be in the VALID state before you can associate them with a job queue. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); Amazon EC2 and Fargate compute environments can't be mixed.

All compute environments that are associated with a job queue must share the same architecture. Batch doesn't support mixing compute environment architecture types in a single job queue.

", "refs": { "ComputeEnvironmentOrders$member": null } @@ -207,22 +215,22 @@ "ContainerDetail": { "base": "

An object that represents the details of a container that's part of a job.

", "refs": { - "JobDetail$container": "

An object that represents the details for the container that's associated with the job.

" + "JobDetail$container": "

An object that represents the details for the container that's associated with the job. If the details are for a multiple-container job, this object will be empty.

" } }, "ContainerOverrides": { "base": "

The overrides that should be sent to a container.

For information about using Batch overrides when you connect event sources to targets, see BatchContainerOverrides.

", "refs": { "NodePropertyOverride$containerOverrides": "

The overrides that are sent to a node range.

", - "SubmitJobRequest$containerOverrides": "

An object with various properties that override the defaults for the job definition that specify the name of a container in the specified job definition and the overrides it should receive. You can override the default command for a container, which is specified in the job definition or the Docker image, with a command override. You can also override existing environment variables on a container or add new environment variables to it with an environment override.

" + "SubmitJobRequest$containerOverrides": "

An object with properties that override the defaults for the job definition that specify the name of a container in the specified job definition and the overrides it should receive. You can override the default command for a container, which is specified in the job definition or the Docker image, with a command override. You can also override existing environment variables on a container or add new environment variables to it with an environment override.

" } }, "ContainerProperties": { "base": "

Container properties are used for Amazon ECS based job definitions. These properties to describe the container that's launched as part of a job.

", "refs": { - "JobDefinition$containerProperties": "

An object with various properties specific to Amazon ECS based jobs. Valid values are containerProperties, eksProperties, and nodeProperties. Only one can be specified.

", + "JobDefinition$containerProperties": "

An object with properties specific to Amazon ECS-based jobs. When containerProperties is used in the job definition, it can't be used in addition to eksProperties, ecsProperties, or nodeProperties.

", "NodeRangeProperty$container": "

The container details for the node range.

", - "RegisterJobDefinitionRequest$containerProperties": "

An object with various properties specific to Amazon ECS based single-node container-based jobs. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties. This must not be specified for Amazon EKS based job definitions.

If the job runs on Fargate resources, then you must not specify nodeProperties; use only containerProperties.

" + "RegisterJobDefinitionRequest$containerProperties": "

An object with properties specific to Amazon ECS-based single-node container-based jobs. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties. This must not be specified for Amazon EKS-based job definitions.

If the job runs on Fargate resources, then you must not specify nodeProperties; use only containerProperties.

" } }, "ContainerSummary": { @@ -408,8 +416,41 @@ "Ec2ConfigurationList": { "base": null, "refs": { - "ComputeResource$ec2Configuration": "

Provides information that's used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", - "ComputeResourceUpdate$ec2Configuration": "

Provides information used to select Amazon Machine Images (AMIs) for EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. To remove the EC2 configuration and any custom AMI ID specified in imageIdOverride, set this value to an empty string.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" + "ComputeResource$ec2Configuration": "

Provides information that's used to select Amazon Machine Images (AMIs) for Amazon EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", + "ComputeResourceUpdate$ec2Configuration": "

Provides information used to select Amazon Machine Images (AMIs) for Amazon EC2 instances in the compute environment. If Ec2Configuration isn't specified, the default is ECS_AL2.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide. To remove the Amazon EC2 configuration and any custom AMI ID specified in imageIdOverride, set this value to an empty string.

One or two values can be provided.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" + } + }, + "EcsProperties": { + "base": "

An object that contains the properties for the Amazon ECS resources of a job.

", + "refs": { + "JobDefinition$ecsProperties": "

An object that contains the properties for the Amazon ECS resources of a job.When ecsProperties is used in the job definition, it can't be used in addition to containerProperties, eksProperties, or nodeProperties.

", + "NodeRangeProperty$ecsProperties": "

This is an object that represents the properties of the node range for a multi-node parallel job.

", + "RegisterJobDefinitionRequest$ecsProperties": "

An object with properties that are specific to Amazon ECS-based jobs. This must not be specified for Amazon EKS-based job definitions.

" + } + }, + "EcsPropertiesDetail": { + "base": "

An object that contains the details for the Amazon ECS resources of a job.

", + "refs": { + "JobDetail$ecsProperties": "

An object with properties that are specific to Amazon ECS-based jobs.

" + } + }, + "EcsPropertiesOverride": { + "base": "

An object that contains overrides for the Amazon ECS task definition of a job.

", + "refs": { + "NodePropertyOverride$ecsPropertiesOverride": "

An object that contains the properties that you want to replace for the existing Amazon ECS resources of a job.

", + "SubmitJobRequest$ecsPropertiesOverride": "

An object, with properties that override defaults for the job definition, can only be specified for jobs that are run on Amazon ECS resources.

" + } + }, + "EcsTaskDetails": { + "base": "

The details of a task definition that describes the container and volume definitions of an Amazon ECS task.

", + "refs": { + "ListEcsTaskDetails$member": null + } + }, + "EcsTaskProperties": { + "base": "

The properties for a task definition that describes the container and volume definitions of an Amazon ECS task. You can specify which Docker images to use, the required resources, and other configurations related to launching the task definition through an Amazon ECS service or task.

", + "refs": { + "ListEcsTaskProperties$member": null } }, "EksAttemptContainerDetail": { @@ -421,7 +462,8 @@ "EksAttemptContainerDetails": { "base": null, "refs": { - "EksAttemptDetail$containers": "

The details for the final status of the containers for this job attempt.

" + "EksAttemptDetail$containers": "

The details for the final status of the containers for this job attempt.

", + "EksAttemptDetail$initContainers": "

The details for the init containers.

" } }, "EksAttemptDetail": { @@ -458,7 +500,8 @@ "EksContainerDetails": { "base": null, "refs": { - "EksPodPropertiesDetail$containers": "

The properties of the container that's used on the Amazon EKS pod.

" + "EksPodPropertiesDetail$containers": "

The properties of the container that's used on the Amazon EKS pod.

", + "EksPodPropertiesDetail$initContainers": "

The container registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store.

" } }, "EksContainerEnvironmentVariable": { @@ -476,7 +519,7 @@ } }, "EksContainerOverride": { - "base": "

Object representing any Kubernetes overrides to a job definition that's used in a SubmitJob API operation.

", + "base": "

Object representing any Kubernetes overrides to a job definition that's used in a SubmitJob API operation.

", "refs": { "EksContainerOverrideList$member": null } @@ -484,7 +527,8 @@ "EksContainerOverrideList": { "base": null, "refs": { - "EksPodPropertiesOverride$containers": "

The overrides for the container that's used on the Amazon EKS pod.

" + "EksPodPropertiesOverride$containers": "

The overrides for the container that's used on the Amazon EKS pod.

", + "EksPodPropertiesOverride$initContainers": "

The overrides for the conatainers defined in the Amazon EKS pod. These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init Containers in the Kubernetes documentation.

This object is limited to 10 elements

" } }, "EksContainerResourceRequirements": { @@ -518,7 +562,8 @@ "EksContainers": { "base": null, "refs": { - "EksPodProperties$containers": "

The properties of the container that's used on the Amazon EKS pod.

" + "EksPodProperties$containers": "

The properties of the container that's used on the Amazon EKS pod.

", + "EksPodProperties$initContainers": "

These containers run before application containers, always runs to completion, and must complete successfully before the next container starts. These containers are registered with the Amazon EKS Connector agent and persists the registration information in the Kubernetes backend data store. For more information, see Init Containers in the Kubernetes documentation.

This object is limited to 10 elements

" } }, "EksEmptyDir": { @@ -574,20 +619,20 @@ "EksProperties": { "base": "

An object that contains the properties for the Kubernetes resources of a job.

", "refs": { - "JobDefinition$eksProperties": "

An object with various properties that are specific to Amazon EKS based jobs. Valid values are containerProperties, eksProperties, and nodeProperties. Only one can be specified.

", - "RegisterJobDefinitionRequest$eksProperties": "

An object with various properties that are specific to Amazon EKS based jobs. This must not be specified for Amazon ECS based job definitions.

" + "JobDefinition$eksProperties": "

An object with properties that are specific to Amazon EKS-based jobs. When eksProperties is used in the job definition, it can't be used in addition to containerProperties, ecsProperties, or nodeProperties.

", + "RegisterJobDefinitionRequest$eksProperties": "

An object with properties that are specific to Amazon EKS-based jobs. This must not be specified for Amazon ECS based job definitions.

" } }, "EksPropertiesDetail": { "base": "

An object that contains the details for the Kubernetes resources of a job.

", "refs": { - "JobDetail$eksProperties": "

An object with various properties that are specific to Amazon EKS based jobs. Only one of container, eksProperties, or nodeDetails is specified.

" + "JobDetail$eksProperties": "

An object with various properties that are specific to Amazon EKS based jobs.

" } }, "EksPropertiesOverride": { "base": "

An object that contains overrides for the Kubernetes resources of a job.

", "refs": { - "SubmitJobRequest$eksPropertiesOverride": "

An object that can only be specified for jobs that are run on Amazon EKS resources with various properties that override defaults for the job definition.

" + "SubmitJobRequest$eksPropertiesOverride": "

An object, with properties that override defaults for the job definition, can only be specified for jobs that are run on Amazon EKS resources.

" } }, "EksRequests": { @@ -620,14 +665,19 @@ "refs": { "ContainerDetail$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.

", "ContainerOverrides$environment": "

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.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

", - "ContainerProperties$environment": "

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We don't recommend using plaintext environment variables for sensitive information, such as credential data.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

" + "ContainerProperties$environment": "

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We don't recommend using plaintext environment variables for sensitive information, such as credential data.

Environment variables cannot start with \"AWS_BATCH\". This naming convention is reserved for variables that Batch sets.

", + "TaskContainerDetails$environment": "

The environment variables to pass to a container. This parameter maps to Env in the Create a container section of the Docker Remote API and the --env option to docker run.

We don't recommend using plaintext environment variables for sensitive information, such as credential data.

", + "TaskContainerOverrides$environment": "

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.

Environment variables cannot start with AWS_BATCH. This naming convention is reserved for variables that Batch sets.

", + "TaskContainerProperties$environment": "

The environment variables to pass to a container. This parameter maps to Env inthe Create a container section of the Docker Remote API and the --env parameter to docker run.

We don't recommend using plaintext environment variables for sensitive information, such as credential data.

Environment variables cannot start with AWS_BATCH. This naming convention is reserved for variables that Batch sets.

" } }, "EphemeralStorage": { "base": "

The amount of ephemeral storage to allocate 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.

", "refs": { "ContainerDetail$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.

", - "ContainerProperties$ephemeralStorage": "

The amount of ephemeral storage to allocate 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.

" + "ContainerProperties$ephemeralStorage": "

The amount of ephemeral storage to allocate 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.

", + "EcsTaskDetails$ephemeralStorage": "

The amount of ephemeral storage allocated for the task.

", + "EcsTaskProperties$ephemeralStorage": "

The amount of ephemeral storage to allocate 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.

" } }, "EvaluateOnExit": { @@ -651,10 +701,10 @@ } }, "FargatePlatformConfiguration": { - "base": "

The platform configuration for jobs that are running on Fargate resources. Jobs that run on EC2 resources must not specify this parameter.

", + "base": "

The platform configuration for jobs that are running on Fargate resources. Jobs that run on Amazon EC2 resources must not specify this parameter.

", "refs": { - "ContainerDetail$fargatePlatformConfiguration": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

", - "ContainerProperties$fargatePlatformConfiguration": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

" + "ContainerDetail$fargatePlatformConfiguration": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.

", + "ContainerProperties$fargatePlatformConfiguration": "

The platform configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.

" } }, "Float": { @@ -701,13 +751,13 @@ "ComputeResourceUpdate$maxvCpus": "

The maximum number of Amazon EC2 vCPUs that an environment can reach.

With BEST_FIT_PROGRESSIVE,SPOT_CAPACITY_OPTIMIZED and SPOT_PRICE_CAPACITY_OPTIMIZED (recommended) strategies using On-Demand or Spot Instances, and the BEST_FIT strategy using Spot Instances, Batch might need to exceed maxvCpus to meet your capacity requirements. In this event, Batch never exceeds maxvCpus by more than a single instance.

", "ComputeResourceUpdate$desiredvCpus": "

The desired number of vCPUS in the compute environment. Batch modifies this value between the minimum and maximum values based on job queue demand.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

Batch doesn't support changing the desired number of vCPUs of an existing compute environment. Don't specify this parameter for compute environments using Amazon EKS clusters.

When you update the desiredvCpus setting, the value must be between the minvCpus and maxvCpus values.

Additionally, the updated desiredvCpus value must be greater than or equal to the current desiredvCpus value. For more information, see Troubleshooting Batch in the Batch User Guide.

", "ComputeResourceUpdate$bidPercentage": "

The maximum percentage that a Spot Instance price can be when compared with the On-Demand price for that instance type before instances are launched. For example, if your maximum percentage is 20%, the Spot price must be less than 20% of the current On-Demand price for that Amazon EC2 instance. You always pay the lowest (market) price and never more than your maximum percentage. For most use cases, we recommend leaving this field empty.

When updating a compute environment, changing the bid percentage requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", - "ContainerDetail$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.

", - "ContainerDetail$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.

", - "ContainerDetail$exitCode": "

The exit code to return upon completion.

", - "ContainerOverrides$vcpus": "

This parameter is deprecated, use resourceRequirements to override the vcpus parameter that's set in the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on EC2 resources, it overrides the vcpus parameter set in the job definition, but doesn't override any vCPU requirement specified in the resourceRequirements structure in the job definition. To override vCPU requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to VCPU and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", - "ContainerOverrides$memory": "

This parameter is deprecated, use resourceRequirements to override the memory requirements specified in the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on EC2 resources, it overrides the memory parameter set in the job definition, but doesn't override any memory requirement that's specified in the resourceRequirements structure in the job definition. To override memory requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to MEMORY and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", - "ContainerProperties$vcpus": "

This parameter is deprecated, use resourceRequirements to specify the vCPU requirements for the job definition. It's not supported for jobs running on Fargate resources. For jobs running on EC2 resources, it specifies the number of vCPUs reserved for the job.

Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. The number of vCPUs must be specified but can be specified in several places. You must specify it at least once for each node.

", - "ContainerProperties$memory": "

This parameter is deprecated, use resourceRequirements to specify the memory requirements for the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on EC2 resources, it specifies the memory hard limit (in MiB) for a container. If your container attempts to exceed the specified number, it's terminated. You must specify at least 4 MiB of memory for a job using this parameter. The memory hard limit can be specified in several places. It must be specified for each node at least once.

", + "ContainerDetail$vcpus": "

The number of vCPUs reserved for the container. For jobs that run on Amazon 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.

", + "ContainerDetail$memory": "

For jobs running on Amazon 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.

", + "ContainerDetail$exitCode": "

The exit code returned upon completion.

", + "ContainerOverrides$vcpus": "

This parameter is deprecated, use resourceRequirements to override the vcpus parameter that's set in the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on Amazon EC2 resources, it overrides the vcpus parameter set in the job definition, but doesn't override any vCPU requirement specified in the resourceRequirements structure in the job definition. To override vCPU requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to VCPU and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", + "ContainerOverrides$memory": "

This parameter is deprecated, use resourceRequirements to override the memory requirements specified in the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on Amazon EC2 resources, it overrides the memory parameter set in the job definition, but doesn't override any memory requirement that's specified in the resourceRequirements structure in the job definition. To override memory requirements that are specified in the resourceRequirements structure in the job definition, resourceRequirements must be specified in the SubmitJob request, with type set to MEMORY and value set to the new value. For more information, see Can't override job definition resource requirements in the Batch User Guide.

", + "ContainerProperties$vcpus": "

This parameter is deprecated, use resourceRequirements to specify the vCPU requirements for the job definition. It's not supported for jobs running on Fargate resources. For jobs running on Amazon EC2 resources, it specifies the number of vCPUs reserved for the job.

Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to CpuShares in the Create a container section of the Docker Remote API and the --cpu-shares option to docker run. The number of vCPUs must be specified but can be specified in several places. You must specify it at least once for each node.

", + "ContainerProperties$memory": "

This parameter is deprecated, use resourceRequirements to specify the memory requirements for the job definition. It's not supported for jobs running on Fargate resources. For jobs that run on Amazon EC2 resources, it specifies the memory hard limit (in MiB) for a container. If your container attempts to exceed the specified number, it's terminated. You must specify at least 4 MiB of memory for a job using this parameter. The memory hard limit can be specified in several places. It must be specified for each node at least once.

", "ContainerSummary$exitCode": "

The exit code to return upon completion.

", "CreateComputeEnvironmentRequest$unmanagedvCpus": "

The maximum number of vCPUs for an unmanaged compute environment. This parameter is only used for fair share scheduling to reserve vCPU capacity for new share identifiers. If this parameter isn't provided for a fair share job queue, no vCPU capacity is reserved.

This parameter is only supported when the type parameter is set to UNMANAGED.

", "CreateJobQueueRequest$priority": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute environments can't be mixed.

", @@ -715,15 +765,15 @@ "DescribeJobDefinitionsRequest$maxResults": "

The maximum number of results returned by DescribeJobDefinitions in paginated output. When this parameter is used, DescribeJobDefinitions only returns maxResults results in a single page and a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeJobDefinitions request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then DescribeJobDefinitions returns up to 100 results and a nextToken value if applicable.

", "DescribeJobQueuesRequest$maxResults": "

The maximum number of results returned by DescribeJobQueues in paginated output. When this parameter is used, DescribeJobQueues only returns maxResults results in a single page and a nextToken response element. The remaining results of the initial request can be seen by sending another DescribeJobQueues request with the returned nextToken value. This value can be between 1 and 100. If this parameter isn't used, then DescribeJobQueues returns up to 100 results and a nextToken value if applicable.

", "EFSVolumeConfiguration$transitEncryptionPort": "

The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you don't specify a transit encryption port, it uses the port selection strategy that the Amazon EFS mount helper uses. The value must be between 0 and 65,535. For more information, see EFS mount helper in the Amazon Elastic File System User Guide.

", - "EksAttemptContainerDetail$exitCode": "

The exit code for the job attempt. A non-zero exit code is considered failed.

", - "EksContainerDetail$exitCode": "

The exit code for the job attempt. A non-zero exit code is considered failed.

", + "EksAttemptContainerDetail$exitCode": "

The exit code returned for the job attempt. A non-zero exit code is considered failed.

", + "EksContainerDetail$exitCode": "

The exit code returned for the job attempt. A non-zero exit code is considered failed.

", "EphemeralStorage$sizeInGiB": "

The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is 21 GiB and the maximum supported value is 200 GiB.

", "FairsharePolicy$shareDecaySeconds": "

The amount of time (in seconds) to use to calculate a fair share percentage for each fair share identifier in use. A value of zero (0) indicates that only current usage is measured. The decay allows for more recently run jobs to have more weight than jobs that ran earlier. The maximum supported value is 604800 (1 week).

", "FairsharePolicy$computeReservation": "

A value used to reserve some of the available maximum vCPU for fair share identifiers that aren't already used.

The reserved ratio is (computeReservation/100)^ActiveFairShares where ActiveFairShares is the number of active fair share identifiers.

For example, a computeReservation value of 50 indicates that Batch reserves 50% of the maximum available vCPU if there's only one fair share identifier. It reserves 25% if there are two fair share identifiers. It reserves 12.5% if there are three fair share identifiers. A computeReservation value of 25 indicates that Batch should reserve 25% of the maximum available vCPU if there's only one fair share identifier, 6.25% if there are two fair share identifiers, and 1.56% if there are three fair share identifiers.

The minimum value is 0 and the maximum value is 99.

", "JobDefinition$revision": "

The revision of the job definition.

", "JobDefinition$schedulingPriority": "

The scheduling priority of the job definition. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.

", "JobDetail$schedulingPriority": "

The scheduling policy of the job definition. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority.

", - "JobQueueDetail$priority": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT). EC2 and Fargate compute environments can't be mixed.

", + "JobQueueDetail$priority": "

The priority of the job queue. Job queues with a higher priority (or a higher integer value for the priority parameter) are evaluated first when associated with the same compute environment. Priority is determined in descending order. For example, a job queue with a priority value of 10 is given scheduling preference over a job queue with a priority value of 1. All of the compute environments must be either Amazon EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT). Amazon EC2 and Fargate compute environments can't be mixed.

", "JobTimeout$attemptDurationSeconds": "

The job timeout time (in seconds) that's measured from the job attempt's startedAt timestamp. After this time passes, Batch terminates your jobs if they aren't finished. The minimum value for the timeout is 60 seconds.

For array jobs, the timeout applies to the child jobs, not to the parent array job.

For multi-node parallel (MNP) jobs, the timeout applies to the whole job, not to the individual nodes.

", "LinuxParameters$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.

", "LinuxParameters$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.

", @@ -740,6 +790,7 @@ "RegisterJobDefinitionResponse$revision": "

The revision of the job definition.

", "RetryStrategy$attempts": "

The number of times to move a job to the RUNNABLE status. You can specify between 1 and 10 attempts. If the value of attempts is greater than one, the job is retried on failure the same number of attempts as the value.

", "SubmitJobRequest$schedulingPriorityOverride": "

The scheduling priority for the job. This only affects jobs in job queues with a fair share policy. Jobs with a higher scheduling priority are scheduled before jobs with a lower scheduling priority. This overrides any scheduling priority in the job definition and works only within a single share identifier.

The minimum supported value is 0 and the maximum supported value is 9999.

", + "TaskContainerDetails$exitCode": "

The exit code returned upon completion.

", "Tmpfs$size": "

The size (in MiB) of the tmpfs volume.

", "Ulimit$hardLimit": "

The hard limit for the ulimit type.

", "Ulimit$softLimit": "

The soft limit for the ulimit type.

", @@ -776,7 +827,7 @@ "JobDefinitionType": { "base": null, "refs": { - "RegisterJobDefinitionRequest$type": "

The type of job definition. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the Batch User Guide.

If the job is run on Fargate resources, then multinode isn't supported.

" + "RegisterJobDefinitionRequest$type": "

The type of job definition. For more information about multi-node parallel jobs, see Creating a multi-node parallel job definition in the Batch User Guide.

If the job is run on Fargate resources, then multinode isn't supported.

" } }, "JobDependency": { @@ -872,7 +923,7 @@ "LaunchTemplateSpecification": { "base": "

An object that represents a launch template that's associated with a compute resource. You must specify either the launch template ID or launch template name in the request, but not both.

If security groups are specified using both the securityGroupIds parameter of CreateComputeEnvironment and the launch template, the values in the securityGroupIds parameter of CreateComputeEnvironment will be used.

This object isn't applicable to jobs that are running on Fargate resources.

", "refs": { - "ComputeResource$launchTemplate": "

The launch template to use for your compute resources. Any other compute resource parameters that you specify in a CreateComputeEnvironment API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch template support in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", + "ComputeResource$launchTemplate": "

The launch template to use for your compute resources. Any other compute resource parameters that you specify in a CreateComputeEnvironment API operation override the same parameters in the launch template. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch template support in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", "ComputeResourceUpdate$launchTemplate": "

The updated launch template to use for your compute resources. You must specify either the launch template ID or launch template name in the request, but not both. For more information, see Launch template support in the Batch User Guide. To remove the custom launch template and use the default launch template, set launchTemplateId or launchTemplateName member of the launch template specification to an empty string. Removing the launch template from a compute environment will not remove the AMI specified in the launch template. In order to update the AMI specified in a launch template, the updateToLatestImageVersion parameter must be set to true.

When updating a compute environment, changing the launch template requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" } }, @@ -880,7 +931,21 @@ "base": "

Linux-specific modifications that are applied to the container, such as details for device mappings.

", "refs": { "ContainerDetail$linuxParameters": "

Linux-specific modifications that are applied to the container, such as details for device mappings.

", - "ContainerProperties$linuxParameters": "

Linux-specific modifications that are applied to the container, such as details for device mappings.

" + "ContainerProperties$linuxParameters": "

Linux-specific modifications that are applied to the container, such as details for device mappings.

", + "TaskContainerDetails$linuxParameters": "

Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information, see KernelCapabilities.

This parameter is not supported for Windows containers.

", + "TaskContainerProperties$linuxParameters": "

Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information, see KernelCapabilities.

" + } + }, + "ListEcsTaskDetails": { + "base": null, + "refs": { + "EcsPropertiesDetail$taskProperties": "

The properties for the Amazon ECS task definition of a job.

" + } + }, + "ListEcsTaskProperties": { + "base": null, + "refs": { + "EcsProperties$taskProperties": "

An object that contains the properties for the Amazon ECS task definition of a job.

This object is currently limited to one element.

" } }, "ListJobsFilterList": { @@ -919,11 +984,37 @@ "refs": { } }, + "ListTaskContainerDetails": { + "base": null, + "refs": { + "EcsTaskDetails$containers": "

A list of containers that are included in the taskProperties list.

" + } + }, + "ListTaskContainerOverrides": { + "base": null, + "refs": { + "TaskPropertiesOverride$containers": "

The overrides for the container definition of a job.

" + } + }, + "ListTaskContainerProperties": { + "base": null, + "refs": { + "EcsTaskProperties$containers": "

This object is a list of containers.

" + } + }, + "ListTaskPropertiesOverride": { + "base": null, + "refs": { + "EcsPropertiesOverride$taskProperties": "

The overrides for the Amazon ECS task definition of a job.

This object is currently limited to one element.

" + } + }, "LogConfiguration": { "base": "

Log configuration options to send to a custom log driver for the container.

", "refs": { - "ContainerDetail$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.

", - "ContainerProperties$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 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).

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.

" + "ContainerDetail$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.

", + "ContainerProperties$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 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).

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.

", + "TaskContainerDetails$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 can 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 on a different log server for remote logging options). For more information about the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may 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 --format '{{.Server.APIVersion}}'

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.

", + "TaskContainerProperties$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 can 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 on a different log server for remote logging options). For more information about the options for different supported log drivers, see Configure logging drivers in the Docker documentation.

Amazon ECS currently supports a subset of the logging drivers available to the Docker daemon (shown in the LogConfiguration data type). Additional log drivers may 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 --format '{{.Server.APIVersion}}'

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.

" } }, "LogConfigurationOptionsMap": { @@ -947,10 +1038,10 @@ "EksAttemptDetail$stoppedAt": "

The Unix timestamp (in milliseconds) for when the attempt was stopped. This happens when the attempt transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

", "EksContainerSecurityContext$runAsUser": "

When this parameter is specified, the container is run as the specified user ID (uid). If this parameter isn't specified, the default is the user that's specified in the image metadata. This parameter maps to RunAsUser and MustRanAs policy in the Users and groups pod security policies in the Kubernetes documentation.

", "EksContainerSecurityContext$runAsGroup": "

When this parameter is specified, the container is run as the specified group ID (gid). If this parameter isn't specified, the default is the group that's specified in the image metadata. This parameter maps to RunAsGroup and MustRunAs policy in the Users and groups pod security policies in the Kubernetes documentation.

", - "JobDetail$createdAt": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state. This is specifically at the time SubmitJob was called. For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state.

", + "JobDetail$createdAt": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state. This is specifically at the time SubmitJob was called. For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state.

", "JobDetail$startedAt": "

The Unix timestamp (in milliseconds) for when the job was started. More specifically, it's when the job transitioned from the STARTING state to the RUNNING state.

", "JobDetail$stoppedAt": "

The Unix timestamp (in milliseconds) for when the job was stopped. More specifically, it's when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

", - "JobSummary$createdAt": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state (at the time SubmitJob was called). For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state.

", + "JobSummary$createdAt": "

The Unix timestamp (in milliseconds) for when the job was created. For non-array jobs and parent array jobs, this is when the job entered the SUBMITTED state (at the time SubmitJob was called). For array child jobs, this is when the child job was spawned by its parent and entered the PENDING state.

", "JobSummary$startedAt": "

The Unix timestamp for when the job was started. More specifically, it's when the job transitioned from the STARTING state to the RUNNING state.

", "JobSummary$stoppedAt": "

The Unix timestamp for when the job was stopped. More specifically, it's when the job transitioned from the RUNNING state to a terminal state, such as SUCCEEDED or FAILED.

" } @@ -965,14 +1056,18 @@ "base": null, "refs": { "ContainerDetail$mountPoints": "

The mount points for data volumes in your container.

", - "ContainerProperties$mountPoints": "

The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

" + "ContainerProperties$mountPoints": "

The mount points for data volumes in your container. This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

", + "TaskContainerDetails$mountPoints": "

The mount points for data volumes in your container.

This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers can't mount directories on a different drive, and mount point can't be across drives.

", + "TaskContainerProperties$mountPoints": "

The mount points for data volumes in your container.

This parameter maps to Volumes in the Create a container section of the Docker Remote API and the --volume option to docker run.

Windows containers can mount whole directories on the same drive as $env:ProgramData. Windows containers can't mount directories on a different drive, and mount point can't be across drives.

" } }, "NetworkConfiguration": { - "base": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

", + "base": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.

", "refs": { - "ContainerDetail$networkConfiguration": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

", - "ContainerProperties$networkConfiguration": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on EC2 resources must not specify this parameter.

" + "ContainerDetail$networkConfiguration": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.

", + "ContainerProperties$networkConfiguration": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.

", + "EcsTaskDetails$networkConfiguration": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.

", + "EcsTaskProperties$networkConfiguration": "

The network configuration for jobs that are running on Fargate resources. Jobs that are running on Amazon EC2 resources must not specify this parameter.

" } }, "NetworkInterface": { @@ -985,7 +1080,8 @@ "base": null, "refs": { "AttemptContainerDetail$networkInterfaces": "

The network interfaces that are associated with the job attempt.

", - "ContainerDetail$networkInterfaces": "

The network interfaces that are associated with the job.

" + "ContainerDetail$networkInterfaces": "

The network interfaces that are associated with the job.

", + "TaskContainerDetails$networkInterfaces": "

The network interfaces that are associated with the job.

" } }, "NodeDetails": { @@ -995,7 +1091,7 @@ } }, "NodeOverrides": { - "base": "

An object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs. Rather, use containerOverrides instead.

", + "base": "

An object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't provide it for these jobs. Rather, use containerOverrides instead.

", "refs": { "SubmitJobRequest$nodeOverrides": "

A list of node overrides in JSON format that specify the node range to target and the container overrides for that node range.

This parameter isn't applicable to jobs that are running on Fargate resources; use containerOverrides instead.

" } @@ -1003,9 +1099,9 @@ "NodeProperties": { "base": "

An object that represents the node properties of a multi-node parallel job.

Node properties can't be specified for Amazon EKS based job definitions.

", "refs": { - "JobDefinition$nodeProperties": "

An object with various properties that are specific to multi-node parallel jobs. Valid values are containerProperties, eksProperties, and nodeProperties. Only one can be specified.

If the job runs on Fargate resources, don't specify nodeProperties. Use containerProperties instead.

", + "JobDefinition$nodeProperties": "

An object with properties that are specific to multi-node parallel jobs. When nodeProperties is used in the job definition, it can't be used in addition to containerProperties, ecsProperties, or eksProperties.

If the job runs on Fargate resources, don't specify nodeProperties. Use containerProperties instead.

", "JobDetail$nodeProperties": "

An object that represents the node properties of a multi-node parallel job.

This isn't applicable to jobs that are running on Fargate resources.

", - "RegisterJobDefinitionRequest$nodeProperties": "

An object with various properties specific to multi-node parallel jobs. If you specify node properties for a job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the Batch User Guide. If the job definition's type parameter is container, then you must specify either containerProperties or nodeProperties.

If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead.

If the job runs on Amazon EKS resources, then you must not specify nodeProperties.

" + "RegisterJobDefinitionRequest$nodeProperties": "

An object with properties specific to multi-node parallel jobs. If you specify node properties for a job, it becomes a multi-node parallel job. For more information, see Multi-node Parallel Jobs in the Batch User Guide.

If the job runs on Fargate resources, then you must not specify nodeProperties; use containerProperties instead.

If the job runs on Amazon EKS resources, then you must not specify nodeProperties.

" } }, "NodePropertiesSummary": { @@ -1015,7 +1111,7 @@ } }, "NodePropertyOverride": { - "base": "

The object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

", + "base": "

The object that represents any node overrides to a job definition that's used in a SubmitJob API operation.

", "refs": { "NodePropertyOverrides$member": null } @@ -1033,7 +1129,7 @@ } }, "NodeRangeProperty": { - "base": "

An object that represents the properties of the node range for a multi-node parallel job.

", + "base": "

This is an object that represents the properties of the node range for a multi-node parallel job.

", "refs": { "NodeRangeProperties$member": null } @@ -1090,7 +1186,9 @@ "base": "

The repository credentials for private registry authentication.

", "refs": { "ContainerDetail$repositoryCredentials": "

The private repository authentication credentials to use.

", - "ContainerProperties$repositoryCredentials": "

The private repository authentication credentials to use.

" + "ContainerProperties$repositoryCredentials": "

The private repository authentication credentials to use.

", + "TaskContainerDetails$repositoryCredentials": "

The private repository authentication credentials to use.

", + "TaskContainerProperties$repositoryCredentials": "

The private repository authentication credentials to use.

" } }, "ResourceRequirement": { @@ -1104,7 +1202,10 @@ "refs": { "ContainerDetail$resourceRequirements": "

The type and amount of resources to assign to a container. The supported resources include GPU, MEMORY, and VCPU.

", "ContainerOverrides$resourceRequirements": "

The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU.

", - "ContainerProperties$resourceRequirements": "

The type and amount of resources to assign to a container. The supported resources include GPU, MEMORY, and VCPU.

" + "ContainerProperties$resourceRequirements": "

The type and amount of resources to assign to a container. The supported resources include GPU, MEMORY, and VCPU.

", + "TaskContainerDetails$resourceRequirements": "

The type and amount of a resource to assign to a container. The only supported resource is a GPU.

", + "TaskContainerOverrides$resourceRequirements": "

The type and amount of resources to assign to a container. This overrides the settings in the job definition. The supported resources include GPU, MEMORY, and VCPU.

", + "TaskContainerProperties$resourceRequirements": "

The type and amount of a resource to assign to a container. The only supported resource is a GPU.

" } }, "ResourceType": { @@ -1132,7 +1233,9 @@ "base": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

", "refs": { "ContainerDetail$runtimePlatform": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

", - "ContainerProperties$runtimePlatform": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

" + "ContainerProperties$runtimePlatform": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

", + "EcsTaskDetails$runtimePlatform": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

", + "EcsTaskProperties$runtimePlatform": "

An object that represents the compute environment architecture for Batch jobs on Fargate.

" } }, "SchedulingPolicyDetail": { @@ -1170,7 +1273,9 @@ "refs": { "ContainerDetail$secrets": "

The secrets to pass to the container. For more information, see Specifying sensitive data in the Batch User Guide.

", "ContainerProperties$secrets": "

The secrets for the container. For more information, see Specifying sensitive data in the Batch User Guide.

", - "LogConfiguration$secretOptions": "

The secrets to pass to the log configuration. For more information, see Specifying sensitive data in the Batch User Guide.

" + "LogConfiguration$secretOptions": "

The secrets to pass to the log configuration. For more information, see Specifying sensitive data in the Batch User Guide.

", + "TaskContainerDetails$secrets": "

The secrets to pass to the container. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

", + "TaskContainerProperties$secrets": "

The secrets to pass to the container. For more information, see Specifying Sensitive Data in the Amazon Elastic Container Service Developer Guide.

" } }, "ServerException": { @@ -1214,7 +1319,7 @@ "ComputeResource$instanceRole": "

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. This parameter is required for Amazon EC2 instances types. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", "ComputeResource$placementGroup": "

The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", "ComputeResource$spotIamFleetRole": "

The Amazon Resource Name (ARN) of the Amazon EC2 Spot Fleet IAM role applied to a SPOT compute environment. This role is required if the allocation strategy set to BEST_FIT or if the allocation strategy isn't specified. For more information, see Amazon EC2 spot fleet role in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

To tag your Spot Instances on creation, the Spot Fleet IAM role specified here must use the newer AmazonEC2SpotFleetTaggingRole managed policy. The previously recommended AmazonEC2SpotFleetRole managed policy doesn't have the required permissions to tag Spot Instances. For more information, see Spot instances not tagged on creation in the Batch User Guide.

", - "ComputeResourceUpdate$ec2KeyPair": "

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH. To remove the Amazon EC2 key pair, set this value to an empty string.

When updating a compute environment, changing the EC2 key pair requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", + "ComputeResourceUpdate$ec2KeyPair": "

The Amazon EC2 key pair that's used for instances launched in the compute environment. You can use this key pair to log in to your instances with SSH. To remove the Amazon EC2 key pair, set this value to an empty string.

When updating a compute environment, changing the Amazon EC2 key pair requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", "ComputeResourceUpdate$instanceRole": "

The Amazon ECS instance profile applied to Amazon EC2 instances in a compute environment. Required for Amazon EC2 instances. You can specify the short name or full Amazon Resource Name (ARN) of an instance profile. For example, ecsInstanceRole or arn:aws:iam::<aws_account_id>:instance-profile/ecsInstanceRole . For more information, see Amazon ECS instance role in the Batch User Guide.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", "ComputeResourceUpdate$placementGroup": "

The Amazon EC2 placement group to associate with your compute resources. If you intend to submit multi-node parallel jobs to your compute environment, you should consider creating a cluster placement group and associate it with your compute resources. This keeps your multi-node parallel job on a logical grouping of instances within a single Availability Zone with high network flow potential. For more information, see Placement groups in the Amazon EC2 User Guide for Linux Instances.

When updating a compute environment, changing the placement group requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", "ComputeResourceUpdate$imageId": "

The Amazon Machine Image (AMI) ID used for instances launched in the compute environment. This parameter is overridden by the imageIdOverride member of the Ec2Configuration structure. To remove the custom AMI ID and use the default AMI ID, set this value to an empty string.

When updating a compute environment, changing the AMI ID requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

The AMI that you choose for a compute environment must match the architecture of the instance types that you intend to use for that compute environment. For example, if your compute environment uses A1 instance types, the compute resource AMI that you choose must support ARM instances. Amazon ECS vends both x86 and ARM versions of the Amazon ECS-optimized Amazon Linux 2 AMI. For more information, see Amazon ECS-optimized Amazon Linux 2 AMI in the Amazon Elastic Container Service Developer Guide.

", @@ -1262,6 +1367,18 @@ "EFSAuthorizationConfig$accessPointId": "

The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the EFSVolumeConfiguration must either be omitted or set to / which enforces the path set on the EFS access point. If an access point is used, transit encryption must be enabled in the EFSVolumeConfiguration. For more information, see Working with Amazon EFS access points in the Amazon Elastic File System User Guide.

", "EFSVolumeConfiguration$fileSystemId": "

The Amazon EFS file system ID to use.

", "EFSVolumeConfiguration$rootDirectory": "

The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume is used instead. Specifying / has the same effect as omitting this parameter. The maximum length is 4,096 characters.

If an EFS access point is specified in the authorizationConfig, the root directory parameter must either be omitted or set to /, which enforces the path set on the Amazon EFS access point.

", + "EcsTaskDetails$containerInstanceArn": "

The Amazon Resource Name (ARN) of the container instance that hosts the task.

", + "EcsTaskDetails$taskArn": "

The ARN of the Amazon ECS task.

", + "EcsTaskDetails$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.

", + "EcsTaskDetails$platformVersion": "

The Fargate platform version where the jobs are running.

", + "EcsTaskDetails$ipcMode": "

The IPC resource namespace to use for the containers in the task.

", + "EcsTaskDetails$taskRoleArn": "

The Amazon Resource Name (ARN) of the IAM role that the container can assume for Amazon Web Services permissions. For more information, see IAM roles for tasks in the Amazon Elastic Container Service Developer Guide.

This is object is comparable to ContainerProperties:jobRoleArn.

", + "EcsTaskDetails$pidMode": "

The process namespace to use for the containers in the task.

", + "EcsTaskProperties$executionRoleArn": "

The Amazon Resource Name (ARN) of the execution role that Batch can assume. For jobs that run on Fargate resources, you must provide an execution role. For more information, see Batch execution IAM role in the Batch User Guide.

", + "EcsTaskProperties$platformVersion": "

The Fargate platform version where the jobs are running. A platform version is specified only for jobs that are running on Fargate resources. If one isn't specified, the LATEST platform version is used by default. This uses a recent, approved version of the Fargate platform for compute resources. For more information, see Fargate platform versions in the Amazon Elastic Container Service Developer Guide.

", + "EcsTaskProperties$ipcMode": "

The IPC resource namespace to use for the containers in the task. The valid values are host, task, or none.

If host is specified, all containers within the tasks that specified the host IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance.

If task is specified, all containers within the specified task share the same IPC resources.

If none is specified, the IPC resources within the containers of a task are private, and are not shared with other containers in a task or on the container instance.

If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see IPC settings in the Docker run reference.

", + "EcsTaskProperties$taskRoleArn": "

The Amazon Resource Name (ARN) that's associated with the Amazon ECS task.

This is object is comparable to ContainerProperties:jobRoleArn.

", + "EcsTaskProperties$pidMode": "

The process namespace to use for the containers in the task. The valid values are host or task. For example, monitoring sidecars might need pidMode to access information about other containers running in the same task.

If host is specified, all containers within the tasks that specified the host PID mode on the same container instance share the process namespace with the host Amazon EC2 instance.

If task is specified, all containers within the specified task share the same process namespace.

If no value is specified, the default is a private namespace for each container. For more information, see PID settings in the Docker run reference.

", "EksAttemptContainerDetail$reason": "

A short (255 max characters) human-readable string to provide additional details for a running or stopped container.

", "EksAttemptDetail$podName": "

The name of the pod for this job attempt.

", "EksAttemptDetail$nodeName": "

The name of the node for this job attempt.

", @@ -1277,6 +1394,7 @@ "EksContainerDetail$reason": "

A short human-readable string to provide additional details for a running or stopped container. It can be up to 255 characters long.

", "EksContainerEnvironmentVariable$name": "

The name of the environment variable.

", "EksContainerEnvironmentVariable$value": "

The value of the environment variable.

", + "EksContainerOverride$name": "

A pointer to the container that you want to override. The name must match a unique container name that you wish to override.

", "EksContainerOverride$image": "

The override of the Docker image that's used to start the container.

", "EksContainerVolumeMount$name": "

The name the volume mount. This must match the name of one of the volumes in the pod.

", "EksContainerVolumeMount$mountPath": "

The path on the container where the volume is mounted.

", @@ -1349,7 +1467,7 @@ "RegisterJobDefinitionResponse$jobDefinitionName": "

The name of the job definition.

", "RegisterJobDefinitionResponse$jobDefinitionArn": "

The Amazon Resource Name (ARN) of the job definition.

", "RepositoryCredentials$credentialsParameter": "

The Amazon Resource Name (ARN) of the secret containing the private repository credentials.

", - "ResourceRequirement$value": "

The quantity of the specified resource to reserve for the container. The values vary based on the type specified.

type=\"GPU\"

The number of physical GPUs to reserve for the container. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on.

GPUs aren't available for jobs that are running on Fargate resources.

type=\"MEMORY\"

The memory hard limit (in MiB) present to the container. This parameter is supported for jobs that are running on EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

For jobs that are running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 or 0.5

value = 2048

VCPU = 0.25, 0.5, or 1

value = 3072

VCPU = 0.5, or 1

value = 4096

VCPU = 0.5, 1, or 2

value = 5120, 6144, or 7168

VCPU = 1 or 2

value = 8192

VCPU = 1, 2, or 4

value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or 4

value = 16384

VCPU = 2, 4, or 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720

VCPU = 4

value = 20480, 24576, or 28672

VCPU = 4 or 8

value = 36864, 45056, 53248, or 61440

VCPU = 8

value = 32768, 40960, 49152, or 57344

VCPU = 8 or 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

VCPU = 16

type=\"VCPU\"

The number of vCPUs reserved for the container. 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. For EC2 resources, 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.

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more information about Fargate quotas, see Fargate quotas in the Amazon Web Services General Reference.

For jobs that are running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

MEMORY = 512, 1024, or 2048

value = 0.5

MEMORY = 1024, 2048, 3072, or 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

", + "ResourceRequirement$value": "

The quantity of the specified resource to reserve for the container. The values vary based on the type specified.

type=\"GPU\"

The number of physical GPUs to reserve for the container. Make sure that the number of GPUs reserved for all containers in a job doesn't exceed the number of available GPUs on the compute resource that the job is launched on.

GPUs aren't available for jobs that are running on Fargate resources.

type=\"MEMORY\"

The memory hard limit (in MiB) present to the container. This parameter is supported for jobs that are running on Amazon EC2 resources. If your container attempts to exceed the memory specified, the container is terminated. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run. You must specify at least 4 MiB of memory for a job. This is required but can be specified in several places for multi-node parallel (MNP) jobs. It must be specified for each node at least once. This parameter maps to Memory in the Create a container section of the Docker Remote API and the --memory option to docker run.

If you're trying to maximize your resource utilization by providing your jobs as much memory as possible for a particular instance type, see Memory management in the Batch User Guide.

For jobs that are running on Fargate resources, then value is the hard limit (in MiB), and must match one of the supported values and the VCPU values must be one of the values supported for that memory value.

value = 512

VCPU = 0.25

value = 1024

VCPU = 0.25 or 0.5

value = 2048

VCPU = 0.25, 0.5, or 1

value = 3072

VCPU = 0.5, or 1

value = 4096

VCPU = 0.5, 1, or 2

value = 5120, 6144, or 7168

VCPU = 1 or 2

value = 8192

VCPU = 1, 2, or 4

value = 9216, 10240, 11264, 12288, 13312, 14336, or 15360

VCPU = 2 or 4

value = 16384

VCPU = 2, 4, or 8

value = 17408, 18432, 19456, 21504, 22528, 23552, 25600, 26624, 27648, 29696, or 30720

VCPU = 4

value = 20480, 24576, or 28672

VCPU = 4 or 8

value = 36864, 45056, 53248, or 61440

VCPU = 8

value = 32768, 40960, 49152, or 57344

VCPU = 8 or 16

value = 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

VCPU = 16

type=\"VCPU\"

The number of vCPUs reserved for the container. 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. For Amazon EC2 resources, 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.

The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. For more information about Fargate quotas, see Fargate quotas in the Amazon Web Services General Reference.

For jobs that are running on Fargate resources, then value must match one of the supported values and the MEMORY values must be one of the values supported for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and 16

value = 0.25

MEMORY = 512, 1024, or 2048

value = 0.5

MEMORY = 1024, 2048, 3072, or 4096

value = 1

MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192

value = 2

MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, or 16384

value = 4

MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, 29696, or 30720

value = 8

MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, 57344, or 61440

value = 16

MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, 114688, or 122880

", "RuntimePlatform$operatingSystemFamily": "

The operating system for the compute environment. Valid values are: LINUX (default), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, and WINDOWS_SERVER_2022_FULL.

The following parameters can’t be set for Windows containers: linuxParameters, privileged, user, ulimits, readonlyRootFilesystem, and efsVolumeConfiguration.

The Batch Scheduler checks the compute environments that are attached to the job queue before registering a task definition with Fargate. In this scenario, the job queue is where the job is submitted. If the job requires a Windows container and the first compute environment is LINUX, the compute environment is skipped and the next compute environment is checked until a Windows-based compute environment is found.

Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ARM64 or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both FARGATE and FARGATE_SPOT compute environments to the same job queue.

", "RuntimePlatform$cpuArchitecture": "

The vCPU architecture. The default value is X86_64. Valid values are X86_64 and ARM64.

This parameter must be set to X86_64 for Windows containers.

Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. A job queue will be blocked if a Fargate ARM64 or Windows job is submitted to a job queue with only Fargate Spot compute environments. However, you can attach both FARGATE and FARGATE_SPOT compute environments to the same job queue.

", "SchedulingPolicyDetail$name": "

The name of the scheduling policy.

", @@ -1370,6 +1488,17 @@ "TagResourceRequest$resourceArn": "

The Amazon Resource Name (ARN) of the resource that tags are added to. Batch resources that support tags are compute environments, jobs, job definitions, job queues, and scheduling policies. ARNs for child jobs of array and multi-node parallel (MNP) jobs aren't supported.

", "TagsMap$key": null, "TagsMap$value": null, + "TaskContainerDependency$containerName": "

A unique identifier for the container.

", + "TaskContainerDependency$condition": "

The dependency condition of the container. The following are the available conditions and their behavior:

", + "TaskContainerDetails$image": "

The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of the docker run .

", + "TaskContainerDetails$name": "

The name of a container.

", + "TaskContainerDetails$user": "

The user 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.

When running tasks using the host network mode, don't run containers using the root user (UID 0). We recommend using a non-root user for better security.

You can specify the user using the following formats. If specifying a UID or GID, you must specify it as a positive integer.

This parameter is not supported for Windows containers.

", + "TaskContainerDetails$reason": "

A short (255 max characters) human-readable string to provide additional details for a running or stopped container.

", + "TaskContainerDetails$logStreamName": "

The name of the 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.

", + "TaskContainerOverrides$name": "

A pointer to the container that you want to override. The container's name provides a unique identifier for the container being used.

", + "TaskContainerProperties$image": "

The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either repository-url/image:tag or repository-url/image@digest. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to Image in the Create a container section of the Docker Remote API and the IMAGE parameter of the docker run .

", + "TaskContainerProperties$name": "

The name of a container. The name can be used as a unique identifier to target your dependsOn and Overrides objects.

", + "TaskContainerProperties$user": "

The user 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.

When running tasks using the host network mode, don't run containers using the root user (UID 0). We recommend using a non-root user for better security.

You can specify the user using the following formats. If specifying a UID or GID, you must specify it as a positive integer.

This parameter is not supported for Windows containers.

", "TerminateJobRequest$jobId": "

The Batch job ID of the job to terminate.

", "TerminateJobRequest$reason": "

A message to attach to the job that explains the reason for canceling it. This message is returned by future DescribeJobs operations on the job. This message is also recorded in the Batch activity logs.

", "Tmpfs$containerPath": "

The absolute file path in the container where the tmpfs volume is mounted.

", @@ -1393,8 +1522,8 @@ "ComputeResource$instanceTypes": "

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge). You can also choose optimal to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

Currently, optimal uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used.

", "ComputeResource$subnets": "

The VPC subnets where the compute resources are launched. These subnets must be within the same VPC. Fargate compute resources can contain up to 16 subnets. For more information, see VPCs and subnets in the Amazon VPC User Guide.

Batch on Amazon EC2 and Batch on Amazon EKS support Local Zones. For more information, see Local Zones in the Amazon EC2 User Guide for Linux Instances, Amazon EKS and Amazon Web Services Local Zones in the Amazon EKS User Guide and Amazon ECS clusters in Local Zones, Wavelength Zones, and Amazon Web Services Outposts in the Amazon ECS Developer Guide.

Batch on Fargate doesn't currently support Local Zones.

", "ComputeResource$securityGroupIds": "

The Amazon EC2 security groups that are associated with instances launched in the compute environment. One or more security groups must be specified, either in securityGroupIds or using a launch template referenced in launchTemplate. This parameter is required for jobs that are running on Fargate resources and must contain at least one security group. Fargate doesn't support launch templates. If security groups are specified using both securityGroupIds and launchTemplate, the values in securityGroupIds are used.

", - "ComputeResourceUpdate$subnets": "

The VPC subnets where the compute resources are launched. Fargate compute resources can contain up to 16 subnets. For Fargate compute resources, providing an empty list will be handled as if this parameter wasn't specified and no change is made. For EC2 compute resources, providing an empty list removes the VPC subnets from the compute resource. For more information, see VPCs and subnets in the Amazon VPC User Guide.

When updating a compute environment, changing the VPC subnets requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

Batch on Amazon EC2 and Batch on Amazon EKS support Local Zones. For more information, see Local Zones in the Amazon EC2 User Guide for Linux Instances, Amazon EKS and Amazon Web Services Local Zones in the Amazon EKS User Guide and Amazon ECS clusters in Local Zones, Wavelength Zones, and Amazon Web Services Outposts in the Amazon ECS Developer Guide.

Batch on Fargate doesn't currently support Local Zones.

", - "ComputeResourceUpdate$securityGroupIds": "

The Amazon EC2 security groups that are associated with instances launched in the compute environment. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups. For Fargate compute resources, providing an empty list is handled as if this parameter wasn't specified and no change is made. For EC2 compute resources, providing an empty list removes the security groups from the compute resource.

When updating a compute environment, changing the EC2 security groups requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

", + "ComputeResourceUpdate$subnets": "

The VPC subnets where the compute resources are launched. Fargate compute resources can contain up to 16 subnets. For Fargate compute resources, providing an empty list will be handled as if this parameter wasn't specified and no change is made. For Amazon EC2 compute resources, providing an empty list removes the VPC subnets from the compute resource. For more information, see VPCs and subnets in the Amazon VPC User Guide.

When updating a compute environment, changing the VPC subnets requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

Batch on Amazon EC2 and Batch on Amazon EKS support Local Zones. For more information, see Local Zones in the Amazon EC2 User Guide for Linux Instances, Amazon EKS and Amazon Web Services Local Zones in the Amazon EKS User Guide and Amazon ECS clusters in Local Zones, Wavelength Zones, and Amazon Web Services Outposts in the Amazon ECS Developer Guide.

Batch on Fargate doesn't currently support Local Zones.

", + "ComputeResourceUpdate$securityGroupIds": "

The Amazon EC2 security groups that are associated with instances launched in the compute environment. This parameter is required for Fargate compute resources, where it can contain up to 5 security groups. For Fargate compute resources, providing an empty list is handled as if this parameter wasn't specified and no change is made. For Amazon EC2 compute resources, providing an empty list removes the security groups from the compute resource.

When updating a compute environment, changing the Amazon EC2 security groups requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

", "ComputeResourceUpdate$instanceTypes": "

The instances types that can be launched. You can specify instance families to launch any instance type within those families (for example, c5 or p3), or you can specify specific sizes within a family (such as c5.8xlarge). You can also choose optimal to select instance types (from the C4, M4, and R4 instance families) that match the demand of your job queues.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

When you create a compute environment, the instance types that you select for the compute environment must share the same architecture. For example, you can't mix x86 and ARM instances in the same compute environment.

Currently, optimal uses instance types from the C4, M4, and R4 instance families. In Regions that don't have instance types from those instance families, instance types from the C5, M5, and R5 instance families are used.

", "ContainerDetail$command": "

The command that's passed to the container.

", "ContainerOverrides$command": "

The command to send to the container that overrides the default command from the Docker image or the job definition.

This parameter can't contain an empty string.

", @@ -1405,12 +1534,17 @@ "DescribeJobsRequest$jobs": "

A list of up to 100 job IDs.

", "DescribeSchedulingPoliciesRequest$arns": "

A list of up to 100 scheduling policy Amazon Resource Name (ARN) entries.

", "EksContainer$command": "

The entrypoint for the container. This isn't run within a shell. If this isn't specified, the ENTRYPOINT of the container image is used. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1).\" $$ is replaced with $ and the resulting string isn't expanded. For example, $$(VAR_NAME) will be passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. The entrypoint can't be updated. For more information, see ENTRYPOINT in the Dockerfile reference and Define a command and arguments for a container and Entrypoint in the Kubernetes documentation.

", - "EksContainer$args": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod in Kubernetes. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1).\" $$ is replaced with $, and the resulting string isn't expanded. For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. For more information, see CMD in the Dockerfile reference and Define a command and arguments for a pod in the Kubernetes documentation.

", + "EksContainer$args": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod in Kubernetes. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1).\" $$ is replaced with $, and the resulting string isn't expanded. For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. For more information, see Dockerfile reference: CMD and Define a command and arguments for a pod in the Kubernetes documentation.

", "EksContainerDetail$command": "

The entrypoint for the container. For more information, see Entrypoint in the Kubernetes documentation.

", - "EksContainerDetail$args": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod in Kubernetes. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1)\". $$ is replaced with $ and the resulting string isn't expanded. For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. For more information, see CMD in the Dockerfile reference and Define a command and arguments for a pod in the Kubernetes documentation.

", + "EksContainerDetail$args": "

An array of arguments to the entrypoint. If this isn't specified, the CMD of the container image is used. This corresponds to the args member in the Entrypoint portion of the Pod in Kubernetes. Environment variable references are expanded using the container's environment.

If the referenced environment variable doesn't exist, the reference in the command isn't changed. For example, if the reference is to \"$(NAME1)\" and the NAME1 environment variable doesn't exist, the command string will remain \"$(NAME1)\". $$ is replaced with $ and the resulting string isn't expanded. For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME environment variable exists. For more information, see Dockerfile reference: CMD and Define a command and arguments for a pod in the Kubernetes documentation.

", "EksContainerOverride$command": "

The command to send to the container that overrides the default command from the Docker image or the job definition.

", - "EksContainerOverride$args": "

The arguments to the entrypoint to send to the container that overrides the default arguments from the Docker image or the job definition. For more information, see CMD in the Dockerfile reference and Define a command an arguments for a pod in the Kubernetes documentation.

", + "EksContainerOverride$args": "

The arguments to the entrypoint to send to the container that overrides the default arguments from the Docker image or the job definition. For more information, see Dockerfile reference: CMD and Define a command an arguments for a pod in the Kubernetes documentation.

", "KeyValuesPair$values": "

The filter values.

", + "NodePropertyOverride$instanceTypes": "

An object that contains the instance types that you want to replace for the existing resources of a job.

", + "NodeRangeProperty$instanceTypes": "

The instance types of the underlying host infrastructure of a multi-node parallel job.

This parameter isn't applicable to jobs that are running on Fargate resources.

In addition, this list object is currently limited to one element.

", + "TaskContainerDetails$command": "

The command that's passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see https://docs.docker.com/engine/reference/builder/#cmd.

", + "TaskContainerOverrides$command": "

The command to send to the container that overrides the default command from the Docker image or the job definition.

This parameter can't contain an empty string.

", + "TaskContainerProperties$command": "

The command that's passed to the container. This parameter maps to Cmd in the Create a container section of the Docker Remote API and the COMMAND parameter to docker run. For more information, see Dockerfile reference: CMD.

", "Tmpfs$mountOptions": "

The list of tmpfs volume mount options.

Valid values: \"defaults\" | \"ro\" | \"rw\" | \"suid\" | \"nosuid\" | \"dev\" | \"nodev\" | \"exec\" | \"noexec\" | \"sync\" | \"async\" | \"dirsync\" | \"remount\" | \"mand\" | \"nomand\" | \"atime\" | \"noatime\" | \"diratime\" | \"nodiratime\" | \"bind\" | \"rbind\" | \"unbindable\" | \"runbindable\" | \"private\" | \"rprivate\" | \"shared\" | \"rshared\" | \"slave\" | \"rslave\" | \"relatime\" | \"norelatime\" | \"strictatime\" | \"nostrictatime\" | \"mode\" | \"uid\" | \"gid\" | \"nr_inodes\" | \"nr_blocks\" | \"mpol\"

" } }, @@ -1473,8 +1607,45 @@ "TagsMap": { "base": null, "refs": { - "ComputeResource$tags": "

Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value-for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. Updating these tags requires an infrastructure update to the compute environment. For more information, see Updating compute environments in the Batch User Guide. These tags aren't seen when using the Batch ListTagsForResource API operation.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", - "ComputeResourceUpdate$tags": "

Key-value pair tags to be applied to EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value-for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. These tags aren't seen when using the Batch ListTagsForResource API operation.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" + "ComputeResource$tags": "

Key-value pair tags to be applied to Amazon EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value-for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. Updating these tags requires an infrastructure update to the compute environment. For more information, see Updating compute environments in the Batch User Guide. These tags aren't seen when using the Batch ListTagsForResource API operation.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

", + "ComputeResourceUpdate$tags": "

Key-value pair tags to be applied to Amazon EC2 resources that are launched in the compute environment. For Batch, these take the form of \"String1\": \"String2\", where String1 is the tag key and String2 is the tag value-for example, { \"Name\": \"Batch Instance - C4OnDemand\" }. This is helpful for recognizing your Batch instances in the Amazon EC2 console. These tags aren't seen when using the Batch ListTagsForResource API operation.

When updating a compute environment, changing this setting requires an infrastructure update of the compute environment. For more information, see Updating compute environments in the Batch User Guide.

This parameter isn't applicable to jobs that are running on Fargate resources. Don't specify it.

" + } + }, + "TaskContainerDependency": { + "base": "

A list of containers that this task depends on.

", + "refs": { + "TaskContainerDependencyList$member": null + } + }, + "TaskContainerDependencyList": { + "base": null, + "refs": { + "TaskContainerDetails$dependsOn": "

A list of containers that this container depends on.

", + "TaskContainerProperties$dependsOn": "

A list of containers that this container depends on.

" + } + }, + "TaskContainerDetails": { + "base": "

The details for the container in this task attempt.

", + "refs": { + "ListTaskContainerDetails$member": null + } + }, + "TaskContainerOverrides": { + "base": "

The overrides that should be sent to a container.

For information about using Batch overrides when you connect event sources to targets, see BatchContainerOverrides.

", + "refs": { + "ListTaskContainerOverrides$member": null + } + }, + "TaskContainerProperties": { + "base": "

Container properties are used for Amazon ECS-based job definitions. These properties to describe the container that's launched as part of a job.

", + "refs": { + "ListTaskContainerProperties$member": null + } + }, + "TaskPropertiesOverride": { + "base": "

An object that contains overrides for the task definition of a job.

", + "refs": { + "ListTaskPropertiesOverride$member": null } }, "TerminateJobRequest": { @@ -1509,7 +1680,9 @@ "base": null, "refs": { "ContainerDetail$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.

", - "ContainerProperties$ulimits": "

A list of ulimits 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 and shouldn't be provided.

" + "ContainerProperties$ulimits": "

A list of ulimits 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 and shouldn't be provided.

", + "TaskContainerDetails$ulimits": "

A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 65535.

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 --format '{{.Server.APIVersion}}'

This parameter is not supported for Windows containers.

", + "TaskContainerProperties$ulimits": "

A list of ulimits to set in the container. If a ulimit value is specified in a task definition, it overrides the default values set by Docker. This parameter maps to Ulimits in the Create a container section of the Docker Remote API and the --ulimit option to docker run.

Amazon ECS tasks hosted on Fargate use the default resource limit values set by the operating system with the exception of the nofile resource limit parameter which Fargate overrides. The nofile resource limit sets a restriction on the number of open files that a container can use. The default nofile soft limit is 1024 and the default hard limit is 65535.

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 --format '{{.Server.APIVersion}}'

This parameter is not supported for Windows containers.

" } }, "UntagResourceRequest": { @@ -1569,7 +1742,9 @@ "base": null, "refs": { "ContainerDetail$volumes": "

A list of volumes that are associated with the job.

", - "ContainerProperties$volumes": "

A list of data volumes used in a job.

" + "ContainerProperties$volumes": "

A list of data volumes used in a job.

", + "EcsTaskDetails$volumes": "

A list of data volumes used in a job.

", + "EcsTaskProperties$volumes": "

A list of volumes that are associated with the job.

" } } } diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/api-2.json b/models/apis/bedrock-agent-runtime/2023-07-26/api-2.json index 5fdb56a1d06..4c74ef7046d 100644 --- a/models/apis/bedrock-agent-runtime/2023-07-26/api-2.json +++ b/models/apis/bedrock-agent-runtime/2023-07-26/api-2.json @@ -398,20 +398,24 @@ ], "members":{ "knowledgeBaseId":{"shape":"KnowledgeBaseId"}, - "modelArn":{"shape":"BedrockModelArn"} + "modelArn":{"shape":"BedrockModelArn"}, + "retrievalConfiguration":{"shape":"KnowledgeBaseRetrievalConfiguration"} } }, "KnowledgeBaseVectorSearchConfiguration":{ "type":"structure", - "required":["numberOfResults"], "members":{ - "numberOfResults":{"shape":"KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger"} + "numberOfResults":{ + "shape":"KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger", + "box":true + }, + "overrideSearchType":{"shape":"SearchType"} } }, "KnowledgeBaseVectorSearchConfigurationNumberOfResultsInteger":{ "type":"integer", "box":true, - "max":10, + "max":25, "min":1 }, "LambdaArn":{"type":"string"}, @@ -625,7 +629,8 @@ "required":["text"], "members":{ "text":{"shape":"String"} - } + }, + "sensitive":true }, "RetrievalResultLocation":{ "type":"structure", @@ -633,7 +638,8 @@ "members":{ "type":{"shape":"RetrievalResultLocationType"}, "s3Location":{"shape":"RetrievalResultS3Location"} - } + }, + "sensitive":true }, "RetrievalResultLocationType":{ "type":"string", @@ -743,6 +749,13 @@ "type":"list", "member":{"shape":"RetrievedReference"} }, + "SearchType":{ + "type":"string", + "enum":[ + "HYBRID", + "SEMANTIC" + ] + }, "ServiceQuotaExceededException":{ "type":"structure", "members":{ @@ -816,7 +829,8 @@ "members":{ "text":{"shape":"String"}, "span":{"shape":"Span"} - } + }, + "sensitive":true }, "ThrottlingException":{ "type":"structure", diff --git a/models/apis/bedrock-agent-runtime/2023-07-26/docs-2.json b/models/apis/bedrock-agent-runtime/2023-07-26/docs-2.json index 10e4a6f4c72..43080d0b18f 100644 --- a/models/apis/bedrock-agent-runtime/2023-07-26/docs-2.json +++ b/models/apis/bedrock-agent-runtime/2023-07-26/docs-2.json @@ -243,6 +243,7 @@ "KnowledgeBaseRetrievalConfiguration": { "base": "

Search parameters for retrieving from knowledge base.

", "refs": { + "KnowledgeBaseRetrieveAndGenerateConfiguration$retrievalConfiguration": null, "RetrieveRequest$retrievalConfiguration": null } }, @@ -554,6 +555,12 @@ "KnowledgeBaseLookupOutput$retrievedReferences": null } }, + "SearchType": { + "base": "

Query type to be performed on data store.

", + "refs": { + "KnowledgeBaseVectorSearchConfiguration$overrideSearchType": "

Override the type of query to be performed on data store

" + } + }, "ServiceQuotaExceededException": { "base": "

This exception is thrown when a request is made beyond the service quota

", "refs": { diff --git a/models/apis/ce/2017-10-25/api-2.json b/models/apis/ce/2017-10-25/api-2.json index 32f13cb81fd..357104d8abe 100644 --- a/models/apis/ce/2017-10-25/api-2.json +++ b/models/apis/ce/2017-10-25/api-2.json @@ -145,6 +145,19 @@ {"shape":"InvalidNextTokenException"} ] }, + "GetApproximateUsageRecords":{ + "name":"GetApproximateUsageRecords", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetApproximateUsageRecordsRequest"}, + "output":{"shape":"GetApproximateUsageRecordsResponse"}, + "errors":[ + {"shape":"LimitExceededException"}, + {"shape":"DataUnavailableException"} + ] + }, "GetCostAndUsage":{ "name":"GetCostAndUsage", "http":{ @@ -652,6 +665,18 @@ "type":"list", "member":{"shape":"AnomalySubscription"} }, + "ApproximateUsageRecordsPerService":{ + "type":"map", + "key":{"shape":"GenericString"}, + "value":{"shape":"NonNegativeLong"} + }, + "ApproximationDimension":{ + "type":"string", + "enum":[ + "SERVICE", + "RESOURCE" + ] + }, "Arn":{ "type":"string", "max":2048, @@ -1410,6 +1435,26 @@ "NextPageToken":{"shape":"NextPageToken"} } }, + "GetApproximateUsageRecordsRequest":{ + "type":"structure", + "required":[ + "Granularity", + "ApproximationDimension" + ], + "members":{ + "Granularity":{"shape":"Granularity"}, + "Services":{"shape":"UsageServices"}, + "ApproximationDimension":{"shape":"ApproximationDimension"} + } + }, + "GetApproximateUsageRecordsResponse":{ + "type":"structure", + "members":{ + "Services":{"shape":"ApproximateUsageRecordsPerService"}, + "TotalRecords":{"shape":"NonNegativeLong"}, + "LookbackPeriod":{"shape":"DateInterval"} + } + }, "GetCostAndUsageRequest":{ "type":"structure", "required":[ @@ -2069,6 +2114,10 @@ "type":"integer", "min":0 }, + "NonNegativeLong":{ + "type":"long", + "min":0 + }, "NullableNonNegativeDouble":{ "type":"double", "min":0.0 @@ -2977,6 +3026,10 @@ "EffectiveStart":{"shape":"ZonedDateTime"} } }, + "UsageServices":{ + "type":"list", + "member":{"shape":"GenericString"} + }, "UtilizationByTime":{ "type":"structure", "members":{ diff --git a/models/apis/ce/2017-10-25/docs-2.json b/models/apis/ce/2017-10-25/docs-2.json index fe2693fbbae..78855d4e627 100644 --- a/models/apis/ce/2017-10-25/docs-2.json +++ b/models/apis/ce/2017-10-25/docs-2.json @@ -12,6 +12,7 @@ "GetAnomalies": "

Retrieves all of the cost anomalies detected on your account during the time period that's specified by the DateInterval object. Anomalies are available for up to 90 days.

", "GetAnomalyMonitors": "

Retrieves the cost anomaly monitor definitions for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).

", "GetAnomalySubscriptions": "

Retrieves the cost anomaly subscription objects for your account. You can filter using a list of cost anomaly monitor Amazon Resource Names (ARNs).

", + "GetApproximateUsageRecords": "

Retrieves estimated usage records for hourly granularity or resource-level data at daily granularity.

", "GetCostAndUsage": "

Retrieves cost and usage metrics for your account. You can specify which cost and usage-related metric that you want the request to return. For example, you can specify BlendedCosts or UsageQuantity. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts.

For information about filter limitations, see Quotas and restrictions in the Billing and Cost Management User Guide.

", "GetCostAndUsageWithResources": "

Retrieves cost and usage metrics with resources for your account. You can specify which cost and usage-related metric, such as BlendedCosts or UsageQuantity, that you want the request to return. You can also filter and group your data by various dimensions, such as SERVICE or AZ, in a specific time range. For a complete list of valid dimensions, see the GetDimensionValues operation. Management account in an organization in Organizations have access to all member accounts. This API is currently available for the Amazon Elastic Compute Cloud – Compute service only.

This is an opt-in only feature. You can enable this feature from the Cost Explorer Settings page. For information about how to access the Settings page, see Controlling Access for Cost Explorer in the Billing and Cost Management User Guide.

", "GetCostCategories": "

Retrieves an array of Cost Category names and values incurred cost.

If some Cost Category names and values are not associated with any cost, they will not be returned by this API.

", @@ -129,6 +130,18 @@ "GetAnomalySubscriptionsResponse$AnomalySubscriptions": "

A list of cost anomaly subscriptions that includes the detailed metadata for each one.

" } }, + "ApproximateUsageRecordsPerService": { + "base": null, + "refs": { + "GetApproximateUsageRecordsResponse$Services": "

The service metadata for the service or services in the response.

" + } + }, + "ApproximationDimension": { + "base": null, + "refs": { + "GetApproximateUsageRecordsRequest$ApproximationDimension": "

The service to evaluate for the usage records. You can choose resource-level data at daily granularity, or hourly granularity with or without resource-level data.

" + } + }, "Arn": { "base": null, "refs": { @@ -508,6 +521,7 @@ "refs": { "CoverageByTime$TimePeriod": "

The period that this coverage was used over.

", "ForecastResult$TimePeriod": "

The period of time that the forecast covers.

", + "GetApproximateUsageRecordsResponse$LookbackPeriod": "

The lookback period that's used for the estimation.

", "GetCostAndUsageRequest$TimePeriod": "

Sets the start date and end date for retrieving Amazon Web Services costs. The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "GetCostAndUsageWithResourcesRequest$TimePeriod": "

Sets the start and end dates for retrieving Amazon Web Services costs. The range must be within the last 14 days (the start date cannot be earlier than 14 days ago). The start date is inclusive, but the end date is exclusive. For example, if start is 2017-01-01 and end is 2017-05-01, then the cost and usage data is retrieved from 2017-01-01 up to and including 2017-04-30 but not including 2017-05-01.

", "GetCostCategoriesRequest$TimePeriod": null, @@ -795,6 +809,7 @@ "AnomalySubscription$SubscriptionArn": "

The AnomalySubscription Amazon Resource Name (ARN).

", "AnomalySubscription$AccountId": "

Your unique account identifier.

", "AnomalySubscription$SubscriptionName": "

The name for the subscription.

", + "ApproximateUsageRecordsPerService$key": null, "CostCategoryInheritedValueDimension$DimensionKey": "

The key to extract cost category values.

", "CostCategorySplitChargeRule$Source": "

The Cost Category value that you want to split. That value can't be used as a source or a target in other split charge rules. To indicate uncategorized costs, you can use an empty string as the source.

", "CostCategorySplitChargeRuleParameterValuesList$member": null, @@ -988,7 +1003,8 @@ "UpdateAnomalySubscriptionRequest$SubscriptionArn": "

A cost anomaly subscription Amazon Resource Name (ARN).

", "UpdateAnomalySubscriptionRequest$SubscriptionName": "

The new name of the subscription.

", "UpdateAnomalySubscriptionResponse$SubscriptionArn": "

A cost anomaly subscription ARN.

", - "UpdateCostAllocationTagsStatusError$Code": "

An error code representing why the action failed on this entry.

" + "UpdateCostAllocationTagsStatusError$Code": "

An error code representing why the action failed on this entry.

", + "UsageServices$member": null } }, "GetAnomaliesRequest": { @@ -1021,6 +1037,16 @@ "refs": { } }, + "GetApproximateUsageRecordsRequest": { + "base": null, + "refs": { + } + }, + "GetApproximateUsageRecordsResponse": { + "base": null, + "refs": { + } + }, "GetCostAndUsageRequest": { "base": null, "refs": { @@ -1184,6 +1210,7 @@ "Granularity": { "base": null, "refs": { + "GetApproximateUsageRecordsRequest$Granularity": "

How granular you want the data to be. You can enable data at hourly or daily granularity.

", "GetCostAndUsageRequest$Granularity": "

Sets the Amazon Web Services cost granularity to MONTHLY or DAILY, or HOURLY. If Granularity isn't set, the response object doesn't include the Granularity, either MONTHLY or DAILY, or HOURLY.

", "GetCostAndUsageWithResourcesRequest$Granularity": "

Sets the Amazon Web Services cost granularity to MONTHLY, DAILY, or HOURLY. If Granularity isn't set, the response object doesn't include the Granularity, MONTHLY, DAILY, or HOURLY.

", "GetCostForecastRequest$Granularity": "

How granular you want the forecast to be. You can get 3 months of DAILY forecasts or 12 months of MONTHLY forecasts.

The GetCostForecast operation supports only DAILY and MONTHLY granularities.

", @@ -1498,6 +1525,13 @@ "ListSavingsPlansPurchaseRecommendationGenerationRequest$PageSize": "

The number of recommendations that you want returned in a single response object.

" } }, + "NonNegativeLong": { + "base": null, + "refs": { + "ApproximateUsageRecordsPerService$value": null, + "GetApproximateUsageRecordsResponse$TotalRecords": "

The total number of usage records for all services in the services list.

" + } + }, "NullableNonNegativeDouble": { "base": null, "refs": { @@ -2323,6 +2357,12 @@ "refs": { } }, + "UsageServices": { + "base": null, + "refs": { + "GetApproximateUsageRecordsRequest$Services": "

The service metadata for the service or services you want to query. If not specified, all elements are returned.

" + } + }, "UtilizationByTime": { "base": "

The amount of utilization, in hours.

", "refs": { diff --git a/models/apis/ec2/2016-11-15/api-2.json b/models/apis/ec2/2016-11-15/api-2.json index 40d1a9f0a6c..19097e2afc8 100755 --- a/models/apis/ec2/2016-11-15/api-2.json +++ b/models/apis/ec2/2016-11-15/api-2.json @@ -23897,12 +23897,17 @@ } } }, + "GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults":{ + "type":"integer", + "max":1000, + "min":1 + }, "GetNetworkInsightsAccessScopeAnalysisFindingsRequest":{ "type":"structure", "required":["NetworkInsightsAccessScopeAnalysisId"], "members":{ "NetworkInsightsAccessScopeAnalysisId":{"shape":"NetworkInsightsAccessScopeAnalysisId"}, - "MaxResults":{"shape":"NetworkInsightsMaxResults"}, + "MaxResults":{"shape":"GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults"}, "NextToken":{"shape":"NextToken"}, "DryRun":{"shape":"Boolean"} } diff --git a/models/apis/ec2/2016-11-15/docs-2.json b/models/apis/ec2/2016-11-15/docs-2.json index 757d895eb4d..8e29845c27b 100755 --- a/models/apis/ec2/2016-11-15/docs-2.json +++ b/models/apis/ec2/2016-11-15/docs-2.json @@ -10215,6 +10215,12 @@ "refs": { } }, + "GetNetworkInsightsAccessScopeAnalysisFindingsMaxResults": { + "base": null, + "refs": { + "GetNetworkInsightsAccessScopeAnalysisFindingsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + } + }, "GetNetworkInsightsAccessScopeAnalysisFindingsRequest": { "base": null, "refs": { @@ -15524,8 +15530,7 @@ "DescribeNetworkInsightsAccessScopeAnalysesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "DescribeNetworkInsightsAccessScopesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", "DescribeNetworkInsightsAnalysesRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", - "DescribeNetworkInsightsPathsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

", - "GetNetworkInsightsAccessScopeAnalysisFindingsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" + "DescribeNetworkInsightsPathsRequest$MaxResults": "

The maximum number of results to return with a single call. To retrieve the remaining results, make another call with the returned nextToken value.

" } }, "NetworkInsightsPath": { diff --git a/models/apis/iot/2015-05-28/api-2.json b/models/apis/iot/2015-05-28/api-2.json index 1710a59c680..b869ce1f119 100644 --- a/models/apis/iot/2015-05-28/api-2.json +++ b/models/apis/iot/2015-05-28/api-2.json @@ -12761,7 +12761,7 @@ "indexName":{"shape":"IndexName"}, "queryString":{"shape":"QueryString"}, "nextToken":{"shape":"NextToken"}, - "maxResults":{"shape":"QueryMaxResults"}, + "maxResults":{"shape":"SearchQueryMaxResults"}, "queryVersion":{"shape":"QueryVersion"} } }, @@ -12773,6 +12773,10 @@ "thingGroups":{"shape":"ThingGroupDocumentList"} } }, + "SearchQueryMaxResults":{ + "type":"integer", + "min":1 + }, "SearchableAttributes":{ "type":"list", "member":{"shape":"AttributeName"} diff --git a/models/apis/iot/2015-05-28/docs-2.json b/models/apis/iot/2015-05-28/docs-2.json index e81c0f69c8c..e9ae20d0379 100644 --- a/models/apis/iot/2015-05-28/docs-2.json +++ b/models/apis/iot/2015-05-28/docs-2.json @@ -5772,14 +5772,14 @@ "NamespaceId": { "base": null, "refs": { - "AssociateTargetsWithJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

", - "CreateJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

", - "DeleteJobExecutionRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

", - "DeleteJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

", - "Job$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

", - "ListJobExecutionsForThingRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

", - "ListJobsRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

", - "UpdateJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is in public preview.

" + "AssociateTargetsWithJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

", + "CreateJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

", + "DeleteJobExecutionRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

", + "DeleteJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

", + "Job$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

", + "ListJobExecutionsForThingRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

", + "ListJobsRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

", + "UpdateJobRequest$namespaceId": "

The namespace used to indicate that a job is a customer-managed job.

When you specify a value for this parameter, Amazon Web Services IoT Core sends jobs notifications to MQTT topics that contain the value in the following format.

$aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/

The namespaceId feature is only supported by IoT Greengrass at this time. For more information, see Setting up IoT Greengrass core devices.

" } }, "NextToken": { @@ -6589,8 +6589,7 @@ "QueryMaxResults": { "base": null, "refs": { - "ListIndicesRequest$maxResults": "

The maximum number of results to return at one time.

", - "SearchIndexRequest$maxResults": "

The maximum number of results to return per page at one time. The response might contain fewer results but will never contain more.

" + "ListIndicesRequest$maxResults": "

The maximum number of results to return at one time.

" } }, "QueryString": { @@ -7262,6 +7261,12 @@ "refs": { } }, + "SearchQueryMaxResults": { + "base": null, + "refs": { + "SearchIndexRequest$maxResults": "

The maximum number of results to return per page at one time. This maximum number cannot exceed 100. The response might contain fewer results but will never contain more. You can use nextToken to retrieve the next set of results until nextToken returns NULL.

" + } + }, "SearchableAttributes": { "base": null, "refs": { diff --git a/models/apis/wafv2/2019-07-29/api-2.json b/models/apis/wafv2/2019-07-29/api-2.json index d3df4db13cd..82db69a9466 100755 --- a/models/apis/wafv2/2019-07-29/api-2.json +++ b/models/apis/wafv2/2019-07-29/api-2.json @@ -1878,6 +1878,7 @@ }, "ErrorMessage":{"type":"string"}, "ErrorReason":{"type":"string"}, + "EvaluationWindowSec":{"type":"long"}, "ExcludedRule":{ "type":"structure", "required":["Name"], @@ -3206,6 +3207,7 @@ ], "members":{ "Limit":{"shape":"RateLimit"}, + "EvaluationWindowSec":{"shape":"EvaluationWindowSec"}, "AggregateKeyType":{"shape":"RateBasedStatementAggregateKeyType"}, "ScopeDownStatement":{"shape":"Statement"}, "ForwardedIPConfig":{"shape":"ForwardedIPConfig"}, diff --git a/models/apis/wafv2/2019-07-29/docs-2.json b/models/apis/wafv2/2019-07-29/docs-2.json index 2cddc76b237..172d07db609 100755 --- a/models/apis/wafv2/2019-07-29/docs-2.json +++ b/models/apis/wafv2/2019-07-29/docs-2.json @@ -749,6 +749,12 @@ "WAFInvalidParameterException$Reason": "

Additional information about the exception.

" } }, + "EvaluationWindowSec": { + "base": null, + "refs": { + "RateBasedStatement$EvaluationWindowSec": "

The amount of time, in seconds, that WAF should include in its request counts, looking back from the current time. For example, for a setting of 120, when WAF checks the rate, it counts the requests for the 2 minutes immediately preceding the current time. Valid settings are 60, 120, 300, and 600.

This setting doesn't determine how often WAF checks the rate, but how far back it looks each time it checks. WAF checks the rate about every 10 seconds.

Default: 300 (5 minutes)

" + } + }, "ExcludedRule": { "base": "

Specifies a single rule in a rule group whose action you want to override to Count.

Instead of this option, use RuleActionOverrides. It accepts any valid action setting, including Count.

", "refs": { diff --git a/service/batch/api.go b/service/batch/api.go index 8ae58b0b353..29011974e43 100644 --- a/service/batch/api.go +++ b/service/batch/api.go @@ -3136,8 +3136,8 @@ func (s *ComputeEnvironmentDetail) SetUuid(v string) *ComputeEnvironmentDetail { // environment with a lower order integer value is tried for job placement first. // Compute environments must be in the VALID state before you can associate // them with a job queue. All of the compute environments must be either EC2 -// (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); EC2 and Fargate compute -// environments can't be mixed. +// (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT); Amazon EC2 and Fargate +// compute environments can't be mixed. // // All compute environments that are associated with a job queue must share // the same architecture. Batch doesn't support mixing compute environment architecture @@ -3284,8 +3284,8 @@ type ComputeResource struct { DesiredvCpus *int64 `locationName:"desiredvCpus" type:"integer"` // Provides information that's used to select Amazon Machine Images (AMIs) for - // EC2 instances in the compute environment. If Ec2Configuration isn't specified, - // the default is ECS_AL2. + // Amazon EC2 instances in the compute environment. If Ec2Configuration isn't + // specified, the default is ECS_AL2. // // One or two values can be provided. // @@ -3348,10 +3348,10 @@ type ComputeResource struct { InstanceTypes []*string `locationName:"instanceTypes" type:"list"` // The launch template to use for your compute resources. Any other compute - // resource parameters that you specify in a CreateComputeEnvironment API operation - // override the same parameters in the launch template. You must specify either - // the launch template ID or launch template name in the request, but not both. - // For more information, see Launch template support (https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) + // resource parameters that you specify in a CreateComputeEnvironment (https://docs.aws.amazon.com/batch/latest/APIReference/API_CreateComputeEnvironment.html) + // API operation override the same parameters in the launch template. You must + // specify either the launch template ID or launch template name in the request, + // but not both. For more information, see Launch template support (https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) // in the Batch User Guide. // // This parameter isn't applicable to jobs that are running on Fargate resources. @@ -3432,10 +3432,10 @@ type ComputeResource struct { // Subnets is a required field Subnets []*string `locationName:"subnets" type:"list" required:"true"` - // Key-value pair tags to be applied to EC2 resources that are launched in the - // compute environment. For Batch, these take the form of "String1": "String2", - // where String1 is the tag key and String2 is the tag value-for example, { - // "Name": "Batch Instance - C4OnDemand" }. This is helpful for recognizing + // Key-value pair tags to be applied to Amazon EC2 resources that are launched + // in the compute environment. For Batch, these take the form of "String1": + // "String2", where String1 is the tag key and String2 is the tag value-for + // example, { "Name": "Batch Instance - C4OnDemand" }. This is helpful for recognizing // your Batch instances in the Amazon EC2 console. Updating these tags requires // an infrastructure update to the compute environment. For more information, // see Updating compute environments (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) @@ -3693,15 +3693,15 @@ type ComputeResourceUpdate struct { // in the Batch User Guide. DesiredvCpus *int64 `locationName:"desiredvCpus" type:"integer"` - // Provides information used to select Amazon Machine Images (AMIs) for EC2 - // instances in the compute environment. If Ec2Configuration isn't specified, + // Provides information used to select Amazon Machine Images (AMIs) for Amazon + // EC2 instances in the compute environment. If Ec2Configuration isn't specified, // the default is ECS_AL2. // // When updating a compute environment, changing this setting requires an infrastructure // update of the compute environment. For more information, see Updating compute // environments (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) - // in the Batch User Guide. To remove the EC2 configuration and any custom AMI - // ID specified in imageIdOverride, set this value to an empty string. + // in the Batch User Guide. To remove the Amazon EC2 configuration and any custom + // AMI ID specified in imageIdOverride, set this value to an empty string. // // One or two values can be provided. // @@ -3713,9 +3713,9 @@ type ComputeResourceUpdate struct { // environment. You can use this key pair to log in to your instances with SSH. // To remove the Amazon EC2 key pair, set this value to an empty string. // - // When updating a compute environment, changing the EC2 key pair requires an - // infrastructure update of the compute environment. For more information, see - // Updating compute environments (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) + // When updating a compute environment, changing the Amazon EC2 key pair requires + // an infrastructure update of the compute environment. For more information, + // see Updating compute environments (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) // in the Batch User Guide. // // This parameter isn't applicable to jobs that are running on Fargate resources. @@ -3839,11 +3839,11 @@ type ComputeResourceUpdate struct { // in the compute environment. This parameter is required for Fargate compute // resources, where it can contain up to 5 security groups. For Fargate compute // resources, providing an empty list is handled as if this parameter wasn't - // specified and no change is made. For EC2 compute resources, providing an - // empty list removes the security groups from the compute resource. + // specified and no change is made. For Amazon EC2 compute resources, providing + // an empty list removes the security groups from the compute resource. // - // When updating a compute environment, changing the EC2 security groups requires - // an infrastructure update of the compute environment. For more information, + // When updating a compute environment, changing the Amazon EC2 security groups + // requires an infrastructure update of the compute environment. For more information, // see Updating compute environments (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) // in the Batch User Guide. SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list"` @@ -3851,9 +3851,9 @@ type ComputeResourceUpdate struct { // The VPC subnets where the compute resources are launched. Fargate compute // resources can contain up to 16 subnets. For Fargate compute resources, providing // an empty list will be handled as if this parameter wasn't specified and no - // change is made. For EC2 compute resources, providing an empty list removes - // the VPC subnets from the compute resource. For more information, see VPCs - // and subnets (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) + // change is made. For Amazon EC2 compute resources, providing an empty list + // removes the VPC subnets from the compute resource. For more information, + // see VPCs and subnets (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) // in the Amazon VPC User Guide. // // When updating a compute environment, changing the VPC subnets requires an @@ -3872,10 +3872,10 @@ type ComputeResourceUpdate struct { // Batch on Fargate doesn't currently support Local Zones. Subnets []*string `locationName:"subnets" type:"list"` - // Key-value pair tags to be applied to EC2 resources that are launched in the - // compute environment. For Batch, these take the form of "String1": "String2", - // where String1 is the tag key and String2 is the tag value-for example, { - // "Name": "Batch Instance - C4OnDemand" }. This is helpful for recognizing + // Key-value pair tags to be applied to Amazon EC2 resources that are launched + // in the compute environment. For Batch, these take the form of "String1": + // "String2", where String1 is the tag key and String2 is the tag value-for + // example, { "Name": "Batch Instance - C4OnDemand" }. This is helpful for recognizing // your Batch instances in the Amazon EC2 console. These tags aren't seen when // using the Batch ListTagsForResource API operation. // @@ -4088,11 +4088,11 @@ type ContainerDetail struct { // in the Batch User Guide. ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"` - // The exit code to return upon completion. + // The exit code returned upon completion. ExitCode *int64 `locationName:"exitCode" type:"integer"` // The platform configuration for jobs that are running on Fargate resources. - // Jobs that are running on EC2 resources must not specify this parameter. + // Jobs that are running on Amazon EC2 resources must not specify this parameter. FargatePlatformConfiguration *FargatePlatformConfiguration `locationName:"fargatePlatformConfiguration" type:"structure"` // The image used to start the container. @@ -4127,8 +4127,9 @@ type ContainerDetail struct { // 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. + // Docker daemon (shown in the LogConfiguration (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html) + // 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 @@ -4148,7 +4149,7 @@ type ContainerDetail struct { // attempt receives a log stream name when they reach the RUNNING status. LogStreamName *string `locationName:"logStreamName" type:"string"` - // For jobs running on EC2 resources that didn't specify memory requirements + // For jobs running on Amazon 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. Memory *int64 `locationName:"memory" type:"integer"` @@ -4157,7 +4158,7 @@ type ContainerDetail struct { MountPoints []*MountPoint `locationName:"mountPoints" type:"list"` // The network configuration for jobs that are running on Fargate resources. - // Jobs that are running on EC2 resources must not specify this parameter. + // Jobs that are running on Amazon EC2 resources must not specify this parameter. NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"` // The network interfaces that are associated with the job. @@ -4217,8 +4218,8 @@ type ContainerDetail struct { // and the --user option to docker run (https://docs.docker.com/engine/reference/run/). User *string `locationName:"user" type:"string"` - // 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, + // The number of vCPUs reserved for the container. For jobs that run on Amazon + // 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 (https://docs.docker.com/engine/api/v1.23/#create-a-container) // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) @@ -4457,11 +4458,11 @@ type ContainerOverrides struct { // This parameter is deprecated, use resourceRequirements to override the memory // requirements specified in the job definition. It's not supported for jobs - // running on Fargate resources. For jobs that run on EC2 resources, it overrides - // the memory parameter set in the job definition, but doesn't override any - // memory requirement that's specified in the resourceRequirements structure - // in the job definition. To override memory requirements that are specified - // in the resourceRequirements structure in the job definition, resourceRequirements + // running on Fargate resources. For jobs that run on Amazon EC2 resources, + // it overrides the memory parameter set in the job definition, but doesn't + // override any memory requirement that's specified in the resourceRequirements + // structure in the job definition. To override memory requirements that are + // specified in the resourceRequirements structure in the job definition, resourceRequirements // must be specified in the SubmitJob request, with type set to MEMORY and value // set to the new value. For more information, see Can't override job definition // resource requirements (https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#override-resource-requirements) @@ -4477,8 +4478,8 @@ type ContainerOverrides struct { // This parameter is deprecated, use resourceRequirements to override the vcpus // parameter that's set in the job definition. It's not supported for jobs running - // on Fargate resources. For jobs that run on EC2 resources, it overrides the - // vcpus parameter set in the job definition, but doesn't override any vCPU + // on Fargate resources. For jobs that run on Amazon EC2 resources, it overrides + // the vcpus parameter set in the job definition, but doesn't override any vCPU // requirement specified in the resourceRequirements structure in the job definition. // To override vCPU requirements that are specified in the resourceRequirements // structure in the job definition, resourceRequirements must be specified in @@ -4602,7 +4603,7 @@ type ContainerProperties struct { ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"` // The platform configuration for jobs that are running on Fargate resources. - // Jobs that are running on EC2 resources must not specify this parameter. + // Jobs that are running on Amazon EC2 resources must not specify this parameter. FargatePlatformConfiguration *FargatePlatformConfiguration `locationName:"fargatePlatformConfiguration" type:"structure"` // Required. The image used to start a container. This string is passed directly @@ -4667,7 +4668,8 @@ type ContainerProperties struct { // in the Docker documentation. // // Batch currently supports a subset of the logging drivers available to the - // Docker daemon (shown in the LogConfiguration data type). + // Docker daemon (shown in the LogConfiguration (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-batch-jobdefinition-containerproperties-logconfiguration.html) + // data type). // // 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 @@ -4684,11 +4686,11 @@ type ContainerProperties struct { // This parameter is deprecated, use resourceRequirements to specify the memory // requirements for the job definition. It's not supported for jobs running - // on Fargate resources. For jobs that run on EC2 resources, it specifies the - // memory hard limit (in MiB) for a container. If your container attempts to - // exceed the specified number, it's terminated. You must specify at least 4 - // MiB of memory for a job using this parameter. The memory hard limit can be - // specified in several places. It must be specified for each node at least + // on Fargate resources. For jobs that run on Amazon EC2 resources, it specifies + // the memory hard limit (in MiB) for a container. If your container attempts + // to exceed the specified number, it's terminated. You must specify at least + // 4 MiB of memory for a job using this parameter. The memory hard limit can + // be specified in several places. It must be specified for each node at least // once. // // Deprecated: This field is deprecated, use resourceRequirements instead. @@ -4701,7 +4703,7 @@ type ContainerProperties struct { MountPoints []*MountPoint `locationName:"mountPoints" type:"list"` // The network configuration for jobs that are running on Fargate resources. - // Jobs that are running on EC2 resources must not specify this parameter. + // Jobs that are running on Amazon EC2 resources must not specify this parameter. NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"` // When this parameter is true, the container is given elevated permissions @@ -4755,8 +4757,8 @@ type ContainerProperties struct { // This parameter is deprecated, use resourceRequirements to specify the vCPU // requirements for the job definition. It's not supported for jobs running - // on Fargate resources. For jobs running on EC2 resources, it specifies the - // number of vCPUs reserved for the job. + // on Fargate resources. For jobs running on Amazon EC2 resources, it specifies + // the number of vCPUs reserved for the job. // // Each vCPU is equivalent to 1,024 CPU shares. This parameter maps to CpuShares // in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) @@ -6724,17 +6726,18 @@ func (s *Ec2Configuration) SetImageType(v string) *Ec2Configuration { return s } -// An object that represents the details for an attempt for a job attempt that -// an Amazon EKS container runs. -type EksAttemptContainerDetail struct { +// An object that contains the properties for the Amazon ECS resources of a +// job. +type EcsProperties struct { _ struct{} `type:"structure"` - // The exit code for the job attempt. A non-zero exit code is considered failed. - ExitCode *int64 `locationName:"exitCode" type:"integer"` - - // A short (255 max characters) human-readable string to provide additional - // details for a running or stopped container. - Reason *string `locationName:"reason" type:"string"` + // An object that contains the properties for the Amazon ECS task definition + // of a job. + // + // This object is currently limited to one element. + // + // TaskProperties is a required field + TaskProperties []*EcsTaskProperties `locationName:"taskProperties" type:"list" required:"true"` } // String returns the string representation. @@ -6742,7 +6745,7 @@ type EksAttemptContainerDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksAttemptContainerDetail) String() string { +func (s EcsProperties) String() string { return awsutil.Prettify(s) } @@ -6751,48 +6754,45 @@ func (s EksAttemptContainerDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksAttemptContainerDetail) GoString() string { +func (s EcsProperties) GoString() string { return s.String() } -// SetExitCode sets the ExitCode field's value. -func (s *EksAttemptContainerDetail) SetExitCode(v int64) *EksAttemptContainerDetail { - s.ExitCode = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *EcsProperties) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EcsProperties"} + if s.TaskProperties == nil { + invalidParams.Add(request.NewErrParamRequired("TaskProperties")) + } + if s.TaskProperties != nil { + for i, v := range s.TaskProperties { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TaskProperties", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetReason sets the Reason field's value. -func (s *EksAttemptContainerDetail) SetReason(v string) *EksAttemptContainerDetail { - s.Reason = &v +// SetTaskProperties sets the TaskProperties field's value. +func (s *EcsProperties) SetTaskProperties(v []*EcsTaskProperties) *EcsProperties { + s.TaskProperties = v return s } -// An object that represents the details of a job attempt for a job attempt -// by an Amazon EKS container. -type EksAttemptDetail struct { +// An object that contains the details for the Amazon ECS resources of a job. +type EcsPropertiesDetail struct { _ struct{} `type:"structure"` - // The details for the final status of the containers for this job attempt. - Containers []*EksAttemptContainerDetail `locationName:"containers" type:"list"` - - // The name of the node for this job attempt. - NodeName *string `locationName:"nodeName" type:"string"` - - // The name of the pod for this job attempt. - PodName *string `locationName:"podName" type:"string"` - - // The Unix timestamp (in milliseconds) for when the attempt was started (when - // the attempt transitioned from the STARTING state to the RUNNING state). - StartedAt *int64 `locationName:"startedAt" type:"long"` - - // A short, human-readable string to provide additional details for the current - // status of the job attempt. - StatusReason *string `locationName:"statusReason" type:"string"` - - // The Unix timestamp (in milliseconds) for when the attempt was stopped. This - // happens when the attempt transitioned from the RUNNING state to a terminal - // state, such as SUCCEEDED or FAILED. - StoppedAt *int64 `locationName:"stoppedAt" type:"long"` + // The properties for the Amazon ECS task definition of a job. + TaskProperties []*EcsTaskDetails `locationName:"taskProperties" type:"list"` } // String returns the string representation. @@ -6800,7 +6800,7 @@ type EksAttemptDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksAttemptDetail) String() string { +func (s EcsPropertiesDetail) String() string { return awsutil.Prettify(s) } @@ -6809,66 +6809,25 @@ func (s EksAttemptDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksAttemptDetail) GoString() string { +func (s EcsPropertiesDetail) GoString() string { return s.String() } -// SetContainers sets the Containers field's value. -func (s *EksAttemptDetail) SetContainers(v []*EksAttemptContainerDetail) *EksAttemptDetail { - s.Containers = v - return s -} - -// SetNodeName sets the NodeName field's value. -func (s *EksAttemptDetail) SetNodeName(v string) *EksAttemptDetail { - s.NodeName = &v - return s -} - -// SetPodName sets the PodName field's value. -func (s *EksAttemptDetail) SetPodName(v string) *EksAttemptDetail { - s.PodName = &v - return s -} - -// SetStartedAt sets the StartedAt field's value. -func (s *EksAttemptDetail) SetStartedAt(v int64) *EksAttemptDetail { - s.StartedAt = &v - return s -} - -// SetStatusReason sets the StatusReason field's value. -func (s *EksAttemptDetail) SetStatusReason(v string) *EksAttemptDetail { - s.StatusReason = &v - return s -} - -// SetStoppedAt sets the StoppedAt field's value. -func (s *EksAttemptDetail) SetStoppedAt(v int64) *EksAttemptDetail { - s.StoppedAt = &v +// SetTaskProperties sets the TaskProperties field's value. +func (s *EcsPropertiesDetail) SetTaskProperties(v []*EcsTaskDetails) *EcsPropertiesDetail { + s.TaskProperties = v return s } -// Configuration for the Amazon EKS cluster that supports the Batch compute -// environment. The cluster must exist before the compute environment can be -// created. -type EksConfiguration struct { +// An object that contains overrides for the Amazon ECS task definition of a +// job. +type EcsPropertiesOverride struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the Amazon EKS cluster. An example is arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch . - // - // EksClusterArn is a required field - EksClusterArn *string `locationName:"eksClusterArn" type:"string" required:"true"` - - // The namespace of the Amazon EKS cluster. Batch manages pods in this namespace. - // The value can't left empty or null. It must be fewer than 64 characters long, - // can't be set to default, can't start with "kube-," and must match this regular - // expression: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$. For more information, see Namespaces - // (https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) - // in the Kubernetes documentation. + // The overrides for the Amazon ECS task definition of a job. // - // KubernetesNamespace is a required field - KubernetesNamespace *string `locationName:"kubernetesNamespace" type:"string" required:"true"` + // This object is currently limited to one element. + TaskProperties []*TaskPropertiesOverride `locationName:"taskProperties" type:"list"` } // String returns the string representation. @@ -6876,7 +6835,7 @@ type EksConfiguration struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksConfiguration) String() string { +func (s EcsPropertiesOverride) String() string { return awsutil.Prettify(s) } @@ -6885,18 +6844,22 @@ func (s EksConfiguration) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksConfiguration) GoString() string { +func (s EcsPropertiesOverride) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *EksConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksConfiguration"} - if s.EksClusterArn == nil { - invalidParams.Add(request.NewErrParamRequired("EksClusterArn")) - } - if s.KubernetesNamespace == nil { - invalidParams.Add(request.NewErrParamRequired("KubernetesNamespace")) +func (s *EcsPropertiesOverride) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EcsPropertiesOverride"} + if s.TaskProperties != nil { + for i, v := range s.TaskProperties { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TaskProperties", i), err.(request.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -6905,98 +6868,61 @@ func (s *EksConfiguration) Validate() error { return nil } -// SetEksClusterArn sets the EksClusterArn field's value. -func (s *EksConfiguration) SetEksClusterArn(v string) *EksConfiguration { - s.EksClusterArn = &v - return s -} - -// SetKubernetesNamespace sets the KubernetesNamespace field's value. -func (s *EksConfiguration) SetKubernetesNamespace(v string) *EksConfiguration { - s.KubernetesNamespace = &v +// SetTaskProperties sets the TaskProperties field's value. +func (s *EcsPropertiesOverride) SetTaskProperties(v []*TaskPropertiesOverride) *EcsPropertiesOverride { + s.TaskProperties = v return s } -// EKS container properties are used in job definitions for Amazon EKS based -// job definitions to describe the properties for a container node in the pod -// that's launched as part of a job. This can't be specified for Amazon ECS -// based job definitions. -type EksContainer struct { +// The details of a task definition that describes the container and volume +// definitions of an Amazon ECS task. +type EcsTaskDetails struct { _ struct{} `type:"structure"` - // An array of arguments to the entrypoint. If this isn't specified, the CMD - // of the container image is used. This corresponds to the args member in the - // Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) - // portion of the Pod (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) - // in Kubernetes. Environment variable references are expanded using the container's - // environment. - // - // If the referenced environment variable doesn't exist, the reference in the - // command isn't changed. For example, if the reference is to "$(NAME1)" and - // the NAME1 environment variable doesn't exist, the command string will remain - // "$(NAME1)." $$ is replaced with $, and the resulting string isn't expanded. - // For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME - // environment variable exists. For more information, see CMD (https://docs.docker.com/engine/reference/builder/#cmd) - // in the Dockerfile reference and Define a command and arguments for a pod - // (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) - // in the Kubernetes documentation. - Args []*string `locationName:"args" type:"list"` + // The Amazon Resource Name (ARN) of the container instance that hosts the task. + ContainerInstanceArn *string `locationName:"containerInstanceArn" type:"string"` - // The entrypoint for the container. This isn't run within a shell. If this - // isn't specified, the ENTRYPOINT of the container image is used. Environment - // variable references are expanded using the container's environment. - // - // If the referenced environment variable doesn't exist, the reference in the - // command isn't changed. For example, if the reference is to "$(NAME1)" and - // the NAME1 environment variable doesn't exist, the command string will remain - // "$(NAME1)." $$ is replaced with $ and the resulting string isn't expanded. - // For example, $$(VAR_NAME) will be passed as $(VAR_NAME) whether or not the - // VAR_NAME environment variable exists. The entrypoint can't be updated. For - // more information, see ENTRYPOINT (https://docs.docker.com/engine/reference/builder/#entrypoint) - // in the Dockerfile reference and Define a command and arguments for a container - // (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) - // and Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) - // in the Kubernetes documentation. - Command []*string `locationName:"command" type:"list"` + // A list of containers that are included in the taskProperties list. + Containers []*TaskContainerDetails `locationName:"containers" type:"list"` - // 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. - Env []*EksContainerEnvironmentVariable `locationName:"env" type:"list"` + // The amount of ephemeral storage allocated for the task. + EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"` - // The Docker image used to start the container. - // - // Image is a required field - Image *string `locationName:"image" type:"string" required:"true"` + // The Amazon Resource Name (ARN) of the execution role that Batch can assume. + // For more information, see Batch execution IAM role (https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) + // in the Batch User Guide. + ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"` - // The image pull policy for the container. Supported values are Always, IfNotPresent, - // and Never. This parameter defaults to IfNotPresent. However, if the :latest - // tag is specified, it defaults to Always. For more information, see Updating - // images (https://kubernetes.io/docs/concepts/containers/images/#updating-images) - // in the Kubernetes documentation. - ImagePullPolicy *string `locationName:"imagePullPolicy" type:"string"` + // The IPC resource namespace to use for the containers in the task. + IpcMode *string `locationName:"ipcMode" type:"string"` - // The name of the container. If the name isn't specified, the default name - // "Default" is used. Each container in a pod must have a unique name. - Name *string `locationName:"name" type:"string"` + // The network configuration for jobs that are running on Fargate resources. + // Jobs that are running on Amazon EC2 resources must not specify this parameter. + NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"` - // The type and amount of resources to assign to a container. The supported - // resources include memory, cpu, and nvidia.com/gpu. For more information, - // see Resource management for pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) - // in the Kubernetes documentation. - Resources *EksContainerResourceRequirements `locationName:"resources" type:"structure"` + // The process namespace to use for the containers in the task. + PidMode *string `locationName:"pidMode" type:"string"` - // The security context for a job. For more information, see Configure a security - // context for a pod or container (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) - // in the Kubernetes documentation. - SecurityContext *EksContainerSecurityContext `locationName:"securityContext" type:"structure"` + // The Fargate platform version where the jobs are running. + PlatformVersion *string `locationName:"platformVersion" type:"string"` - // The volume mounts for the container. Batch supports emptyDir, hostPath, and - // secret volume types. For more information about volumes and volume mounts - // in Kubernetes, see Volumes (https://kubernetes.io/docs/concepts/storage/volumes/) - // in the Kubernetes documentation. - VolumeMounts []*EksContainerVolumeMount `locationName:"volumeMounts" type:"list"` + // An object that represents the compute environment architecture for Batch + // jobs on Fargate. + RuntimePlatform *RuntimePlatform `locationName:"runtimePlatform" type:"structure"` + + // The ARN of the Amazon ECS task. + TaskArn *string `locationName:"taskArn" type:"string"` + + // The Amazon Resource Name (ARN) of the IAM role that the container can assume + // for Amazon Web Services permissions. For more information, see IAM roles + // for tasks (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) + // in the Amazon Elastic Container Service Developer Guide. + // + // This is object is comparable to ContainerProperties:jobRoleArn (https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html). + TaskRoleArn *string `locationName:"taskRoleArn" type:"string"` + + // A list of data volumes used in a job. + Volumes []*Volume `locationName:"volumes" type:"list"` } // String returns the string representation. @@ -7004,7 +6930,7 @@ type EksContainer struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainer) String() string { +func (s EcsTaskDetails) String() string { return awsutil.Prettify(s) } @@ -7013,156 +6939,164 @@ func (s EksContainer) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainer) GoString() string { +func (s EcsTaskDetails) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EksContainer) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksContainer"} - if s.Image == nil { - invalidParams.Add(request.NewErrParamRequired("Image")) - } - if s.Env != nil { - for i, v := range s.Env { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Env", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetContainerInstanceArn sets the ContainerInstanceArn field's value. +func (s *EcsTaskDetails) SetContainerInstanceArn(v string) *EcsTaskDetails { + s.ContainerInstanceArn = &v + return s } -// SetArgs sets the Args field's value. -func (s *EksContainer) SetArgs(v []*string) *EksContainer { - s.Args = v +// SetContainers sets the Containers field's value. +func (s *EcsTaskDetails) SetContainers(v []*TaskContainerDetails) *EcsTaskDetails { + s.Containers = v return s } -// SetCommand sets the Command field's value. -func (s *EksContainer) SetCommand(v []*string) *EksContainer { - s.Command = v +// SetEphemeralStorage sets the EphemeralStorage field's value. +func (s *EcsTaskDetails) SetEphemeralStorage(v *EphemeralStorage) *EcsTaskDetails { + s.EphemeralStorage = v return s } -// SetEnv sets the Env field's value. -func (s *EksContainer) SetEnv(v []*EksContainerEnvironmentVariable) *EksContainer { - s.Env = v +// SetExecutionRoleArn sets the ExecutionRoleArn field's value. +func (s *EcsTaskDetails) SetExecutionRoleArn(v string) *EcsTaskDetails { + s.ExecutionRoleArn = &v return s } -// SetImage sets the Image field's value. -func (s *EksContainer) SetImage(v string) *EksContainer { - s.Image = &v +// SetIpcMode sets the IpcMode field's value. +func (s *EcsTaskDetails) SetIpcMode(v string) *EcsTaskDetails { + s.IpcMode = &v return s } -// SetImagePullPolicy sets the ImagePullPolicy field's value. -func (s *EksContainer) SetImagePullPolicy(v string) *EksContainer { - s.ImagePullPolicy = &v +// SetNetworkConfiguration sets the NetworkConfiguration field's value. +func (s *EcsTaskDetails) SetNetworkConfiguration(v *NetworkConfiguration) *EcsTaskDetails { + s.NetworkConfiguration = v return s } -// SetName sets the Name field's value. -func (s *EksContainer) SetName(v string) *EksContainer { - s.Name = &v +// SetPidMode sets the PidMode field's value. +func (s *EcsTaskDetails) SetPidMode(v string) *EcsTaskDetails { + s.PidMode = &v return s } -// SetResources sets the Resources field's value. -func (s *EksContainer) SetResources(v *EksContainerResourceRequirements) *EksContainer { - s.Resources = v +// SetPlatformVersion sets the PlatformVersion field's value. +func (s *EcsTaskDetails) SetPlatformVersion(v string) *EcsTaskDetails { + s.PlatformVersion = &v return s } -// SetSecurityContext sets the SecurityContext field's value. -func (s *EksContainer) SetSecurityContext(v *EksContainerSecurityContext) *EksContainer { - s.SecurityContext = v +// SetRuntimePlatform sets the RuntimePlatform field's value. +func (s *EcsTaskDetails) SetRuntimePlatform(v *RuntimePlatform) *EcsTaskDetails { + s.RuntimePlatform = v return s } -// SetVolumeMounts sets the VolumeMounts field's value. -func (s *EksContainer) SetVolumeMounts(v []*EksContainerVolumeMount) *EksContainer { - s.VolumeMounts = v +// SetTaskArn sets the TaskArn field's value. +func (s *EcsTaskDetails) SetTaskArn(v string) *EcsTaskDetails { + s.TaskArn = &v return s } -// The details for container properties that are returned by DescribeJobs for -// jobs that use Amazon EKS. -type EksContainerDetail struct { - _ struct{} `type:"structure"` +// SetTaskRoleArn sets the TaskRoleArn field's value. +func (s *EcsTaskDetails) SetTaskRoleArn(v string) *EcsTaskDetails { + s.TaskRoleArn = &v + return s +} - // An array of arguments to the entrypoint. If this isn't specified, the CMD - // of the container image is used. This corresponds to the args member in the - // Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) - // portion of the Pod (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) - // in Kubernetes. Environment variable references are expanded using the container's - // environment. - // - // If the referenced environment variable doesn't exist, the reference in the - // command isn't changed. For example, if the reference is to "$(NAME1)" and - // the NAME1 environment variable doesn't exist, the command string will remain - // "$(NAME1)". $$ is replaced with $ and the resulting string isn't expanded. - // For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME - // environment variable exists. For more information, see CMD (https://docs.docker.com/engine/reference/builder/#cmd) - // in the Dockerfile reference and Define a command and arguments for a pod - // (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) - // in the Kubernetes documentation. - Args []*string `locationName:"args" type:"list"` +// SetVolumes sets the Volumes field's value. +func (s *EcsTaskDetails) SetVolumes(v []*Volume) *EcsTaskDetails { + s.Volumes = v + return s +} - // The entrypoint for the container. For more information, see Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) - // in the Kubernetes documentation. - Command []*string `locationName:"command" type:"list"` +// The properties for a task definition that describes the container and volume +// definitions of an Amazon ECS task. You can specify which Docker images to +// use, the required resources, and other configurations related to launching +// the task definition through an Amazon ECS service or task. +type EcsTaskProperties struct { + _ struct{} `type:"structure"` - // The environment variables to pass to a container. + // This object is a list of containers. // - // Environment variables cannot start with "AWS_BATCH". This naming convention - // is reserved for variables that Batch sets. - Env []*EksContainerEnvironmentVariable `locationName:"env" type:"list"` + // Containers is a required field + Containers []*TaskContainerProperties `locationName:"containers" type:"list" required:"true"` - // The exit code for the job attempt. A non-zero exit code is considered failed. - ExitCode *int64 `locationName:"exitCode" type:"integer"` + // The amount of ephemeral storage to allocate 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. + EphemeralStorage *EphemeralStorage `locationName:"ephemeralStorage" type:"structure"` - // The Docker image used to start the container. - Image *string `locationName:"image" type:"string"` + // The Amazon Resource Name (ARN) of the execution role that Batch can assume. + // For jobs that run on Fargate resources, you must provide an execution role. + // For more information, see Batch execution IAM role (https://docs.aws.amazon.com/batch/latest/userguide/execution-IAM-role.html) + // in the Batch User Guide. + ExecutionRoleArn *string `locationName:"executionRoleArn" type:"string"` - // The image pull policy for the container. Supported values are Always, IfNotPresent, - // and Never. This parameter defaults to Always if the :latest tag is specified, - // IfNotPresent otherwise. For more information, see Updating images (https://kubernetes.io/docs/concepts/containers/images/#updating-images) - // in the Kubernetes documentation. - ImagePullPolicy *string `locationName:"imagePullPolicy" type:"string"` + // The IPC resource namespace to use for the containers in the task. The valid + // values are host, task, or none. + // + // If host is specified, all containers within the tasks that specified the + // host IPC mode on the same container instance share the same IPC resources + // with the host Amazon EC2 instance. + // + // If task is specified, all containers within the specified task share the + // same IPC resources. + // + // If none is specified, the IPC resources within the containers of a task are + // private, and are not shared with other containers in a task or on the container + // instance. + // + // If no value is specified, then the IPC resource namespace sharing depends + // on the Docker daemon setting on the container instance. For more information, + // see IPC settings (https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) + // in the Docker run reference. + IpcMode *string `locationName:"ipcMode" type:"string"` - // The name of the container. If the name isn't specified, the default name - // "Default" is used. Each container in a pod must have a unique name. - Name *string `locationName:"name" type:"string"` + // The network configuration for jobs that are running on Fargate resources. + // Jobs that are running on Amazon EC2 resources must not specify this parameter. + NetworkConfiguration *NetworkConfiguration `locationName:"networkConfiguration" type:"structure"` - // A short human-readable string to provide additional details for a running - // or stopped container. It can be up to 255 characters long. - Reason *string `locationName:"reason" type:"string"` + // The process namespace to use for the containers in the task. The valid values + // are host or task. For example, monitoring sidecars might need pidMode to + // access information about other containers running in the same task. + // + // If host is specified, all containers within the tasks that specified the + // host PID mode on the same container instance share the process namespace + // with the host Amazon EC2 instance. + // + // If task is specified, all containers within the specified task share the + // same process namespace. + // + // If no value is specified, the default is a private namespace for each container. + // For more information, see PID settings (https://docs.docker.com/engine/reference/run/#pid-settings---pid) + // in the Docker run reference. + PidMode *string `locationName:"pidMode" type:"string"` - // The type and amount of resources to assign to a container. The supported - // resources include memory, cpu, and nvidia.com/gpu. For more information, - // see Resource management for pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) - // in the Kubernetes documentation. - Resources *EksContainerResourceRequirements `locationName:"resources" type:"structure"` + // The Fargate platform version where the jobs are running. A platform version + // is specified only for jobs that are running on Fargate resources. If one + // isn't specified, the LATEST platform version is used by default. This uses + // a recent, approved version of the Fargate platform for compute resources. + // For more information, see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + // in the Amazon Elastic Container Service Developer Guide. + PlatformVersion *string `locationName:"platformVersion" type:"string"` - // The security context for a job. For more information, see Configure a security - // context for a pod or container (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) - // in the Kubernetes documentation. - SecurityContext *EksContainerSecurityContext `locationName:"securityContext" type:"structure"` + // An object that represents the compute environment architecture for Batch + // jobs on Fargate. + RuntimePlatform *RuntimePlatform `locationName:"runtimePlatform" type:"structure"` - // The volume mounts for the container. Batch supports emptyDir, hostPath, and - // secret volume types. For more information about volumes and volume mounts - // in Kubernetes, see Volumes (https://kubernetes.io/docs/concepts/storage/volumes/) - // in the Kubernetes documentation. - VolumeMounts []*EksContainerVolumeMount `locationName:"volumeMounts" type:"list"` + // The Amazon Resource Name (ARN) that's associated with the Amazon ECS task. + // + // This is object is comparable to ContainerProperties:jobRoleArn (https://docs.aws.amazon.com/batch/latest/APIReference/API_ContainerProperties.html). + TaskRoleArn *string `locationName:"taskRoleArn" type:"string"` + + // A list of volumes that are associated with the job. + Volumes []*Volume `locationName:"volumes" type:"list"` } // String returns the string representation. @@ -7170,7 +7104,7 @@ type EksContainerDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerDetail) String() string { +func (s EcsTaskProperties) String() string { return awsutil.Prettify(s) } @@ -7179,87 +7113,120 @@ func (s EksContainerDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerDetail) GoString() string { +func (s EcsTaskProperties) GoString() string { return s.String() } -// SetArgs sets the Args field's value. -func (s *EksContainerDetail) SetArgs(v []*string) *EksContainerDetail { - s.Args = v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *EcsTaskProperties) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EcsTaskProperties"} + if s.Containers == nil { + invalidParams.Add(request.NewErrParamRequired("Containers")) + } + if s.Containers != nil { + for i, v := range s.Containers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams)) + } + } + } + if s.EphemeralStorage != nil { + if err := s.EphemeralStorage.Validate(); err != nil { + invalidParams.AddNested("EphemeralStorage", err.(request.ErrInvalidParams)) + } + } + if s.Volumes != nil { + for i, v := range s.Volumes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetCommand sets the Command field's value. -func (s *EksContainerDetail) SetCommand(v []*string) *EksContainerDetail { - s.Command = v +// SetContainers sets the Containers field's value. +func (s *EcsTaskProperties) SetContainers(v []*TaskContainerProperties) *EcsTaskProperties { + s.Containers = v return s } -// SetEnv sets the Env field's value. -func (s *EksContainerDetail) SetEnv(v []*EksContainerEnvironmentVariable) *EksContainerDetail { - s.Env = v +// SetEphemeralStorage sets the EphemeralStorage field's value. +func (s *EcsTaskProperties) SetEphemeralStorage(v *EphemeralStorage) *EcsTaskProperties { + s.EphemeralStorage = v return s } -// SetExitCode sets the ExitCode field's value. -func (s *EksContainerDetail) SetExitCode(v int64) *EksContainerDetail { - s.ExitCode = &v +// SetExecutionRoleArn sets the ExecutionRoleArn field's value. +func (s *EcsTaskProperties) SetExecutionRoleArn(v string) *EcsTaskProperties { + s.ExecutionRoleArn = &v return s } -// SetImage sets the Image field's value. -func (s *EksContainerDetail) SetImage(v string) *EksContainerDetail { - s.Image = &v +// SetIpcMode sets the IpcMode field's value. +func (s *EcsTaskProperties) SetIpcMode(v string) *EcsTaskProperties { + s.IpcMode = &v return s } -// SetImagePullPolicy sets the ImagePullPolicy field's value. -func (s *EksContainerDetail) SetImagePullPolicy(v string) *EksContainerDetail { - s.ImagePullPolicy = &v +// SetNetworkConfiguration sets the NetworkConfiguration field's value. +func (s *EcsTaskProperties) SetNetworkConfiguration(v *NetworkConfiguration) *EcsTaskProperties { + s.NetworkConfiguration = v return s } -// SetName sets the Name field's value. -func (s *EksContainerDetail) SetName(v string) *EksContainerDetail { - s.Name = &v +// SetPidMode sets the PidMode field's value. +func (s *EcsTaskProperties) SetPidMode(v string) *EcsTaskProperties { + s.PidMode = &v return s } -// SetReason sets the Reason field's value. -func (s *EksContainerDetail) SetReason(v string) *EksContainerDetail { - s.Reason = &v +// SetPlatformVersion sets the PlatformVersion field's value. +func (s *EcsTaskProperties) SetPlatformVersion(v string) *EcsTaskProperties { + s.PlatformVersion = &v return s } -// SetResources sets the Resources field's value. -func (s *EksContainerDetail) SetResources(v *EksContainerResourceRequirements) *EksContainerDetail { - s.Resources = v +// SetRuntimePlatform sets the RuntimePlatform field's value. +func (s *EcsTaskProperties) SetRuntimePlatform(v *RuntimePlatform) *EcsTaskProperties { + s.RuntimePlatform = v return s } -// SetSecurityContext sets the SecurityContext field's value. -func (s *EksContainerDetail) SetSecurityContext(v *EksContainerSecurityContext) *EksContainerDetail { - s.SecurityContext = v +// SetTaskRoleArn sets the TaskRoleArn field's value. +func (s *EcsTaskProperties) SetTaskRoleArn(v string) *EcsTaskProperties { + s.TaskRoleArn = &v return s } -// SetVolumeMounts sets the VolumeMounts field's value. -func (s *EksContainerDetail) SetVolumeMounts(v []*EksContainerVolumeMount) *EksContainerDetail { - s.VolumeMounts = v +// SetVolumes sets the Volumes field's value. +func (s *EcsTaskProperties) SetVolumes(v []*Volume) *EcsTaskProperties { + s.Volumes = v return s } -// An environment variable. -type EksContainerEnvironmentVariable struct { +// An object that represents the details for an attempt for a job attempt that +// an Amazon EKS container runs. +type EksAttemptContainerDetail struct { _ struct{} `type:"structure"` - // The name of the environment variable. - // - // Name is a required field - Name *string `locationName:"name" type:"string" required:"true"` + // The exit code returned for the job attempt. A non-zero exit code is considered + // failed. + ExitCode *int64 `locationName:"exitCode" type:"integer"` - // The value of the environment variable. - Value *string `locationName:"value" type:"string"` + // A short (255 max characters) human-readable string to provide additional + // details for a running or stopped container. + Reason *string `locationName:"reason" type:"string"` } // String returns the string representation. @@ -7267,7 +7234,7 @@ type EksContainerEnvironmentVariable struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerEnvironmentVariable) String() string { +func (s EksAttemptContainerDetail) String() string { return awsutil.Prettify(s) } @@ -7276,68 +7243,261 @@ func (s EksContainerEnvironmentVariable) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerEnvironmentVariable) GoString() string { +func (s EksAttemptContainerDetail) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EksContainerEnvironmentVariable) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksContainerEnvironmentVariable"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } +// SetExitCode sets the ExitCode field's value. +func (s *EksAttemptContainerDetail) SetExitCode(v int64) *EksAttemptContainerDetail { + s.ExitCode = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams +// SetReason sets the Reason field's value. +func (s *EksAttemptContainerDetail) SetReason(v string) *EksAttemptContainerDetail { + s.Reason = &v + return s +} + +// An object that represents the details of a job attempt for a job attempt +// by an Amazon EKS container. +type EksAttemptDetail struct { + _ struct{} `type:"structure"` + + // The details for the final status of the containers for this job attempt. + Containers []*EksAttemptContainerDetail `locationName:"containers" type:"list"` + + // The details for the init containers. + InitContainers []*EksAttemptContainerDetail `locationName:"initContainers" type:"list"` + + // The name of the node for this job attempt. + NodeName *string `locationName:"nodeName" type:"string"` + + // The name of the pod for this job attempt. + PodName *string `locationName:"podName" type:"string"` + + // The Unix timestamp (in milliseconds) for when the attempt was started (when + // the attempt transitioned from the STARTING state to the RUNNING state). + StartedAt *int64 `locationName:"startedAt" type:"long"` + + // A short, human-readable string to provide additional details for the current + // status of the job attempt. + StatusReason *string `locationName:"statusReason" type:"string"` + + // The Unix timestamp (in milliseconds) for when the attempt was stopped. This + // happens when the attempt transitioned from the RUNNING state to a terminal + // state, such as SUCCEEDED or FAILED. + StoppedAt *int64 `locationName:"stoppedAt" type:"long"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksAttemptDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksAttemptDetail) GoString() string { + return s.String() +} + +// SetContainers sets the Containers field's value. +func (s *EksAttemptDetail) SetContainers(v []*EksAttemptContainerDetail) *EksAttemptDetail { + s.Containers = v + return s +} + +// SetInitContainers sets the InitContainers field's value. +func (s *EksAttemptDetail) SetInitContainers(v []*EksAttemptContainerDetail) *EksAttemptDetail { + s.InitContainers = v + return s +} + +// SetNodeName sets the NodeName field's value. +func (s *EksAttemptDetail) SetNodeName(v string) *EksAttemptDetail { + s.NodeName = &v + return s +} + +// SetPodName sets the PodName field's value. +func (s *EksAttemptDetail) SetPodName(v string) *EksAttemptDetail { + s.PodName = &v + return s +} + +// SetStartedAt sets the StartedAt field's value. +func (s *EksAttemptDetail) SetStartedAt(v int64) *EksAttemptDetail { + s.StartedAt = &v + return s +} + +// SetStatusReason sets the StatusReason field's value. +func (s *EksAttemptDetail) SetStatusReason(v string) *EksAttemptDetail { + s.StatusReason = &v + return s +} + +// SetStoppedAt sets the StoppedAt field's value. +func (s *EksAttemptDetail) SetStoppedAt(v int64) *EksAttemptDetail { + s.StoppedAt = &v + return s +} + +// Configuration for the Amazon EKS cluster that supports the Batch compute +// environment. The cluster must exist before the compute environment can be +// created. +type EksConfiguration struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the Amazon EKS cluster. An example is arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch . + // + // EksClusterArn is a required field + EksClusterArn *string `locationName:"eksClusterArn" type:"string" required:"true"` + + // The namespace of the Amazon EKS cluster. Batch manages pods in this namespace. + // The value can't left empty or null. It must be fewer than 64 characters long, + // can't be set to default, can't start with "kube-," and must match this regular + // expression: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$. For more information, see Namespaces + // (https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) + // in the Kubernetes documentation. + // + // KubernetesNamespace is a required field + KubernetesNamespace *string `locationName:"kubernetesNamespace" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *EksConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksConfiguration"} + if s.EksClusterArn == nil { + invalidParams.Add(request.NewErrParamRequired("EksClusterArn")) + } + if s.KubernetesNamespace == nil { + invalidParams.Add(request.NewErrParamRequired("KubernetesNamespace")) + } + + if invalidParams.Len() > 0 { + return invalidParams } return nil } -// SetName sets the Name field's value. -func (s *EksContainerEnvironmentVariable) SetName(v string) *EksContainerEnvironmentVariable { - s.Name = &v +// SetEksClusterArn sets the EksClusterArn field's value. +func (s *EksConfiguration) SetEksClusterArn(v string) *EksConfiguration { + s.EksClusterArn = &v return s } -// SetValue sets the Value field's value. -func (s *EksContainerEnvironmentVariable) SetValue(v string) *EksContainerEnvironmentVariable { - s.Value = &v +// SetKubernetesNamespace sets the KubernetesNamespace field's value. +func (s *EksConfiguration) SetKubernetesNamespace(v string) *EksConfiguration { + s.KubernetesNamespace = &v return s } -// Object representing any Kubernetes overrides to a job definition that's used -// in a SubmitJob API operation. -type EksContainerOverride struct { +// EKS container properties are used in job definitions for Amazon EKS based +// job definitions to describe the properties for a container node in the pod +// that's launched as part of a job. This can't be specified for Amazon ECS +// based job definitions. +type EksContainer struct { _ struct{} `type:"structure"` - // The arguments to the entrypoint to send to the container that overrides the - // default arguments from the Docker image or the job definition. For more information, - // see CMD (https://docs.docker.com/engine/reference/builder/#cmd) in the Dockerfile - // reference and Define a command an arguments for a pod (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) + // An array of arguments to the entrypoint. If this isn't specified, the CMD + // of the container image is used. This corresponds to the args member in the + // Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) + // portion of the Pod (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) + // in Kubernetes. Environment variable references are expanded using the container's + // environment. + // + // If the referenced environment variable doesn't exist, the reference in the + // command isn't changed. For example, if the reference is to "$(NAME1)" and + // the NAME1 environment variable doesn't exist, the command string will remain + // "$(NAME1)." $$ is replaced with $, and the resulting string isn't expanded. + // For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME + // environment variable exists. For more information, see Dockerfile reference: + // CMD (https://docs.docker.com/engine/reference/builder/#cmd) and Define a + // command and arguments for a pod (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) // in the Kubernetes documentation. Args []*string `locationName:"args" type:"list"` - // The command to send to the container that overrides the default command from - // the Docker image or the job definition. + // The entrypoint for the container. This isn't run within a shell. If this + // isn't specified, the ENTRYPOINT of the container image is used. Environment + // variable references are expanded using the container's environment. + // + // If the referenced environment variable doesn't exist, the reference in the + // command isn't changed. For example, if the reference is to "$(NAME1)" and + // the NAME1 environment variable doesn't exist, the command string will remain + // "$(NAME1)." $$ is replaced with $ and the resulting string isn't expanded. + // For example, $$(VAR_NAME) will be passed as $(VAR_NAME) whether or not the + // VAR_NAME environment variable exists. The entrypoint can't be updated. For + // more information, see ENTRYPOINT (https://docs.docker.com/engine/reference/builder/#entrypoint) + // in the Dockerfile reference and Define a command and arguments for a container + // (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) + // and Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) + // in the Kubernetes documentation. Command []*string `locationName:"command" type:"list"` - // 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. + // 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. Env []*EksContainerEnvironmentVariable `locationName:"env" type:"list"` - // The override of the Docker image that's used to start the container. - Image *string `locationName:"image" type:"string"` + // The Docker image used to start the container. + // + // Image is a required field + Image *string `locationName:"image" type:"string" required:"true"` - // The type and amount of resources to assign to a container. These override - // the settings in the job definition. The supported resources include memory, - // cpu, and nvidia.com/gpu. For more information, see Resource management for - // pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) + // The image pull policy for the container. Supported values are Always, IfNotPresent, + // and Never. This parameter defaults to IfNotPresent. However, if the :latest + // tag is specified, it defaults to Always. For more information, see Updating + // images (https://kubernetes.io/docs/concepts/containers/images/#updating-images) + // in the Kubernetes documentation. + ImagePullPolicy *string `locationName:"imagePullPolicy" type:"string"` + + // The name of the container. If the name isn't specified, the default name + // "Default" is used. Each container in a pod must have a unique name. + Name *string `locationName:"name" type:"string"` + + // The type and amount of resources to assign to a container. The supported + // resources include memory, cpu, and nvidia.com/gpu. For more information, + // see Resource management for pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) // in the Kubernetes documentation. Resources *EksContainerResourceRequirements `locationName:"resources" type:"structure"` + + // The security context for a job. For more information, see Configure a security + // context for a pod or container (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) + // in the Kubernetes documentation. + SecurityContext *EksContainerSecurityContext `locationName:"securityContext" type:"structure"` + + // The volume mounts for the container. Batch supports emptyDir, hostPath, and + // secret volume types. For more information about volumes and volume mounts + // in Kubernetes, see Volumes (https://kubernetes.io/docs/concepts/storage/volumes/) + // in the Kubernetes documentation. + VolumeMounts []*EksContainerVolumeMount `locationName:"volumeMounts" type:"list"` } // String returns the string representation. @@ -7345,7 +7505,7 @@ type EksContainerOverride struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerOverride) String() string { +func (s EksContainer) String() string { return awsutil.Prettify(s) } @@ -7354,13 +7514,16 @@ func (s EksContainerOverride) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerOverride) GoString() string { +func (s EksContainer) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *EksContainerOverride) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksContainerOverride"} +func (s *EksContainer) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksContainer"} + if s.Image == nil { + invalidParams.Add(request.NewErrParamRequired("Image")) + } if s.Env != nil { for i, v := range s.Env { if v == nil { @@ -7379,178 +7542,129 @@ func (s *EksContainerOverride) Validate() error { } // SetArgs sets the Args field's value. -func (s *EksContainerOverride) SetArgs(v []*string) *EksContainerOverride { +func (s *EksContainer) SetArgs(v []*string) *EksContainer { s.Args = v return s } // SetCommand sets the Command field's value. -func (s *EksContainerOverride) SetCommand(v []*string) *EksContainerOverride { +func (s *EksContainer) SetCommand(v []*string) *EksContainer { s.Command = v return s } // SetEnv sets the Env field's value. -func (s *EksContainerOverride) SetEnv(v []*EksContainerEnvironmentVariable) *EksContainerOverride { +func (s *EksContainer) SetEnv(v []*EksContainerEnvironmentVariable) *EksContainer { s.Env = v return s } // SetImage sets the Image field's value. -func (s *EksContainerOverride) SetImage(v string) *EksContainerOverride { +func (s *EksContainer) SetImage(v string) *EksContainer { s.Image = &v return s } -// SetResources sets the Resources field's value. -func (s *EksContainerOverride) SetResources(v *EksContainerResourceRequirements) *EksContainerOverride { - s.Resources = v - return s -} - -// The type and amount of resources to assign to a container. The supported -// resources include memory, cpu, and nvidia.com/gpu. For more information, -// see Resource management for pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) -// in the Kubernetes documentation. -type EksContainerResourceRequirements struct { - _ struct{} `type:"structure"` - - // The type and quantity of the resources to reserve for the container. The - // values vary based on the name that's specified. Resources can be requested - // using either the limits or the requests objects. - // - // memory - // - // The memory hard limit (in MiB) for the container, using whole integers, with - // a "Mi" suffix. If your container attempts to exceed the memory specified, - // the container is terminated. You must specify at least 4 MiB of memory for - // a job. memory can be specified in limits, requests, or both. If memory is - // specified in both places, then the value that's specified in limits must - // be equal to the value that's specified in requests. - // - // To maximize your resource utilization, provide your jobs with as much memory - // as possible for the specific instance type that you are using. To learn how, - // see Memory management (https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) - // in the Batch User Guide. - // - // cpu - // - // The number of CPUs that's reserved for the container. Values must be an even - // multiple of 0.25. cpu can be specified in limits, requests, or both. If cpu - // is specified in both places, then the value that's specified in limits must - // be at least as large as the value that's specified in requests. - // - // nvidia.com/gpu - // - // The number of GPUs that's reserved for the container. Values must be a whole - // integer. memory can be specified in limits, requests, or both. If memory - // is specified in both places, then the value that's specified in limits must - // be equal to the value that's specified in requests. - Limits map[string]*string `locationName:"limits" type:"map"` - - // The type and quantity of the resources to request for the container. The - // values vary based on the name that's specified. Resources can be requested - // by using either the limits or the requests objects. - // - // memory - // - // The memory hard limit (in MiB) for the container, using whole integers, with - // a "Mi" suffix. If your container attempts to exceed the memory specified, - // the container is terminated. You must specify at least 4 MiB of memory for - // a job. memory can be specified in limits, requests, or both. If memory is - // specified in both, then the value that's specified in limits must be equal - // to the value that's specified in requests. - // - // If you're trying to maximize your resource utilization by providing your - // jobs as much memory as possible for a particular instance type, see Memory - // management (https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) - // in the Batch User Guide. - // - // cpu - // - // The number of CPUs that are reserved for the container. Values must be an - // even multiple of 0.25. cpu can be specified in limits, requests, or both. - // If cpu is specified in both, then the value that's specified in limits must - // be at least as large as the value that's specified in requests. - // - // nvidia.com/gpu - // - // The number of GPUs that are reserved for the container. Values must be a - // whole integer. nvidia.com/gpu can be specified in limits, requests, or both. - // If nvidia.com/gpu is specified in both, then the value that's specified in - // limits must be equal to the value that's specified in requests. - Requests map[string]*string `locationName:"requests" type:"map"` +// SetImagePullPolicy sets the ImagePullPolicy field's value. +func (s *EksContainer) SetImagePullPolicy(v string) *EksContainer { + s.ImagePullPolicy = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksContainerResourceRequirements) String() string { - return awsutil.Prettify(s) +// SetName sets the Name field's value. +func (s *EksContainer) SetName(v string) *EksContainer { + s.Name = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksContainerResourceRequirements) GoString() string { - return s.String() +// SetResources sets the Resources field's value. +func (s *EksContainer) SetResources(v *EksContainerResourceRequirements) *EksContainer { + s.Resources = v + return s } -// SetLimits sets the Limits field's value. -func (s *EksContainerResourceRequirements) SetLimits(v map[string]*string) *EksContainerResourceRequirements { - s.Limits = v +// SetSecurityContext sets the SecurityContext field's value. +func (s *EksContainer) SetSecurityContext(v *EksContainerSecurityContext) *EksContainer { + s.SecurityContext = v return s } -// SetRequests sets the Requests field's value. -func (s *EksContainerResourceRequirements) SetRequests(v map[string]*string) *EksContainerResourceRequirements { - s.Requests = v +// SetVolumeMounts sets the VolumeMounts field's value. +func (s *EksContainer) SetVolumeMounts(v []*EksContainerVolumeMount) *EksContainer { + s.VolumeMounts = v return s } -// The security context for a job. For more information, see Configure a security -// context for a pod or container (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) -// in the Kubernetes documentation. -type EksContainerSecurityContext struct { +// The details for container properties that are returned by DescribeJobs for +// jobs that use Amazon EKS. +type EksContainerDetail struct { _ struct{} `type:"structure"` - // When this parameter is true, the container is given elevated permissions - // on the host container instance. The level of permissions are similar to the - // root user permissions. The default value is false. This parameter maps to - // privileged policy in the Privileged pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#privileged) + // An array of arguments to the entrypoint. If this isn't specified, the CMD + // of the container image is used. This corresponds to the args member in the + // Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) + // portion of the Pod (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/) + // in Kubernetes. Environment variable references are expanded using the container's + // environment. + // + // If the referenced environment variable doesn't exist, the reference in the + // command isn't changed. For example, if the reference is to "$(NAME1)" and + // the NAME1 environment variable doesn't exist, the command string will remain + // "$(NAME1)". $$ is replaced with $ and the resulting string isn't expanded. + // For example, $$(VAR_NAME) is passed as $(VAR_NAME) whether or not the VAR_NAME + // environment variable exists. For more information, see Dockerfile reference: + // CMD (https://docs.docker.com/engine/reference/builder/#cmd) and Define a + // command and arguments for a pod (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) // in the Kubernetes documentation. - Privileged *bool `locationName:"privileged" type:"boolean"` + Args []*string `locationName:"args" type:"list"` - // When this parameter is true, the container is given read-only access to its - // root file system. The default value is false. This parameter maps to ReadOnlyRootFilesystem - // policy in the Volumes and file systems pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#volumes-and-file-systems) + // The entrypoint for the container. For more information, see Entrypoint (https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#entrypoint) // in the Kubernetes documentation. - ReadOnlyRootFilesystem *bool `locationName:"readOnlyRootFilesystem" type:"boolean"` + Command []*string `locationName:"command" type:"list"` - // When this parameter is specified, the container is run as the specified group - // ID (gid). If this parameter isn't specified, the default is the group that's - // specified in the image metadata. This parameter maps to RunAsGroup and MustRunAs - // policy in the Users and groups pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) + // 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. + Env []*EksContainerEnvironmentVariable `locationName:"env" type:"list"` + + // The exit code returned for the job attempt. A non-zero exit code is considered + // failed. + ExitCode *int64 `locationName:"exitCode" type:"integer"` + + // The Docker image used to start the container. + Image *string `locationName:"image" type:"string"` + + // The image pull policy for the container. Supported values are Always, IfNotPresent, + // and Never. This parameter defaults to Always if the :latest tag is specified, + // IfNotPresent otherwise. For more information, see Updating images (https://kubernetes.io/docs/concepts/containers/images/#updating-images) // in the Kubernetes documentation. - RunAsGroup *int64 `locationName:"runAsGroup" type:"long"` + ImagePullPolicy *string `locationName:"imagePullPolicy" type:"string"` - // When this parameter is specified, the container is run as a user with a uid - // other than 0. If this parameter isn't specified, so such rule is enforced. - // This parameter maps to RunAsUser and MustRunAsNonRoot policy in the Users - // and groups pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) + // The name of the container. If the name isn't specified, the default name + // "Default" is used. Each container in a pod must have a unique name. + Name *string `locationName:"name" type:"string"` + + // A short human-readable string to provide additional details for a running + // or stopped container. It can be up to 255 characters long. + Reason *string `locationName:"reason" type:"string"` + + // The type and amount of resources to assign to a container. The supported + // resources include memory, cpu, and nvidia.com/gpu. For more information, + // see Resource management for pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) // in the Kubernetes documentation. - RunAsNonRoot *bool `locationName:"runAsNonRoot" type:"boolean"` + Resources *EksContainerResourceRequirements `locationName:"resources" type:"structure"` - // When this parameter is specified, the container is run as the specified user - // ID (uid). If this parameter isn't specified, the default is the user that's - // specified in the image metadata. This parameter maps to RunAsUser and MustRanAs - // policy in the Users and groups pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) + // The security context for a job. For more information, see Configure a security + // context for a pod or container (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) // in the Kubernetes documentation. - RunAsUser *int64 `locationName:"runAsUser" type:"long"` + SecurityContext *EksContainerSecurityContext `locationName:"securityContext" type:"structure"` + + // The volume mounts for the container. Batch supports emptyDir, hostPath, and + // secret volume types. For more information about volumes and volume mounts + // in Kubernetes, see Volumes (https://kubernetes.io/docs/concepts/storage/volumes/) + // in the Kubernetes documentation. + VolumeMounts []*EksContainerVolumeMount `locationName:"volumeMounts" type:"list"` } // String returns the string representation. @@ -7558,7 +7672,7 @@ type EksContainerSecurityContext struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerSecurityContext) String() string { +func (s EksContainerDetail) String() string { return awsutil.Prettify(s) } @@ -7567,122 +7681,87 @@ func (s EksContainerSecurityContext) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksContainerSecurityContext) GoString() string { +func (s EksContainerDetail) GoString() string { return s.String() } -// SetPrivileged sets the Privileged field's value. -func (s *EksContainerSecurityContext) SetPrivileged(v bool) *EksContainerSecurityContext { - s.Privileged = &v +// SetArgs sets the Args field's value. +func (s *EksContainerDetail) SetArgs(v []*string) *EksContainerDetail { + s.Args = v return s } -// SetReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field's value. -func (s *EksContainerSecurityContext) SetReadOnlyRootFilesystem(v bool) *EksContainerSecurityContext { - s.ReadOnlyRootFilesystem = &v +// SetCommand sets the Command field's value. +func (s *EksContainerDetail) SetCommand(v []*string) *EksContainerDetail { + s.Command = v return s } -// SetRunAsGroup sets the RunAsGroup field's value. -func (s *EksContainerSecurityContext) SetRunAsGroup(v int64) *EksContainerSecurityContext { - s.RunAsGroup = &v +// SetEnv sets the Env field's value. +func (s *EksContainerDetail) SetEnv(v []*EksContainerEnvironmentVariable) *EksContainerDetail { + s.Env = v return s } -// SetRunAsNonRoot sets the RunAsNonRoot field's value. -func (s *EksContainerSecurityContext) SetRunAsNonRoot(v bool) *EksContainerSecurityContext { - s.RunAsNonRoot = &v +// SetExitCode sets the ExitCode field's value. +func (s *EksContainerDetail) SetExitCode(v int64) *EksContainerDetail { + s.ExitCode = &v return s } -// SetRunAsUser sets the RunAsUser field's value. -func (s *EksContainerSecurityContext) SetRunAsUser(v int64) *EksContainerSecurityContext { - s.RunAsUser = &v +// SetImage sets the Image field's value. +func (s *EksContainerDetail) SetImage(v string) *EksContainerDetail { + s.Image = &v return s } -// The volume mounts for a container for an Amazon EKS job. For more information -// about volumes and volume mounts in Kubernetes, see Volumes (https://kubernetes.io/docs/concepts/storage/volumes/) -// in the Kubernetes documentation. -type EksContainerVolumeMount struct { - _ struct{} `type:"structure"` - - // The path on the container where the volume is mounted. - MountPath *string `locationName:"mountPath" type:"string"` +// SetImagePullPolicy sets the ImagePullPolicy field's value. +func (s *EksContainerDetail) SetImagePullPolicy(v string) *EksContainerDetail { + s.ImagePullPolicy = &v + return s +} - // The name the volume mount. This must match the name of one of the volumes - // in the pod. - Name *string `locationName:"name" type:"string"` +// SetName sets the Name field's value. +func (s *EksContainerDetail) SetName(v string) *EksContainerDetail { + s.Name = &v + return s +} - // If this value is true, the container has read-only access to the volume. - // Otherwise, the container can write to the volume. The default value is false. - ReadOnly *bool `locationName:"readOnly" type:"boolean"` +// SetReason sets the Reason field's value. +func (s *EksContainerDetail) SetReason(v string) *EksContainerDetail { + s.Reason = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksContainerVolumeMount) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksContainerVolumeMount) GoString() string { - return s.String() -} - -// SetMountPath sets the MountPath field's value. -func (s *EksContainerVolumeMount) SetMountPath(v string) *EksContainerVolumeMount { - s.MountPath = &v +// SetResources sets the Resources field's value. +func (s *EksContainerDetail) SetResources(v *EksContainerResourceRequirements) *EksContainerDetail { + s.Resources = v return s } -// SetName sets the Name field's value. -func (s *EksContainerVolumeMount) SetName(v string) *EksContainerVolumeMount { - s.Name = &v +// SetSecurityContext sets the SecurityContext field's value. +func (s *EksContainerDetail) SetSecurityContext(v *EksContainerSecurityContext) *EksContainerDetail { + s.SecurityContext = v return s } -// SetReadOnly sets the ReadOnly field's value. -func (s *EksContainerVolumeMount) SetReadOnly(v bool) *EksContainerVolumeMount { - s.ReadOnly = &v +// SetVolumeMounts sets the VolumeMounts field's value. +func (s *EksContainerDetail) SetVolumeMounts(v []*EksContainerVolumeMount) *EksContainerDetail { + s.VolumeMounts = v return s } -// Specifies the configuration of a Kubernetes emptyDir volume. An emptyDir -// volume is first created when a pod is assigned to a node. It exists as long -// as that pod is running on that node. The emptyDir volume is initially empty. -// All containers in the pod can read and write the files in the emptyDir volume. -// However, the emptyDir volume can be mounted at the same or different paths -// in each container. When a pod is removed from a node for any reason, the -// data in the emptyDir is deleted permanently. For more information, see emptyDir -// (https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) in the Kubernetes -// documentation. -type EksEmptyDir struct { +// An environment variable. +type EksContainerEnvironmentVariable struct { _ struct{} `type:"structure"` - // The medium to store the volume. The default value is an empty string, which - // uses the storage of the node. - // - // "" - // - // (Default) Use the disk storage of the node. - // - // "Memory" + // The name of the environment variable. // - // Use the tmpfs volume that's backed by the RAM of the node. Contents of the - // volume are lost when the node reboots, and any storage on the volume counts - // against the container's memory limit. - Medium *string `locationName:"medium" type:"string"` + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` - // The maximum size of the volume. By default, there's no maximum size defined. - SizeLimit *string `locationName:"sizeLimit" min:"1" type:"string"` + // The value of the environment variable. + Value *string `locationName:"value" type:"string"` } // String returns the string representation. @@ -7690,7 +7769,7 @@ type EksEmptyDir struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksEmptyDir) String() string { +func (s EksContainerEnvironmentVariable) String() string { return awsutil.Prettify(s) } @@ -7699,15 +7778,15 @@ func (s EksEmptyDir) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksEmptyDir) GoString() string { +func (s EksContainerEnvironmentVariable) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *EksEmptyDir) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksEmptyDir"} - if s.SizeLimit != nil && len(*s.SizeLimit) < 1 { - invalidParams.Add(request.NewErrParamMinLen("SizeLimit", 1)) +func (s *EksContainerEnvironmentVariable) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksContainerEnvironmentVariable"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) } if invalidParams.Len() > 0 { @@ -7716,132 +7795,56 @@ func (s *EksEmptyDir) Validate() error { return nil } -// SetMedium sets the Medium field's value. -func (s *EksEmptyDir) SetMedium(v string) *EksEmptyDir { - s.Medium = &v - return s -} - -// SetSizeLimit sets the SizeLimit field's value. -func (s *EksEmptyDir) SetSizeLimit(v string) *EksEmptyDir { - s.SizeLimit = &v +// SetName sets the Name field's value. +func (s *EksContainerEnvironmentVariable) SetName(v string) *EksContainerEnvironmentVariable { + s.Name = &v return s } -// Specifies the configuration of a Kubernetes hostPath volume. A hostPath volume -// mounts an existing file or directory from the host node's filesystem into -// your pod. For more information, see hostPath (https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) -// in the Kubernetes documentation. -type EksHostPath struct { - _ struct{} `type:"structure"` - - // The path of the file or directory on the host to mount into containers on - // the pod. - Path *string `locationName:"path" type:"string"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksHostPath) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksHostPath) GoString() string { - return s.String() -} - -// SetPath sets the Path field's value. -func (s *EksHostPath) SetPath(v string) *EksHostPath { - s.Path = &v +// SetValue sets the Value field's value. +func (s *EksContainerEnvironmentVariable) SetValue(v string) *EksContainerEnvironmentVariable { + s.Value = &v return s } -// Describes and uniquely identifies Kubernetes resources. For example, the -// compute environment that a pod runs in or the jobID for a job running in -// the pod. For more information, see Understanding Kubernetes Objects (https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) -// in the Kubernetes documentation. -type EksMetadata struct { +// Object representing any Kubernetes overrides to a job definition that's used +// in a SubmitJob (https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) +// API operation. +type EksContainerOverride struct { _ struct{} `type:"structure"` - // Key-value pairs used to identify, sort, and organize cube resources. Can - // contain up to 63 uppercase letters, lowercase letters, numbers, hyphens (-), - // and underscores (_). Labels can be added or modified at any time. Each resource - // can have multiple labels, but each key must be unique for a given object. - Labels map[string]*string `locationName:"labels" type:"map"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksMetadata) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EksMetadata) GoString() string { - return s.String() -} - -// SetLabels sets the Labels field's value. -func (s *EksMetadata) SetLabels(v map[string]*string) *EksMetadata { - s.Labels = v - return s -} - -// The properties for the pod. -type EksPodProperties struct { - _ struct{} `type:"structure"` + // The arguments to the entrypoint to send to the container that overrides the + // default arguments from the Docker image or the job definition. For more information, + // see Dockerfile reference: CMD (https://docs.docker.com/engine/reference/builder/#cmd) + // and Define a command an arguments for a pod (https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/) + // in the Kubernetes documentation. + Args []*string `locationName:"args" type:"list"` - // The properties of the container that's used on the Amazon EKS pod. - Containers []*EksContainer `locationName:"containers" type:"list"` + // The command to send to the container that overrides the default command from + // the Docker image or the job definition. + Command []*string `locationName:"command" type:"list"` - // The DNS policy for the pod. The default value is ClusterFirst. If the hostNetwork - // parameter is not specified, the default is ClusterFirstWithHostNet. ClusterFirst - // indicates that any DNS query that does not match the configured cluster domain - // suffix is forwarded to the upstream nameserver inherited from the node. For - // more information, see Pod's DNS policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) - // in the Kubernetes documentation. + // 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. // - // Valid values: Default | ClusterFirst | ClusterFirstWithHostNet - DnsPolicy *string `locationName:"dnsPolicy" type:"string"` + // Environment variables cannot start with "AWS_BATCH". This naming convention + // is reserved for variables that Batch sets. + Env []*EksContainerEnvironmentVariable `locationName:"env" type:"list"` - // Indicates if the pod uses the hosts' network IP address. The default value - // is true. Setting this to false enables the Kubernetes pod networking model. - // Most Batch workloads are egress-only and don't require the overhead of IP - // allocation for each pod for incoming connections. For more information, see - // Host namespaces (https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) - // and Pod networking (https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) - // in the Kubernetes documentation. - HostNetwork *bool `locationName:"hostNetwork" type:"boolean"` + // The override of the Docker image that's used to start the container. + Image *string `locationName:"image" type:"string"` - // Metadata about the Kubernetes pod. For more information, see Understanding - // Kubernetes Objects (https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) - // in the Kubernetes documentation. - Metadata *EksMetadata `locationName:"metadata" type:"structure"` + // A pointer to the container that you want to override. The name must match + // a unique container name that you wish to override. + Name *string `locationName:"name" type:"string"` - // The name of the service account that's used to run the pod. For more information, - // see Kubernetes service accounts (https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) - // and Configure a Kubernetes service account to assume an IAM role (https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) - // in the Amazon EKS User Guide and Configure service accounts for pods (https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) + // The type and amount of resources to assign to a container. These override + // the settings in the job definition. The supported resources include memory, + // cpu, and nvidia.com/gpu. For more information, see Resource management for + // pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) // in the Kubernetes documentation. - ServiceAccountName *string `locationName:"serviceAccountName" type:"string"` - - // Specifies the volumes for a job definition that uses Amazon EKS resources. - Volumes []*EksVolume `locationName:"volumes" type:"list"` + Resources *EksContainerResourceRequirements `locationName:"resources" type:"structure"` } // String returns the string representation. @@ -7849,7 +7852,7 @@ type EksPodProperties struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPodProperties) String() string { +func (s EksContainerOverride) String() string { return awsutil.Prettify(s) } @@ -7858,30 +7861,20 @@ func (s EksPodProperties) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPodProperties) GoString() string { +func (s EksContainerOverride) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *EksPodProperties) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksPodProperties"} - if s.Containers != nil { - for i, v := range s.Containers { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Volumes != nil { - for i, v := range s.Volumes { +func (s *EksContainerOverride) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksContainerOverride"} + if s.Env != nil { + for i, v := range s.Env { if v == nil { continue } if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams)) + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Env", i), err.(request.ErrInvalidParams)) } } } @@ -7892,95 +7885,114 @@ func (s *EksPodProperties) Validate() error { return nil } -// SetContainers sets the Containers field's value. -func (s *EksPodProperties) SetContainers(v []*EksContainer) *EksPodProperties { - s.Containers = v +// SetArgs sets the Args field's value. +func (s *EksContainerOverride) SetArgs(v []*string) *EksContainerOverride { + s.Args = v return s } -// SetDnsPolicy sets the DnsPolicy field's value. -func (s *EksPodProperties) SetDnsPolicy(v string) *EksPodProperties { - s.DnsPolicy = &v +// SetCommand sets the Command field's value. +func (s *EksContainerOverride) SetCommand(v []*string) *EksContainerOverride { + s.Command = v return s } -// SetHostNetwork sets the HostNetwork field's value. -func (s *EksPodProperties) SetHostNetwork(v bool) *EksPodProperties { - s.HostNetwork = &v +// SetEnv sets the Env field's value. +func (s *EksContainerOverride) SetEnv(v []*EksContainerEnvironmentVariable) *EksContainerOverride { + s.Env = v return s } -// SetMetadata sets the Metadata field's value. -func (s *EksPodProperties) SetMetadata(v *EksMetadata) *EksPodProperties { - s.Metadata = v +// SetImage sets the Image field's value. +func (s *EksContainerOverride) SetImage(v string) *EksContainerOverride { + s.Image = &v return s } -// SetServiceAccountName sets the ServiceAccountName field's value. -func (s *EksPodProperties) SetServiceAccountName(v string) *EksPodProperties { - s.ServiceAccountName = &v +// SetName sets the Name field's value. +func (s *EksContainerOverride) SetName(v string) *EksContainerOverride { + s.Name = &v return s } -// SetVolumes sets the Volumes field's value. -func (s *EksPodProperties) SetVolumes(v []*EksVolume) *EksPodProperties { - s.Volumes = v +// SetResources sets the Resources field's value. +func (s *EksContainerOverride) SetResources(v *EksContainerResourceRequirements) *EksContainerOverride { + s.Resources = v return s } -// The details for the pod. -type EksPodPropertiesDetail struct { +// The type and amount of resources to assign to a container. The supported +// resources include memory, cpu, and nvidia.com/gpu. For more information, +// see Resource management for pods and containers (https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) +// in the Kubernetes documentation. +type EksContainerResourceRequirements struct { _ struct{} `type:"structure"` - // The properties of the container that's used on the Amazon EKS pod. - Containers []*EksContainerDetail `locationName:"containers" type:"list"` - - // The DNS policy for the pod. The default value is ClusterFirst. If the hostNetwork - // parameter is not specified, the default is ClusterFirstWithHostNet. ClusterFirst - // indicates that any DNS query that does not match the configured cluster domain - // suffix is forwarded to the upstream nameserver inherited from the node. If - // no value was specified for dnsPolicy in the RegisterJobDefinition (https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) - // API operation, then no value will be returned for dnsPolicy by either of - // DescribeJobDefinitions (https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobDefinitions.html) - // or DescribeJobs (https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) - // API operations. The pod spec setting will contain either ClusterFirst or - // ClusterFirstWithHostNet, depending on the value of the hostNetwork parameter. - // For more information, see Pod's DNS policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) - // in the Kubernetes documentation. + // The type and quantity of the resources to reserve for the container. The + // values vary based on the name that's specified. Resources can be requested + // using either the limits or the requests objects. // - // Valid values: Default | ClusterFirst | ClusterFirstWithHostNet - DnsPolicy *string `locationName:"dnsPolicy" type:"string"` - - // Indicates if the pod uses the hosts' network IP address. The default value - // is true. Setting this to false enables the Kubernetes pod networking model. - // Most Batch workloads are egress-only and don't require the overhead of IP - // allocation for each pod for incoming connections. For more information, see - // Host namespaces (https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) - // and Pod networking (https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) - // in the Kubernetes documentation. - HostNetwork *bool `locationName:"hostNetwork" type:"boolean"` - - // Describes and uniquely identifies Kubernetes resources. For example, the - // compute environment that a pod runs in or the jobID for a job running in - // the pod. For more information, see Understanding Kubernetes Objects (https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) - // in the Kubernetes documentation. - Metadata *EksMetadata `locationName:"metadata" type:"structure"` - - // The name of the node for this job. - NodeName *string `locationName:"nodeName" type:"string"` - - // The name of the pod for this job. - PodName *string `locationName:"podName" type:"string"` - - // The name of the service account that's used to run the pod. For more information, - // see Kubernetes service accounts (https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) - // and Configure a Kubernetes service account to assume an IAM role (https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) - // in the Amazon EKS User Guide and Configure service accounts for pods (https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) - // in the Kubernetes documentation. - ServiceAccountName *string `locationName:"serviceAccountName" type:"string"` + // memory + // + // The memory hard limit (in MiB) for the container, using whole integers, with + // a "Mi" suffix. If your container attempts to exceed the memory specified, + // the container is terminated. You must specify at least 4 MiB of memory for + // a job. memory can be specified in limits, requests, or both. If memory is + // specified in both places, then the value that's specified in limits must + // be equal to the value that's specified in requests. + // + // To maximize your resource utilization, provide your jobs with as much memory + // as possible for the specific instance type that you are using. To learn how, + // see Memory management (https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) + // in the Batch User Guide. + // + // cpu + // + // The number of CPUs that's reserved for the container. Values must be an even + // multiple of 0.25. cpu can be specified in limits, requests, or both. If cpu + // is specified in both places, then the value that's specified in limits must + // be at least as large as the value that's specified in requests. + // + // nvidia.com/gpu + // + // The number of GPUs that's reserved for the container. Values must be a whole + // integer. memory can be specified in limits, requests, or both. If memory + // is specified in both places, then the value that's specified in limits must + // be equal to the value that's specified in requests. + Limits map[string]*string `locationName:"limits" type:"map"` - // Specifies the volumes for a job definition using Amazon EKS resources. - Volumes []*EksVolume `locationName:"volumes" type:"list"` + // The type and quantity of the resources to request for the container. The + // values vary based on the name that's specified. Resources can be requested + // by using either the limits or the requests objects. + // + // memory + // + // The memory hard limit (in MiB) for the container, using whole integers, with + // a "Mi" suffix. If your container attempts to exceed the memory specified, + // the container is terminated. You must specify at least 4 MiB of memory for + // a job. memory can be specified in limits, requests, or both. If memory is + // specified in both, then the value that's specified in limits must be equal + // to the value that's specified in requests. + // + // If you're trying to maximize your resource utilization by providing your + // jobs as much memory as possible for a particular instance type, see Memory + // management (https://docs.aws.amazon.com/batch/latest/userguide/memory-management.html) + // in the Batch User Guide. + // + // cpu + // + // The number of CPUs that are reserved for the container. Values must be an + // even multiple of 0.25. cpu can be specified in limits, requests, or both. + // If cpu is specified in both, then the value that's specified in limits must + // be at least as large as the value that's specified in requests. + // + // nvidia.com/gpu + // + // The number of GPUs that are reserved for the container. Values must be a + // whole integer. nvidia.com/gpu can be specified in limits, requests, or both. + // If nvidia.com/gpu is specified in both, then the value that's specified in + // limits must be equal to the value that's specified in requests. + Requests map[string]*string `locationName:"requests" type:"map"` } // String returns the string representation. @@ -7988,7 +8000,7 @@ type EksPodPropertiesDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPodPropertiesDetail) String() string { +func (s EksContainerResourceRequirements) String() string { return awsutil.Prettify(s) } @@ -7997,69 +8009,61 @@ func (s EksPodPropertiesDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPodPropertiesDetail) GoString() string { +func (s EksContainerResourceRequirements) GoString() string { return s.String() } -// SetContainers sets the Containers field's value. -func (s *EksPodPropertiesDetail) SetContainers(v []*EksContainerDetail) *EksPodPropertiesDetail { - s.Containers = v - return s -} - -// SetDnsPolicy sets the DnsPolicy field's value. -func (s *EksPodPropertiesDetail) SetDnsPolicy(v string) *EksPodPropertiesDetail { - s.DnsPolicy = &v - return s -} - -// SetHostNetwork sets the HostNetwork field's value. -func (s *EksPodPropertiesDetail) SetHostNetwork(v bool) *EksPodPropertiesDetail { - s.HostNetwork = &v - return s -} - -// SetMetadata sets the Metadata field's value. -func (s *EksPodPropertiesDetail) SetMetadata(v *EksMetadata) *EksPodPropertiesDetail { - s.Metadata = v +// SetLimits sets the Limits field's value. +func (s *EksContainerResourceRequirements) SetLimits(v map[string]*string) *EksContainerResourceRequirements { + s.Limits = v return s } -// SetNodeName sets the NodeName field's value. -func (s *EksPodPropertiesDetail) SetNodeName(v string) *EksPodPropertiesDetail { - s.NodeName = &v +// SetRequests sets the Requests field's value. +func (s *EksContainerResourceRequirements) SetRequests(v map[string]*string) *EksContainerResourceRequirements { + s.Requests = v return s } -// SetPodName sets the PodName field's value. -func (s *EksPodPropertiesDetail) SetPodName(v string) *EksPodPropertiesDetail { - s.PodName = &v - return s -} +// The security context for a job. For more information, see Configure a security +// context for a pod or container (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) +// in the Kubernetes documentation. +type EksContainerSecurityContext struct { + _ struct{} `type:"structure"` -// SetServiceAccountName sets the ServiceAccountName field's value. -func (s *EksPodPropertiesDetail) SetServiceAccountName(v string) *EksPodPropertiesDetail { - s.ServiceAccountName = &v - return s -} + // When this parameter is true, the container is given elevated permissions + // on the host container instance. The level of permissions are similar to the + // root user permissions. The default value is false. This parameter maps to + // privileged policy in the Privileged pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#privileged) + // in the Kubernetes documentation. + Privileged *bool `locationName:"privileged" type:"boolean"` -// SetVolumes sets the Volumes field's value. -func (s *EksPodPropertiesDetail) SetVolumes(v []*EksVolume) *EksPodPropertiesDetail { - s.Volumes = v - return s -} + // When this parameter is true, the container is given read-only access to its + // root file system. The default value is false. This parameter maps to ReadOnlyRootFilesystem + // policy in the Volumes and file systems pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#volumes-and-file-systems) + // in the Kubernetes documentation. + ReadOnlyRootFilesystem *bool `locationName:"readOnlyRootFilesystem" type:"boolean"` -// An object that contains overrides for the Kubernetes pod properties of a -// job. -type EksPodPropertiesOverride struct { - _ struct{} `type:"structure"` + // When this parameter is specified, the container is run as the specified group + // ID (gid). If this parameter isn't specified, the default is the group that's + // specified in the image metadata. This parameter maps to RunAsGroup and MustRunAs + // policy in the Users and groups pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) + // in the Kubernetes documentation. + RunAsGroup *int64 `locationName:"runAsGroup" type:"long"` - // The overrides for the container that's used on the Amazon EKS pod. - Containers []*EksContainerOverride `locationName:"containers" type:"list"` + // When this parameter is specified, the container is run as a user with a uid + // other than 0. If this parameter isn't specified, so such rule is enforced. + // This parameter maps to RunAsUser and MustRunAsNonRoot policy in the Users + // and groups pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) + // in the Kubernetes documentation. + RunAsNonRoot *bool `locationName:"runAsNonRoot" type:"boolean"` - // Metadata about the overrides for the container that's used on the Amazon - // EKS pod. - Metadata *EksMetadata `locationName:"metadata" type:"structure"` + // When this parameter is specified, the container is run as the specified user + // ID (uid). If this parameter isn't specified, the default is the user that's + // specified in the image metadata. This parameter maps to RunAsUser and MustRanAs + // policy in the Users and groups pod security policies (https://kubernetes.io/docs/concepts/security/pod-security-policy/#users-and-groups) + // in the Kubernetes documentation. + RunAsUser *int64 `locationName:"runAsUser" type:"long"` } // String returns the string representation. @@ -8067,7 +8071,7 @@ type EksPodPropertiesOverride struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPodPropertiesOverride) String() string { +func (s EksContainerSecurityContext) String() string { return awsutil.Prettify(s) } @@ -8076,49 +8080,56 @@ func (s EksPodPropertiesOverride) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPodPropertiesOverride) GoString() string { +func (s EksContainerSecurityContext) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EksPodPropertiesOverride) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksPodPropertiesOverride"} - if s.Containers != nil { - for i, v := range s.Containers { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams)) - } - } - } +// SetPrivileged sets the Privileged field's value. +func (s *EksContainerSecurityContext) SetPrivileged(v bool) *EksContainerSecurityContext { + s.Privileged = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetReadOnlyRootFilesystem sets the ReadOnlyRootFilesystem field's value. +func (s *EksContainerSecurityContext) SetReadOnlyRootFilesystem(v bool) *EksContainerSecurityContext { + s.ReadOnlyRootFilesystem = &v + return s } -// SetContainers sets the Containers field's value. -func (s *EksPodPropertiesOverride) SetContainers(v []*EksContainerOverride) *EksPodPropertiesOverride { - s.Containers = v +// SetRunAsGroup sets the RunAsGroup field's value. +func (s *EksContainerSecurityContext) SetRunAsGroup(v int64) *EksContainerSecurityContext { + s.RunAsGroup = &v return s } -// SetMetadata sets the Metadata field's value. -func (s *EksPodPropertiesOverride) SetMetadata(v *EksMetadata) *EksPodPropertiesOverride { - s.Metadata = v +// SetRunAsNonRoot sets the RunAsNonRoot field's value. +func (s *EksContainerSecurityContext) SetRunAsNonRoot(v bool) *EksContainerSecurityContext { + s.RunAsNonRoot = &v return s } -// An object that contains the properties for the Kubernetes resources of a -// job. -type EksProperties struct { +// SetRunAsUser sets the RunAsUser field's value. +func (s *EksContainerSecurityContext) SetRunAsUser(v int64) *EksContainerSecurityContext { + s.RunAsUser = &v + return s +} + +// The volume mounts for a container for an Amazon EKS job. For more information +// about volumes and volume mounts in Kubernetes, see Volumes (https://kubernetes.io/docs/concepts/storage/volumes/) +// in the Kubernetes documentation. +type EksContainerVolumeMount struct { _ struct{} `type:"structure"` - // The properties for the Kubernetes pod resources of a job. - PodProperties *EksPodProperties `locationName:"podProperties" type:"structure"` + // The path on the container where the volume is mounted. + MountPath *string `locationName:"mountPath" type:"string"` + + // The name the volume mount. This must match the name of one of the volumes + // in the pod. + Name *string `locationName:"name" type:"string"` + + // If this value is true, the container has read-only access to the volume. + // Otherwise, the container can write to the volume. The default value is false. + ReadOnly *bool `locationName:"readOnly" type:"boolean"` } // String returns the string representation. @@ -8126,7 +8137,7 @@ type EksProperties struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksProperties) String() string { +func (s EksContainerVolumeMount) String() string { return awsutil.Prettify(s) } @@ -8135,37 +8146,56 @@ func (s EksProperties) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksProperties) GoString() string { +func (s EksContainerVolumeMount) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EksProperties) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksProperties"} - if s.PodProperties != nil { - if err := s.PodProperties.Validate(); err != nil { - invalidParams.AddNested("PodProperties", err.(request.ErrInvalidParams)) - } - } +// SetMountPath sets the MountPath field's value. +func (s *EksContainerVolumeMount) SetMountPath(v string) *EksContainerVolumeMount { + s.MountPath = &v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetName sets the Name field's value. +func (s *EksContainerVolumeMount) SetName(v string) *EksContainerVolumeMount { + s.Name = &v + return s } -// SetPodProperties sets the PodProperties field's value. -func (s *EksProperties) SetPodProperties(v *EksPodProperties) *EksProperties { - s.PodProperties = v +// SetReadOnly sets the ReadOnly field's value. +func (s *EksContainerVolumeMount) SetReadOnly(v bool) *EksContainerVolumeMount { + s.ReadOnly = &v return s } -// An object that contains the details for the Kubernetes resources of a job. -type EksPropertiesDetail struct { +// Specifies the configuration of a Kubernetes emptyDir volume. An emptyDir +// volume is first created when a pod is assigned to a node. It exists as long +// as that pod is running on that node. The emptyDir volume is initially empty. +// All containers in the pod can read and write the files in the emptyDir volume. +// However, the emptyDir volume can be mounted at the same or different paths +// in each container. When a pod is removed from a node for any reason, the +// data in the emptyDir is deleted permanently. For more information, see emptyDir +// (https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) in the Kubernetes +// documentation. +type EksEmptyDir struct { _ struct{} `type:"structure"` - // The properties for the Kubernetes pod resources of a job. - PodProperties *EksPodPropertiesDetail `locationName:"podProperties" type:"structure"` + // The medium to store the volume. The default value is an empty string, which + // uses the storage of the node. + // + // "" + // + // (Default) Use the disk storage of the node. + // + // "Memory" + // + // Use the tmpfs volume that's backed by the RAM of the node. Contents of the + // volume are lost when the node reboots, and any storage on the volume counts + // against the container's memory limit. + Medium *string `locationName:"medium" type:"string"` + + // The maximum size of the volume. By default, there's no maximum size defined. + SizeLimit *string `locationName:"sizeLimit" min:"1" type:"string"` } // String returns the string representation. @@ -8173,7 +8203,7 @@ type EksPropertiesDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPropertiesDetail) String() string { +func (s EksEmptyDir) String() string { return awsutil.Prettify(s) } @@ -8182,22 +8212,45 @@ func (s EksPropertiesDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPropertiesDetail) GoString() string { +func (s EksEmptyDir) GoString() string { return s.String() } -// SetPodProperties sets the PodProperties field's value. -func (s *EksPropertiesDetail) SetPodProperties(v *EksPodPropertiesDetail) *EksPropertiesDetail { - s.PodProperties = v +// Validate inspects the fields of the type to determine if they are valid. +func (s *EksEmptyDir) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksEmptyDir"} + if s.SizeLimit != nil && len(*s.SizeLimit) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SizeLimit", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMedium sets the Medium field's value. +func (s *EksEmptyDir) SetMedium(v string) *EksEmptyDir { + s.Medium = &v return s } -// An object that contains overrides for the Kubernetes resources of a job. -type EksPropertiesOverride struct { +// SetSizeLimit sets the SizeLimit field's value. +func (s *EksEmptyDir) SetSizeLimit(v string) *EksEmptyDir { + s.SizeLimit = &v + return s +} + +// Specifies the configuration of a Kubernetes hostPath volume. A hostPath volume +// mounts an existing file or directory from the host node's filesystem into +// your pod. For more information, see hostPath (https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) +// in the Kubernetes documentation. +type EksHostPath struct { _ struct{} `type:"structure"` - // The overrides for the Kubernetes pod resources of a job. - PodProperties *EksPodPropertiesOverride `locationName:"podProperties" type:"structure"` + // The path of the file or directory on the host to mount into containers on + // the pod. + Path *string `locationName:"path" type:"string"` } // String returns the string representation. @@ -8205,7 +8258,7 @@ type EksPropertiesOverride struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPropertiesOverride) String() string { +func (s EksHostPath) String() string { return awsutil.Prettify(s) } @@ -8214,46 +8267,28 @@ func (s EksPropertiesOverride) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksPropertiesOverride) GoString() string { +func (s EksHostPath) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EksPropertiesOverride) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksPropertiesOverride"} - if s.PodProperties != nil { - if err := s.PodProperties.Validate(); err != nil { - invalidParams.AddNested("PodProperties", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetPodProperties sets the PodProperties field's value. -func (s *EksPropertiesOverride) SetPodProperties(v *EksPodPropertiesOverride) *EksPropertiesOverride { - s.PodProperties = v +// SetPath sets the Path field's value. +func (s *EksHostPath) SetPath(v string) *EksHostPath { + s.Path = &v return s } -// Specifies the configuration of a Kubernetes secret volume. For more information, -// see secret (https://kubernetes.io/docs/concepts/storage/volumes/#secret) +// Describes and uniquely identifies Kubernetes resources. For example, the +// compute environment that a pod runs in or the jobID for a job running in +// the pod. For more information, see Understanding Kubernetes Objects (https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) // in the Kubernetes documentation. -type EksSecret struct { +type EksMetadata struct { _ struct{} `type:"structure"` - // Specifies whether the secret or the secret's keys must be defined. - Optional *bool `locationName:"optional" type:"boolean"` - - // The name of the secret. The name must be allowed as a DNS subdomain name. - // For more information, see DNS subdomain names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) - // in the Kubernetes documentation. - // - // SecretName is a required field - SecretName *string `locationName:"secretName" type:"string" required:"true"` + // Key-value pairs used to identify, sort, and organize cube resources. Can + // contain up to 63 uppercase letters, lowercase letters, numbers, hyphens (-), + // and underscores (_). Labels can be added or modified at any time. Each resource + // can have multiple labels, but each key must be unique for a given object. + Labels map[string]*string `locationName:"labels" type:"map"` } // String returns the string representation. @@ -8261,7 +8296,7 @@ type EksSecret struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksSecret) String() string { +func (s EksMetadata) String() string { return awsutil.Prettify(s) } @@ -8270,60 +8305,71 @@ func (s EksSecret) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksSecret) GoString() string { +func (s EksMetadata) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EksSecret) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksSecret"} - if s.SecretName == nil { - invalidParams.Add(request.NewErrParamRequired("SecretName")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetOptional sets the Optional field's value. -func (s *EksSecret) SetOptional(v bool) *EksSecret { - s.Optional = &v - return s -} - -// SetSecretName sets the SecretName field's value. -func (s *EksSecret) SetSecretName(v string) *EksSecret { - s.SecretName = &v +// SetLabels sets the Labels field's value. +func (s *EksMetadata) SetLabels(v map[string]*string) *EksMetadata { + s.Labels = v return s } -// Specifies an Amazon EKS volume for a job definition. -type EksVolume struct { +// The properties for the pod. +type EksPodProperties struct { _ struct{} `type:"structure"` - // Specifies the configuration of a Kubernetes emptyDir volume. For more information, - // see emptyDir (https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) + // The properties of the container that's used on the Amazon EKS pod. + Containers []*EksContainer `locationName:"containers" type:"list"` + + // The DNS policy for the pod. The default value is ClusterFirst. If the hostNetwork + // parameter is not specified, the default is ClusterFirstWithHostNet. ClusterFirst + // indicates that any DNS query that does not match the configured cluster domain + // suffix is forwarded to the upstream nameserver inherited from the node. For + // more information, see Pod's DNS policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) // in the Kubernetes documentation. - EmptyDir *EksEmptyDir `locationName:"emptyDir" type:"structure"` + // + // Valid values: Default | ClusterFirst | ClusterFirstWithHostNet + DnsPolicy *string `locationName:"dnsPolicy" type:"string"` - // Specifies the configuration of a Kubernetes hostPath volume. For more information, - // see hostPath (https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) + // Indicates if the pod uses the hosts' network IP address. The default value + // is true. Setting this to false enables the Kubernetes pod networking model. + // Most Batch workloads are egress-only and don't require the overhead of IP + // allocation for each pod for incoming connections. For more information, see + // Host namespaces (https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) + // and Pod networking (https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) // in the Kubernetes documentation. - HostPath *EksHostPath `locationName:"hostPath" type:"structure"` + HostNetwork *bool `locationName:"hostNetwork" type:"boolean"` - // The name of the volume. The name must be allowed as a DNS subdomain name. - // For more information, see DNS subdomain names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) + // These containers run before application containers, always runs to completion, + // and must complete successfully before the next container starts. These containers + // are registered with the Amazon EKS Connector agent and persists the registration + // information in the Kubernetes backend data store. For more information, see + // Init Containers (https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) // in the Kubernetes documentation. // - // Name is a required field - Name *string `locationName:"name" type:"string" required:"true"` + // This object is limited to 10 elements + InitContainers []*EksContainer `locationName:"initContainers" type:"list"` - // Specifies the configuration of a Kubernetes secret volume. For more information, - // see secret (https://kubernetes.io/docs/concepts/storage/volumes/#secret) + // Metadata about the Kubernetes pod. For more information, see Understanding + // Kubernetes Objects (https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) // in the Kubernetes documentation. - Secret *EksSecret `locationName:"secret" type:"structure"` + Metadata *EksMetadata `locationName:"metadata" type:"structure"` + + // The name of the service account that's used to run the pod. For more information, + // see Kubernetes service accounts (https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) + // and Configure a Kubernetes service account to assume an IAM role (https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) + // in the Amazon EKS User Guide and Configure service accounts for pods (https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) + // in the Kubernetes documentation. + ServiceAccountName *string `locationName:"serviceAccountName" type:"string"` + + // Indicates if the processes in a container are shared, or visible, to other + // containers in the same pod. For more information, see Share Process Namespace + // between Containers in a Pod (https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/). + ShareProcessNamespace *bool `locationName:"shareProcessNamespace" type:"boolean"` + + // Specifies the volumes for a job definition that uses Amazon EKS resources. + Volumes []*EksVolume `locationName:"volumes" type:"list"` } // String returns the string representation. @@ -8331,7 +8377,7 @@ type EksVolume struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksVolume) String() string { +func (s EksPodProperties) String() string { return awsutil.Prettify(s) } @@ -8340,24 +8386,41 @@ func (s EksVolume) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EksVolume) GoString() string { +func (s EksPodProperties) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *EksVolume) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EksVolume"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) +func (s *EksPodProperties) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksPodProperties"} + if s.Containers != nil { + for i, v := range s.Containers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams)) + } + } } - if s.EmptyDir != nil { - if err := s.EmptyDir.Validate(); err != nil { - invalidParams.AddNested("EmptyDir", err.(request.ErrInvalidParams)) + if s.InitContainers != nil { + for i, v := range s.InitContainers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InitContainers", i), err.(request.ErrInvalidParams)) + } } } - if s.Secret != nil { - if err := s.Secret.Validate(); err != nil { - invalidParams.AddNested("Secret", err.(request.ErrInvalidParams)) + if s.Volumes != nil { + for i, v := range s.Volumes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Volumes", i), err.(request.ErrInvalidParams)) + } } } @@ -8367,113 +8430,116 @@ func (s *EksVolume) Validate() error { return nil } -// SetEmptyDir sets the EmptyDir field's value. -func (s *EksVolume) SetEmptyDir(v *EksEmptyDir) *EksVolume { - s.EmptyDir = v +// SetContainers sets the Containers field's value. +func (s *EksPodProperties) SetContainers(v []*EksContainer) *EksPodProperties { + s.Containers = v return s } -// SetHostPath sets the HostPath field's value. -func (s *EksVolume) SetHostPath(v *EksHostPath) *EksVolume { - s.HostPath = v +// SetDnsPolicy sets the DnsPolicy field's value. +func (s *EksPodProperties) SetDnsPolicy(v string) *EksPodProperties { + s.DnsPolicy = &v return s } -// SetName sets the Name field's value. -func (s *EksVolume) SetName(v string) *EksVolume { - s.Name = &v +// SetHostNetwork sets the HostNetwork field's value. +func (s *EksPodProperties) SetHostNetwork(v bool) *EksPodProperties { + s.HostNetwork = &v return s } -// SetSecret sets the Secret field's value. -func (s *EksVolume) SetSecret(v *EksSecret) *EksVolume { - s.Secret = v +// SetInitContainers sets the InitContainers field's value. +func (s *EksPodProperties) SetInitContainers(v []*EksContainer) *EksPodProperties { + s.InitContainers = v return s } -// The amount of ephemeral storage to allocate 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. -type EphemeralStorage struct { - _ struct{} `type:"structure"` - - // The total amount, in GiB, of ephemeral storage to set for the task. The minimum - // supported value is 21 GiB and the maximum supported value is 200 GiB. - // - // SizeInGiB is a required field - SizeInGiB *int64 `locationName:"sizeInGiB" type:"integer" required:"true"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EphemeralStorage) String() string { - return awsutil.Prettify(s) +// SetMetadata sets the Metadata field's value. +func (s *EksPodProperties) SetMetadata(v *EksMetadata) *EksPodProperties { + s.Metadata = v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s EphemeralStorage) GoString() string { - return s.String() +// SetServiceAccountName sets the ServiceAccountName field's value. +func (s *EksPodProperties) SetServiceAccountName(v string) *EksPodProperties { + s.ServiceAccountName = &v + return s } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EphemeralStorage) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EphemeralStorage"} - if s.SizeInGiB == nil { - invalidParams.Add(request.NewErrParamRequired("SizeInGiB")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetShareProcessNamespace sets the ShareProcessNamespace field's value. +func (s *EksPodProperties) SetShareProcessNamespace(v bool) *EksPodProperties { + s.ShareProcessNamespace = &v + return s } -// SetSizeInGiB sets the SizeInGiB field's value. -func (s *EphemeralStorage) SetSizeInGiB(v int64) *EphemeralStorage { - s.SizeInGiB = &v +// SetVolumes sets the Volumes field's value. +func (s *EksPodProperties) SetVolumes(v []*EksVolume) *EksPodProperties { + s.Volumes = v return s } -// Specifies an array of up to 5 conditions to be met, and an action to take -// (RETRY or EXIT) if all conditions are met. If none of the EvaluateOnExit -// conditions in a RetryStrategy match, then the job is retried. -type EvaluateOnExit struct { +// The details for the pod. +type EksPodPropertiesDetail struct { _ struct{} `type:"structure"` - // Specifies the action to take if all of the specified conditions (onStatusReason, - // onReason, and onExitCode) are met. The values aren't case sensitive. - // - // Action is a required field - Action *string `locationName:"action" type:"string" required:"true" enum:"RetryAction"` + // The properties of the container that's used on the Amazon EKS pod. + Containers []*EksContainerDetail `locationName:"containers" type:"list"` - // Contains a glob pattern to match against the decimal representation of the - // ExitCode returned for a job. The pattern can be up to 512 characters long. - // It can contain only numbers, and can end with an asterisk (*) so that only - // the start of the string needs to be an exact match. + // The DNS policy for the pod. The default value is ClusterFirst. If the hostNetwork + // parameter is not specified, the default is ClusterFirstWithHostNet. ClusterFirst + // indicates that any DNS query that does not match the configured cluster domain + // suffix is forwarded to the upstream nameserver inherited from the node. If + // no value was specified for dnsPolicy in the RegisterJobDefinition (https://docs.aws.amazon.com/batch/latest/APIReference/API_RegisterJobDefinition.html) + // API operation, then no value will be returned for dnsPolicy by either of + // DescribeJobDefinitions (https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobDefinitions.html) + // or DescribeJobs (https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeJobs.html) + // API operations. The pod spec setting will contain either ClusterFirst or + // ClusterFirstWithHostNet, depending on the value of the hostNetwork parameter. + // For more information, see Pod's DNS policy (https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy) + // in the Kubernetes documentation. // - // The string can contain up to 512 characters. - OnExitCode *string `locationName:"onExitCode" type:"string"` + // Valid values: Default | ClusterFirst | ClusterFirstWithHostNet + DnsPolicy *string `locationName:"dnsPolicy" type:"string"` - // Contains a glob pattern to match against the Reason returned for a job. The - // pattern can contain up to 512 characters. It can contain letters, numbers, - // periods (.), colons (:), and white space (including spaces and tabs). It - // can optionally end with an asterisk (*) so that only the start of the string - // needs to be an exact match. - OnReason *string `locationName:"onReason" type:"string"` + // Indicates if the pod uses the hosts' network IP address. The default value + // is true. Setting this to false enables the Kubernetes pod networking model. + // Most Batch workloads are egress-only and don't require the overhead of IP + // allocation for each pod for incoming connections. For more information, see + // Host namespaces (https://kubernetes.io/docs/concepts/security/pod-security-policy/#host-namespaces) + // and Pod networking (https://kubernetes.io/docs/concepts/workloads/pods/#pod-networking) + // in the Kubernetes documentation. + HostNetwork *bool `locationName:"hostNetwork" type:"boolean"` - // Contains a glob pattern to match against the StatusReason returned for a - // job. The pattern can contain up to 512 characters. It can contain letters, - // numbers, periods (.), colons (:), and white spaces (including spaces or tabs). - // It can optionally end with an asterisk (*) so that only the start of the - // string needs to be an exact match. - OnStatusReason *string `locationName:"onStatusReason" type:"string"` + // The container registered with the Amazon EKS Connector agent and persists + // the registration information in the Kubernetes backend data store. + InitContainers []*EksContainerDetail `locationName:"initContainers" type:"list"` + + // Describes and uniquely identifies Kubernetes resources. For example, the + // compute environment that a pod runs in or the jobID for a job running in + // the pod. For more information, see Understanding Kubernetes Objects (https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/) + // in the Kubernetes documentation. + Metadata *EksMetadata `locationName:"metadata" type:"structure"` + + // The name of the node for this job. + NodeName *string `locationName:"nodeName" type:"string"` + + // The name of the pod for this job. + PodName *string `locationName:"podName" type:"string"` + + // The name of the service account that's used to run the pod. For more information, + // see Kubernetes service accounts (https://docs.aws.amazon.com/eks/latest/userguide/service-accounts.html) + // and Configure a Kubernetes service account to assume an IAM role (https://docs.aws.amazon.com/eks/latest/userguide/associate-service-account-role.html) + // in the Amazon EKS User Guide and Configure service accounts for pods (https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/) + // in the Kubernetes documentation. + ServiceAccountName *string `locationName:"serviceAccountName" type:"string"` + + // Indicates if the processes in a container are shared, or visible, to other + // containers in the same pod. For more information, see Share Process Namespace + // between Containers in a Pod (https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/). + ShareProcessNamespace *bool `locationName:"shareProcessNamespace" type:"boolean"` + + // Specifies the volumes for a job definition using Amazon EKS resources. + Volumes []*EksVolume `locationName:"volumes" type:"list"` } // String returns the string representation. @@ -8481,7 +8547,7 @@ type EvaluateOnExit struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EvaluateOnExit) String() string { +func (s EksPodPropertiesDetail) String() string { return awsutil.Prettify(s) } @@ -8490,79 +8556,92 @@ func (s EvaluateOnExit) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s EvaluateOnExit) GoString() string { +func (s EksPodPropertiesDetail) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *EvaluateOnExit) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "EvaluateOnExit"} - if s.Action == nil { - invalidParams.Add(request.NewErrParamRequired("Action")) - } +// SetContainers sets the Containers field's value. +func (s *EksPodPropertiesDetail) SetContainers(v []*EksContainerDetail) *EksPodPropertiesDetail { + s.Containers = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetDnsPolicy sets the DnsPolicy field's value. +func (s *EksPodPropertiesDetail) SetDnsPolicy(v string) *EksPodPropertiesDetail { + s.DnsPolicy = &v + return s } -// SetAction sets the Action field's value. -func (s *EvaluateOnExit) SetAction(v string) *EvaluateOnExit { - s.Action = &v +// SetHostNetwork sets the HostNetwork field's value. +func (s *EksPodPropertiesDetail) SetHostNetwork(v bool) *EksPodPropertiesDetail { + s.HostNetwork = &v return s } -// SetOnExitCode sets the OnExitCode field's value. -func (s *EvaluateOnExit) SetOnExitCode(v string) *EvaluateOnExit { - s.OnExitCode = &v +// SetInitContainers sets the InitContainers field's value. +func (s *EksPodPropertiesDetail) SetInitContainers(v []*EksContainerDetail) *EksPodPropertiesDetail { + s.InitContainers = v return s } -// SetOnReason sets the OnReason field's value. -func (s *EvaluateOnExit) SetOnReason(v string) *EvaluateOnExit { - s.OnReason = &v +// SetMetadata sets the Metadata field's value. +func (s *EksPodPropertiesDetail) SetMetadata(v *EksMetadata) *EksPodPropertiesDetail { + s.Metadata = v return s } -// SetOnStatusReason sets the OnStatusReason field's value. -func (s *EvaluateOnExit) SetOnStatusReason(v string) *EvaluateOnExit { - s.OnStatusReason = &v +// SetNodeName sets the NodeName field's value. +func (s *EksPodPropertiesDetail) SetNodeName(v string) *EksPodPropertiesDetail { + s.NodeName = &v return s } -// The fair share policy for a scheduling policy. -type FairsharePolicy struct { - _ struct{} `type:"structure"` +// SetPodName sets the PodName field's value. +func (s *EksPodPropertiesDetail) SetPodName(v string) *EksPodPropertiesDetail { + s.PodName = &v + return s +} - // A value used to reserve some of the available maximum vCPU for fair share - // identifiers that aren't already used. - // - // The reserved ratio is (computeReservation/100)^ActiveFairShares where ActiveFairShares - // is the number of active fair share identifiers. - // - // For example, a computeReservation value of 50 indicates that Batch reserves - // 50% of the maximum available vCPU if there's only one fair share identifier. - // It reserves 25% if there are two fair share identifiers. It reserves 12.5% - // if there are three fair share identifiers. A computeReservation value of - // 25 indicates that Batch should reserve 25% of the maximum available vCPU - // if there's only one fair share identifier, 6.25% if there are two fair share - // identifiers, and 1.56% if there are three fair share identifiers. - // - // The minimum value is 0 and the maximum value is 99. - ComputeReservation *int64 `locationName:"computeReservation" type:"integer"` +// SetServiceAccountName sets the ServiceAccountName field's value. +func (s *EksPodPropertiesDetail) SetServiceAccountName(v string) *EksPodPropertiesDetail { + s.ServiceAccountName = &v + return s +} - // The amount of time (in seconds) to use to calculate a fair share percentage - // for each fair share identifier in use. A value of zero (0) indicates that - // only current usage is measured. The decay allows for more recently run jobs - // to have more weight than jobs that ran earlier. The maximum supported value - // is 604800 (1 week). - ShareDecaySeconds *int64 `locationName:"shareDecaySeconds" type:"integer"` +// SetShareProcessNamespace sets the ShareProcessNamespace field's value. +func (s *EksPodPropertiesDetail) SetShareProcessNamespace(v bool) *EksPodPropertiesDetail { + s.ShareProcessNamespace = &v + return s +} - // An array of SharedIdentifier objects that contain the weights for the fair - // share identifiers for the fair share policy. Fair share identifiers that - // aren't included have a default weight of 1.0. - ShareDistribution []*ShareAttributes `locationName:"shareDistribution" type:"list"` +// SetVolumes sets the Volumes field's value. +func (s *EksPodPropertiesDetail) SetVolumes(v []*EksVolume) *EksPodPropertiesDetail { + s.Volumes = v + return s +} + +// An object that contains overrides for the Kubernetes pod properties of a +// job. +type EksPodPropertiesOverride struct { + _ struct{} `type:"structure"` + + // The overrides for the container that's used on the Amazon EKS pod. + Containers []*EksContainerOverride `locationName:"containers" type:"list"` + + // The overrides for the conatainers defined in the Amazon EKS pod. These containers + // run before application containers, always runs to completion, and must complete + // successfully before the next container starts. These containers are registered + // with the Amazon EKS Connector agent and persists the registration information + // in the Kubernetes backend data store. For more information, see Init Containers + // (https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) in + // the Kubernetes documentation. + // + // This object is limited to 10 elements + InitContainers []*EksContainerOverride `locationName:"initContainers" type:"list"` + + // Metadata about the overrides for the container that's used on the Amazon + // EKS pod. + Metadata *EksMetadata `locationName:"metadata" type:"structure"` } // String returns the string representation. @@ -8570,7 +8649,7 @@ type FairsharePolicy struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s FairsharePolicy) String() string { +func (s EksPodPropertiesOverride) String() string { return awsutil.Prettify(s) } @@ -8579,20 +8658,30 @@ func (s FairsharePolicy) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s FairsharePolicy) GoString() string { +func (s EksPodPropertiesOverride) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *FairsharePolicy) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "FairsharePolicy"} - if s.ShareDistribution != nil { - for i, v := range s.ShareDistribution { +func (s *EksPodPropertiesOverride) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksPodPropertiesOverride"} + if s.Containers != nil { + for i, v := range s.Containers { if v == nil { continue } if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ShareDistribution", i), err.(request.ErrInvalidParams)) + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams)) + } + } + } + if s.InitContainers != nil { + for i, v := range s.InitContainers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InitContainers", i), err.(request.ErrInvalidParams)) } } } @@ -8603,36 +8692,31 @@ func (s *FairsharePolicy) Validate() error { return nil } -// SetComputeReservation sets the ComputeReservation field's value. -func (s *FairsharePolicy) SetComputeReservation(v int64) *FairsharePolicy { - s.ComputeReservation = &v +// SetContainers sets the Containers field's value. +func (s *EksPodPropertiesOverride) SetContainers(v []*EksContainerOverride) *EksPodPropertiesOverride { + s.Containers = v return s } -// SetShareDecaySeconds sets the ShareDecaySeconds field's value. -func (s *FairsharePolicy) SetShareDecaySeconds(v int64) *FairsharePolicy { - s.ShareDecaySeconds = &v +// SetInitContainers sets the InitContainers field's value. +func (s *EksPodPropertiesOverride) SetInitContainers(v []*EksContainerOverride) *EksPodPropertiesOverride { + s.InitContainers = v return s } -// SetShareDistribution sets the ShareDistribution field's value. -func (s *FairsharePolicy) SetShareDistribution(v []*ShareAttributes) *FairsharePolicy { - s.ShareDistribution = v +// SetMetadata sets the Metadata field's value. +func (s *EksPodPropertiesOverride) SetMetadata(v *EksMetadata) *EksPodPropertiesOverride { + s.Metadata = v return s } -// The platform configuration for jobs that are running on Fargate resources. -// Jobs that run on EC2 resources must not specify this parameter. -type FargatePlatformConfiguration struct { +// An object that contains the properties for the Kubernetes resources of a +// job. +type EksProperties struct { _ struct{} `type:"structure"` - // The Fargate platform version where the jobs are running. A platform version - // is specified only for jobs that are running on Fargate resources. If one - // isn't specified, the LATEST platform version is used by default. This uses - // a recent, approved version of the Fargate platform for compute resources. - // For more information, see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) - // in the Amazon Elastic Container Service Developer Guide. - PlatformVersion *string `locationName:"platformVersion" type:"string"` + // The properties for the Kubernetes pod resources of a job. + PodProperties *EksPodProperties `locationName:"podProperties" type:"structure"` } // String returns the string representation. @@ -8640,7 +8724,7 @@ type FargatePlatformConfiguration struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s FargatePlatformConfiguration) String() string { +func (s EksProperties) String() string { return awsutil.Prettify(s) } @@ -8649,34 +8733,37 @@ func (s FargatePlatformConfiguration) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s FargatePlatformConfiguration) GoString() string { +func (s EksProperties) GoString() string { return s.String() } -// SetPlatformVersion sets the PlatformVersion field's value. -func (s *FargatePlatformConfiguration) SetPlatformVersion(v string) *FargatePlatformConfiguration { - s.PlatformVersion = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *EksProperties) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksProperties"} + if s.PodProperties != nil { + if err := s.PodProperties.Validate(); err != nil { + invalidParams.AddNested("PodProperties", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPodProperties sets the PodProperties field's value. +func (s *EksProperties) SetPodProperties(v *EksPodProperties) *EksProperties { + s.PodProperties = v return s } -// Determine whether your data volume persists on the host container instance -// and where it's stored. If this parameter is empty, then the Docker daemon -// assigns a host path for your data volume. However, the data isn't guaranteed -// to persist after the containers that are associated with it stop running. -type Host struct { +// An object that contains the details for the Kubernetes resources of a job. +type EksPropertiesDetail struct { _ struct{} `type:"structure"` - // The path on the host container instance that's presented to the container. - // If this parameter is empty, then the Docker daemon has assigned a host path - // for you. If this parameter contains a file location, then the data volume - // persists at the specified location on the host container instance until you - // delete it manually. If the source path location doesn't exist on the host - // container instance, the Docker daemon creates it. If the location does exist, - // the contents of the source path folder are exported. - // - // This parameter isn't applicable to jobs that run on Fargate resources. Don't - // provide this for these jobs. - SourcePath *string `locationName:"sourcePath" type:"string"` + // The properties for the Kubernetes pod resources of a job. + PodProperties *EksPodPropertiesDetail `locationName:"podProperties" type:"structure"` } // String returns the string representation. @@ -8684,7 +8771,7 @@ type Host struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Host) String() string { +func (s EksPropertiesDetail) String() string { return awsutil.Prettify(s) } @@ -8693,105 +8780,22 @@ func (s Host) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Host) GoString() string { +func (s EksPropertiesDetail) GoString() string { return s.String() } -// SetSourcePath sets the SourcePath field's value. -func (s *Host) SetSourcePath(v string) *Host { - s.SourcePath = &v +// SetPodProperties sets the PodProperties field's value. +func (s *EksPropertiesDetail) SetPodProperties(v *EksPodPropertiesDetail) *EksPropertiesDetail { + s.PodProperties = v return s } -// An object that represents an Batch job definition. -type JobDefinition struct { +// An object that contains overrides for the Kubernetes resources of a job. +type EksPropertiesOverride struct { _ struct{} `type:"structure"` - // The orchestration type of the compute environment. The valid values are ECS - // (default) or EKS. - ContainerOrchestrationType *string `locationName:"containerOrchestrationType" type:"string" enum:"OrchestrationType"` - - // An object with various properties specific to Amazon ECS based jobs. Valid - // values are containerProperties, eksProperties, and nodeProperties. Only one - // can be specified. - ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"` - - // An object with various properties that are specific to Amazon EKS based jobs. - // Valid values are containerProperties, eksProperties, and nodeProperties. - // Only one can be specified. - EksProperties *EksProperties `locationName:"eksProperties" type:"structure"` - - // The Amazon Resource Name (ARN) for the job definition. - // - // JobDefinitionArn is a required field - JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"` - - // The name of the job definition. - // - // JobDefinitionName is a required field - JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"` - - // An object with various properties that are specific to multi-node parallel - // jobs. Valid values are containerProperties, eksProperties, and nodeProperties. - // Only one can be specified. - // - // If the job runs on Fargate resources, don't specify nodeProperties. Use containerProperties - // instead. - NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"` - - // Default parameters or parameter substitution placeholders that are set in - // the job definition. Parameters are specified as a key-value pair mapping. - // Parameters in a SubmitJob request override any corresponding parameter defaults - // from the job definition. For more information about specifying parameters, - // see Job definition parameters (https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html) - // in the Batch User Guide. - Parameters map[string]*string `locationName:"parameters" type:"map"` - - // The platform capabilities required by the job definition. If no value is - // specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE. - PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list" enum:"PlatformCapability"` - - // Specifies whether to propagate the tags from the job or job definition to - // the corresponding Amazon ECS task. If no value is specified, the tags aren't - // propagated. Tags can only be propagated to the tasks when the tasks are created. - // For tags with the same name, job tags are given priority over job definitions - // tags. If the total number of combined tags from the job and job definition - // is over 50, the job is moved to the FAILED state. - PropagateTags *bool `locationName:"propagateTags" type:"boolean"` - - // The retry strategy to use for failed jobs that are submitted with this job - // definition. - RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` - - // The revision of the job definition. - // - // Revision is a required field - Revision *int64 `locationName:"revision" type:"integer" required:"true"` - - // The scheduling priority of the job definition. This only affects jobs in - // job queues with a fair share policy. Jobs with a higher scheduling priority - // are scheduled before jobs with a lower scheduling priority. - SchedulingPriority *int64 `locationName:"schedulingPriority" type:"integer"` - - // The status of the job definition. - Status *string `locationName:"status" type:"string"` - - // The tags that are applied to the job definition. - Tags map[string]*string `locationName:"tags" min:"1" type:"map"` - - // The timeout time for jobs that are submitted with this job definition. After - // the amount of time you specify passes, Batch terminates your jobs if they - // aren't finished. - Timeout *JobTimeout `locationName:"timeout" type:"structure"` - - // The type of job definition. It's either container or multinode. If the job - // is run on Fargate resources, then multinode isn't supported. For more information - // about multi-node parallel jobs, see Creating a multi-node parallel job definition - // (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html) - // in the Batch User Guide. - // - // Type is a required field - Type *string `locationName:"type" type:"string" required:"true"` + // The overrides for the Kubernetes pod resources of a job. + PodProperties *EksPodPropertiesOverride `locationName:"podProperties" type:"structure"` } // String returns the string representation. @@ -8799,7 +8803,7 @@ type JobDefinition struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDefinition) String() string { +func (s EksPropertiesOverride) String() string { return awsutil.Prettify(s) } @@ -8808,115 +8812,194 @@ func (s JobDefinition) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDefinition) GoString() string { +func (s EksPropertiesOverride) GoString() string { return s.String() } -// SetContainerOrchestrationType sets the ContainerOrchestrationType field's value. -func (s *JobDefinition) SetContainerOrchestrationType(v string) *JobDefinition { - s.ContainerOrchestrationType = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *EksPropertiesOverride) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksPropertiesOverride"} + if s.PodProperties != nil { + if err := s.PodProperties.Validate(); err != nil { + invalidParams.AddNested("PodProperties", err.(request.ErrInvalidParams)) + } + } -// SetContainerProperties sets the ContainerProperties field's value. -func (s *JobDefinition) SetContainerProperties(v *ContainerProperties) *JobDefinition { - s.ContainerProperties = v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetEksProperties sets the EksProperties field's value. -func (s *JobDefinition) SetEksProperties(v *EksProperties) *JobDefinition { - s.EksProperties = v +// SetPodProperties sets the PodProperties field's value. +func (s *EksPropertiesOverride) SetPodProperties(v *EksPodPropertiesOverride) *EksPropertiesOverride { + s.PodProperties = v return s } -// SetJobDefinitionArn sets the JobDefinitionArn field's value. -func (s *JobDefinition) SetJobDefinitionArn(v string) *JobDefinition { - s.JobDefinitionArn = &v - return s +// Specifies the configuration of a Kubernetes secret volume. For more information, +// see secret (https://kubernetes.io/docs/concepts/storage/volumes/#secret) +// in the Kubernetes documentation. +type EksSecret struct { + _ struct{} `type:"structure"` + + // Specifies whether the secret or the secret's keys must be defined. + Optional *bool `locationName:"optional" type:"boolean"` + + // The name of the secret. The name must be allowed as a DNS subdomain name. + // For more information, see DNS subdomain names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) + // in the Kubernetes documentation. + // + // SecretName is a required field + SecretName *string `locationName:"secretName" type:"string" required:"true"` } -// SetJobDefinitionName sets the JobDefinitionName field's value. -func (s *JobDefinition) SetJobDefinitionName(v string) *JobDefinition { - s.JobDefinitionName = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksSecret) String() string { + return awsutil.Prettify(s) } -// SetNodeProperties sets the NodeProperties field's value. -func (s *JobDefinition) SetNodeProperties(v *NodeProperties) *JobDefinition { - s.NodeProperties = v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksSecret) GoString() string { + return s.String() } -// SetParameters sets the Parameters field's value. -func (s *JobDefinition) SetParameters(v map[string]*string) *JobDefinition { - s.Parameters = v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *EksSecret) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksSecret"} + if s.SecretName == nil { + invalidParams.Add(request.NewErrParamRequired("SecretName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetPlatformCapabilities sets the PlatformCapabilities field's value. -func (s *JobDefinition) SetPlatformCapabilities(v []*string) *JobDefinition { - s.PlatformCapabilities = v +// SetOptional sets the Optional field's value. +func (s *EksSecret) SetOptional(v bool) *EksSecret { + s.Optional = &v return s } -// SetPropagateTags sets the PropagateTags field's value. -func (s *JobDefinition) SetPropagateTags(v bool) *JobDefinition { - s.PropagateTags = &v +// SetSecretName sets the SecretName field's value. +func (s *EksSecret) SetSecretName(v string) *EksSecret { + s.SecretName = &v return s } -// SetRetryStrategy sets the RetryStrategy field's value. -func (s *JobDefinition) SetRetryStrategy(v *RetryStrategy) *JobDefinition { - s.RetryStrategy = v - return s +// Specifies an Amazon EKS volume for a job definition. +type EksVolume struct { + _ struct{} `type:"structure"` + + // Specifies the configuration of a Kubernetes emptyDir volume. For more information, + // see emptyDir (https://kubernetes.io/docs/concepts/storage/volumes/#emptydir) + // in the Kubernetes documentation. + EmptyDir *EksEmptyDir `locationName:"emptyDir" type:"structure"` + + // Specifies the configuration of a Kubernetes hostPath volume. For more information, + // see hostPath (https://kubernetes.io/docs/concepts/storage/volumes/#hostpath) + // in the Kubernetes documentation. + HostPath *EksHostPath `locationName:"hostPath" type:"structure"` + + // The name of the volume. The name must be allowed as a DNS subdomain name. + // For more information, see DNS subdomain names (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names) + // in the Kubernetes documentation. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // Specifies the configuration of a Kubernetes secret volume. For more information, + // see secret (https://kubernetes.io/docs/concepts/storage/volumes/#secret) + // in the Kubernetes documentation. + Secret *EksSecret `locationName:"secret" type:"structure"` } -// SetRevision sets the Revision field's value. -func (s *JobDefinition) SetRevision(v int64) *JobDefinition { - s.Revision = &v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksVolume) String() string { + return awsutil.Prettify(s) } -// SetSchedulingPriority sets the SchedulingPriority field's value. -func (s *JobDefinition) SetSchedulingPriority(v int64) *JobDefinition { - s.SchedulingPriority = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EksVolume) GoString() string { + return s.String() } -// SetStatus sets the Status field's value. -func (s *JobDefinition) SetStatus(v string) *JobDefinition { - s.Status = &v +// Validate inspects the fields of the type to determine if they are valid. +func (s *EksVolume) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EksVolume"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.EmptyDir != nil { + if err := s.EmptyDir.Validate(); err != nil { + invalidParams.AddNested("EmptyDir", err.(request.ErrInvalidParams)) + } + } + if s.Secret != nil { + if err := s.Secret.Validate(); err != nil { + invalidParams.AddNested("Secret", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEmptyDir sets the EmptyDir field's value. +func (s *EksVolume) SetEmptyDir(v *EksEmptyDir) *EksVolume { + s.EmptyDir = v return s } -// SetTags sets the Tags field's value. -func (s *JobDefinition) SetTags(v map[string]*string) *JobDefinition { - s.Tags = v +// SetHostPath sets the HostPath field's value. +func (s *EksVolume) SetHostPath(v *EksHostPath) *EksVolume { + s.HostPath = v return s } -// SetTimeout sets the Timeout field's value. -func (s *JobDefinition) SetTimeout(v *JobTimeout) *JobDefinition { - s.Timeout = v +// SetName sets the Name field's value. +func (s *EksVolume) SetName(v string) *EksVolume { + s.Name = &v return s } -// SetType sets the Type field's value. -func (s *JobDefinition) SetType(v string) *JobDefinition { - s.Type = &v +// SetSecret sets the Secret field's value. +func (s *EksVolume) SetSecret(v *EksSecret) *EksVolume { + s.Secret = v return s } -// An object that represents an Batch job dependency. -type JobDependency struct { +// The amount of ephemeral storage to allocate 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. +type EphemeralStorage struct { _ struct{} `type:"structure"` - // The job ID of the Batch job that's associated with this dependency. - JobId *string `locationName:"jobId" type:"string"` - - // The type of the job dependency. - Type *string `locationName:"type" type:"string" enum:"ArrayJobDependency"` + // The total amount, in GiB, of ephemeral storage to set for the task. The minimum + // supported value is 21 GiB and the maximum supported value is 200 GiB. + // + // SizeInGiB is a required field + SizeInGiB *int64 `locationName:"sizeInGiB" type:"integer" required:"true"` } // String returns the string representation. @@ -8924,7 +9007,7 @@ type JobDependency struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDependency) String() string { +func (s EphemeralStorage) String() string { return awsutil.Prettify(s) } @@ -8933,149 +9016,151 @@ func (s JobDependency) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDependency) GoString() string { +func (s EphemeralStorage) GoString() string { return s.String() } -// SetJobId sets the JobId field's value. -func (s *JobDependency) SetJobId(v string) *JobDependency { - s.JobId = &v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *EphemeralStorage) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EphemeralStorage"} + if s.SizeInGiB == nil { + invalidParams.Add(request.NewErrParamRequired("SizeInGiB")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetType sets the Type field's value. -func (s *JobDependency) SetType(v string) *JobDependency { - s.Type = &v +// SetSizeInGiB sets the SizeInGiB field's value. +func (s *EphemeralStorage) SetSizeInGiB(v int64) *EphemeralStorage { + s.SizeInGiB = &v return s } -// An object that represents an Batch job. -type JobDetail struct { +// Specifies an array of up to 5 conditions to be met, and an action to take +// (RETRY or EXIT) if all conditions are met. If none of the EvaluateOnExit +// conditions in a RetryStrategy match, then the job is retried. +type EvaluateOnExit struct { _ struct{} `type:"structure"` - // The array properties of the job, if it's an array job. - ArrayProperties *ArrayPropertiesDetail `locationName:"arrayProperties" type:"structure"` - - // A list of job attempts that are associated with this job. - Attempts []*AttemptDetail `locationName:"attempts" type:"list"` - - // An object that represents the details for the container that's associated - // with the job. - Container *ContainerDetail `locationName:"container" type:"structure"` + // Specifies the action to take if all of the specified conditions (onStatusReason, + // onReason, and onExitCode) are met. The values aren't case sensitive. + // + // Action is a required field + Action *string `locationName:"action" type:"string" required:"true" enum:"RetryAction"` - // The Unix timestamp (in milliseconds) for when the job was created. For non-array - // jobs and parent array jobs, this is when the job entered the SUBMITTED state. - // This is specifically at the time SubmitJob was called. For array child jobs, - // this is when the child job was spawned by its parent and entered the PENDING - // state. - CreatedAt *int64 `locationName:"createdAt" type:"long"` + // Contains a glob pattern to match against the decimal representation of the + // ExitCode returned for a job. The pattern can be up to 512 characters long. + // It can contain only numbers, and can end with an asterisk (*) so that only + // the start of the string needs to be an exact match. + // + // The string can contain up to 512 characters. + OnExitCode *string `locationName:"onExitCode" type:"string"` - // A list of job IDs that this job depends on. - DependsOn []*JobDependency `locationName:"dependsOn" type:"list"` + // Contains a glob pattern to match against the Reason returned for a job. The + // pattern can contain up to 512 characters. It can contain letters, numbers, + // periods (.), colons (:), and white space (including spaces and tabs). It + // can optionally end with an asterisk (*) so that only the start of the string + // needs to be an exact match. + OnReason *string `locationName:"onReason" type:"string"` - // A list of job attempts that are associated with this job. - EksAttempts []*EksAttemptDetail `locationName:"eksAttempts" type:"list"` - - // An object with various properties that are specific to Amazon EKS based jobs. - // Only one of container, eksProperties, or nodeDetails is specified. - EksProperties *EksPropertiesDetail `locationName:"eksProperties" type:"structure"` - - // Indicates whether the job is canceled. - IsCancelled *bool `locationName:"isCancelled" type:"boolean"` - - // Indicates whether the job is terminated. - IsTerminated *bool `locationName:"isTerminated" type:"boolean"` - - // The Amazon Resource Name (ARN) of the job. - JobArn *string `locationName:"jobArn" type:"string"` - - // The Amazon Resource Name (ARN) of the job definition that this job uses. - // - // JobDefinition is a required field - JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"` - - // The job ID. - // - // JobId is a required field - JobId *string `locationName:"jobId" type:"string" required:"true"` - - // The job name. - // - // JobName is a required field - JobName *string `locationName:"jobName" type:"string" required:"true"` + // Contains a glob pattern to match against the StatusReason returned for a + // job. The pattern can contain up to 512 characters. It can contain letters, + // numbers, periods (.), colons (:), and white spaces (including spaces or tabs). + // It can optionally end with an asterisk (*) so that only the start of the + // string needs to be an exact match. + OnStatusReason *string `locationName:"onStatusReason" type:"string"` +} - // The Amazon Resource Name (ARN) of the job queue that the job is associated - // with. - // - // JobQueue is a required field - JobQueue *string `locationName:"jobQueue" type:"string" required:"true"` +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EvaluateOnExit) String() string { + return awsutil.Prettify(s) +} - // An object that represents the details of a node that's associated with a - // multi-node parallel job. - NodeDetails *NodeDetails `locationName:"nodeDetails" type:"structure"` +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s EvaluateOnExit) GoString() string { + return s.String() +} - // An object that represents the node properties of a multi-node parallel job. - // - // This isn't applicable to jobs that are running on Fargate resources. - NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"` +// Validate inspects the fields of the type to determine if they are valid. +func (s *EvaluateOnExit) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "EvaluateOnExit"} + if s.Action == nil { + invalidParams.Add(request.NewErrParamRequired("Action")) + } - // Additional parameters that are passed to the job that replace parameter substitution - // placeholders or override any corresponding parameter defaults from the job - // definition. - Parameters map[string]*string `locationName:"parameters" type:"map"` + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} - // The platform capabilities required by the job definition. If no value is - // specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE. - PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list" enum:"PlatformCapability"` +// SetAction sets the Action field's value. +func (s *EvaluateOnExit) SetAction(v string) *EvaluateOnExit { + s.Action = &v + return s +} - // Specifies whether to propagate the tags from the job or job definition to - // the corresponding Amazon ECS task. If no value is specified, the tags aren't - // propagated. Tags can only be propagated to the tasks when the tasks are created. - // For tags with the same name, job tags are given priority over job definitions - // tags. If the total number of combined tags from the job and job definition - // is over 50, the job is moved to the FAILED state. - PropagateTags *bool `locationName:"propagateTags" type:"boolean"` +// SetOnExitCode sets the OnExitCode field's value. +func (s *EvaluateOnExit) SetOnExitCode(v string) *EvaluateOnExit { + s.OnExitCode = &v + return s +} - // The retry strategy to use for this job if an attempt fails. - RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` +// SetOnReason sets the OnReason field's value. +func (s *EvaluateOnExit) SetOnReason(v string) *EvaluateOnExit { + s.OnReason = &v + return s +} - // The scheduling policy of the job definition. This only affects jobs in job - // queues with a fair share policy. Jobs with a higher scheduling priority are - // scheduled before jobs with a lower scheduling priority. - SchedulingPriority *int64 `locationName:"schedulingPriority" type:"integer"` +// SetOnStatusReason sets the OnStatusReason field's value. +func (s *EvaluateOnExit) SetOnStatusReason(v string) *EvaluateOnExit { + s.OnStatusReason = &v + return s +} - // The share identifier for the job. - ShareIdentifier *string `locationName:"shareIdentifier" type:"string"` +// The fair share policy for a scheduling policy. +type FairsharePolicy struct { + _ struct{} `type:"structure"` - // The Unix timestamp (in milliseconds) for when the job was started. More specifically, - // it's when the job transitioned from the STARTING state to the RUNNING state. + // A value used to reserve some of the available maximum vCPU for fair share + // identifiers that aren't already used. // - // StartedAt is a required field - StartedAt *int64 `locationName:"startedAt" type:"long" required:"true"` - - // The current status for the job. + // The reserved ratio is (computeReservation/100)^ActiveFairShares where ActiveFairShares + // is the number of active fair share identifiers. // - // If your jobs don't progress to STARTING, see Jobs stuck in RUNNABLE status - // (https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#job_stuck_in_runnable) - // in the troubleshooting section of the Batch User Guide. + // For example, a computeReservation value of 50 indicates that Batch reserves + // 50% of the maximum available vCPU if there's only one fair share identifier. + // It reserves 25% if there are two fair share identifiers. It reserves 12.5% + // if there are three fair share identifiers. A computeReservation value of + // 25 indicates that Batch should reserve 25% of the maximum available vCPU + // if there's only one fair share identifier, 6.25% if there are two fair share + // identifiers, and 1.56% if there are three fair share identifiers. // - // Status is a required field - Status *string `locationName:"status" type:"string" required:"true" enum:"JobStatus"` - - // A short, human-readable string to provide more details for the current status - // of the job. - StatusReason *string `locationName:"statusReason" type:"string"` - - // The Unix timestamp (in milliseconds) for when the job was stopped. More specifically, - // it's when the job transitioned from the RUNNING state to a terminal state, - // such as SUCCEEDED or FAILED. - StoppedAt *int64 `locationName:"stoppedAt" type:"long"` + // The minimum value is 0 and the maximum value is 99. + ComputeReservation *int64 `locationName:"computeReservation" type:"integer"` - // The tags that are applied to the job. - Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The amount of time (in seconds) to use to calculate a fair share percentage + // for each fair share identifier in use. A value of zero (0) indicates that + // only current usage is measured. The decay allows for more recently run jobs + // to have more weight than jobs that ran earlier. The maximum supported value + // is 604800 (1 week). + ShareDecaySeconds *int64 `locationName:"shareDecaySeconds" type:"integer"` - // The timeout configuration for the job. - Timeout *JobTimeout `locationName:"timeout" type:"structure"` + // An array of SharedIdentifier objects that contain the weights for the fair + // share identifiers for the fair share policy. Fair share identifiers that + // aren't included have a default weight of 1.0. + ShareDistribution []*ShareAttributes `locationName:"shareDistribution" type:"list"` } // String returns the string representation. @@ -9083,7 +9168,7 @@ type JobDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDetail) String() string { +func (s FairsharePolicy) String() string { return awsutil.Prettify(s) } @@ -9092,240 +9177,363 @@ func (s JobDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobDetail) GoString() string { +func (s FairsharePolicy) GoString() string { return s.String() } -// SetArrayProperties sets the ArrayProperties field's value. -func (s *JobDetail) SetArrayProperties(v *ArrayPropertiesDetail) *JobDetail { - s.ArrayProperties = v - return s +// Validate inspects the fields of the type to determine if they are valid. +func (s *FairsharePolicy) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "FairsharePolicy"} + if s.ShareDistribution != nil { + for i, v := range s.ShareDistribution { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ShareDistribution", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetAttempts sets the Attempts field's value. -func (s *JobDetail) SetAttempts(v []*AttemptDetail) *JobDetail { - s.Attempts = v +// SetComputeReservation sets the ComputeReservation field's value. +func (s *FairsharePolicy) SetComputeReservation(v int64) *FairsharePolicy { + s.ComputeReservation = &v return s } -// SetContainer sets the Container field's value. -func (s *JobDetail) SetContainer(v *ContainerDetail) *JobDetail { - s.Container = v +// SetShareDecaySeconds sets the ShareDecaySeconds field's value. +func (s *FairsharePolicy) SetShareDecaySeconds(v int64) *FairsharePolicy { + s.ShareDecaySeconds = &v return s } -// SetCreatedAt sets the CreatedAt field's value. -func (s *JobDetail) SetCreatedAt(v int64) *JobDetail { - s.CreatedAt = &v +// SetShareDistribution sets the ShareDistribution field's value. +func (s *FairsharePolicy) SetShareDistribution(v []*ShareAttributes) *FairsharePolicy { + s.ShareDistribution = v return s } -// SetDependsOn sets the DependsOn field's value. -func (s *JobDetail) SetDependsOn(v []*JobDependency) *JobDetail { - s.DependsOn = v - return s +// The platform configuration for jobs that are running on Fargate resources. +// Jobs that run on Amazon EC2 resources must not specify this parameter. +type FargatePlatformConfiguration struct { + _ struct{} `type:"structure"` + + // The Fargate platform version where the jobs are running. A platform version + // is specified only for jobs that are running on Fargate resources. If one + // isn't specified, the LATEST platform version is used by default. This uses + // a recent, approved version of the Fargate platform for compute resources. + // For more information, see Fargate platform versions (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html) + // in the Amazon Elastic Container Service Developer Guide. + PlatformVersion *string `locationName:"platformVersion" type:"string"` } -// SetEksAttempts sets the EksAttempts field's value. -func (s *JobDetail) SetEksAttempts(v []*EksAttemptDetail) *JobDetail { - s.EksAttempts = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FargatePlatformConfiguration) String() string { + return awsutil.Prettify(s) } -// SetEksProperties sets the EksProperties field's value. -func (s *JobDetail) SetEksProperties(v *EksPropertiesDetail) *JobDetail { - s.EksProperties = v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s FargatePlatformConfiguration) GoString() string { + return s.String() } -// SetIsCancelled sets the IsCancelled field's value. -func (s *JobDetail) SetIsCancelled(v bool) *JobDetail { - s.IsCancelled = &v +// SetPlatformVersion sets the PlatformVersion field's value. +func (s *FargatePlatformConfiguration) SetPlatformVersion(v string) *FargatePlatformConfiguration { + s.PlatformVersion = &v return s } -// SetIsTerminated sets the IsTerminated field's value. -func (s *JobDetail) SetIsTerminated(v bool) *JobDetail { - s.IsTerminated = &v +// Determine whether your data volume persists on the host container instance +// and where it's stored. If this parameter is empty, then the Docker daemon +// assigns a host path for your data volume. However, the data isn't guaranteed +// to persist after the containers that are associated with it stop running. +type Host struct { + _ struct{} `type:"structure"` + + // The path on the host container instance that's presented to the container. + // If this parameter is empty, then the Docker daemon has assigned a host path + // for you. If this parameter contains a file location, then the data volume + // persists at the specified location on the host container instance until you + // delete it manually. If the source path location doesn't exist on the host + // container instance, the Docker daemon creates it. If the location does exist, + // the contents of the source path folder are exported. + // + // This parameter isn't applicable to jobs that run on Fargate resources. Don't + // provide this for these jobs. + SourcePath *string `locationName:"sourcePath" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Host) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Host) GoString() string { + return s.String() +} + +// SetSourcePath sets the SourcePath field's value. +func (s *Host) SetSourcePath(v string) *Host { + s.SourcePath = &v return s } -// SetJobArn sets the JobArn field's value. -func (s *JobDetail) SetJobArn(v string) *JobDetail { - s.JobArn = &v +// An object that represents an Batch job definition. +type JobDefinition struct { + _ struct{} `type:"structure"` + + // The orchestration type of the compute environment. The valid values are ECS + // (default) or EKS. + ContainerOrchestrationType *string `locationName:"containerOrchestrationType" type:"string" enum:"OrchestrationType"` + + // An object with properties specific to Amazon ECS-based jobs. When containerProperties + // is used in the job definition, it can't be used in addition to eksProperties, + // ecsProperties, or nodeProperties. + ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"` + + // An object that contains the properties for the Amazon ECS resources of a + // job.When ecsProperties is used in the job definition, it can't be used in + // addition to containerProperties, eksProperties, or nodeProperties. + EcsProperties *EcsProperties `locationName:"ecsProperties" type:"structure"` + + // An object with properties that are specific to Amazon EKS-based jobs. When + // eksProperties is used in the job definition, it can't be used in addition + // to containerProperties, ecsProperties, or nodeProperties. + EksProperties *EksProperties `locationName:"eksProperties" type:"structure"` + + // The Amazon Resource Name (ARN) for the job definition. + // + // JobDefinitionArn is a required field + JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"` + + // The name of the job definition. + // + // JobDefinitionName is a required field + JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"` + + // An object with properties that are specific to multi-node parallel jobs. + // When nodeProperties is used in the job definition, it can't be used in addition + // to containerProperties, ecsProperties, or eksProperties. + // + // If the job runs on Fargate resources, don't specify nodeProperties. Use containerProperties + // instead. + NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"` + + // Default parameters or parameter substitution placeholders that are set in + // the job definition. Parameters are specified as a key-value pair mapping. + // Parameters in a SubmitJob request override any corresponding parameter defaults + // from the job definition. For more information about specifying parameters, + // see Job definition parameters (https://docs.aws.amazon.com/batch/latest/userguide/job_definition_parameters.html) + // in the Batch User Guide. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // The platform capabilities required by the job definition. If no value is + // specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE. + PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list" enum:"PlatformCapability"` + + // Specifies whether to propagate the tags from the job or job definition to + // the corresponding Amazon ECS task. If no value is specified, the tags aren't + // propagated. Tags can only be propagated to the tasks when the tasks are created. + // For tags with the same name, job tags are given priority over job definitions + // tags. If the total number of combined tags from the job and job definition + // is over 50, the job is moved to the FAILED state. + PropagateTags *bool `locationName:"propagateTags" type:"boolean"` + + // The retry strategy to use for failed jobs that are submitted with this job + // definition. + RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` + + // The revision of the job definition. + // + // Revision is a required field + Revision *int64 `locationName:"revision" type:"integer" required:"true"` + + // The scheduling priority of the job definition. This only affects jobs in + // job queues with a fair share policy. Jobs with a higher scheduling priority + // are scheduled before jobs with a lower scheduling priority. + SchedulingPriority *int64 `locationName:"schedulingPriority" type:"integer"` + + // The status of the job definition. + Status *string `locationName:"status" type:"string"` + + // The tags that are applied to the job definition. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + + // The timeout time for jobs that are submitted with this job definition. After + // the amount of time you specify passes, Batch terminates your jobs if they + // aren't finished. + Timeout *JobTimeout `locationName:"timeout" type:"structure"` + + // The type of job definition. It's either container or multinode. If the job + // is run on Fargate resources, then multinode isn't supported. For more information + // about multi-node parallel jobs, see Creating a multi-node parallel job definition + // (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html) + // in the Batch User Guide. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s JobDefinition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s JobDefinition) GoString() string { + return s.String() +} + +// SetContainerOrchestrationType sets the ContainerOrchestrationType field's value. +func (s *JobDefinition) SetContainerOrchestrationType(v string) *JobDefinition { + s.ContainerOrchestrationType = &v return s } -// SetJobDefinition sets the JobDefinition field's value. -func (s *JobDetail) SetJobDefinition(v string) *JobDetail { - s.JobDefinition = &v +// SetContainerProperties sets the ContainerProperties field's value. +func (s *JobDefinition) SetContainerProperties(v *ContainerProperties) *JobDefinition { + s.ContainerProperties = v return s } -// SetJobId sets the JobId field's value. -func (s *JobDetail) SetJobId(v string) *JobDetail { - s.JobId = &v +// SetEcsProperties sets the EcsProperties field's value. +func (s *JobDefinition) SetEcsProperties(v *EcsProperties) *JobDefinition { + s.EcsProperties = v return s } -// SetJobName sets the JobName field's value. -func (s *JobDetail) SetJobName(v string) *JobDetail { - s.JobName = &v +// SetEksProperties sets the EksProperties field's value. +func (s *JobDefinition) SetEksProperties(v *EksProperties) *JobDefinition { + s.EksProperties = v return s } -// SetJobQueue sets the JobQueue field's value. -func (s *JobDetail) SetJobQueue(v string) *JobDetail { - s.JobQueue = &v +// SetJobDefinitionArn sets the JobDefinitionArn field's value. +func (s *JobDefinition) SetJobDefinitionArn(v string) *JobDefinition { + s.JobDefinitionArn = &v return s } -// SetNodeDetails sets the NodeDetails field's value. -func (s *JobDetail) SetNodeDetails(v *NodeDetails) *JobDetail { - s.NodeDetails = v +// SetJobDefinitionName sets the JobDefinitionName field's value. +func (s *JobDefinition) SetJobDefinitionName(v string) *JobDefinition { + s.JobDefinitionName = &v return s } // SetNodeProperties sets the NodeProperties field's value. -func (s *JobDetail) SetNodeProperties(v *NodeProperties) *JobDetail { +func (s *JobDefinition) SetNodeProperties(v *NodeProperties) *JobDefinition { s.NodeProperties = v return s } // SetParameters sets the Parameters field's value. -func (s *JobDetail) SetParameters(v map[string]*string) *JobDetail { +func (s *JobDefinition) SetParameters(v map[string]*string) *JobDefinition { s.Parameters = v return s } // SetPlatformCapabilities sets the PlatformCapabilities field's value. -func (s *JobDetail) SetPlatformCapabilities(v []*string) *JobDetail { +func (s *JobDefinition) SetPlatformCapabilities(v []*string) *JobDefinition { s.PlatformCapabilities = v return s } // SetPropagateTags sets the PropagateTags field's value. -func (s *JobDetail) SetPropagateTags(v bool) *JobDetail { +func (s *JobDefinition) SetPropagateTags(v bool) *JobDefinition { s.PropagateTags = &v return s } // SetRetryStrategy sets the RetryStrategy field's value. -func (s *JobDetail) SetRetryStrategy(v *RetryStrategy) *JobDetail { +func (s *JobDefinition) SetRetryStrategy(v *RetryStrategy) *JobDefinition { s.RetryStrategy = v return s } -// SetSchedulingPriority sets the SchedulingPriority field's value. -func (s *JobDetail) SetSchedulingPriority(v int64) *JobDetail { - s.SchedulingPriority = &v - return s -} - -// SetShareIdentifier sets the ShareIdentifier field's value. -func (s *JobDetail) SetShareIdentifier(v string) *JobDetail { - s.ShareIdentifier = &v +// SetRevision sets the Revision field's value. +func (s *JobDefinition) SetRevision(v int64) *JobDefinition { + s.Revision = &v return s } -// SetStartedAt sets the StartedAt field's value. -func (s *JobDetail) SetStartedAt(v int64) *JobDetail { - s.StartedAt = &v +// SetSchedulingPriority sets the SchedulingPriority field's value. +func (s *JobDefinition) SetSchedulingPriority(v int64) *JobDefinition { + s.SchedulingPriority = &v return s } // SetStatus sets the Status field's value. -func (s *JobDetail) SetStatus(v string) *JobDetail { +func (s *JobDefinition) SetStatus(v string) *JobDefinition { s.Status = &v return s } -// SetStatusReason sets the StatusReason field's value. -func (s *JobDetail) SetStatusReason(v string) *JobDetail { - s.StatusReason = &v - return s -} - -// SetStoppedAt sets the StoppedAt field's value. -func (s *JobDetail) SetStoppedAt(v int64) *JobDetail { - s.StoppedAt = &v - return s -} - // SetTags sets the Tags field's value. -func (s *JobDetail) SetTags(v map[string]*string) *JobDetail { +func (s *JobDefinition) SetTags(v map[string]*string) *JobDefinition { s.Tags = v return s } // SetTimeout sets the Timeout field's value. -func (s *JobDetail) SetTimeout(v *JobTimeout) *JobDetail { +func (s *JobDefinition) SetTimeout(v *JobTimeout) *JobDefinition { s.Timeout = v return s } -// An object that represents the details for an Batch job queue. -type JobQueueDetail struct { - _ struct{} `type:"structure"` +// SetType sets the Type field's value. +func (s *JobDefinition) SetType(v string) *JobDefinition { + s.Type = &v + return s +} - // The compute environments that are attached to the job queue and the order - // that job placement is preferred. Compute environments are selected for job - // placement in ascending order. - // - // ComputeEnvironmentOrder is a required field - ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list" required:"true"` +// An object that represents an Batch job dependency. +type JobDependency struct { + _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the job queue. - // - // JobQueueArn is a required field - JobQueueArn *string `locationName:"jobQueueArn" type:"string" required:"true"` + // The job ID of the Batch job that's associated with this dependency. + JobId *string `locationName:"jobId" type:"string"` - // The job queue name. - // - // JobQueueName is a required field - JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"` - - // The priority of the job queue. Job queues with a higher priority (or a higher - // integer value for the priority parameter) are evaluated first when associated - // with the same compute environment. Priority is determined in descending order. - // For example, a job queue with a priority value of 10 is given scheduling - // preference over a job queue with a priority value of 1. All of the compute - // environments must be either EC2 (EC2 or SPOT) or Fargate (FARGATE or FARGATE_SPOT). - // EC2 and Fargate compute environments can't be mixed. - // - // Priority is a required field - Priority *int64 `locationName:"priority" type:"integer" required:"true"` - - // The Amazon Resource Name (ARN) of the scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name - // . For example, aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy. - SchedulingPolicyArn *string `locationName:"schedulingPolicyArn" type:"string"` - - // Describes the ability of the queue to accept new jobs. If the job queue state - // is ENABLED, it can accept jobs. If the job queue state is DISABLED, new jobs - // can't be added to the queue, but jobs already in the queue can finish. - // - // State is a required field - State *string `locationName:"state" type:"string" required:"true" enum:"JQState"` - - // The status of the job queue (for example, CREATING or VALID). - Status *string `locationName:"status" type:"string" enum:"JQStatus"` - - // A short, human-readable string to provide additional details for the current - // status of the job queue. - StatusReason *string `locationName:"statusReason" type:"string"` - - // The tags that are applied to the job queue. For more information, see Tagging - // your Batch resources (https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html) - // in Batch User Guide. - Tags map[string]*string `locationName:"tags" min:"1" type:"map"` -} + // The type of the job dependency. + Type *string `locationName:"type" type:"string" enum:"ArrayJobDependency"` +} // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobQueueDetail) String() string { +func (s JobDependency) String() string { return awsutil.Prettify(s) } @@ -9334,86 +9542,69 @@ func (s JobQueueDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobQueueDetail) GoString() string { +func (s JobDependency) GoString() string { return s.String() } -// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value. -func (s *JobQueueDetail) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *JobQueueDetail { - s.ComputeEnvironmentOrder = v +// SetJobId sets the JobId field's value. +func (s *JobDependency) SetJobId(v string) *JobDependency { + s.JobId = &v return s } -// SetJobQueueArn sets the JobQueueArn field's value. -func (s *JobQueueDetail) SetJobQueueArn(v string) *JobQueueDetail { - s.JobQueueArn = &v +// SetType sets the Type field's value. +func (s *JobDependency) SetType(v string) *JobDependency { + s.Type = &v return s } -// SetJobQueueName sets the JobQueueName field's value. -func (s *JobQueueDetail) SetJobQueueName(v string) *JobQueueDetail { - s.JobQueueName = &v - return s -} +// An object that represents an Batch job. +type JobDetail struct { + _ struct{} `type:"structure"` -// SetPriority sets the Priority field's value. -func (s *JobQueueDetail) SetPriority(v int64) *JobQueueDetail { - s.Priority = &v - return s -} + // The array properties of the job, if it's an array job. + ArrayProperties *ArrayPropertiesDetail `locationName:"arrayProperties" type:"structure"` -// SetSchedulingPolicyArn sets the SchedulingPolicyArn field's value. -func (s *JobQueueDetail) SetSchedulingPolicyArn(v string) *JobQueueDetail { - s.SchedulingPolicyArn = &v - return s -} + // A list of job attempts that are associated with this job. + Attempts []*AttemptDetail `locationName:"attempts" type:"list"` -// SetState sets the State field's value. -func (s *JobQueueDetail) SetState(v string) *JobQueueDetail { - s.State = &v - return s -} + // An object that represents the details for the container that's associated + // with the job. If the details are for a multiple-container job, this object + // will be empty. + Container *ContainerDetail `locationName:"container" type:"structure"` -// SetStatus sets the Status field's value. -func (s *JobQueueDetail) SetStatus(v string) *JobQueueDetail { - s.Status = &v - return s -} + // The Unix timestamp (in milliseconds) for when the job was created. For non-array + // jobs and parent array jobs, this is when the job entered the SUBMITTED state. + // This is specifically at the time SubmitJob (https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) + // was called. For array child jobs, this is when the child job was spawned + // by its parent and entered the PENDING state. + CreatedAt *int64 `locationName:"createdAt" type:"long"` -// SetStatusReason sets the StatusReason field's value. -func (s *JobQueueDetail) SetStatusReason(v string) *JobQueueDetail { - s.StatusReason = &v - return s -} + // A list of job IDs that this job depends on. + DependsOn []*JobDependency `locationName:"dependsOn" type:"list"` -// SetTags sets the Tags field's value. -func (s *JobQueueDetail) SetTags(v map[string]*string) *JobQueueDetail { - s.Tags = v - return s -} + // An object with properties that are specific to Amazon ECS-based jobs. + EcsProperties *EcsPropertiesDetail `locationName:"ecsProperties" type:"structure"` -// An object that represents summary details of a job. -type JobSummary struct { - _ struct{} `type:"structure"` + // A list of job attempts that are associated with this job. + EksAttempts []*EksAttemptDetail `locationName:"eksAttempts" type:"list"` - // The array properties of the job, if it's an array job. - ArrayProperties *ArrayPropertiesSummary `locationName:"arrayProperties" type:"structure"` + // An object with various properties that are specific to Amazon EKS based jobs. + EksProperties *EksPropertiesDetail `locationName:"eksProperties" type:"structure"` - // An object that represents the details of the container that's associated - // with the job. - Container *ContainerSummary `locationName:"container" type:"structure"` + // Indicates whether the job is canceled. + IsCancelled *bool `locationName:"isCancelled" type:"boolean"` - // The Unix timestamp (in milliseconds) for when the job was created. For non-array - // jobs and parent array jobs, this is when the job entered the SUBMITTED state - // (at the time SubmitJob was called). For array child jobs, this is when the - // child job was spawned by its parent and entered the PENDING state. - CreatedAt *int64 `locationName:"createdAt" type:"long"` + // Indicates whether the job is terminated. + IsTerminated *bool `locationName:"isTerminated" type:"boolean"` // The Amazon Resource Name (ARN) of the job. JobArn *string `locationName:"jobArn" type:"string"` - // The Amazon Resource Name (ARN) of the job definition. - JobDefinition *string `locationName:"jobDefinition" type:"string"` + // The Amazon Resource Name (ARN) of the job definition that this job uses. + // + // JobDefinition is a required field + JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"` // The job ID. // @@ -9425,26 +9616,78 @@ type JobSummary struct { // JobName is a required field JobName *string `locationName:"jobName" type:"string" required:"true"` - // The node properties for a single node in a job summary list. + // The Amazon Resource Name (ARN) of the job queue that the job is associated + // with. + // + // JobQueue is a required field + JobQueue *string `locationName:"jobQueue" type:"string" required:"true"` + + // An object that represents the details of a node that's associated with a + // multi-node parallel job. + NodeDetails *NodeDetails `locationName:"nodeDetails" type:"structure"` + + // An object that represents the node properties of a multi-node parallel job. // // This isn't applicable to jobs that are running on Fargate resources. - NodeProperties *NodePropertiesSummary `locationName:"nodeProperties" type:"structure"` + NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"` - // The Unix timestamp for when the job was started. More specifically, it's - // when the job transitioned from the STARTING state to the RUNNING state. - StartedAt *int64 `locationName:"startedAt" type:"long"` + // Additional parameters that are passed to the job that replace parameter substitution + // placeholders or override any corresponding parameter defaults from the job + // definition. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // The platform capabilities required by the job definition. If no value is + // specified, it defaults to EC2. Jobs run on Fargate resources specify FARGATE. + PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list" enum:"PlatformCapability"` + + // Specifies whether to propagate the tags from the job or job definition to + // the corresponding Amazon ECS task. If no value is specified, the tags aren't + // propagated. Tags can only be propagated to the tasks when the tasks are created. + // For tags with the same name, job tags are given priority over job definitions + // tags. If the total number of combined tags from the job and job definition + // is over 50, the job is moved to the FAILED state. + PropagateTags *bool `locationName:"propagateTags" type:"boolean"` + + // The retry strategy to use for this job if an attempt fails. + RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` + + // The scheduling policy of the job definition. This only affects jobs in job + // queues with a fair share policy. Jobs with a higher scheduling priority are + // scheduled before jobs with a lower scheduling priority. + SchedulingPriority *int64 `locationName:"schedulingPriority" type:"integer"` + + // The share identifier for the job. + ShareIdentifier *string `locationName:"shareIdentifier" type:"string"` + + // The Unix timestamp (in milliseconds) for when the job was started. More specifically, + // it's when the job transitioned from the STARTING state to the RUNNING state. + // + // StartedAt is a required field + StartedAt *int64 `locationName:"startedAt" type:"long" required:"true"` // The current status for the job. - Status *string `locationName:"status" type:"string" enum:"JobStatus"` + // + // If your jobs don't progress to STARTING, see Jobs stuck in RUNNABLE status + // (https://docs.aws.amazon.com/batch/latest/userguide/troubleshooting.html#job_stuck_in_runnable) + // in the troubleshooting section of the Batch User Guide. + // + // Status is a required field + Status *string `locationName:"status" type:"string" required:"true" enum:"JobStatus"` // A short, human-readable string to provide more details for the current status // of the job. StatusReason *string `locationName:"statusReason" type:"string"` - // The Unix timestamp for when the job was stopped. More specifically, it's - // when the job transitioned from the RUNNING state to a terminal state, such - // as SUCCEEDED or FAILED. + // The Unix timestamp (in milliseconds) for when the job was stopped. More specifically, + // it's when the job transitioned from the RUNNING state to a terminal state, + // such as SUCCEEDED or FAILED. StoppedAt *int64 `locationName:"stoppedAt" type:"long"` + + // The tags that are applied to the job. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + + // The timeout configuration for the job. + Timeout *JobTimeout `locationName:"timeout" type:"structure"` } // String returns the string representation. @@ -9452,7 +9695,7 @@ type JobSummary struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobSummary) String() string { +func (s JobDetail) String() string { return awsutil.Prettify(s) } @@ -9461,244 +9704,238 @@ func (s JobSummary) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s JobSummary) GoString() string { +func (s JobDetail) GoString() string { return s.String() } // SetArrayProperties sets the ArrayProperties field's value. -func (s *JobSummary) SetArrayProperties(v *ArrayPropertiesSummary) *JobSummary { +func (s *JobDetail) SetArrayProperties(v *ArrayPropertiesDetail) *JobDetail { s.ArrayProperties = v return s } +// SetAttempts sets the Attempts field's value. +func (s *JobDetail) SetAttempts(v []*AttemptDetail) *JobDetail { + s.Attempts = v + return s +} + // SetContainer sets the Container field's value. -func (s *JobSummary) SetContainer(v *ContainerSummary) *JobSummary { +func (s *JobDetail) SetContainer(v *ContainerDetail) *JobDetail { s.Container = v return s } // SetCreatedAt sets the CreatedAt field's value. -func (s *JobSummary) SetCreatedAt(v int64) *JobSummary { +func (s *JobDetail) SetCreatedAt(v int64) *JobDetail { s.CreatedAt = &v return s } -// SetJobArn sets the JobArn field's value. -func (s *JobSummary) SetJobArn(v string) *JobSummary { - s.JobArn = &v +// SetDependsOn sets the DependsOn field's value. +func (s *JobDetail) SetDependsOn(v []*JobDependency) *JobDetail { + s.DependsOn = v return s } -// SetJobDefinition sets the JobDefinition field's value. -func (s *JobSummary) SetJobDefinition(v string) *JobSummary { - s.JobDefinition = &v +// SetEcsProperties sets the EcsProperties field's value. +func (s *JobDetail) SetEcsProperties(v *EcsPropertiesDetail) *JobDetail { + s.EcsProperties = v return s } -// SetJobId sets the JobId field's value. -func (s *JobSummary) SetJobId(v string) *JobSummary { - s.JobId = &v +// SetEksAttempts sets the EksAttempts field's value. +func (s *JobDetail) SetEksAttempts(v []*EksAttemptDetail) *JobDetail { + s.EksAttempts = v return s } -// SetJobName sets the JobName field's value. -func (s *JobSummary) SetJobName(v string) *JobSummary { - s.JobName = &v +// SetEksProperties sets the EksProperties field's value. +func (s *JobDetail) SetEksProperties(v *EksPropertiesDetail) *JobDetail { + s.EksProperties = v return s } -// SetNodeProperties sets the NodeProperties field's value. -func (s *JobSummary) SetNodeProperties(v *NodePropertiesSummary) *JobSummary { - s.NodeProperties = v +// SetIsCancelled sets the IsCancelled field's value. +func (s *JobDetail) SetIsCancelled(v bool) *JobDetail { + s.IsCancelled = &v return s } -// SetStartedAt sets the StartedAt field's value. -func (s *JobSummary) SetStartedAt(v int64) *JobSummary { - s.StartedAt = &v +// SetIsTerminated sets the IsTerminated field's value. +func (s *JobDetail) SetIsTerminated(v bool) *JobDetail { + s.IsTerminated = &v return s } -// SetStatus sets the Status field's value. -func (s *JobSummary) SetStatus(v string) *JobSummary { - s.Status = &v +// SetJobArn sets the JobArn field's value. +func (s *JobDetail) SetJobArn(v string) *JobDetail { + s.JobArn = &v return s } -// SetStatusReason sets the StatusReason field's value. -func (s *JobSummary) SetStatusReason(v string) *JobSummary { - s.StatusReason = &v +// SetJobDefinition sets the JobDefinition field's value. +func (s *JobDetail) SetJobDefinition(v string) *JobDetail { + s.JobDefinition = &v return s } -// SetStoppedAt sets the StoppedAt field's value. -func (s *JobSummary) SetStoppedAt(v int64) *JobSummary { - s.StoppedAt = &v - return s +// SetJobId sets the JobId field's value. +func (s *JobDetail) SetJobId(v string) *JobDetail { + s.JobId = &v + return s } -// An object that represents a job timeout configuration. -type JobTimeout struct { - _ struct{} `type:"structure"` - - // The job timeout time (in seconds) that's measured from the job attempt's - // startedAt timestamp. After this time passes, Batch terminates your jobs if - // they aren't finished. The minimum value for the timeout is 60 seconds. - // - // For array jobs, the timeout applies to the child jobs, not to the parent - // array job. - // - // For multi-node parallel (MNP) jobs, the timeout applies to the whole job, - // not to the individual nodes. - AttemptDurationSeconds *int64 `locationName:"attemptDurationSeconds" type:"integer"` +// SetJobName sets the JobName field's value. +func (s *JobDetail) SetJobName(v string) *JobDetail { + s.JobName = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s JobTimeout) String() string { - return awsutil.Prettify(s) +// SetJobQueue sets the JobQueue field's value. +func (s *JobDetail) SetJobQueue(v string) *JobDetail { + s.JobQueue = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s JobTimeout) GoString() string { - return s.String() +// SetNodeDetails sets the NodeDetails field's value. +func (s *JobDetail) SetNodeDetails(v *NodeDetails) *JobDetail { + s.NodeDetails = v + return s } -// SetAttemptDurationSeconds sets the AttemptDurationSeconds field's value. -func (s *JobTimeout) SetAttemptDurationSeconds(v int64) *JobTimeout { - s.AttemptDurationSeconds = &v +// SetNodeProperties sets the NodeProperties field's value. +func (s *JobDetail) SetNodeProperties(v *NodeProperties) *JobDetail { + s.NodeProperties = v return s } -// A key-value pair object. -type KeyValuePair struct { - _ struct{} `type:"structure"` - - // The name of the key-value pair. For environment variables, this is the name - // of the environment variable. - Name *string `locationName:"name" type:"string"` - - // The value of the key-value pair. For environment variables, this is the value - // of the environment variable. - Value *string `locationName:"value" type:"string"` +// SetParameters sets the Parameters field's value. +func (s *JobDetail) SetParameters(v map[string]*string) *JobDetail { + s.Parameters = v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s KeyValuePair) String() string { - return awsutil.Prettify(s) +// SetPlatformCapabilities sets the PlatformCapabilities field's value. +func (s *JobDetail) SetPlatformCapabilities(v []*string) *JobDetail { + s.PlatformCapabilities = v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s KeyValuePair) GoString() string { - return s.String() +// SetPropagateTags sets the PropagateTags field's value. +func (s *JobDetail) SetPropagateTags(v bool) *JobDetail { + s.PropagateTags = &v + return s } -// SetName sets the Name field's value. -func (s *KeyValuePair) SetName(v string) *KeyValuePair { - s.Name = &v +// SetRetryStrategy sets the RetryStrategy field's value. +func (s *JobDetail) SetRetryStrategy(v *RetryStrategy) *JobDetail { + s.RetryStrategy = v return s } -// SetValue sets the Value field's value. -func (s *KeyValuePair) SetValue(v string) *KeyValuePair { - s.Value = &v +// SetSchedulingPriority sets the SchedulingPriority field's value. +func (s *JobDetail) SetSchedulingPriority(v int64) *JobDetail { + s.SchedulingPriority = &v return s } -// A filter name and value pair that's used to return a more specific list of -// results from a ListJobs API operation. -type KeyValuesPair struct { - _ struct{} `type:"structure"` +// SetShareIdentifier sets the ShareIdentifier field's value. +func (s *JobDetail) SetShareIdentifier(v string) *JobDetail { + s.ShareIdentifier = &v + return s +} - // The name of the filter. Filter names are case sensitive. - Name *string `locationName:"name" type:"string"` +// SetStartedAt sets the StartedAt field's value. +func (s *JobDetail) SetStartedAt(v int64) *JobDetail { + s.StartedAt = &v + return s +} - // The filter values. - Values []*string `locationName:"values" type:"list"` +// SetStatus sets the Status field's value. +func (s *JobDetail) SetStatus(v string) *JobDetail { + s.Status = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s KeyValuesPair) String() string { - return awsutil.Prettify(s) +// SetStatusReason sets the StatusReason field's value. +func (s *JobDetail) SetStatusReason(v string) *JobDetail { + s.StatusReason = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s KeyValuesPair) GoString() string { - return s.String() +// SetStoppedAt sets the StoppedAt field's value. +func (s *JobDetail) SetStoppedAt(v int64) *JobDetail { + s.StoppedAt = &v + return s } -// SetName sets the Name field's value. -func (s *KeyValuesPair) SetName(v string) *KeyValuesPair { - s.Name = &v +// SetTags sets the Tags field's value. +func (s *JobDetail) SetTags(v map[string]*string) *JobDetail { + s.Tags = v return s } -// SetValues sets the Values field's value. -func (s *KeyValuesPair) SetValues(v []*string) *KeyValuesPair { - s.Values = v +// SetTimeout sets the Timeout field's value. +func (s *JobDetail) SetTimeout(v *JobTimeout) *JobDetail { + s.Timeout = v return s } -// An object that represents a launch template that's associated with a compute -// resource. You must specify either the launch template ID or launch template -// name in the request, but not both. -// -// If security groups are specified using both the securityGroupIds parameter -// of CreateComputeEnvironment and the launch template, the values in the securityGroupIds -// parameter of CreateComputeEnvironment will be used. -// -// This object isn't applicable to jobs that are running on Fargate resources. -type LaunchTemplateSpecification struct { +// An object that represents the details for an Batch job queue. +type JobQueueDetail struct { _ struct{} `type:"structure"` - // The ID of the launch template. - LaunchTemplateId *string `locationName:"launchTemplateId" type:"string"` + // The compute environments that are attached to the job queue and the order + // that job placement is preferred. Compute environments are selected for job + // placement in ascending order. + // + // ComputeEnvironmentOrder is a required field + ComputeEnvironmentOrder []*ComputeEnvironmentOrder `locationName:"computeEnvironmentOrder" type:"list" required:"true"` - // The name of the launch template. - LaunchTemplateName *string `locationName:"launchTemplateName" type:"string"` + // The Amazon Resource Name (ARN) of the job queue. + // + // JobQueueArn is a required field + JobQueueArn *string `locationName:"jobQueueArn" type:"string" required:"true"` - // The version number of the launch template, $Latest, or $Default. + // The job queue name. // - // If the value is $Latest, the latest version of the launch template is used. - // If the value is $Default, the default version of the launch template is used. + // JobQueueName is a required field + JobQueueName *string `locationName:"jobQueueName" type:"string" required:"true"` + + // The priority of the job queue. Job queues with a higher priority (or a higher + // integer value for the priority parameter) are evaluated first when associated + // with the same compute environment. Priority is determined in descending order. + // For example, a job queue with a priority value of 10 is given scheduling + // preference over a job queue with a priority value of 1. All of the compute + // environments must be either Amazon EC2 (EC2 or SPOT) or Fargate (FARGATE + // or FARGATE_SPOT). Amazon EC2 and Fargate compute environments can't be mixed. // - // If the AMI ID that's used in a compute environment is from the launch template, - // the AMI isn't changed when the compute environment is updated. It's only - // changed if the updateToLatestImageVersion parameter for the compute environment - // is set to true. During an infrastructure update, if either $Latest or $Default - // is specified, Batch re-evaluates the launch template version, and it might - // use a different version of the launch template. This is the case even if - // the launch template isn't specified in the update. When updating a compute - // environment, changing the launch template requires an infrastructure update - // of the compute environment. For more information, see Updating compute environments - // (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) - // in the Batch User Guide. + // Priority is a required field + Priority *int64 `locationName:"priority" type:"integer" required:"true"` + + // The Amazon Resource Name (ARN) of the scheduling policy. The format is aws:Partition:batch:Region:Account:scheduling-policy/Name + // . For example, aws:aws:batch:us-west-2:123456789012:scheduling-policy/MySchedulingPolicy. + SchedulingPolicyArn *string `locationName:"schedulingPolicyArn" type:"string"` + + // Describes the ability of the queue to accept new jobs. If the job queue state + // is ENABLED, it can accept jobs. If the job queue state is DISABLED, new jobs + // can't be added to the queue, but jobs already in the queue can finish. // - // Default: $Default. - Version *string `locationName:"version" type:"string"` + // State is a required field + State *string `locationName:"state" type:"string" required:"true" enum:"JQState"` + + // The status of the job queue (for example, CREATING or VALID). + Status *string `locationName:"status" type:"string" enum:"JQStatus"` + + // A short, human-readable string to provide additional details for the current + // status of the job queue. + StatusReason *string `locationName:"statusReason" type:"string"` + + // The tags that are applied to the job queue. For more information, see Tagging + // your Batch resources (https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html) + // in Batch User Guide. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` } // String returns the string representation. @@ -9706,7 +9943,7 @@ type LaunchTemplateSpecification struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LaunchTemplateSpecification) String() string { +func (s JobQueueDetail) String() string { return awsutil.Prettify(s) } @@ -9715,109 +9952,118 @@ func (s LaunchTemplateSpecification) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LaunchTemplateSpecification) GoString() string { +func (s JobQueueDetail) GoString() string { return s.String() } -// SetLaunchTemplateId sets the LaunchTemplateId field's value. -func (s *LaunchTemplateSpecification) SetLaunchTemplateId(v string) *LaunchTemplateSpecification { - s.LaunchTemplateId = &v +// SetComputeEnvironmentOrder sets the ComputeEnvironmentOrder field's value. +func (s *JobQueueDetail) SetComputeEnvironmentOrder(v []*ComputeEnvironmentOrder) *JobQueueDetail { + s.ComputeEnvironmentOrder = v return s } -// SetLaunchTemplateName sets the LaunchTemplateName field's value. -func (s *LaunchTemplateSpecification) SetLaunchTemplateName(v string) *LaunchTemplateSpecification { - s.LaunchTemplateName = &v +// SetJobQueueArn sets the JobQueueArn field's value. +func (s *JobQueueDetail) SetJobQueueArn(v string) *JobQueueDetail { + s.JobQueueArn = &v return s } -// SetVersion sets the Version field's value. -func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecification { - s.Version = &v +// SetJobQueueName sets the JobQueueName field's value. +func (s *JobQueueDetail) SetJobQueueName(v string) *JobQueueDetail { + s.JobQueueName = &v return s } -// Linux-specific modifications that are applied to the container, such as details -// for device mappings. -type LinuxParameters struct { - _ struct{} `type:"structure"` +// SetPriority sets the Priority field's value. +func (s *JobQueueDetail) SetPriority(v int64) *JobQueueDetail { + s.Priority = &v + return s +} - // Any of the host devices to expose to the container. This parameter maps to - // Devices in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) - // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) - // and the --device option to docker run (https://docs.docker.com/engine/reference/run/). - // - // This parameter isn't applicable to jobs that are running on Fargate resources. - // Don't provide it for these jobs. - Devices []*Device `locationName:"devices" type:"list"` +// SetSchedulingPolicyArn sets the SchedulingPolicyArn field's value. +func (s *JobQueueDetail) SetSchedulingPolicyArn(v string) *JobQueueDetail { + s.SchedulingPolicyArn = &v + return s +} - // 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 (https://docs.docker.com/engine/reference/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" - InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"` +// SetState sets the State field's value. +func (s *JobQueueDetail) SetState(v string) *JobQueueDetail { + s.State = &v + return s +} - // The total amount of swap memory (in MiB) a container can use. This parameter - // is translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/) - // where the value is the sum of the container memory plus the maxSwap value. - // For more information, see --memory-swap details (https://docs.docker.com/config/containers/resource_constraints/#--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. - MaxSwap *int64 `locationName:"maxSwap" type:"integer"` +// SetStatus sets the Status field's value. +func (s *JobQueueDetail) SetStatus(v string) *JobQueueDetail { + s.Status = &v + return s +} - // The value for the size (in MiB) of the /dev/shm volume. This parameter maps - // to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/). - // - // This parameter isn't applicable to jobs that are running on Fargate resources. - // Don't provide it for these jobs. - SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"` +// SetStatusReason sets the StatusReason field's value. +func (s *JobQueueDetail) SetStatusReason(v string) *JobQueueDetail { + s.StatusReason = &v + return s +} - // 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 (https://docs.docker.com/engine/reference/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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html) - // 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? (http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/) - // - // * The swap space parameters are only supported for job definitions using - // EC2 resources. +// SetTags sets the Tags field's value. +func (s *JobQueueDetail) SetTags(v map[string]*string) *JobQueueDetail { + s.Tags = v + return s +} + +// An object that represents summary details of a job. +type JobSummary struct { + _ struct{} `type:"structure"` + + // The array properties of the job, if it's an array job. + ArrayProperties *ArrayPropertiesSummary `locationName:"arrayProperties" type:"structure"` + + // An object that represents the details of the container that's associated + // with the job. + Container *ContainerSummary `locationName:"container" type:"structure"` + + // The Unix timestamp (in milliseconds) for when the job was created. For non-array + // jobs and parent array jobs, this is when the job entered the SUBMITTED state + // (at the time SubmitJob (https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) + // was called). For array child jobs, this is when the child job was spawned + // by its parent and entered the PENDING state. + CreatedAt *int64 `locationName:"createdAt" type:"long"` + + // The Amazon Resource Name (ARN) of the job. + JobArn *string `locationName:"jobArn" type:"string"` + + // The Amazon Resource Name (ARN) of the job definition. + JobDefinition *string `locationName:"jobDefinition" type:"string"` + + // The job ID. // - // * 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. + // JobId is a required field + JobId *string `locationName:"jobId" type:"string" required:"true"` + + // The job name. // - // This parameter isn't applicable to jobs that are running on Fargate resources. - // Don't provide it for these jobs. - Swappiness *int64 `locationName:"swappiness" type:"integer"` + // JobName is a required field + JobName *string `locationName:"jobName" type:"string" required:"true"` - // The container path, mount options, and size (in MiB) of the tmpfs mount. - // This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/). + // The node properties for a single node in a job summary list. // - // This parameter isn't applicable to jobs that are running on Fargate resources. - // Don't provide this parameter for this resource type. - Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"` + // This isn't applicable to jobs that are running on Fargate resources. + NodeProperties *NodePropertiesSummary `locationName:"nodeProperties" type:"structure"` + + // The Unix timestamp for when the job was started. More specifically, it's + // when the job transitioned from the STARTING state to the RUNNING state. + StartedAt *int64 `locationName:"startedAt" type:"long"` + + // The current status for the job. + Status *string `locationName:"status" type:"string" enum:"JobStatus"` + + // A short, human-readable string to provide more details for the current status + // of the job. + StatusReason *string `locationName:"statusReason" type:"string"` + + // The Unix timestamp for when the job was stopped. More specifically, it's + // when the job transitioned from the RUNNING state to a terminal state, such + // as SUCCEEDED or FAILED. + StoppedAt *int64 `locationName:"stoppedAt" type:"long"` } // String returns the string representation. @@ -9825,7 +10071,7 @@ type LinuxParameters struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LinuxParameters) String() string { +func (s JobSummary) String() string { return awsutil.Prettify(s) } @@ -9834,158 +10080,96 @@ func (s LinuxParameters) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LinuxParameters) GoString() string { +func (s JobSummary) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *LinuxParameters) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"} - if s.Devices != nil { - for i, v := range s.Devices { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams)) - } - } - } - if s.Tmpfs != nil { - for i, v := range s.Tmpfs { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams)) - } - } - } +// SetArrayProperties sets the ArrayProperties field's value. +func (s *JobSummary) SetArrayProperties(v *ArrayPropertiesSummary) *JobSummary { + s.ArrayProperties = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetContainer sets the Container field's value. +func (s *JobSummary) SetContainer(v *ContainerSummary) *JobSummary { + s.Container = v + return s } -// SetDevices sets the Devices field's value. -func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters { - s.Devices = v +// SetCreatedAt sets the CreatedAt field's value. +func (s *JobSummary) SetCreatedAt(v int64) *JobSummary { + s.CreatedAt = &v return s } -// SetInitProcessEnabled sets the InitProcessEnabled field's value. -func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters { - s.InitProcessEnabled = &v +// SetJobArn sets the JobArn field's value. +func (s *JobSummary) SetJobArn(v string) *JobSummary { + s.JobArn = &v return s } -// SetMaxSwap sets the MaxSwap field's value. -func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters { - s.MaxSwap = &v +// SetJobDefinition sets the JobDefinition field's value. +func (s *JobSummary) SetJobDefinition(v string) *JobSummary { + s.JobDefinition = &v return s } -// SetSharedMemorySize sets the SharedMemorySize field's value. -func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters { - s.SharedMemorySize = &v +// SetJobId sets the JobId field's value. +func (s *JobSummary) SetJobId(v string) *JobSummary { + s.JobId = &v return s } -// SetSwappiness sets the Swappiness field's value. -func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters { - s.Swappiness = &v +// SetJobName sets the JobName field's value. +func (s *JobSummary) SetJobName(v string) *JobSummary { + s.JobName = &v return s } -// SetTmpfs sets the Tmpfs field's value. -func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters { - s.Tmpfs = v +// SetNodeProperties sets the NodeProperties field's value. +func (s *JobSummary) SetNodeProperties(v *NodePropertiesSummary) *JobSummary { + s.NodeProperties = v return s } -// Contains the parameters for ListJobs. -type ListJobsInput struct { - _ struct{} `type:"structure"` +// SetStartedAt sets the StartedAt field's value. +func (s *JobSummary) SetStartedAt(v int64) *JobSummary { + s.StartedAt = &v + return s +} - // The job ID for an array job. Specifying an array job ID with this parameter - // lists all child jobs from within the specified array. - ArrayJobId *string `locationName:"arrayJobId" type:"string"` +// SetStatus sets the Status field's value. +func (s *JobSummary) SetStatus(v string) *JobSummary { + s.Status = &v + return s +} - // The filter to apply to the query. Only one filter can be used at a time. - // When the filter is used, jobStatus is ignored. The filter doesn't apply to - // child jobs in an array or multi-node parallel (MNP) jobs. The results are - // sorted by the createdAt field, with the most recent jobs being first. - // - // JOB_NAME - // - // The value of the filter is a case-insensitive match for the job name. If - // the value ends with an asterisk (*), the filter matches any job name that - // begins with the string before the '*'. This corresponds to the jobName value. - // For example, test1 matches both Test1 and test1, and test1* matches both - // test1 and Test10. When the JOB_NAME filter is used, the results are grouped - // by the job name and version. - // - // JOB_DEFINITION - // - // The value for the filter is the name or Amazon Resource Name (ARN) of the - // job definition. This corresponds to the jobDefinition value. The value is - // case sensitive. When the value for the filter is the job definition name, - // the results include all the jobs that used any revision of that job definition - // name. If the value ends with an asterisk (*), the filter matches any job - // definition name that begins with the string before the '*'. For example, - // jd1 matches only jd1, and jd1* matches both jd1 and jd1A. The version of - // the job definition that's used doesn't affect the sort order. When the JOB_DEFINITION - // filter is used and the ARN is used (which is in the form arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}), - // the results include jobs that used the specified revision of the job definition. - // Asterisk (*) isn't supported when the ARN is used. - // - // BEFORE_CREATED_AT - // - // The value for the filter is the time that's before the job was created. This - // corresponds to the createdAt value. The value is a string representation - // of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, - // 1970. - // - // AFTER_CREATED_AT - // - // The value for the filter is the time that's after the job was created. This - // corresponds to the createdAt value. The value is a string representation - // of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, - // 1970. - Filters []*KeyValuesPair `locationName:"filters" type:"list"` - - // The name or full Amazon Resource Name (ARN) of the job queue used to list - // jobs. - JobQueue *string `locationName:"jobQueue" type:"string"` - - // The job status used to filter jobs in the specified queue. If the filters - // parameter is specified, the jobStatus parameter is ignored and jobs with - // any status are returned. If you don't specify a status, only RUNNING jobs - // are returned. - JobStatus *string `locationName:"jobStatus" type:"string" enum:"JobStatus"` +// SetStatusReason sets the StatusReason field's value. +func (s *JobSummary) SetStatusReason(v string) *JobSummary { + s.StatusReason = &v + return s +} - // The maximum number of results returned by ListJobs in paginated output. When - // this parameter is used, ListJobs only returns maxResults results in a single - // page and a nextToken response element. The remaining results of the initial - // request can be seen by sending another ListJobs request with the returned - // nextToken value. This value can be between 1 and 100. If this parameter isn't - // used, then ListJobs returns up to 100 results and a nextToken value if applicable. - MaxResults *int64 `locationName:"maxResults" type:"integer"` +// SetStoppedAt sets the StoppedAt field's value. +func (s *JobSummary) SetStoppedAt(v int64) *JobSummary { + s.StoppedAt = &v + return s +} - // The job ID for a multi-node parallel job. Specifying a multi-node parallel - // job ID with this parameter lists all nodes that are associated with the specified - // job. - MultiNodeJobId *string `locationName:"multiNodeJobId" type:"string"` +// An object that represents a job timeout configuration. +type JobTimeout struct { + _ struct{} `type:"structure"` - // The nextToken value returned from a previous paginated ListJobs request where - // maxResults was used and the results exceeded the value of that parameter. - // Pagination continues from the end of the previous results that returned the - // nextToken value. This value is null when there are no more results to return. + // The job timeout time (in seconds) that's measured from the job attempt's + // startedAt timestamp. After this time passes, Batch terminates your jobs if + // they aren't finished. The minimum value for the timeout is 60 seconds. // - // Treat this token as an opaque identifier that's only used to retrieve the - // next items in a list and not for other programmatic purposes. - NextToken *string `locationName:"nextToken" type:"string"` + // For array jobs, the timeout applies to the child jobs, not to the parent + // array job. + // + // For multi-node parallel (MNP) jobs, the timeout applies to the whole job, + // not to the individual nodes. + AttemptDurationSeconds *int64 `locationName:"attemptDurationSeconds" type:"integer"` } // String returns the string representation. @@ -9993,7 +10177,7 @@ type ListJobsInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListJobsInput) String() string { +func (s JobTimeout) String() string { return awsutil.Prettify(s) } @@ -10002,65 +10186,27 @@ func (s ListJobsInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListJobsInput) GoString() string { +func (s JobTimeout) GoString() string { return s.String() } -// SetArrayJobId sets the ArrayJobId field's value. -func (s *ListJobsInput) SetArrayJobId(v string) *ListJobsInput { - s.ArrayJobId = &v - return s -} - -// SetFilters sets the Filters field's value. -func (s *ListJobsInput) SetFilters(v []*KeyValuesPair) *ListJobsInput { - s.Filters = v - return s -} - -// SetJobQueue sets the JobQueue field's value. -func (s *ListJobsInput) SetJobQueue(v string) *ListJobsInput { - s.JobQueue = &v - return s -} - -// SetJobStatus sets the JobStatus field's value. -func (s *ListJobsInput) SetJobStatus(v string) *ListJobsInput { - s.JobStatus = &v - return s -} - -// SetMaxResults sets the MaxResults field's value. -func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput { - s.MaxResults = &v - return s -} - -// SetMultiNodeJobId sets the MultiNodeJobId field's value. -func (s *ListJobsInput) SetMultiNodeJobId(v string) *ListJobsInput { - s.MultiNodeJobId = &v - return s -} - -// SetNextToken sets the NextToken field's value. -func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput { - s.NextToken = &v +// SetAttemptDurationSeconds sets the AttemptDurationSeconds field's value. +func (s *JobTimeout) SetAttemptDurationSeconds(v int64) *JobTimeout { + s.AttemptDurationSeconds = &v return s } -type ListJobsOutput struct { +// A key-value pair object. +type KeyValuePair struct { _ struct{} `type:"structure"` - // A list of job summaries that match the request. - // - // JobSummaryList is a required field - JobSummaryList []*JobSummary `locationName:"jobSummaryList" type:"list" required:"true"` + // The name of the key-value pair. For environment variables, this is the name + // of the environment variable. + Name *string `locationName:"name" type:"string"` - // The nextToken value to include in a future ListJobs request. When the results - // of a ListJobs request exceed maxResults, this value can be used to retrieve - // the next page of results. This value is null when there are no more results - // to return. - NextToken *string `locationName:"nextToken" type:"string"` + // The value of the key-value pair. For environment variables, this is the value + // of the environment variable. + Value *string `locationName:"value" type:"string"` } // String returns the string representation. @@ -10068,7 +10214,7 @@ type ListJobsOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListJobsOutput) String() string { +func (s KeyValuePair) String() string { return awsutil.Prettify(s) } @@ -10077,44 +10223,32 @@ func (s ListJobsOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListJobsOutput) GoString() string { +func (s KeyValuePair) GoString() string { return s.String() } -// SetJobSummaryList sets the JobSummaryList field's value. -func (s *ListJobsOutput) SetJobSummaryList(v []*JobSummary) *ListJobsOutput { - s.JobSummaryList = v +// SetName sets the Name field's value. +func (s *KeyValuePair) SetName(v string) *KeyValuePair { + s.Name = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput { - s.NextToken = &v +// SetValue sets the Value field's value. +func (s *KeyValuePair) SetValue(v string) *KeyValuePair { + s.Value = &v return s } -// Contains the parameters for ListSchedulingPolicies. -type ListSchedulingPoliciesInput struct { +// A filter name and value pair that's used to return a more specific list of +// results from a ListJobs API operation. +type KeyValuesPair struct { _ struct{} `type:"structure"` - // The maximum number of results that's returned by ListSchedulingPolicies in - // paginated output. When this parameter is used, ListSchedulingPolicies only - // returns maxResults results in a single page and a nextToken response element. - // You can see the remaining results of the initial request by sending another - // ListSchedulingPolicies request with the returned nextToken value. This value - // can be between 1 and 100. If this parameter isn't used, ListSchedulingPolicies - // returns up to 100 results and a nextToken value if applicable. - MaxResults *int64 `locationName:"maxResults" type:"integer"` + // The name of the filter. Filter names are case sensitive. + Name *string `locationName:"name" type:"string"` - // The nextToken value that's returned from a previous paginated ListSchedulingPolicies - // request where maxResults was used and the results exceeded the value of that - // parameter. Pagination continues from the end of the previous results that - // returned the nextToken value. This value is null when there are no more results - // to return. - // - // Treat this token as an opaque identifier that's only used to retrieve the - // next items in a list and not for other programmatic purposes. - NextToken *string `locationName:"nextToken" type:"string"` + // The filter values. + Values []*string `locationName:"values" type:"list"` } // String returns the string representation. @@ -10122,7 +10256,7 @@ type ListSchedulingPoliciesInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSchedulingPoliciesInput) String() string { +func (s KeyValuesPair) String() string { return awsutil.Prettify(s) } @@ -10131,33 +10265,59 @@ func (s ListSchedulingPoliciesInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSchedulingPoliciesInput) GoString() string { +func (s KeyValuesPair) GoString() string { return s.String() } -// SetMaxResults sets the MaxResults field's value. -func (s *ListSchedulingPoliciesInput) SetMaxResults(v int64) *ListSchedulingPoliciesInput { - s.MaxResults = &v +// SetName sets the Name field's value. +func (s *KeyValuesPair) SetName(v string) *KeyValuesPair { + s.Name = &v return s } -// SetNextToken sets the NextToken field's value. -func (s *ListSchedulingPoliciesInput) SetNextToken(v string) *ListSchedulingPoliciesInput { - s.NextToken = &v +// SetValues sets the Values field's value. +func (s *KeyValuesPair) SetValues(v []*string) *KeyValuesPair { + s.Values = v return s } -type ListSchedulingPoliciesOutput struct { +// An object that represents a launch template that's associated with a compute +// resource. You must specify either the launch template ID or launch template +// name in the request, but not both. +// +// If security groups are specified using both the securityGroupIds parameter +// of CreateComputeEnvironment and the launch template, the values in the securityGroupIds +// parameter of CreateComputeEnvironment will be used. +// +// This object isn't applicable to jobs that are running on Fargate resources. +type LaunchTemplateSpecification struct { _ struct{} `type:"structure"` - // The nextToken value to include in a future ListSchedulingPolicies request. - // When the results of a ListSchedulingPolicies request exceed maxResults, this - // value can be used to retrieve the next page of results. This value is null - // when there are no more results to return. - NextToken *string `locationName:"nextToken" type:"string"` + // The ID of the launch template. + LaunchTemplateId *string `locationName:"launchTemplateId" type:"string"` - // A list of scheduling policies that match the request. - SchedulingPolicies []*SchedulingPolicyListingDetail `locationName:"schedulingPolicies" type:"list"` + // The name of the launch template. + LaunchTemplateName *string `locationName:"launchTemplateName" type:"string"` + + // The version number of the launch template, $Latest, or $Default. + // + // If the value is $Latest, the latest version of the launch template is used. + // If the value is $Default, the default version of the launch template is used. + // + // If the AMI ID that's used in a compute environment is from the launch template, + // the AMI isn't changed when the compute environment is updated. It's only + // changed if the updateToLatestImageVersion parameter for the compute environment + // is set to true. During an infrastructure update, if either $Latest or $Default + // is specified, Batch re-evaluates the launch template version, and it might + // use a different version of the launch template. This is the case even if + // the launch template isn't specified in the update. When updating a compute + // environment, changing the launch template requires an infrastructure update + // of the compute environment. For more information, see Updating compute environments + // (https://docs.aws.amazon.com/batch/latest/userguide/updating-compute-environments.html) + // in the Batch User Guide. + // + // Default: $Default. + Version *string `locationName:"version" type:"string"` } // String returns the string representation. @@ -10165,7 +10325,7 @@ type ListSchedulingPoliciesOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSchedulingPoliciesOutput) String() string { +func (s LaunchTemplateSpecification) String() string { return awsutil.Prettify(s) } @@ -10174,189 +10334,109 @@ func (s ListSchedulingPoliciesOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ListSchedulingPoliciesOutput) GoString() string { +func (s LaunchTemplateSpecification) GoString() string { return s.String() } -// SetNextToken sets the NextToken field's value. -func (s *ListSchedulingPoliciesOutput) SetNextToken(v string) *ListSchedulingPoliciesOutput { - s.NextToken = &v +// SetLaunchTemplateId sets the LaunchTemplateId field's value. +func (s *LaunchTemplateSpecification) SetLaunchTemplateId(v string) *LaunchTemplateSpecification { + s.LaunchTemplateId = &v return s } -// SetSchedulingPolicies sets the SchedulingPolicies field's value. -func (s *ListSchedulingPoliciesOutput) SetSchedulingPolicies(v []*SchedulingPolicyListingDetail) *ListSchedulingPoliciesOutput { - s.SchedulingPolicies = v +// SetLaunchTemplateName sets the LaunchTemplateName field's value. +func (s *LaunchTemplateSpecification) SetLaunchTemplateName(v string) *LaunchTemplateSpecification { + s.LaunchTemplateName = &v return s } -// Contains the parameters for ListTagsForResource. -type ListTagsForResourceInput struct { - _ struct{} `type:"structure" nopayload:"true"` - - // The Amazon Resource Name (ARN) that identifies the resource that tags are - // listed for. Batch resources that support tags are compute environments, jobs, - // job definitions, job queues, and scheduling policies. ARNs for child jobs - // of array and multi-node parallel (MNP) jobs aren't supported. - // - // ResourceArn is a required field - ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s ListTagsForResourceInput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s ListTagsForResourceInput) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *ListTagsForResourceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} - if s.ResourceArn == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceArn")) - } - if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetResourceArn sets the ResourceArn field's value. -func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { - s.ResourceArn = &v +// SetVersion sets the Version field's value. +func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecification { + s.Version = &v return s } -type ListTagsForResourceOutput struct { +// Linux-specific modifications that are applied to the container, such as details +// for device mappings. +type LinuxParameters struct { _ struct{} `type:"structure"` - // The tags for the resource. - Tags map[string]*string `locationName:"tags" min:"1" type:"map"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s ListTagsForResourceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s ListTagsForResourceOutput) GoString() string { - return s.String() -} - -// SetTags sets the Tags field's value. -func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { - s.Tags = v - return s -} + // Any of the host devices to expose to the container. This parameter maps to + // Devices in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) + // and the --device option to docker run (https://docs.docker.com/engine/reference/run/). + // + // This parameter isn't applicable to jobs that are running on Fargate resources. + // Don't provide it for these jobs. + Devices []*Device `locationName:"devices" type:"list"` -// Log configuration options to send to a custom log driver for the container. -type LogConfiguration struct { - _ struct{} `type:"structure"` + // 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 (https://docs.docker.com/engine/reference/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" + InitProcessEnabled *bool `locationName:"initProcessEnabled" type:"boolean"` - // The log driver to use for the container. The valid values that are listed - // for this parameter are log drivers that the Amazon ECS container agent can - // communicate with by default. - // - // The supported log drivers are awslogs, fluentd, gelf, json-file, journald, - // logentries, syslog, and splunk. - // - // Jobs that are running on Fargate resources are restricted to the awslogs - // and splunk log drivers. - // - // awslogs - // - // Specifies the Amazon CloudWatch Logs logging driver. For more information, - // see Using the awslogs log driver (https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html) - // in the Batch User Guide and Amazon CloudWatch Logs logging driver (https://docs.docker.com/config/containers/logging/awslogs/) - // in the Docker documentation. - // - // fluentd - // - // Specifies the Fluentd logging driver. For more information including usage - // and options, see Fluentd logging driver (https://docs.docker.com/config/containers/logging/fluentd/) - // in the Docker documentation. - // - // gelf - // - // Specifies the Graylog Extended Format (GELF) logging driver. For more information - // including usage and options, see Graylog Extended Format logging driver (https://docs.docker.com/config/containers/logging/gelf/) - // in the Docker documentation. - // - // journald - // - // Specifies the journald logging driver. For more information including usage - // and options, see Journald logging driver (https://docs.docker.com/config/containers/logging/journald/) + // The total amount of swap memory (in MiB) a container can use. This parameter + // is translated to the --memory-swap option to docker run (https://docs.docker.com/engine/reference/run/) + // where the value is the sum of the container memory plus the maxSwap value. + // For more information, see --memory-swap details (https://docs.docker.com/config/containers/resource_constraints/#--memory-swap-details) // in the Docker documentation. // - // json-file - // - // Specifies the JSON file logging driver. For more information including usage - // and options, see JSON File logging driver (https://docs.docker.com/config/containers/logging/json-file/) - // 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. // - // splunk + // This parameter isn't applicable to jobs that are running on Fargate resources. + // Don't provide it for these jobs. + MaxSwap *int64 `locationName:"maxSwap" type:"integer"` + + // The value for the size (in MiB) of the /dev/shm volume. This parameter maps + // to the --shm-size option to docker run (https://docs.docker.com/engine/reference/run/). // - // Specifies the Splunk logging driver. For more information including usage - // and options, see Splunk logging driver (https://docs.docker.com/config/containers/logging/splunk/) - // in the Docker documentation. + // This parameter isn't applicable to jobs that are running on Fargate resources. + // Don't provide it for these jobs. + SharedMemorySize *int64 `locationName:"sharedMemorySize" type:"integer"` + + // 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 (https://docs.docker.com/engine/reference/run/). // - // syslog + // Consider the following when you use a per-container swap configuration. // - // Specifies the syslog logging driver. For more information including usage - // and options, see Syslog logging driver (https://docs.docker.com/config/containers/logging/syslog/) - // in the Docker documentation. + // * 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 (https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-store-swap-volumes.html) + // 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? (http://aws.amazon.com/premiumsupport/knowledge-center/ec2-memory-swap-file/) // - // If you have a custom driver that's not listed earlier that you want to work - // with the Amazon ECS container agent, you can fork the Amazon ECS container - // agent project that's available on GitHub (https://github.com/aws/amazon-ecs-agent) - // and customize it to work with that driver. We encourage you to submit pull - // requests for changes that you want to have included. However, Amazon Web - // Services doesn't currently support running modified copies of this software. + // * The swap space parameters are only supported for job definitions using + // EC2 resources. // - // 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" + // * 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. // - // LogDriver is a required field - LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"` - - // The configuration options to send to the log driver. This parameter requires - // version 1.19 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" - Options map[string]*string `locationName:"options" type:"map"` + // This parameter isn't applicable to jobs that are running on Fargate resources. + // Don't provide it for these jobs. + Swappiness *int64 `locationName:"swappiness" type:"integer"` - // The secrets to pass to the log configuration. For more information, see Specifying - // sensitive data (https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) - // in the Batch User Guide. - SecretOptions []*Secret `locationName:"secretOptions" type:"list"` + // The container path, mount options, and size (in MiB) of the tmpfs mount. + // This parameter maps to the --tmpfs option to docker run (https://docs.docker.com/engine/reference/run/). + // + // This parameter isn't applicable to jobs that are running on Fargate resources. + // Don't provide this parameter for this resource type. + Tmpfs []*Tmpfs `locationName:"tmpfs" type:"list"` } // String returns the string representation. @@ -10364,7 +10444,7 @@ type LogConfiguration struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LogConfiguration) String() string { +func (s LinuxParameters) String() string { return awsutil.Prettify(s) } @@ -10373,23 +10453,30 @@ func (s LogConfiguration) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s LogConfiguration) GoString() string { +func (s LinuxParameters) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *LogConfiguration) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"} - if s.LogDriver == nil { - invalidParams.Add(request.NewErrParamRequired("LogDriver")) +func (s *LinuxParameters) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LinuxParameters"} + if s.Devices != nil { + for i, v := range s.Devices { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Devices", i), err.(request.ErrInvalidParams)) + } + } } - if s.SecretOptions != nil { - for i, v := range s.SecretOptions { + if s.Tmpfs != nil { + for i, v := range s.Tmpfs { if v == nil { continue } if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams)) + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tmpfs", i), err.(request.ErrInvalidParams)) } } } @@ -10400,39 +10487,124 @@ func (s *LogConfiguration) Validate() error { return nil } -// SetLogDriver sets the LogDriver field's value. -func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration { - s.LogDriver = &v +// SetDevices sets the Devices field's value. +func (s *LinuxParameters) SetDevices(v []*Device) *LinuxParameters { + s.Devices = v return s } -// SetOptions sets the Options field's value. -func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration { - s.Options = v +// SetInitProcessEnabled sets the InitProcessEnabled field's value. +func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters { + s.InitProcessEnabled = &v return s } -// SetSecretOptions sets the SecretOptions field's value. -func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration { - s.SecretOptions = v +// SetMaxSwap sets the MaxSwap field's value. +func (s *LinuxParameters) SetMaxSwap(v int64) *LinuxParameters { + s.MaxSwap = &v return s } -// Details for a Docker volume mount point that's used in a job's container -// properties. This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerCreate) -// section of the Docker Remote API and the --volume option to docker run. -type MountPoint struct { +// SetSharedMemorySize sets the SharedMemorySize field's value. +func (s *LinuxParameters) SetSharedMemorySize(v int64) *LinuxParameters { + s.SharedMemorySize = &v + return s +} + +// SetSwappiness sets the Swappiness field's value. +func (s *LinuxParameters) SetSwappiness(v int64) *LinuxParameters { + s.Swappiness = &v + return s +} + +// SetTmpfs sets the Tmpfs field's value. +func (s *LinuxParameters) SetTmpfs(v []*Tmpfs) *LinuxParameters { + s.Tmpfs = v + return s +} + +// Contains the parameters for ListJobs. +type ListJobsInput struct { _ struct{} `type:"structure"` - // The path on the container where the host volume is mounted. - ContainerPath *string `locationName:"containerPath" type:"string"` + // The job ID for an array job. Specifying an array job ID with this parameter + // lists all child jobs from within the specified array. + ArrayJobId *string `locationName:"arrayJobId" type:"string"` - // If this value is true, the container has read-only access to the volume. - // Otherwise, the container can write to the volume. The default value is false. - ReadOnly *bool `locationName:"readOnly" type:"boolean"` + // The filter to apply to the query. Only one filter can be used at a time. + // When the filter is used, jobStatus is ignored. The filter doesn't apply to + // child jobs in an array or multi-node parallel (MNP) jobs. The results are + // sorted by the createdAt field, with the most recent jobs being first. + // + // JOB_NAME + // + // The value of the filter is a case-insensitive match for the job name. If + // the value ends with an asterisk (*), the filter matches any job name that + // begins with the string before the '*'. This corresponds to the jobName value. + // For example, test1 matches both Test1 and test1, and test1* matches both + // test1 and Test10. When the JOB_NAME filter is used, the results are grouped + // by the job name and version. + // + // JOB_DEFINITION + // + // The value for the filter is the name or Amazon Resource Name (ARN) of the + // job definition. This corresponds to the jobDefinition value. The value is + // case sensitive. When the value for the filter is the job definition name, + // the results include all the jobs that used any revision of that job definition + // name. If the value ends with an asterisk (*), the filter matches any job + // definition name that begins with the string before the '*'. For example, + // jd1 matches only jd1, and jd1* matches both jd1 and jd1A. The version of + // the job definition that's used doesn't affect the sort order. When the JOB_DEFINITION + // filter is used and the ARN is used (which is in the form arn:${Partition}:batch:${Region}:${Account}:job-definition/${JobDefinitionName}:${Revision}), + // the results include jobs that used the specified revision of the job definition. + // Asterisk (*) isn't supported when the ARN is used. + // + // BEFORE_CREATED_AT + // + // The value for the filter is the time that's before the job was created. This + // corresponds to the createdAt value. The value is a string representation + // of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, + // 1970. + // + // AFTER_CREATED_AT + // + // The value for the filter is the time that's after the job was created. This + // corresponds to the createdAt value. The value is a string representation + // of the number of milliseconds since 00:00:00 UTC (midnight) on January 1, + // 1970. + Filters []*KeyValuesPair `locationName:"filters" type:"list"` - // The name of the volume to mount. - SourceVolume *string `locationName:"sourceVolume" type:"string"` + // The name or full Amazon Resource Name (ARN) of the job queue used to list + // jobs. + JobQueue *string `locationName:"jobQueue" type:"string"` + + // The job status used to filter jobs in the specified queue. If the filters + // parameter is specified, the jobStatus parameter is ignored and jobs with + // any status are returned. If you don't specify a status, only RUNNING jobs + // are returned. + JobStatus *string `locationName:"jobStatus" type:"string" enum:"JobStatus"` + + // The maximum number of results returned by ListJobs in paginated output. When + // this parameter is used, ListJobs only returns maxResults results in a single + // page and a nextToken response element. The remaining results of the initial + // request can be seen by sending another ListJobs request with the returned + // nextToken value. This value can be between 1 and 100. If this parameter isn't + // used, then ListJobs returns up to 100 results and a nextToken value if applicable. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // The job ID for a multi-node parallel job. Specifying a multi-node parallel + // job ID with this parameter lists all nodes that are associated with the specified + // job. + MultiNodeJobId *string `locationName:"multiNodeJobId" type:"string"` + + // The nextToken value returned from a previous paginated ListJobs request where + // maxResults was used and the results exceeded the value of that parameter. + // Pagination continues from the end of the previous results that returned the + // nextToken value. This value is null when there are no more results to return. + // + // Treat this token as an opaque identifier that's only used to retrieve the + // next items in a list and not for other programmatic purposes. + NextToken *string `locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -10440,7 +10612,7 @@ type MountPoint struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s MountPoint) String() string { +func (s ListJobsInput) String() string { return awsutil.Prettify(s) } @@ -10449,80 +10621,65 @@ func (s MountPoint) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s MountPoint) GoString() string { +func (s ListJobsInput) GoString() string { return s.String() } -// SetContainerPath sets the ContainerPath field's value. -func (s *MountPoint) SetContainerPath(v string) *MountPoint { - s.ContainerPath = &v +// SetArrayJobId sets the ArrayJobId field's value. +func (s *ListJobsInput) SetArrayJobId(v string) *ListJobsInput { + s.ArrayJobId = &v return s } -// SetReadOnly sets the ReadOnly field's value. -func (s *MountPoint) SetReadOnly(v bool) *MountPoint { - s.ReadOnly = &v +// SetFilters sets the Filters field's value. +func (s *ListJobsInput) SetFilters(v []*KeyValuesPair) *ListJobsInput { + s.Filters = v return s } -// SetSourceVolume sets the SourceVolume field's value. -func (s *MountPoint) SetSourceVolume(v string) *MountPoint { - s.SourceVolume = &v +// SetJobQueue sets the JobQueue field's value. +func (s *ListJobsInput) SetJobQueue(v string) *ListJobsInput { + s.JobQueue = &v return s } -// The network configuration for jobs that are running on Fargate resources. -// Jobs that are running on EC2 resources must not specify this parameter. -type NetworkConfiguration struct { - _ struct{} `type:"structure"` - - // Indicates whether the job has a public IP address. For a job that's running - // on Fargate resources in a private subnet to send outbound traffic to the - // internet (for example, to pull container images), the private subnet requires - // a NAT gateway be attached to route requests to the internet. For more information, - // see Amazon ECS task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) - // in the Amazon Elastic Container Service Developer Guide. The default value - // is "DISABLED". - AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"` +// SetJobStatus sets the JobStatus field's value. +func (s *ListJobsInput) SetJobStatus(v string) *ListJobsInput { + s.JobStatus = &v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s NetworkConfiguration) String() string { - return awsutil.Prettify(s) +// SetMaxResults sets the MaxResults field's value. +func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput { + s.MaxResults = &v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s NetworkConfiguration) GoString() string { - return s.String() +// SetMultiNodeJobId sets the MultiNodeJobId field's value. +func (s *ListJobsInput) SetMultiNodeJobId(v string) *ListJobsInput { + s.MultiNodeJobId = &v + return s } -// SetAssignPublicIp sets the AssignPublicIp field's value. -func (s *NetworkConfiguration) SetAssignPublicIp(v string) *NetworkConfiguration { - s.AssignPublicIp = &v +// SetNextToken sets the NextToken field's value. +func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput { + s.NextToken = &v return s } -// An object that represents the elastic network interface for a multi-node -// parallel job node. -type NetworkInterface struct { +type ListJobsOutput struct { _ struct{} `type:"structure"` - // The attachment ID for the network interface. - AttachmentId *string `locationName:"attachmentId" type:"string"` - - // The private IPv6 address for the network interface. - Ipv6Address *string `locationName:"ipv6Address" type:"string"` + // A list of job summaries that match the request. + // + // JobSummaryList is a required field + JobSummaryList []*JobSummary `locationName:"jobSummaryList" type:"list" required:"true"` - // The private IPv4 address for the network interface. - PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"` + // The nextToken value to include in a future ListJobs request. When the results + // of a ListJobs request exceed maxResults, this value can be used to retrieve + // the next page of results. This value is null when there are no more results + // to return. + NextToken *string `locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -10530,7 +10687,7 @@ type NetworkInterface struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NetworkInterface) String() string { +func (s ListJobsOutput) String() string { return awsutil.Prettify(s) } @@ -10539,40 +10696,44 @@ func (s NetworkInterface) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NetworkInterface) GoString() string { +func (s ListJobsOutput) GoString() string { return s.String() } -// SetAttachmentId sets the AttachmentId field's value. -func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface { - s.AttachmentId = &v - return s -} - -// SetIpv6Address sets the Ipv6Address field's value. -func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface { - s.Ipv6Address = &v +// SetJobSummaryList sets the JobSummaryList field's value. +func (s *ListJobsOutput) SetJobSummaryList(v []*JobSummary) *ListJobsOutput { + s.JobSummaryList = v return s } -// SetPrivateIpv4Address sets the PrivateIpv4Address field's value. -func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface { - s.PrivateIpv4Address = &v +// SetNextToken sets the NextToken field's value. +func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput { + s.NextToken = &v return s } -// An object that represents the details of a multi-node parallel job node. -type NodeDetails struct { +// Contains the parameters for ListSchedulingPolicies. +type ListSchedulingPoliciesInput struct { _ struct{} `type:"structure"` - // Specifies whether the current node is the main node for a multi-node parallel - // job. - IsMainNode *bool `locationName:"isMainNode" type:"boolean"` + // The maximum number of results that's returned by ListSchedulingPolicies in + // paginated output. When this parameter is used, ListSchedulingPolicies only + // returns maxResults results in a single page and a nextToken response element. + // You can see the remaining results of the initial request by sending another + // ListSchedulingPolicies request with the returned nextToken value. This value + // can be between 1 and 100. If this parameter isn't used, ListSchedulingPolicies + // returns up to 100 results and a nextToken value if applicable. + MaxResults *int64 `locationName:"maxResults" type:"integer"` - // The node index for the node. Node index numbering starts at zero. This index - // is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment - // variable. - NodeIndex *int64 `locationName:"nodeIndex" type:"integer"` + // The nextToken value that's returned from a previous paginated ListSchedulingPolicies + // request where maxResults was used and the results exceeded the value of that + // parameter. Pagination continues from the end of the previous results that + // returned the nextToken value. This value is null when there are no more results + // to return. + // + // Treat this token as an opaque identifier that's only used to retrieve the + // next items in a list and not for other programmatic purposes. + NextToken *string `locationName:"nextToken" type:"string"` } // String returns the string representation. @@ -10580,7 +10741,7 @@ type NodeDetails struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeDetails) String() string { +func (s ListSchedulingPoliciesInput) String() string { return awsutil.Prettify(s) } @@ -10589,46 +10750,33 @@ func (s NodeDetails) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeDetails) GoString() string { +func (s ListSchedulingPoliciesInput) GoString() string { return s.String() } -// SetIsMainNode sets the IsMainNode field's value. -func (s *NodeDetails) SetIsMainNode(v bool) *NodeDetails { - s.IsMainNode = &v - return s +// SetMaxResults sets the MaxResults field's value. +func (s *ListSchedulingPoliciesInput) SetMaxResults(v int64) *ListSchedulingPoliciesInput { + s.MaxResults = &v + return s } -// SetNodeIndex sets the NodeIndex field's value. -func (s *NodeDetails) SetNodeIndex(v int64) *NodeDetails { - s.NodeIndex = &v +// SetNextToken sets the NextToken field's value. +func (s *ListSchedulingPoliciesInput) SetNextToken(v string) *ListSchedulingPoliciesInput { + s.NextToken = &v return s } -// An object that represents any node overrides to a job definition that's used -// in a SubmitJob API operation. -// -// This parameter isn't applicable to jobs that are running on Fargate resources. -// Don't provide it for these jobs. Rather, use containerOverrides instead. -type NodeOverrides struct { +type ListSchedulingPoliciesOutput struct { _ struct{} `type:"structure"` - // The node property overrides for the job. - NodePropertyOverrides []*NodePropertyOverride `locationName:"nodePropertyOverrides" type:"list"` + // The nextToken value to include in a future ListSchedulingPolicies request. + // When the results of a ListSchedulingPolicies request exceed maxResults, this + // value can be used to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` - // The number of nodes to use with a multi-node parallel job. This value overrides - // the number of nodes that are specified in the job definition. To use this - // override, you must meet the following conditions: - // - // * There must be at least one node range in your job definition that has - // an open upper boundary, such as : or n:. - // - // * The lower boundary of the node range that's specified in the job definition - // must be fewer than the number of nodes specified in the override. - // - // * The main node index that's specified in the job definition must be fewer - // than the number of nodes specified in the override. - NumNodes *int64 `locationName:"numNodes" type:"integer"` + // A list of scheduling policies that match the request. + SchedulingPolicies []*SchedulingPolicyListingDetail `locationName:"schedulingPolicies" type:"list"` } // String returns the string representation. @@ -10636,7 +10784,7 @@ type NodeOverrides struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeOverrides) String() string { +func (s ListSchedulingPoliciesOutput) String() string { return awsutil.Prettify(s) } @@ -10645,64 +10793,33 @@ func (s NodeOverrides) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeOverrides) GoString() string { +func (s ListSchedulingPoliciesOutput) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *NodeOverrides) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "NodeOverrides"} - if s.NodePropertyOverrides != nil { - for i, v := range s.NodePropertyOverrides { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodePropertyOverrides", i), err.(request.ErrInvalidParams)) - } - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetNodePropertyOverrides sets the NodePropertyOverrides field's value. -func (s *NodeOverrides) SetNodePropertyOverrides(v []*NodePropertyOverride) *NodeOverrides { - s.NodePropertyOverrides = v +// SetNextToken sets the NextToken field's value. +func (s *ListSchedulingPoliciesOutput) SetNextToken(v string) *ListSchedulingPoliciesOutput { + s.NextToken = &v return s } -// SetNumNodes sets the NumNodes field's value. -func (s *NodeOverrides) SetNumNodes(v int64) *NodeOverrides { - s.NumNodes = &v +// SetSchedulingPolicies sets the SchedulingPolicies field's value. +func (s *ListSchedulingPoliciesOutput) SetSchedulingPolicies(v []*SchedulingPolicyListingDetail) *ListSchedulingPoliciesOutput { + s.SchedulingPolicies = v return s } -// An object that represents the node properties of a multi-node parallel job. -// -// Node properties can't be specified for Amazon EKS based job definitions. -type NodeProperties struct { - _ struct{} `type:"structure"` - - // Specifies the node index for the main node of a multi-node parallel job. - // This node index value must be fewer than the number of nodes. - // - // MainNode is a required field - MainNode *int64 `locationName:"mainNode" type:"integer" required:"true"` - - // A list of node ranges and their properties that are associated with a multi-node - // parallel job. - // - // NodeRangeProperties is a required field - NodeRangeProperties []*NodeRangeProperty `locationName:"nodeRangeProperties" type:"list" required:"true"` +// Contains the parameters for ListTagsForResource. +type ListTagsForResourceInput struct { + _ struct{} `type:"structure" nopayload:"true"` - // The number of nodes that are associated with a multi-node parallel job. + // The Amazon Resource Name (ARN) that identifies the resource that tags are + // listed for. Batch resources that support tags are compute environments, jobs, + // job definitions, job queues, and scheduling policies. ARNs for child jobs + // of array and multi-node parallel (MNP) jobs aren't supported. // - // NumNodes is a required field - NumNodes *int64 `locationName:"numNodes" type:"integer" required:"true"` + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` } // String returns the string representation. @@ -10710,7 +10827,7 @@ type NodeProperties struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeProperties) String() string { +func (s ListTagsForResourceInput) String() string { return awsutil.Prettify(s) } @@ -10719,31 +10836,18 @@ func (s NodeProperties) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeProperties) GoString() string { +func (s ListTagsForResourceInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *NodeProperties) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "NodeProperties"} - if s.MainNode == nil { - invalidParams.Add(request.NewErrParamRequired("MainNode")) - } - if s.NodeRangeProperties == nil { - invalidParams.Add(request.NewErrParamRequired("NodeRangeProperties")) - } - if s.NumNodes == nil { - invalidParams.Add(request.NewErrParamRequired("NumNodes")) +func (s *ListTagsForResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) } - if s.NodeRangeProperties != nil { - for i, v := range s.NodeRangeProperties { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodeRangeProperties", i), err.(request.ErrInvalidParams)) - } - } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) } if invalidParams.Len() > 0 { @@ -10752,40 +10856,17 @@ func (s *NodeProperties) Validate() error { return nil } -// SetMainNode sets the MainNode field's value. -func (s *NodeProperties) SetMainNode(v int64) *NodeProperties { - s.MainNode = &v - return s -} - -// SetNodeRangeProperties sets the NodeRangeProperties field's value. -func (s *NodeProperties) SetNodeRangeProperties(v []*NodeRangeProperty) *NodeProperties { - s.NodeRangeProperties = v - return s -} - -// SetNumNodes sets the NumNodes field's value. -func (s *NodeProperties) SetNumNodes(v int64) *NodeProperties { - s.NumNodes = &v +// SetResourceArn sets the ResourceArn field's value. +func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput { + s.ResourceArn = &v return s } -// An object that represents the properties of a node that's associated with -// a multi-node parallel job. -type NodePropertiesSummary struct { +type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` - // Specifies whether the current node is the main node for a multi-node parallel - // job. - IsMainNode *bool `locationName:"isMainNode" type:"boolean"` - - // The node index for the node. Node index numbering begins at zero. This index - // is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment - // variable. - NodeIndex *int64 `locationName:"nodeIndex" type:"integer"` - - // The number of nodes that are associated with a multi-node parallel job. - NumNodes *int64 `locationName:"numNodes" type:"integer"` + // The tags for the resource. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` } // String returns the string representation. @@ -10793,7 +10874,7 @@ type NodePropertiesSummary struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodePropertiesSummary) String() string { +func (s ListTagsForResourceOutput) String() string { return awsutil.Prettify(s) } @@ -10802,112 +10883,99 @@ func (s NodePropertiesSummary) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodePropertiesSummary) GoString() string { +func (s ListTagsForResourceOutput) GoString() string { return s.String() } -// SetIsMainNode sets the IsMainNode field's value. -func (s *NodePropertiesSummary) SetIsMainNode(v bool) *NodePropertiesSummary { - s.IsMainNode = &v - return s -} - -// SetNodeIndex sets the NodeIndex field's value. -func (s *NodePropertiesSummary) SetNodeIndex(v int64) *NodePropertiesSummary { - s.NodeIndex = &v - return s -} - -// SetNumNodes sets the NumNodes field's value. -func (s *NodePropertiesSummary) SetNumNodes(v int64) *NodePropertiesSummary { - s.NumNodes = &v +// SetTags sets the Tags field's value. +func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput { + s.Tags = v return s } -// The object that represents any node overrides to a job definition that's -// used in a SubmitJob API operation. -type NodePropertyOverride struct { +// Log configuration options to send to a custom log driver for the container. +type LogConfiguration struct { _ struct{} `type:"structure"` - // The overrides that are sent to a node range. - ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"` - - // The range of nodes, using node index values, that's used to override. A range - // of 0:3 indicates nodes with index values of 0 through 3. If the starting - // range value is omitted (:n), then 0 is used to start the range. If the ending - // range value is omitted (n:), then the highest possible node index is used - // to end the range. + // The log driver to use for the container. The valid values that are listed + // for this parameter are log drivers that the Amazon ECS container agent can + // communicate with by default. // - // TargetNodes is a required field - TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s NodePropertyOverride) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s NodePropertyOverride) GoString() string { - return s.String() -} - -// Validate inspects the fields of the type to determine if they are valid. -func (s *NodePropertyOverride) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "NodePropertyOverride"} - if s.TargetNodes == nil { - invalidParams.Add(request.NewErrParamRequired("TargetNodes")) - } - if s.ContainerOverrides != nil { - if err := s.ContainerOverrides.Validate(); err != nil { - invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetContainerOverrides sets the ContainerOverrides field's value. -func (s *NodePropertyOverride) SetContainerOverrides(v *ContainerOverrides) *NodePropertyOverride { - s.ContainerOverrides = v - return s -} - -// SetTargetNodes sets the TargetNodes field's value. -func (s *NodePropertyOverride) SetTargetNodes(v string) *NodePropertyOverride { - s.TargetNodes = &v - return s -} - -// An object that represents the properties of the node range for a multi-node -// parallel job. -type NodeRangeProperty struct { - _ struct{} `type:"structure"` + // The supported log drivers are awslogs, fluentd, gelf, json-file, journald, + // logentries, syslog, and splunk. + // + // Jobs that are running on Fargate resources are restricted to the awslogs + // and splunk log drivers. + // + // awslogs + // + // Specifies the Amazon CloudWatch Logs logging driver. For more information, + // see Using the awslogs log driver (https://docs.aws.amazon.com/batch/latest/userguide/using_awslogs.html) + // in the Batch User Guide and Amazon CloudWatch Logs logging driver (https://docs.docker.com/config/containers/logging/awslogs/) + // in the Docker documentation. + // + // fluentd + // + // Specifies the Fluentd logging driver. For more information including usage + // and options, see Fluentd logging driver (https://docs.docker.com/config/containers/logging/fluentd/) + // in the Docker documentation. + // + // gelf + // + // Specifies the Graylog Extended Format (GELF) logging driver. For more information + // including usage and options, see Graylog Extended Format logging driver (https://docs.docker.com/config/containers/logging/gelf/) + // in the Docker documentation. + // + // journald + // + // Specifies the journald logging driver. For more information including usage + // and options, see Journald logging driver (https://docs.docker.com/config/containers/logging/journald/) + // in the Docker documentation. + // + // json-file + // + // Specifies the JSON file logging driver. For more information including usage + // and options, see JSON File logging driver (https://docs.docker.com/config/containers/logging/json-file/) + // in the Docker documentation. + // + // splunk + // + // Specifies the Splunk logging driver. For more information including usage + // and options, see Splunk logging driver (https://docs.docker.com/config/containers/logging/splunk/) + // in the Docker documentation. + // + // syslog + // + // Specifies the syslog logging driver. For more information including usage + // and options, see Syslog logging driver (https://docs.docker.com/config/containers/logging/syslog/) + // in the Docker documentation. + // + // If you have a custom driver that's not listed earlier that you want to work + // with the Amazon ECS container agent, you can fork the Amazon ECS container + // agent project that's available on GitHub (https://github.com/aws/amazon-ecs-agent) + // and customize it to work with that driver. We encourage you to submit pull + // requests for changes that you want to have included. However, Amazon Web + // Services doesn't currently support running modified copies of this software. + // + // 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" + // + // LogDriver is a required field + LogDriver *string `locationName:"logDriver" type:"string" required:"true" enum:"LogDriver"` - // The container details for the node range. - Container *ContainerProperties `locationName:"container" type:"structure"` + // The configuration options to send to the log driver. This parameter requires + // version 1.19 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" + Options map[string]*string `locationName:"options" type:"map"` - // The range of nodes, using node index values. A range of 0:3 indicates nodes - // with index values of 0 through 3. If the starting range value is omitted - // (:n), then 0 is used to start the range. If the ending range value is omitted - // (n:), then the highest possible node index is used to end the range. Your - // accumulative node ranges must account for all nodes (0:n). You can nest node - // ranges (for example, 0:10 and 4:5). In this case, the 4:5 range properties - // override the 0:10 properties. - // - // TargetNodes is a required field - TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"` + // The secrets to pass to the log configuration. For more information, see Specifying + // sensitive data (https://docs.aws.amazon.com/batch/latest/userguide/specifying-sensitive-data.html) + // in the Batch User Guide. + SecretOptions []*Secret `locationName:"secretOptions" type:"list"` } // String returns the string representation. @@ -10915,7 +10983,7 @@ type NodeRangeProperty struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeRangeProperty) String() string { +func (s LogConfiguration) String() string { return awsutil.Prettify(s) } @@ -10924,19 +10992,24 @@ func (s NodeRangeProperty) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s NodeRangeProperty) GoString() string { +func (s LogConfiguration) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *NodeRangeProperty) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "NodeRangeProperty"} - if s.TargetNodes == nil { - invalidParams.Add(request.NewErrParamRequired("TargetNodes")) +func (s *LogConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LogConfiguration"} + if s.LogDriver == nil { + invalidParams.Add(request.NewErrParamRequired("LogDriver")) } - if s.Container != nil { - if err := s.Container.Validate(); err != nil { - invalidParams.AddNested("Container", err.(request.ErrInvalidParams)) + if s.SecretOptions != nil { + for i, v := range s.SecretOptions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SecretOptions", i), err.(request.ErrInvalidParams)) + } } } @@ -10946,113 +11019,39 @@ func (s *NodeRangeProperty) Validate() error { return nil } -// SetContainer sets the Container field's value. -func (s *NodeRangeProperty) SetContainer(v *ContainerProperties) *NodeRangeProperty { - s.Container = v +// SetLogDriver sets the LogDriver field's value. +func (s *LogConfiguration) SetLogDriver(v string) *LogConfiguration { + s.LogDriver = &v return s } -// SetTargetNodes sets the TargetNodes field's value. -func (s *NodeRangeProperty) SetTargetNodes(v string) *NodeRangeProperty { - s.TargetNodes = &v +// SetOptions sets the Options field's value. +func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration { + s.Options = v return s } -// Contains the parameters for RegisterJobDefinition. -type RegisterJobDefinitionInput struct { - _ struct{} `type:"structure"` - - // An object with various properties specific to Amazon ECS based single-node - // container-based jobs. If the job definition's type parameter is container, - // then you must specify either containerProperties or nodeProperties. This - // must not be specified for Amazon EKS based job definitions. - // - // If the job runs on Fargate resources, then you must not specify nodeProperties; - // use only containerProperties. - ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"` - - // An object with various properties that are specific to Amazon EKS based jobs. - // This must not be specified for Amazon ECS based job definitions. - EksProperties *EksProperties `locationName:"eksProperties" type:"structure"` - - // The name of the job definition to register. It can be up to 128 letters long. - // It can contain uppercase and lowercase letters, numbers, hyphens (-), and - // underscores (_). - // - // JobDefinitionName is a required field - JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"` - - // An object with various properties specific to multi-node parallel jobs. If - // you specify node properties for a job, it becomes a multi-node parallel job. - // For more information, see Multi-node Parallel Jobs (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-parallel-jobs.html) - // in the Batch User Guide. If the job definition's type parameter is container, - // then you must specify either containerProperties or nodeProperties. - // - // If the job runs on Fargate resources, then you must not specify nodeProperties; - // use containerProperties instead. - // - // If the job runs on Amazon EKS resources, then you must not specify nodeProperties. - NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"` - - // Default parameter substitution placeholders to set in the job definition. - // Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob - // request override any corresponding parameter defaults from the job definition. - Parameters map[string]*string `locationName:"parameters" type:"map"` - - // The platform capabilities required by the job definition. If no value is - // specified, it defaults to EC2. To run the job on Fargate resources, specify - // FARGATE. - // - // If the job runs on Amazon EKS resources, then you must not specify platformCapabilities. - PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list" enum:"PlatformCapability"` - - // Specifies whether to propagate the tags from the job or job definition to - // the corresponding Amazon ECS task. If no value is specified, the tags are - // not propagated. Tags can only be propagated to the tasks during task creation. - // For tags with the same name, job tags are given priority over job definitions - // tags. If the total number of combined tags from the job and job definition - // is over 50, the job is moved to the FAILED state. - // - // If the job runs on Amazon EKS resources, then you must not specify propagateTags. - PropagateTags *bool `locationName:"propagateTags" type:"boolean"` - - // The retry strategy to use for failed jobs that are submitted with this job - // definition. Any retry strategy that's specified during a SubmitJob operation - // overrides the retry strategy defined here. If a job is terminated due to - // a timeout, it isn't retried. - RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` +// SetSecretOptions sets the SecretOptions field's value. +func (s *LogConfiguration) SetSecretOptions(v []*Secret) *LogConfiguration { + s.SecretOptions = v + return s +} - // The scheduling priority for jobs that are submitted with this job definition. - // This only affects jobs in job queues with a fair share policy. Jobs with - // a higher scheduling priority are scheduled before jobs with a lower scheduling - // priority. - // - // The minimum supported value is 0 and the maximum supported value is 9999. - SchedulingPriority *int64 `locationName:"schedulingPriority" type:"integer"` +// Details for a Docker volume mount point that's used in a job's container +// properties. This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerCreate) +// section of the Docker Remote API and the --volume option to docker run. +type MountPoint struct { + _ struct{} `type:"structure"` - // The tags that you apply to the job definition to help you categorize and - // organize your resources. Each tag consists of a key and an optional value. - // For more information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html) - // in Batch User Guide. - Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The path on the container where the host volume is mounted. + ContainerPath *string `locationName:"containerPath" type:"string"` - // The timeout configuration for jobs that are submitted with this job definition, - // after which Batch terminates your jobs if they have not finished. If a job - // is terminated due to a timeout, it isn't retried. The minimum value for the - // timeout is 60 seconds. Any timeout configuration that's specified during - // a SubmitJob operation overrides the timeout configuration defined here. For - // more information, see Job Timeouts (https://docs.aws.amazon.com/batch/latest/userguide/job_timeouts.html) - // in the Batch User Guide. - Timeout *JobTimeout `locationName:"timeout" type:"structure"` + // If this value is true, the container has read-only access to the volume. + // Otherwise, the container can write to the volume. The default value is false. + ReadOnly *bool `locationName:"readOnly" type:"boolean"` - // The type of job definition. For more information about multi-node parallel - // jobs, see Creating a multi-node parallel job definition (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html) - // in the Batch User Guide. - // - // If the job is run on Fargate resources, then multinode isn't supported. - // - // Type is a required field - Type *string `locationName:"type" type:"string" required:"true" enum:"JobDefinitionType"` + // The name of the volume to mount. + SourceVolume *string `locationName:"sourceVolume" type:"string"` } // String returns the string representation. @@ -11060,7 +11059,7 @@ type RegisterJobDefinitionInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RegisterJobDefinitionInput) String() string { +func (s MountPoint) String() string { return awsutil.Prettify(s) } @@ -11069,138 +11068,130 @@ func (s RegisterJobDefinitionInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RegisterJobDefinitionInput) GoString() string { +func (s MountPoint) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *RegisterJobDefinitionInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RegisterJobDefinitionInput"} - if s.JobDefinitionName == nil { - invalidParams.Add(request.NewErrParamRequired("JobDefinitionName")) - } - if s.Tags != nil && len(s.Tags) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) - } - if s.Type == nil { - invalidParams.Add(request.NewErrParamRequired("Type")) - } - if s.ContainerProperties != nil { - if err := s.ContainerProperties.Validate(); err != nil { - invalidParams.AddNested("ContainerProperties", err.(request.ErrInvalidParams)) - } - } - if s.EksProperties != nil { - if err := s.EksProperties.Validate(); err != nil { - invalidParams.AddNested("EksProperties", err.(request.ErrInvalidParams)) - } - } - if s.NodeProperties != nil { - if err := s.NodeProperties.Validate(); err != nil { - invalidParams.AddNested("NodeProperties", err.(request.ErrInvalidParams)) - } - } - if s.RetryStrategy != nil { - if err := s.RetryStrategy.Validate(); err != nil { - invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams)) - } - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetContainerPath sets the ContainerPath field's value. +func (s *MountPoint) SetContainerPath(v string) *MountPoint { + s.ContainerPath = &v + return s } -// SetContainerProperties sets the ContainerProperties field's value. -func (s *RegisterJobDefinitionInput) SetContainerProperties(v *ContainerProperties) *RegisterJobDefinitionInput { - s.ContainerProperties = v +// SetReadOnly sets the ReadOnly field's value. +func (s *MountPoint) SetReadOnly(v bool) *MountPoint { + s.ReadOnly = &v return s } -// SetEksProperties sets the EksProperties field's value. -func (s *RegisterJobDefinitionInput) SetEksProperties(v *EksProperties) *RegisterJobDefinitionInput { - s.EksProperties = v +// SetSourceVolume sets the SourceVolume field's value. +func (s *MountPoint) SetSourceVolume(v string) *MountPoint { + s.SourceVolume = &v return s } -// SetJobDefinitionName sets the JobDefinitionName field's value. -func (s *RegisterJobDefinitionInput) SetJobDefinitionName(v string) *RegisterJobDefinitionInput { - s.JobDefinitionName = &v - return s +// The network configuration for jobs that are running on Fargate resources. +// Jobs that are running on Amazon EC2 resources must not specify this parameter. +type NetworkConfiguration struct { + _ struct{} `type:"structure"` + + // Indicates whether the job has a public IP address. For a job that's running + // on Fargate resources in a private subnet to send outbound traffic to the + // internet (for example, to pull container images), the private subnet requires + // a NAT gateway be attached to route requests to the internet. For more information, + // see Amazon ECS task networking (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-networking.html) + // in the Amazon Elastic Container Service Developer Guide. The default value + // is "DISABLED". + AssignPublicIp *string `locationName:"assignPublicIp" type:"string" enum:"AssignPublicIp"` } -// SetNodeProperties sets the NodeProperties field's value. -func (s *RegisterJobDefinitionInput) SetNodeProperties(v *NodeProperties) *RegisterJobDefinitionInput { - s.NodeProperties = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NetworkConfiguration) String() string { + return awsutil.Prettify(s) } -// SetParameters sets the Parameters field's value. -func (s *RegisterJobDefinitionInput) SetParameters(v map[string]*string) *RegisterJobDefinitionInput { - s.Parameters = v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NetworkConfiguration) GoString() string { + return s.String() } -// SetPlatformCapabilities sets the PlatformCapabilities field's value. -func (s *RegisterJobDefinitionInput) SetPlatformCapabilities(v []*string) *RegisterJobDefinitionInput { - s.PlatformCapabilities = v +// SetAssignPublicIp sets the AssignPublicIp field's value. +func (s *NetworkConfiguration) SetAssignPublicIp(v string) *NetworkConfiguration { + s.AssignPublicIp = &v return s } -// SetPropagateTags sets the PropagateTags field's value. -func (s *RegisterJobDefinitionInput) SetPropagateTags(v bool) *RegisterJobDefinitionInput { - s.PropagateTags = &v - return s +// An object that represents the elastic network interface for a multi-node +// parallel job node. +type NetworkInterface struct { + _ struct{} `type:"structure"` + + // The attachment ID for the network interface. + AttachmentId *string `locationName:"attachmentId" type:"string"` + + // The private IPv6 address for the network interface. + Ipv6Address *string `locationName:"ipv6Address" type:"string"` + + // The private IPv4 address for the network interface. + PrivateIpv4Address *string `locationName:"privateIpv4Address" type:"string"` } -// SetRetryStrategy sets the RetryStrategy field's value. -func (s *RegisterJobDefinitionInput) SetRetryStrategy(v *RetryStrategy) *RegisterJobDefinitionInput { - s.RetryStrategy = v - return s +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NetworkInterface) String() string { + return awsutil.Prettify(s) } -// SetSchedulingPriority sets the SchedulingPriority field's value. -func (s *RegisterJobDefinitionInput) SetSchedulingPriority(v int64) *RegisterJobDefinitionInput { - s.SchedulingPriority = &v - return s +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NetworkInterface) GoString() string { + return s.String() } -// SetTags sets the Tags field's value. -func (s *RegisterJobDefinitionInput) SetTags(v map[string]*string) *RegisterJobDefinitionInput { - s.Tags = v +// SetAttachmentId sets the AttachmentId field's value. +func (s *NetworkInterface) SetAttachmentId(v string) *NetworkInterface { + s.AttachmentId = &v return s } -// SetTimeout sets the Timeout field's value. -func (s *RegisterJobDefinitionInput) SetTimeout(v *JobTimeout) *RegisterJobDefinitionInput { - s.Timeout = v +// SetIpv6Address sets the Ipv6Address field's value. +func (s *NetworkInterface) SetIpv6Address(v string) *NetworkInterface { + s.Ipv6Address = &v return s } -// SetType sets the Type field's value. -func (s *RegisterJobDefinitionInput) SetType(v string) *RegisterJobDefinitionInput { - s.Type = &v +// SetPrivateIpv4Address sets the PrivateIpv4Address field's value. +func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface { + s.PrivateIpv4Address = &v return s } -type RegisterJobDefinitionOutput struct { +// An object that represents the details of a multi-node parallel job node. +type NodeDetails struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the job definition. - // - // JobDefinitionArn is a required field - JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"` - - // The name of the job definition. - // - // JobDefinitionName is a required field - JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"` + // Specifies whether the current node is the main node for a multi-node parallel + // job. + IsMainNode *bool `locationName:"isMainNode" type:"boolean"` - // The revision of the job definition. - // - // Revision is a required field - Revision *int64 `locationName:"revision" type:"integer" required:"true"` + // The node index for the node. Node index numbering starts at zero. This index + // is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment + // variable. + NodeIndex *int64 `locationName:"nodeIndex" type:"integer"` } // String returns the string representation. @@ -11208,7 +11199,7 @@ type RegisterJobDefinitionOutput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RegisterJobDefinitionOutput) String() string { +func (s NodeDetails) String() string { return awsutil.Prettify(s) } @@ -11217,37 +11208,47 @@ func (s RegisterJobDefinitionOutput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RegisterJobDefinitionOutput) GoString() string { +func (s NodeDetails) GoString() string { return s.String() } -// SetJobDefinitionArn sets the JobDefinitionArn field's value. -func (s *RegisterJobDefinitionOutput) SetJobDefinitionArn(v string) *RegisterJobDefinitionOutput { - s.JobDefinitionArn = &v - return s -} - -// SetJobDefinitionName sets the JobDefinitionName field's value. -func (s *RegisterJobDefinitionOutput) SetJobDefinitionName(v string) *RegisterJobDefinitionOutput { - s.JobDefinitionName = &v +// SetIsMainNode sets the IsMainNode field's value. +func (s *NodeDetails) SetIsMainNode(v bool) *NodeDetails { + s.IsMainNode = &v return s } -// SetRevision sets the Revision field's value. -func (s *RegisterJobDefinitionOutput) SetRevision(v int64) *RegisterJobDefinitionOutput { - s.Revision = &v +// SetNodeIndex sets the NodeIndex field's value. +func (s *NodeDetails) SetNodeIndex(v int64) *NodeDetails { + s.NodeIndex = &v return s } -// The repository credentials for private registry authentication. -type RepositoryCredentials struct { +// An object that represents any node overrides to a job definition that's used +// in a SubmitJob (https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) +// API operation. +// +// This parameter isn't applicable to jobs that are running on Fargate resources. +// Don't provide it for these jobs. Rather, use containerOverrides instead. +type NodeOverrides struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the secret containing the private repository - // credentials. + // The node property overrides for the job. + NodePropertyOverrides []*NodePropertyOverride `locationName:"nodePropertyOverrides" type:"list"` + + // The number of nodes to use with a multi-node parallel job. This value overrides + // the number of nodes that are specified in the job definition. To use this + // override, you must meet the following conditions: // - // CredentialsParameter is a required field - CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"` + // * There must be at least one node range in your job definition that has + // an open upper boundary, such as : or n:. + // + // * The lower boundary of the node range that's specified in the job definition + // must be fewer than the number of nodes specified in the override. + // + // * The main node index that's specified in the job definition must be fewer + // than the number of nodes specified in the override. + NumNodes *int64 `locationName:"numNodes" type:"integer"` } // String returns the string representation. @@ -11255,7 +11256,7 @@ type RepositoryCredentials struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RepositoryCredentials) String() string { +func (s NodeOverrides) String() string { return awsutil.Prettify(s) } @@ -11264,15 +11265,22 @@ func (s RepositoryCredentials) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RepositoryCredentials) GoString() string { +func (s NodeOverrides) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *RepositoryCredentials) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"} - if s.CredentialsParameter == nil { - invalidParams.Add(request.NewErrParamRequired("CredentialsParameter")) +func (s *NodeOverrides) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "NodeOverrides"} + if s.NodePropertyOverrides != nil { + for i, v := range s.NodePropertyOverrides { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodePropertyOverrides", i), err.(request.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -11281,41 +11289,727 @@ func (s *RepositoryCredentials) Validate() error { return nil } -// SetCredentialsParameter sets the CredentialsParameter field's value. -func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials { - s.CredentialsParameter = &v +// SetNodePropertyOverrides sets the NodePropertyOverrides field's value. +func (s *NodeOverrides) SetNodePropertyOverrides(v []*NodePropertyOverride) *NodeOverrides { + s.NodePropertyOverrides = v return s } -// The type and amount of a resource to assign to a container. The supported -// resources include GPU, MEMORY, and VCPU. -type ResourceRequirement struct { +// SetNumNodes sets the NumNodes field's value. +func (s *NodeOverrides) SetNumNodes(v int64) *NodeOverrides { + s.NumNodes = &v + return s +} + +// An object that represents the node properties of a multi-node parallel job. +// +// Node properties can't be specified for Amazon EKS based job definitions. +type NodeProperties struct { _ struct{} `type:"structure"` - // The type of resource to assign to a container. The supported resources include - // GPU, MEMORY, and VCPU. + // Specifies the node index for the main node of a multi-node parallel job. + // This node index value must be fewer than the number of nodes. // - // Type is a required field - Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"` + // MainNode is a required field + MainNode *int64 `locationName:"mainNode" type:"integer" required:"true"` - // The quantity of the specified resource to reserve for the container. The - // values vary based on the type specified. - // - // type="GPU" - // - // The number of physical GPUs to reserve for the container. Make sure that - // the number of GPUs reserved for all containers in a job doesn't exceed the - // number of available GPUs on the compute resource that the job is launched - // on. + // A list of node ranges and their properties that are associated with a multi-node + // parallel job. // - // GPUs aren't available for jobs that are running on Fargate resources. + // NodeRangeProperties is a required field + NodeRangeProperties []*NodeRangeProperty `locationName:"nodeRangeProperties" type:"list" required:"true"` + + // The number of nodes that are associated with a multi-node parallel job. // - // type="MEMORY" + // NumNodes is a required field + NumNodes *int64 `locationName:"numNodes" type:"integer" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodeProperties) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodeProperties) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NodeProperties) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "NodeProperties"} + if s.MainNode == nil { + invalidParams.Add(request.NewErrParamRequired("MainNode")) + } + if s.NodeRangeProperties == nil { + invalidParams.Add(request.NewErrParamRequired("NodeRangeProperties")) + } + if s.NumNodes == nil { + invalidParams.Add(request.NewErrParamRequired("NumNodes")) + } + if s.NodeRangeProperties != nil { + for i, v := range s.NodeRangeProperties { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "NodeRangeProperties", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMainNode sets the MainNode field's value. +func (s *NodeProperties) SetMainNode(v int64) *NodeProperties { + s.MainNode = &v + return s +} + +// SetNodeRangeProperties sets the NodeRangeProperties field's value. +func (s *NodeProperties) SetNodeRangeProperties(v []*NodeRangeProperty) *NodeProperties { + s.NodeRangeProperties = v + return s +} + +// SetNumNodes sets the NumNodes field's value. +func (s *NodeProperties) SetNumNodes(v int64) *NodeProperties { + s.NumNodes = &v + return s +} + +// An object that represents the properties of a node that's associated with +// a multi-node parallel job. +type NodePropertiesSummary struct { + _ struct{} `type:"structure"` + + // Specifies whether the current node is the main node for a multi-node parallel + // job. + IsMainNode *bool `locationName:"isMainNode" type:"boolean"` + + // The node index for the node. Node index numbering begins at zero. This index + // is also available on the node with the AWS_BATCH_JOB_NODE_INDEX environment + // variable. + NodeIndex *int64 `locationName:"nodeIndex" type:"integer"` + + // The number of nodes that are associated with a multi-node parallel job. + NumNodes *int64 `locationName:"numNodes" type:"integer"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodePropertiesSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodePropertiesSummary) GoString() string { + return s.String() +} + +// SetIsMainNode sets the IsMainNode field's value. +func (s *NodePropertiesSummary) SetIsMainNode(v bool) *NodePropertiesSummary { + s.IsMainNode = &v + return s +} + +// SetNodeIndex sets the NodeIndex field's value. +func (s *NodePropertiesSummary) SetNodeIndex(v int64) *NodePropertiesSummary { + s.NodeIndex = &v + return s +} + +// SetNumNodes sets the NumNodes field's value. +func (s *NodePropertiesSummary) SetNumNodes(v int64) *NodePropertiesSummary { + s.NumNodes = &v + return s +} + +// The object that represents any node overrides to a job definition that's +// used in a SubmitJob (https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitJob.html) +// API operation. +type NodePropertyOverride struct { + _ struct{} `type:"structure"` + + // The overrides that are sent to a node range. + ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"` + + // An object that contains the properties that you want to replace for the existing + // Amazon ECS resources of a job. + EcsPropertiesOverride *EcsPropertiesOverride `locationName:"ecsPropertiesOverride" type:"structure"` + + // An object that contains the instance types that you want to replace for the + // existing resources of a job. + InstanceTypes []*string `locationName:"instanceTypes" type:"list"` + + // The range of nodes, using node index values, that's used to override. A range + // of 0:3 indicates nodes with index values of 0 through 3. If the starting + // range value is omitted (:n), then 0 is used to start the range. If the ending + // range value is omitted (n:), then the highest possible node index is used + // to end the range. + // + // TargetNodes is a required field + TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodePropertyOverride) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodePropertyOverride) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NodePropertyOverride) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "NodePropertyOverride"} + if s.TargetNodes == nil { + invalidParams.Add(request.NewErrParamRequired("TargetNodes")) + } + if s.ContainerOverrides != nil { + if err := s.ContainerOverrides.Validate(); err != nil { + invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams)) + } + } + if s.EcsPropertiesOverride != nil { + if err := s.EcsPropertiesOverride.Validate(); err != nil { + invalidParams.AddNested("EcsPropertiesOverride", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContainerOverrides sets the ContainerOverrides field's value. +func (s *NodePropertyOverride) SetContainerOverrides(v *ContainerOverrides) *NodePropertyOverride { + s.ContainerOverrides = v + return s +} + +// SetEcsPropertiesOverride sets the EcsPropertiesOverride field's value. +func (s *NodePropertyOverride) SetEcsPropertiesOverride(v *EcsPropertiesOverride) *NodePropertyOverride { + s.EcsPropertiesOverride = v + return s +} + +// SetInstanceTypes sets the InstanceTypes field's value. +func (s *NodePropertyOverride) SetInstanceTypes(v []*string) *NodePropertyOverride { + s.InstanceTypes = v + return s +} + +// SetTargetNodes sets the TargetNodes field's value. +func (s *NodePropertyOverride) SetTargetNodes(v string) *NodePropertyOverride { + s.TargetNodes = &v + return s +} + +// This is an object that represents the properties of the node range for a +// multi-node parallel job. +type NodeRangeProperty struct { + _ struct{} `type:"structure"` + + // The container details for the node range. + Container *ContainerProperties `locationName:"container" type:"structure"` + + // This is an object that represents the properties of the node range for a + // multi-node parallel job. + EcsProperties *EcsProperties `locationName:"ecsProperties" type:"structure"` + + // The instance types of the underlying host infrastructure of a multi-node + // parallel job. + // + // This parameter isn't applicable to jobs that are running on Fargate resources. + // + // In addition, this list object is currently limited to one element. + InstanceTypes []*string `locationName:"instanceTypes" type:"list"` + + // The range of nodes, using node index values. A range of 0:3 indicates nodes + // with index values of 0 through 3. If the starting range value is omitted + // (:n), then 0 is used to start the range. If the ending range value is omitted + // (n:), then the highest possible node index is used to end the range. Your + // accumulative node ranges must account for all nodes (0:n). You can nest node + // ranges (for example, 0:10 and 4:5). In this case, the 4:5 range properties + // override the 0:10 properties. + // + // TargetNodes is a required field + TargetNodes *string `locationName:"targetNodes" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodeRangeProperty) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s NodeRangeProperty) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *NodeRangeProperty) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "NodeRangeProperty"} + if s.TargetNodes == nil { + invalidParams.Add(request.NewErrParamRequired("TargetNodes")) + } + if s.Container != nil { + if err := s.Container.Validate(); err != nil { + invalidParams.AddNested("Container", err.(request.ErrInvalidParams)) + } + } + if s.EcsProperties != nil { + if err := s.EcsProperties.Validate(); err != nil { + invalidParams.AddNested("EcsProperties", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContainer sets the Container field's value. +func (s *NodeRangeProperty) SetContainer(v *ContainerProperties) *NodeRangeProperty { + s.Container = v + return s +} + +// SetEcsProperties sets the EcsProperties field's value. +func (s *NodeRangeProperty) SetEcsProperties(v *EcsProperties) *NodeRangeProperty { + s.EcsProperties = v + return s +} + +// SetInstanceTypes sets the InstanceTypes field's value. +func (s *NodeRangeProperty) SetInstanceTypes(v []*string) *NodeRangeProperty { + s.InstanceTypes = v + return s +} + +// SetTargetNodes sets the TargetNodes field's value. +func (s *NodeRangeProperty) SetTargetNodes(v string) *NodeRangeProperty { + s.TargetNodes = &v + return s +} + +// Contains the parameters for RegisterJobDefinition. +type RegisterJobDefinitionInput struct { + _ struct{} `type:"structure"` + + // An object with properties specific to Amazon ECS-based single-node container-based + // jobs. If the job definition's type parameter is container, then you must + // specify either containerProperties or nodeProperties. This must not be specified + // for Amazon EKS-based job definitions. + // + // If the job runs on Fargate resources, then you must not specify nodeProperties; + // use only containerProperties. + ContainerProperties *ContainerProperties `locationName:"containerProperties" type:"structure"` + + // An object with properties that are specific to Amazon ECS-based jobs. This + // must not be specified for Amazon EKS-based job definitions. + EcsProperties *EcsProperties `locationName:"ecsProperties" type:"structure"` + + // An object with properties that are specific to Amazon EKS-based jobs. This + // must not be specified for Amazon ECS based job definitions. + EksProperties *EksProperties `locationName:"eksProperties" type:"structure"` + + // The name of the job definition to register. It can be up to 128 letters long. + // It can contain uppercase and lowercase letters, numbers, hyphens (-), and + // underscores (_). + // + // JobDefinitionName is a required field + JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"` + + // An object with properties specific to multi-node parallel jobs. If you specify + // node properties for a job, it becomes a multi-node parallel job. For more + // information, see Multi-node Parallel Jobs (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-parallel-jobs.html) + // in the Batch User Guide. + // + // If the job runs on Fargate resources, then you must not specify nodeProperties; + // use containerProperties instead. + // + // If the job runs on Amazon EKS resources, then you must not specify nodeProperties. + NodeProperties *NodeProperties `locationName:"nodeProperties" type:"structure"` + + // Default parameter substitution placeholders to set in the job definition. + // Parameters are specified as a key-value pair mapping. Parameters in a SubmitJob + // request override any corresponding parameter defaults from the job definition. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // The platform capabilities required by the job definition. If no value is + // specified, it defaults to EC2. To run the job on Fargate resources, specify + // FARGATE. + // + // If the job runs on Amazon EKS resources, then you must not specify platformCapabilities. + PlatformCapabilities []*string `locationName:"platformCapabilities" type:"list" enum:"PlatformCapability"` + + // Specifies whether to propagate the tags from the job or job definition to + // the corresponding Amazon ECS task. If no value is specified, the tags are + // not propagated. Tags can only be propagated to the tasks during task creation. + // For tags with the same name, job tags are given priority over job definitions + // tags. If the total number of combined tags from the job and job definition + // is over 50, the job is moved to the FAILED state. + // + // If the job runs on Amazon EKS resources, then you must not specify propagateTags. + PropagateTags *bool `locationName:"propagateTags" type:"boolean"` + + // The retry strategy to use for failed jobs that are submitted with this job + // definition. Any retry strategy that's specified during a SubmitJob operation + // overrides the retry strategy defined here. If a job is terminated due to + // a timeout, it isn't retried. + RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` + + // The scheduling priority for jobs that are submitted with this job definition. + // This only affects jobs in job queues with a fair share policy. Jobs with + // a higher scheduling priority are scheduled before jobs with a lower scheduling + // priority. + // + // The minimum supported value is 0 and the maximum supported value is 9999. + SchedulingPriority *int64 `locationName:"schedulingPriority" type:"integer"` + + // The tags that you apply to the job definition to help you categorize and + // organize your resources. Each tag consists of a key and an optional value. + // For more information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/batch/latest/userguide/using-tags.html) + // in Batch User Guide. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + + // The timeout configuration for jobs that are submitted with this job definition, + // after which Batch terminates your jobs if they have not finished. If a job + // is terminated due to a timeout, it isn't retried. The minimum value for the + // timeout is 60 seconds. Any timeout configuration that's specified during + // a SubmitJob operation overrides the timeout configuration defined here. For + // more information, see Job Timeouts (https://docs.aws.amazon.com/batch/latest/userguide/job_timeouts.html) + // in the Batch User Guide. + Timeout *JobTimeout `locationName:"timeout" type:"structure"` + + // The type of job definition. For more information about multi-node parallel + // jobs, see Creating a multi-node parallel job definition (https://docs.aws.amazon.com/batch/latest/userguide/multi-node-job-def.html) + // in the Batch User Guide. + // + // * If the value is container, then one of the following is required: containerProperties, + // ecsProperties, or eksProperties. + // + // * If the value is multinode, then nodeProperties is required. + // + // If the job is run on Fargate resources, then multinode isn't supported. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"JobDefinitionType"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterJobDefinitionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterJobDefinitionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RegisterJobDefinitionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RegisterJobDefinitionInput"} + if s.JobDefinitionName == nil { + invalidParams.Add(request.NewErrParamRequired("JobDefinitionName")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.ContainerProperties != nil { + if err := s.ContainerProperties.Validate(); err != nil { + invalidParams.AddNested("ContainerProperties", err.(request.ErrInvalidParams)) + } + } + if s.EcsProperties != nil { + if err := s.EcsProperties.Validate(); err != nil { + invalidParams.AddNested("EcsProperties", err.(request.ErrInvalidParams)) + } + } + if s.EksProperties != nil { + if err := s.EksProperties.Validate(); err != nil { + invalidParams.AddNested("EksProperties", err.(request.ErrInvalidParams)) + } + } + if s.NodeProperties != nil { + if err := s.NodeProperties.Validate(); err != nil { + invalidParams.AddNested("NodeProperties", err.(request.ErrInvalidParams)) + } + } + if s.RetryStrategy != nil { + if err := s.RetryStrategy.Validate(); err != nil { + invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContainerProperties sets the ContainerProperties field's value. +func (s *RegisterJobDefinitionInput) SetContainerProperties(v *ContainerProperties) *RegisterJobDefinitionInput { + s.ContainerProperties = v + return s +} + +// SetEcsProperties sets the EcsProperties field's value. +func (s *RegisterJobDefinitionInput) SetEcsProperties(v *EcsProperties) *RegisterJobDefinitionInput { + s.EcsProperties = v + return s +} + +// SetEksProperties sets the EksProperties field's value. +func (s *RegisterJobDefinitionInput) SetEksProperties(v *EksProperties) *RegisterJobDefinitionInput { + s.EksProperties = v + return s +} + +// SetJobDefinitionName sets the JobDefinitionName field's value. +func (s *RegisterJobDefinitionInput) SetJobDefinitionName(v string) *RegisterJobDefinitionInput { + s.JobDefinitionName = &v + return s +} + +// SetNodeProperties sets the NodeProperties field's value. +func (s *RegisterJobDefinitionInput) SetNodeProperties(v *NodeProperties) *RegisterJobDefinitionInput { + s.NodeProperties = v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *RegisterJobDefinitionInput) SetParameters(v map[string]*string) *RegisterJobDefinitionInput { + s.Parameters = v + return s +} + +// SetPlatformCapabilities sets the PlatformCapabilities field's value. +func (s *RegisterJobDefinitionInput) SetPlatformCapabilities(v []*string) *RegisterJobDefinitionInput { + s.PlatformCapabilities = v + return s +} + +// SetPropagateTags sets the PropagateTags field's value. +func (s *RegisterJobDefinitionInput) SetPropagateTags(v bool) *RegisterJobDefinitionInput { + s.PropagateTags = &v + return s +} + +// SetRetryStrategy sets the RetryStrategy field's value. +func (s *RegisterJobDefinitionInput) SetRetryStrategy(v *RetryStrategy) *RegisterJobDefinitionInput { + s.RetryStrategy = v + return s +} + +// SetSchedulingPriority sets the SchedulingPriority field's value. +func (s *RegisterJobDefinitionInput) SetSchedulingPriority(v int64) *RegisterJobDefinitionInput { + s.SchedulingPriority = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *RegisterJobDefinitionInput) SetTags(v map[string]*string) *RegisterJobDefinitionInput { + s.Tags = v + return s +} + +// SetTimeout sets the Timeout field's value. +func (s *RegisterJobDefinitionInput) SetTimeout(v *JobTimeout) *RegisterJobDefinitionInput { + s.Timeout = v + return s +} + +// SetType sets the Type field's value. +func (s *RegisterJobDefinitionInput) SetType(v string) *RegisterJobDefinitionInput { + s.Type = &v + return s +} + +type RegisterJobDefinitionOutput struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the job definition. + // + // JobDefinitionArn is a required field + JobDefinitionArn *string `locationName:"jobDefinitionArn" type:"string" required:"true"` + + // The name of the job definition. + // + // JobDefinitionName is a required field + JobDefinitionName *string `locationName:"jobDefinitionName" type:"string" required:"true"` + + // The revision of the job definition. + // + // Revision is a required field + Revision *int64 `locationName:"revision" type:"integer" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterJobDefinitionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RegisterJobDefinitionOutput) GoString() string { + return s.String() +} + +// SetJobDefinitionArn sets the JobDefinitionArn field's value. +func (s *RegisterJobDefinitionOutput) SetJobDefinitionArn(v string) *RegisterJobDefinitionOutput { + s.JobDefinitionArn = &v + return s +} + +// SetJobDefinitionName sets the JobDefinitionName field's value. +func (s *RegisterJobDefinitionOutput) SetJobDefinitionName(v string) *RegisterJobDefinitionOutput { + s.JobDefinitionName = &v + return s +} + +// SetRevision sets the Revision field's value. +func (s *RegisterJobDefinitionOutput) SetRevision(v int64) *RegisterJobDefinitionOutput { + s.Revision = &v + return s +} + +// The repository credentials for private registry authentication. +type RepositoryCredentials struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the secret containing the private repository + // credentials. + // + // CredentialsParameter is a required field + CredentialsParameter *string `locationName:"credentialsParameter" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RepositoryCredentials) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RepositoryCredentials) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RepositoryCredentials) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RepositoryCredentials"} + if s.CredentialsParameter == nil { + invalidParams.Add(request.NewErrParamRequired("CredentialsParameter")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCredentialsParameter sets the CredentialsParameter field's value. +func (s *RepositoryCredentials) SetCredentialsParameter(v string) *RepositoryCredentials { + s.CredentialsParameter = &v + return s +} + +// The type and amount of a resource to assign to a container. The supported +// resources include GPU, MEMORY, and VCPU. +type ResourceRequirement struct { + _ struct{} `type:"structure"` + + // The type of resource to assign to a container. The supported resources include + // GPU, MEMORY, and VCPU. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"ResourceType"` + + // The quantity of the specified resource to reserve for the container. The + // values vary based on the type specified. + // + // type="GPU" + // + // The number of physical GPUs to reserve for the container. Make sure that + // the number of GPUs reserved for all containers in a job doesn't exceed the + // number of available GPUs on the compute resource that the job is launched + // on. + // + // GPUs aren't available for jobs that are running on Fargate resources. + // + // type="MEMORY" // // The memory hard limit (in MiB) present to the container. This parameter is - // supported for jobs that are running on EC2 resources. If your container attempts - // to exceed the memory specified, the container is terminated. This parameter - // maps to Memory in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) + // supported for jobs that are running on Amazon EC2 resources. If your container + // attempts to exceed the memory specified, the container is terminated. This + // parameter maps to Memory in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) // and the --memory option to docker run (https://docs.docker.com/engine/reference/run/). // You must specify at least 4 MiB of memory for a job. This is required but @@ -11397,54 +12091,675 @@ type ResourceRequirement struct { // in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) // and the --cpu-shares option to docker run (https://docs.docker.com/engine/reference/run/). - // Each vCPU is equivalent to 1,024 CPU shares. For EC2 resources, 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. + // Each vCPU is equivalent to 1,024 CPU shares. For Amazon EC2 resources, 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. + // + // The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. + // For more information about Fargate quotas, see Fargate quotas (https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate) + // in the Amazon Web Services General Reference. + // + // For jobs that are running on Fargate resources, then value must match one + // of the supported values and the MEMORY values must be one of the values supported + // for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and + // 16 + // + // value = 0.25 + // + // MEMORY = 512, 1024, or 2048 + // + // value = 0.5 + // + // MEMORY = 1024, 2048, 3072, or 4096 + // + // value = 1 + // + // MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 + // + // value = 2 + // + // MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, + // 14336, 15360, or 16384 + // + // value = 4 + // + // MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, + // 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, + // 29696, or 30720 + // + // value = 8 + // + // MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, + // 57344, or 61440 + // + // value = 16 + // + // MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, + // 114688, or 122880 + // + // Value is a required field + Value *string `locationName:"value" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceRequirement) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ResourceRequirement) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResourceRequirement) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"} + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetType sets the Type field's value. +func (s *ResourceRequirement) SetType(v string) *ResourceRequirement { + s.Type = &v + return s +} + +// SetValue sets the Value field's value. +func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement { + s.Value = &v + return s +} + +// The retry strategy that's associated with a job. For more information, see +// Automated job retries (https://docs.aws.amazon.com/batch/latest/userguide/job_retries.html) +// in the Batch User Guide. +type RetryStrategy struct { + _ struct{} `type:"structure"` + + // The number of times to move a job to the RUNNABLE status. You can specify + // between 1 and 10 attempts. If the value of attempts is greater than one, + // the job is retried on failure the same number of attempts as the value. + Attempts *int64 `locationName:"attempts" type:"integer"` + + // Array of up to 5 objects that specify the conditions where jobs are retried + // or failed. If this parameter is specified, then the attempts parameter must + // also be specified. If none of the listed conditions match, then the job is + // retried. + EvaluateOnExit []*EvaluateOnExit `locationName:"evaluateOnExit" type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RetryStrategy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RetryStrategy) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RetryStrategy) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RetryStrategy"} + if s.EvaluateOnExit != nil { + for i, v := range s.EvaluateOnExit { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EvaluateOnExit", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAttempts sets the Attempts field's value. +func (s *RetryStrategy) SetAttempts(v int64) *RetryStrategy { + s.Attempts = &v + return s +} + +// SetEvaluateOnExit sets the EvaluateOnExit field's value. +func (s *RetryStrategy) SetEvaluateOnExit(v []*EvaluateOnExit) *RetryStrategy { + s.EvaluateOnExit = v + return s +} + +// An object that represents the compute environment architecture for Batch +// jobs on Fargate. +type RuntimePlatform struct { + _ struct{} `type:"structure"` + + // The vCPU architecture. The default value is X86_64. Valid values are X86_64 + // and ARM64. + // + // This parameter must be set to X86_64 for Windows containers. + // + // Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. + // A job queue will be blocked if a Fargate ARM64 or Windows job is submitted + // to a job queue with only Fargate Spot compute environments. However, you + // can attach both FARGATE and FARGATE_SPOT compute environments to the same + // job queue. + CpuArchitecture *string `locationName:"cpuArchitecture" type:"string"` + + // The operating system for the compute environment. Valid values are: LINUX + // (default), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, + // and WINDOWS_SERVER_2022_FULL. + // + // The following parameters can’t be set for Windows containers: linuxParameters, + // privileged, user, ulimits, readonlyRootFilesystem, and efsVolumeConfiguration. + // + // The Batch Scheduler checks the compute environments that are attached to + // the job queue before registering a task definition with Fargate. In this + // scenario, the job queue is where the job is submitted. If the job requires + // a Windows container and the first compute environment is LINUX, the compute + // environment is skipped and the next compute environment is checked until + // a Windows-based compute environment is found. + // + // Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. + // A job queue will be blocked if a Fargate ARM64 or Windows job is submitted + // to a job queue with only Fargate Spot compute environments. However, you + // can attach both FARGATE and FARGATE_SPOT compute environments to the same + // job queue. + OperatingSystemFamily *string `locationName:"operatingSystemFamily" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuntimePlatform) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s RuntimePlatform) GoString() string { + return s.String() +} + +// SetCpuArchitecture sets the CpuArchitecture field's value. +func (s *RuntimePlatform) SetCpuArchitecture(v string) *RuntimePlatform { + s.CpuArchitecture = &v + return s +} + +// SetOperatingSystemFamily sets the OperatingSystemFamily field's value. +func (s *RuntimePlatform) SetOperatingSystemFamily(v string) *RuntimePlatform { + s.OperatingSystemFamily = &v + return s +} + +// An object that represents a scheduling policy. +type SchedulingPolicyDetail struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the scheduling policy. An example is arn:aws:batch:us-east-1:123456789012:scheduling-policy/HighPriority . // - // The default for the Fargate On-Demand vCPU resource count quota is 6 vCPUs. - // For more information about Fargate quotas, see Fargate quotas (https://docs.aws.amazon.com/general/latest/gr/ecs-service.html#service-quotas-fargate) - // in the Amazon Web Services General Reference. + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` + + // The fair share policy for the scheduling policy. + FairsharePolicy *FairsharePolicy `locationName:"fairsharePolicy" type:"structure"` + + // The name of the scheduling policy. // - // For jobs that are running on Fargate resources, then value must match one - // of the supported values and the MEMORY values must be one of the values supported - // for that VCPU value. The supported values are 0.25, 0.5, 1, 2, 4, 8, and - // 16 + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The tags that you apply to the scheduling policy to categorize and organize + // your resources. Each tag consists of a key and an optional value. For more + // information, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // in Amazon Web Services General Reference. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SchedulingPolicyDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SchedulingPolicyDetail) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *SchedulingPolicyDetail) SetArn(v string) *SchedulingPolicyDetail { + s.Arn = &v + return s +} + +// SetFairsharePolicy sets the FairsharePolicy field's value. +func (s *SchedulingPolicyDetail) SetFairsharePolicy(v *FairsharePolicy) *SchedulingPolicyDetail { + s.FairsharePolicy = v + return s +} + +// SetName sets the Name field's value. +func (s *SchedulingPolicyDetail) SetName(v string) *SchedulingPolicyDetail { + s.Name = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *SchedulingPolicyDetail) SetTags(v map[string]*string) *SchedulingPolicyDetail { + s.Tags = v + return s +} + +// An object that contains the details of a scheduling policy that's returned +// in a ListSchedulingPolicy action. +type SchedulingPolicyListingDetail struct { + _ struct{} `type:"structure"` + + // Amazon Resource Name (ARN) of the scheduling policy. // - // value = 0.25 + // Arn is a required field + Arn *string `locationName:"arn" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SchedulingPolicyListingDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s SchedulingPolicyListingDetail) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *SchedulingPolicyListingDetail) SetArn(v string) *SchedulingPolicyListingDetail { + s.Arn = &v + return s +} + +// An object that represents 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/batch/latest/userguide/specifying-sensitive-data.html) +// in the Batch User Guide. +type Secret struct { + _ struct{} `type:"structure"` + + // The name of the secret. // - // MEMORY = 512, 1024, or 2048 + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The secret to expose to the container. The supported values are either the + // full Amazon Resource Name (ARN) of the Secrets Manager secret or the full + // ARN of the parameter in the Amazon Web Services Systems Manager Parameter + // Store. // - // value = 0.5 + // If the Amazon Web Services Systems Manager Parameter Store parameter exists + // in the same Region as the job you're launching, then you can use either the + // full Amazon Resource Name (ARN) or name of the parameter. If the parameter + // exists in a different Region, then the full ARN must be specified. // - // MEMORY = 1024, 2048, 3072, or 4096 + // ValueFrom is a required field + ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Secret) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s Secret) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Secret) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Secret"} + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.ValueFrom == nil { + invalidParams.Add(request.NewErrParamRequired("ValueFrom")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *Secret) SetName(v string) *Secret { + s.Name = &v + return s +} + +// SetValueFrom sets the ValueFrom field's value. +func (s *Secret) SetValueFrom(v string) *Secret { + s.ValueFrom = &v + return s +} + +// These errors are usually caused by a server issue. +type ServerException struct { + _ struct{} `type:"structure"` + RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` + + Message_ *string `locationName:"message" type:"string"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServerException) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ServerException) GoString() string { + return s.String() +} + +func newErrorServerException(v protocol.ResponseMetadata) error { + return &ServerException{ + RespMetadata: v, + } +} + +// Code returns the exception type name. +func (s *ServerException) Code() string { + return "ServerException" +} + +// Message returns the exception's message. +func (s *ServerException) Message() string { + if s.Message_ != nil { + return *s.Message_ + } + return "" +} + +// OrigErr always returns nil, satisfies awserr.Error interface. +func (s *ServerException) OrigErr() error { + return nil +} + +func (s *ServerException) Error() string { + return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +} + +// Status code returns the HTTP status code for the request's response error. +func (s *ServerException) StatusCode() int { + return s.RespMetadata.StatusCode +} + +// RequestID returns the service's response RequestID for request. +func (s *ServerException) RequestID() string { + return s.RespMetadata.RequestID +} + +// Specifies the weights for the fair share identifiers for the fair share policy. +// Fair share identifiers that aren't included have a default weight of 1.0. +type ShareAttributes struct { + _ struct{} `type:"structure"` + + // A fair share identifier or fair share identifier prefix. If the string ends + // with an asterisk (*), this entry specifies the weight factor to use for fair + // share identifiers that start with that prefix. The list of fair share identifiers + // in a fair share policy can't overlap. For example, you can't have one that + // specifies a shareIdentifier of UserA* and another that specifies a shareIdentifier + // of UserA-1. // - // value = 1 + // There can be no more than 500 fair share identifiers active in a job queue. // - // MEMORY = 2048, 3072, 4096, 5120, 6144, 7168, or 8192 + // The string is limited to 255 alphanumeric characters, and can be followed + // by an asterisk (*). // - // value = 2 + // ShareIdentifier is a required field + ShareIdentifier *string `locationName:"shareIdentifier" type:"string" required:"true"` + + // The weight factor for the fair share identifier. The default value is 1.0. + // A lower value has a higher priority for compute resources. For example, jobs + // that use a share identifier with a weight factor of 0.125 (1/8) get 8 times + // the compute resources of jobs that use a share identifier with a weight factor + // of 1. // - // MEMORY = 4096, 5120, 6144, 7168, 8192, 9216, 10240, 11264, 12288, 13312, - // 14336, 15360, or 16384 + // The smallest supported value is 0.0001, and the largest supported value is + // 999.9999. + WeightFactor *float64 `locationName:"weightFactor" type:"float"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ShareAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s ShareAttributes) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ShareAttributes) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ShareAttributes"} + if s.ShareIdentifier == nil { + invalidParams.Add(request.NewErrParamRequired("ShareIdentifier")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetShareIdentifier sets the ShareIdentifier field's value. +func (s *ShareAttributes) SetShareIdentifier(v string) *ShareAttributes { + s.ShareIdentifier = &v + return s +} + +// SetWeightFactor sets the WeightFactor field's value. +func (s *ShareAttributes) SetWeightFactor(v float64) *ShareAttributes { + s.WeightFactor = &v + return s +} + +// Contains the parameters for SubmitJob. +type SubmitJobInput struct { + _ struct{} `type:"structure"` + + // The array properties for the submitted job, such as the size of the array. + // The array size can be between 2 and 10,000. If you specify array properties + // for a job, it becomes an array job. For more information, see Array Jobs + // (https://docs.aws.amazon.com/batch/latest/userguide/array_jobs.html) in the + // Batch User Guide. + ArrayProperties *ArrayProperties `locationName:"arrayProperties" type:"structure"` + + // An object with properties that override the defaults for the job definition + // that specify the name of a container in the specified job definition and + // the overrides it should receive. You can override the default command for + // a container, which is specified in the job definition or the Docker image, + // with a command override. You can also override existing environment variables + // on a container or add new environment variables to it with an environment + // override. + ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"` + + // A list of dependencies for the job. A job can depend upon a maximum of 20 + // jobs. You can specify a SEQUENTIAL type dependency without specifying a job + // ID for array jobs so that each child array job completes sequentially, starting + // at index 0. You can also specify an N_TO_N type dependency with a job ID + // for array jobs. In that case, each index child of this job must wait for + // the corresponding index child of each dependency to complete before it can + // begin. + DependsOn []*JobDependency `locationName:"dependsOn" type:"list"` + + // An object, with properties that override defaults for the job definition, + // can only be specified for jobs that are run on Amazon ECS resources. + EcsPropertiesOverride *EcsPropertiesOverride `locationName:"ecsPropertiesOverride" type:"structure"` + + // An object, with properties that override defaults for the job definition, + // can only be specified for jobs that are run on Amazon EKS resources. + EksPropertiesOverride *EksPropertiesOverride `locationName:"eksPropertiesOverride" type:"structure"` + + // The job definition used by this job. This value can be one of definition-name, + // definition-name:revision, or the Amazon Resource Name (ARN) for the job definition, + // with or without the revision (arn:aws:batch:region:account:job-definition/definition-name:revision + // , or arn:aws:batch:region:account:job-definition/definition-name ). // - // value = 4 + // If the revision is not specified, then the latest active revision is used. // - // MEMORY = 8192, 9216, 10240, 11264, 12288, 13312, 14336, 15360, 16384, 17408, - // 18432, 19456, 20480, 21504, 22528, 23552, 24576, 25600, 26624, 27648, 28672, - // 29696, or 30720 + // JobDefinition is a required field + JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"` + + // The name of the job. It can be up to 128 letters long. The first character + // must be alphanumeric, can contain uppercase and lowercase letters, numbers, + // hyphens (-), and underscores (_). // - // value = 8 + // JobName is a required field + JobName *string `locationName:"jobName" type:"string" required:"true"` + + // The job queue where the job is submitted. You can specify either the name + // or the Amazon Resource Name (ARN) of the queue. // - // MEMORY = 16384, 20480, 24576, 28672, 32768, 36864, 40960, 45056, 49152, 53248, - // 57344, or 61440 + // JobQueue is a required field + JobQueue *string `locationName:"jobQueue" type:"string" required:"true"` + + // A list of node overrides in JSON format that specify the node range to target + // and the container overrides for that node range. // - // value = 16 + // This parameter isn't applicable to jobs that are running on Fargate resources; + // use containerOverrides instead. + NodeOverrides *NodeOverrides `locationName:"nodeOverrides" type:"structure"` + + // Additional parameters passed to the job that replace parameter substitution + // placeholders that are set in the job definition. Parameters are specified + // as a key and value pair mapping. Parameters in a SubmitJob request override + // any corresponding parameter defaults from the job definition. + Parameters map[string]*string `locationName:"parameters" type:"map"` + + // Specifies whether to propagate the tags from the job or job definition to + // the corresponding Amazon ECS task. If no value is specified, the tags aren't + // propagated. Tags can only be propagated to the tasks during task creation. + // For tags with the same name, job tags are given priority over job definitions + // tags. If the total number of combined tags from the job and job definition + // is over 50, the job is moved to the FAILED state. When specified, this overrides + // the tag propagation setting in the job definition. + PropagateTags *bool `locationName:"propagateTags" type:"boolean"` + + // The retry strategy to use for failed jobs from this SubmitJob operation. + // When a retry strategy is specified here, it overrides the retry strategy + // defined in the job definition. + RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` + + // The scheduling priority for the job. This only affects jobs in job queues + // with a fair share policy. Jobs with a higher scheduling priority are scheduled + // before jobs with a lower scheduling priority. This overrides any scheduling + // priority in the job definition and works only within a single share identifier. // - // MEMORY = 32768, 40960, 49152, 57344, 65536, 73728, 81920, 90112, 98304, 106496, - // 114688, or 122880 + // The minimum supported value is 0 and the maximum supported value is 9999. + SchedulingPriorityOverride *int64 `locationName:"schedulingPriorityOverride" type:"integer"` + + // The share identifier for the job. Don't specify this parameter if the job + // queue doesn't have a scheduling policy. If the job queue has a scheduling + // policy, then this parameter must be specified. // - // Value is a required field - Value *string `locationName:"value" type:"string" required:"true"` + // This string is limited to 255 alphanumeric characters, and can be followed + // by an asterisk (*). + ShareIdentifier *string `locationName:"shareIdentifier" type:"string"` + + // The tags that you apply to the job request to help you categorize and organize + // your resources. Each tag consists of a key and an optional value. For more + // information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // in Amazon Web Services General Reference. + Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + + // The timeout configuration for this SubmitJob operation. You can specify a + // timeout duration after which Batch terminates your jobs if they haven't finished. + // If a job is terminated due to a timeout, it isn't retried. The minimum value + // for the timeout is 60 seconds. This configuration overrides any timeout configuration + // specified in the job definition. For array jobs, child jobs have the same + // timeout configuration as the parent job. For more information, see Job Timeouts + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html) + // in the Amazon Elastic Container Service Developer Guide. + Timeout *JobTimeout `locationName:"timeout" type:"structure"` } // String returns the string representation. @@ -11452,7 +12767,7 @@ type ResourceRequirement struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceRequirement) String() string { +func (s SubmitJobInput) String() string { return awsutil.Prettify(s) } @@ -11461,143 +12776,168 @@ func (s ResourceRequirement) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ResourceRequirement) GoString() string { +func (s SubmitJobInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ResourceRequirement) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ResourceRequirement"} - if s.Type == nil { - invalidParams.Add(request.NewErrParamRequired("Type")) +func (s *SubmitJobInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SubmitJobInput"} + if s.JobDefinition == nil { + invalidParams.Add(request.NewErrParamRequired("JobDefinition")) } - if s.Value == nil { - invalidParams.Add(request.NewErrParamRequired("Value")) + if s.JobName == nil { + invalidParams.Add(request.NewErrParamRequired("JobName")) + } + if s.JobQueue == nil { + invalidParams.Add(request.NewErrParamRequired("JobQueue")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } + if s.ContainerOverrides != nil { + if err := s.ContainerOverrides.Validate(); err != nil { + invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams)) + } + } + if s.EcsPropertiesOverride != nil { + if err := s.EcsPropertiesOverride.Validate(); err != nil { + invalidParams.AddNested("EcsPropertiesOverride", err.(request.ErrInvalidParams)) + } + } + if s.EksPropertiesOverride != nil { + if err := s.EksPropertiesOverride.Validate(); err != nil { + invalidParams.AddNested("EksPropertiesOverride", err.(request.ErrInvalidParams)) + } } + if s.NodeOverrides != nil { + if err := s.NodeOverrides.Validate(); err != nil { + invalidParams.AddNested("NodeOverrides", err.(request.ErrInvalidParams)) + } + } + if s.RetryStrategy != nil { + if err := s.RetryStrategy.Validate(); err != nil { + invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetArrayProperties sets the ArrayProperties field's value. +func (s *SubmitJobInput) SetArrayProperties(v *ArrayProperties) *SubmitJobInput { + s.ArrayProperties = v + return s +} + +// SetContainerOverrides sets the ContainerOverrides field's value. +func (s *SubmitJobInput) SetContainerOverrides(v *ContainerOverrides) *SubmitJobInput { + s.ContainerOverrides = v + return s +} + +// SetDependsOn sets the DependsOn field's value. +func (s *SubmitJobInput) SetDependsOn(v []*JobDependency) *SubmitJobInput { + s.DependsOn = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetEcsPropertiesOverride sets the EcsPropertiesOverride field's value. +func (s *SubmitJobInput) SetEcsPropertiesOverride(v *EcsPropertiesOverride) *SubmitJobInput { + s.EcsPropertiesOverride = v + return s } -// SetType sets the Type field's value. -func (s *ResourceRequirement) SetType(v string) *ResourceRequirement { - s.Type = &v +// SetEksPropertiesOverride sets the EksPropertiesOverride field's value. +func (s *SubmitJobInput) SetEksPropertiesOverride(v *EksPropertiesOverride) *SubmitJobInput { + s.EksPropertiesOverride = v return s } -// SetValue sets the Value field's value. -func (s *ResourceRequirement) SetValue(v string) *ResourceRequirement { - s.Value = &v +// SetJobDefinition sets the JobDefinition field's value. +func (s *SubmitJobInput) SetJobDefinition(v string) *SubmitJobInput { + s.JobDefinition = &v return s } -// The retry strategy that's associated with a job. For more information, see -// Automated job retries (https://docs.aws.amazon.com/batch/latest/userguide/job_retries.html) -// in the Batch User Guide. -type RetryStrategy struct { - _ struct{} `type:"structure"` +// SetJobName sets the JobName field's value. +func (s *SubmitJobInput) SetJobName(v string) *SubmitJobInput { + s.JobName = &v + return s +} - // The number of times to move a job to the RUNNABLE status. You can specify - // between 1 and 10 attempts. If the value of attempts is greater than one, - // the job is retried on failure the same number of attempts as the value. - Attempts *int64 `locationName:"attempts" type:"integer"` +// SetJobQueue sets the JobQueue field's value. +func (s *SubmitJobInput) SetJobQueue(v string) *SubmitJobInput { + s.JobQueue = &v + return s +} - // Array of up to 5 objects that specify the conditions where jobs are retried - // or failed. If this parameter is specified, then the attempts parameter must - // also be specified. If none of the listed conditions match, then the job is - // retried. - EvaluateOnExit []*EvaluateOnExit `locationName:"evaluateOnExit" type:"list"` +// SetNodeOverrides sets the NodeOverrides field's value. +func (s *SubmitJobInput) SetNodeOverrides(v *NodeOverrides) *SubmitJobInput { + s.NodeOverrides = v + return s } -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s RetryStrategy) String() string { - return awsutil.Prettify(s) +// SetParameters sets the Parameters field's value. +func (s *SubmitJobInput) SetParameters(v map[string]*string) *SubmitJobInput { + s.Parameters = v + return s } -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s RetryStrategy) GoString() string { - return s.String() +// SetPropagateTags sets the PropagateTags field's value. +func (s *SubmitJobInput) SetPropagateTags(v bool) *SubmitJobInput { + s.PropagateTags = &v + return s } -// Validate inspects the fields of the type to determine if they are valid. -func (s *RetryStrategy) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "RetryStrategy"} - if s.EvaluateOnExit != nil { - for i, v := range s.EvaluateOnExit { - if v == nil { - continue - } - if err := v.Validate(); err != nil { - invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EvaluateOnExit", i), err.(request.ErrInvalidParams)) - } - } - } +// SetRetryStrategy sets the RetryStrategy field's value. +func (s *SubmitJobInput) SetRetryStrategy(v *RetryStrategy) *SubmitJobInput { + s.RetryStrategy = v + return s +} - if invalidParams.Len() > 0 { - return invalidParams - } - return nil +// SetSchedulingPriorityOverride sets the SchedulingPriorityOverride field's value. +func (s *SubmitJobInput) SetSchedulingPriorityOverride(v int64) *SubmitJobInput { + s.SchedulingPriorityOverride = &v + return s } -// SetAttempts sets the Attempts field's value. -func (s *RetryStrategy) SetAttempts(v int64) *RetryStrategy { - s.Attempts = &v +// SetShareIdentifier sets the ShareIdentifier field's value. +func (s *SubmitJobInput) SetShareIdentifier(v string) *SubmitJobInput { + s.ShareIdentifier = &v return s } -// SetEvaluateOnExit sets the EvaluateOnExit field's value. -func (s *RetryStrategy) SetEvaluateOnExit(v []*EvaluateOnExit) *RetryStrategy { - s.EvaluateOnExit = v +// SetTags sets the Tags field's value. +func (s *SubmitJobInput) SetTags(v map[string]*string) *SubmitJobInput { + s.Tags = v return s } -// An object that represents the compute environment architecture for Batch -// jobs on Fargate. -type RuntimePlatform struct { +// SetTimeout sets the Timeout field's value. +func (s *SubmitJobInput) SetTimeout(v *JobTimeout) *SubmitJobInput { + s.Timeout = v + return s +} + +type SubmitJobOutput struct { _ struct{} `type:"structure"` - // The vCPU architecture. The default value is X86_64. Valid values are X86_64 - // and ARM64. - // - // This parameter must be set to X86_64 for Windows containers. - // - // Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. - // A job queue will be blocked if a Fargate ARM64 or Windows job is submitted - // to a job queue with only Fargate Spot compute environments. However, you - // can attach both FARGATE and FARGATE_SPOT compute environments to the same - // job queue. - CpuArchitecture *string `locationName:"cpuArchitecture" type:"string"` + // The Amazon Resource Name (ARN) for the job. + JobArn *string `locationName:"jobArn" type:"string"` - // The operating system for the compute environment. Valid values are: LINUX - // (default), WINDOWS_SERVER_2019_CORE, WINDOWS_SERVER_2019_FULL, WINDOWS_SERVER_2022_CORE, - // and WINDOWS_SERVER_2022_FULL. - // - // The following parameters can’t be set for Windows containers: linuxParameters, - // privileged, user, ulimits, readonlyRootFilesystem, and efsVolumeConfiguration. + // The unique identifier for the job. // - // The Batch Scheduler checks the compute environments that are attached to - // the job queue before registering a task definition with Fargate. In this - // scenario, the job queue is where the job is submitted. If the job requires - // a Windows container and the first compute environment is LINUX, the compute - // environment is skipped and the next compute environment is checked until - // a Windows-based compute environment is found. + // JobId is a required field + JobId *string `locationName:"jobId" type:"string" required:"true"` + + // The name of the job. // - // Fargate Spot is not supported for ARM64 and Windows-based containers on Fargate. - // A job queue will be blocked if a Fargate ARM64 or Windows job is submitted - // to a job queue with only Fargate Spot compute environments. However, you - // can attach both FARGATE and FARGATE_SPOT compute environments to the same - // job queue. - OperatingSystemFamily *string `locationName:"operatingSystemFamily" type:"string"` + // JobName is a required field + JobName *string `locationName:"jobName" type:"string" required:"true"` } // String returns the string representation. @@ -11605,7 +12945,7 @@ type RuntimePlatform struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuntimePlatform) String() string { +func (s SubmitJobOutput) String() string { return awsutil.Prettify(s) } @@ -11614,44 +12954,47 @@ func (s RuntimePlatform) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s RuntimePlatform) GoString() string { +func (s SubmitJobOutput) GoString() string { return s.String() } -// SetCpuArchitecture sets the CpuArchitecture field's value. -func (s *RuntimePlatform) SetCpuArchitecture(v string) *RuntimePlatform { - s.CpuArchitecture = &v +// SetJobArn sets the JobArn field's value. +func (s *SubmitJobOutput) SetJobArn(v string) *SubmitJobOutput { + s.JobArn = &v return s } -// SetOperatingSystemFamily sets the OperatingSystemFamily field's value. -func (s *RuntimePlatform) SetOperatingSystemFamily(v string) *RuntimePlatform { - s.OperatingSystemFamily = &v +// SetJobId sets the JobId field's value. +func (s *SubmitJobOutput) SetJobId(v string) *SubmitJobOutput { + s.JobId = &v return s } -// An object that represents a scheduling policy. -type SchedulingPolicyDetail struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) of the scheduling policy. An example is arn:aws:batch:us-east-1:123456789012:scheduling-policy/HighPriority . - // - // Arn is a required field - Arn *string `locationName:"arn" type:"string" required:"true"` +// SetJobName sets the JobName field's value. +func (s *SubmitJobOutput) SetJobName(v string) *SubmitJobOutput { + s.JobName = &v + return s +} - // The fair share policy for the scheduling policy. - FairsharePolicy *FairsharePolicy `locationName:"fairsharePolicy" type:"structure"` +// Contains the parameters for TagResource. +type TagResourceInput struct { + _ struct{} `type:"structure"` - // The name of the scheduling policy. + // The Amazon Resource Name (ARN) of the resource that tags are added to. Batch + // resources that support tags are compute environments, jobs, job definitions, + // job queues, and scheduling policies. ARNs for child jobs of array and multi-node + // parallel (MNP) jobs aren't supported. // - // Name is a required field - Name *string `locationName:"name" type:"string" required:"true"` + // ResourceArn is a required field + ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` - // The tags that you apply to the scheduling policy to categorize and organize + // The tags that you apply to the resource to help you categorize and organize // your resources. Each tag consists of a key and an optional value. For more - // information, see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) + // information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) // in Amazon Web Services General Reference. - Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // + // Tags is a required field + Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"` } // String returns the string representation. @@ -11659,7 +13002,7 @@ type SchedulingPolicyDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s SchedulingPolicyDetail) String() string { +func (s TagResourceInput) String() string { return awsutil.Prettify(s) } @@ -11668,43 +13011,46 @@ func (s SchedulingPolicyDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s SchedulingPolicyDetail) GoString() string { +func (s TagResourceInput) GoString() string { return s.String() } -// SetArn sets the Arn field's value. -func (s *SchedulingPolicyDetail) SetArn(v string) *SchedulingPolicyDetail { - s.Arn = &v - return s -} +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagResourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} + if s.ResourceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceArn")) + } + if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + if s.Tags != nil && len(s.Tags) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + } -// SetFairsharePolicy sets the FairsharePolicy field's value. -func (s *SchedulingPolicyDetail) SetFairsharePolicy(v *FairsharePolicy) *SchedulingPolicyDetail { - s.FairsharePolicy = v - return s + if invalidParams.Len() > 0 { + return invalidParams + } + return nil } -// SetName sets the Name field's value. -func (s *SchedulingPolicyDetail) SetName(v string) *SchedulingPolicyDetail { - s.Name = &v +// SetResourceArn sets the ResourceArn field's value. +func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { + s.ResourceArn = &v return s } // SetTags sets the Tags field's value. -func (s *SchedulingPolicyDetail) SetTags(v map[string]*string) *SchedulingPolicyDetail { +func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { s.Tags = v return s } -// An object that contains the details of a scheduling policy that's returned -// in a ListSchedulingPolicy action. -type SchedulingPolicyListingDetail struct { - _ struct{} `type:"structure"` - - // Amazon Resource Name (ARN) of the scheduling policy. - // - // Arn is a required field - Arn *string `locationName:"arn" type:"string" required:"true"` +type TagResourceOutput struct { + _ struct{} `type:"structure"` } // String returns the string representation. @@ -11712,7 +13058,7 @@ type SchedulingPolicyListingDetail struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s SchedulingPolicyListingDetail) String() string { +func (s TagResourceOutput) String() string { return awsutil.Prettify(s) } @@ -11721,47 +13067,33 @@ func (s SchedulingPolicyListingDetail) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s SchedulingPolicyListingDetail) GoString() string { +func (s TagResourceOutput) GoString() string { return s.String() } -// SetArn sets the Arn field's value. -func (s *SchedulingPolicyListingDetail) SetArn(v string) *SchedulingPolicyListingDetail { - s.Arn = &v - return s -} - -// An object that represents 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/batch/latest/userguide/specifying-sensitive-data.html) -// in the Batch User Guide. -type Secret struct { +// A list of containers that this task depends on. +type TaskContainerDependency struct { _ struct{} `type:"structure"` - // The name of the secret. + // The dependency condition of the container. The following are the available + // conditions and their behavior: // - // Name is a required field - Name *string `locationName:"name" type:"string" required:"true"` - - // The secret to expose to the container. The supported values are either the - // full Amazon Resource Name (ARN) of the Secrets Manager secret or the full - // ARN of the parameter in the Amazon Web Services Systems Manager Parameter - // Store. + // * START - This condition emulates the behavior of links and volumes today. + // It validates that a dependent container is started before permitting other + // containers to start. // - // If the Amazon Web Services Systems Manager Parameter Store parameter exists - // in the same Region as the job you're launching, then you can use either the - // full Amazon Resource Name (ARN) or name of the parameter. If the parameter - // exists in a different Region, then the full ARN must be specified. + // * COMPLETE - This condition validates that a dependent container runs + // to completion (exits) before permitting other containers to start. This + // can be useful for nonessential containers that run a script and then exit. + // This condition can't be set on an essential container. // - // ValueFrom is a required field - ValueFrom *string `locationName:"valueFrom" type:"string" required:"true"` + // * SUCCESS - This condition is the same as COMPLETE, but it also requires + // that the container exits with a zero status. This condition can't be set + // on an essential container. + Condition *string `locationName:"condition" type:"string"` + + // A unique identifier for the container. + ContainerName *string `locationName:"containerName" type:"string"` } // String returns the string representation. @@ -11769,7 +13101,7 @@ type Secret struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Secret) String() string { +func (s TaskContainerDependency) String() string { return awsutil.Prettify(s) } @@ -11778,44 +13110,214 @@ func (s Secret) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s Secret) GoString() string { +func (s TaskContainerDependency) GoString() string { return s.String() } -// Validate inspects the fields of the type to determine if they are valid. -func (s *Secret) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "Secret"} - if s.Name == nil { - invalidParams.Add(request.NewErrParamRequired("Name")) - } - if s.ValueFrom == nil { - invalidParams.Add(request.NewErrParamRequired("ValueFrom")) - } - - if invalidParams.Len() > 0 { - return invalidParams - } - return nil -} - -// SetName sets the Name field's value. -func (s *Secret) SetName(v string) *Secret { - s.Name = &v +// SetCondition sets the Condition field's value. +func (s *TaskContainerDependency) SetCondition(v string) *TaskContainerDependency { + s.Condition = &v return s } -// SetValueFrom sets the ValueFrom field's value. -func (s *Secret) SetValueFrom(v string) *Secret { - s.ValueFrom = &v +// SetContainerName sets the ContainerName field's value. +func (s *TaskContainerDependency) SetContainerName(v string) *TaskContainerDependency { + s.ContainerName = &v return s } -// These errors are usually caused by a server issue. -type ServerException struct { - _ struct{} `type:"structure"` - RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` +// The details for the container in this task attempt. +type TaskContainerDetails struct { + _ struct{} `type:"structure"` - Message_ *string `locationName:"message" type:"string"` + // The command that's passed to the container. This parameter maps to Cmd in + // the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) + // and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/). + // For more information, see https://docs.docker.com/engine/reference/builder/#cmd + // (https://docs.docker.com/engine/reference/builder/#cmd). + Command []*string `locationName:"command" type:"list"` + + // A list of containers that this container depends on. + DependsOn []*TaskContainerDependency `locationName:"dependsOn" type:"list"` + + // The environment variables to pass to a container. This parameter maps to + // Env in the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) + // and the --env option to docker run (https://docs.docker.com/engine/reference/run/). + // + // We don't recommend using plaintext environment variables for sensitive information, + // such as credential data. + Environment []*KeyValuePair `locationName:"environment" type:"list"` + + // If the essential parameter of a container is marked as true, and that container + // fails or stops for any reason, all other containers that are part of the + // task are stopped. If the essential parameter of a container is marked as + // false, its failure doesn't affect the rest of the containers in a task. If + // this parameter is omitted, a container is assumed to be essential. + // + // All tasks must have at least one essential container. If you have an application + // that's composed of multiple containers, group containers that are used for + // a common purpose into components, and separate the different components into + // multiple task definitions. For more information, see Application Architecture + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + // in the Amazon Elastic Container Service Developer Guide. + Essential *bool `locationName:"essential" type:"boolean"` + + // The exit code returned upon completion. + ExitCode *int64 `locationName:"exitCode" type:"integer"` + + // The image used to start a container. This string is passed directly to the + // Docker daemon. By default, images in the Docker Hub registry are available. + // Other repositories are specified with either repository-url/image:tag or + // repository-url/image@digest. Up to 255 letters (uppercase and lowercase), + // numbers, hyphens, underscores, colons, periods, forward slashes, and number + // signs are allowed. This parameter maps to Image in the Create a container + // (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section + // of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and + // the IMAGE parameter of the docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + Image *string `locationName:"image" type:"string"` + + // Linux-specific modifications that are applied to the container, such as Linux + // kernel capabilities. For more information, see KernelCapabilities (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). + // + // This parameter is not supported for Windows containers. + LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"` + + // The log configuration specification for the container. + // + // This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // By default, containers use the same logging driver that the Docker daemon + // uses. However the container can 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 on a different log server + // for remote logging options). For more information about the options for different + // supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/) + // in the Docker documentation. + // + // Amazon ECS currently supports a subset of the logging drivers available to + // the Docker daemon (shown in the LogConfiguration data type). Additional log + // drivers may 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 --format '{{.Server.APIVersion}}' + // + // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + // in the Amazon Elastic Container Service Developer Guide. + LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"` + + // The name of the 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. + LogStreamName *string `locationName:"logStreamName" type:"string"` + + // The mount points for data volumes in your container. + // + // This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --volume option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // Windows containers can mount whole directories on the same drive as $env:ProgramData. + // Windows containers can't mount directories on a different drive, and mount + // point can't be across drives. + MountPoints []*MountPoint `locationName:"mountPoints" type:"list"` + + // The name of a container. + Name *string `locationName:"name" type:"string"` + + // The network interfaces that are associated with the job. + NetworkInterfaces []*NetworkInterface `locationName:"networkInterfaces" type:"list"` + + // When this parameter is true, the container is given elevated privileges on + // the host container instance (similar to the root user). This parameter maps + // to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // This parameter is not supported for Windows containers or tasks run on Fargate. + Privileged *bool `locationName:"privileged" type:"boolean"` + + // 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 + // (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section + // of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and + // the --read-only option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // This parameter is not supported for Windows containers. + ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"` + + // A short (255 max characters) human-readable string to provide additional + // details for a running or stopped container. + Reason *string `locationName:"reason" type:"string"` + + // The private repository authentication credentials to use. + RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"` + + // The type and amount of a resource to assign to a container. The only supported + // resource is a GPU. + ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"` + + // The secrets to pass to the container. 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. + Secrets []*Secret `locationName:"secrets" type:"list"` + + // A list of ulimits to set in the container. If a ulimit value is specified + // in a task definition, it overrides the default values set by Docker. This + // parameter maps to Ulimits in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // Amazon ECS tasks hosted on Fargate use the default resource limit values + // set by the operating system with the exception of the nofile resource limit + // parameter which Fargate overrides. The nofile resource limit sets a restriction + // on the number of open files that a container can use. The default nofile + // soft limit is 1024 and the default hard limit is 65535. + // + // 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 --format '{{.Server.APIVersion}}' + // + // This parameter is not supported for Windows containers. + Ulimits []*Ulimit `locationName:"ulimits" type:"list"` + + // The user 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. + // + // When running tasks using the host network mode, don't run containers using + // the root user (UID 0). We recommend using a non-root user for better security. + // + // You can specify the user using the following formats. If specifying a UID + // or GID, you must specify it as a positive integer. + // + // * user + // + // * user:group + // + // * uid + // + // * uid:gid + // + // * user:gi + // + // * uid:group + // + // * + // + // This parameter is not supported for Windows containers. + User *string `locationName:"user" type:"string"` } // String returns the string representation. @@ -11823,7 +13325,7 @@ type ServerException struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ServerException) String() string { +func (s TaskContainerDetails) String() string { return awsutil.Prettify(s) } @@ -11832,77 +13334,159 @@ func (s ServerException) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ServerException) GoString() string { +func (s TaskContainerDetails) GoString() string { return s.String() } -func newErrorServerException(v protocol.ResponseMetadata) error { - return &ServerException{ - RespMetadata: v, - } +// SetCommand sets the Command field's value. +func (s *TaskContainerDetails) SetCommand(v []*string) *TaskContainerDetails { + s.Command = v + return s } -// Code returns the exception type name. -func (s *ServerException) Code() string { - return "ServerException" +// SetDependsOn sets the DependsOn field's value. +func (s *TaskContainerDetails) SetDependsOn(v []*TaskContainerDependency) *TaskContainerDetails { + s.DependsOn = v + return s } -// Message returns the exception's message. -func (s *ServerException) Message() string { - if s.Message_ != nil { - return *s.Message_ - } - return "" +// SetEnvironment sets the Environment field's value. +func (s *TaskContainerDetails) SetEnvironment(v []*KeyValuePair) *TaskContainerDetails { + s.Environment = v + return s +} + +// SetEssential sets the Essential field's value. +func (s *TaskContainerDetails) SetEssential(v bool) *TaskContainerDetails { + s.Essential = &v + return s +} + +// SetExitCode sets the ExitCode field's value. +func (s *TaskContainerDetails) SetExitCode(v int64) *TaskContainerDetails { + s.ExitCode = &v + return s +} + +// SetImage sets the Image field's value. +func (s *TaskContainerDetails) SetImage(v string) *TaskContainerDetails { + s.Image = &v + return s +} + +// SetLinuxParameters sets the LinuxParameters field's value. +func (s *TaskContainerDetails) SetLinuxParameters(v *LinuxParameters) *TaskContainerDetails { + s.LinuxParameters = v + return s +} + +// SetLogConfiguration sets the LogConfiguration field's value. +func (s *TaskContainerDetails) SetLogConfiguration(v *LogConfiguration) *TaskContainerDetails { + s.LogConfiguration = v + return s +} + +// SetLogStreamName sets the LogStreamName field's value. +func (s *TaskContainerDetails) SetLogStreamName(v string) *TaskContainerDetails { + s.LogStreamName = &v + return s +} + +// SetMountPoints sets the MountPoints field's value. +func (s *TaskContainerDetails) SetMountPoints(v []*MountPoint) *TaskContainerDetails { + s.MountPoints = v + return s +} + +// SetName sets the Name field's value. +func (s *TaskContainerDetails) SetName(v string) *TaskContainerDetails { + s.Name = &v + return s +} + +// SetNetworkInterfaces sets the NetworkInterfaces field's value. +func (s *TaskContainerDetails) SetNetworkInterfaces(v []*NetworkInterface) *TaskContainerDetails { + s.NetworkInterfaces = v + return s +} + +// SetPrivileged sets the Privileged field's value. +func (s *TaskContainerDetails) SetPrivileged(v bool) *TaskContainerDetails { + s.Privileged = &v + return s +} + +// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value. +func (s *TaskContainerDetails) SetReadonlyRootFilesystem(v bool) *TaskContainerDetails { + s.ReadonlyRootFilesystem = &v + return s +} + +// SetReason sets the Reason field's value. +func (s *TaskContainerDetails) SetReason(v string) *TaskContainerDetails { + s.Reason = &v + return s +} + +// SetRepositoryCredentials sets the RepositoryCredentials field's value. +func (s *TaskContainerDetails) SetRepositoryCredentials(v *RepositoryCredentials) *TaskContainerDetails { + s.RepositoryCredentials = v + return s } -// OrigErr always returns nil, satisfies awserr.Error interface. -func (s *ServerException) OrigErr() error { - return nil +// SetResourceRequirements sets the ResourceRequirements field's value. +func (s *TaskContainerDetails) SetResourceRequirements(v []*ResourceRequirement) *TaskContainerDetails { + s.ResourceRequirements = v + return s } -func (s *ServerException) Error() string { - return fmt.Sprintf("%s: %s", s.Code(), s.Message()) +// SetSecrets sets the Secrets field's value. +func (s *TaskContainerDetails) SetSecrets(v []*Secret) *TaskContainerDetails { + s.Secrets = v + return s } -// Status code returns the HTTP status code for the request's response error. -func (s *ServerException) StatusCode() int { - return s.RespMetadata.StatusCode +// SetUlimits sets the Ulimits field's value. +func (s *TaskContainerDetails) SetUlimits(v []*Ulimit) *TaskContainerDetails { + s.Ulimits = v + return s } -// RequestID returns the service's response RequestID for request. -func (s *ServerException) RequestID() string { - return s.RespMetadata.RequestID +// SetUser sets the User field's value. +func (s *TaskContainerDetails) SetUser(v string) *TaskContainerDetails { + s.User = &v + return s } -// Specifies the weights for the fair share identifiers for the fair share policy. -// Fair share identifiers that aren't included have a default weight of 1.0. -type ShareAttributes struct { +// The overrides that should be sent to a container. +// +// For information about using Batch overrides when you connect event sources +// to targets, see BatchContainerOverrides (https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_BatchContainerOverrides.html). +type TaskContainerOverrides struct { _ struct{} `type:"structure"` - // A fair share identifier or fair share identifier prefix. If the string ends - // with an asterisk (*), this entry specifies the weight factor to use for fair - // share identifiers that start with that prefix. The list of fair share identifiers - // in a fair share policy can't overlap. For example, you can't have one that - // specifies a shareIdentifier of UserA* and another that specifies a shareIdentifier - // of UserA-1. - // - // There can be no more than 500 fair share identifiers active in a job queue. - // - // The string is limited to 255 alphanumeric characters, and can be followed - // by an asterisk (*). + // The command to send to the container that overrides the default command from + // the Docker image or the job definition. // - // ShareIdentifier is a required field - ShareIdentifier *string `locationName:"shareIdentifier" type:"string" required:"true"` + // This parameter can't contain an empty string. + Command []*string `locationName:"command" type:"list"` - // The weight factor for the fair share identifier. The default value is 1.0. - // A lower value has a higher priority for compute resources. For example, jobs - // that use a share identifier with a weight factor of 0.125 (1/8) get 8 times - // the compute resources of jobs that use a share identifier with a weight factor - // of 1. + // 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. // - // The smallest supported value is 0.0001, and the largest supported value is - // 999.9999. - WeightFactor *float64 `locationName:"weightFactor" type:"float"` + // Environment variables cannot start with AWS_BATCH. This naming convention + // is reserved for variables that Batch sets. + Environment []*KeyValuePair `locationName:"environment" type:"list"` + + // A pointer to the container that you want to override. The container's name + // provides a unique identifier for the container being used. + Name *string `locationName:"name" type:"string"` + + // The type and amount of resources to assign to a container. This overrides + // the settings in the job definition. The supported resources include GPU, + // MEMORY, and VCPU. + ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"` } // String returns the string representation. @@ -11910,7 +13494,7 @@ type ShareAttributes struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ShareAttributes) String() string { +func (s TaskContainerOverrides) String() string { return awsutil.Prettify(s) } @@ -11919,15 +13503,22 @@ func (s ShareAttributes) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s ShareAttributes) GoString() string { +func (s TaskContainerOverrides) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *ShareAttributes) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "ShareAttributes"} - if s.ShareIdentifier == nil { - invalidParams.Add(request.NewErrParamRequired("ShareIdentifier")) +func (s *TaskContainerOverrides) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TaskContainerOverrides"} + if s.ResourceRequirements != nil { + for i, v := range s.ResourceRequirements { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -11936,132 +13527,209 @@ func (s *ShareAttributes) Validate() error { return nil } -// SetShareIdentifier sets the ShareIdentifier field's value. -func (s *ShareAttributes) SetShareIdentifier(v string) *ShareAttributes { - s.ShareIdentifier = &v +// SetCommand sets the Command field's value. +func (s *TaskContainerOverrides) SetCommand(v []*string) *TaskContainerOverrides { + s.Command = v return s } -// SetWeightFactor sets the WeightFactor field's value. -func (s *ShareAttributes) SetWeightFactor(v float64) *ShareAttributes { - s.WeightFactor = &v +// SetEnvironment sets the Environment field's value. +func (s *TaskContainerOverrides) SetEnvironment(v []*KeyValuePair) *TaskContainerOverrides { + s.Environment = v return s } -// Contains the parameters for SubmitJob. -type SubmitJobInput struct { - _ struct{} `type:"structure"` +// SetName sets the Name field's value. +func (s *TaskContainerOverrides) SetName(v string) *TaskContainerOverrides { + s.Name = &v + return s +} - // The array properties for the submitted job, such as the size of the array. - // The array size can be between 2 and 10,000. If you specify array properties - // for a job, it becomes an array job. For more information, see Array Jobs - // (https://docs.aws.amazon.com/batch/latest/userguide/array_jobs.html) in the - // Batch User Guide. - ArrayProperties *ArrayProperties `locationName:"arrayProperties" type:"structure"` +// SetResourceRequirements sets the ResourceRequirements field's value. +func (s *TaskContainerOverrides) SetResourceRequirements(v []*ResourceRequirement) *TaskContainerOverrides { + s.ResourceRequirements = v + return s +} - // An object with various properties that override the defaults for the job - // definition that specify the name of a container in the specified job definition - // and the overrides it should receive. You can override the default command - // for a container, which is specified in the job definition or the Docker image, - // with a command override. You can also override existing environment variables - // on a container or add new environment variables to it with an environment - // override. - ContainerOverrides *ContainerOverrides `locationName:"containerOverrides" type:"structure"` +// Container properties are used for Amazon ECS-based job definitions. These +// properties to describe the container that's launched as part of a job. +type TaskContainerProperties struct { + _ struct{} `type:"structure"` - // A list of dependencies for the job. A job can depend upon a maximum of 20 - // jobs. You can specify a SEQUENTIAL type dependency without specifying a job - // ID for array jobs so that each child array job completes sequentially, starting - // at index 0. You can also specify an N_TO_N type dependency with a job ID - // for array jobs. In that case, each index child of this job must wait for - // the corresponding index child of each dependency to complete before it can - // begin. - DependsOn []*JobDependency `locationName:"dependsOn" type:"list"` + // The command that's passed to the container. This parameter maps to Cmd in + // the Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) + // and the COMMAND parameter to docker run (https://docs.docker.com/engine/reference/run/). + // For more information, see Dockerfile reference: CMD (https://docs.docker.com/engine/reference/builder/#cmd). + Command []*string `locationName:"command" type:"list"` - // An object that can only be specified for jobs that are run on Amazon EKS - // resources with various properties that override defaults for the job definition. - EksPropertiesOverride *EksPropertiesOverride `locationName:"eksPropertiesOverride" type:"structure"` + // A list of containers that this container depends on. + DependsOn []*TaskContainerDependency `locationName:"dependsOn" type:"list"` - // The job definition used by this job. This value can be one of definition-name, - // definition-name:revision, or the Amazon Resource Name (ARN) for the job definition, - // with or without the revision (arn:aws:batch:region:account:job-definition/definition-name:revision - // , or arn:aws:batch:region:account:job-definition/definition-name ). + // The environment variables to pass to a container. This parameter maps to + // Env inthe Create a container (https://docs.docker.com/engine/api/v1.23/#create-a-container) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.23/) + // and the --env parameter to docker run (https://docs.docker.com/engine/reference/run/). // - // If the revision is not specified, then the latest active revision is used. + // We don't recommend using plaintext environment variables for sensitive information, + // such as credential data. // - // JobDefinition is a required field - JobDefinition *string `locationName:"jobDefinition" type:"string" required:"true"` + // Environment variables cannot start with AWS_BATCH. This naming convention + // is reserved for variables that Batch sets. + Environment []*KeyValuePair `locationName:"environment" type:"list"` - // The name of the job. It can be up to 128 letters long. The first character - // must be alphanumeric, can contain uppercase and lowercase letters, numbers, - // hyphens (-), and underscores (_). + // If the essential parameter of a container is marked as true, and that container + // fails or stops for any reason, all other containers that are part of the + // task are stopped. If the essential parameter of a container is marked as + // false, its failure doesn't affect the rest of the containers in a task. If + // this parameter is omitted, a container is assumed to be essential. + // + // All tasks must have at least one essential container. If you have an application + // that's composed of multiple containers, group containers that are used for + // a common purpose into components, and separate the different components into + // multiple task definitions. For more information, see Application Architecture + // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) + // in the Amazon Elastic Container Service Developer Guide. + Essential *bool `locationName:"essential" type:"boolean"` + + // The image used to start a container. This string is passed directly to the + // Docker daemon. By default, images in the Docker Hub registry are available. + // Other repositories are specified with either repository-url/image:tag or + // repository-url/image@digest. Up to 255 letters (uppercase and lowercase), + // numbers, hyphens, underscores, colons, periods, forward slashes, and number + // signs are allowed. This parameter maps to Image in the Create a container + // (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section + // of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and + // the IMAGE parameter of the docker run (https://docs.docker.com/engine/reference/run/#security-configuration). // - // JobName is a required field - JobName *string `locationName:"jobName" type:"string" required:"true"` + // Image is a required field + Image *string `locationName:"image" type:"string" required:"true"` - // The job queue where the job is submitted. You can specify either the name - // or the Amazon Resource Name (ARN) of the queue. - // - // JobQueue is a required field - JobQueue *string `locationName:"jobQueue" type:"string" required:"true"` + // Linux-specific modifications that are applied to the container, such as Linux + // kernel capabilities. For more information, see KernelCapabilities (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). + LinuxParameters *LinuxParameters `locationName:"linuxParameters" type:"structure"` - // A list of node overrides in JSON format that specify the node range to target - // and the container overrides for that node range. + // The log configuration specification for the container. // - // This parameter isn't applicable to jobs that are running on Fargate resources; - // use containerOverrides instead. - NodeOverrides *NodeOverrides `locationName:"nodeOverrides" type:"structure"` - - // Additional parameters passed to the job that replace parameter substitution - // placeholders that are set in the job definition. Parameters are specified - // as a key and value pair mapping. Parameters in a SubmitJob request override - // any corresponding parameter defaults from the job definition. - Parameters map[string]*string `locationName:"parameters" type:"map"` + // This parameter maps to LogConfig in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --log-driver option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // By default, containers use the same logging driver that the Docker daemon + // uses. However the container can 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 on a different log server + // for remote logging options). For more information about the options for different + // supported log drivers, see Configure logging drivers (https://docs.docker.com/engine/admin/logging/overview/) + // in the Docker documentation. + // + // Amazon ECS currently supports a subset of the logging drivers available to + // the Docker daemon (shown in the LogConfiguration data type). Additional log + // drivers may 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 --format '{{.Server.APIVersion}}' + // + // 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 (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-config.html) + // in the Amazon Elastic Container Service Developer Guide. + LogConfiguration *LogConfiguration `locationName:"logConfiguration" type:"structure"` - // Specifies whether to propagate the tags from the job or job definition to - // the corresponding Amazon ECS task. If no value is specified, the tags aren't - // propagated. Tags can only be propagated to the tasks during task creation. - // For tags with the same name, job tags are given priority over job definitions - // tags. If the total number of combined tags from the job and job definition - // is over 50, the job is moved to the FAILED state. When specified, this overrides - // the tag propagation setting in the job definition. - PropagateTags *bool `locationName:"propagateTags" type:"boolean"` + // The mount points for data volumes in your container. + // + // This parameter maps to Volumes in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --volume option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // Windows containers can mount whole directories on the same drive as $env:ProgramData. + // Windows containers can't mount directories on a different drive, and mount + // point can't be across drives. + MountPoints []*MountPoint `locationName:"mountPoints" type:"list"` - // The retry strategy to use for failed jobs from this SubmitJob operation. - // When a retry strategy is specified here, it overrides the retry strategy - // defined in the job definition. - RetryStrategy *RetryStrategy `locationName:"retryStrategy" type:"structure"` + // The name of a container. The name can be used as a unique identifier to target + // your dependsOn and Overrides objects. + Name *string `locationName:"name" type:"string"` - // The scheduling priority for the job. This only affects jobs in job queues - // with a fair share policy. Jobs with a higher scheduling priority are scheduled - // before jobs with a lower scheduling priority. This overrides any scheduling - // priority in the job definition and works only within a single share identifier. + // When this parameter is true, the container is given elevated privileges on + // the host container instance (similar to the root user). This parameter maps + // to Privileged in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --privileged option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). // - // The minimum supported value is 0 and the maximum supported value is 9999. - SchedulingPriorityOverride *int64 `locationName:"schedulingPriorityOverride" type:"integer"` + // This parameter is not supported for Windows containers or tasks run on Fargate. + Privileged *bool `locationName:"privileged" type:"boolean"` - // The share identifier for the job. Don't specify this parameter if the job - // queue doesn't have a scheduling policy. If the job queue has a scheduling - // policy, then this parameter must be specified. + // 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 + // (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section + // of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) and + // the --read-only option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). // - // This string is limited to 255 alphanumeric characters, and can be followed - // by an asterisk (*). - ShareIdentifier *string `locationName:"shareIdentifier" type:"string"` + // This parameter is not supported for Windows containers. + ReadonlyRootFilesystem *bool `locationName:"readonlyRootFilesystem" type:"boolean"` - // The tags that you apply to the job request to help you categorize and organize - // your resources. Each tag consists of a key and an optional value. For more - // information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) - // in Amazon Web Services General Reference. - Tags map[string]*string `locationName:"tags" min:"1" type:"map"` + // The private repository authentication credentials to use. + RepositoryCredentials *RepositoryCredentials `locationName:"repositoryCredentials" type:"structure"` - // The timeout configuration for this SubmitJob operation. You can specify a - // timeout duration after which Batch terminates your jobs if they haven't finished. - // If a job is terminated due to a timeout, it isn't retried. The minimum value - // for the timeout is 60 seconds. This configuration overrides any timeout configuration - // specified in the job definition. For array jobs, child jobs have the same - // timeout configuration as the parent job. For more information, see Job Timeouts - // (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/job_timeouts.html) + // The type and amount of a resource to assign to a container. The only supported + // resource is a GPU. + ResourceRequirements []*ResourceRequirement `locationName:"resourceRequirements" type:"list"` + + // The secrets to pass to the container. 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. - Timeout *JobTimeout `locationName:"timeout" type:"structure"` + Secrets []*Secret `locationName:"secrets" type:"list"` + + // A list of ulimits to set in the container. If a ulimit value is specified + // in a task definition, it overrides the default values set by Docker. This + // parameter maps to Ulimits in the Create a container (https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) + // section of the Docker Remote API (https://docs.docker.com/engine/api/v1.35/) + // and the --ulimit option to docker run (https://docs.docker.com/engine/reference/run/#security-configuration). + // + // Amazon ECS tasks hosted on Fargate use the default resource limit values + // set by the operating system with the exception of the nofile resource limit + // parameter which Fargate overrides. The nofile resource limit sets a restriction + // on the number of open files that a container can use. The default nofile + // soft limit is 1024 and the default hard limit is 65535. + // + // 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 --format '{{.Server.APIVersion}}' + // + // This parameter is not supported for Windows containers. + Ulimits []*Ulimit `locationName:"ulimits" type:"list"` + + // The user 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. + // + // When running tasks using the host network mode, don't run containers using + // the root user (UID 0). We recommend using a non-root user for better security. + // + // You can specify the user using the following formats. If specifying a UID + // or GID, you must specify it as a positive integer. + // + // * user + // + // * user:group + // + // * uid + // + // * uid:gid + // + // * user:gi + // + // * uid:group + // + // This parameter is not supported for Windows containers. + User *string `locationName:"user" type:"string"` } // String returns the string representation. @@ -12069,7 +13737,7 @@ type SubmitJobInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s SubmitJobInput) String() string { +func (s TaskContainerProperties) String() string { return awsutil.Prettify(s) } @@ -12078,43 +13746,59 @@ func (s SubmitJobInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s SubmitJobInput) GoString() string { +func (s TaskContainerProperties) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *SubmitJobInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "SubmitJobInput"} - if s.JobDefinition == nil { - invalidParams.Add(request.NewErrParamRequired("JobDefinition")) - } - if s.JobName == nil { - invalidParams.Add(request.NewErrParamRequired("JobName")) +func (s *TaskContainerProperties) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TaskContainerProperties"} + if s.Image == nil { + invalidParams.Add(request.NewErrParamRequired("Image")) } - if s.JobQueue == nil { - invalidParams.Add(request.NewErrParamRequired("JobQueue")) + if s.LinuxParameters != nil { + if err := s.LinuxParameters.Validate(); err != nil { + invalidParams.AddNested("LinuxParameters", err.(request.ErrInvalidParams)) + } } - if s.Tags != nil && len(s.Tags) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) + if s.LogConfiguration != nil { + if err := s.LogConfiguration.Validate(); err != nil { + invalidParams.AddNested("LogConfiguration", err.(request.ErrInvalidParams)) + } } - if s.ContainerOverrides != nil { - if err := s.ContainerOverrides.Validate(); err != nil { - invalidParams.AddNested("ContainerOverrides", err.(request.ErrInvalidParams)) + if s.RepositoryCredentials != nil { + if err := s.RepositoryCredentials.Validate(); err != nil { + invalidParams.AddNested("RepositoryCredentials", err.(request.ErrInvalidParams)) } } - if s.EksPropertiesOverride != nil { - if err := s.EksPropertiesOverride.Validate(); err != nil { - invalidParams.AddNested("EksPropertiesOverride", err.(request.ErrInvalidParams)) + if s.ResourceRequirements != nil { + for i, v := range s.ResourceRequirements { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceRequirements", i), err.(request.ErrInvalidParams)) + } } } - if s.NodeOverrides != nil { - if err := s.NodeOverrides.Validate(); err != nil { - invalidParams.AddNested("NodeOverrides", err.(request.ErrInvalidParams)) + if s.Secrets != nil { + for i, v := range s.Secrets { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Secrets", i), err.(request.ErrInvalidParams)) + } } } - if s.RetryStrategy != nil { - if err := s.RetryStrategy.Validate(); err != nil { - invalidParams.AddNested("RetryStrategy", err.(request.ErrInvalidParams)) + if s.Ulimits != nil { + for i, v := range s.Ulimits { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Ulimits", i), err.(request.ErrInvalidParams)) + } } } @@ -12124,168 +13808,108 @@ func (s *SubmitJobInput) Validate() error { return nil } -// SetArrayProperties sets the ArrayProperties field's value. -func (s *SubmitJobInput) SetArrayProperties(v *ArrayProperties) *SubmitJobInput { - s.ArrayProperties = v - return s -} - -// SetContainerOverrides sets the ContainerOverrides field's value. -func (s *SubmitJobInput) SetContainerOverrides(v *ContainerOverrides) *SubmitJobInput { - s.ContainerOverrides = v +// SetCommand sets the Command field's value. +func (s *TaskContainerProperties) SetCommand(v []*string) *TaskContainerProperties { + s.Command = v return s } // SetDependsOn sets the DependsOn field's value. -func (s *SubmitJobInput) SetDependsOn(v []*JobDependency) *SubmitJobInput { +func (s *TaskContainerProperties) SetDependsOn(v []*TaskContainerDependency) *TaskContainerProperties { s.DependsOn = v return s } -// SetEksPropertiesOverride sets the EksPropertiesOverride field's value. -func (s *SubmitJobInput) SetEksPropertiesOverride(v *EksPropertiesOverride) *SubmitJobInput { - s.EksPropertiesOverride = v - return s -} - -// SetJobDefinition sets the JobDefinition field's value. -func (s *SubmitJobInput) SetJobDefinition(v string) *SubmitJobInput { - s.JobDefinition = &v +// SetEnvironment sets the Environment field's value. +func (s *TaskContainerProperties) SetEnvironment(v []*KeyValuePair) *TaskContainerProperties { + s.Environment = v return s } -// SetJobName sets the JobName field's value. -func (s *SubmitJobInput) SetJobName(v string) *SubmitJobInput { - s.JobName = &v +// SetEssential sets the Essential field's value. +func (s *TaskContainerProperties) SetEssential(v bool) *TaskContainerProperties { + s.Essential = &v return s } -// SetJobQueue sets the JobQueue field's value. -func (s *SubmitJobInput) SetJobQueue(v string) *SubmitJobInput { - s.JobQueue = &v +// SetImage sets the Image field's value. +func (s *TaskContainerProperties) SetImage(v string) *TaskContainerProperties { + s.Image = &v return s } -// SetNodeOverrides sets the NodeOverrides field's value. -func (s *SubmitJobInput) SetNodeOverrides(v *NodeOverrides) *SubmitJobInput { - s.NodeOverrides = v +// SetLinuxParameters sets the LinuxParameters field's value. +func (s *TaskContainerProperties) SetLinuxParameters(v *LinuxParameters) *TaskContainerProperties { + s.LinuxParameters = v return s } -// SetParameters sets the Parameters field's value. -func (s *SubmitJobInput) SetParameters(v map[string]*string) *SubmitJobInput { - s.Parameters = v +// SetLogConfiguration sets the LogConfiguration field's value. +func (s *TaskContainerProperties) SetLogConfiguration(v *LogConfiguration) *TaskContainerProperties { + s.LogConfiguration = v return s } -// SetPropagateTags sets the PropagateTags field's value. -func (s *SubmitJobInput) SetPropagateTags(v bool) *SubmitJobInput { - s.PropagateTags = &v +// SetMountPoints sets the MountPoints field's value. +func (s *TaskContainerProperties) SetMountPoints(v []*MountPoint) *TaskContainerProperties { + s.MountPoints = v return s } -// SetRetryStrategy sets the RetryStrategy field's value. -func (s *SubmitJobInput) SetRetryStrategy(v *RetryStrategy) *SubmitJobInput { - s.RetryStrategy = v +// SetName sets the Name field's value. +func (s *TaskContainerProperties) SetName(v string) *TaskContainerProperties { + s.Name = &v return s } -// SetSchedulingPriorityOverride sets the SchedulingPriorityOverride field's value. -func (s *SubmitJobInput) SetSchedulingPriorityOverride(v int64) *SubmitJobInput { - s.SchedulingPriorityOverride = &v +// SetPrivileged sets the Privileged field's value. +func (s *TaskContainerProperties) SetPrivileged(v bool) *TaskContainerProperties { + s.Privileged = &v return s } -// SetShareIdentifier sets the ShareIdentifier field's value. -func (s *SubmitJobInput) SetShareIdentifier(v string) *SubmitJobInput { - s.ShareIdentifier = &v +// SetReadonlyRootFilesystem sets the ReadonlyRootFilesystem field's value. +func (s *TaskContainerProperties) SetReadonlyRootFilesystem(v bool) *TaskContainerProperties { + s.ReadonlyRootFilesystem = &v return s } -// SetTags sets the Tags field's value. -func (s *SubmitJobInput) SetTags(v map[string]*string) *SubmitJobInput { - s.Tags = v +// SetRepositoryCredentials sets the RepositoryCredentials field's value. +func (s *TaskContainerProperties) SetRepositoryCredentials(v *RepositoryCredentials) *TaskContainerProperties { + s.RepositoryCredentials = v return s } -// SetTimeout sets the Timeout field's value. -func (s *SubmitJobInput) SetTimeout(v *JobTimeout) *SubmitJobInput { - s.Timeout = v +// SetResourceRequirements sets the ResourceRequirements field's value. +func (s *TaskContainerProperties) SetResourceRequirements(v []*ResourceRequirement) *TaskContainerProperties { + s.ResourceRequirements = v return s } -type SubmitJobOutput struct { - _ struct{} `type:"structure"` - - // The Amazon Resource Name (ARN) for the job. - JobArn *string `locationName:"jobArn" type:"string"` - - // The unique identifier for the job. - // - // JobId is a required field - JobId *string `locationName:"jobId" type:"string" required:"true"` - - // The name of the job. - // - // JobName is a required field - JobName *string `locationName:"jobName" type:"string" required:"true"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s SubmitJobOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s SubmitJobOutput) GoString() string { - return s.String() -} - -// SetJobArn sets the JobArn field's value. -func (s *SubmitJobOutput) SetJobArn(v string) *SubmitJobOutput { - s.JobArn = &v +// SetSecrets sets the Secrets field's value. +func (s *TaskContainerProperties) SetSecrets(v []*Secret) *TaskContainerProperties { + s.Secrets = v return s } -// SetJobId sets the JobId field's value. -func (s *SubmitJobOutput) SetJobId(v string) *SubmitJobOutput { - s.JobId = &v +// SetUlimits sets the Ulimits field's value. +func (s *TaskContainerProperties) SetUlimits(v []*Ulimit) *TaskContainerProperties { + s.Ulimits = v return s } -// SetJobName sets the JobName field's value. -func (s *SubmitJobOutput) SetJobName(v string) *SubmitJobOutput { - s.JobName = &v +// SetUser sets the User field's value. +func (s *TaskContainerProperties) SetUser(v string) *TaskContainerProperties { + s.User = &v return s } -// Contains the parameters for TagResource. -type TagResourceInput struct { +// An object that contains overrides for the task definition of a job. +type TaskPropertiesOverride struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the resource that tags are added to. Batch - // resources that support tags are compute environments, jobs, job definitions, - // job queues, and scheduling policies. ARNs for child jobs of array and multi-node - // parallel (MNP) jobs aren't supported. - // - // ResourceArn is a required field - ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"` - - // The tags that you apply to the resource to help you categorize and organize - // your resources. Each tag consists of a key and an optional value. For more - // information, see Tagging Amazon Web Services Resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) - // in Amazon Web Services General Reference. - // - // Tags is a required field - Tags map[string]*string `locationName:"tags" min:"1" type:"map" required:"true"` + // The overrides for the container definition of a job. + Containers []*TaskContainerOverrides `locationName:"containers" type:"list"` } // String returns the string representation. @@ -12293,7 +13917,7 @@ type TagResourceInput struct { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s TagResourceInput) String() string { +func (s TaskPropertiesOverride) String() string { return awsutil.Prettify(s) } @@ -12302,24 +13926,22 @@ func (s TagResourceInput) String() string { // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". -func (s TagResourceInput) GoString() string { +func (s TaskPropertiesOverride) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. -func (s *TagResourceInput) Validate() error { - invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} - if s.ResourceArn == nil { - invalidParams.Add(request.NewErrParamRequired("ResourceArn")) - } - if s.ResourceArn != nil && len(*s.ResourceArn) < 1 { - invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1)) - } - if s.Tags == nil { - invalidParams.Add(request.NewErrParamRequired("Tags")) - } - if s.Tags != nil && len(s.Tags) < 1 { - invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) +func (s *TaskPropertiesOverride) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "TaskPropertiesOverride"} + if s.Containers != nil { + for i, v := range s.Containers { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Containers", i), err.(request.ErrInvalidParams)) + } + } } if invalidParams.Len() > 0 { @@ -12328,40 +13950,12 @@ func (s *TagResourceInput) Validate() error { return nil } -// SetResourceArn sets the ResourceArn field's value. -func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput { - s.ResourceArn = &v - return s -} - -// SetTags sets the Tags field's value. -func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { - s.Tags = v +// SetContainers sets the Containers field's value. +func (s *TaskPropertiesOverride) SetContainers(v []*TaskContainerOverrides) *TaskPropertiesOverride { + s.Containers = v return s } -type TagResourceOutput struct { - _ struct{} `type:"structure"` -} - -// String returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s TagResourceOutput) String() string { - return awsutil.Prettify(s) -} - -// GoString returns the string representation. -// -// API parameter values that are decorated as "sensitive" in the API will not -// be included in the string output. The member name will be present, but the -// value will be replaced with "sensitive". -func (s TagResourceOutput) GoString() string { - return s.String() -} - // Contains the parameters for TerminateJob. type TerminateJobInput struct { _ struct{} `type:"structure"` diff --git a/service/bedrockagentruntime/api.go b/service/bedrockagentruntime/api.go index 8b33882b4a3..4b7263f332f 100644 --- a/service/bedrockagentruntime/api.go +++ b/service/bedrockagentruntime/api.go @@ -1216,7 +1216,11 @@ type GeneratedResponsePart struct { _ struct{} `type:"structure"` // Text response part - TextResponsePart *TextResponsePart `locationName:"textResponsePart" type:"structure"` + // + // TextResponsePart is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by GeneratedResponsePart's + // String and GoString methods. + TextResponsePart *TextResponsePart `locationName:"textResponsePart" type:"structure" sensitive:"true"` } // String returns the string representation. @@ -1834,11 +1838,19 @@ type KnowledgeBaseRetrievalResult struct { // Content of a retrieval result. // + // Content is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by KnowledgeBaseRetrievalResult's + // String and GoString methods. + // // Content is a required field - Content *RetrievalResultContent `locationName:"content" type:"structure" required:"true"` + Content *RetrievalResultContent `locationName:"content" type:"structure" required:"true" sensitive:"true"` // The source location of a retrieval result. - Location *RetrievalResultLocation `locationName:"location" type:"structure"` + // + // Location is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by KnowledgeBaseRetrievalResult's + // String and GoString methods. + Location *RetrievalResultLocation `locationName:"location" type:"structure" sensitive:"true"` // The relevance score of a result. Score *float64 `locationName:"score" type:"double"` @@ -1893,6 +1905,9 @@ type KnowledgeBaseRetrieveAndGenerateConfiguration struct { // // ModelArn is a required field ModelArn *string `locationName:"modelArn" min:"20" type:"string" required:"true"` + + // Search parameters for retrieving from knowledge base. + RetrievalConfiguration *KnowledgeBaseRetrievalConfiguration `locationName:"retrievalConfiguration" type:"structure"` } // String returns the string representation. @@ -1925,6 +1940,11 @@ func (s *KnowledgeBaseRetrieveAndGenerateConfiguration) Validate() error { if s.ModelArn != nil && len(*s.ModelArn) < 20 { invalidParams.Add(request.NewErrParamMinLen("ModelArn", 20)) } + if s.RetrievalConfiguration != nil { + if err := s.RetrievalConfiguration.Validate(); err != nil { + invalidParams.AddNested("RetrievalConfiguration", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -1944,14 +1964,21 @@ func (s *KnowledgeBaseRetrieveAndGenerateConfiguration) SetModelArn(v string) *K return s } +// SetRetrievalConfiguration sets the RetrievalConfiguration field's value. +func (s *KnowledgeBaseRetrieveAndGenerateConfiguration) SetRetrievalConfiguration(v *KnowledgeBaseRetrievalConfiguration) *KnowledgeBaseRetrieveAndGenerateConfiguration { + s.RetrievalConfiguration = v + return s +} + // Knowledge base vector search configuration type KnowledgeBaseVectorSearchConfiguration struct { _ struct{} `type:"structure"` // Top-K results to retrieve from knowledge base. - // - // NumberOfResults is a required field - NumberOfResults *int64 `locationName:"numberOfResults" min:"1" type:"integer" required:"true"` + NumberOfResults *int64 `locationName:"numberOfResults" min:"1" type:"integer"` + + // Override the type of query to be performed on data store + OverrideSearchType *string `locationName:"overrideSearchType" type:"string" enum:"SearchType"` } // String returns the string representation. @@ -1975,9 +2002,6 @@ func (s KnowledgeBaseVectorSearchConfiguration) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *KnowledgeBaseVectorSearchConfiguration) Validate() error { invalidParams := request.ErrInvalidParams{Context: "KnowledgeBaseVectorSearchConfiguration"} - if s.NumberOfResults == nil { - invalidParams.Add(request.NewErrParamRequired("NumberOfResults")) - } if s.NumberOfResults != nil && *s.NumberOfResults < 1 { invalidParams.Add(request.NewErrParamMinValue("NumberOfResults", 1)) } @@ -1994,6 +2018,12 @@ func (s *KnowledgeBaseVectorSearchConfiguration) SetNumberOfResults(v int64) *Kn return s } +// SetOverrideSearchType sets the OverrideSearchType field's value. +func (s *KnowledgeBaseVectorSearchConfiguration) SetOverrideSearchType(v string) *KnowledgeBaseVectorSearchConfiguration { + s.OverrideSearchType = &v + return s +} + // Trace Part which contains information used to call Invoke Model type ModelInvocationInput_ struct { _ struct{} `type:"structure" sensitive:"true"` @@ -3031,7 +3061,7 @@ func (e *ResponseStreamUnknownEvent) UnmarshalEvent( // Content of a retrieval result. type RetrievalResultContent struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // Content of a retrieval result in text // @@ -3065,7 +3095,7 @@ func (s *RetrievalResultContent) SetText(v string) *RetrievalResultContent { // The source location of a retrieval result. type RetrievalResultLocation struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // The S3 location of a retrieval result. S3Location *RetrievalResultS3Location `locationName:"s3Location" type:"structure"` @@ -3631,10 +3661,18 @@ type RetrievedReference struct { _ struct{} `type:"structure"` // Content of a retrieval result. - Content *RetrievalResultContent `locationName:"content" type:"structure"` + // + // Content is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RetrievedReference's + // String and GoString methods. + Content *RetrievalResultContent `locationName:"content" type:"structure" sensitive:"true"` // The source location of a retrieval result. - Location *RetrievalResultLocation `locationName:"location" type:"structure"` + // + // Location is a sensitive parameter and its value will be + // replaced with "sensitive" in string returned by RetrievedReference's + // String and GoString methods. + Location *RetrievalResultLocation `locationName:"location" type:"structure" sensitive:"true"` } // String returns the string representation. @@ -3845,7 +3883,7 @@ func (s *Span) SetStart(v int64) *Span { // Text response part type TextResponsePart struct { - _ struct{} `type:"structure"` + _ struct{} `type:"structure" sensitive:"true"` // Span of text Span *Span `locationName:"span" type:"structure"` @@ -4328,6 +4366,23 @@ func RetrieveAndGenerateType_Values() []string { } } +// Query type to be performed on data store. +const ( + // SearchTypeHybrid is a SearchType enum value + SearchTypeHybrid = "HYBRID" + + // SearchTypeSemantic is a SearchType enum value + SearchTypeSemantic = "SEMANTIC" +) + +// SearchType_Values returns all elements of the SearchType enum +func SearchType_Values() []string { + return []string{ + SearchTypeHybrid, + SearchTypeSemantic, + } +} + // Parsing error source const ( // SourceActionGroup is a Source enum value diff --git a/service/costexplorer/api.go b/service/costexplorer/api.go index c3d4d3b2d3c..ab3ad5da6b8 100644 --- a/service/costexplorer/api.go +++ b/service/costexplorer/api.go @@ -852,6 +852,89 @@ func (c *CostExplorer) GetAnomalySubscriptionsWithContext(ctx aws.Context, input return out, req.Send() } +const opGetApproximateUsageRecords = "GetApproximateUsageRecords" + +// GetApproximateUsageRecordsRequest generates a "aws/request.Request" representing the +// client's request for the GetApproximateUsageRecords operation. The "output" return +// value will be populated with the request's response once the request completes +// successfully. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetApproximateUsageRecords for more information on using the GetApproximateUsageRecords +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// // Example sending a request using the GetApproximateUsageRecordsRequest method. +// req, resp := client.GetApproximateUsageRecordsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetApproximateUsageRecords +func (c *CostExplorer) GetApproximateUsageRecordsRequest(input *GetApproximateUsageRecordsInput) (req *request.Request, output *GetApproximateUsageRecordsOutput) { + op := &request.Operation{ + Name: opGetApproximateUsageRecords, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetApproximateUsageRecordsInput{} + } + + output = &GetApproximateUsageRecordsOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetApproximateUsageRecords API operation for AWS Cost Explorer Service. +// +// Retrieves estimated usage records for hourly granularity or resource-level +// data at daily granularity. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cost Explorer Service's +// API operation GetApproximateUsageRecords for usage and error information. +// +// Returned Error Types: +// +// - LimitExceededException +// You made too many calls in a short period of time. Try again later. +// +// - DataUnavailableException +// The requested data is unavailable. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ce-2017-10-25/GetApproximateUsageRecords +func (c *CostExplorer) GetApproximateUsageRecords(input *GetApproximateUsageRecordsInput) (*GetApproximateUsageRecordsOutput, error) { + req, out := c.GetApproximateUsageRecordsRequest(input) + return out, req.Send() +} + +// GetApproximateUsageRecordsWithContext is the same as GetApproximateUsageRecords with the addition of +// the ability to pass a context and additional request options. +// +// See GetApproximateUsageRecords for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *CostExplorer) GetApproximateUsageRecordsWithContext(ctx aws.Context, input *GetApproximateUsageRecordsInput, opts ...request.Option) (*GetApproximateUsageRecordsOutput, error) { + req, out := c.GetApproximateUsageRecordsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetCostAndUsage = "GetCostAndUsage" // GetCostAndUsageRequest generates a "aws/request.Request" representing the @@ -7779,6 +7862,128 @@ func (s *GetAnomalySubscriptionsOutput) SetNextPageToken(v string) *GetAnomalySu return s } +type GetApproximateUsageRecordsInput struct { + _ struct{} `type:"structure"` + + // The service to evaluate for the usage records. You can choose resource-level + // data at daily granularity, or hourly granularity with or without resource-level + // data. + // + // ApproximationDimension is a required field + ApproximationDimension *string `type:"string" required:"true" enum:"ApproximationDimension"` + + // How granular you want the data to be. You can enable data at hourly or daily + // granularity. + // + // Granularity is a required field + Granularity *string `type:"string" required:"true" enum:"Granularity"` + + // The service metadata for the service or services you want to query. If not + // specified, all elements are returned. + Services []*string `type:"list"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetApproximateUsageRecordsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetApproximateUsageRecordsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetApproximateUsageRecordsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetApproximateUsageRecordsInput"} + if s.ApproximationDimension == nil { + invalidParams.Add(request.NewErrParamRequired("ApproximationDimension")) + } + if s.Granularity == nil { + invalidParams.Add(request.NewErrParamRequired("Granularity")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApproximationDimension sets the ApproximationDimension field's value. +func (s *GetApproximateUsageRecordsInput) SetApproximationDimension(v string) *GetApproximateUsageRecordsInput { + s.ApproximationDimension = &v + return s +} + +// SetGranularity sets the Granularity field's value. +func (s *GetApproximateUsageRecordsInput) SetGranularity(v string) *GetApproximateUsageRecordsInput { + s.Granularity = &v + return s +} + +// SetServices sets the Services field's value. +func (s *GetApproximateUsageRecordsInput) SetServices(v []*string) *GetApproximateUsageRecordsInput { + s.Services = v + return s +} + +type GetApproximateUsageRecordsOutput struct { + _ struct{} `type:"structure"` + + // The lookback period that's used for the estimation. + LookbackPeriod *DateInterval `type:"structure"` + + // The service metadata for the service or services in the response. + Services map[string]*int64 `type:"map"` + + // The total number of usage records for all services in the services list. + TotalRecords *int64 `type:"long"` +} + +// String returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetApproximateUsageRecordsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation. +// +// API parameter values that are decorated as "sensitive" in the API will not +// be included in the string output. The member name will be present, but the +// value will be replaced with "sensitive". +func (s GetApproximateUsageRecordsOutput) GoString() string { + return s.String() +} + +// SetLookbackPeriod sets the LookbackPeriod field's value. +func (s *GetApproximateUsageRecordsOutput) SetLookbackPeriod(v *DateInterval) *GetApproximateUsageRecordsOutput { + s.LookbackPeriod = v + return s +} + +// SetServices sets the Services field's value. +func (s *GetApproximateUsageRecordsOutput) SetServices(v map[string]*int64) *GetApproximateUsageRecordsOutput { + s.Services = v + return s +} + +// SetTotalRecords sets the TotalRecords field's value. +func (s *GetApproximateUsageRecordsOutput) SetTotalRecords(v int64) *GetApproximateUsageRecordsOutput { + s.TotalRecords = &v + return s +} + type GetCostAndUsageInput struct { _ struct{} `type:"structure"` @@ -17247,6 +17452,22 @@ func AnomalySubscriptionFrequency_Values() []string { } } +const ( + // ApproximationDimensionService is a ApproximationDimension enum value + ApproximationDimensionService = "SERVICE" + + // ApproximationDimensionResource is a ApproximationDimension enum value + ApproximationDimensionResource = "RESOURCE" +) + +// ApproximationDimension_Values returns all elements of the ApproximationDimension enum +func ApproximationDimension_Values() []string { + return []string{ + ApproximationDimensionService, + ApproximationDimensionResource, + } +} + const ( // ContextCostAndUsage is a Context enum value ContextCostAndUsage = "COST_AND_USAGE" diff --git a/service/costexplorer/costexploreriface/interface.go b/service/costexplorer/costexploreriface/interface.go index 21214b2ef6f..9a773f1ec40 100644 --- a/service/costexplorer/costexploreriface/interface.go +++ b/service/costexplorer/costexploreriface/interface.go @@ -100,6 +100,10 @@ type CostExplorerAPI interface { GetAnomalySubscriptionsWithContext(aws.Context, *costexplorer.GetAnomalySubscriptionsInput, ...request.Option) (*costexplorer.GetAnomalySubscriptionsOutput, error) GetAnomalySubscriptionsRequest(*costexplorer.GetAnomalySubscriptionsInput) (*request.Request, *costexplorer.GetAnomalySubscriptionsOutput) + GetApproximateUsageRecords(*costexplorer.GetApproximateUsageRecordsInput) (*costexplorer.GetApproximateUsageRecordsOutput, error) + GetApproximateUsageRecordsWithContext(aws.Context, *costexplorer.GetApproximateUsageRecordsInput, ...request.Option) (*costexplorer.GetApproximateUsageRecordsOutput, error) + GetApproximateUsageRecordsRequest(*costexplorer.GetApproximateUsageRecordsInput) (*request.Request, *costexplorer.GetApproximateUsageRecordsOutput) + GetCostAndUsage(*costexplorer.GetCostAndUsageInput) (*costexplorer.GetCostAndUsageOutput, error) GetCostAndUsageWithContext(aws.Context, *costexplorer.GetCostAndUsageInput, ...request.Option) (*costexplorer.GetCostAndUsageOutput, error) GetCostAndUsageRequest(*costexplorer.GetCostAndUsageInput) (*request.Request, *costexplorer.GetCostAndUsageOutput) diff --git a/service/iot/api.go b/service/iot/api.go index d91ce2edfcc..4a2aa426b98 100644 --- a/service/iot/api.go +++ b/service/iot/api.go @@ -28291,7 +28291,8 @@ type AssociateTargetsWithJobInput struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `location:"querystring" locationName:"namespaceId" type:"string"` // A list of thing group ARNs that define the targets of the job. @@ -34372,7 +34373,8 @@ type CreateJobInput struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `locationName:"namespaceId" type:"string"` // Configuration information for pre-signed S3 URLs. @@ -38869,7 +38871,8 @@ type DeleteJobExecutionInput struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `location:"querystring" locationName:"namespaceId" type:"string"` // The name of the thing whose job execution will be deleted. @@ -39003,7 +39006,8 @@ type DeleteJobInput struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `location:"querystring" locationName:"namespaceId" type:"string"` } @@ -50220,7 +50224,8 @@ type Job struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `locationName:"namespaceId" type:"string"` // Configuration for pre-signed S3 URLs. @@ -54105,7 +54110,8 @@ type ListJobExecutionsForThingInput struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `location:"querystring" locationName:"namespaceId" type:"string"` // The token to retrieve the next set of results. @@ -54346,7 +54352,8 @@ type ListJobsInput struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `location:"querystring" locationName:"namespaceId" type:"string"` // The token to retrieve the next set of results. @@ -63655,8 +63662,10 @@ type SearchIndexInput struct { // The search index name. IndexName *string `locationName:"indexName" min:"1" type:"string"` - // The maximum number of results to return per page at one time. The response - // might contain fewer results but will never contain more. + // The maximum number of results to return per page at one time. This maximum + // number cannot exceed 100. The response might contain fewer results but will + // never contain more. You can use nextToken (https://docs.aws.amazon.com/iot/latest/apireference/API_SearchIndex.html#iot-SearchIndex-request-nextToken) + // to retrieve the next set of results until nextToken returns NULL. MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"` // The token used to get the next set of results, or null if there are no additional @@ -70758,7 +70767,8 @@ type UpdateJobInput struct { // // $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/ // - // The namespaceId feature is in public preview. + // The namespaceId feature is only supported by IoT Greengrass at this time. + // For more information, see Setting up IoT Greengrass core devices. (https://docs.aws.amazon.com/greengrass/v2/developerguide/setting-up.html) NamespaceId *string `location:"querystring" locationName:"namespaceId" type:"string"` // Configuration information for pre-signed S3 URLs. diff --git a/service/wafv2/api.go b/service/wafv2/api.go index 798f6301295..1ffe1093261 100644 --- a/service/wafv2/api.go +++ b/service/wafv2/api.go @@ -18893,6 +18893,17 @@ type RateBasedStatement struct { // Specifies the aggregate keys to use in a rate-base rule. CustomKeys []*RateBasedStatementCustomKey `min:"1" type:"list"` + // The amount of time, in seconds, that WAF should include in its request counts, + // looking back from the current time. For example, for a setting of 120, when + // WAF checks the rate, it counts the requests for the 2 minutes immediately + // preceding the current time. Valid settings are 60, 120, 300, and 600. + // + // This setting doesn't determine how often WAF checks the rate, but how far + // back it looks each time it checks. WAF checks the rate about every 10 seconds. + // + // Default: 300 (5 minutes) + EvaluationWindowSec *int64 `type:"long"` + // The configuration for inspecting IP addresses in an HTTP header that you // specify, instead of using the IP address that's reported by the web request // origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify @@ -19001,6 +19012,12 @@ func (s *RateBasedStatement) SetCustomKeys(v []*RateBasedStatementCustomKey) *Ra return s } +// SetEvaluationWindowSec sets the EvaluationWindowSec field's value. +func (s *RateBasedStatement) SetEvaluationWindowSec(v int64) *RateBasedStatement { + s.EvaluationWindowSec = &v + return s +} + // SetForwardedIPConfig sets the ForwardedIPConfig field's value. func (s *RateBasedStatement) SetForwardedIPConfig(v *ForwardedIPConfig) *RateBasedStatement { s.ForwardedIPConfig = v