UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 100 kB
{"openapi":"3.0.1","servers":[{"url":"https://video.twilio.com"}],"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.55.0","x-apisguru-categories":["telecom","messaging"],"x-logo":{"url":"https://static1.twilio.com/marketing/bundles/marketing/img/logos/wordmark-red.svg"},"x-origin":[{"format":"openapi","url":"https://raw.githubusercontent.com/twilio/twilio-oai/main/spec/json/twilio_video_v1.json","version":"3.0"}],"x-providerName":"twilio.com","x-serviceName":"twilio_video_v1"},"tags":[{"name":"VideoV1Anonymize"},{"name":"VideoV1Composition"},{"name":"VideoV1CompositionHook"},{"name":"VideoV1CompositionSettings"},{"name":"VideoV1Participant"},{"name":"VideoV1PublishedTrack"},{"name":"VideoV1Recording"},{"name":"VideoV1RecordingRules"},{"name":"VideoV1RecordingSettings"},{"name":"VideoV1Room"},{"name":"VideoV1RoomRecording"},{"name":"VideoV1SubscribeRules"},{"name":"VideoV1SubscribedTrack"}],"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"}},{"description":"The page index. This value is simply for client state.","in":"query","name":"Page","schema":{"minimum":0,"type":"integer"}},{"description":"The page token. This is provided by the API.","in":"query","name":"PageToken","schema":{"type":"string"}}],"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","nullable":true,"type":"string"},"page":{"type":"integer"},"page_size":{"type":"integer"},"previous_page_url":{"format":"uri","nullable":true,"type":"string"},"url":{"format":"uri","type":"string"}},"type":"object"}},"title":"ListCompositionHookResponse","type":"object"}}},"description":"OK"}},"security":[{"accountSid_authToken":[]}],"tags":["VideoV1CompositionHook"],"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":{"$ref":"#/components/schemas/composition_hook_enum_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.","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"],"format":"http-method","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."}},"required":["FriendlyName"],"title":"CreateCompositionHookRequest","type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/video.v1.composition_hook"}}},"description":"Created"}},"security":[{"accountSid_authToken":[]}],"tags":["VideoV1CompositionHook"],"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":[]}],"tags":["VideoV1CompositionHook"],"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":[]}],"tags":["VideoV1CompositionHook"],"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":{"$ref":"#/components/schemas/composition_hook_enum_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.","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"],"format":"http-method","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."}},"required":["FriendlyName"],"title":"UpdateCompositionHookRequest","type":"object"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/video.v1.composition_hook"}}},"description":"OK"}},"security":[{"accountSid_authToken":[]}],"tags":["VideoV1CompositionHook"],"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":[]}],"tags":["VideoV1CompositionSettings"],"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](https://tools.ietf.org/html/rfc3986#section-2).","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":[]}],"tags":["VideoV1CompositionSettings"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"className":"composition_settings","defaultOutputProperties":["friendly_name","aws_storage_enabled","encryption_enabled"],"mountName":"composition_settings","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":{"$ref":"#/components/schemas/composition_enum_status","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"}},{"description":"The page index. This value is simply for client state.","in":"query","name":"Page","schema":{"minimum":0,"type":"integer"}},{"description":"The page token. This is provided by the API.","in":"query","name":"PageToken","schema":{"type":"string"}}],"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","nullable":true,"type":"string"},"page":{"type":"integer"},"page_size":{"type":"integer"},"previous_page_url":{"format":"uri","nullable":true,"type":"string"},"url":{"format":"uri","type":"string"}},"type":"object"}},"title":"ListCompositionResponse","type":"object"}}},"description":"OK"}},"security":[{"accountSid_authToken":[]}],"tags":["VideoV1Composition"],"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":{"$ref":"#/components/schemas/composition_enum_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.","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"],"format":"http-method","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"}},"required":["RoomSid"],"title":"CreateCompositionRequest","type":"object"}}}},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/video.v1.composition"}}},"description":"Created"}},"security":[{"accountSid_authToken":[]}],"tags":["VideoV1Composition"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","status","resolution","format"],"dependentProperties":{"media":{"mapping":{"composition_sid":"sid"},"resource_url":"/v1/Compositions/{composition_sid}/Media"}},"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":[]}],"tags":["VideoV1Composition"],"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":[]}],"tags":["VideoV1Composition"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","status","resolution","format"],"dependentProperties":{"media":{"mapping":{"composition_sid":"sid"},"resource_url":"/v1/Compositions/{composition_sid}/Media"}},"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":[]}],"tags":["VideoV1RecordingSettings"],"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](https://tools.ietf.org/html/rfc3986#section-2).","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":[]}],"tags":["VideoV1RecordingSettings"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"className":"recording_settings","defaultOutputProperties":["friendly_name","aws_storage_enabled","encryption_enabled"],"mountName":"recording_settings","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":{"$ref":"#/components/schemas/recording_enum_status","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":{"$ref":"#/components/schemas/recording_enum_type","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"}},{"description":"The page index. This value is simply for client state.","in":"query","name":"Page","schema":{"minimum":0,"type":"integer"}},{"description":"The page token. This is provided by the API.","in":"query","name":"PageToken","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"meta":{"properties":{"first_page_url":{"format":"uri","type":"string"},"key":{"type":"string"},"next_page_url":{"format":"uri","nullable":true,"type":"string"},"page":{"type":"integer"},"page_size":{"type":"integer"},"previous_page_url":{"format":"uri","nullable":true,"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":[]}],"tags":["VideoV1Recording"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","date_created","status","type","duration","codec"],"dependentProperties":{"media":{"mapping":{"recording_sid":"sid"},"resource_url":"/v1/Recordings/{recording_sid}/Media"}},"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":[]}],"tags":["VideoV1Recording"],"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":[]}],"tags":["VideoV1Recording"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","date_created","status","type","duration","codec"],"dependentProperties":{"media":{"mapping":{"recording_sid":"sid"},"resource_url":"/v1/Recordings/{recording_sid}/Media"}},"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":{"$ref":"#/components/schemas/room_enum_room_status","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"}},{"description":"The page index. This value is simply for client state.","in":"query","name":"Page","schema":{"minimum":0,"type":"integer"}},{"description":"The page token. This is provided by the API.","in":"query","name":"PageToken","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"meta":{"properties":{"first_page_url":{"format":"uri","type":"string"},"key":{"type":"string"},"next_page_url":{"format":"uri","nullable":true,"type":"string"},"page":{"type":"integer"},"page_size":{"type":"integer"},"previous_page_url":{"format":"uri","nullable":true,"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":[]}],"tags":["VideoV1Room"],"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"},"LargeRoom":{"description":"When set to true, indicated that this is the large room.","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-addresses#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"},"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"],"format":"http-method","type":"string"},"Type":{"$ref":"#/components/schemas/room_enum_room_type","description":"The type of room. Can be: `go`, `peer-to-peer`, `group-small`, or `group`. The default value is `group`.","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":{"$ref":"#/components/schemas/room_enum_video_codec","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":[]}],"tags":["VideoV1Room"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","unique_name","status"],"dependentProperties":{"participants":{"mapping":{"room_sid":"sid"},"resource_url":"/v1/Rooms/{room_sid}/Participants"},"recording_rules":{"mapping":{"room_sid":"sid"},"resource_url":"/v1/Rooms/{room_sid}/RecordingRules"},"recordings":{"mapping":{"room_sid":"sid"},"resource_url":"/v1/Rooms/{room_sid}/Recordings"}},"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":{"$ref":"#/components/schemas/room_participant_enum_status","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"}},{"description":"The page index. This value is simply for client state.","in":"query","name":"Page","schema":{"minimum":0,"type":"integer"}},{"description":"The page token. This is provided by the API.","in":"query","name":"PageToken","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"meta":{"properties":{"first_page_url":{"format":"uri","type":"string"},"key":{"type":"string"},"next_page_url":{"format":"uri","nullable":true,"type":"string"},"page":{"type":"integer"},"page_size":{"type":"integer"},"previous_page_url":{"format":"uri","nullable":true,"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":[]}],"tags":["VideoV1Participant"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","identity","status"],"dependentProperties":{"anonymize":{"mapping":{"room_sid":"room_sid","sid":"sid"},"resource_url":"/v1/Rooms/{room_sid}/Participants/{sid}/Anonymize"},"published_tracks":{"mapping":{"participant_sid":"sid","room_sid":"room_sid"},"resource_url":"/v1/Rooms/{room_sid}/Participants/{participant_sid}/PublishedTracks"},"subscribe_rules":{"mapping":{"participant_sid":"sid","room_sid":"room_sid"},"resource_url":"/v1/Rooms/{room_sid}/Participants/{participant_sid}/SubscribeRules"},"subscribed_tracks":{"mapping":{"participant_sid":"sid","room_sid":"room_sid"},"resource_url":"/v1/Rooms/{room_sid}/Participants/{participant_sid}/SubscribedTracks"}},"parent":"/Rooms/{Sid}","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"}},{"description":"The page index. This value is simply for client state.","in":"query","name":"Page","schema":{"minimum":0,"type":"integer"}},{"description":"The page token. This is provided by the API.","in":"query","name":"PageToken","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"meta":{"properties":{"first_page_url":{"format":"uri","type":"string"},"key":{"type":"string"},"next_page_url":{"format":"uri","nullable":true,"type":"string"},"page":{"type":"integer"},"page_size":{"type":"integer"},"previous_page_url":{"format":"uri","nullable":true,"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":[]}],"tags":["VideoV1PublishedTrack"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","name","enabled","kind"],"parent":"/Rooms/{RoomSid}/Participants/{Sid}","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":[]}],"tags":["VideoV1PublishedTrack"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","name","enabled","kind"],"parent":"/Rooms/{RoomSid}/Participants/{Sid}","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":[]}],"tags":["VideoV1SubscribeRules"],"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."}},"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":[]}],"tags":["VideoV1SubscribeRules"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"className":"subscribe_rules","defaultOutputProperties":["participant_sid","room_sid","rules"],"parent":"/Rooms/{RoomSid}/Participants/{Sid}","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"}},{"description":"The page index. This value is simply for client state.","in":"query","name":"Page","schema":{"minimum":0,"type":"integer"}},{"description":"The page token. This is provided by the API.","in":"query","name":"PageToken","schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"meta":{"properties":{"first_page_url":{"format":"uri","type":"string"},"key":{"type":"string"},"next_page_url":{"format":"uri","nullable":true,"type":"string"},"page":{"type":"integer"},"page_size":{"type":"integer"},"previous_page_url":{"format":"uri","nullable":true,"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":[]}],"tags":["VideoV1SubscribedTrack"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","name","enabled","kind"],"parent":"/Rooms/{RoomSid}/Participants/{Sid}","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":[]}],"tags":["VideoV1SubscribedTrack"],"x-maturity":["GA"]},"servers":[{"url":"https://video.twilio.com"}],"x-twilio":{"defaultOutputProperties":["sid","name","enabled","kind"],"parent":"/Rooms/{RoomSid}/Participants/{Sid}","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","