@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Amazon Interactive Video Service
@version 2020-07-14
@auth AWS SigV4
@endpoints 35
@hint download_for_search
@toc BatchGetChannel(1), BatchGetStreamKey(1), BatchStartViewerSessionRevocation(1), CreateChannel(1), CreatePlaybackRestrictionPolicy(1), CreateRecordingConfiguration(1), CreateStreamKey(1), DeleteChannel(1), DeletePlaybackKeyPair(1), DeletePlaybackRestrictionPolicy(1), DeleteRecordingConfiguration(1), DeleteStreamKey(1), GetChannel(1), GetPlaybackKeyPair(1), GetPlaybackRestrictionPolicy(1), GetRecordingConfiguration(1), GetStream(1), GetStreamKey(1), GetStreamSession(1), ImportPlaybackKeyPair(1), ListChannels(1), ListPlaybackKeyPairs(1), ListPlaybackRestrictionPolicies(1), ListRecordingConfigurations(1), ListStreamKeys(1), ListStreamSessions(1), ListStreams(1), tags(3), PutMetadata(1), StartViewerSessionRevocation(1), StopStream(1), UpdateChannel(1), UpdatePlaybackRestrictionPolicy(1)

@group BatchGetChannel
@endpoint POST /BatchGetChannel
@required {arns: [str]}
@returns(200) {channels: [Channel]?, errors: [BatchError]?}

@endgroup

@group BatchGetStreamKey
@endpoint POST /BatchGetStreamKey
@required {arns: [str]}
@returns(200) {streamKeys: [StreamKey]?, errors: [BatchError]?}

@endgroup

@group BatchStartViewerSessionRevocation
@endpoint POST /BatchStartViewerSessionRevocation
@required {viewerSessions: [BatchStartViewerSessionRevocationViewerSession]}
@returns(200) {errors: [BatchStartViewerSessionRevocationError]?}

@endgroup

@group CreateChannel
@endpoint POST /CreateChannel
@optional {name: str, latencyMode: str, type: str, authorized: bool, recordingConfigurationArn: str, tags: map<str,str>, insecureIngest: bool, preset: str, playbackRestrictionPolicyArn: str}
@returns(200) {channel: Channel?{arn: str?, name: str?, latencyMode: str?, type: str?, recordingConfigurationArn: str?, ingestEndpoint: str?, playbackUrl: str?, authorized: bool?, tags: map<str,str>?, insecureIngest: bool?, preset: str?, srt: Srt?{endpoint: str?, passphrase: str?}, playbackRestrictionPolicyArn: str?}, streamKey: StreamKey?{arn: str?, value: str?, channelArn: str?, tags: map<str,str>?}}

@endgroup

@group CreatePlaybackRestrictionPolicy
@endpoint POST /CreatePlaybackRestrictionPolicy
@optional {allowedCountries: [str], allowedOrigins: [str], enableStrictOriginEnforcement: bool, name: str, tags: map<str,str>}
@returns(200) {playbackRestrictionPolicy: PlaybackRestrictionPolicy?{arn: str, allowedCountries: [str], allowedOrigins: [str], enableStrictOriginEnforcement: bool?, name: str?, tags: map<str,str>?}}

@endgroup

@group CreateRecordingConfiguration
@endpoint POST /CreateRecordingConfiguration
@required {destinationConfiguration: DestinationConfiguration}
@optional {name: str, tags: map<str,str>, thumbnailConfiguration: ThumbnailConfiguration, recordingReconnectWindowSeconds: int, renditionConfiguration: RenditionConfiguration}
@returns(200) {recordingConfiguration: RecordingConfiguration?{arn: str, name: str?, destinationConfiguration: DestinationConfiguration{s3: S3DestinationConfiguration?{bucketName: str}}, state: str, tags: map<str,str>?, thumbnailConfiguration: ThumbnailConfiguration?{recordingMode: str?, targetIntervalSeconds: int(i64)?, resolution: str?, storage: [str]?}, recordingReconnectWindowSeconds: int?, renditionConfiguration: RenditionConfiguration?{renditionSelection: str?, renditions: [str]?}}}

@endgroup

@group CreateStreamKey
@endpoint POST /CreateStreamKey
@required {channelArn: str}
@optional {tags: map<str,str>}
@returns(200) {streamKey: StreamKey?{arn: str?, value: str?, channelArn: str?, tags: map<str,str>?}}

@endgroup

@group DeleteChannel
@endpoint POST /DeleteChannel
@required {arn: str}

@endgroup

@group DeletePlaybackKeyPair
@endpoint POST /DeletePlaybackKeyPair
@required {arn: str}

@endgroup

@group DeletePlaybackRestrictionPolicy
@endpoint POST /DeletePlaybackRestrictionPolicy
@required {arn: str}

@endgroup

@group DeleteRecordingConfiguration
@endpoint POST /DeleteRecordingConfiguration
@required {arn: str}

@endgroup

@group DeleteStreamKey
@endpoint POST /DeleteStreamKey
@required {arn: str}

@endgroup

@group GetChannel
@endpoint POST /GetChannel
@required {arn: str}
@returns(200) {channel: Channel?{arn: str?, name: str?, latencyMode: str?, type: str?, recordingConfigurationArn: str?, ingestEndpoint: str?, playbackUrl: str?, authorized: bool?, tags: map<str,str>?, insecureIngest: bool?, preset: str?, srt: Srt?{endpoint: str?, passphrase: str?}, playbackRestrictionPolicyArn: str?}}

@endgroup

@group GetPlaybackKeyPair
@endpoint POST /GetPlaybackKeyPair
@required {arn: str}
@returns(200) {keyPair: PlaybackKeyPair?{arn: str?, name: str?, fingerprint: str?, tags: map<str,str>?}}

@endgroup

@group GetPlaybackRestrictionPolicy
@endpoint POST /GetPlaybackRestrictionPolicy
@required {arn: str}
@returns(200) {playbackRestrictionPolicy: PlaybackRestrictionPolicy?{arn: str, allowedCountries: [str], allowedOrigins: [str], enableStrictOriginEnforcement: bool?, name: str?, tags: map<str,str>?}}

@endgroup

@group GetRecordingConfiguration
@endpoint POST /GetRecordingConfiguration
@required {arn: str}
@returns(200) {recordingConfiguration: RecordingConfiguration?{arn: str, name: str?, destinationConfiguration: DestinationConfiguration{s3: S3DestinationConfiguration?{bucketName: str}}, state: str, tags: map<str,str>?, thumbnailConfiguration: ThumbnailConfiguration?{recordingMode: str?, targetIntervalSeconds: int(i64)?, resolution: str?, storage: [str]?}, recordingReconnectWindowSeconds: int?, renditionConfiguration: RenditionConfiguration?{renditionSelection: str?, renditions: [str]?}}}

@endgroup

@group GetStream
@endpoint POST /GetStream
@required {channelArn: str}
@returns(200) {stream: Stream?{channelArn: str?, streamId: str?, playbackUrl: str?, startTime: str(timestamp)?, state: str?, health: str?, viewerCount: int(i64)?}}

@endgroup

@group GetStreamKey
@endpoint POST /GetStreamKey
@required {arn: str}
@returns(200) {streamKey: StreamKey?{arn: str?, value: str?, channelArn: str?, tags: map<str,str>?}}

@endgroup

@group GetStreamSession
@endpoint POST /GetStreamSession
@required {channelArn: str}
@optional {streamId: str}
@returns(200) {streamSession: StreamSession?{streamId: str?, startTime: str(timestamp)?, endTime: str(timestamp)?, channel: Channel?{arn: str?, name: str?, latencyMode: str?, type: str?, recordingConfigurationArn: str?, ingestEndpoint: str?, playbackUrl: str?, authorized: bool?, tags: map<str,str>?, insecureIngest: bool?, preset: str?, srt: Srt?{endpoint: str?, passphrase: str?}, playbackRestrictionPolicyArn: str?}, ingestConfiguration: IngestConfiguration?{video: VideoConfiguration?{avcProfile: str?, avcLevel: str?, codec: str?, encoder: str?, targetBitrate: int(i64)?, targetFramerate: int(i64)?, videoHeight: int(i64)?, videoWidth: int(i64)?}, audio: AudioConfiguration?{codec: str?, targetBitrate: int(i64)?, sampleRate: int(i64)?, channels: int(i64)?}}, recordingConfiguration: RecordingConfiguration?{arn: str, name: str?, destinationConfiguration: DestinationConfiguration{s3: S3DestinationConfiguration?}, state: str, tags: map<str,str>?, thumbnailConfiguration: ThumbnailConfiguration?{recordingMode: str?, targetIntervalSeconds: int(i64)?, resolution: str?, storage: [str]?}, recordingReconnectWindowSeconds: int?, renditionConfiguration: RenditionConfiguration?{renditionSelection: str?, renditions: [str]?}}, truncatedEvents: [StreamEvent]?}}

@endgroup

@group ImportPlaybackKeyPair
@endpoint POST /ImportPlaybackKeyPair
@required {publicKeyMaterial: str}
@optional {name: str, tags: map<str,str>}
@returns(200) {keyPair: PlaybackKeyPair?{arn: str?, name: str?, fingerprint: str?, tags: map<str,str>?}}

@endgroup

@group ListChannels
@endpoint POST /ListChannels
@optional {filterByName: str, filterByRecordingConfigurationArn: str, filterByPlaybackRestrictionPolicyArn: str, nextToken: str, maxResults: int}
@returns(200) {channels: [ChannelSummary], nextToken: str?}

@endgroup

@group ListPlaybackKeyPairs
@endpoint POST /ListPlaybackKeyPairs
@optional {nextToken: str, maxResults: int}
@returns(200) {keyPairs: [PlaybackKeyPairSummary], nextToken: str?}

@endgroup

@group ListPlaybackRestrictionPolicies
@endpoint POST /ListPlaybackRestrictionPolicies
@optional {nextToken: str, maxResults: int}
@returns(200) {playbackRestrictionPolicies: [PlaybackRestrictionPolicySummary], nextToken: str?}

@endgroup

@group ListRecordingConfigurations
@endpoint POST /ListRecordingConfigurations
@optional {nextToken: str, maxResults: int}
@returns(200) {recordingConfigurations: [RecordingConfigurationSummary], nextToken: str?}

@endgroup

@group ListStreamKeys
@endpoint POST /ListStreamKeys
@required {channelArn: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {streamKeys: [StreamKeySummary], nextToken: str?}

@endgroup

@group ListStreamSessions
@endpoint POST /ListStreamSessions
@required {channelArn: str}
@optional {nextToken: str, maxResults: int}
@returns(200) {streamSessions: [StreamSessionSummary], nextToken: str?}

@endgroup

@group ListStreams
@endpoint POST /ListStreams
@optional {filterBy: StreamFilters, nextToken: str, maxResults: int}
@returns(200) {streams: [StreamSummary], nextToken: str?}

@endgroup

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

@endgroup

@group PutMetadata
@endpoint POST /PutMetadata
@required {channelArn: str, metadata: str}

@endgroup

@group StartViewerSessionRevocation
@endpoint POST /StartViewerSessionRevocation
@required {channelArn: str, viewerId: str}
@optional {viewerSessionVersionsLessThanOrEqualTo: int}

@endgroup

@group StopStream
@endpoint POST /StopStream
@required {channelArn: str}

@endgroup

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

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

@endgroup

@group UpdateChannel
@endpoint POST /UpdateChannel
@required {arn: str}
@optional {name: str, latencyMode: str, type: str, authorized: bool, recordingConfigurationArn: str, insecureIngest: bool, preset: str, playbackRestrictionPolicyArn: str}
@returns(200) {channel: Channel?{arn: str?, name: str?, latencyMode: str?, type: str?, recordingConfigurationArn: str?, ingestEndpoint: str?, playbackUrl: str?, authorized: bool?, tags: map<str,str>?, insecureIngest: bool?, preset: str?, srt: Srt?{endpoint: str?, passphrase: str?}, playbackRestrictionPolicyArn: str?}}

@endgroup

@group UpdatePlaybackRestrictionPolicy
@endpoint POST /UpdatePlaybackRestrictionPolicy
@required {arn: str}
@optional {allowedCountries: [str], allowedOrigins: [str], enableStrictOriginEnforcement: bool, name: str}
@returns(200) {playbackRestrictionPolicy: PlaybackRestrictionPolicy?{arn: str, allowedCountries: [str], allowedOrigins: [str], enableStrictOriginEnforcement: bool?, name: str?, tags: map<str,str>?}}

@endgroup

@end
