backend: Update authentication in OpenAPI specification, add documentation for refresh token endpoint and refactor code

This commit is contained in:
juancarmore 2025-03-31 20:13:57 +02:00
parent 194b7fb876
commit fb0bf4b1e3
2 changed files with 421 additions and 298 deletions

View File

@ -33,6 +33,7 @@ paths:
- OpenVidu Meet - Room
security:
- apiKeyInHeader: []
- accessTokenCookie: []
requestBody:
description: Room configuration options
content:
@ -73,13 +74,21 @@ paths:
schema:
$ref: '#/components/schemas/OpenViduMeetRoom'
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'422':
description: Unprocessable Entity — The request body is invalid
content:
@ -139,6 +148,7 @@ paths:
- OpenVidu Meet - Room
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- name: fields
in: query
@ -173,7 +183,7 @@ paths:
rooms:
type: array
items:
$ref: '#/components/schemas/OpenViduMeetRoom'
$ref: '#/components/schemas/OpenViduMeetRoom'
pagination:
type: object
properties:
@ -188,13 +198,21 @@ paths:
description: Current page number.
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'500':
description: Internal server error
content:
@ -216,6 +234,8 @@ paths:
- OpenVidu Meet - Room
security:
- apiKeyInHeader: []
- accessTokenCookie: []
- participantTokenCookie: []
parameters:
- name: roomName
in: path
@ -239,13 +259,21 @@ paths:
schema:
$ref: '#/components/schemas/OpenViduMeetRoom'
'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:
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':
description: Room not found
content:
@ -273,6 +301,7 @@ paths:
- OpenVidu Meet - Room
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- name: roomName
in: path
@ -304,13 +333,21 @@ paths:
schema:
$ref: '#/components/schemas/OpenViduMeetRoom'
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'404':
description: Room not found
content:
@ -353,6 +390,7 @@ paths:
- OpenVidu Meet - Room
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- name: roomName
in: path
@ -364,13 +402,21 @@ paths:
'204':
description: Successfully deleted the OpenVidu Meet room
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'404':
description: Room not found
content:
@ -398,7 +444,7 @@ paths:
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- participantTokenCookie: []
requestBody:
description: Recording details
content:
@ -413,7 +459,6 @@ paths:
example: 'room-123'
description: >
The unique identifier of the room to record.
responses:
'200':
description: Successfully created the OpenVidu Meet recording
@ -422,13 +467,21 @@ paths:
schema:
$ref: '#/components/schemas/MeetRecordingStart'
'401':
description: Unauthorized — The API key is missing or invalid
description: Unauthorized — The participant access token is missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
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':
description: Room not found
content:
@ -496,6 +549,7 @@ paths:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
# - name: status
# in: query
@ -550,7 +604,7 @@ paths:
recordings:
type: array
items:
$ref: '#/components/schemas/MeetRecording'
$ref: '#/components/schemas/MeetRecording'
pagination:
type: object
properties:
@ -562,13 +616,21 @@ paths:
description: The token to retrieve the next page of recordings.
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'500':
description: Internal server error
content:
@ -587,6 +649,7 @@ paths:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- name: recordingIds
in: query
@ -627,13 +690,21 @@ paths:
description: A message explaining why the deletion failed.
example: 'Recording not found'
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'422':
description: Unprocessable Entity — The request body is invalid
content:
@ -683,7 +754,7 @@ paths:
tags:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- participantTokenCookie: []
parameters:
- name: recordingId
in: path
@ -706,13 +777,21 @@ paths:
schema:
$ref: '#/components/schemas/MeetRecording'
'401':
description: Unauthorized — The API key is missing or invalid
description: Unauthorized — The participant access token is missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
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':
description: Recording not found
content:
@ -749,6 +828,7 @@ paths:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- name: recordingId
in: path
@ -766,13 +846,21 @@ paths:
$ref: '#/components/schemas/MeetRecording'
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'404':
description: Recording not found — The recording with the specified ID was not found
content:
@ -801,6 +889,7 @@ paths:
- OpenVidu Meet - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- name: recordingId
in: path
@ -813,13 +902,21 @@ paths:
'204':
description: Recording successfully deleted. No content is returned.
'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:
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'404':
description: Recording not found
content:
@ -855,12 +952,18 @@ components:
in: header
description: >
The API key to authenticate the request. This key is required to access the OpenVidu Meet API.
jwtInCookie:
accessTokenCookie:
type: apiKey
name: OvMeetAccessToken
in: cookie
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:
OpenViduMeetRoomOptions:
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
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).
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.
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:
type: object
required:

View File

@ -12,13 +12,14 @@ info:
url: https://openvidu.io/support/
servers:
- url: http://localhost:6080/meet/api/v1
- url: http://localhost:6080/meet/internal-api/v1
description: Development server
tags:
- name: Internal API - Participant
description: Operations related to managing participants in OpenVidu Meet rooms
- name: Internal API - Recordings
description: Operations related to managing OpenVidu Meet recordings
paths:
/recordings/{recordingId}/stream:
get:
@ -31,7 +32,7 @@ paths:
tags:
- Internal API - Recordings
security:
- apiKeyInHeader: []
- accessTokenCookie: []
parameters:
- name: recordingId
in: path
@ -94,13 +95,21 @@ paths:
code: 400
message: 'Invalid Range header'
'401':
description: Unauthorized — The API key is missing or invalid
description: Unauthorized — The access token is missing or invalid
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
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
message: 'Insufficient permissions to access this resource'
'404':
description: Recording not found
content:
@ -136,35 +145,25 @@ paths:
Generates a token for a participant to join an OpenVidu Meet room.
tags:
- Internal API - Participant
security:
- accessTokenCookie: []
requestBody:
description: Participant details
content:
application/json:
schema:
type: object
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
$ref: '#/components/schemas/TokenOptions'
responses:
'200':
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:
application/json:
schema:
@ -175,19 +174,118 @@ paths:
example: 'token_123456'
description: >
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':
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:
application/json:
schema:
type: object
properties:
name:
token:
type: string
example: 'Room not found'
message:
type: string
example: 'The room does not exist'
example: 'token_123456'
description: >
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':
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':
description: Internal server error
content:
@ -205,7 +303,7 @@ paths:
tags:
- Internal API - Participant
security:
- apiKeyInHeader: []
- participantTokenCookie: []
parameters:
- name: participantName
in: path
@ -222,6 +320,22 @@ paths:
responses:
'204':
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':
description: Participant not found
content:
@ -243,214 +357,119 @@ paths:
components:
securitySchemes:
apiKeyInHeader:
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:
accessTokenCookie:
type: apiKey
name: OvMeetAccessToken
in: cookie
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:
OpenViduMeetRoomOptions:
MeetRecordingBase:
type: object
required:
- expirationDate
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
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
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.
description: The date when the recording was started (milliseconds since the Unix epoch).
recordingPreferences:
$ref: '#/components/schemas/RecordingPreferences'
description: >
Preferences for recording the room.
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.
virtualBackgroundPreferences:
$ref: '#/components/schemas/VirtualBackgroundPreferences'
description: >
Preferences for virtual background in the room.
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:
MeetRecordingStart:
$ref: '#/components/schemas/MeetRecordingBase'
TokenOptions:
type: object
required:
- roomName
- participantName
- secret
properties:
roomName:
type: string
example: 'OpenVidu-123456'
description: >
The name of the room. This name is generated by appending a random alphanumeric string to the
room name prefix specified in the request.
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:
The name of the room to join.
participantName:
type: string
example: 'OpenVidu'
example: 'Alice'
description: >
The prefix used for the room name. The room name is generated by appending a random alphanumeric
string to this prefix.
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:
The name of the participant.
secret:
type: string
example: 'http://localhost:6080/meet/OpenVidu-123456/?secret=tok_123456'
example: 'abc123456'
description: >
The URL for the moderator to join the room. The moderator has special permissions to manage the
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).
The secret token from the room Url
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:
type: object
required: