@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Batch
@version 2016-08-10
@auth AWS SigV4
@endpoints 25
@hint download_for_search
@toc canceljob(1), createcomputeenvironment(1), createjobqueue(1), createschedulingpolicy(1), deletecomputeenvironment(1), deletejobqueue(1), deleteschedulingpolicy(1), deregisterjobdefinition(1), describecomputeenvironments(1), describejobdefinitions(1), describejobqueues(1), describejobs(1), describeschedulingpolicies(1), getjobqueuesnapshot(1), listjobs(1), listschedulingpolicies(1), tags(3), registerjobdefinition(1), submitjob(1), terminatejob(1), updatecomputeenvironment(1), updatejobqueue(1), updateschedulingpolicy(1)

@group canceljob
@endpoint POST /v1/canceljob
@required {jobId: str, reason: str}

@endgroup

@group createcomputeenvironment
@endpoint POST /v1/createcomputeenvironment
@required {computeEnvironmentName: str, type: str}
@optional {state: str, unmanagedvCpus: int, computeResources: ComputeResource, serviceRole: str, tags: map<str,str>, eksConfiguration: EksConfiguration, context: str}
@returns(200) {computeEnvironmentName: str?, computeEnvironmentArn: str?}

@endgroup

@group createjobqueue
@endpoint POST /v1/createjobqueue
@required {jobQueueName: str, priority: int, computeEnvironmentOrder: [ComputeEnvironmentOrder]}
@optional {state: str, schedulingPolicyArn: str, tags: map<str,str>, jobStateTimeLimitActions: [JobStateTimeLimitAction]}
@returns(200) {jobQueueName: str, jobQueueArn: str}

@endgroup

@group createschedulingpolicy
@endpoint POST /v1/createschedulingpolicy
@required {name: str}
@optional {fairsharePolicy: FairsharePolicy, tags: map<str,str>}
@returns(200) {name: str, arn: str}

@endgroup

@group deletecomputeenvironment
@endpoint POST /v1/deletecomputeenvironment
@required {computeEnvironment: str}

@endgroup

@group deletejobqueue
@endpoint POST /v1/deletejobqueue
@required {jobQueue: str}

@endgroup

@group deleteschedulingpolicy
@endpoint POST /v1/deleteschedulingpolicy
@required {arn: str}

@endgroup

@group deregisterjobdefinition
@endpoint POST /v1/deregisterjobdefinition
@required {jobDefinition: str}

@endgroup

@group describecomputeenvironments
@endpoint POST /v1/describecomputeenvironments
@optional {computeEnvironments: [str], maxResults: int, nextToken: str}
@returns(200) {computeEnvironments: [ComputeEnvironmentDetail]?, nextToken: str?}

@endgroup

@group describejobdefinitions
@endpoint POST /v1/describejobdefinitions
@optional {jobDefinitions: [str], maxResults: int, jobDefinitionName: str, status: str, nextToken: str}
@returns(200) {jobDefinitions: [JobDefinition]?, nextToken: str?}

@endgroup

@group describejobqueues
@endpoint POST /v1/describejobqueues
@optional {jobQueues: [str], maxResults: int, nextToken: str}
@returns(200) {jobQueues: [JobQueueDetail]?, nextToken: str?}

@endgroup

@group describejobs
@endpoint POST /v1/describejobs
@required {jobs: [str]}
@returns(200) {jobs: [JobDetail]?}

@endgroup

@group describeschedulingpolicies
@endpoint POST /v1/describeschedulingpolicies
@required {arns: [str]}
@returns(200) {schedulingPolicies: [SchedulingPolicyDetail]?}

@endgroup

@group getjobqueuesnapshot
@endpoint POST /v1/getjobqueuesnapshot
@required {jobQueue: str}
@returns(200) {frontOfQueue: FrontOfQueueDetail?{jobs: [FrontOfQueueJobSummary]?, lastUpdatedAt: int(i64)?}}

@endgroup

@group listjobs
@endpoint POST /v1/listjobs
@optional {jobQueue: str, arrayJobId: str, multiNodeJobId: str, jobStatus: str, maxResults: int, nextToken: str, filters: [KeyValuesPair]}
@returns(200) {jobSummaryList: [JobSummary], nextToken: str?}

@endgroup

@group listschedulingpolicies
@endpoint POST /v1/listschedulingpolicies
@optional {maxResults: int, nextToken: str}
@returns(200) {schedulingPolicies: [SchedulingPolicyListingDetail]?, nextToken: str?}

@endgroup

@group tags
@endpoint GET /v1/tags/{resourceArn}
@required {resourceArn: str}
@returns(200) {tags: map<str,str>?}

@endgroup

@group registerjobdefinition
@endpoint POST /v1/registerjobdefinition
@required {jobDefinitionName: str, type: str}
@optional {parameters: map<str,str>, schedulingPriority: int, containerProperties: ContainerProperties, nodeProperties: NodeProperties, retryStrategy: RetryStrategy, propagateTags: bool, timeout: JobTimeout, tags: map<str,str>, platformCapabilities: [str], eksProperties: EksProperties, ecsProperties: EcsProperties}
@returns(200) {jobDefinitionName: str, jobDefinitionArn: str, revision: int}

@endgroup

@group submitjob
@endpoint POST /v1/submitjob
@required {jobName: str, jobQueue: str, jobDefinition: str}
@optional {shareIdentifier: str, schedulingPriorityOverride: int, arrayProperties: ArrayProperties, dependsOn: [JobDependency], parameters: map<str,str>, containerOverrides: ContainerOverrides, nodeOverrides: NodeOverrides, retryStrategy: RetryStrategy, propagateTags: bool, timeout: JobTimeout, tags: map<str,str>, eksPropertiesOverride: EksPropertiesOverride, ecsPropertiesOverride: EcsPropertiesOverride}
@returns(200) {jobArn: str?, jobName: str, jobId: str}

@endgroup

@group tags
@endpoint POST /v1/tags/{resourceArn}
@required {resourceArn: str, tags: map<str,str>}

@endgroup

@group terminatejob
@endpoint POST /v1/terminatejob
@required {jobId: str, reason: str}

@endgroup

@group tags
@endpoint DELETE /v1/tags/{resourceArn}
@required {resourceArn: str, tagKeys: [str]}

@endgroup

@group updatecomputeenvironment
@endpoint POST /v1/updatecomputeenvironment
@required {computeEnvironment: str}
@optional {state: str, unmanagedvCpus: int, computeResources: ComputeResourceUpdate, serviceRole: str, updatePolicy: UpdatePolicy, context: str}
@returns(200) {computeEnvironmentName: str?, computeEnvironmentArn: str?}

@endgroup

@group updatejobqueue
@endpoint POST /v1/updatejobqueue
@required {jobQueue: str}
@optional {state: str, schedulingPolicyArn: str, priority: int, computeEnvironmentOrder: [ComputeEnvironmentOrder], jobStateTimeLimitActions: [JobStateTimeLimitAction]}
@returns(200) {jobQueueName: str?, jobQueueArn: str?}

@endgroup

@group updateschedulingpolicy
@endpoint POST /v1/updateschedulingpolicy
@required {arn: str}
@optional {fairsharePolicy: FairsharePolicy}

@endgroup

@end
