@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS Import/Export
@version 2010-06-01
@endpoints 6
@toc ?Operation=CancelJob(1), ?Operation=CreateJob(1), ?Operation=GetShippingLabel(1), ?Operation=GetStatus(1), ?Operation=ListJobs(1), ?Operation=UpdateJob(1)

@group ?Operation=CancelJob
@endpoint POST /?Operation=CancelJob
@required {JobId: str}
@optional {APIVersion: str}
@returns(200) {Success: bool?}
@errors {500, 500, 500, 500, 500, 500}

@endgroup

@group ?Operation=CreateJob
@endpoint POST /?Operation=CreateJob
@required {JobType: str, Manifest: str, ValidateOnly: bool}
@optional {ManifestAddendum: str, APIVersion: str}
@returns(200) {JobId: str?, JobType: str?, Signature: str?, SignatureFileContents: str?, WarningMessage: str?, ArtifactList: [Artifact]?}
@errors {500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}

@endgroup

@group ?Operation=GetShippingLabel
@endpoint POST /?Operation=GetShippingLabel
@required {jobIds: [str]}
@optional {name: str, company: str, phoneNumber: str, country: str, stateOrProvince: str, city: str, postalCode: str, street1: str, street2: str, street3: str, APIVersion: str}
@returns(200) {ShippingLabelURL: str?, Warning: str?}
@errors {500, 500, 500, 500, 500, 500, 500}

@endgroup

@group ?Operation=GetStatus
@endpoint POST /?Operation=GetStatus
@required {JobId: str}
@optional {APIVersion: str}
@returns(200) {JobId: str?, JobType: str?, LocationCode: str?, LocationMessage: str?, ProgressCode: str?, ProgressMessage: str?, Carrier: str?, TrackingNumber: str?, LogBucket: str?, LogKey: str?, ErrorCount: int?, Signature: str?, SignatureFileContents: str?, CurrentManifest: str?, CreationDate: str(timestamp)?, ArtifactList: [Artifact]?}
@errors {500, 500, 500, 500, 500}

@endgroup

@group ?Operation=ListJobs
@endpoint POST /?Operation=ListJobs
@optional {MaxJobs: int, Marker: str, APIVersion: str}
@returns(200) {Jobs: [Job]?, IsTruncated: bool?}
@errors {500, 500, 500}

@endgroup

@group ?Operation=UpdateJob
@endpoint POST /?Operation=UpdateJob
@required {JobId: str, Manifest: str, JobType: str, ValidateOnly: bool}
@optional {APIVersion: str}
@returns(200) {Success: bool?, WarningMessage: str?, ArtifactList: [Artifact]?}
@errors {500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500}

@endgroup

@end
