@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Twilio - Video
@base https://video.twilio.com
@version 1.0.0
@auth Bearer basic
@endpoints 39
@hint download_for_search
@toc Compositions(4), CompositionHooks(5), CompositionSettings(2), Recordings(3), RecordingSettings(2), Rooms(23)

@group Compositions
@endpoint GET /v1/Compositions/{Sid}
@required {Sid: str}
@returns(200) {account_sid: str?, status: str, date_created: str(date-time)?, date_completed: str(date-time)?, date_deleted: str(date-time)?, sid: str?, room_sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, bitrate: int, size: int(int64)?, duration: int, media_external_location: str(uri)?, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?, links: map?}

@endpoint DELETE /v1/Compositions/{Sid}
@required {Sid: str}
@returns(204)

@endpoint GET /v1/Compositions
@optional {Status: str, DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), RoomSid: str, PageSize: int(int64)=50, Page: int, PageToken: str}
@returns(200) {compositions: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint POST /v1/Compositions
@returns(201) {account_sid: str?, status: str, date_created: str(date-time)?, date_completed: str(date-time)?, date_deleted: str(date-time)?, sid: str?, room_sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, bitrate: int, size: int(int64)?, duration: int, media_external_location: str(uri)?, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?, links: map?}

@endgroup

@group CompositionHooks
@endpoint GET /v1/CompositionHooks/{Sid}
@required {Sid: str}
@returns(200) {account_sid: str?, friendly_name: str?, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?}

@endpoint DELETE /v1/CompositionHooks/{Sid}
@required {Sid: str}
@returns(204)

@endpoint POST /v1/CompositionHooks/{Sid}
@required {Sid: str}
@returns(200) {account_sid: str?, friendly_name: str?, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?}

@endpoint GET /v1/CompositionHooks
@optional {Enabled: bool, DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), FriendlyName: str, PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {composition_hooks: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint POST /v1/CompositionHooks
@returns(201) {account_sid: str?, friendly_name: str?, enabled: bool?, date_created: str(date-time)?, date_updated: str(date-time)?, sid: str?, audio_sources: [str]?, audio_sources_excluded: [str]?, video_layout: any?, resolution: str?, trim: bool?, format: str, status_callback: str(uri)?, status_callback_method: str(http-method)?, url: str(uri)?}

@endgroup

@group CompositionSettings
@endpoint GET /v1/CompositionSettings/Default
@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?}

@endpoint POST /v1/CompositionSettings/Default
@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?}

@endgroup

@group Recordings
@endpoint GET /v1/Recordings/{Sid}
@required {Sid: str}
@returns(200) {account_sid: str?, status: str, date_created: str(date-time)?, sid: str?, source_sid: str?, size: int(int64)?, url: str(uri)?, type: str, duration: int?, container_format: str, codec: str, grouping_sids: any?, track_name: str?, offset: int(int64)?, media_external_location: str(uri)?, status_callback: str(uri)?, status_callback_method: str(http-method)?, links: map?}

@endpoint DELETE /v1/Recordings/{Sid}
@required {Sid: str}
@returns(204)

@endpoint GET /v1/Recordings
@optional {Status: str, SourceSid: str, GroupingSid: [str], DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), MediaType: str, PageSize: int(int64)=50, Page: int, PageToken: str}
@returns(200) {recordings: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endgroup

@group RecordingSettings
@endpoint GET /v1/RecordingSettings/Default
@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?}

@endpoint POST /v1/RecordingSettings/Default
@returns(200) {account_sid: str?, friendly_name: str?, aws_credentials_sid: str?, aws_s3_url: str(uri)?, aws_storage_enabled: bool?, encryption_key_sid: str?, encryption_enabled: bool?, url: str(uri)?}

@endgroup

@group Rooms
@endpoint GET /v1/Rooms/{Sid}
@required {Sid: str}
@returns(200) {sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, account_sid: str?, enable_turn: bool?, unique_name: str?, status_callback: str(uri)?, status_callback_method: str(http-method)?, end_time: str(date-time)?, duration: int?, type: str, max_participants: int, max_participant_duration: int, max_concurrent_published_tracks: int?, record_participants_on_connect: bool?, video_codecs: [str]?, media_region: str?, audio_only: bool?, empty_room_timeout: int, unused_room_timeout: int, large_room: bool?, url: str(uri)?, links: map?}

@endpoint POST /v1/Rooms/{Sid}
@required {Sid: str}
@returns(202) {sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, account_sid: str?, enable_turn: bool?, unique_name: str?, status_callback: str(uri)?, status_callback_method: str(http-method)?, end_time: str(date-time)?, duration: int?, type: str, max_participants: int, max_participant_duration: int, max_concurrent_published_tracks: int?, record_participants_on_connect: bool?, video_codecs: [str]?, media_region: str?, audio_only: bool?, empty_room_timeout: int, unused_room_timeout: int, large_room: bool?, url: str(uri)?, links: map?}

@endpoint POST /v1/Rooms
@returns(201) {sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, account_sid: str?, enable_turn: bool?, unique_name: str?, status_callback: str(uri)?, status_callback_method: str(http-method)?, end_time: str(date-time)?, duration: int?, type: str, max_participants: int, max_participant_duration: int, max_concurrent_published_tracks: int?, record_participants_on_connect: bool?, video_codecs: [str]?, media_region: str?, audio_only: bool?, empty_room_timeout: int, unused_room_timeout: int, large_room: bool?, url: str(uri)?, links: map?}

@endpoint GET /v1/Rooms
@optional {Status: str, UniqueName: str, DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {rooms: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{Sid}
@required {RoomSid: str, Sid: str}
@returns(200) {sid: str?, room_sid: str?, account_sid: str?, status: str, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, links: map?}

@endpoint POST /v1/Rooms/{RoomSid}/Participants/{Sid}
@required {RoomSid: str, Sid: str}
@returns(202) {sid: str?, room_sid: str?, account_sid: str?, status: str, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, links: map?}

@endpoint GET /v1/Rooms/{RoomSid}/Participants
@required {RoomSid: str}
@optional {Status: str, Identity: str, DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {participants: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint POST /v1/Rooms/{RoomSid}/Participants/{Sid}/Anonymize
@required {RoomSid: str, Sid: str}
@returns(200) {sid: str?, room_sid: str?, account_sid: str?, status: str, identity: str?, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?}

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid}
@required {RoomSid: str, ParticipantSid: str, Sid: str}
@returns(200) {sid: str?, participant_sid: str?, room_sid: str?, name: str?, date_created: str(date-time)?, date_updated: str(date-time)?, enabled: bool?, kind: str, url: str(uri)?}

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks
@required {RoomSid: str, ParticipantSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {published_tracks: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules
@required {RoomSid: str, ParticipantSid: str}
@returns(200) {participant_sid: str?, room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?}

@endpoint POST /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules
@required {RoomSid: str, ParticipantSid: str}
@returns(200) {participant_sid: str?, room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?}

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks/{Sid}
@required {RoomSid: str, ParticipantSid: str, Sid: str}
@returns(200) {sid: str?, participant_sid: str?, publisher_sid: str?, room_sid: str?, name: str?, date_created: str(date-time)?, date_updated: str(date-time)?, enabled: bool?, kind: str, url: str(uri)?}

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks
@required {RoomSid: str, ParticipantSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {subscribed_tracks: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint GET /v1/Rooms/{RoomSid}/Recordings/{Sid}
@required {RoomSid: str, Sid: str}
@returns(200) {account_sid: str?, status: str, date_created: str(date-time)?, sid: str?, source_sid: str?, size: int(int64)?, url: str(uri)?, type: str, duration: int?, container_format: str, codec: str, grouping_sids: any?, track_name: str?, offset: int(int64)?, media_external_location: str(uri)?, room_sid: str?, links: map?}

@endpoint DELETE /v1/Rooms/{RoomSid}/Recordings/{Sid}
@required {RoomSid: str, Sid: str}
@returns(204)

@endpoint GET /v1/Rooms/{RoomSid}/Recordings
@required {RoomSid: str}
@optional {Status: str, SourceSid: str, DateCreatedAfter: str(date-time), DateCreatedBefore: str(date-time), PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {recordings: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint GET /v1/Rooms/{RoomSid}/RecordingRules
@required {RoomSid: str}
@returns(200) {room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?}

@endpoint POST /v1/Rooms/{RoomSid}/RecordingRules
@required {RoomSid: str}
@returns(200) {room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?}

@endpoint GET /v1/Rooms/{RoomSid}/Transcriptions/{Ttid}
@required {RoomSid: str, Ttid: str}
@returns(200) {ttid: str?, account_sid: str?, room_sid: str?, source_sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, configuration: map?}

@endpoint POST /v1/Rooms/{RoomSid}/Transcriptions/{Ttid}
@required {RoomSid: str, Ttid: str}
@returns(202) {ttid: str?, account_sid: str?, room_sid: str?, source_sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, configuration: map?}

@endpoint GET /v1/Rooms/{RoomSid}/Transcriptions
@required {RoomSid: str}
@optional {PageSize: int(int64), Page: int, PageToken: str}
@returns(200) {transcriptions: [map], meta: map{first_page_url: str(uri), key: str, next_page_url: str(uri)?, page: int, page_size: int, previous_page_url: str(uri)?, url: str(uri)}}

@endpoint POST /v1/Rooms/{RoomSid}/Transcriptions
@required {RoomSid: str}
@returns(202) {ttid: str?, account_sid: str?, room_sid: str?, source_sid: str?, status: str, date_created: str(date-time)?, date_updated: str(date-time)?, start_time: str(date-time)?, end_time: str(date-time)?, duration: int?, url: str(uri)?, configuration: map?}

@endgroup

@end
