components:
schemas:
video.v1.composition:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
audio_sources:
description: The array of track names to include in the composition
items:
type: string
nullable: true
type: array
audio_sources_excluded:
description: The array of track names to exclude from the composition
items:
type: string
nullable: true
type: array
bitrate:
description: The average bit rate of the composition's media
nullable: true
type: integer
date_completed:
description: Date when the media processing task finished
format: date-time
nullable: true
type: string
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_deleted:
description: The ISO 8601 date and time in GMT when the composition generated
media was deleted
format: date-time
nullable: true
type: string
duration:
description: The duration of the composition's media file in seconds
nullable: true
type: integer
format:
description: The container format of the composition's media files as specified
in the POST request that created the Composition resource
enum:
- mp4
- webm
nullable: true
type: string
links:
description: The URL of the media file associated with the composition
nullable: true
type: object
media_external_location:
description: The URL of the media file associated with the composition when
stored externally
format: uri
nullable: true
type: string
resolution:
description: The dimensions of the video image in pixels expressed as columns
(width) and rows (height)
nullable: true
type: string
room_sid:
description: The SID of the Group Room that generated the audio and video
tracks used in the composition
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^CJ[0-9a-fA-F]{32}$
type: string
size:
description: The size of the composed media file in bytes
nullable: true
type: integer
status:
description: The status of the composition
enum:
- enqueued
- processing
- completed
- deleted
- failed
nullable: true
type: string
trim:
description: Whether to remove intervals with no media
nullable: true
type: boolean
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
video_layout:
description: An object that describes the video layout of the composition
nullable: true
type: object
type: object
video.v1.composition_hook:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
audio_sources:
description: The array of track names to include in the compositions created
by the composition hook
items:
type: string
nullable: true
type: array
audio_sources_excluded:
description: The array of track names to exclude from the compositions created
by the composition hook
items:
type: string
nullable: true
type: array
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_updated:
description: The ISO 8601 date and time in GMT when the resource was last
updated
format: date-time
nullable: true
type: string
enabled:
description: Whether the CompositionHook is active
nullable: true
type: boolean
format:
description: The container format of the media files used by the compositions
created by the composition hook
enum:
- mp4
- webm
nullable: true
type: string
friendly_name:
description: The string that you assigned to describe the resource
nullable: true
type: string
resolution:
description: The dimensions of the video image in pixels expressed as columns
(width) and rows (height)
nullable: true
type: string
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^HK[0-9a-fA-F]{32}$
type: string
status_callback:
description: The URL to send status information to your application
format: uri
nullable: true
type: string
status_callback_method:
description: The HTTP method we should use to call status_callback
enum:
- HEAD
- GET
- POST
- PATCH
- PUT
- DELETE
nullable: true
type: string
trim:
description: Whether intervals with no media are clipped
nullable: true
type: boolean
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
video_layout:
description: A JSON object that describes the video layout of the Composition
nullable: true
type: object
type: object
video.v1.composition_settings:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
aws_credentials_sid:
description: The SID of the stored Credential resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^CR[0-9a-fA-F]{32}$
type: string
aws_s3_url:
description: The URL of the AWS S3 bucket where the compositions are stored
format: uri
nullable: true
type: string
aws_storage_enabled:
description: Whether all compositions are written to the aws_s3_url
nullable: true
type: boolean
encryption_enabled:
description: Whether all compositions are stored in an encrypted form
nullable: true
type: boolean
encryption_key_sid:
description: The SID of the Public Key resource used for encryption
maxLength: 34
minLength: 34
nullable: true
pattern: ^CR[0-9a-fA-F]{32}$
type: string
friendly_name:
description: The string that you assigned to describe the resource
nullable: true
type: string
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
type: object
video.v1.recording:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
codec:
description: The codec used to encode the track
enum:
- VP8
- H264
- OPUS
- PCMU
nullable: true
type: string
container_format:
description: The file format for the recording
enum:
- mka
- mkv
nullable: true
type: string
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
duration:
description: The duration of the recording in seconds
nullable: true
type: integer
grouping_sids:
description: A list of SIDs related to the recording
nullable: true
type: object
links:
description: The URLs of related resources
nullable: true
type: object
media_external_location:
description: The URL of the media file associated with the recording when
stored externally
format: uri
nullable: true
type: string
offset:
description: The number of milliseconds between a point in time that is
common to all rooms in a group and when the source room of the recording
started
nullable: true
type: integer
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^RT[0-9a-fA-F]{32}$
type: string
size:
description: The size of the recorded track, in bytes
nullable: true
type: integer
source_sid:
description: The SID of the recording source
maxLength: 34
minLength: 34
nullable: true
pattern: ^[a-zA-Z]{2}[0-9a-fA-F]{32}$
type: string
status:
description: The status of the recording
enum:
- processing
- completed
- deleted
- failed
nullable: true
type: string
track_name:
description: The name that was given to the source track of the recording
nullable: true
type: string
type:
description: The recording's media type
enum:
- audio
- video
- data
nullable: true
type: string
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
type: object
video.v1.recording_settings:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
aws_credentials_sid:
description: The SID of the stored Credential resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^CR[0-9a-fA-F]{32}$
type: string
aws_s3_url:
description: The URL of the AWS S3 bucket where the recordings are stored
format: uri
nullable: true
type: string
aws_storage_enabled:
description: Whether all recordings are written to the aws_s3_url
nullable: true
type: boolean
encryption_enabled:
description: Whether all recordings are stored in an encrypted form
nullable: true
type: boolean
encryption_key_sid:
description: The SID of the Public Key resource used for encryption
maxLength: 34
minLength: 34
nullable: true
pattern: ^CR[0-9a-fA-F]{32}$
type: string
friendly_name:
description: The string that you assigned to describe the resource
nullable: true
type: string
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
type: object
video.v1.room:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
audio_only:
description: Indicates whether the room will only contain audio track participants
for group rooms.
nullable: true
type: boolean
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_updated:
description: The ISO 8601 date and time in GMT when the resource was last
updated
format: date-time
nullable: true
type: string
duration:
description: The duration of the room in seconds
nullable: true
type: integer
empty_room_timeout:
description: The time a room will remain active after last participant leaves.
nullable: true
type: integer
enable_turn:
description: Enable Twilio's Network Traversal TURN service
nullable: true
type: boolean
end_time:
description: The UTC end time of the room in UTC ISO 8601 format
format: date-time
nullable: true
type: string
links:
description: The URLs of related resources
nullable: true
type: object
max_concurrent_published_tracks:
description: The maximum number of published tracks allowed in the room
at the same time
nullable: true
type: integer
max_participant_duration:
description: The maximum number of seconds a Participant can be connected
to the room
nullable: true
type: integer
max_participants:
description: The maximum number of concurrent Participants allowed in the
room
nullable: true
type: integer
media_region:
description: The region for the media server in Group Rooms
nullable: true
type: string
record_participants_on_connect:
description: Whether to start recording when Participants connect
nullable: true
type: boolean
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
status:
description: The status of the room
enum:
- in-progress
- completed
- failed
nullable: true
type: string
status_callback:
description: The URL to send status information to your application
format: uri
nullable: true
type: string
status_callback_method:
description: The HTTP method we use to call status_callback
enum:
- HEAD
- GET
- POST
- PATCH
- PUT
- DELETE
nullable: true
type: string
type:
description: The type of room
enum:
- go
- peer-to-peer
- group
- group-small
nullable: true
type: string
unique_name:
description: An application-defined string that uniquely identifies the
resource
nullable: true
type: string
unused_room_timeout:
description: The time a room will remain active when no one joins.
nullable: true
type: integer
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
video_codecs:
description: An array of the video codecs that are supported when publishing
a track in the room
items:
enum:
- VP8
- H264
type: string
nullable: true
type: array
type: object
video.v1.room.room_participant:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_updated:
description: The ISO 8601 date and time in GMT when the resource was last
updated
format: date-time
nullable: true
type: string
duration:
description: Duration of time in seconds the participant was connected
nullable: true
type: integer
end_time:
description: The time when the participant disconnected from the room in
ISO 8601 format
format: date-time
nullable: true
type: string
identity:
description: The string that identifies the resource's User
nullable: true
type: string
links:
description: The URLs of related resources
nullable: true
type: object
room_sid:
description: The SID of the participant's room
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^PA[0-9a-fA-F]{32}$
type: string
start_time:
description: The time of participant connected to the room in ISO 8601 format
format: date-time
nullable: true
type: string
status:
description: The status of the Participant
enum:
- connected
- disconnected
nullable: true
type: string
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
type: object
video.v1.room.room_participant.room_participant_published_track:
properties:
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_updated:
description: The ISO 8601 date and time in GMT when the resource was last
updated
format: date-time
nullable: true
type: string
enabled:
description: Whether the track is enabled
nullable: true
type: boolean
kind:
description: The track type
enum:
- audio
- video
- data
nullable: true
type: string
name:
description: The track name
nullable: true
type: string
participant_sid:
description: The SID of the Participant resource with the published track
maxLength: 34
minLength: 34
nullable: true
pattern: ^PA[0-9a-fA-F]{32}$
type: string
room_sid:
description: The SID of the Room resource where the track is published
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^MT[0-9a-fA-F]{32}$
type: string
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
type: object
video.v1.room.room_participant.room_participant_subscribe_rule:
properties:
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_updated:
description: The ISO 8601 date and time in GMT when the resource was last
updated
format: date-time
nullable: true
type: string
participant_sid:
description: The SID of the Participant resource for the Subscribe Rules
maxLength: 34
minLength: 34
nullable: true
pattern: ^PA[0-9a-fA-F]{32}$
type: string
room_sid:
description: The SID of the Room resource for the Subscribe Rules
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
rules:
description: A collection of Subscribe Rules that describe how to include
or exclude matching tracks
items:
type: object
nullable: true
type: array
type: object
video.v1.room.room_participant.room_participant_subscribed_track:
properties:
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_updated:
description: The ISO 8601 date and time in GMT when the resource was last
updated
format: date-time
nullable: true
type: string
enabled:
description: Whether the track is enabled
nullable: true
type: boolean
kind:
description: The track type
enum:
- audio
- video
- data
nullable: true
type: string
name:
description: The track name
nullable: true
type: string
participant_sid:
description: The SID of the participant that subscribes to the track
maxLength: 34
minLength: 34
nullable: true
pattern: ^PA[0-9a-fA-F]{32}$
type: string
publisher_sid:
description: The SID of the participant that publishes the track
maxLength: 34
minLength: 34
nullable: true
pattern: ^PA[0-9a-fA-F]{32}$
type: string
room_sid:
description: The SID of the room where the track is published
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^MT[0-9a-fA-F]{32}$
type: string
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
type: object
video.v1.room.room_recording:
properties:
account_sid:
description: The SID of the Account that created the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^AC[0-9a-fA-F]{32}$
type: string
codec:
description: The codec used for the recording
enum:
- VP8
- H264
- OPUS
- PCMU
nullable: true
type: string
container_format:
description: The file format for the recording
enum:
- mka
- mkv
nullable: true
type: string
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
duration:
description: The duration of the recording in seconds
nullable: true
type: integer
grouping_sids:
description: A list of SIDs related to the Recording
nullable: true
type: object
links:
description: The URLs of related resources
nullable: true
type: object
media_external_location:
description: The URL of the media file associated with the recording when
stored externally
format: uri
nullable: true
type: string
offset:
description: The number of milliseconds between a point in time that is
common to all rooms in a group and when the source room of the recording
started
nullable: true
type: integer
room_sid:
description: The SID of the Room resource the recording is associated with
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
sid:
description: The unique string that identifies the resource
maxLength: 34
minLength: 34
nullable: true
pattern: ^RT[0-9a-fA-F]{32}$
type: string
size:
description: The size of the recorded track in bytes
nullable: true
type: integer
source_sid:
description: The SID of the recording source
maxLength: 34
minLength: 34
nullable: true
pattern: ^[a-zA-Z]{2}[0-9a-fA-F]{32}$
type: string
status:
description: The status of the recording
enum:
- processing
- completed
- deleted
- failed
nullable: true
type: string
track_name:
description: The name that was given to the source track of the recording
nullable: true
type: string
type:
description: The recording's media type
enum:
- audio
- video
- data
nullable: true
type: string
url:
description: The absolute URL of the resource
format: uri
nullable: true
type: string
type: object
video.v1.room.room_recording_rule:
properties:
date_created:
description: The ISO 8601 date and time in GMT when the resource was created
format: date-time
nullable: true
type: string
date_updated:
description: The ISO 8601 date and time in GMT when the resource was last
updated
format: date-time
nullable: true
type: string
room_sid:
description: The SID of the Room resource for the Recording Rules
maxLength: 34
minLength: 34
nullable: true
pattern: ^RM[0-9a-fA-F]{32}$
type: string
rules:
description: A collection of recording Rules that describe how to include
or exclude matching tracks for recording
items:
properties:
all:
type: boolean
kind:
type: string
publisher:
type: string
track:
type: string
type:
type: string
type: object
nullable: true
type: array
type: object
securitySchemes:
accountSid_authToken:
scheme: basic
type: http
info:
contact:
email: support@twilio.com
name: Twilio Support
url: https://support.twilio.com
description: This is the public Twilio REST API.
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
termsOfService: https://www.twilio.com/legal/tos
title: Twilio - Video
version: 1.27.0
openapi: 3.0.1
paths:
/v1/CompositionHooks:
description: Recording composition hooks
get:
description: List of all Recording CompositionHook resources.
operationId: ListCompositionHook
parameters:
- description: Read only CompositionHook resources with an `enabled` value that
matches this parameter.
in: query
name: Enabled
schema:
type: boolean
- description: Read only CompositionHook resources created on or after this
[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
in: query
name: DateCreatedAfter
schema:
format: date-time
type: string
- description: Read only CompositionHook resources created before this [ISO
8601](https://en.wikipedia.org/wiki/ISO_8601) datetime with time zone.
in: query
name: DateCreatedBefore
schema:
format: date-time
type: string
- description: 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.
in: query
name: FriendlyName
schema:
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
composition_hooks:
items:
$ref: '#/components/schemas/video.v1.composition_hook'
type: array
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
title: ListCompositionHookResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: CreateCompositionHook
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
AudioSources:
description: An array of track names from the same group room to
merge into the compositions created by the composition hook. Can
include zero or more track names. A composition triggered by the
composition hook includes all audio sources specified in `audio_sources`
except those specified in `audio_sources_excluded`. The track
names in this parameter can include an asterisk as a wild card
character, which matches zero or more characters in a track name.
For example, `student*` includes tracks named `student` as well
as `studentTeam`.
items:
type: string
type: array
AudioSourcesExcluded:
description: An array of track names to exclude. A composition triggered
by the composition hook includes all audio sources specified in
`audio_sources` except for those specified in `audio_sources_excluded`.
The track names in this parameter can include an asterisk as a
wild card character, which matches zero or more characters in
a track name. For example, `student*` excludes `student` as well
as `studentTeam`. This parameter can also be empty.
items:
type: string
type: array
Enabled:
description: Whether the composition hook is active. When `true`,
the composition hook will be triggered for every completed Group
Room in the account. When `false`, the composition hook will never
be triggered.
type: boolean
Format:
description: 'The container format of the media files used by the
compositions created by the composition hook. Can be: `mp4` or
`webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources`
must have one or more tracks and/or a `video_layout` element must
contain a valid `video_sources` list, otherwise an error occurs.'
enum:
- mp4
- webm
type: string
FriendlyName:
description: A descriptive string that you create to describe the
resource. It can be up to 100 characters long and it must be
unique within the account.
type: string
Resolution:
description: "A string that describes the columns (width) and rows\
\ (height) of the generated composed video in pixels. Defaults\
\ to `640x480`. \nThe string's format is `{width}x{height}` where:\
\ \n\n* 16 <= `{width}` <= 1280\n* 16 <= `{height}` <= 1280\n\
* `{width}` * `{height}` <= 921,600\n\nTypical values are: \n\n\
* HD = `1280x720`\n* PAL = `1024x576`\n* VGA = `640x480`\n* CIF\
\ = `320x240`\n\nNote that the `resolution` imposes an aspect\
\ ratio to the resulting composition. When the original video\
\ tracks are constrained by the aspect ratio, they are scaled\
\ to fit. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)\
\ for more info."
type: string
StatusCallback:
description: The URL we should call using the `status_callback_method`
to send status information to your application on every composition
event. If not provided, status callback events will not be dispatched.
format: uri
type: string
StatusCallbackMethod:
description: 'The HTTP method we should use to call `status_callback`.
Can be: `POST` or `GET` and the default is `POST`.'
enum:
- HEAD
- GET
- POST
- PATCH
- PUT
- DELETE
type: string
Trim:
description: Whether to clip the intervals where there is no active
media in the Compositions triggered by the composition hook. The
default is `true`. Compositions with `trim` enabled are shorter
when the Room is created and no Participant joins for a while
as well as if all the Participants leave the room and join later,
because those gaps will be removed. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)
for more info.
type: boolean
VideoLayout:
description: An object that describes the video layout of the composition
hook in terms of regions. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)
for more info.
type: object
required:
- FriendlyName
title: CreateCompositionHookRequest
type: object
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.composition_hook'
description: Created
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- friendly_name
- date_created
pathType: list
/v1/CompositionHooks/{Sid}:
delete:
description: Delete a Recording CompositionHook resource identified by a `CompositionHook
SID`.
operationId: DeleteCompositionHook
parameters:
- description: The SID of the CompositionHook resource to delete.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^HK[0-9a-fA-F]{32}$
type: string
responses:
'204':
description: The resource was deleted successfully.
security:
- accountSid_authToken: []
x-maturity:
- GA
description: Recording composition hooks
get:
description: Returns a single CompositionHook resource identified by a CompositionHook
SID.
operationId: FetchCompositionHook
parameters:
- description: The SID of the CompositionHook resource to fetch.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^HK[0-9a-fA-F]{32}$
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.composition_hook'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: UpdateCompositionHook
parameters:
- description: The SID of the CompositionHook resource to update.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^HK[0-9a-fA-F]{32}$
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
AudioSources:
description: An array of track names from the same group room to
merge into the compositions created by the composition hook. Can
include zero or more track names. A composition triggered by the
composition hook includes all audio sources specified in `audio_sources`
except those specified in `audio_sources_excluded`. The track
names in this parameter can include an asterisk as a wild card
character, which matches zero or more characters in a track name.
For example, `student*` includes tracks named `student` as well
as `studentTeam`.
items:
type: string
type: array
AudioSourcesExcluded:
description: An array of track names to exclude. A composition triggered
by the composition hook includes all audio sources specified in
`audio_sources` except for those specified in `audio_sources_excluded`.
The track names in this parameter can include an asterisk as a
wild card character, which matches zero or more characters in
a track name. For example, `student*` excludes `student` as well
as `studentTeam`. This parameter can also be empty.
items:
type: string
type: array
Enabled:
description: Whether the composition hook is active. When `true`,
the composition hook will be triggered for every completed Group
Room in the account. When `false`, the composition hook never
triggers.
type: boolean
Format:
description: 'The container format of the media files used by the
compositions created by the composition hook. Can be: `mp4` or
`webm` and the default is `webm`. If `mp4` or `webm`, `audio_sources`
must have one or more tracks and/or a `video_layout` element must
contain a valid `video_sources` list, otherwise an error occurs.'
enum:
- mp4
- webm
type: string
FriendlyName:
description: A descriptive string that you create to describe the
resource. It can be up to 100 characters long and it must be
unique within the account.
type: string
Resolution:
description: "A string that describes the columns (width) and rows\
\ (height) of the generated composed video in pixels. Defaults\
\ to `640x480`. \nThe string's format is `{width}x{height}` where:\
\ \n\n* 16 <= `{width}` <= 1280\n* 16 <= `{height}` <= 1280\n\
* `{width}` * `{height}` <= 921,600\n\nTypical values are: \n\n\
* HD = `1280x720`\n* PAL = `1024x576`\n* VGA = `640x480`\n* CIF\
\ = `320x240`\n\nNote that the `resolution` imposes an aspect\
\ ratio to the resulting composition. When the original video\
\ tracks are constrained by the aspect ratio, they are scaled\
\ to fit. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)\
\ for more info."
type: string
StatusCallback:
description: The URL we should call using the `status_callback_method`
to send status information to your application on every composition
event. If not provided, status callback events will not be dispatched.
format: uri
type: string
StatusCallbackMethod:
description: 'The HTTP method we should use to call `status_callback`.
Can be: `POST` or `GET` and the default is `POST`.'
enum:
- HEAD
- GET
- POST
- PATCH
- PUT
- DELETE
type: string
Trim:
description: Whether to clip the intervals where there is no active
media in the compositions triggered by the composition hook. The
default is `true`. Compositions with `trim` enabled are shorter
when the Room is created and no Participant joins for a while
as well as if all the Participants leave the room and join later,
because those gaps will be removed. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)
for more info.
type: boolean
VideoLayout:
description: A JSON object that describes the video layout of the
composition hook in terms of regions. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)
for more info.
type: object
required:
- FriendlyName
title: UpdateCompositionHookRequest
type: object
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.composition_hook'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- friendly_name
- date_created
pathType: instance
/v1/CompositionSettings/Default:
description: Recording composition settings
get:
description: ''
operationId: FetchCompositionSettings
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.composition_settings'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: CreateCompositionSettings
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
AwsCredentialsSid:
description: The SID of the stored Credential resource.
maxLength: 34
minLength: 34
pattern: ^CR[0-9a-fA-F]{32}$
type: string
AwsS3Url:
description: The URL of the AWS S3 bucket where the compositions
should be stored. We only support DNS-compliant URLs like `https://documentation-example-twilio-bucket/compositions`,
where `compositions` is the path in which you want the compositions
to be stored. This URL accepts only URI-valid characters, as described
in the RFC
3986.
format: uri
type: string
AwsStorageEnabled:
description: Whether all compositions should be written to the `aws_s3_url`.
When `false`, all compositions are stored in our cloud.
type: boolean
EncryptionEnabled:
description: Whether all compositions should be stored in an encrypted
form. The default is `false`.
type: boolean
EncryptionKeySid:
description: The SID of the Public Key resource to use for encryption.
maxLength: 34
minLength: 34
pattern: ^CR[0-9a-fA-F]{32}$
type: string
FriendlyName:
description: A descriptive string that you create to describe the
resource and show to the user in the console
type: string
required:
- FriendlyName
title: CreateCompositionSettingsRequest
type: object
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.composition_settings'
description: Created
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- friendly_name
- aws_storage_enabled
- encryption_enabled
pathType: instance
/v1/Compositions:
description: Recording compositions
get:
description: List of all Recording compositions.
operationId: ListComposition
parameters:
- description: 'Read only Composition resources with this status. Can be: `enqueued`,
`processing`, `completed`, `deleted`, or `failed`.'
in: query
name: Status
schema:
enum:
- enqueued
- processing
- completed
- deleted
- failed
type: string
- description: Read only Composition resources created on or after this [ISO
8601](https://en.wikipedia.org/wiki/ISO_8601) date-time with time zone.
in: query
name: DateCreatedAfter
schema:
format: date-time
type: string
- description: Read only Composition resources created before this ISO 8601
date-time with time zone.
in: query
name: DateCreatedBefore
schema:
format: date-time
type: string
- description: Read only Composition resources with this Room SID.
in: query
name: RoomSid
schema:
maxLength: 34
minLength: 34
pattern: ^RM[0-9a-fA-F]{32}$
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
compositions:
items:
$ref: '#/components/schemas/video.v1.composition'
type: array
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
title: ListCompositionResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: CreateComposition
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
AudioSources:
description: An array of track names from the same group room to
merge into the new composition. Can include zero or more track
names. The new composition includes all audio sources specified
in `audio_sources` except for those specified in `audio_sources_excluded`.
The track names in this parameter can include an asterisk as a
wild card character, which will match zero or more characters
in a track name. For example, `student*` includes `student` as
well as `studentTeam`. Please, be aware that either video_layout
or audio_sources have to be provided to get a valid creation request
items:
type: string
type: array
AudioSourcesExcluded:
description: An array of track names to exclude. The new composition
includes all audio sources specified in `audio_sources` except
for those specified in `audio_sources_excluded`. The track names
in this parameter can include an asterisk as a wild card character,
which will match zero or more characters in a track name. For
example, `student*` excludes `student` as well as `studentTeam`.
This parameter can also be empty.
items:
type: string
type: array
Format:
description: 'The container format of the composition''s media files.
Can be: `mp4` or `webm` and the default is `webm`. If you specify
`mp4` or `webm`, you must also specify one or more `audio_sources`
and/or a `video_layout` element that contains a valid `video_sources`
list, otherwise an error occurs.'
enum:
- mp4
- webm
type: string
Resolution:
description: "A string that describes the columns (width) and rows\
\ (height) of the generated composed video in pixels. Defaults\
\ to `640x480`. \nThe string's format is `{width}x{height}` where:\
\ \n\n* 16 <= `{width}` <= 1280\n* 16 <= `{height}` <= 1280\n\
* `{width}` * `{height}` <= 921,600\n\nTypical values are: \n\n\
* HD = `1280x720`\n* PAL = `1024x576`\n* VGA = `640x480`\n* CIF\
\ = `320x240`\n\nNote that the `resolution` imposes an aspect\
\ ratio to the resulting composition. When the original video\
\ tracks are constrained by the aspect ratio, they are scaled\
\ to fit. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)\
\ for more info."
type: string
RoomSid:
description: The SID of the Group Room with the media tracks to
be used as composition sources.
maxLength: 34
minLength: 34
pattern: ^RM[0-9a-fA-F]{32}$
type: string
StatusCallback:
description: The URL we should call using the `status_callback_method`
to send status information to your application on every composition
event. If not provided, status callback events will not be dispatched.
format: uri
type: string
StatusCallbackMethod:
description: 'The HTTP method we should use to call `status_callback`.
Can be: `POST` or `GET` and the default is `POST`.'
enum:
- HEAD
- GET
- POST
- PATCH
- PUT
- DELETE
type: string
Trim:
description: Whether to clip the intervals where there is no active
media in the composition. The default is `true`. Compositions
with `trim` enabled are shorter when the Room is created and no
Participant joins for a while as well as if all the Participants
leave the room and join later, because those gaps will be removed.
See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)
for more info.
type: boolean
VideoLayout:
description: An object that describes the video layout of the composition
in terms of regions. See [Specifying Video Layouts](https://www.twilio.com/docs/video/api/compositions-resource#specifying-video-layouts)
for more info. Please, be aware that either video_layout or audio_sources
have to be provided to get a valid creation request
type: object
required:
- RoomSid
title: CreateCompositionRequest
type: object
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.composition'
description: Created
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- status
- resolution
- format
pathType: list
/v1/Compositions/{Sid}:
delete:
description: Delete a Recording Composition resource identified by a Composition
SID.
operationId: DeleteComposition
parameters:
- description: The SID of the Composition resource to delete.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^CJ[0-9a-fA-F]{32}$
type: string
responses:
'204':
description: The resource was deleted successfully.
security:
- accountSid_authToken: []
x-maturity:
- GA
description: Recording compositions
get:
description: Returns a single Composition resource identified by a Composition
SID.
operationId: FetchComposition
parameters:
- description: The SID of the Composition resource to fetch.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^CJ[0-9a-fA-F]{32}$
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.composition'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- status
- resolution
- format
pathType: instance
/v1/RecordingSettings/Default:
description: Recording settings
get:
description: ''
operationId: FetchRecordingSettings
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.recording_settings'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: CreateRecordingSettings
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
AwsCredentialsSid:
description: The SID of the stored Credential resource.
maxLength: 34
minLength: 34
pattern: ^CR[0-9a-fA-F]{32}$
type: string
AwsS3Url:
description: The URL of the AWS S3 bucket where the recordings should
be stored. We only support DNS-compliant URLs like `https://documentation-example-twilio-bucket/recordings`,
where `recordings` is the path in which you want the recordings
to be stored. This URL accepts only URI-valid characters, as described
in the RFC
3986.
format: uri
type: string
AwsStorageEnabled:
description: Whether all recordings should be written to the `aws_s3_url`.
When `false`, all recordings are stored in our cloud.
type: boolean
EncryptionEnabled:
description: Whether all recordings should be stored in an encrypted
form. The default is `false`.
type: boolean
EncryptionKeySid:
description: The SID of the Public Key resource to use for encryption.
maxLength: 34
minLength: 34
pattern: ^CR[0-9a-fA-F]{32}$
type: string
FriendlyName:
description: A descriptive string that you create to describe the
resource and be shown to users in the console
type: string
required:
- FriendlyName
title: CreateRecordingSettingsRequest
type: object
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.recording_settings'
description: Created
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- friendly_name
- aws_storage_enabled
- encryption_enabled
pathType: instance
/v1/Recordings:
description: Single-track, single-media recordings
get:
description: List of all Track recordings.
operationId: ListRecording
parameters:
- description: 'Read only the recordings that have this status. Can be: `processing`,
`completed`, or `deleted`.'
in: query
name: Status
schema:
enum:
- processing
- completed
- deleted
- failed
type: string
- description: Read only the recordings that have this `source_sid`.
in: query
name: SourceSid
schema:
maxLength: 34
minLength: 34
pattern: ^[a-zA-Z]{2}[0-9a-fA-F]{32}$
type: string
- description: Read only recordings with this `grouping_sid`, which may include
a `participant_sid` and/or a `room_sid`.
in: query
name: GroupingSid
schema:
items:
maxLength: 34
minLength: 34
pattern: ^[a-zA-Z]{2}[0-9a-fA-F]{32}$
type: string
type: array
- description: Read only recordings that started on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
date-time with time zone.
in: query
name: DateCreatedAfter
schema:
format: date-time
type: string
- description: 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`.
in: query
name: DateCreatedBefore
schema:
format: date-time
type: string
- description: Read only recordings that have this media type. Can be either
`audio` or `video`.
in: query
name: MediaType
schema:
enum:
- audio
- video
- data
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
recordings:
items:
$ref: '#/components/schemas/video.v1.recording'
type: array
title: ListRecordingResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- date_created
- status
- type
- duration
- codec
pathType: list
/v1/Recordings/{Sid}:
delete:
description: Delete a Recording resource identified by a Recording SID.
operationId: DeleteRecording
parameters:
- description: The SID of the Recording resource to delete.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^RT[0-9a-fA-F]{32}$
type: string
responses:
'204':
description: The resource was deleted successfully.
security:
- accountSid_authToken: []
x-maturity:
- GA
description: Single-track, single-media recordings
get:
description: Returns a single Recording resource identified by a Recording SID.
operationId: FetchRecording
parameters:
- description: The SID of the Recording resource to fetch.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^RT[0-9a-fA-F]{32}$
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.recording'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- date_created
- status
- type
- duration
- codec
pathType: instance
/v1/Rooms:
description: Video rooms with one or more participants
get:
description: ''
operationId: ListRoom
parameters:
- description: 'Read only the rooms with this status. Can be: `in-progress`
(default) or `completed`'
in: query
name: Status
schema:
enum:
- in-progress
- completed
- failed
type: string
- description: Read only rooms with the this `unique_name`.
in: query
name: UniqueName
schema:
type: string
- description: Read only rooms that started on or after this date, given as
`YYYY-MM-DD`.
in: query
name: DateCreatedAfter
schema:
format: date-time
type: string
- description: Read only rooms that started before this date, given as `YYYY-MM-DD`.
in: query
name: DateCreatedBefore
schema:
format: date-time
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
rooms:
items:
$ref: '#/components/schemas/video.v1.room'
type: array
title: ListRoomResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: CreateRoom
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
AudioOnly:
description: When set to true, indicates that the participants in
the room will only publish audio. No video tracks will be allowed.
Group rooms only.
type: boolean
EmptyRoomTimeout:
description: Configures how long (in minutes) a room will remain
active after last participant leaves. Valid values range from
1 to 60 minutes (no fractions).
type: integer
EnableTurn:
description: Deprecated, now always considered to be true.
type: boolean
MaxParticipantDuration:
description: The maximum number of seconds a Participant can be
connected to the room. The maximum possible value is 86400 seconds
(24 hours). The default is 14400 seconds (4 hours).
type: integer
MaxParticipants:
description: The maximum number of concurrent Participants allowed
in the room. Peer-to-peer rooms can have up to 10 Participants.
Small Group rooms can have up to 4 Participants. Group rooms can
have up to 50 Participants.
type: integer
MediaRegion:
description: 'The region for the media server in Group Rooms. Can
be: one of the [available Media Regions](https://www.twilio.com/docs/video/ip-address-whitelisting#group-rooms-media-servers).
***This feature is not available in `peer-to-peer` rooms.***'
type: string
RecordParticipantsOnConnect:
description: Whether to start recording when Participants connect.
***This feature is not available in `peer-to-peer` rooms.***
type: boolean
RecordingRules:
description: A collection of Recording Rules that describe how to
include or exclude matching tracks for recording
type: object
StatusCallback:
description: The URL we should call using the `status_callback_method`
to send status information to your application on every room event.
See [Status Callbacks](https://www.twilio.com/docs/video/api/status-callbacks)
for more info.
format: uri
type: string
StatusCallbackMethod:
description: The HTTP method we should use to call `status_callback`.
Can be `POST` or `GET`.
enum:
- HEAD
- GET
- POST
- PATCH
- PUT
- DELETE
type: string
Type:
description: 'The type of room. Can be: `go`, `peer-to-peer`, `group-small`,
or `group`. The default value is `group`.'
enum:
- go
- peer-to-peer
- group
- group-small
type: string
UniqueName:
description: An application-defined string that uniquely identifies
the resource. It can be used as a `room_sid` in place of the resource's
`sid` in the URL to address the resource, assuming it does not
contain any [reserved characters](https://tools.ietf.org/html/rfc3986#section-2.2)
that would need to be URL encoded. This value is unique for `in-progress`
rooms. SDK clients can use this name to connect to the room. REST
API clients can use this name in place of the Room SID to interact
with the room as long as the room is `in-progress`.
type: string
UnusedRoomTimeout:
description: Configures how long (in minutes) a room will remain
active if no one joins. Valid values range from 1 to 60 minutes
(no fractions).
type: integer
VideoCodecs:
description: 'An array of the video codecs that are supported when
publishing a track in the room. Can be: `VP8` and `H264`. ***This
feature is not available in `peer-to-peer` rooms***'
items:
enum:
- VP8
- H264
type: string
type: array
title: CreateRoomRequest
type: object
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room'
description: Created
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- unique_name
- status
pathType: list
/v1/Rooms/{RoomSid}/Participants:
description: Participants in video rooms
get:
description: ''
operationId: ListRoomParticipant
parameters:
- description: The SID of the room with the Participant resources to read.
in: path
name: RoomSid
required: true
schema:
type: string
- description: '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.'
in: query
name: Status
schema:
enum:
- connected
- disconnected
type: string
- description: Read only the Participants with this [User](https://www.twilio.com/docs/chat/rest/user-resource)
`identity` value.
in: query
name: Identity
schema:
type: string
- description: Read only Participants that started after this date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#UTC)
format.
in: query
name: DateCreatedAfter
schema:
format: date-time
type: string
- description: Read only Participants that started before this date in [ISO
8601](https://en.wikipedia.org/wiki/ISO_8601#UTC) format.
in: query
name: DateCreatedBefore
schema:
format: date-time
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
participants:
items:
$ref: '#/components/schemas/video.v1.room.room_participant'
type: array
title: ListRoomParticipantResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- identity
- status
pathType: list
/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks:
description: 'TODO: Resource-level docs'
get:
description: Returns a list of tracks associated with a given Participant. Only
`currently` Published Tracks are in the list resource.
operationId: ListRoomParticipantPublishedTrack
parameters:
- description: The SID of the Room resource where the Track resources to read
are published.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the Participant resource with the published tracks
to read.
in: path
name: ParticipantSid
required: true
schema:
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
published_tracks:
items:
$ref: '#/components/schemas/video.v1.room.room_participant.room_participant_published_track'
type: array
title: ListRoomParticipantPublishedTrackResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- name
- enabled
- kind
pathType: list
/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/PublishedTracks/{Sid}:
description: 'TODO: Resource-level docs'
get:
description: Returns a single Track resource represented by TrackName or SID.
operationId: FetchRoomParticipantPublishedTrack
parameters:
- description: The SID of the Room resource where the Track resource to fetch
is published.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the Participant resource with the published track
to fetch.
in: path
name: ParticipantSid
required: true
schema:
type: string
- description: The SID of the RoomParticipantPublishedTrack resource to fetch.
in: path
name: Sid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_participant.room_participant_published_track'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- name
- enabled
- kind
pathType: instance
/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribeRules:
description: 'TODO: Resource-level docs'
get:
description: Returns a list of Subscribe Rules for the Participant.
operationId: FetchRoomParticipantSubscribeRule
parameters:
- description: The SID of the Room resource where the subscribe rules to fetch
apply.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the Participant resource with the subscribe rules
to fetch.
in: path
name: ParticipantSid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_participant.room_participant_subscribe_rule'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: Update the Subscribe Rules for the Participant
operationId: UpdateRoomParticipantSubscribeRule
parameters:
- description: The SID of the Room resource where the subscribe rules to update
apply.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the Participant resource to update the Subscribe Rules.
in: path
name: ParticipantSid
required: true
schema:
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
Rules:
description: A JSON-encoded array of subscribe rules. See the [Specifying
Subscribe Rules](https://www.twilio.com/docs/video/api/track-subscriptions#specifying-sr)
section for further information.
type: object
title: UpdateRoomParticipantSubscribeRuleRequest
type: object
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_participant.room_participant_subscribe_rule'
description: Accepted
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- participant_sid
- room_sid
- rules
pathType: list
/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks:
description: 'TODO: Resource-level docs'
get:
description: Returns a list of tracks that are subscribed for the participant.
operationId: ListRoomParticipantSubscribedTrack
parameters:
- description: The SID of the Room resource with the Track resources to read.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the participant that subscribes to the Track resources
to read.
in: path
name: ParticipantSid
required: true
schema:
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
subscribed_tracks:
items:
$ref: '#/components/schemas/video.v1.room.room_participant.room_participant_subscribed_track'
type: array
title: ListRoomParticipantSubscribedTrackResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- name
- enabled
- kind
pathType: list
/v1/Rooms/{RoomSid}/Participants/{ParticipantSid}/SubscribedTracks/{Sid}:
description: 'TODO: Resource-level docs'
get:
description: '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.'
operationId: FetchRoomParticipantSubscribedTrack
parameters:
- description: The SID of the Room where the Track resource to fetch is subscribed.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the participant that subscribes to the Track resource
to fetch.
in: path
name: ParticipantSid
required: true
schema:
type: string
- description: The SID of the RoomParticipantSubscribedTrack resource to fetch.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^MT[0-9a-fA-F]{32}$
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_participant.room_participant_subscribed_track'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- name
- enabled
- kind
pathType: instance
/v1/Rooms/{RoomSid}/Participants/{Sid}:
description: Participants in video rooms
get:
description: ''
operationId: FetchRoomParticipant
parameters:
- description: The SID of the room with the Participant resource to fetch.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the RoomParticipant resource to fetch.
in: path
name: Sid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_participant'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: UpdateRoomParticipant
parameters:
- description: The SID of the room with the participant to update.
in: path
name: RoomSid
required: true
schema:
type: string
- description: The SID of the RoomParticipant resource to update.
in: path
name: Sid
required: true
schema:
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
Status:
description: 'The new status of the resource. Can be: `connected`
or `disconnected`. For `in-progress` Rooms the default Status
is `connected`, for `completed` Rooms only `disconnected` Participants
are returned.'
enum:
- connected
- disconnected
type: string
title: UpdateRoomParticipantRequest
type: object
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_participant'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- identity
- status
pathType: instance
/v1/Rooms/{RoomSid}/RecordingRules:
description: 'TODO: Resource-level docs'
get:
description: Returns a list of Recording Rules for the Room.
operationId: FetchRoomRecordingRule
parameters:
- description: The SID of the Room resource where the recording rules to fetch
apply.
in: path
name: RoomSid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_recording_rule'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: Update the Recording Rules for the Room
operationId: UpdateRoomRecordingRule
parameters:
- description: The SID of the Room resource where the recording rules to update
apply.
in: path
name: RoomSid
required: true
schema:
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
Rules:
description: A JSON-encoded array of recording rules.
type: object
title: UpdateRoomRecordingRuleRequest
type: object
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_recording_rule'
description: Accepted
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- room_sid
- rules
pathType: list
/v1/Rooms/{RoomSid}/Recordings:
description: Single-track, single-media room recordings
get:
description: ''
operationId: ListRoomRecording
parameters:
- description: The SID of the room with the RoomRecording resources to read.
in: path
name: RoomSid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^RM[0-9a-fA-F]{32}$
type: string
- description: 'Read only the recordings with this status. Can be: `processing`,
`completed`, or `deleted`.'
in: query
name: Status
schema:
enum:
- processing
- completed
- deleted
- failed
type: string
- description: Read only the recordings that have this `source_sid`.
in: query
name: SourceSid
schema:
maxLength: 34
minLength: 34
pattern: ^[a-zA-Z]{2}[0-9a-fA-F]{32}$
type: string
- description: Read only recordings that started on or after this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
datetime with time zone.
in: query
name: DateCreatedAfter
schema:
format: date-time
type: string
- description: Read only Recordings that started before this [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
datetime with time zone.
in: query
name: DateCreatedBefore
schema:
format: date-time
type: string
- description: How many resources to return in each list page. The default is
50, and the maximum is 1000.
in: query
name: PageSize
schema:
maximum: 1000
minimum: 1
type: integer
responses:
'200':
content:
application/json:
schema:
properties:
meta:
properties:
first_page_url:
format: uri
type: string
key:
type: string
next_page_url:
format: uri
type: string
page:
type: integer
page_size:
type: integer
previous_page_url:
format: uri
type: string
url:
format: uri
type: string
type: object
recordings:
items:
$ref: '#/components/schemas/video.v1.room.room_recording'
type: array
title: ListRoomRecordingResponse
type: object
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- date_created
- status
- type
- duration
- codec
pathType: list
/v1/Rooms/{RoomSid}/Recordings/{Sid}:
delete:
description: ''
operationId: DeleteRoomRecording
parameters:
- description: The SID of the room with the RoomRecording resource to delete.
in: path
name: RoomSid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^RM[0-9a-fA-F]{32}$
type: string
- description: The SID of the RoomRecording resource to delete.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^RT[0-9a-fA-F]{32}$
type: string
responses:
'204':
description: The resource was deleted successfully.
security:
- accountSid_authToken: []
x-maturity:
- GA
description: Single-track, single-media room recordings
get:
description: ''
operationId: FetchRoomRecording
parameters:
- description: The SID of the Room resource with the recording to fetch.
in: path
name: RoomSid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^RM[0-9a-fA-F]{32}$
type: string
- description: The SID of the RoomRecording resource to fetch.
in: path
name: Sid
required: true
schema:
maxLength: 34
minLength: 34
pattern: ^RT[0-9a-fA-F]{32}$
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room.room_recording'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- date_created
- status
- type
- duration
- codec
pathType: instance
/v1/Rooms/{Sid}:
description: Video rooms with one or more participants
get:
description: ''
operationId: FetchRoom
parameters:
- description: The SID of the Room resource to fetch.
in: path
name: Sid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
post:
description: ''
operationId: UpdateRoom
parameters:
- description: The SID of the Room resource to update.
in: path
name: Sid
required: true
schema:
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
properties:
Status:
description: The new status of the resource. Set to `completed`
to end the room.
enum:
- in-progress
- completed
- failed
type: string
required:
- Status
title: UpdateRoomRequest
type: object
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/video.v1.room'
description: OK
security:
- accountSid_authToken: []
x-maturity:
- GA
servers:
- url: https://video.twilio.com
x-twilio:
defaultOutputProperties:
- sid
- unique_name
- status
pathType: instance
servers:
- url: https://video.twilio.com
x-maturity:
- description: This product is Generally Available.
name: GA