@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}
@desc Returns a single Composition resource identified by a Composition SID.
@required {Sid: str # The SID of the Composition resource to fetch.}
@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?} # OK

@endpoint DELETE /v1/Compositions/{Sid}
@desc Delete a Recording Composition resource identified by a Composition SID.
@required {Sid: str # The SID of the Composition resource to delete.}
@returns(204) The resource was deleted successfully.

@endpoint GET /v1/Compositions
@desc List of all Recording compositions.
@optional {Status: str # Read only Composition resources with this status. Can be: `enqueued`, `processing`, `completed`, `deleted`, or `failed`., DateCreatedAfter: str(date-time) # Read only Composition resources created on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with time zone., DateCreatedBefore: str(date-time) # Read only Composition resources created before this ISO 8601 date-time with time zone., RoomSid: str # Read only Composition resources with this Room SID., PageSize: int(int64)=50 # How many resources to return in each list page., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@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?} # Created

@endgroup

@group CompositionHooks
@endpoint GET /v1/CompositionHooks/{Sid}
@desc Returns a single CompositionHook resource identified by a CompositionHook SID.
@required {Sid: str # The SID of the CompositionHook resource to fetch.}
@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)?} # OK

@endpoint DELETE /v1/CompositionHooks/{Sid}
@desc Delete a Recording CompositionHook resource identified by a `CompositionHook SID`.
@required {Sid: str # The SID of the CompositionHook resource to delete.}
@returns(204) The resource was deleted successfully.

@endpoint POST /v1/CompositionHooks/{Sid}
@required {Sid: str # The SID of the CompositionHook resource to update.}
@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)?} # OK

@endpoint GET /v1/CompositionHooks
@desc List of all Recording CompositionHook resources.
@optional {Enabled: bool # Read only CompositionHook resources with an `enabled` value that matches this parameter., DateCreatedAfter: str(date-time) # Read only CompositionHook resources created on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., DateCreatedBefore: str(date-time) # Read only CompositionHook resources created before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., FriendlyName: str # Read only CompositionHook resources with friendly names that match this string. The match is not case sensitive and can include asterisk `*` characters as wildcard match., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@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)?} # Created

@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)?} # OK

@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)?} # OK

@endgroup

@group Recordings
@endpoint GET /v1/Recordings/{Sid}
@desc Returns a single Recording resource identified by a Recording SID.
@required {Sid: str # The SID of the Recording resource to fetch.}
@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?} # OK

@endpoint DELETE /v1/Recordings/{Sid}
@desc Delete a Recording resource identified by a Recording SID.
@required {Sid: str # The SID of the Recording resource to delete.}
@returns(204) The resource was deleted successfully.

@endpoint GET /v1/Recordings
@desc List of all Track recordings.
@optional {Status: str # Read only the recordings that have this status. Can be: `processing`, `completed`, or `deleted`., SourceSid: str # Read only the recordings that have this `source_sid`., GroupingSid: [str] # Read only recordings with this `grouping_sid`, which may include a `participant_sid` and/or a `room_sid`., DateCreatedAfter: str(date-time) # Read only recordings that started on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with time zone., DateCreatedBefore: str(date-time) # Read only recordings that started before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with time zone, given as `YYYY-MM-DDThh:mm:ss+|-hh:mm` or `YYYY-MM-DDThh:mm:ssZ`., MediaType: str # Read only recordings that have this media type. Can be either `audio` or `video`., PageSize: int(int64)=50 # How many resources to return in each list page., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@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)?} # OK

@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)?} # OK

@endgroup

@group Rooms
@endpoint GET /v1/Rooms/{Sid}
@required {Sid: str # The SID of the Room resource to fetch.}
@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?} # OK

@endpoint POST /v1/Rooms/{Sid}
@required {Sid: str # The SID of the Room resource to update.}
@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?} # Accepted

@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?} # Created

@endpoint GET /v1/Rooms
@optional {Status: str # Read only the rooms with this status. Can be: `in-progress` (default) or `completed`, UniqueName: str # Read only rooms with the this `unique_name`., DateCreatedAfter: str(date-time) # Read only rooms that started on or after this date, given as `YYYY-MM-DD`., DateCreatedBefore: str(date-time) # Read only rooms that started before this date, given as `YYYY-MM-DD`., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{Sid}
@required {RoomSid: str # The SID of the room with the Participant resource to fetch., Sid: str # The SID of the RoomParticipant resource to fetch.}
@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?} # OK

@endpoint POST /v1/Rooms/{RoomSid}/Participants/{Sid}
@required {RoomSid: str # The SID of the room with the participant to update., Sid: str # The SID of the RoomParticipant resource to update.}
@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?} # Accepted

@endpoint GET /v1/Rooms/{RoomSid}/Participants
@required {RoomSid: str # The SID of the room with the Participant resources to read.}
@optional {Status: str # Read only the participants with this status. Can be: `connected` or `disconnected`. For `in-progress` Rooms the default Status is `connected`, for `completed` Rooms only `disconnected` Participants are returned., Identity: str # Read only the Participants with this [User](https://www.twilio.com/docs/chat/rest/user-resource) `identity` value., DateCreatedAfter: str(date-time) # Read only Participants that started after this date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format., DateCreatedBefore: str(date-time) # Read only Participants that started before this date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@endpoint POST /v1/Rooms/{RoomSid}/Participants/{Sid}/Anonymize
@required {RoomSid: str # The SID of the room with the participant to update., Sid: str # The SID of the RoomParticipant resource to update.}
@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)?} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid}
@desc Returns a single Track resource represented by TrackName or SID.
@required {RoomSid: str # The SID of the Room resource where the Track resource to fetch is published., ParticipantSid: str # The SID of the Participant resource with the published track to fetch., Sid: str # The SID of the RoomParticipantPublishedTrack resource to fetch.}
@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)?} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks
@desc Returns a list of tracks associated with a given Participant. Only `currently` Published Tracks are in the list resource.
@required {RoomSid: str # The SID of the Room resource where the Track resources to read are published., ParticipantSid: str # The SID of the Participant resource with the published tracks to read.}
@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules
@desc Returns a list of Subscribe Rules for the Participant.
@required {RoomSid: str # The SID of the Room resource where the subscribe rules to fetch apply., ParticipantSid: str # The SID of the Participant resource with the subscribe rules to fetch.}
@returns(200) {participant_sid: str?, room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK

@endpoint POST /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules
@desc Update the Subscribe Rules for the Participant
@required {RoomSid: str # The SID of the Room resource where the subscribe rules to update apply., ParticipantSid: str # The SID of the Participant resource to update the Subscribe Rules.}
@returns(200) {participant_sid: str?, room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks/{Sid}
@desc Returns a single Track resource represented by `track_sid`.  Note: This is one resource with the Video API that requires a SID, be Track Name on the subscriber side is not guaranteed to be unique.
@required {RoomSid: str # The SID of the Room where the Track resource to fetch is subscribed., ParticipantSid: str # The SID of the participant that subscribes to the Track resource to fetch., Sid: str # The SID of the RoomParticipantSubscribedTrack resource to fetch.}
@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)?} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks
@desc Returns a list of tracks that are subscribed for the participant.
@required {RoomSid: str # The SID of the Room resource with the Track resources to read., ParticipantSid: str # The SID of the participant that subscribes to the Track resources to read.}
@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Recordings/{Sid}
@required {RoomSid: str # The SID of the Room resource with the recording to fetch., Sid: str # The SID of the RoomRecording resource to fetch.}
@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?} # OK

@endpoint DELETE /v1/Rooms/{RoomSid}/Recordings/{Sid}
@required {RoomSid: str # The SID of the room with the RoomRecording resource to delete., Sid: str # The SID of the RoomRecording resource to delete.}
@returns(204) The resource was deleted successfully.

@endpoint GET /v1/Rooms/{RoomSid}/Recordings
@required {RoomSid: str # The SID of the room with the RoomRecording resources to read.}
@optional {Status: str # Read only the recordings with this status. Can be: `processing`, `completed`, or `deleted`., SourceSid: str # Read only the recordings that have this `source_sid`., DateCreatedAfter: str(date-time) # Read only recordings that started on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., DateCreatedBefore: str(date-time) # Read only Recordings that started before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone., PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@endpoint GET /v1/Rooms/{RoomSid}/RecordingRules
@desc Returns a list of Recording Rules for the Room.
@required {RoomSid: str # The SID of the Room resource where the recording rules to fetch apply.}
@returns(200) {room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK

@endpoint POST /v1/Rooms/{RoomSid}/RecordingRules
@desc Update the Recording Rules for the Room
@required {RoomSid: str # The SID of the Room resource where the recording rules to update apply.}
@returns(200) {room_sid: str?, rules: [map]?, date_created: str(date-time)?, date_updated: str(date-time)?} # OK

@endpoint GET /v1/Rooms/{RoomSid}/Transcriptions/{Ttid}
@required {RoomSid: str # The SID of the room with the transcriptions resource to fetch., Ttid: str # The Twilio type id of the transcriptions resource to fetch.}
@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?} # OK

@endpoint POST /v1/Rooms/{RoomSid}/Transcriptions/{Ttid}
@required {RoomSid: str # The SID of the room with the transcriptions resource to update., Ttid: str # The Twilio type id of the transcriptions resource to update.}
@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?} # Accepted

@endpoint GET /v1/Rooms/{RoomSid}/Transcriptions
@required {RoomSid: str # The SID of the room with the transcriptions resources to read.}
@optional {PageSize: int(int64) # How many resources to return in each list page. The default is 50, and the maximum is 1000., Page: int # The page index. This value is simply for client state., PageToken: str # The page token. This is provided by the API.}
@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)}} # OK

@endpoint POST /v1/Rooms/{RoomSid}/Transcriptions
@required {RoomSid: str # The SID of the room new transcriptions resource to be created.}
@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?} # Accepted

@endgroup

@end
