backend: Update authentication in OpenAPI specification, add documentation for refresh token endpoint and refactor code
This commit is contained in:
parent
194b7fb876
commit
fb0bf4b1e3
@ -33,6 +33,7 @@ paths:
|
|||||||
- OpenVidu Meet - Room
|
- OpenVidu Meet - Room
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
requestBody:
|
requestBody:
|
||||||
description: Room configuration options
|
description: Room configuration options
|
||||||
content:
|
content:
|
||||||
@ -73,13 +74,21 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/OpenViduMeetRoom'
|
$ref: '#/components/schemas/OpenViduMeetRoom'
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'422':
|
'422':
|
||||||
description: Unprocessable Entity — The request body is invalid
|
description: Unprocessable Entity — The request body is invalid
|
||||||
content:
|
content:
|
||||||
@ -139,6 +148,7 @@ paths:
|
|||||||
- OpenVidu Meet - Room
|
- OpenVidu Meet - Room
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: fields
|
- name: fields
|
||||||
in: query
|
in: query
|
||||||
@ -173,7 +183,7 @@ paths:
|
|||||||
rooms:
|
rooms:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/OpenViduMeetRoom'
|
$ref: '#/components/schemas/OpenViduMeetRoom'
|
||||||
pagination:
|
pagination:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -188,13 +198,21 @@ paths:
|
|||||||
description: Current page number.
|
description: Current page number.
|
||||||
|
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error
|
description: Internal server error
|
||||||
content:
|
content:
|
||||||
@ -216,6 +234,8 @@ paths:
|
|||||||
- OpenVidu Meet - Room
|
- OpenVidu Meet - Room
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
|
- participantTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: roomName
|
- name: roomName
|
||||||
in: path
|
in: path
|
||||||
@ -239,13 +259,21 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/OpenViduMeetRoom'
|
$ref: '#/components/schemas/OpenViduMeetRoom'
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access/participant token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The participant authenticated with the access token is not moderator of the room
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Room not found
|
description: Room not found
|
||||||
content:
|
content:
|
||||||
@ -273,6 +301,7 @@ paths:
|
|||||||
- OpenVidu Meet - Room
|
- OpenVidu Meet - Room
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: roomName
|
- name: roomName
|
||||||
in: path
|
in: path
|
||||||
@ -304,13 +333,21 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/OpenViduMeetRoom'
|
$ref: '#/components/schemas/OpenViduMeetRoom'
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Room not found
|
description: Room not found
|
||||||
content:
|
content:
|
||||||
@ -353,6 +390,7 @@ paths:
|
|||||||
- OpenVidu Meet - Room
|
- OpenVidu Meet - Room
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: roomName
|
- name: roomName
|
||||||
in: path
|
in: path
|
||||||
@ -364,13 +402,21 @@ paths:
|
|||||||
'204':
|
'204':
|
||||||
description: Successfully deleted the OpenVidu Meet room
|
description: Successfully deleted the OpenVidu Meet room
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Room not found
|
description: Room not found
|
||||||
content:
|
content:
|
||||||
@ -398,7 +444,7 @@ paths:
|
|||||||
tags:
|
tags:
|
||||||
- OpenVidu Meet - Recordings
|
- OpenVidu Meet - Recordings
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- participantTokenCookie: []
|
||||||
requestBody:
|
requestBody:
|
||||||
description: Recording details
|
description: Recording details
|
||||||
content:
|
content:
|
||||||
@ -413,7 +459,6 @@ paths:
|
|||||||
example: 'room-123'
|
example: 'room-123'
|
||||||
description: >
|
description: >
|
||||||
The unique identifier of the room to record.
|
The unique identifier of the room to record.
|
||||||
|
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successfully created the OpenVidu Meet recording
|
description: Successfully created the OpenVidu Meet recording
|
||||||
@ -422,13 +467,21 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/MeetRecordingStart'
|
$ref: '#/components/schemas/MeetRecordingStart'
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The participant access token is missing or invalid
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — Recording is not enabled for the room or the participant authenticated with the access token has not enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Room not found
|
description: Room not found
|
||||||
content:
|
content:
|
||||||
@ -496,6 +549,7 @@ paths:
|
|||||||
- OpenVidu Meet - Recordings
|
- OpenVidu Meet - Recordings
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
# - name: status
|
# - name: status
|
||||||
# in: query
|
# in: query
|
||||||
@ -550,7 +604,7 @@ paths:
|
|||||||
recordings:
|
recordings:
|
||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
$ref: '#/components/schemas/MeetRecording'
|
$ref: '#/components/schemas/MeetRecording'
|
||||||
pagination:
|
pagination:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
@ -562,13 +616,21 @@ paths:
|
|||||||
description: The token to retrieve the next page of recordings.
|
description: The token to retrieve the next page of recordings.
|
||||||
|
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error
|
description: Internal server error
|
||||||
content:
|
content:
|
||||||
@ -587,6 +649,7 @@ paths:
|
|||||||
- OpenVidu Meet - Recordings
|
- OpenVidu Meet - Recordings
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: recordingIds
|
- name: recordingIds
|
||||||
in: query
|
in: query
|
||||||
@ -627,13 +690,21 @@ paths:
|
|||||||
description: A message explaining why the deletion failed.
|
description: A message explaining why the deletion failed.
|
||||||
example: 'Recording not found'
|
example: 'Recording not found'
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'422':
|
'422':
|
||||||
description: Unprocessable Entity — The request body is invalid
|
description: Unprocessable Entity — The request body is invalid
|
||||||
content:
|
content:
|
||||||
@ -683,7 +754,7 @@ paths:
|
|||||||
tags:
|
tags:
|
||||||
- OpenVidu Meet - Recordings
|
- OpenVidu Meet - Recordings
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- participantTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: recordingId
|
- name: recordingId
|
||||||
in: path
|
in: path
|
||||||
@ -706,13 +777,21 @@ paths:
|
|||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/MeetRecording'
|
$ref: '#/components/schemas/MeetRecording'
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The participant access token is missing or invalid
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — Recording is not enabled for the room or the participant authenticated with the access token has not enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Recording not found
|
description: Recording not found
|
||||||
content:
|
content:
|
||||||
@ -749,6 +828,7 @@ paths:
|
|||||||
- OpenVidu Meet - Recordings
|
- OpenVidu Meet - Recordings
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: recordingId
|
- name: recordingId
|
||||||
in: path
|
in: path
|
||||||
@ -766,13 +846,21 @@ paths:
|
|||||||
$ref: '#/components/schemas/MeetRecording'
|
$ref: '#/components/schemas/MeetRecording'
|
||||||
|
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Recording not found — The recording with the specified ID was not found
|
description: Recording not found — The recording with the specified ID was not found
|
||||||
content:
|
content:
|
||||||
@ -801,6 +889,7 @@ paths:
|
|||||||
- OpenVidu Meet - Recordings
|
- OpenVidu Meet - Recordings
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- apiKeyInHeader: []
|
||||||
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: recordingId
|
- name: recordingId
|
||||||
in: path
|
in: path
|
||||||
@ -813,13 +902,21 @@ paths:
|
|||||||
'204':
|
'204':
|
||||||
description: Recording successfully deleted. No content is returned.
|
description: Recording successfully deleted. No content is returned.
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The API key is missing or invalid, or the access token is missing or invalid when using cookie-based authentication
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Recording not found
|
description: Recording not found
|
||||||
content:
|
content:
|
||||||
@ -855,12 +952,18 @@ components:
|
|||||||
in: header
|
in: header
|
||||||
description: >
|
description: >
|
||||||
The API key to authenticate the request. This key is required to access the OpenVidu Meet API.
|
The API key to authenticate the request. This key is required to access the OpenVidu Meet API.
|
||||||
jwtInCookie:
|
accessTokenCookie:
|
||||||
type: apiKey
|
type: apiKey
|
||||||
name: OvMeetAccessToken
|
name: OvMeetAccessToken
|
||||||
in: cookie
|
in: cookie
|
||||||
description: >
|
description: >
|
||||||
The JWT token to authenticate the request in case of consuming the API from the OpenVidu Meet admin console.
|
The JWT token to authenticate the request in case of consuming the API from the OpenVidu Meet frontend.
|
||||||
|
participantTokenCookie:
|
||||||
|
type: apiKey
|
||||||
|
name: OvMeetParticipantToken
|
||||||
|
in: cookie
|
||||||
|
description: >
|
||||||
|
The JWT token to authenticate the participant when entering the room.
|
||||||
schemas:
|
schemas:
|
||||||
OpenViduMeetRoomOptions:
|
OpenViduMeetRoomOptions:
|
||||||
type: object
|
type: object
|
||||||
@ -988,75 +1091,76 @@ components:
|
|||||||
The URL for the viewer to join the room. The viewer has read-only permissions to watch the room
|
The URL for the viewer to join the room. The viewer has read-only permissions to watch the room
|
||||||
and participants.
|
and participants.
|
||||||
MeetRecordingBase:
|
MeetRecordingBase:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
recordingId:
|
recordingId:
|
||||||
type: string
|
type: string
|
||||||
example: 'room-123--EG_XYZ--XX445'
|
example: 'room-123--EG_XYZ--XX445'
|
||||||
description: The unique identifier of the recording.
|
description: The unique identifier of the recording.
|
||||||
roomId:
|
roomId:
|
||||||
type: string
|
type: string
|
||||||
example: 'room-123'
|
example: 'room-123'
|
||||||
description: The ID of the room where the recording was made.
|
description: The ID of the room where the recording was made.
|
||||||
# outputMode:
|
# outputMode:
|
||||||
# type: string
|
# type: string
|
||||||
# example: 'COMPOSED'
|
# example: 'COMPOSED'
|
||||||
# description: >
|
# description: >
|
||||||
# The output mode of the recording. Possible value: "COMPOSED".
|
# The output mode of the recording. Possible value: "COMPOSED".
|
||||||
status:
|
status:
|
||||||
type: string
|
type: string
|
||||||
example: 'ACTIVE'
|
example: 'ACTIVE'
|
||||||
description: >
|
description: >
|
||||||
The status of the recording.
|
The status of the recording.
|
||||||
Possible values:
|
Possible values:
|
||||||
- STARTING
|
- STARTING
|
||||||
- ACTIVE
|
- ACTIVE
|
||||||
- ENDING
|
- ENDING
|
||||||
- COMPLETE
|
- COMPLETE
|
||||||
- FAILED
|
- FAILED
|
||||||
- ABORTED
|
- ABORTED
|
||||||
- LIMITED_REACHED
|
- LIMITED_REACHED
|
||||||
filename:
|
filename:
|
||||||
type: string
|
type: string
|
||||||
example: 'room-123--XX445.mp4'
|
example: 'room-123--XX445.mp4'
|
||||||
description: The name of the recording file.
|
description: The name of the recording file.
|
||||||
startDate:
|
startDate:
|
||||||
type: number
|
type: number
|
||||||
example: 1620000000000
|
example: 1620000000000
|
||||||
description: The date when the recording was started (milliseconds since the Unix epoch).
|
description: The date when the recording was started (milliseconds since the Unix epoch).
|
||||||
|
|
||||||
MeetRecording:
|
MeetRecording:
|
||||||
allOf:
|
allOf:
|
||||||
- $ref: '#/components/schemas/MeetRecordingBase'
|
- $ref: '#/components/schemas/MeetRecordingBase'
|
||||||
- type: object
|
- type: object
|
||||||
properties:
|
properties:
|
||||||
endDate:
|
endDate:
|
||||||
type: number
|
type: number
|
||||||
example: 1620000000000
|
example: 1620000000000
|
||||||
description: The date when the recording was stopped (milliseconds since the Unix epoch).
|
description: The date when the recording was stopped (milliseconds since the Unix epoch).
|
||||||
duration:
|
duration:
|
||||||
type: number
|
type: number
|
||||||
example: 3600
|
example: 3600
|
||||||
description: The duration of the recording in seconds.
|
description: The duration of the recording in seconds.
|
||||||
size:
|
size:
|
||||||
type: number
|
type: number
|
||||||
example: 1024
|
example: 1024
|
||||||
description: The size of the recording file in bytes.
|
description: The size of the recording file in bytes.
|
||||||
errorCode:
|
errorCode:
|
||||||
type: number
|
type: number
|
||||||
example: 100
|
example: 100
|
||||||
description: The error code of the recording.
|
description: The error code of the recording.
|
||||||
error:
|
error:
|
||||||
type: string
|
type: string
|
||||||
description: The error message of the recording.
|
description: The error message of the recording.
|
||||||
nullable: true
|
nullable: true
|
||||||
details:
|
details:
|
||||||
type: string
|
type: string
|
||||||
example: 'Stopped using API'
|
example: 'Stopped using API'
|
||||||
description: Additional details about the recording.
|
description: Additional details about the recording.
|
||||||
|
|
||||||
MeetRecordingStart:
|
MeetRecordingStart:
|
||||||
$ref: '#/components/schemas/MeetRecordingBase'
|
$ref: '#/components/schemas/MeetRecordingBase'
|
||||||
|
|
||||||
Error:
|
Error:
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
|
|||||||
@ -12,13 +12,14 @@ info:
|
|||||||
url: https://openvidu.io/support/
|
url: https://openvidu.io/support/
|
||||||
|
|
||||||
servers:
|
servers:
|
||||||
- url: http://localhost:6080/meet/api/v1
|
- url: http://localhost:6080/meet/internal-api/v1
|
||||||
description: Development server
|
description: Development server
|
||||||
tags:
|
tags:
|
||||||
- name: Internal API - Participant
|
- name: Internal API - Participant
|
||||||
description: Operations related to managing participants in OpenVidu Meet rooms
|
description: Operations related to managing participants in OpenVidu Meet rooms
|
||||||
- name: Internal API - Recordings
|
- name: Internal API - Recordings
|
||||||
description: Operations related to managing OpenVidu Meet recordings
|
description: Operations related to managing OpenVidu Meet recordings
|
||||||
|
|
||||||
paths:
|
paths:
|
||||||
/recordings/{recordingId}/stream:
|
/recordings/{recordingId}/stream:
|
||||||
get:
|
get:
|
||||||
@ -31,7 +32,7 @@ paths:
|
|||||||
tags:
|
tags:
|
||||||
- Internal API - Recordings
|
- Internal API - Recordings
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- accessTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: recordingId
|
- name: recordingId
|
||||||
in: path
|
in: path
|
||||||
@ -94,13 +95,21 @@ paths:
|
|||||||
code: 400
|
code: 400
|
||||||
message: 'Invalid Range header'
|
message: 'Invalid Range header'
|
||||||
'401':
|
'401':
|
||||||
description: Unauthorized — The API key is missing or invalid
|
description: Unauthorized — The access token is missing or invalid
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/Error'
|
$ref: '#/components/schemas/Error'
|
||||||
example:
|
example:
|
||||||
message: 'Unauthorized'
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Recording not found
|
description: Recording not found
|
||||||
content:
|
content:
|
||||||
@ -136,35 +145,25 @@ paths:
|
|||||||
Generates a token for a participant to join an OpenVidu Meet room.
|
Generates a token for a participant to join an OpenVidu Meet room.
|
||||||
tags:
|
tags:
|
||||||
- Internal API - Participant
|
- Internal API - Participant
|
||||||
|
security:
|
||||||
|
- accessTokenCookie: []
|
||||||
requestBody:
|
requestBody:
|
||||||
description: Participant details
|
description: Participant details
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
type: object
|
$ref: '#/components/schemas/TokenOptions'
|
||||||
required:
|
|
||||||
- roomName
|
|
||||||
- participantName
|
|
||||||
- secret
|
|
||||||
properties:
|
|
||||||
roomName:
|
|
||||||
type: string
|
|
||||||
example: 'OpenVidu-123456'
|
|
||||||
description: >
|
|
||||||
The name of the room to join.
|
|
||||||
participantName:
|
|
||||||
type: string
|
|
||||||
example: 'Alice'
|
|
||||||
description: >
|
|
||||||
The name of the participant.
|
|
||||||
secret:
|
|
||||||
type: string
|
|
||||||
example: 'abc123456'
|
|
||||||
description: >
|
|
||||||
The secret token from the room Url
|
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: Successfully generated the participant token
|
description: Successfully generated the participant token
|
||||||
|
headers:
|
||||||
|
Set-Cookie:
|
||||||
|
description: >
|
||||||
|
The cookie containing the participant token.
|
||||||
|
This cookie is used to authenticate the participant in the room.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 'OvMeetParticipantToken=token_123456; Path=/; HttpOnly; SameSite=Strict'
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
@ -175,19 +174,118 @@ paths:
|
|||||||
example: 'token_123456'
|
example: 'token_123456'
|
||||||
description: >
|
description: >
|
||||||
The token to authenticate the participant.
|
The token to authenticate the participant.
|
||||||
|
'401':
|
||||||
|
description: Unauthorized — The access token is missing or invalid when authentication is required
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions when authentication is required
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Room not found
|
description: Room not found
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
name: 'Room Error'
|
||||||
|
message: 'The room does not exist'
|
||||||
|
'409':
|
||||||
|
description: Conflict — The participant already exists in the room
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
name: 'Participant Error'
|
||||||
|
message: 'Participant already exists in the room'
|
||||||
|
'500':
|
||||||
|
description: Internal server error
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Internal server error'
|
||||||
|
/participants/token/refresh:
|
||||||
|
post:
|
||||||
|
operationId: refreshParticipantToken
|
||||||
|
summary: Refresh a token for a participant
|
||||||
|
description: >
|
||||||
|
Refresh a token for a participant in an OpenVidu Meet room.
|
||||||
|
tags:
|
||||||
|
- Internal API - Participant
|
||||||
|
security:
|
||||||
|
- accessTokenCookie: []
|
||||||
|
requestBody:
|
||||||
|
description: Participant details
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/TokenOptions'
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: Successfully refreshed the participant token
|
||||||
|
headers:
|
||||||
|
Set-Cookie:
|
||||||
|
description: >
|
||||||
|
The cookie containing the participant token.
|
||||||
|
This cookie is used to authenticate the participant in the room.
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
example: 'OvMeetParticipantToken=token_123456; Path=/; HttpOnly; SameSite=Strict'
|
||||||
content:
|
content:
|
||||||
application/json:
|
application/json:
|
||||||
schema:
|
schema:
|
||||||
type: object
|
type: object
|
||||||
properties:
|
properties:
|
||||||
name:
|
token:
|
||||||
type: string
|
type: string
|
||||||
example: 'Room not found'
|
example: 'token_123456'
|
||||||
message:
|
description: >
|
||||||
type: string
|
The token to authenticate the participant.
|
||||||
example: 'The room does not exist'
|
'401':
|
||||||
|
description: Unauthorized — The access token is missing or invalid when authentication is required
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The user authenticated with the access token does not have enough permissions when authentication is required
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
|
'404':
|
||||||
|
description: Room or participant not found
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
name: 'Participant Error'
|
||||||
|
message: 'Participant not found in the room'
|
||||||
|
'409':
|
||||||
|
description: Conflict — Current token is still valid
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Participant token is still valid'
|
||||||
'500':
|
'500':
|
||||||
description: Internal server error
|
description: Internal server error
|
||||||
content:
|
content:
|
||||||
@ -205,7 +303,7 @@ paths:
|
|||||||
tags:
|
tags:
|
||||||
- Internal API - Participant
|
- Internal API - Participant
|
||||||
security:
|
security:
|
||||||
- apiKeyInHeader: []
|
- participantTokenCookie: []
|
||||||
parameters:
|
parameters:
|
||||||
- name: participantName
|
- name: participantName
|
||||||
in: path
|
in: path
|
||||||
@ -222,6 +320,22 @@ paths:
|
|||||||
responses:
|
responses:
|
||||||
'204':
|
'204':
|
||||||
description: Successfully disconnect the participant
|
description: Successfully disconnect the participant
|
||||||
|
'401':
|
||||||
|
description: Unauthorized — The participant access token is missing or invalid
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Unauthorized'
|
||||||
|
'403':
|
||||||
|
description: Forbidden — The participant authenticated with the access token is not moderator of the room
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/Error'
|
||||||
|
example:
|
||||||
|
message: 'Insufficient permissions to access this resource'
|
||||||
'404':
|
'404':
|
||||||
description: Participant not found
|
description: Participant not found
|
||||||
content:
|
content:
|
||||||
@ -243,214 +357,119 @@ paths:
|
|||||||
|
|
||||||
components:
|
components:
|
||||||
securitySchemes:
|
securitySchemes:
|
||||||
apiKeyInHeader:
|
accessTokenCookie:
|
||||||
type: apiKey
|
|
||||||
name: X-API-KEY
|
|
||||||
in: header
|
|
||||||
description: >
|
|
||||||
The API key to authenticate the request. This key is required to access the OpenVidu Meet API.
|
|
||||||
jwtInCookie:
|
|
||||||
type: apiKey
|
type: apiKey
|
||||||
name: OvMeetAccessToken
|
name: OvMeetAccessToken
|
||||||
in: cookie
|
in: cookie
|
||||||
description: >
|
description: >
|
||||||
The JWT token to authenticate the request in case of consuming the API from the OpenVidu Meet admin console.
|
The JWT token to authenticate the request in case of consuming the API from the OpenVidu Meet frontend.
|
||||||
|
refreshTokenCookie:
|
||||||
|
type: apiKey
|
||||||
|
name: OvMeetRefreshToken
|
||||||
|
in: cookie
|
||||||
|
description: >
|
||||||
|
The JWT token to refresh the access token in case of consuming the API from the OpenVidu Meet frontend.
|
||||||
|
participantTokenCookie:
|
||||||
|
type: apiKey
|
||||||
|
name: OvMeetParticipantToken
|
||||||
|
in: cookie
|
||||||
|
description: >
|
||||||
|
The JWT token to authenticate the participant when entering the room.
|
||||||
schemas:
|
schemas:
|
||||||
OpenViduMeetRoomOptions:
|
MeetRecordingBase:
|
||||||
type: object
|
type: object
|
||||||
required:
|
|
||||||
- expirationDate
|
|
||||||
properties:
|
properties:
|
||||||
expirationDate:
|
recordingId:
|
||||||
|
type: string
|
||||||
|
example: 'room-123--EG_XYZ--XX445'
|
||||||
|
description: The unique identifier of the recording.
|
||||||
|
roomId:
|
||||||
|
type: string
|
||||||
|
example: 'room-123'
|
||||||
|
description: The ID of the room where the recording was made.
|
||||||
|
# outputMode:
|
||||||
|
# type: string
|
||||||
|
# example: 'COMPOSED'
|
||||||
|
# description: >
|
||||||
|
# The output mode of the recording. Possible value: "COMPOSED".
|
||||||
|
status:
|
||||||
|
type: string
|
||||||
|
example: 'ACTIVE'
|
||||||
|
description: >
|
||||||
|
The status of the recording.
|
||||||
|
Possible values:
|
||||||
|
- STARTING
|
||||||
|
- ACTIVE
|
||||||
|
- ENDING
|
||||||
|
- COMPLETE
|
||||||
|
- FAILED
|
||||||
|
- ABORTED
|
||||||
|
- LIMITED_REACHED
|
||||||
|
filename:
|
||||||
|
type: string
|
||||||
|
example: 'room-123--XX445.mp4'
|
||||||
|
description: The name of the recording file.
|
||||||
|
startDate:
|
||||||
type: number
|
type: number
|
||||||
example: 1620000000000
|
example: 1620000000000
|
||||||
description: >
|
description: The date when the recording was started (milliseconds since the Unix epoch).
|
||||||
The expiration date of the room in milliseconds since the Unix epoch.
|
|
||||||
After this date, the room will be closed and no new participants will be allowed to join.
|
|
||||||
roomNamePrefix:
|
|
||||||
type: string
|
|
||||||
example: 'OpenVidu'
|
|
||||||
description: >
|
|
||||||
A prefix to be used for the room name. The room name will be generated by appending a random
|
|
||||||
alphanumeric string to this prefix.
|
|
||||||
maxParticipants:
|
|
||||||
type: integer
|
|
||||||
example: 10
|
|
||||||
description: >
|
|
||||||
The maximum number of participants allowed in the room. If the number of participants exceeds
|
|
||||||
this limit, new participants will not be allowed to join.
|
|
||||||
preferences:
|
|
||||||
$ref: '#/components/schemas/RoomPreferences'
|
|
||||||
description: >
|
|
||||||
The preferences for the room.
|
|
||||||
RoomPreferences:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
chatPreferences:
|
|
||||||
$ref: '#/components/schemas/ChatPreferences'
|
|
||||||
description: >
|
|
||||||
Preferences for the chat feature in the room.
|
|
||||||
|
|
||||||
recordingPreferences:
|
MeetRecording:
|
||||||
$ref: '#/components/schemas/RecordingPreferences'
|
allOf:
|
||||||
description: >
|
- $ref: '#/components/schemas/MeetRecordingBase'
|
||||||
Preferences for recording the room.
|
- type: object
|
||||||
|
properties:
|
||||||
|
endDate:
|
||||||
|
type: number
|
||||||
|
example: 1620000000000
|
||||||
|
description: The date when the recording was stopped (milliseconds since the Unix epoch).
|
||||||
|
duration:
|
||||||
|
type: number
|
||||||
|
example: 3600
|
||||||
|
description: The duration of the recording in seconds.
|
||||||
|
size:
|
||||||
|
type: number
|
||||||
|
example: 1024
|
||||||
|
description: The size of the recording file in bytes.
|
||||||
|
errorCode:
|
||||||
|
type: number
|
||||||
|
example: 100
|
||||||
|
description: The error code of the recording.
|
||||||
|
error:
|
||||||
|
type: string
|
||||||
|
description: The error message of the recording.
|
||||||
|
nullable: true
|
||||||
|
details:
|
||||||
|
type: string
|
||||||
|
example: 'Stopped using API'
|
||||||
|
description: Additional details about the recording.
|
||||||
|
|
||||||
virtualBackgroundPreferences:
|
MeetRecordingStart:
|
||||||
$ref: '#/components/schemas/VirtualBackgroundPreferences'
|
$ref: '#/components/schemas/MeetRecordingBase'
|
||||||
description: >
|
|
||||||
Preferences for virtual background in the room.
|
TokenOptions:
|
||||||
ChatPreferences:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
enabled:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
example: true
|
|
||||||
description: >
|
|
||||||
If true, the room will be allowed to send and receive chat messages.
|
|
||||||
RecordingPreferences:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
enabled:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
example: true
|
|
||||||
description: >
|
|
||||||
If true, the room will be allowed to record the video of the participants.
|
|
||||||
VirtualBackgroundPreferences:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
enabled:
|
|
||||||
type: boolean
|
|
||||||
default: true
|
|
||||||
example: true
|
|
||||||
description: >
|
|
||||||
If true, the room will be allowed to use virtual background.
|
|
||||||
OpenViduMeetRoom:
|
|
||||||
type: object
|
type: object
|
||||||
|
required:
|
||||||
|
- roomName
|
||||||
|
- participantName
|
||||||
|
- secret
|
||||||
properties:
|
properties:
|
||||||
roomName:
|
roomName:
|
||||||
type: string
|
type: string
|
||||||
example: 'OpenVidu-123456'
|
example: 'OpenVidu-123456'
|
||||||
description: >
|
description: >
|
||||||
The name of the room. This name is generated by appending a random alphanumeric string to the
|
The name of the room to join.
|
||||||
room name prefix specified in the request.
|
participantName:
|
||||||
creationDate:
|
|
||||||
type: number
|
|
||||||
example: 1620000000000
|
|
||||||
description: >
|
|
||||||
The creation date of the room in milliseconds since the Unix epoch.
|
|
||||||
expirationDate:
|
|
||||||
type: number
|
|
||||||
example: 1620000000000
|
|
||||||
description: >
|
|
||||||
The expiration date of the room in milliseconds since the Unix epoch.
|
|
||||||
After this date, the room will be closed and no new participants will be allowed to join.
|
|
||||||
roomNamePrefix:
|
|
||||||
type: string
|
type: string
|
||||||
example: 'OpenVidu'
|
example: 'Alice'
|
||||||
description: >
|
description: >
|
||||||
The prefix used for the room name. The room name is generated by appending a random alphanumeric
|
The name of the participant.
|
||||||
string to this prefix.
|
secret:
|
||||||
preferences:
|
|
||||||
$ref: '#/components/schemas/RoomPreferences'
|
|
||||||
description: >
|
|
||||||
The preferences for the room.
|
|
||||||
maxParticipants:
|
|
||||||
type: integer
|
|
||||||
example: 10
|
|
||||||
description: >
|
|
||||||
The maximum number of participants allowed in the room. If the number of participants exceeds
|
|
||||||
this limit, new participants will not be allowed to join.
|
|
||||||
moderatorURL:
|
|
||||||
type: string
|
type: string
|
||||||
example: 'http://localhost:6080/meet/OpenVidu-123456/?secret=tok_123456'
|
example: 'abc123456'
|
||||||
description: >
|
description: >
|
||||||
The URL for the moderator to join the room. The moderator has special permissions to manage the
|
The secret token from the room Url
|
||||||
room and participants.
|
|
||||||
publisherURL:
|
|
||||||
type: string
|
|
||||||
example: 'http://localhost:6080/meet/OpenVidu-123456/?secret=tok_123456'
|
|
||||||
description: >
|
|
||||||
The URL for the publisher to join the room. The publisher has permissions to publish audio and
|
|
||||||
video streams to the room.
|
|
||||||
viewerURL:
|
|
||||||
type: string
|
|
||||||
example: 'http://localhost:6080/meet/OpenVidu-123456/?secret=tok_123456'
|
|
||||||
description: >
|
|
||||||
The URL for the viewer to join the room. The viewer has read-only permissions to watch the room
|
|
||||||
and participants.
|
|
||||||
MeetRecordingBase:
|
|
||||||
type: object
|
|
||||||
properties:
|
|
||||||
recordingId:
|
|
||||||
type: string
|
|
||||||
example: 'room-123--EG_XYZ--XX445'
|
|
||||||
description: The unique identifier of the recording.
|
|
||||||
roomId:
|
|
||||||
type: string
|
|
||||||
example: 'room-123'
|
|
||||||
description: The ID of the room where the recording was made.
|
|
||||||
# outputMode:
|
|
||||||
# type: string
|
|
||||||
# example: 'COMPOSED'
|
|
||||||
# description: >
|
|
||||||
# The output mode of the recording. Possible value: "COMPOSED".
|
|
||||||
status:
|
|
||||||
type: string
|
|
||||||
example: 'ACTIVE'
|
|
||||||
description: >
|
|
||||||
The status of the recording.
|
|
||||||
Possible values:
|
|
||||||
- STARTING
|
|
||||||
- ACTIVE
|
|
||||||
- ENDING
|
|
||||||
- COMPLETE
|
|
||||||
- FAILED
|
|
||||||
- ABORTED
|
|
||||||
- LIMITED_REACHED
|
|
||||||
filename:
|
|
||||||
type: string
|
|
||||||
example: 'room-123--XX445.mp4'
|
|
||||||
description: The name of the recording file.
|
|
||||||
startDate:
|
|
||||||
type: number
|
|
||||||
example: 1620000000000
|
|
||||||
description: The date when the recording was started (milliseconds since the Unix epoch).
|
|
||||||
|
|
||||||
MeetRecording:
|
|
||||||
allOf:
|
|
||||||
- $ref: '#/components/schemas/MeetRecordingBase'
|
|
||||||
- type: object
|
|
||||||
properties:
|
|
||||||
endDate:
|
|
||||||
type: number
|
|
||||||
example: 1620000000000
|
|
||||||
description: The date when the recording was stopped (milliseconds since the Unix epoch).
|
|
||||||
duration:
|
|
||||||
type: number
|
|
||||||
example: 3600
|
|
||||||
description: The duration of the recording in seconds.
|
|
||||||
size:
|
|
||||||
type: number
|
|
||||||
example: 1024
|
|
||||||
description: The size of the recording file in bytes.
|
|
||||||
errorCode:
|
|
||||||
type: number
|
|
||||||
example: 100
|
|
||||||
description: The error code of the recording.
|
|
||||||
error:
|
|
||||||
type: string
|
|
||||||
description: The error message of the recording.
|
|
||||||
nullable: true
|
|
||||||
details:
|
|
||||||
type: string
|
|
||||||
example: 'Stopped using API'
|
|
||||||
description: Additional details about the recording.
|
|
||||||
|
|
||||||
MeetRecordingStart:
|
|
||||||
$ref: '#/components/schemas/MeetRecordingBase'
|
|
||||||
Error:
|
Error:
|
||||||
type: object
|
type: object
|
||||||
required:
|
required:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user