openapi: add endpoints and schemas for managing global preferences in OpenVidu Meet

This commit is contained in:
juancarmore 2025-05-16 09:35:08 +02:00
parent 2b7e2ecf7e
commit 9618ec6f29
13 changed files with 227 additions and 0 deletions

View File

@ -0,0 +1,6 @@
description: Security preferences
required: true
content:
application/json:
schema:
$ref: '../../schemas/internal/security-preferences.yaml'

View File

@ -0,0 +1,6 @@
description: Webhooks preferences
required: true
content:
application/json:
schema:
$ref: '../../schemas/internal/webhooks-preferences.yaml'

View File

@ -0,0 +1,5 @@
description: Successfully retrieved security preferences
content:
application/json:
schema:
$ref: '../../schemas/internal/security-preferences.yaml'

View File

@ -0,0 +1,5 @@
description: Successfully retrieved webhooks preferences
content:
application/json:
schema:
$ref: '../../schemas/internal/webhooks-preferences.yaml'

View File

@ -0,0 +1,9 @@
description: Successfully updated security preferences
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: 'Security preferences updated successfully'

View File

@ -0,0 +1,9 @@
description: Successfully updated webhooks preferences
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: 'Webhooks preferences updated successfully'

View File

@ -0,0 +1,8 @@
description: PRO Feature Error
content:
application/json:
schema:
$ref: '../schemas/error.yaml'
example:
error: Pro Feature Error
message: 'This operation is a PRO feature. Please, upgrade to OpenVidu PRO'

View File

@ -0,0 +1,45 @@
type: object
properties:
authentication:
$ref: '#/AuthenticationPreferences'
description: Preferences for authentication.
roomCreationPolicy:
$ref: '#/RoomCreationPolicy'
description: Preferences for room creation policy.
AuthenticationPreferences:
type: object
properties:
authMode:
type: string
enum:
- none
- moderators_only
- all_users
default: none
example: none
description: The authentication mode to enter a room.
method:
type: object
properties:
type:
type: string
enum:
- single-user
default: single-user
example: single-user
description: The authentication method to use.
RoomCreationPolicy:
type: object
properties:
allowRoomCreation:
type: boolean
default: true
example: true
description: If true, users will be allowed to create rooms.
requireAuthentication:
type: boolean
default: true
example: true
description: If true, users will be required to authenticate before creating rooms.

View File

@ -0,0 +1,10 @@
type: object
properties:
enabled:
type: boolean
example: true
description: Indicates whether webhooks are enabled or disabled.
url:
type: string
example: 'https://example.com/webhook'
description: The URL to which webhooks will be sent. This is only mandatory if webhooks are enabled.

View File

@ -26,6 +26,15 @@ MeetRecordingPreferences:
default: true
example: true
description: If true, the room will be allowed to record the video of the participants.
allowAccessTo:
type: string
enum:
- admin
- admin-moderator
- admin-moderator-publisher
- public
default: admin-moderator-publisher
example: admin-moderator-publisher
MeetVirtualBackgroundPreferences:
type: object
properties:

View File

@ -16,6 +16,12 @@ paths:
$ref: './paths/internal/auth.yaml#/~1auth~1refresh'
/auth/profile:
$ref: './paths/internal/auth.yaml#/~1auth~1profile'
/preferences/webhooks:
$ref: './paths/internal/global-preferences.yaml#/~1preferences~1webhooks'
/preferences/security:
$ref: './paths/internal/global-preferences.yaml#/~1preferences~1security'
/preferences/appearance:
$ref: './paths/internal/global-preferences.yaml#/~1preferences~1appearance'
/rooms/{roomId}:
$ref: './paths/internal/rooms.yaml#/~1rooms~1{roomId}'
/rooms/{roomId}/recording-token:
@ -43,6 +49,10 @@ components:
schemas:
User:
$ref: components/schemas/internal/user.yaml
WebhooksPreferences:
$ref: components/schemas/internal/webhooks-preferences.yaml
SecurityPreferences:
$ref: components/schemas/internal/security-preferences.yaml
MeetRoom:
$ref: components/schemas/meet-room.yaml
MeetRoomOptions:

View File

@ -0,0 +1,103 @@
/preferences/webhooks:
get:
operationId: getWebhooksPreferences
summary: Get webhooks preferences
description: >
Retrieves the webhooks preferences for the OpenVidu Meet application.
tags:
- Internal API - Global Preferences
security:
- accessTokenCookie: []
responses:
'200':
$ref: '../../components/responses/internal/success-get-webhooks-preferences.yaml'
'401':
$ref: '../../components/responses/unauthorized-error.yaml'
'403':
$ref: '../../components/responses/forbidden-error.yaml'
'500':
$ref: '../../components/responses/internal-server-error.yaml'
put:
operationId: updateWebhooksPreferences
summary: Update webhooks preferences
description: >
Updates the webhooks preferences for the OpenVidu Meet application.
tags:
- Internal API - Global Preferences
security:
- accessTokenCookie: []
requestBody:
$ref: '../../components/requestBodies/internal/update-webhooks-preferences.yaml'
responses:
'200':
$ref: '../../components/responses/internal/success-update-webhooks-preferences.yaml'
'401':
$ref: '../../components/responses/unauthorized-error.yaml'
'403':
$ref: '../../components/responses/forbidden-error.yaml'
'422':
$ref: '../../components/responses/validation-error.yaml'
'500':
$ref: '../../components/responses/internal-server-error.yaml'
/preferences/security:
get:
operationId: getSecurityPreferences
summary: Get security preferences
description: >
Retrieves the security preferences for the OpenVidu Meet application.
tags:
- Internal API - Global Preferences
responses:
'200':
$ref: '../../components/responses/internal/success-get-security-preferences.yaml'
'500':
$ref: '../../components/responses/internal-server-error.yaml'
put:
operationId: updateSecurityPreferences
summary: Update security preferences
description: >
Updates the security preferences for the OpenVidu Meet application.
tags:
- Internal API - Global Preferences
security:
- accessTokenCookie: []
requestBody:
$ref: '../../components/requestBodies/internal/update-security-preferences.yaml'
responses:
'200':
$ref: '../../components/responses/internal/success-update-security-preferences.yaml'
'401':
$ref: '../../components/responses/unauthorized-error.yaml'
'403':
$ref: '../../components/responses/forbidden-error.yaml'
'422':
$ref: '../../components/responses/validation-error.yaml'
'500':
$ref: '../../components/responses/internal-server-error.yaml'
/preferences/appearance:
get:
operationId: getAppearancePreferences
summary: Get appearance preferences
description: >
Retrieves the appearance preferences for the OpenVidu Meet application.
tags:
- Internal API - Global Preferences
security:
- accessTokenCookie: []
responses:
'202':
$ref: '../../components/responses/pro-feature-error.yaml'
put:
operationId: updateAppearancePreferences
summary: Update appearance preferences
description: >
Updates the appearance preferences for the OpenVidu Meet application.
tags:
- Internal API - Global Preferences
security:
- accessTokenCookie: []
responses:
'202':
$ref: '../../components/responses/pro-feature-error.yaml'

View File

@ -4,6 +4,8 @@
description: Operations related to managing OpenVidu Meet recordings
- name: Internal API - Authentication
description: Authentication operations
- name: Internal API - Global Preferences
description: Operations related to managing global preferences in OpenVidu Meet
- name: Internal API - Rooms
description: Operations related to managing OpenVidu Meet rooms
- name: Internal API - Participant