@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Elastic Transcoder
@version 2012-09-25
@auth AWS SigV4
@endpoints 17
@toc 2012-09-25(17)

@endpoint DELETE /2012-09-25/jobs/{Id}
@required {Id: str}

@endpoint POST /2012-09-25/jobs
@required {PipelineId: str}
@optional {Input: JobInput, Inputs: [JobInput], Output: CreateJobOutput, Outputs: [CreateJobOutput], OutputKeyPrefix: str, Playlists: [CreateJobPlaylist], UserMetadata: map<str,str>}
@returns(200) {Job: Job?{Id: str?, Arn: str?, PipelineId: str?, Input: JobInput?{Key: str?, FrameRate: str?, Resolution: str?, AspectRatio: str?, Interlaced: str?, Container: str?, Encryption: Encryption?{Mode: str?, Key: str?, KeyMd5: str?, InitializationVector: str?}, TimeSpan: TimeSpan?{StartTime: str?, Duration: str?}, InputCaptions: InputCaptions?{MergePolicy: str?, CaptionSources: [CaptionSource]?}, DetectedProperties: DetectedProperties?{Width: int?, Height: int?, FrameRate: str?, FileSize: int(i64)?, DurationMillis: int(i64)?}}, Inputs: [JobInput]?, Output: JobOutput?{Id: str?, Key: str?, ThumbnailPattern: str?, ThumbnailEncryption: Encryption?{Mode: str?, Key: str?, KeyMd5: str?, InitializationVector: str?}, Rotate: str?, PresetId: str?, SegmentDuration: str?, Status: str?, StatusDetail: str?, Duration: int(i64)?, Width: int?, Height: int?, FrameRate: str?, FileSize: int(i64)?, DurationMillis: int(i64)?, Watermarks: [JobWatermark]?, AlbumArt: JobAlbumArt?{MergePolicy: str?, Artwork: [Artwork]?}, Composition: [Clip]?, Captions: Captions?{MergePolicy: str?, CaptionSources: [CaptionSource]?, CaptionFormats: [CaptionFormat]?}, Encryption: Encryption?{Mode: str?, Key: str?, KeyMd5: str?, InitializationVector: str?}, AppliedColorSpaceConversion: str?}, Outputs: [JobOutput]?, OutputKeyPrefix: str?, Playlists: [Playlist]?, Status: str?, UserMetadata: map<str,str>?, Timing: Timing?{SubmitTimeMillis: int(i64)?, StartTimeMillis: int(i64)?, FinishTimeMillis: int(i64)?}}}

@endpoint POST /2012-09-25/pipelines
@required {Name: str, InputBucket: str, Role: str}
@optional {OutputBucket: str, AwsKmsKeyArn: str, Notifications: Notifications, ContentConfig: PipelineOutputConfig, ThumbnailConfig: PipelineOutputConfig}
@returns(200) {Pipeline: Pipeline?{Id: str?, Arn: str?, Name: str?, Status: str?, InputBucket: str?, OutputBucket: str?, Role: str?, AwsKmsKeyArn: str?, Notifications: Notifications?{Progressing: str?, Completed: str?, Warning: str?, Error: str?}, ContentConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}, ThumbnailConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}}, Warnings: [Warning]?}

@endpoint POST /2012-09-25/presets
@required {Name: str, Container: str}
@optional {Description: str, Video: VideoParameters, Audio: AudioParameters, Thumbnails: Thumbnails}
@returns(200) {Preset: Preset?{Id: str?, Arn: str?, Name: str?, Description: str?, Container: str?, Audio: AudioParameters?{Codec: str?, SampleRate: str?, BitRate: str?, Channels: str?, AudioPackingMode: str?, CodecOptions: AudioCodecOptions?{Profile: str?, BitDepth: str?, BitOrder: str?, Signed: str?}}, Video: VideoParameters?{Codec: str?, CodecOptions: map<str,str>?, KeyframesMaxDist: str?, FixedGOP: str?, BitRate: str?, FrameRate: str?, MaxFrameRate: str?, Resolution: str?, AspectRatio: str?, MaxWidth: str?, MaxHeight: str?, DisplayAspectRatio: str?, SizingPolicy: str?, PaddingPolicy: str?, Watermarks: [PresetWatermark]?}, Thumbnails: Thumbnails?{Format: str?, Interval: str?, Resolution: str?, AspectRatio: str?, MaxWidth: str?, MaxHeight: str?, SizingPolicy: str?, PaddingPolicy: str?}, Type: str?}, Warning: str?}

@endpoint DELETE /2012-09-25/pipelines/{Id}
@required {Id: str}

@endpoint DELETE /2012-09-25/presets/{Id}
@required {Id: str}

@endpoint GET /2012-09-25/jobsByPipeline/{PipelineId}
@required {PipelineId: str}
@optional {Ascending: str, PageToken: str}
@returns(200) {Jobs: [Job]?, NextPageToken: str?}

@endpoint GET /2012-09-25/jobsByStatus/{Status}
@required {Status: str}
@optional {Ascending: str, PageToken: str}
@returns(200) {Jobs: [Job]?, NextPageToken: str?}

@endpoint GET /2012-09-25/pipelines
@optional {Ascending: str, PageToken: str}
@returns(200) {Pipelines: [Pipeline]?, NextPageToken: str?}

@endpoint GET /2012-09-25/presets
@optional {Ascending: str, PageToken: str}
@returns(200) {Presets: [Preset]?, NextPageToken: str?}

@endpoint GET /2012-09-25/jobs/{Id}
@required {Id: str}
@returns(200) {Job: Job?{Id: str?, Arn: str?, PipelineId: str?, Input: JobInput?{Key: str?, FrameRate: str?, Resolution: str?, AspectRatio: str?, Interlaced: str?, Container: str?, Encryption: Encryption?{Mode: str?, Key: str?, KeyMd5: str?, InitializationVector: str?}, TimeSpan: TimeSpan?{StartTime: str?, Duration: str?}, InputCaptions: InputCaptions?{MergePolicy: str?, CaptionSources: [CaptionSource]?}, DetectedProperties: DetectedProperties?{Width: int?, Height: int?, FrameRate: str?, FileSize: int(i64)?, DurationMillis: int(i64)?}}, Inputs: [JobInput]?, Output: JobOutput?{Id: str?, Key: str?, ThumbnailPattern: str?, ThumbnailEncryption: Encryption?{Mode: str?, Key: str?, KeyMd5: str?, InitializationVector: str?}, Rotate: str?, PresetId: str?, SegmentDuration: str?, Status: str?, StatusDetail: str?, Duration: int(i64)?, Width: int?, Height: int?, FrameRate: str?, FileSize: int(i64)?, DurationMillis: int(i64)?, Watermarks: [JobWatermark]?, AlbumArt: JobAlbumArt?{MergePolicy: str?, Artwork: [Artwork]?}, Composition: [Clip]?, Captions: Captions?{MergePolicy: str?, CaptionSources: [CaptionSource]?, CaptionFormats: [CaptionFormat]?}, Encryption: Encryption?{Mode: str?, Key: str?, KeyMd5: str?, InitializationVector: str?}, AppliedColorSpaceConversion: str?}, Outputs: [JobOutput]?, OutputKeyPrefix: str?, Playlists: [Playlist]?, Status: str?, UserMetadata: map<str,str>?, Timing: Timing?{SubmitTimeMillis: int(i64)?, StartTimeMillis: int(i64)?, FinishTimeMillis: int(i64)?}}}

@endpoint GET /2012-09-25/pipelines/{Id}
@required {Id: str}
@returns(200) {Pipeline: Pipeline?{Id: str?, Arn: str?, Name: str?, Status: str?, InputBucket: str?, OutputBucket: str?, Role: str?, AwsKmsKeyArn: str?, Notifications: Notifications?{Progressing: str?, Completed: str?, Warning: str?, Error: str?}, ContentConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}, ThumbnailConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}}, Warnings: [Warning]?}

@endpoint GET /2012-09-25/presets/{Id}
@required {Id: str}
@returns(200) {Preset: Preset?{Id: str?, Arn: str?, Name: str?, Description: str?, Container: str?, Audio: AudioParameters?{Codec: str?, SampleRate: str?, BitRate: str?, Channels: str?, AudioPackingMode: str?, CodecOptions: AudioCodecOptions?{Profile: str?, BitDepth: str?, BitOrder: str?, Signed: str?}}, Video: VideoParameters?{Codec: str?, CodecOptions: map<str,str>?, KeyframesMaxDist: str?, FixedGOP: str?, BitRate: str?, FrameRate: str?, MaxFrameRate: str?, Resolution: str?, AspectRatio: str?, MaxWidth: str?, MaxHeight: str?, DisplayAspectRatio: str?, SizingPolicy: str?, PaddingPolicy: str?, Watermarks: [PresetWatermark]?}, Thumbnails: Thumbnails?{Format: str?, Interval: str?, Resolution: str?, AspectRatio: str?, MaxWidth: str?, MaxHeight: str?, SizingPolicy: str?, PaddingPolicy: str?}, Type: str?}}

@endpoint POST /2012-09-25/roleTests
@required {Role: str, InputBucket: str, OutputBucket: str, Topics: [str]}
@returns(200) {Success: str?, Messages: [str]?}

@endpoint PUT /2012-09-25/pipelines/{Id}
@required {Id: str}
@optional {Name: str, InputBucket: str, Role: str, AwsKmsKeyArn: str, Notifications: Notifications, ContentConfig: PipelineOutputConfig, ThumbnailConfig: PipelineOutputConfig}
@returns(200) {Pipeline: Pipeline?{Id: str?, Arn: str?, Name: str?, Status: str?, InputBucket: str?, OutputBucket: str?, Role: str?, AwsKmsKeyArn: str?, Notifications: Notifications?{Progressing: str?, Completed: str?, Warning: str?, Error: str?}, ContentConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}, ThumbnailConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}}, Warnings: [Warning]?}

@endpoint POST /2012-09-25/pipelines/{Id}/notifications
@required {Id: str, Notifications: Notifications}
@returns(200) {Pipeline: Pipeline?{Id: str?, Arn: str?, Name: str?, Status: str?, InputBucket: str?, OutputBucket: str?, Role: str?, AwsKmsKeyArn: str?, Notifications: Notifications?{Progressing: str?, Completed: str?, Warning: str?, Error: str?}, ContentConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}, ThumbnailConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}}}

@endpoint POST /2012-09-25/pipelines/{Id}/status
@required {Id: str, Status: str}
@returns(200) {Pipeline: Pipeline?{Id: str?, Arn: str?, Name: str?, Status: str?, InputBucket: str?, OutputBucket: str?, Role: str?, AwsKmsKeyArn: str?, Notifications: Notifications?{Progressing: str?, Completed: str?, Warning: str?, Error: str?}, ContentConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}, ThumbnailConfig: PipelineOutputConfig?{Bucket: str?, StorageClass: str?, Permissions: [Permission]?}}}

@end
