From dc1e7b96f11bd097fa885bb905a00852de7daeb7 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Tue, 12 Dec 2023 15:01:28 +0100 Subject: [PATCH 1/5] Create PoC for generating model docs from open API JSON --- .../docs/api/_common_/OpenApiModel.jsx | 106 + .../docusaurus/docs/api/basics/calls.mdx | 5 + .../docusaurus/docs/api/video-openapi.json | 7818 +++++++++++++++++ 3 files changed, 7929 insertions(+) create mode 100644 docusaurus/video/docusaurus/docs/api/_common_/OpenApiModel.jsx create mode 100644 docusaurus/video/docusaurus/docs/api/video-openapi.json diff --git a/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModel.jsx b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModel.jsx new file mode 100644 index 00000000..be111910 --- /dev/null +++ b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModel.jsx @@ -0,0 +1,106 @@ +import React from 'react'; +import apiJson from '../video-openapi.json'; + +const OpenApiModel = ({ modelName, recursive = true }) => { + + const models = React.useMemo(() => { + const modelsResult = [{name: modelName, properties: []}]; + + for (let i = 0; i < modelsResult.length; i++) { + const model = modelsResult[i]; + + const schemaJson = apiJson.components.schemas[model.name]; + const propertiesJson = schemaJson.properties; + + model.properties = Object.keys(propertiesJson).map(key => { + const property = propertiesJson[key]; + + // Parse type info + let type; + let typeHref; + let displayType; + let isArray = property.type === 'array'; + if (property.$ref || isArray && property.items?.$ref) { + const ref = isArray ? property.items?.$ref : property.$ref; + // Example $ref: #/components/schemas/EdgeResponse + type = ref?.split('/')?.pop() || ''; + typeHref = `#${type}` + if (recursive && apiJson.components.schemas[type] && !modelsResult.find(r => r.name === type)) { + modelsResult.push({name: type, properties: []}); + } + } else { + type = (isArray ? property.items?.type : property.type) || '' + } + displayType = isArray ? `${type}[]` : type; + if (property.enum) { + displayType += ` (${property.enum.join(', ')})` + } + + // Parse title + description + let description = property.title; + if (property.description) { + description += ` - ${property.description}`; + } + + // Parse constraints + const constraints = []; + if (schemaJson.required?.includes(key)) { + constraints.push('Required'); + } + if (property.minimum !== undefined) { + constraints.push(`Minimum: ${property.minimum}`) + } + if (property.maximum !== undefined) { + constraints.push(`Maximum: ${property.maximum}`) + } + + return { + name: key, + type, + displayType, + typeHref, + constraints, + description + } + }); + } + + return modelsResult; + }, [modelName]); + + return ( +
+ {models.map((model) => ( + +

{model.name}

+ + + + + + + + {model.properties.map(p => { + return ( + + + + + + + + + ); + })} +
NameTypeDescriptionConstraints
+ {p.name} + + {p.typeHref ? {p.displayType} : {p.displayType}} + {p.description || '-'}{p.constraints.join(', ') || '-'}
+
+ ))} +
+ ); +}; + +export default OpenApiModel; diff --git a/docusaurus/video/docusaurus/docs/api/basics/calls.mdx b/docusaurus/video/docusaurus/docs/api/basics/calls.mdx index 5fb518e2..ec9d379f 100644 --- a/docusaurus/video/docusaurus/docs/api/basics/calls.mdx +++ b/docusaurus/video/docusaurus/docs/api/basics/calls.mdx @@ -15,6 +15,7 @@ import CallFilters from '../../../shared/video/_call-filters.mdx'; import CallMemberFilters from '../../../shared/video/_call-member-filters.mdx'; import CallSort from '../../../shared/video/_call-sort-fields.mdx'; import CallMemberSort from '../../../shared/video/_call-member-sort-fields.mdx'; +import OpenApiModel from '../_common_/OpenApiModel'; ## Creating calls @@ -68,6 +69,10 @@ await client.call('default', 'test-outgoing-call').getOrCreate({ +### Model + + + ## Updating calls diff --git a/docusaurus/video/docusaurus/docs/api/video-openapi.json b/docusaurus/video/docusaurus/docs/api/video-openapi.json new file mode 100644 index 00000000..46978df0 --- /dev/null +++ b/docusaurus/video/docusaurus/docs/api/video-openapi.json @@ -0,0 +1,7818 @@ +{ + "components": { + "schemas": { + "APIError": { + "nullable": true, + "properties": { + "StatusCode": { + "description": "Response HTTP status code", + "format": "int32", + "title": "Status code", + "type": "integer", + "x-stream-index": "004" + }, + "code": { + "description": "API error code", + "format": "int32", + "title": "Code", + "type": "integer", + "x-stream-index": "001" + }, + "details": { + "description": "Additional error-specific information", + "items": { + "type": "integer" + }, + "title": "Details", + "type": "array", + "x-stream-index": "007" + }, + "duration": { + "description": "Request duration", + "title": "Duration", + "type": "string", + "x-stream-index": "005" + }, + "exception_fields": { + "additionalProperties": { + "type": "string" + }, + "description": "Additional error info", + "title": "Exception fields", + "type": "object", + "x-stream-index": "003" + }, + "message": { + "description": "Message describing an error", + "title": "Message", + "type": "string", + "x-stream-index": "002" + }, + "more_info": { + "description": "URL with additional information", + "title": "More info", + "type": "string", + "x-stream-index": "006" + } + }, + "required": [ + "code", + "message", + "StatusCode", + "duration", + "more_info", + "details" + ], + "title": "Error response", + "type": "object" + }, + "APNS": { + "properties": { + "body": { + "type": "string", + "x-stream-index": "002" + }, + "title": { + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "title", + "body" + ], + "type": "object" + }, + "APNSRequest": { + "properties": { + "body": { + "type": "string", + "x-stream-index": "002" + }, + "title": { + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "AudioSettings": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "default_device": { + "enum": [ + "speaker", + "earpiece" + ], + "type": "string", + "x-stream-index": "006" + }, + "mic_default_on": { + "type": "boolean", + "x-stream-index": "004" + }, + "opus_dtx_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "redundant_coding_enabled": { + "type": "boolean", + "x-stream-index": "003" + }, + "speaker_default_on": { + "type": "boolean", + "x-stream-index": "005" + } + }, + "required": [ + "access_request_enabled", + "opus_dtx_enabled", + "redundant_coding_enabled", + "mic_default_on", + "speaker_default_on", + "default_device" + ], + "type": "object" + }, + "AudioSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "default_device": { + "enum": [ + "speaker", + "earpiece" + ], + "type": "string", + "x-stream-index": "006" + }, + "mic_default_on": { + "type": "boolean", + "x-stream-index": "004" + }, + "opus_dtx_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "redundant_coding_enabled": { + "type": "boolean", + "x-stream-index": "003" + }, + "speaker_default_on": { + "type": "boolean", + "x-stream-index": "005" + } + }, + "required": [ + "default_device" + ], + "type": "object" + }, + "BackstageSettings": { + "properties": { + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "required": [ + "enabled" + ], + "type": "object" + }, + "BackstageSettingsRequest": { + "properties": { + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "BlockUserRequest": { + "nullable": true, + "properties": { + "user_id": { + "description": "the user to block", + "title": "UserID", + "type": "string", + "x-stream-index": "003" + } + }, + "required": [ + "user_id" + ], + "type": "object" + }, + "BlockUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "BlockedUserEvent": { + "description": "This event is sent to call participants to notify when a user is blocked on a call, clients can use this event to show a notification. \nIf the user is the current user, the client should leave the call screen as well", + "nullable": true, + "properties": { + "blocked_by_user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that blocked the user, null if the user was blocked by server-side", + "title": "Blocked by", + "x-stream-index": "004" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.blocked_user", + "description": "The type of event: \"call.blocked_user\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that was blocked", + "title": "User", + "x-stream-index": "003" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "user" + ], + "title": "BlockedUserEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "BroadcastSettingsRequest": { + "properties": { + "enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "hls": { + "$ref": "#/components/schemas/HLSSettingsRequest", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "BroadcastSettingsResponse": { + "properties": { + "enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "hls": { + "$ref": "#/components/schemas/HLSSettingsResponse", + "x-stream-index": "002" + } + }, + "required": [ + "enabled", + "hls" + ], + "type": "object" + }, + "CallAcceptedEvent": { + "description": "This event is sent when a user accepts a notification to join a call.", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.accepted", + "description": "The type of event: \"call.accepted\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who accepted the call", + "title": "User", + "x-stream-index": "004" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "user" + ], + "title": "CallAcceptedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallCreatedEvent": { + "description": "This event is sent when a call is created. Clients receiving this event should check if the ringing \nfield is set to true and if so, show the call screen", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "members": { + "description": "the members added to this call", + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.created", + "description": "The type of event: \"call.created\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "members" + ], + "title": "CallCreatedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallEndedEvent": { + "description": "This event is sent when a call is mark as ended for all its participants. Clients receiving this event should leave the call screen", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.ended", + "description": "The type of event: \"call.ended\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who ended the call, null if the call was ended by the server", + "title": "User", + "x-stream-index": "004" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call" + ], + "title": "CallEndedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallHLSBroadcastingFailedEvent": { + "description": "This event is sent when HLS broadcasting has failed", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.hls_broadcasting_failed", + "description": "The type of event: \"call.hls_broadcasting_failed\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid" + ], + "title": "CallHLSBroadcastingFailedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallHLSBroadcastingStartedEvent": { + "description": "This event is sent when HLS broadcasting has started", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "hls_playlist_url": { + "type": "string", + "x-stream-index": "003" + }, + "type": { + "default": "call.hls_broadcasting_started", + "description": "The type of event: \"call.hls_broadcasting_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "hls_playlist_url" + ], + "title": "CallHLSBroadcastingStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallHLSBroadcastingStoppedEvent": { + "description": "This event is sent when HLS broadcasting has stopped", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.hls_broadcasting_stopped", + "description": "The type of event: \"call.hls_broadcasting_stopped\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid" + ], + "title": "CallHLSBroadcastingStoppedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallIngressResponse": { + "properties": { + "rtmp": { + "$ref": "#/components/schemas/RTMPIngress", + "x-stream-index": "001" + } + }, + "required": [ + "rtmp" + ], + "title": "Call inputs", + "type": "object" + }, + "CallLiveStartedEvent": { + "description": "This event is sent when a call is started. Clients receiving this event should start the call.", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.live_started", + "description": "The type of event: \"call.live_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call" + ], + "title": "CallLiveStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberAddedEvent": { + "description": "This event is sent when one or more members are added to a call", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "members": { + "description": "the members added to this call", + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.member_added", + "description": "The type of event: \"call.member_added\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "members" + ], + "title": "CallMemberAddedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberRemovedEvent": { + "description": "This event is sent when one or more members are removed from a call", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "members": { + "description": "the list of member IDs removed from the call", + "items": { + "type": "string" + }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.member_removed", + "description": "The type of event: \"call.member_removed\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "members" + ], + "title": "CallMemberRemovedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberUpdatedEvent": { + "description": "This event is sent when one or more members are updated", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "members": { + "description": "The list of members that were updated", + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.member_updated", + "description": "The type of event: \"call.member_updated\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "members" + ], + "title": "CallMemberUpdatedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberUpdatedPermissionEvent": { + "description": "This event is sent when one or more members get its role updated", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "capabilities_by_role": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "The capabilities by role for this call", + "title": "CapabilitiesByRole", + "type": "object", + "x-stream-index": "004" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "members": { + "description": "The list of members that were updated", + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "title": "Members", + "type": "array", + "x-stream-index": "005" + }, + "type": { + "default": "call.member_updated_permission", + "description": "The type of event: \"call.member_added\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "capabilities_by_role", + "members" + ], + "title": "CallMemberUpdatedPermissionEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallNotificationEvent": { + "description": "This event is sent to all call members to notify they are getting called", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "004" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "members": { + "description": "Call members", + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "title": "Members", + "type": "array", + "x-stream-index": "005" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.notification", + "description": "The type of event: \"call.notification\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that sent the call notification", + "title": "User", + "x-stream-index": "006" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "call", + "members", + "user" + ], + "title": "CallNotificationEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallParticipantResponse": { + "properties": { + "joined_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "004" + }, + "role": { + "type": "string", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + }, + "user_session_id": { + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "user", + "user_session_id", + "role", + "joined_at" + ], + "type": "object" + }, + "CallReactionEvent": { + "description": "This event is sent when a reaction is sent in a call, clients should use this to show the reaction in the call screen", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "reaction": { + "$ref": "#/components/schemas/ReactionResponse", + "description": "the reaction object sent by the user on the call", + "title": "reaction", + "x-stream-index": "003" + }, + "type": { + "default": "call.reaction_new", + "description": "The type of event: \"call.reaction_new\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "reaction" + ], + "title": "CallReactionEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecording": { + "description": "CallRecording represents a recording of a call.", + "properties": { + "end_time": { + "format": "date-time", + "title": "The end time of the recording.", + "type": "string", + "x-stream-index": "004" + }, + "filename": { + "title": "The filename of the recording.", + "type": "string", + "x-stream-index": "001" + }, + "start_time": { + "format": "date-time", + "title": "The start time of the recording.", + "type": "string", + "x-stream-index": "003" + }, + "url": { + "title": "The URL of the recording.", + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "filename", + "url", + "start_time", + "end_time" + ], + "type": "object" + }, + "CallRecordingFailedEvent": { + "description": "This event is sent when call recording has failed", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_failed", + "description": "The type of event: \"call.recording_failed\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid" + ], + "title": "CallRecordingFailedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecordingReadyEvent": { + "description": "This event is sent when call recording is ready", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "call_recording": { + "$ref": "#/components/schemas/CallRecording", + "description": "The call recording object", + "title": "CallRecording", + "x-stream-index": "003" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_ready", + "description": "The type of event: \"call.recording_ready\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call_recording" + ], + "title": "CallRecordingReadyEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecordingStartedEvent": { + "description": "This event is sent when call recording has started", + "nullable": true, + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_started", + "description": "The type of event: \"call.recording_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid" + ], + "title": "CallRecordingStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecordingStoppedEvent": { + "description": "This event is sent when call recording has stopped", + "nullable": true, + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_stopped", + "description": "The type of event: \"call.recording_stopped\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid" + ], + "title": "CallRecordingStoppedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRejectedEvent": { + "description": "This event is sent when a user rejects a notification to join a call.", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.rejected", + "description": "The type of event: \"call.rejected\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who rejected the call", + "title": "User", + "x-stream-index": "004" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "user" + ], + "title": "CallRejectedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRequest": { + "properties": { + "created_by": { + "$ref": "#/components/schemas/UserRequest", + "title": "The user that create this call", + "x-backend-only": true, + "x-stream-index": "008" + }, + "created_by_id": { + "title": "The id of the user that create this call", + "type": "string", + "x-backend-only": true, + "x-stream-index": "009" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "010" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberRequest" + }, + "maximum": 100, + "type": "array", + "x-stream-index": "011" + }, + "settings_override": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "012" + }, + "starts_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "013" + }, + "team": { + "type": "string", + "x-stream-index": "007" + } + }, + "type": "object" + }, + "CallResponse": { + "description": "Represents a call", + "properties": { + "backstage": { + "type": "boolean", + "x-stream-index": "015" + }, + "blocked_user_ids": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "017" + }, + "cid": { + "description": "The unique identifier for a call (:)", + "title": "CID", + "type": "string", + "x-stream-index": "004" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "string", + "x-stream-index": "009" + }, + "created_by": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that created the call", + "title": "Created By", + "x-stream-index": "007" + }, + "current_session_id": { + "type": "string", + "x-stream-index": "005" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "008" + }, + "egress": { + "$ref": "#/components/schemas/EgressResponse", + "x-stream-index": "020" + }, + "ended_at": { + "description": "Date/time when the call ended", + "format": "date-time", + "title": "Ended At", + "type": "string", + "x-stream-index": "013" + }, + "id": { + "description": "Call ID", + "title": "ID", + "type": "string", + "x-stream-index": "003" + }, + "ingress": { + "$ref": "#/components/schemas/CallIngressResponse", + "x-stream-index": "018" + }, + "recording": { + "type": "boolean", + "x-stream-index": "011" + }, + "session": { + "$ref": "#/components/schemas/CallSessionResponse", + "x-stream-index": "019" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "016" + }, + "starts_at": { + "description": "Date/time when the call will start", + "format": "date-time", + "title": "Starts At", + "type": "string", + "x-stream-index": "014" + }, + "team": { + "type": "string", + "x-stream-index": "006" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailResponse", + "x-stream-index": "021" + }, + "transcribing": { + "type": "boolean", + "x-stream-index": "012" + }, + "type": { + "description": "The type of call", + "title": "Type", + "type": "string", + "x-stream-index": "002" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "string", + "x-stream-index": "010" + } + }, + "required": [ + "type", + "id", + "cid", + "current_session_id", + "created_by", + "custom", + "created_at", + "updated_at", + "recording", + "transcribing", + "backstage", + "settings", + "blocked_user_ids", + "ingress", + "egress" + ], + "title": "Call", + "type": "object" + }, + "CallRingEvent": { + "description": "This event is sent to all call members to notify they are getting called", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "005" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "members": { + "description": "Call members", + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "title": "Members", + "type": "array", + "x-stream-index": "006" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.ring", + "description": "The type of event: \"call.notification\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that sent the call notification", + "title": "User", + "x-stream-index": "007" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "call", + "members", + "user" + ], + "title": "CallRingEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionEndedEvent": { + "description": "This event is sent when a call session ends", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "004" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_ended", + "description": "The type of event: \"call.session_ended\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "call" + ], + "title": "CallSessionEndedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionParticipantJoinedEvent": { + "description": "This event is sent when a participant joins a call session", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "participant": { + "$ref": "#/components/schemas/CallParticipantResponse", + "description": "The participant that joined the session", + "title": "Participant", + "x-stream-index": "004" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_participant_joined", + "description": "The type of event: \"call.session_participant_joined\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "participant" + ], + "title": "CallSessionParticipantJoinedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionParticipantLeftEvent": { + "description": "This event is sent when a participant leaves a call session", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "participant": { + "$ref": "#/components/schemas/CallParticipantResponse", + "description": "The participant that left the session", + "title": "Participant", + "x-stream-index": "004" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_participant_left", + "description": "The type of event: \"call.session_participant_left\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "participant" + ], + "title": "CallSessionParticipantLeftEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionResponse": { + "properties": { + "accepted_by": { + "additionalProperties": { + "format": "date-time", + "type": "string" + }, + "type": "object", + "x-stream-index": "007" + }, + "ended_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "003" + }, + "id": { + "type": "string", + "x-stream-index": "001" + }, + "live_ended_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "009" + }, + "live_started_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "008" + }, + "participants": { + "items": { + "$ref": "#/components/schemas/CallParticipantResponse" + }, + "type": "array", + "x-stream-index": "004" + }, + "participants_count_by_role": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "type": "object", + "x-stream-index": "005" + }, + "rejected_by": { + "additionalProperties": { + "format": "date-time", + "type": "string" + }, + "type": "object", + "x-stream-index": "006" + }, + "started_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "id", + "participants", + "participants_count_by_role", + "rejected_by", + "accepted_by" + ], + "type": "object" + }, + "CallSessionStartedEvent": { + "description": "This event is sent when a call session starts", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "004" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_started", + "description": "The type of event: \"call.session_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "call" + ], + "title": "CallSessionStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSettingsRequest": { + "properties": { + "audio": { + "$ref": "#/components/schemas/AudioSettingsRequest", + "x-stream-index": "001" + }, + "backstage": { + "$ref": "#/components/schemas/BackstageSettingsRequest", + "x-stream-index": "002" + }, + "broadcasting": { + "$ref": "#/components/schemas/BroadcastSettingsRequest", + "x-stream-index": "009" + }, + "geofencing": { + "$ref": "#/components/schemas/GeofenceSettingsRequest", + "x-stream-index": "003" + }, + "recording": { + "$ref": "#/components/schemas/RecordSettingsRequest", + "x-stream-index": "005" + }, + "ring": { + "$ref": "#/components/schemas/RingSettingsRequest", + "x-stream-index": "006" + }, + "screensharing": { + "$ref": "#/components/schemas/ScreensharingSettingsRequest", + "x-stream-index": "007" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailsSettingsRequest", + "x-stream-index": "010" + }, + "transcription": { + "$ref": "#/components/schemas/TranscriptionSettingsRequest", + "x-stream-index": "008" + }, + "video": { + "$ref": "#/components/schemas/VideoSettingsRequest", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "CallSettingsResponse": { + "properties": { + "audio": { + "$ref": "#/components/schemas/AudioSettings", + "x-stream-index": "001" + }, + "backstage": { + "$ref": "#/components/schemas/BackstageSettings", + "x-stream-index": "002" + }, + "broadcasting": { + "$ref": "#/components/schemas/BroadcastSettingsResponse", + "x-stream-index": "003" + }, + "geofencing": { + "$ref": "#/components/schemas/GeofenceSettings", + "x-stream-index": "004" + }, + "recording": { + "$ref": "#/components/schemas/RecordSettingsResponse", + "x-stream-index": "005" + }, + "ring": { + "$ref": "#/components/schemas/RingSettings", + "x-stream-index": "006" + }, + "screensharing": { + "$ref": "#/components/schemas/ScreensharingSettings", + "x-stream-index": "007" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailsSettings", + "x-stream-index": "010" + }, + "transcription": { + "$ref": "#/components/schemas/TranscriptionSettings", + "x-stream-index": "008" + }, + "video": { + "$ref": "#/components/schemas/VideoSettings", + "x-stream-index": "009" + } + }, + "required": [ + "audio", + "backstage", + "broadcasting", + "geofencing", + "recording", + "ring", + "screensharing", + "transcription", + "video", + "thumbnails" + ], + "type": "object" + }, + "CallStateResponseFields": { + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "members": { + "description": "List of call members", + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "title": "Members", + "type": "array", + "x-stream-index": "002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "description": "Current user membership object", + "title": "Membership", + "x-stream-index": "003" + }, + "own_capabilities": { + "items": { + "$ref": "#/components/schemas/OwnCapability" + }, + "type": "array", + "x-stream-index": "004" + } + }, + "required": [ + "call", + "members", + "own_capabilities" + ], + "type": "object" + }, + "CallTypeResponse": { + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "005" + }, + "grants": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002" + }, + "name": { + "type": "string", + "x-stream-index": "001" + }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "003" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at" + ], + "type": "object" + }, + "CallUpdatedEvent": { + "description": "This event is sent when a call is updated, clients should use this update the local state of the call. \nThis event also contains the capabilities by role for the call, clients should update the own_capability for the current.", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "capabilities_by_role": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "description": "The capabilities by role for this call", + "title": "CapabilitiesByRole", + "type": "object", + "x-stream-index": "004" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.updated", + "description": "The type of event: \"call.ended\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "capabilities_by_role" + ], + "title": "CallUpdatedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallUserMuted": { + "description": "This event is sent when a call member is muted", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "from_user_id": { + "type": "string", + "x-stream-index": "003" + }, + "muted_user_ids": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.user_muted", + "description": "The type of event: \"call.user_muted\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "from_user_id", + "muted_user_ids" + ], + "title": "CallUserMuted", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ConnectUserDetailsRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004" + }, + "id": { + "type": "string", + "x-stream-index": "001" + }, + "image": { + "type": "string", + "x-stream-index": "003" + }, + "name": { + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "ConnectedEvent": { + "description": "This event is sent when the WS connection is established and authenticated, this event contains the full user object as it is stored on the server", + "nullable": true, + "properties": { + "connection_id": { + "description": "The connection_id for this client", + "title": "Connection ID", + "type": "string", + "x-stream-index": "002" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "me": { + "$ref": "#/components/schemas/OwnUserResponse", + "description": "The full user object as it is stored on the server", + "title": "OwnUserResponse", + "x-stream-index": "003" + }, + "type": { + "default": "connection.ok", + "description": "The type of event: \"connection.ok\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "connection_id", + "me" + ], + "title": "ConnectedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ConnectionErrorEvent": { + "description": "This event is sent when the WS connection fails", + "properties": { + "connection_id": { + "type": "string", + "x-stream-index": "002" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "error": { + "$ref": "#/components/schemas/APIError", + "description": "The error that caused the connection to fail", + "title": "Error", + "x-stream-index": "003" + }, + "type": { + "default": "connection.error", + "description": "The type of event: \"connection.ok\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "connection_id", + "error" + ], + "title": "ConnectionErrorEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CreateCallTypeRequest": { + "nullable": true, + "properties": { + "grants": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002.001" + }, + "name": { + "type": "string", + "x-stream-index": "001" + }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettingsRequest", + "x-stream-index": "002.002" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "002.003" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "CreateCallTypeResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.005" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + }, + "grants": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.002" + }, + "name": { + "type": "string", + "x-stream-index": "001.001" + }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "001.004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "001.003" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at", + "duration" + ], + "type": "object" + }, + "CreateDeviceRequest": { + "nullable": true, + "properties": { + "id": { + "maxLength": 255, + "minLength": 1, + "type": "string", + "x-stream-index": "001" + }, + "push_provider": { + "enum": [ + "firebase", + "apn", + "huawei", + "xiaomi" + ], + "type": "string", + "x-stream-index": "002" + }, + "push_provider_name": { + "type": "string", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "005.002" + }, + "user_id": { + "type": "string", + "x-stream-index": "005.001" + }, + "voip_token": { + "type": "boolean", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "CreateGuestRequest": { + "nullable": true, + "properties": { + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "001" + } + }, + "required": [ + "user" + ], + "type": "object" + }, + "CreateGuestResponse": { + "nullable": true, + "properties": { + "access_token": { + "description": "the access token to authenticate the user", + "title": "Access token", + "type": "string", + "x-stream-index": "002" + }, + "duration": { + "type": "string", + "x-stream-index": "003.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "title": "User", + "x-stream-index": "001" + } + }, + "required": [ + "user", + "access_token", + "duration" + ], + "type": "object" + }, + "CustomVideoEvent": { + "description": "A custom event, this event is used to send custom events to other participants in the call.", + "nullable": true, + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "type": { + "default": "custom", + "description": "The type of event, \"custom\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "004" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "custom", + "user" + ], + "title": "CustomVideoEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "Device": { + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "string", + "x-stream-index": "004" + }, + "disabled": { + "description": "Whether device is disabled or not", + "title": "Disabled", + "type": "boolean", + "x-stream-index": "005" + }, + "disabled_reason": { + "description": "Reason explaining why device had been disabled", + "title": "Reason", + "type": "string", + "x-stream-index": "006" + }, + "id": { + "type": "string", + "x-stream-index": "003" + }, + "push_provider": { + "type": "string", + "x-stream-index": "001" + }, + "push_provider_name": { + "type": "string", + "x-stream-index": "002" + }, + "voip": { + "description": "When true the token is for Apple VoIP push notifications", + "title": "Voip", + "type": "boolean", + "x-stream-index": "007" + } + }, + "required": [ + "push_provider", + "id", + "created_at" + ], + "title": "Device", + "type": "object" + }, + "EdgeResponse": { + "properties": { + "continent_code": { + "type": "string", + "x-stream-index": "007.003" + }, + "country_iso_code": { + "type": "string", + "x-stream-index": "007.002" + }, + "green": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "id": { + "type": "string", + "x-stream-index": "001" + }, + "latency_test_url": { + "type": "string", + "x-stream-index": "002" + }, + "latitude": { + "format": "float", + "type": "number", + "x-stream-index": "006.001" + }, + "longitude": { + "format": "float", + "type": "number", + "x-stream-index": "006.002" + }, + "red": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + }, + "subdivision_iso_code": { + "type": "string", + "x-stream-index": "007.001" + }, + "yellow": { + "format": "int32", + "type": "integer", + "x-stream-index": "004" + } + }, + "required": [ + "id", + "latency_test_url", + "green", + "yellow", + "red", + "latitude", + "longitude", + "subdivision_iso_code", + "country_iso_code", + "continent_code" + ], + "type": "object" + }, + "EgressHLSResponse": { + "properties": { + "playlist_url": { + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "playlist_url" + ], + "type": "object" + }, + "EgressRTMPResponse": { + "properties": { + "name": { + "type": "string", + "x-stream-index": "001" + }, + "stream_key": { + "type": "string", + "x-stream-index": "003" + }, + "url": { + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "name", + "url", + "stream_key" + ], + "type": "object" + }, + "EgressResponse": { + "properties": { + "broadcasting": { + "type": "boolean", + "x-stream-index": "001" + }, + "hls": { + "$ref": "#/components/schemas/EgressHLSResponse", + "x-stream-index": "002" + }, + "rtmps": { + "items": { + "$ref": "#/components/schemas/EgressRTMPResponse" + }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": [ + "broadcasting", + "rtmps" + ], + "type": "object" + }, + "EndCallRequest": { + "nullable": true, + "type": "object" + }, + "EndCallResponse": { + "nullable": true, + "properties": { + "duration": { + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "EventNotificationSettings": { + "properties": { + "apns": { + "$ref": "#/components/schemas/APNS", + "x-stream-index": "002" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "required": [ + "enabled", + "apns" + ], + "type": "object" + }, + "EventNotificationSettingsRequest": { + "properties": { + "apns": { + "$ref": "#/components/schemas/APNSRequest", + "x-stream-index": "002" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "GeofenceSettings": { + "properties": { + "names": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": [ + "names" + ], + "type": "object" + }, + "GeofenceSettingsRequest": { + "properties": { + "names": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "GetCallResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { + "$ref": "#/components/schemas/OwnCapability" + }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "duration" + ], + "type": "object" + }, + "GetCallTypeResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.005" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + }, + "grants": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.002" + }, + "name": { + "type": "string", + "x-stream-index": "001.001" + }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "001.004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "001.003" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at", + "duration" + ], + "type": "object" + }, + "GetEdgesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "edges": { + "items": { + "$ref": "#/components/schemas/EdgeResponse" + }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": [ + "edges", + "duration" + ], + "type": "object" + }, + "GetOrCreateCallRequest": { + "nullable": true, + "properties": { + "data": { + "$ref": "#/components/schemas/CallRequest", + "title": "Data", + "x-stream-index": "003" + }, + "members_limit": { + "format": "int32", + "maximum": 100, + "type": "integer", + "x-stream-index": "006" + }, + "notify": { + "description": "if provided it sends a notification event to the members for this call", + "title": "Notify", + "type": "boolean", + "x-stream-index": "005" + }, + "ring": { + "description": "if provided it sends a ring event to the members for this call", + "title": "Ring", + "type": "boolean", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "GetOrCreateCallResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "created": { + "type": "boolean", + "x-stream-index": "002" + }, + "duration": { + "type": "string", + "x-stream-index": "003.001" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { + "$ref": "#/components/schemas/OwnCapability" + }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "created", + "duration" + ], + "type": "object" + }, + "GoLiveRequest": { + "nullable": true, + "properties": { + "start_hls": { + "type": "boolean", + "x-stream-index": "003" + }, + "start_recording": { + "type": "boolean", + "x-stream-index": "004" + }, + "start_transcription": { + "type": "boolean", + "x-stream-index": "005" + } + }, + "type": "object" + }, + "GoLiveResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": [ + "call", + "duration" + ], + "type": "object" + }, + "HLSSettingsRequest": { + "properties": { + "auto_on": { + "type": "boolean", + "x-stream-index": "001" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "layout": { + "$ref": "#/components/schemas/LayoutSettingsRequest", + "title": "LayoutSettings", + "x-backend-only": true, + "x-stream-index": "004" + }, + "quality_tracks": { + "items": { + "type": "string" + }, + "maximum": 3, + "minimum": 1, + "type": "array", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "HLSSettingsResponse": { + "properties": { + "auto_on": { + "type": "boolean", + "x-stream-index": "001" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "layout": { + "$ref": "#/components/schemas/LayoutSettings", + "title": "Layout", + "x-backend-only": true, + "x-stream-index": "004" + }, + "quality_tracks": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": [ + "auto_on", + "enabled", + "quality_tracks", + "layout" + ], + "type": "object" + }, + "HealthCheckEvent": { + "nullable": true, + "properties": { + "connection_id": { + "description": "The connection_id for this client", + "title": "Connection ID", + "type": "string", + "x-stream-index": "002" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "health.check", + "description": "The type of event: \"health.check\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "connection_id" + ], + "title": "HealthCheckEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "LayoutSettings": { + "properties": { + "external_app_url": { + "type": "string", + "x-stream-index": "003" + }, + "external_css_url": { + "type": "string", + "x-stream-index": "004" + }, + "name": { + "enum": [ + "spotlight", + "grid", + "single-participant", + "mobile", + "custom" + ], + "type": "string", + "x-stream-index": "001" + }, + "options": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + } + }, + "required": [ + "name", + "external_app_url", + "external_css_url" + ], + "type": "object" + }, + "LayoutSettingsRequest": { + "properties": { + "external_app_url": { + "type": "string", + "x-stream-index": "003" + }, + "external_css_url": { + "type": "string", + "x-stream-index": "004" + }, + "name": { + "enum": [ + "spotlight", + "grid", + "single-participant", + "mobile", + "custom" + ], + "type": "string", + "x-stream-index": "001" + }, + "options": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "ListCallTypeResponse": { + "nullable": true, + "properties": { + "call_types": { + "additionalProperties": { + "$ref": "#/components/schemas/CallTypeResponse" + }, + "type": "object", + "x-stream-index": "001" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": [ + "call_types", + "duration" + ], + "type": "object" + }, + "ListDevicesResponse": { + "nullable": true, + "properties": { + "devices": { + "description": "List of devices", + "items": { + "$ref": "#/components/schemas/Device" + }, + "title": "Devices", + "type": "array", + "x-stream-index": "001" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": [ + "devices", + "duration" + ], + "type": "object" + }, + "ListRecordingsResponse": { + "nullable": true, + "properties": { + "duration": { + "type": "string", + "x-stream-index": "001.001" + }, + "recordings": { + "items": { + "$ref": "#/components/schemas/CallRecording" + }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": [ + "duration", + "recordings" + ], + "type": "object" + }, + "MemberRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "002" + }, + "user_id": { + "minLength": 1, + "title": "User ID", + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "user_id" + ], + "type": "object" + }, + "MemberResponse": { + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "string", + "x-stream-index": "005" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom member response data", + "title": "Custom", + "type": "object", + "x-stream-index": "004" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "string", + "x-stream-index": "007" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "003" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "string", + "x-stream-index": "006" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + }, + "user_id": { + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "user", + "user_id", + "custom", + "created_at", + "updated_at" + ], + "type": "object" + }, + "MuteUsersRequest": { + "nullable": true, + "properties": { + "audio": { + "title": "Audio", + "type": "boolean", + "x-stream-index": "005" + }, + "mute_all_users": { + "type": "boolean", + "x-stream-index": "003" + }, + "screenshare": { + "title": "Screenshare", + "type": "boolean", + "x-stream-index": "007" + }, + "screenshare_audio": { + "title": "ScreenshareAudio", + "type": "boolean", + "x-stream-index": "008" + }, + "user_ids": { + "items": { + "type": "string" + }, + "title": "UserIDs", + "type": "array", + "x-stream-index": "004" + }, + "video": { + "title": "Video", + "type": "boolean", + "x-stream-index": "006" + } + }, + "type": "object" + }, + "MuteUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "NotificationSettings": { + "properties": { + "call_live_started": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "002" + }, + "call_notification": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "004" + }, + "call_ring": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "005" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "session_started": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "003" + } + }, + "required": [ + "enabled", + "call_live_started", + "session_started", + "call_notification", + "call_ring" + ], + "type": "object" + }, + "NotificationSettingsRequest": { + "properties": { + "call_live_started": { + "$ref": "#/components/schemas/EventNotificationSettingsRequest", + "x-stream-index": "002" + }, + "call_notification": { + "$ref": "#/components/schemas/EventNotificationSettingsRequest", + "x-stream-index": "004" + }, + "call_ring": { + "$ref": "#/components/schemas/EventNotificationSettingsRequest", + "x-stream-index": "005" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "session_started": { + "$ref": "#/components/schemas/EventNotificationSettingsRequest", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "OwnCapability": { + "description": "All possibility of string to use", + "enum": [ + "block-users", + "create-call", + "create-reaction", + "end-call", + "join-backstage", + "join-call", + "join-ended-call", + "mute-users", + "pin-for-everyone", + "read-call", + "remove-call-member", + "screenshare", + "send-audio", + "send-video", + "start-broadcast-call", + "start-record-call", + "start-transcription-call", + "stop-broadcast-call", + "stop-record-call", + "stop-transcription-call", + "update-call", + "update-call-member", + "update-call-permissions", + "update-call-settings" + ], + "title": "OwnCapability", + "type": "string" + }, + "OwnUserResponse": { + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.001.004" + }, + "deleted_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.004" + }, + "devices": { + "items": { + "$ref": "#/components/schemas/Device" + }, + "title": "Devices", + "type": "array", + "x-stream-index": "002" + }, + "id": { + "type": "string", + "x-stream-index": "001.001.001" + }, + "image": { + "type": "string", + "x-stream-index": "001.001.003" + }, + "name": { + "type": "string", + "x-stream-index": "001.001.002" + }, + "role": { + "type": "string", + "x-stream-index": "001.001.005" + }, + "teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "001.001.006" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.003" + } + }, + "required": [ + "id", + "custom", + "role", + "teams", + "created_at", + "updated_at", + "devices" + ], + "type": "object" + }, + "PermissionRequestEvent": { + "description": "This event is sent when a user requests access to a feature on a call,\nclients receiving this event should display a permission request to the user", + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "permissions": { + "description": "The list of permissions requested by the user", + "items": { + "type": "string" + }, + "title": "Permissions", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.permission_request", + "description": "The type of event: \"call.permission_request\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who sent the permission request", + "title": "User", + "x-stream-index": "003" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "user", + "permissions" + ], + "title": "PermissionRequestEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PinRequest": { + "nullable": true, + "properties": { + "session_id": { + "type": "string", + "x-stream-index": "003" + }, + "user_id": { + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "user_id", + "session_id" + ], + "type": "object" + }, + "PinResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "QueryCallsRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "006.001" + }, + "next": { + "type": "string", + "x-stream-index": "006.002" + }, + "prev": { + "type": "string", + "x-stream-index": "006.003" + }, + "sort": { + "items": { + "$ref": "#/components/schemas/SortParamRequest" + }, + "maximum": 2, + "type": "array", + "x-stream-index": "004" + }, + "watch": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "QueryCallsResponse": { + "nullable": true, + "properties": { + "calls": { + "items": { + "$ref": "#/components/schemas/CallStateResponseFields" + }, + "title": "Calls", + "type": "array", + "x-stream-index": "001" + }, + "duration": { + "type": "string", + "x-stream-index": "003.001" + }, + "next": { + "type": "string", + "x-stream-index": "002.001" + }, + "prev": { + "type": "string", + "x-stream-index": "002.002" + } + }, + "required": [ + "calls", + "duration" + ], + "type": "object" + }, + "QueryMembersRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "id": { + "maxLength": 64, + "type": "string", + "x-stream-index": "001.002" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "004.001" + }, + "next": { + "type": "string", + "x-stream-index": "004.002" + }, + "prev": { + "type": "string", + "x-stream-index": "004.003" + }, + "sort": { + "items": { + "$ref": "#/components/schemas/SortParamRequest" + }, + "maximum": 1, + "type": "array", + "x-stream-index": "003" + }, + "type": { + "maxLength": 64, + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "id" + ], + "type": "object" + }, + "QueryMembersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "type": "array", + "x-stream-index": "001" + }, + "next": { + "type": "string", + "x-stream-index": "002.001" + }, + "prev": { + "type": "string", + "x-stream-index": "002.002" + } + }, + "required": [ + "members", + "duration" + ], + "type": "object" + }, + "RTMPIngress": { + "description": "RTMP input settings", + "properties": { + "address": { + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "address" + ], + "title": "RTMP Ingress", + "type": "object" + }, + "ReactionResponse": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004" + }, + "emoji_code": { + "type": "string", + "x-stream-index": "003" + }, + "type": { + "type": "string", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + } + }, + "required": [ + "user", + "type" + ], + "type": "object" + }, + "RecordSettingsRequest": { + "properties": { + "audio_only": { + "type": "boolean", + "x-stream-index": "001" + }, + "layout": { + "$ref": "#/components/schemas/LayoutSettingsRequest", + "title": "LayoutSettings", + "x-backend-only": true, + "x-stream-index": "004" + }, + "mode": { + "enum": [ + "available", + "disabled", + "auto-on" + ], + "type": "string", + "x-stream-index": "002" + }, + "quality": { + "enum": [ + "360p", + "480p", + "720p", + "1080p", + "1440p" + ], + "type": "string", + "x-stream-index": "003" + } + }, + "required": [ + "mode" + ], + "type": "object" + }, + "RecordSettingsResponse": { + "properties": { + "audio_only": { + "type": "boolean", + "x-stream-index": "001" + }, + "layout": { + "$ref": "#/components/schemas/LayoutSettings", + "title": "Layout", + "x-backend-only": true, + "x-stream-index": "004" + }, + "mode": { + "type": "string", + "x-stream-index": "002" + }, + "quality": { + "type": "string", + "x-stream-index": "003" + } + }, + "required": [ + "audio_only", + "mode", + "quality", + "layout" + ], + "type": "object" + }, + "Response": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "RingSettings": { + "properties": { + "auto_cancel_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "incoming_call_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": [ + "incoming_call_timeout_ms", + "auto_cancel_timeout_ms" + ], + "type": "object" + }, + "RingSettingsRequest": { + "properties": { + "auto_cancel_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "incoming_call_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "ScreensharingSettings": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "required": [ + "enabled", + "access_request_enabled" + ], + "type": "object" + }, + "ScreensharingSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "SendEventRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "title": "Custom", + "type": "object", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "SendEventResponse": { + "nullable": true, + "properties": { + "duration": { + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "SortParamRequest": { + "nullable": true, + "properties": { + "direction": { + "description": "Direction of sorting, -1 for descending, 1 for ascending", + "format": "int32", + "title": "Direction", + "type": "integer", + "x-stream-index": "002" + }, + "field": { + "description": "Name of field to sort by", + "title": "Field", + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "StartHLSBroadcastingRequest": { + "nullable": true, + "type": "object" + }, + "StartHLSBroadcastingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "playlist_url": { + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "duration", + "playlist_url" + ], + "type": "object" + }, + "StartRecordingRequest": { + "nullable": true, + "type": "object" + }, + "StartRecordingResponse": { + "nullable": true, + "properties": { + "duration": { + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "StartTranscriptionRequest": { + "nullable": true, + "type": "object" + }, + "StartTranscriptionResponse": { + "nullable": true, + "properties": { + "duration": { + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "StopHLSBroadcastingRequest": { + "nullable": true, + "type": "object" + }, + "StopHLSBroadcastingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "StopLiveRequest": { + "nullable": true, + "type": "object" + }, + "StopLiveResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": [ + "call", + "duration" + ], + "type": "object" + }, + "StopRecordingRequest": { + "nullable": true, + "type": "object" + }, + "StopRecordingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "StopTranscriptionRequest": { + "nullable": true, + "type": "object" + }, + "StopTranscriptionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "TargetResolution": { + "properties": { + "bitrate": { + "format": "int32", + "maximum": 6000000, + "type": "integer", + "x-stream-index": "003" + }, + "height": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "002" + }, + "width": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "001" + } + }, + "required": [ + "width", + "height", + "bitrate" + ], + "type": "object" + }, + "TargetResolutionRequest": { + "properties": { + "bitrate": { + "format": "int32", + "maximum": 6000000, + "type": "integer", + "x-stream-index": "003" + }, + "height": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "002" + }, + "width": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "ThumbnailResponse": { + "properties": { + "image_url": { + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "image_url" + ], + "type": "object" + }, + "ThumbnailsSettings": { + "properties": { + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "required": [ + "enabled" + ], + "type": "object" + }, + "ThumbnailsSettingsRequest": { + "properties": { + "enabled": { + "type": "boolean", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "TranscriptionSettings": { + "properties": { + "closed_caption_mode": { + "type": "string", + "x-stream-index": "002" + }, + "mode": { + "enum": [ + "available", + "disabled", + "auto-on" + ], + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "mode", + "closed_caption_mode" + ], + "type": "object" + }, + "TranscriptionSettingsRequest": { + "properties": { + "closed_caption_mode": { + "type": "string", + "x-stream-index": "002" + }, + "mode": { + "enum": [ + "available", + "disabled", + "auto-on" + ], + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "UnblockUserRequest": { + "nullable": true, + "properties": { + "user_id": { + "description": "the user to unblock", + "title": "UserID", + "type": "string", + "x-stream-index": "003" + } + }, + "required": [ + "user_id" + ], + "type": "object" + }, + "UnblockUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "UnblockedUserEvent": { + "description": "This event is sent when a user is unblocked on a call, \nthis can be useful to notify the user that they can now join the call again", + "nullable": true, + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.unblocked_user", + "description": "The type of event: \"call.unblocked_user\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that was unblocked", + "title": "User", + "x-stream-index": "003" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "user" + ], + "title": "UnblockedUserEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UnpinRequest": { + "nullable": true, + "properties": { + "session_id": { + "type": "string", + "x-stream-index": "003" + }, + "user_id": { + "type": "string", + "x-stream-index": "002" + } + }, + "required": [ + "user_id", + "session_id" + ], + "type": "object" + }, + "UnpinResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "UpdateCallMembersRequest": { + "nullable": true, + "properties": { + "remove_members": { + "description": "List of userID to remove", + "items": { + "type": "string" + }, + "maximum": 100, + "title": "Remove Members", + "type": "array", + "x-stream-index": "003" + }, + "update_members": { + "description": "List of members to update or insert", + "items": { + "$ref": "#/components/schemas/MemberRequest" + }, + "maximum": 100, + "title": "Update Members", + "type": "array", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "UpdateCallMembersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": [ + "duration", + "members" + ], + "type": "object" + }, + "UpdateCallRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "settings_override": { + "$ref": "#/components/schemas/CallSettingsRequest", + "description": "the settings to change for this call", + "title": "Settings Override", + "x-stream-index": "004" + }, + "starts_at": { + "description": "the time the call is scheduled to start", + "format": "date-time", + "title": "Starts At", + "type": "string", + "x-stream-index": "005" + } + }, + "type": "object" + }, + "UpdateCallResponse": { + "description": "Represents a call", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { + "$ref": "#/components/schemas/OwnCapability" + }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "duration" + ], + "title": "Call", + "type": "object" + }, + "UpdateCallTypeRequest": { + "nullable": true, + "properties": { + "grants": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002.001" + }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettingsRequest", + "x-stream-index": "002.002" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "002.003" + } + }, + "type": "object" + }, + "UpdateCallTypeResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.005" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + }, + "grants": { + "additionalProperties": { + "items": { + "type": "string" + }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.002" + }, + "name": { + "type": "string", + "x-stream-index": "001.001" + }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "001.004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "001.003" + }, + "updated_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at", + "duration" + ], + "type": "object" + }, + "UpdateUserPermissionsRequest": { + "nullable": true, + "properties": { + "grant_permissions": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "004" + }, + "revoke_permissions": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "005" + }, + "user_id": { + "type": "string", + "x-stream-index": "003" + } + }, + "required": [ + "user_id" + ], + "type": "object" + }, + "UpdateUserPermissionsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "duration" + ], + "type": "object" + }, + "UpdatedCallPermissionsEvent": { + "description": "This event is sent to notify about permission changes for a user, clients receiving this event should update their UI accordingly", + "nullable": true, + "properties": { + "call_cid": { + "type": "string", + "x-stream-index": "002.001" + }, + "created_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "001.002" + }, + "own_capabilities": { + "description": "The capabilities of the current user", + "items": { + "$ref": "#/components/schemas/OwnCapability" + }, + "title": "Own capabilities", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.permissions_updated", + "description": "The type of event: \"call.permissions_updated\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who received the new permissions", + "title": "User", + "x-stream-index": "003" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "user", + "own_capabilities" + ], + "title": "UpdatedCallPermissionsEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "title": "Custom", + "type": "object", + "x-stream-index": "004" + }, + "id": { + "description": "User ID", + "title": "ID", + "type": "string", + "x-stream-index": "001" + }, + "image": { + "title": "Image", + "type": "string", + "x-stream-index": "003" + }, + "name": { + "description": "Optional name of user", + "title": "Name", + "type": "string", + "x-stream-index": "002" + }, + "role": { + "title": "Role", + "type": "string", + "x-backend-only": true, + "x-stream-index": "005" + }, + "teams": { + "items": { + "type": "string" + }, + "title": "Teams", + "type": "array", + "x-backend-only": true, + "x-stream-index": "006" + } + }, + "required": [ + "id" + ], + "type": "object" + }, + "UserResponse": { + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "string", + "x-stream-index": "002" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.004" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "string", + "x-stream-index": "004" + }, + "id": { + "type": "string", + "x-stream-index": "001.001" + }, + "image": { + "type": "string", + "x-stream-index": "001.003" + }, + "name": { + "type": "string", + "x-stream-index": "001.002" + }, + "role": { + "type": "string", + "x-stream-index": "001.005" + }, + "teams": { + "items": { + "type": "string" + }, + "type": "array", + "x-stream-index": "001.006" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "string", + "x-stream-index": "003" + } + }, + "required": [ + "id", + "custom", + "role", + "teams", + "created_at", + "updated_at" + ], + "type": "object" + }, + "VideoEvent": { + "description": "The discriminator object for all websocket events, you should use this to map event payloads to their own type", + "discriminator": { + "mapping": { + "call.accepted": "#/components/schemas/CallAcceptedEvent", + "call.blocked_user": "#/components/schemas/BlockedUserEvent", + "call.created": "#/components/schemas/CallCreatedEvent", + "call.ended": "#/components/schemas/CallEndedEvent", + "call.hls_broadcasting_failed": "#/components/schemas/CallHLSBroadcastingFailedEvent", + "call.hls_broadcasting_started": "#/components/schemas/CallHLSBroadcastingStartedEvent", + "call.hls_broadcasting_stopped": "#/components/schemas/CallHLSBroadcastingStoppedEvent", + "call.live_started": "#/components/schemas/CallLiveStartedEvent", + "call.member_added": "#/components/schemas/CallMemberAddedEvent", + "call.member_removed": "#/components/schemas/CallMemberRemovedEvent", + "call.member_updated": "#/components/schemas/CallMemberUpdatedEvent", + "call.member_updated_permission": "#/components/schemas/CallMemberUpdatedPermissionEvent", + "call.notification": "#/components/schemas/CallNotificationEvent", + "call.permission_request": "#/components/schemas/PermissionRequestEvent", + "call.permissions_updated": "#/components/schemas/UpdatedCallPermissionsEvent", + "call.reaction_new": "#/components/schemas/CallReactionEvent", + "call.recording_failed": "#/components/schemas/CallRecordingFailedEvent", + "call.recording_ready": "#/components/schemas/CallRecordingReadyEvent", + "call.recording_started": "#/components/schemas/CallRecordingStartedEvent", + "call.recording_stopped": "#/components/schemas/CallRecordingStoppedEvent", + "call.rejected": "#/components/schemas/CallRejectedEvent", + "call.ring": "#/components/schemas/CallRingEvent", + "call.session_ended": "#/components/schemas/CallSessionEndedEvent", + "call.session_participant_joined": "#/components/schemas/CallSessionParticipantJoinedEvent", + "call.session_participant_left": "#/components/schemas/CallSessionParticipantLeftEvent", + "call.session_started": "#/components/schemas/CallSessionStartedEvent", + "call.unblocked_user": "#/components/schemas/UnblockedUserEvent", + "call.updated": "#/components/schemas/CallUpdatedEvent", + "call.user_muted": "#/components/schemas/CallUserMuted", + "connection.error": "#/components/schemas/ConnectionErrorEvent", + "connection.ok": "#/components/schemas/ConnectedEvent", + "custom": "#/components/schemas/CustomVideoEvent", + "health.check": "#/components/schemas/HealthCheckEvent" + }, + "propertyName": "type" + }, + "oneOf": [ + { + "$ref": "#/components/schemas/BlockedUserEvent" + }, + { + "$ref": "#/components/schemas/CallAcceptedEvent" + }, + { + "$ref": "#/components/schemas/CallCreatedEvent" + }, + { + "$ref": "#/components/schemas/CallEndedEvent" + }, + { + "$ref": "#/components/schemas/CallHLSBroadcastingFailedEvent" + }, + { + "$ref": "#/components/schemas/CallHLSBroadcastingStartedEvent" + }, + { + "$ref": "#/components/schemas/CallHLSBroadcastingStoppedEvent" + }, + { + "$ref": "#/components/schemas/CallLiveStartedEvent" + }, + { + "$ref": "#/components/schemas/CallMemberAddedEvent" + }, + { + "$ref": "#/components/schemas/CallMemberRemovedEvent" + }, + { + "$ref": "#/components/schemas/CallMemberUpdatedEvent" + }, + { + "$ref": "#/components/schemas/CallMemberUpdatedPermissionEvent" + }, + { + "$ref": "#/components/schemas/CallNotificationEvent" + }, + { + "$ref": "#/components/schemas/CallReactionEvent" + }, + { + "$ref": "#/components/schemas/CallRecordingFailedEvent" + }, + { + "$ref": "#/components/schemas/CallRecordingReadyEvent" + }, + { + "$ref": "#/components/schemas/CallRecordingStartedEvent" + }, + { + "$ref": "#/components/schemas/CallRecordingStoppedEvent" + }, + { + "$ref": "#/components/schemas/CallRejectedEvent" + }, + { + "$ref": "#/components/schemas/CallRingEvent" + }, + { + "$ref": "#/components/schemas/CallSessionEndedEvent" + }, + { + "$ref": "#/components/schemas/CallSessionParticipantJoinedEvent" + }, + { + "$ref": "#/components/schemas/CallSessionParticipantLeftEvent" + }, + { + "$ref": "#/components/schemas/CallSessionStartedEvent" + }, + { + "$ref": "#/components/schemas/CallUpdatedEvent" + }, + { + "$ref": "#/components/schemas/CallUserMuted" + }, + { + "$ref": "#/components/schemas/ConnectedEvent" + }, + { + "$ref": "#/components/schemas/ConnectionErrorEvent" + }, + { + "$ref": "#/components/schemas/CustomVideoEvent" + }, + { + "$ref": "#/components/schemas/HealthCheckEvent" + }, + { + "$ref": "#/components/schemas/PermissionRequestEvent" + }, + { + "$ref": "#/components/schemas/UnblockedUserEvent" + }, + { + "$ref": "#/components/schemas/UpdatedCallPermissionsEvent" + } + ] + }, + "VideoSettings": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "camera_default_on": { + "type": "boolean", + "x-stream-index": "004" + }, + "camera_facing": { + "enum": [ + "front", + "back", + "external" + ], + "type": "string", + "x-stream-index": "005" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "required": [ + "enabled", + "access_request_enabled", + "target_resolution", + "camera_default_on", + "camera_facing" + ], + "type": "object" + }, + "VideoSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "camera_default_on": { + "type": "boolean", + "x-stream-index": "004" + }, + "camera_facing": { + "enum": [ + "front", + "back", + "external" + ], + "type": "string", + "x-stream-index": "005" + }, + "enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolutionRequest", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "WSAuthMessageRequest": { + "nullable": true, + "properties": { + "token": { + "title": "Token", + "type": "string", + "x-stream-index": "002" + }, + "user_details": { + "$ref": "#/components/schemas/ConnectUserDetailsRequest", + "x-stream-index": "001" + } + }, + "required": [ + "user_details", + "token" + ], + "type": "object" + }, + "WSCallEvent": { + "description": "This is just a placeholder for all client events", + "properties": { + "call_cid": { + "type": "string" + } + }, + "type": "object", + "x-stream-is-ws-call-event": true + }, + "WSClientEvent": { + "description": "This is just a placeholder for all client events", + "properties": { + "connection_id": { + "type": "string" + } + }, + "type": "object", + "x-stream-is-ws-client-event": true + } + }, + "securitySchemes": { + "JWT": { + "description": "JWT should be always provided when stream-auth-type=jwt.\n\nUsing JWT auth request could be authenticated as user or as server-side.\n\nWhen using user authentication permission checking is going to be applied to requests based on the user that is\nperforming a request.\n\nThe `authorization` header should be a JWT string signed using the secret attached to the API key used to perform\nrequests.\n\n**WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not\nshared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side.\nIf you wish, you can configure your application to ignore authentication (see `disable_auth_check`)\nThe JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well.\n", + "in": "header", + "name": "Authorization", + "type": "apiKey" + }, + "api_key": { + "description": "Application API key should be always set in order to authenticate the request.", + "in": "query", + "name": "api_key", + "type": "apiKey" + }, + "stream-auth-type": { + "description": "Stream-Auth-Type should be always set in order to authenticate the request. Possible\nvalues: `jwt` or `anonymous`.\n\n`jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization\nheader.\n\n`anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available\nto anonymous users.", + "in": "header", + "name": "Stream-Auth-Type", + "type": "apiKey" + } + } + }, + "externalDocs": { + "description": "Stream Video Documentation", + "url": "https://getstream.io/video/docs/" + }, + "info": { + "title": "Stream Video API", + "version": "v93.2.1" + }, + "openapi": "3.0.3", + "paths": { + "/call/{type}/{id}": { + "get": { + "description": "\n\nRequired permissions:\n- ReadCall\n", + "operationId": "GetCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "members_limit", + "schema": { + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer", + "writeOnly": true, + "x-stream-index": "004" + } + }, + { + "in": "query", + "name": "ring", + "schema": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "005" + } + }, + { + "in": "query", + "name": "notify", + "schema": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "006" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCallResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Get Call", + "x-stream-permissions": { + "ReadCall": "To retrieve a call" + } + }, + "patch": { + "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "UpdateCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallResponse" + } + } + }, + "description": "Call" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Update Call", + "x-stream-events": { + "call.updated": "" + }, + "x-stream-events-v2": { + "call.updated": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallUpdatedEvent" + } + } + }, + "x-stream-permissions": { + "UpdateCall": "To update a call" + } + }, + "post": { + "description": "Gets or creates a new call\n\nSends events:\n- call.created\n- call.notification\n- call.ring\n\nRequired permissions:\n- CreateCall\n- ReadCall\n- UpdateCallSettings\n", + "operationId": "GetOrCreateCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "007" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrCreateCallRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrCreateCallResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Get or create a call", + "x-stream-events": { + "call.created": "", + "call.notification": "", + "call.ring": "" + }, + "x-stream-events-v2": { + "call.created": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallCreatedEvent" + } + }, + "call.notification": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallNotificationEvent" + } + }, + "call.ring": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallRingEvent" + } + } + }, + "x-stream-permissions": { + "CreateCall": "To create a call", + "ReadCall": "To retrieve a call", + "UpdateCallSettings": "To create a call with different settings" + } + } + }, + "/call/{type}/{id}/block": { + "post": { + "description": "Block a user, preventing them from joining the call until they are unblocked.\n\nSends events:\n- call.blocked_user\n\nRequired permissions:\n- BlockUser\n", + "operationId": "BlockUser", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BlockUserRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BlockUserResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Block user on a call", + "x-stream-events": { + "call.blocked_user": "" + }, + "x-stream-events-v2": { + "call.blocked_user": { + "description": "", + "schema": { + "ref": "#/components/schemas/BlockedUserEvent" + } + } + }, + "x-stream-permissions": { + "BlockUser": "To block a user from a call" + } + } + }, + "/call/{type}/{id}/event": { + "post": { + "description": "Sends custom event to the call\n\nSends events:\n- custom\n\nRequired permissions:\n- SendEvent\n", + "operationId": "SendEvent", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendEventRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendEventResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Send custom event", + "x-stream-docs-page-id": "event_object", + "x-stream-events": { + "custom": "" + }, + "x-stream-events-v2": { + "custom": { + "description": "", + "schema": { + "ref": "#/components/schemas/CustomVideoEvent" + } + } + }, + "x-stream-permissions": { + "SendEvent": "To send custom events" + } + } + }, + "/call/{type}/{id}/go_live": { + "post": { + "description": "\n\nSends events:\n- call.live_started\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "GoLive", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoLiveRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GoLiveResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Set call as live", + "x-stream-events": { + "call.live_started": "" + }, + "x-stream-events-v2": { + "call.live_started": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallLiveStartedEvent" + } + } + }, + "x-stream-permissions": { + "UpdateCall": "To update a call" + } + } + }, + "/call/{type}/{id}/mark_ended": { + "post": { + "description": "\n\nSends events:\n- call.ended\n\nRequired permissions:\n- EndCall\n", + "operationId": "EndCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/EndCallResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "End call", + "x-stream-events": { + "call.ended": "" + }, + "x-stream-events-v2": { + "call.ended": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallEndedEvent" + } + } + }, + "x-stream-permissions": { + "EndCall": "To end a call" + } + } + }, + "/call/{type}/{id}/members": { + "post": { + "description": "\n\nSends events:\n- call.member_added\n- call.member_removed\n- call.member_updated\n\nRequired permissions:\n- RemoveCallMember\n- UpdateCallMember\n- UpdateCallMemberRole\n", + "operationId": "UpdateCallMembers", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallMembersRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallMembersResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Update Call Member", + "x-stream-events": { + "call.member_added": "", + "call.member_removed": "", + "call.member_updated": "" + }, + "x-stream-events-v2": { + "call.member_added": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallMemberAddedEvent" + } + }, + "call.member_removed": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallMemberRemovedEvent" + } + }, + "call.member_updated": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallMemberUpdatedEvent" + } + } + }, + "x-stream-permissions": { + "RemoveCallMember": "To remove participant", + "UpdateCallMember": "To upsert participant", + "UpdateCallMemberRole": "To update members role" + } + } + }, + "/call/{type}/{id}/mute_users": { + "post": { + "description": "Mutes users in a call\n\nRequired permissions:\n- MuteUsers\n", + "operationId": "MuteUsers", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUsersRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MuteUsersResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Mute users", + "x-stream-permissions": { + "MuteUsers": "To mute users on a call" + } + } + }, + "/call/{type}/{id}/pin": { + "post": { + "description": "Pins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", + "operationId": "VideoPin", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PinRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PinResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Pin", + "x-stream-permissions": { + "PinCallTrack": "" + } + } + }, + "/call/{type}/{id}/recordings": { + "get": { + "description": "Lists recordings\n\nRequired permissions:\n- ListRecordings\n", + "operationId": "ListRecordings", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListRecordingsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "List recordings", + "x-stream-permissions": { + "ListRecordings": "To list recordings" + } + } + }, + "/call/{type}/{id}/start_broadcasting": { + "post": { + "description": "Starts HLS broadcasting\n\nRequired permissions:\n- StartBroadcasting\n", + "operationId": "StartHLSBroadcasting", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartHLSBroadcastingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Start HLS broadcasting", + "x-stream-permissions": { + "StartBroadcasting": "To start HLS broadcasting" + } + } + }, + "/call/{type}/{id}/start_recording": { + "post": { + "description": "Starts recording\n\nSends events:\n- call.recording_started\n\nRequired permissions:\n- StopRecording\n", + "operationId": "StartRecording", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartRecordingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Start recording", + "x-stream-events": { + "call.recording_started": "" + }, + "x-stream-events-v2": { + "call.recording_started": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallRecordingStartedEvent" + } + } + }, + "x-stream-permissions": { + "StopRecording": "To start recording" + } + } + }, + "/call/{type}/{id}/start_transcription": { + "post": { + "description": "Starts transcription\n\nRequired permissions:\n- StartTranscription\n", + "operationId": "StartTranscription", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartTranscriptionResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Start transcription", + "x-stream-permissions": { + "StartTranscription": "To start transcribing" + } + } + }, + "/call/{type}/{id}/stop_broadcasting": { + "post": { + "description": "Stops HLS broadcasting\n\nRequired permissions:\n- StopBroadcasting\n", + "operationId": "StopHLSBroadcasting", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopHLSBroadcastingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Stop HLS broadcasting", + "x-stream-permissions": { + "StopBroadcasting": "Allows the user to stop HLS broadcasting" + } + } + }, + "/call/{type}/{id}/stop_live": { + "post": { + "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "StopLive", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopLiveResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Set call as not live", + "x-stream-events": { + "call.updated": "" + }, + "x-stream-events-v2": { + "call.updated": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallUpdatedEvent" + } + } + }, + "x-stream-permissions": { + "UpdateCall": "To update a call" + } + } + }, + "/call/{type}/{id}/stop_recording": { + "post": { + "description": "Stops recording\n\nSends events:\n- call.recording_stopped\n\nRequired permissions:\n- StopRecording\n", + "operationId": "StopRecording", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopRecordingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Stop recording", + "x-stream-events": { + "call.recording_stopped": "" + }, + "x-stream-events-v2": { + "call.recording_stopped": { + "description": "", + "schema": { + "ref": "#/components/schemas/CallRecordingStoppedEvent" + } + } + }, + "x-stream-permissions": { + "StopRecording": "To stop recording" + } + } + }, + "/call/{type}/{id}/stop_transcription": { + "post": { + "description": "Stops transcription\n\nRequired permissions:\n- StopTranscription\n", + "operationId": "StopTranscription", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopTranscriptionResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Stop transcription", + "x-stream-permissions": { + "StopTranscription": "To stop transcribing" + } + } + }, + "/call/{type}/{id}/unblock": { + "post": { + "description": "Removes the block for a user on a call. The user will be able to join the call again.\n\nSends events:\n- call.unblocked_user\n\nRequired permissions:\n- BlockUser\n", + "operationId": "UnblockUser", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnblockUserRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnblockUserResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Unblocks user on a call", + "x-stream-events": { + "call.unblocked_user": "" + }, + "x-stream-events-v2": { + "call.unblocked_user": { + "description": "", + "schema": { + "ref": "#/components/schemas/UnblockedUserEvent" + } + } + }, + "x-stream-permissions": { + "BlockUser": "To block / unblock a user from a call" + } + } + }, + "/call/{type}/{id}/unpin": { + "post": { + "description": "Unpins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", + "operationId": "VideoUnpin", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnpinRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnpinResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Unpin", + "x-stream-permissions": { + "PinCallTrack": "" + } + } + }, + "/call/{type}/{id}/user_permissions": { + "post": { + "description": "Updates user permissions\n\nSends events:\n- call.permissions_updated\n\nRequired permissions:\n- UpdateCallPermissions\n", + "operationId": "UpdateUserPermissions", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPermissionsRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPermissionsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Update user permissions", + "x-stream-docs-page-id": "update_user_permissions", + "x-stream-events": { + "call.permissions_updated": "Includes the new capabilities for the user" + }, + "x-stream-events-v2": { + "call.permissions_updated": { + "description": "Includes the new capabilities for the user", + "schema": { + "ref": "#/components/schemas/UpdatedCallPermissionsEvent" + } + } + }, + "x-stream-permissions": { + "UpdateCallPermissions": "To update user permissions" + } + } + }, + "/call/members": { + "post": { + "description": "Query call members with filter query\n\nRequired permissions:\n- ReadCall\n", + "operationId": "QueryMembers", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMembersRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMembersResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Query call members", + "x-stream-permissions": { + "ReadCall": "To retrieve a call" + } + } + }, + "/calls": { + "post": { + "description": "Query calls with filter query\n\nRequired permissions:\n- ReadCall\n", + "operationId": "QueryCalls", + "parameters": [ + { + "in": "query", + "name": "connection_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallsRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Query call", + "x-stream-permissions": { + "ReadCall": "To retrieve a call" + } + } + }, + "/calltypes": { + "get": { + "description": "\n", + "operationId": "ListCallTypes", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCallTypeResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "List Call Type", + "tags": [ + "Server-side" + ], + "x-stream-server-side": true + }, + "post": { + "description": "\n", + "operationId": "CreateCallType", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCallTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCallTypeResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Create Call Type", + "tags": [ + "Server-side" + ], + "x-stream-server-side": true + } + }, + "/calltypes/{name}": { + "delete": { + "description": "\n", + "operationId": "DeleteCallType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Delete Call Type", + "tags": [ + "Server-side" + ], + "x-stream-server-side": true + }, + "get": { + "description": "\n", + "operationId": "GetCallType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCallTypeResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Get Call Type", + "tags": [ + "Server-side" + ], + "x-stream-server-side": true + }, + "put": { + "description": "\n", + "operationId": "UpdateCallType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallTypeResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Update Call Type", + "tags": [ + "Server-side" + ], + "x-stream-server-side": true + } + }, + "/devices": { + "delete": { + "description": "Deletes one device\n", + "operationId": "DeleteDevice", + "parameters": [ + { + "in": "query", + "name": "id", + "schema": { + "description": "Device ID to delete", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Delete device", + "x-stream-docs-page-id": "push_devices" + }, + "get": { + "description": "Returns all available devices\n", + "operationId": "ListDevices", + "parameters": [ + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListDevicesResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "List devices", + "x-stream-docs-page-id": "push_devices" + }, + "post": { + "description": "Adds a new device to a user, if the same device already exists the call will have no effect\n", + "operationId": "CreateDevice", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateDeviceRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Response" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Create device", + "x-stream-docs-page-id": "push_devices" + } + }, + "/edges": { + "get": { + "description": "Returns the list of all edges available for video calls.\n", + "operationId": "GetEdges", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetEdgesResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Get Edges" + } + }, + "/guest": { + "post": { + "description": "\n", + "operationId": "CreateGuest", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateGuestRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateGuestResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Create Guest" + } + }, + "/video/connect": { + "get": { + "description": "Establishes WebSocket connection for user to video\n\nSends events:\n- connection.ok\n- health.check\n", + "operationId": "VideoConnect", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WSAuthMessageRequest" + } + } + }, + "required": true + }, + "responses": { + "400": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/APIError" + } + } + }, + "description": "Too many requests", + "headers": { + "X-RateLimit-Limit": { + "description": "The number of allowed requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Remaining": { + "description": "The number of remaining requests in the current period", + "schema": { + "type": "integer" + } + }, + "X-RateLimit-Reset": { + "description": "Timestamp when number of requests will be reset", + "schema": { + "type": "integer" + } + } + } + } + }, + "summary": "Video Connect (WebSocket)", + "x-stream-docs-page-id": "init_and_users", + "x-stream-events": { + "connection.ok": "", + "health.check": "" + }, + "x-stream-events-v2": { + "connection.ok": { + "description": "", + "schema": { + "ref": "#/components/schemas/ConnectedEvent" + } + }, + "health.check": { + "description": "", + "schema": { + "ref": "#/components/schemas/HealthCheckEvent" + } + } + } + } + } + }, + "security": [ + { + "JWT": [], + "api_key": [], + "stream-auth-type": [] + }, + { + "api_key": [], + "stream-auth-type": [] + } + ], + "servers": [ + { + "description": "Video Production API", + "url": "https://video.stream-io-api.com" + } + ] + } \ No newline at end of file From 552e63947230a5404d33a2b0e5fd3157072bbb7d Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Tue, 12 Dec 2023 17:01:02 +0100 Subject: [PATCH 2/5] Generate event page --- .../docs/api/_common_/EventApiModels.jsx | 36 ++++++++++++++++ .../{OpenApiModel.jsx => OpenApiModels.jsx} | 20 ++++++--- .../docusaurus/docs/api/basics/calls.mdx | 4 +- .../docusaurus/docs/api/webhooks/events.mdx | 42 ++----------------- 4 files changed, 55 insertions(+), 47 deletions(-) create mode 100644 docusaurus/video/docusaurus/docs/api/_common_/EventApiModels.jsx rename docusaurus/video/docusaurus/docs/api/_common_/{OpenApiModel.jsx => OpenApiModels.jsx} (79%) diff --git a/docusaurus/video/docusaurus/docs/api/_common_/EventApiModels.jsx b/docusaurus/video/docusaurus/docs/api/_common_/EventApiModels.jsx new file mode 100644 index 00000000..15c8bdaa --- /dev/null +++ b/docusaurus/video/docusaurus/docs/api/_common_/EventApiModels.jsx @@ -0,0 +1,36 @@ +import React from 'react'; +import OpenApiModels from './OpenApiModels'; +import apiJson from '../video-openapi.json'; + +const filter = (apiJson) => +Object.keys(apiJson.components.schemas).filter( + (key) => + apiJson.components.schemas[key]['x-stream-event-call-type'] === true, +); + +const events = filter(apiJson).map(key => { + const type = apiJson.components.schemas[key].properties.type.default || '-'; + const description = apiJson.components.schemas[key].description || '-'; + + return {key, type, description} +}); + +events.sort((e1, e2) => e1.type < e2.type ? -1 : (e1.type > e2.type ? 1 : 0)); + +const EventApiModels = () => { + return + + + + + + {events.map(event => + + + )} +
NameDescription
{event.type}{event.description}
+ +
+} + +export default EventApiModels; \ No newline at end of file diff --git a/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModel.jsx b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx similarity index 79% rename from docusaurus/video/docusaurus/docs/api/_common_/OpenApiModel.jsx rename to docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx index be111910..ecc337b4 100644 --- a/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModel.jsx +++ b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx @@ -1,10 +1,13 @@ import React from 'react'; import apiJson from '../video-openapi.json'; -const OpenApiModel = ({ modelName, recursive = true }) => { +const OpenApiModels = ({ modelName, modelFilter, recursive = true }) => { const models = React.useMemo(() => { - const modelsResult = [{name: modelName, properties: []}]; + if (!modelName && !modelFilter) { + return []; + } + const modelsResult = modelName ? [{name: modelName, properties: []}] : modelFilter(apiJson).map(key => ({name: key, properties: []})); for (let i = 0; i < modelsResult.length; i++) { const model = modelsResult[i]; @@ -24,8 +27,13 @@ const OpenApiModel = ({ modelName, recursive = true }) => { const ref = isArray ? property.items?.$ref : property.$ref; // Example $ref: #/components/schemas/EdgeResponse type = ref?.split('/')?.pop() || ''; - typeHref = `#${type}` - if (recursive && apiJson.components.schemas[type] && !modelsResult.find(r => r.name === type)) { + // enums are not yet parsed + let isEnum = apiJson.components.schemas[type] && !apiJson.components.schemas[type].properties; + if (recursive && !isEnum) { + typeHref = `#${type}`; + } + // if properties are undefined, it's an enum, we don't yet parse enums + if (recursive && !isEnum && apiJson.components.schemas[type] && !modelsResult.find(r => r.name === type)) { modelsResult.push({name: type, properties: []}); } } else { @@ -66,7 +74,7 @@ const OpenApiModel = ({ modelName, recursive = true }) => { } return modelsResult; - }, [modelName]); + }, [modelName, modelFilter]); return (
@@ -103,4 +111,4 @@ const OpenApiModel = ({ modelName, recursive = true }) => { ); }; -export default OpenApiModel; +export default OpenApiModels; diff --git a/docusaurus/video/docusaurus/docs/api/basics/calls.mdx b/docusaurus/video/docusaurus/docs/api/basics/calls.mdx index ec9d379f..6642ac4e 100644 --- a/docusaurus/video/docusaurus/docs/api/basics/calls.mdx +++ b/docusaurus/video/docusaurus/docs/api/basics/calls.mdx @@ -15,7 +15,7 @@ import CallFilters from '../../../shared/video/_call-filters.mdx'; import CallMemberFilters from '../../../shared/video/_call-member-filters.mdx'; import CallSort from '../../../shared/video/_call-sort-fields.mdx'; import CallMemberSort from '../../../shared/video/_call-member-sort-fields.mdx'; -import OpenApiModel from '../_common_/OpenApiModel'; +import OpenApiModels from '../_common_/OpenApiModels'; ## Creating calls @@ -71,7 +71,7 @@ await client.call('default', 'test-outgoing-call').getOrCreate({ ### Model - + ## Updating calls diff --git a/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx b/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx index fcbae0ec..f7bfa32e 100644 --- a/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx +++ b/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx @@ -5,44 +5,8 @@ slug: /streaming/events title: Events --- -Here you can find the list of events are sent to Webhook and SQS. - -| Event Type | Description | -|---------------------------------|---------------------------------------------------| -| custom | Sent when a custom event is triggered | -| call.accepted | Sent when a user accepts an incoming call | -| call.blocked_user | Sent when a user is blocked | -| call.broadcasting_started | Sent when HLS broadcasting has started | -| call.broadcasting_failed | Sent when HLS broadcasting has failed | -| call.broadcasting_stopped | Sent when HLS broadcasting is stopped | -| call.created | Sent when a call is created | -| call.ended | Sent when a call is marked as ended | -| call.live_started | Sent when a call goes live | -| call.member_added | Sent when a member is added | -| call.member_removed | Sent when a member is removed | -| call.member_updated | Sent when a member is updated | -| call.member_updated_permission | Sent when permissions are updated for a member | -| call.permission_request | Sent when a user requests access on a call | -| call.permissions_updated | Sent when permissions are updated on a call | -| call.reaction_new | Sent when a reaction is sent on a call | -| call.rejected | Sent when a user rejects an incoming call | -| call.session_ended | Sent when the session has ended | -| call.session_participant_joined | Sent when a user joins a call | -| call.session_participant_left | Sent when a user leaves a call | -| call.session_started | Sent when a call session starts | -| call.unblocked_user | Sent when a user is unblocked | -| call.user_muted | Sent when a call member is muted | -| call.ring | Sent when a user rings others to join a call | -| call.notification | Sent when a user notifies others to join a call | -| call.updated | Sent when a call is updated | -| call.recording_started | Sent when call recording has started | -| call.recording_stopped | Sent when call recording has stopped | -| call.recording_ready | Sent when the recording is available for download | -| call.recording_failed | Sent when recording fails for any reason | -| call.transcription_started | Sent when the transcription has started | -| call.transcription_stopped | Sent when the transcription is stopped | -| call.transcription_ready | Sent when the transcription is ready | -| call.transcription_failed | Sent when the transcription fails | +import EventApiModels from '../_common_/EventApiModels'; +Here you can find the list of events are sent to Webhook and SQS. -You can find the definition of each events in the OpenAPI spec available [here](https://github.com/GetStream/protocol/blob/main/openapi/video-openapi.yaml) + From 135a0af34f7412c278a7a4b4946e4a70c7c87532 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Wed, 13 Dec 2023 16:13:01 +0100 Subject: [PATCH 3/5] Refactor model parsing, add unit tests for model parsing --- .gitignore | 3 +- .../docs/api/_common_/OpenApiModels.jsx | 72 +- .../api/_common_/open-api-model-parser.js | 88 ++ .../__tests__/mock-open-api.json | 177 +++ .../__tests__/model-parsing.test.js | 83 + .../__tests__/model-property-parsing.test.js | 146 ++ docusaurus/video/openapi-to-docs/package.json | 14 + .../video/openapi-to-docs/vite.config.js | 11 + docusaurus/video/openapi-to-docs/yarn.lock | 1362 +++++++++++++++++ 9 files changed, 1886 insertions(+), 70 deletions(-) create mode 100644 docusaurus/video/docusaurus/docs/api/_common_/open-api-model-parser.js create mode 100644 docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json create mode 100644 docusaurus/video/openapi-to-docs/__tests__/model-parsing.test.js create mode 100644 docusaurus/video/openapi-to-docs/__tests__/model-property-parsing.test.js create mode 100644 docusaurus/video/openapi-to-docs/package.json create mode 100644 docusaurus/video/openapi-to-docs/vite.config.js create mode 100644 docusaurus/video/openapi-to-docs/yarn.lock diff --git a/.gitignore b/.gitignore index a131131d..09b8eaf8 100644 --- a/.gitignore +++ b/.gitignore @@ -20,4 +20,5 @@ ts/ !.yarn/versions docusaurus/video/docusaurus/shared node_modules/.yarn-integrity -yarn.lock + +node_modules \ No newline at end of file diff --git a/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx index ecc337b4..82acfa45 100644 --- a/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx +++ b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx @@ -1,5 +1,5 @@ import React from 'react'; -import apiJson from '../video-openapi.json'; +import { parseModel } from './open-api-model-parser'; const OpenApiModels = ({ modelName, modelFilter, recursive = true }) => { @@ -7,73 +7,7 @@ const OpenApiModels = ({ modelName, modelFilter, recursive = true }) => { if (!modelName && !modelFilter) { return []; } - const modelsResult = modelName ? [{name: modelName, properties: []}] : modelFilter(apiJson).map(key => ({name: key, properties: []})); - - for (let i = 0; i < modelsResult.length; i++) { - const model = modelsResult[i]; - - const schemaJson = apiJson.components.schemas[model.name]; - const propertiesJson = schemaJson.properties; - - model.properties = Object.keys(propertiesJson).map(key => { - const property = propertiesJson[key]; - - // Parse type info - let type; - let typeHref; - let displayType; - let isArray = property.type === 'array'; - if (property.$ref || isArray && property.items?.$ref) { - const ref = isArray ? property.items?.$ref : property.$ref; - // Example $ref: #/components/schemas/EdgeResponse - type = ref?.split('/')?.pop() || ''; - // enums are not yet parsed - let isEnum = apiJson.components.schemas[type] && !apiJson.components.schemas[type].properties; - if (recursive && !isEnum) { - typeHref = `#${type}`; - } - // if properties are undefined, it's an enum, we don't yet parse enums - if (recursive && !isEnum && apiJson.components.schemas[type] && !modelsResult.find(r => r.name === type)) { - modelsResult.push({name: type, properties: []}); - } - } else { - type = (isArray ? property.items?.type : property.type) || '' - } - displayType = isArray ? `${type}[]` : type; - if (property.enum) { - displayType += ` (${property.enum.join(', ')})` - } - - // Parse title + description - let description = property.title; - if (property.description) { - description += ` - ${property.description}`; - } - - // Parse constraints - const constraints = []; - if (schemaJson.required?.includes(key)) { - constraints.push('Required'); - } - if (property.minimum !== undefined) { - constraints.push(`Minimum: ${property.minimum}`) - } - if (property.maximum !== undefined) { - constraints.push(`Maximum: ${property.maximum}`) - } - - return { - name: key, - type, - displayType, - typeHref, - constraints, - description - } - }); - } - - return modelsResult; + return parseModel({modelName, modelFilter, recursive}); }, [modelName, modelFilter]); return ( @@ -96,7 +30,7 @@ const OpenApiModels = ({ modelName, modelFilter, recursive = true }) => { {p.name} - {p.typeHref ? {p.displayType} : {p.displayType}} + {p.type.definitionLink ? {p.type.formattedName} : {p.type.formattedName}} {p.description || '-'} {p.constraints.join(', ') || '-'} diff --git a/docusaurus/video/docusaurus/docs/api/_common_/open-api-model-parser.js b/docusaurus/video/docusaurus/docs/api/_common_/open-api-model-parser.js new file mode 100644 index 00000000..a9bca698 --- /dev/null +++ b/docusaurus/video/docusaurus/docs/api/_common_/open-api-model-parser.js @@ -0,0 +1,88 @@ +import videoApiJson from '../video-openapi.json'; + +export const parseModel = ({ modelName, modelFilter, recursive = true, apiJson = videoApiJson }) => { + const models = modelName ? [{name: modelName, properties: []}] : modelFilter(apiJson).map(_modelName => ({name: _modelName, properties: []})); + + for (let i = 0; i < models.length; i++) { + const model = models[i]; + + const schemaJson = apiJson.components.schemas[model.name]; + const propertiesJson = schemaJson.properties; + + model.properties = Object.keys(propertiesJson).map(propertyName => { + const property = propertiesJson[propertyName]; + + const type = parsePropertyType(property); + + // enums are not yet parsed + const isEnum = apiJson.components.schemas[type.name] && !apiJson.components.schemas[type.name].properties; + const shouldDisplayTypeDefLink = recursive && !isEnum; + + if (recursive && !isEnum && apiJson.components.schemas[type.name] && !models.find(r => r.name === type.name)) { + models.push({name: type.name, properties: []}); + } + + const description = parsePropertyDescription(property); + + const isRequired = schemaJson.required?.includes(propertyName); + const constraints = parsePropertyConstraints(property, isRequired); + + + return { + name: propertyName, + type: {...type, definitionLink: shouldDisplayTypeDefLink ? type.definitionLink : undefined}, + constraints, + description + } + }); + } + + return models; + } + + export const parsePropertyType = (property) => { + let name; + let definitionLink; + let formattedName; + let isArray = property.type === 'array'; + if (property.$ref || isArray && property.items?.$ref) { + const ref = isArray ? property.items?.$ref : property.$ref; + // Example $ref: #/components/schemas/EdgeResponse + name = ref?.split('/')?.pop() || ''; + definitionLink = `#${name}`; + } else { + name = (isArray ? property.items?.type : property.type) || '' + } + + formattedName = name; + + if (property.enum || isArray && property.items.enum) { + const enumValues = isArray ? property.items.enum : property.enum; + formattedName += ` (${enumValues.join(', ')})` + } + + formattedName = isArray ? `${formattedName}[]` : formattedName; + + return { + name, definitionLink, formattedName, isArray + } + } + + export const parsePropertyDescription = (property) => { + return property.description; + } + + export const parsePropertyConstraints = (property, required) => { + const constraints = []; + if (required) { + constraints.push('Required'); + } + if (property.minimum !== undefined) { + constraints.push(`Minimum: ${property.minimum}`) + } + if (property.maximum !== undefined) { + constraints.push(`Maximum: ${property.maximum}`) + } + + return constraints; + } \ No newline at end of file diff --git a/docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json b/docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json new file mode 100644 index 00000000..609faaff --- /dev/null +++ b/docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json @@ -0,0 +1,177 @@ +{ + "components": { + "schemas": { + "GetOrCreateCallRequest": { + "nullable": true, + "properties": { + "data": { + "$ref": "#/components/schemas/CallRequest", + "title": "Data", + "description": "Configuration options for the call", + "x-stream-index": "003" + }, + "members_limit": { + "format": "int32", + "maximum": 100, + "type": "integer", + "x-stream-index": "006" + }, + "notify": { + "description": "if provided it sends a notification event to the members for this call", + "title": "Notify", + "type": "boolean", + "x-stream-index": "005" + }, + "ring": { + "description": "if provided it sends a ring event to the members for this call", + "title": "Ring", + "type": "boolean", + "x-stream-index": "004" + } + }, + "type": "object", + "required": ["data"] + }, + "CallRequest": { + "properties": { + "created_by": { + "$ref": "#/components/schemas/UserRequest", + "title": "The user that create this call", + "x-backend-only": true, + "x-stream-index": "008" + }, + "created_by_id": { + "title": "The id of the user that create this call", + "type": "string", + "x-backend-only": true, + "x-stream-index": "009" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "010" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberRequest" + }, + "maximum": 100, + "type": "array", + "x-stream-index": "011" + }, + "settings_override": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "012" + }, + "starts_at": { + "format": "date-time", + "type": "string", + "x-stream-index": "013" + }, + "team": { + "type": "string", + "x-stream-index": "007" + } + }, + "type": "object" + }, + "MemberRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "002" + }, + "user_id": { + "minLength": 1, + "title": "User ID", + "type": "string", + "x-stream-index": "001" + } + }, + "required": [ + "user_id" + ], + "type": "object" + }, + "OwnCapability": { + "description": "All possibility of string to use", + "enum": [ + "block-users", + "create-call", + "create-reaction", + "end-call", + "join-backstage", + "join-call", + "join-ended-call", + "mute-users", + "pin-for-everyone", + "read-call", + "remove-call-member", + "screenshare", + "send-audio", + "send-video", + "start-broadcast-call", + "start-record-call", + "start-transcription-call", + "stop-broadcast-call", + "stop-record-call", + "stop-transcription-call", + "update-call", + "update-call-member", + "update-call-permissions", + "update-call-settings" + ], + "title": "OwnCapability", + "type": "string" + }, + "UpdateCallResponse": { + "description": "Represents a call", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "duration": { + "type": "string", + "x-stream-index": "002.001" + }, + "members": { + "items": { + "$ref": "#/components/schemas/MemberResponse" + }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { + "$ref": "#/components/schemas/OwnCapability" + }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "duration" + ], + "title": "Call", + "type": "object" + } + } + } + } \ No newline at end of file diff --git a/docusaurus/video/openapi-to-docs/__tests__/model-parsing.test.js b/docusaurus/video/openapi-to-docs/__tests__/model-parsing.test.js new file mode 100644 index 00000000..71b801ae --- /dev/null +++ b/docusaurus/video/openapi-to-docs/__tests__/model-parsing.test.js @@ -0,0 +1,83 @@ +import { describe, expect, it } from 'vitest'; +import { parseModel } from '../../docusaurus/docs/api/_common_/open-api-model-parser'; +import mockApiJson from './mock-open-api.json'; + +describe('Parse model properties', () => { + + it('display a single model', () => { + const result = parseModel({modelName: 'GetOrCreateCallRequest', recursive: false, apiJson: mockApiJson}); + + expect(result.length).toBe(1); + + const model = result[0]; + + expect(model.name).toBe('GetOrCreateCallRequest'); + expect(model.properties.length).toBe(4); + + const property = model.properties[0]; + + expect(property.name).toBe('data'); + expect(property.type).toBeDefined(); + expect(property.type.formattedName).toBe('CallRequest'); + expect(property.description).toBe('Configuration options for the call'); + expect(property.constraints).toEqual(['Required']); + }); + + it('display a single model recursively', () => { + const result = parseModel({modelName: 'GetOrCreateCallRequest', recursive: true, apiJson: mockApiJson}); + + expect(result.length).toBe(3); + }); + + it('display multiple models', () => { + const result = parseModel({modelFilter: (apiJson) => Object.keys(apiJson.components.schemas).filter(modelName => modelName.toLowerCase().includes('call')), recursive: false, apiJson: mockApiJson}); + + expect(result.length).toBe(3); + }); + + it('display multiple models recursively', () => { + const result = parseModel({modelFilter: (apiJson) => Object.keys(apiJson.components.schemas).filter(modelName => modelName.toLowerCase().includes('call')), recursive: true, apiJson: mockApiJson}); + + expect(result.length).toBe(4); + }); + + it(`shouldn't display property definition links for non-recursive models`, () => { + const result = parseModel({modelName: 'GetOrCreateCallRequest', recursive: false, apiJson: mockApiJson}); + + const dataProperty = result[0].properties.find(p => p.name === 'data'); + + expect(dataProperty.type.name).toBe('CallRequest'); + expect(dataProperty.type.definitionLink).toBeUndefined(); + }); + + it(`shouldn't display property definition links for top-level enums`, () => { + const result = parseModel({modelName: 'UpdateCallResponse', recursive: false, apiJson: mockApiJson}); + + const ownCapabilitiesProperty = result[0].properties.find(p => p.name === 'own_capabilities'); + + expect(ownCapabilitiesProperty.type.definitionLink).toBeUndefined(); + }); + + it('should set required flag properly', () => { + const apiJson = { + components: { + schemas: { + MyModel: { + properties: { + a: {}, + b: {} + }, + required: ['a'] + } + } + } + } + + const result = parseModel({modelName: 'MyModel', apiJson}); + + const aProperty = result[0].properties.find(p => p.name === 'a'); + const bProperty = result[0].properties.find(p => p.name === 'b'); + expect(aProperty.constraints).toEqual(['Required']); + expect(bProperty.constraints).toEqual([]); + }) +}); diff --git a/docusaurus/video/openapi-to-docs/__tests__/model-property-parsing.test.js b/docusaurus/video/openapi-to-docs/__tests__/model-property-parsing.test.js new file mode 100644 index 00000000..d029b6f3 --- /dev/null +++ b/docusaurus/video/openapi-to-docs/__tests__/model-property-parsing.test.js @@ -0,0 +1,146 @@ +import { beforeEach, describe, expect, it } from 'vitest'; +import { + parsePropertyConstraints, + parsePropertyDescription, + parsePropertyType, +} from '../../docusaurus/docs/api/_common_/open-api-model-parser'; + +describe('Parse model properties', () => { + let property; + + beforeEach(() => { + property = { + description: 'Response HTTP status code', + format: 'int32', + title: 'Status code', + type: 'integer', + 'x-stream-index': '004', + }; + }); + + describe('type', () => { + it('primitive type', () => { + property.type = 'string'; + + expect(parsePropertyType(property)).toEqual({ + name: 'string', + formattedName: 'string', + definitionLink: undefined, + isArray: false + }); + }); + + it('enum', () => { + property.type = 'string'; + property.enum = [ + "speaker", + "earpiece" + ], + + expect(parsePropertyType(property)).toEqual({ + name: 'string', + formattedName: 'string (speaker, earpiece)', + definitionLink: undefined, + isArray: false + }); + }); + + it('array of enums', () => { + property.type = 'array'; + property.items = { + type: 'string', + enum: [ + "speaker", + "earpiece" + ] + }; + + expect(parsePropertyType(property)).toEqual({ + name: 'string', + formattedName: 'string (speaker, earpiece)[]', + definitionLink: undefined, + isArray: true + }); + }); + + it('array of primitive types', () => { + property.type = 'array'; + property.items = { + "type": "string" + }; + + expect(parsePropertyType(property)).toEqual({ + name: 'string', + formattedName: 'string[]', + definitionLink: undefined, + isArray: true + }); + }); + + it('reference type', () => { + property.type = undefined; + property.$ref = '#/components/schemas/CallResponse'; + + expect(parsePropertyType(property)).toEqual({ + name: 'CallResponse', + formattedName: 'CallResponse', + definitionLink: '#CallResponse', + isArray: false + }); + }); + + it('array of reference types', () => { + property.type = 'array'; + property.items = { + $ref: "#/components/schemas/MemberResponse" + }; + + expect(parsePropertyType(property)).toEqual({ + name: 'MemberResponse', + formattedName: 'MemberResponse[]', + definitionLink: '#MemberResponse', + isArray: true + }); + }); + }) + + it('description', () => { + property.description = undefined; + + expect(parsePropertyDescription(property)).toBe(undefined); + + property.description = 'Response HTTP status code'; + + expect(parsePropertyDescription(property)).toBe( + 'Response HTTP status code', + ); + }); + + describe('constraints', () => { + it('no constraints', () => { + expect(parsePropertyConstraints(property)).toEqual([]); + }); + + it('required', () => { + expect(parsePropertyConstraints(property, true)).toEqual(['Required']) + }); + + it('maximum', () => { + property.maximum = 5; + + expect(parsePropertyConstraints(property)).toEqual(['Maximum: 5']) + }); + + it('minimum', () => { + property.minimum = 1; + + expect(parsePropertyConstraints(property)).toEqual(['Minimum: 1']) + }); + + it('multiple constraints', () => { + property.minimum = 1; + + expect(parsePropertyConstraints(property, true)).toEqual(['Required', 'Minimum: 1']) + }); + }) +}); diff --git a/docusaurus/video/openapi-to-docs/package.json b/docusaurus/video/openapi-to-docs/package.json new file mode 100644 index 00000000..9ffc7d4e --- /dev/null +++ b/docusaurus/video/openapi-to-docs/package.json @@ -0,0 +1,14 @@ +{ + "name": "openapi-to-docs", + "version": "1.0.0", + "license": "MIT", + "scripts": { + "test": "vitest", + "test:ui": "vitest --ui" + }, + "devDependencies": { + "@vitejs/plugin-react": "^4.2.1", + "jsdom": "^23.0.1", + "vitest": "^1.0.4" + } +} diff --git a/docusaurus/video/openapi-to-docs/vite.config.js b/docusaurus/video/openapi-to-docs/vite.config.js new file mode 100644 index 00000000..b0ce391b --- /dev/null +++ b/docusaurus/video/openapi-to-docs/vite.config.js @@ -0,0 +1,11 @@ +import react from '@vitejs/plugin-react' +import { defineConfig } from 'vite' + +export default defineConfig({ + plugins: [react()], + test: { + globals: true, + environment: 'jsdom', + css: false, + }, +}) \ No newline at end of file diff --git a/docusaurus/video/openapi-to-docs/yarn.lock b/docusaurus/video/openapi-to-docs/yarn.lock new file mode 100644 index 00000000..745e96a2 --- /dev/null +++ b/docusaurus/video/openapi-to-docs/yarn.lock @@ -0,0 +1,1362 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.23.5": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" + integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.6" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helpers@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" + integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" + +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== + +"@babel/plugin-transform-react-jsx-self@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz#ed3e7dadde046cce761a8e3cf003a13d1a7972d9" + integrity sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-react-jsx-source@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz#03527006bdc8775247a78643c51d4e715fe39a3e" + integrity sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" + integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@esbuild/android-arm64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz#683794bdc3d27222d3eced7b74cad15979548031" + integrity sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ== + +"@esbuild/android-arm@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.9.tgz#21a4de41f07b2af47401c601d64dfdefd056c595" + integrity sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA== + +"@esbuild/android-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.9.tgz#e2d7674bc025ddc8699f0cc76cb97823bb63c252" + integrity sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA== + +"@esbuild/darwin-arm64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz#ae7a582289cc5c0bac15d4b9020a90cb7288f1e9" + integrity sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw== + +"@esbuild/darwin-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz#8a216c66dcf51addeeb843d8cfaeff712821d12b" + integrity sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ== + +"@esbuild/freebsd-arm64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz#63d4f603e421252c3cd836b18d01545be7c6c440" + integrity sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g== + +"@esbuild/freebsd-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz#a3db52595be65360eae4de1d1fa3c1afd942e1e4" + integrity sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA== + +"@esbuild/linux-arm64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz#4ae5811ce9f8d7df5eb9edd9765ea9401a534f13" + integrity sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ== + +"@esbuild/linux-arm@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz#9807e92cfd335f46326394805ad488e646e506f2" + integrity sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw== + +"@esbuild/linux-ia32@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz#18892c10f3106652b16f9da88a0362dc95ed46c7" + integrity sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q== + +"@esbuild/linux-loong64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz#dc2ebf9a125db0a1bba18c2bbfd4fbdcbcaf61c2" + integrity sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA== + +"@esbuild/linux-mips64el@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz#4c2f7c5d901015e3faf1563c4a89a50776cb07fd" + integrity sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw== + +"@esbuild/linux-ppc64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz#8385332713b4e7812869622163784a5633f76fc4" + integrity sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ== + +"@esbuild/linux-riscv64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz#23f1db24fa761be311874f32036c06249aa20cba" + integrity sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg== + +"@esbuild/linux-s390x@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz#2dffe497726b897c9f0109e774006e25b33b4fd0" + integrity sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw== + +"@esbuild/linux-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz#ceb1d62cd830724ff5b218e5d3172a8bad59420e" + integrity sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A== + +"@esbuild/netbsd-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz#0cbca65e9ef4d3fc41502d3e055e6f49479a8f18" + integrity sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug== + +"@esbuild/openbsd-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz#1f57adfbee09c743292c6758a3642e875bcad1cf" + integrity sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw== + +"@esbuild/sunos-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz#116be6adbd2c7479edeeb5f6ea0441002ab4cb9c" + integrity sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw== + +"@esbuild/win32-arm64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz#2be22131ab18af4693fd737b161d1ef34de8ca9d" + integrity sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg== + +"@esbuild/win32-ia32@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz#e10ead5a55789b167b4225d2469324538768af7c" + integrity sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg== + +"@esbuild/win32-x64@0.19.9": + version "0.19.9" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz#b2da6219b603e3fa371a78f53f5361260d0c5585" + integrity sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ== + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@rollup/rollup-android-arm-eabi@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.0.tgz#0437b27edd7095d0b6d5db99d13af8157d7c58b0" + integrity sha512-+1ge/xmaJpm1KVBuIH38Z94zj9fBD+hp+/5WLaHgyY8XLq1ibxk/zj6dTXaqM2cAbYKq8jYlhHd6k05If1W5xA== + +"@rollup/rollup-android-arm64@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.0.tgz#d4c14ef9e45d5c46b8d1f611ab8124a611d5be5b" + integrity sha512-im6hUEyQ7ZfoZdNvtwgEJvBWZYauC9KVKq1w58LG2Zfz6zMd8gRrbN+xCVoqA2hv/v6fm9lp5LFGJ3za8EQH3A== + +"@rollup/rollup-darwin-arm64@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.0.tgz#6f3fdf5712db6b5e3d8f62a86a09cd659dd871f9" + integrity sha512-u7aTMskN6Dmg1lCT0QJ+tINRt+ntUrvVkhbPfFz4bCwRZvjItx2nJtwJnJRlKMMaQCHRjrNqHRDYvE4mBm3DlQ== + +"@rollup/rollup-darwin-x64@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.0.tgz#626d7786fe7c10b2e8533ad981b4a791fd72b9d0" + integrity sha512-8FvEl3w2ExmpcOmX5RJD0yqXcVSOqAJJUJ29Lca29Ik+3zPS1yFimr2fr5JSZ4Z5gt8/d7WqycpgkX9nocijSw== + +"@rollup/rollup-linux-arm-gnueabihf@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.0.tgz#57ece7bb1b7659a3ea2ace580a63b8f92b3161f1" + integrity sha512-lHoKYaRwd4gge+IpqJHCY+8Vc3hhdJfU6ukFnnrJasEBUvVlydP8PuwndbWfGkdgSvZhHfSEw6urrlBj0TSSfg== + +"@rollup/rollup-linux-arm64-gnu@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.0.tgz#345b276b814a5377344adc5780c4dfb7cd0e8ba9" + integrity sha512-JbEPfhndYeWHfOSeh4DOFvNXrj7ls9S/2omijVsao+LBPTPayT1uKcK3dHW3MwDJ7KO11t9m2cVTqXnTKpeaiw== + +"@rollup/rollup-linux-arm64-musl@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.0.tgz#61cc6516e6e92e2205ea1d0ac30326379b0563c8" + integrity sha512-ahqcSXLlcV2XUBM3/f/C6cRoh7NxYA/W7Yzuv4bDU1YscTFw7ay4LmD7l6OS8EMhTNvcrWGkEettL1Bhjf+B+w== + +"@rollup/rollup-linux-riscv64-gnu@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.0.tgz#e9add70ddca7bd6f685ec447ae83eb3be552f211" + integrity sha512-uwvOYNtLw8gVtrExKhdFsYHA/kotURUmZYlinH2VcQxNCQJeJXnkmWgw2hI9Xgzhgu7J9QvWiq9TtTVwWMDa+w== + +"@rollup/rollup-linux-x64-gnu@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.0.tgz#ece153613f0cf2c864dbfc2076c579da8abd51a9" + integrity sha512-m6pkSwcZZD2LCFHZX/zW2aLIISyzWLU3hrLLzQKMI12+OLEzgruTovAxY5sCZJkipklaZqPy/2bEEBNjp+Y7xg== + +"@rollup/rollup-linux-x64-musl@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.0.tgz#2d2dbdf5fbf2c19d1f3d31b8a7850b57f5799037" + integrity sha512-VFAC1RDRSbU3iOF98X42KaVicAfKf0m0OvIu8dbnqhTe26Kh6Ym9JrDulz7Hbk7/9zGc41JkV02g+p3BivOdAg== + +"@rollup/rollup-win32-arm64-msvc@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.0.tgz#bf2dbad350376e46cb77fab408bb398ad5f3648d" + integrity sha512-9jPgMvTKXARz4inw6jezMLA2ihDBvgIU9Ml01hjdVpOcMKyxFBJrn83KVQINnbeqDv0+HdO1c09hgZ8N0s820Q== + +"@rollup/rollup-win32-ia32-msvc@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.0.tgz#5c26b07f74f4054f3ecf202550100496ed2e73f3" + integrity sha512-WE4pT2kTXQN2bAv40Uog0AsV7/s9nT9HBWXAou8+++MBCnY51QS02KYtm6dQxxosKi1VIz/wZIrTQO5UP2EW+Q== + +"@rollup/rollup-win32-x64-msvc@4.9.0": + version "4.9.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.0.tgz#4ea610e0c40a07a8afa2977cbf80507f41c2271c" + integrity sha512-aPP5Q5AqNGuT0tnuEkK/g4mnt3ZhheiXrDIiSVIHN9mcN21OyXDVbEMqmXPE7e2OplNLDkcvV+ZoGJa2ZImFgw== + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@types/babel__core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*": + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== + dependencies: + "@babel/types" "^7.20.7" + +"@vitejs/plugin-react@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" + integrity sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ== + dependencies: + "@babel/core" "^7.23.5" + "@babel/plugin-transform-react-jsx-self" "^7.23.3" + "@babel/plugin-transform-react-jsx-source" "^7.23.3" + "@types/babel__core" "^7.20.5" + react-refresh "^0.14.0" + +"@vitest/expect@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-1.0.4.tgz#2751018b6e527841043e046ff424304453a0a024" + integrity sha512-/NRN9N88qjg3dkhmFcCBwhn/Ie4h064pY3iv7WLRsDJW7dXnEgeoa8W9zy7gIPluhz6CkgqiB3HmpIXgmEY5dQ== + dependencies: + "@vitest/spy" "1.0.4" + "@vitest/utils" "1.0.4" + chai "^4.3.10" + +"@vitest/runner@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-1.0.4.tgz#c4dcb88c07f40b91293ff1331747ee58fad6d5e4" + integrity sha512-rhOQ9FZTEkV41JWXozFM8YgOqaG9zA7QXbhg5gy6mFOVqh4PcupirIJ+wN7QjeJt8S8nJRYuZH1OjJjsbxAXTQ== + dependencies: + "@vitest/utils" "1.0.4" + p-limit "^5.0.0" + pathe "^1.1.1" + +"@vitest/snapshot@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@vitest/snapshot/-/snapshot-1.0.4.tgz#7020983b3963b473237fea08d347ea83b266b9bb" + integrity sha512-vkfXUrNyNRA/Gzsp2lpyJxh94vU2OHT1amoD6WuvUAA12n32xeVZQ0KjjQIf8F6u7bcq2A2k969fMVxEsxeKYA== + dependencies: + magic-string "^0.30.5" + pathe "^1.1.1" + pretty-format "^29.7.0" + +"@vitest/spy@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-1.0.4.tgz#e182c78fb9b1178ff789ad7eb4560ba6750e6e9b" + integrity sha512-9ojTFRL1AJVh0hvfzAQpm0QS6xIS+1HFIw94kl/1ucTfGCaj1LV/iuJU4Y6cdR03EzPDygxTHwE1JOm+5RCcvA== + dependencies: + tinyspy "^2.2.0" + +"@vitest/utils@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-1.0.4.tgz#6e673eaf87a2ff28a12688d17bdbb62cc22bf773" + integrity sha512-gsswWDXxtt0QvtK/y/LWukN7sGMYmnCcv1qv05CsY6cU/Y1zpGX1QuvLs+GO1inczpE6Owixeel3ShkjhYtGfA== + dependencies: + diff-sequences "^29.6.3" + loupe "^2.3.7" + pretty-format "^29.7.0" + +acorn-walk@^8.3.0: + version "8.3.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" + integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== + +acorn@^8.10.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + +agent-base@^7.0.2, agent-base@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + dependencies: + debug "^4.3.4" + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +cac@^6.7.14: + version "6.7.14" + resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +caniuse-lite@^1.0.30001565: + version "1.0.30001570" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca" + integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== + +chai@^4.3.10: + version "4.3.10" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" + integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.3" + deep-eql "^4.1.3" + get-func-name "^2.0.2" + loupe "^2.3.6" + pathval "^1.1.1" + type-detect "^4.0.8" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +check-error@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== + dependencies: + get-func-name "^2.0.2" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssstyle@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a" + integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg== + dependencies: + rrweb-cssom "^0.6.0" + +data-urls@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" + integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== + dependencies: + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" + +debug@4, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decimal.js@^10.4.3: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +deep-eql@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +electron-to-chromium@^1.4.601: + version "1.4.611" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.611.tgz#92d3a8f03110fbf5f99b054da97825f994fa480a" + integrity sha512-ZtRpDxrjHapOwxtv+nuth5ByB8clyn8crVynmRNGO3wG3LOp8RTcyZDqwaI6Ng6y8FCK2hVZmJoqwCskKbNMaw== + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +esbuild@^0.19.3: + version "0.19.9" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.9.tgz#423a8f35153beb22c0b695da1cd1e6c0c8cdd490" + integrity sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg== + optionalDependencies: + "@esbuild/android-arm" "0.19.9" + "@esbuild/android-arm64" "0.19.9" + "@esbuild/android-x64" "0.19.9" + "@esbuild/darwin-arm64" "0.19.9" + "@esbuild/darwin-x64" "0.19.9" + "@esbuild/freebsd-arm64" "0.19.9" + "@esbuild/freebsd-x64" "0.19.9" + "@esbuild/linux-arm" "0.19.9" + "@esbuild/linux-arm64" "0.19.9" + "@esbuild/linux-ia32" "0.19.9" + "@esbuild/linux-loong64" "0.19.9" + "@esbuild/linux-mips64el" "0.19.9" + "@esbuild/linux-ppc64" "0.19.9" + "@esbuild/linux-riscv64" "0.19.9" + "@esbuild/linux-s390x" "0.19.9" + "@esbuild/linux-x64" "0.19.9" + "@esbuild/netbsd-x64" "0.19.9" + "@esbuild/openbsd-x64" "0.19.9" + "@esbuild/sunos-x64" "0.19.9" + "@esbuild/win32-arm64" "0.19.9" + "@esbuild/win32-ia32" "0.19.9" + "@esbuild/win32-x64" "0.19.9" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +execa@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^8.0.1" + human-signals "^5.0.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^4.1.0" + strip-final-newline "^3.0.0" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fsevents@~2.3.2, fsevents@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-func-name@^2.0.1, get-func-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== + +get-stream@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +html-encoding-sniffer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" + integrity sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== + dependencies: + whatwg-encoding "^3.1.1" + +http-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== + dependencies: + agent-base "^7.1.0" + debug "^4.3.4" + +https-proxy-agent@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== + dependencies: + agent-base "^7.0.2" + debug "4" + +human-signals@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== + +iconv-lite@0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsdom@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-23.0.1.tgz#ede7ff76e89ca035b11178d200710d8982ebfee0" + integrity sha512-2i27vgvlUsGEBO9+/kJQRbtqtm+191b5zAZrU/UezVmnC2dlDAFLgDYJvAEi94T4kjsRKkezEtLQTgsNEsW2lQ== + dependencies: + cssstyle "^3.0.0" + data-urls "^5.0.0" + decimal.js "^10.4.3" + form-data "^4.0.0" + html-encoding-sniffer "^4.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.2" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.7" + parse5 "^7.1.2" + rrweb-cssom "^0.6.0" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.3" + w3c-xmlserializer "^5.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^3.1.1" + whatwg-mimetype "^4.0.0" + whatwg-url "^14.0.0" + ws "^8.14.2" + xml-name-validator "^5.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +local-pkg@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.5.0.tgz#093d25a346bae59a99f80e75f6e9d36d7e8c925c" + integrity sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg== + dependencies: + mlly "^1.4.2" + pkg-types "^1.0.3" + +loupe@^2.3.6, loupe@^2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== + dependencies: + get-func-name "^2.0.1" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== + +mlly@^1.2.0, mlly@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" + integrity sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg== + dependencies: + acorn "^8.10.0" + pathe "^1.1.1" + pkg-types "^1.0.3" + ufo "^1.3.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +npm-run-path@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== + dependencies: + path-key "^4.0.0" + +nwsapi@^2.2.7: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + +onetime@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== + dependencies: + mimic-fn "^4.0.0" + +p-limit@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-5.0.0.tgz#6946d5b7140b649b7a33a027d89b4c625b3a5985" + integrity sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ== + dependencies: + yocto-queue "^1.0.0" + +parse5@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-key@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== + +pathe@^1.1.0, pathe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.1.tgz#1dd31d382b974ba69809adc9a7a347e65d84829a" + integrity sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +pkg-types@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" + integrity sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A== + dependencies: + jsonc-parser "^3.2.0" + mlly "^1.2.0" + pathe "^1.1.0" + +postcss@^8.4.32: + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.1, punycode@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +react-refresh@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" + integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +rollup@^4.2.0: + version "4.9.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.0.tgz#94dff4070f106c1be6b2e88401a49b023c87fa88" + integrity sha512-bUHW/9N21z64gw8s6tP4c88P382Bq/L5uZDowHlHx6s/QWpjJXivIAbEw6LZthgSvlEizZBfLC4OAvWe7aoF7A== + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.9.0" + "@rollup/rollup-android-arm64" "4.9.0" + "@rollup/rollup-darwin-arm64" "4.9.0" + "@rollup/rollup-darwin-x64" "4.9.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.0" + "@rollup/rollup-linux-arm64-gnu" "4.9.0" + "@rollup/rollup-linux-arm64-musl" "4.9.0" + "@rollup/rollup-linux-riscv64-gnu" "4.9.0" + "@rollup/rollup-linux-x64-gnu" "4.9.0" + "@rollup/rollup-linux-x64-musl" "4.9.0" + "@rollup/rollup-win32-arm64-msvc" "4.9.0" + "@rollup/rollup-win32-ia32-msvc" "4.9.0" + "@rollup/rollup-win32-x64-msvc" "4.9.0" + fsevents "~2.3.2" + +rrweb-cssom@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1" + integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== + +"safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +siginfo@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" + integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g== + +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +stackback@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b" + integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw== + +std-env@^3.5.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.6.0.tgz#94807562bddc68fa90f2e02c5fd5b6865bb4e98e" + integrity sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg== + +strip-final-newline@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== + +strip-literal@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" + integrity sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg== + dependencies: + acorn "^8.10.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tinybench@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.5.1.tgz#3408f6552125e53a5a48adee31261686fd71587e" + integrity sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg== + +tinypool@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.8.1.tgz#b6c4e4972ede3e3e5cda74a3da1679303d386b03" + integrity sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg== + +tinyspy@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-2.2.0.tgz#9dc04b072746520b432f77ea2c2d17933de5d6ce" + integrity sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +tough-cookie@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-5.0.0.tgz#3b46d583613ec7283020d79019f1335723801cec" + integrity sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g== + dependencies: + punycode "^2.3.1" + +type-detect@^4.0.0, type-detect@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +ufo@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.3.2.tgz#c7d719d0628a1c80c006d2240e0d169f6e3c0496" + integrity sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +vite-node@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-1.0.4.tgz#36d6c49e3b5015967d883845561ed67abe6553cc" + integrity sha512-9xQQtHdsz5Qn8hqbV7UKqkm8YkJhzT/zr41Dmt5N7AlD8hJXw/Z7y0QiD5I8lnTthV9Rvcvi0QW7PI0Fq83ZPg== + dependencies: + cac "^6.7.14" + debug "^4.3.4" + pathe "^1.1.1" + picocolors "^1.0.0" + vite "^5.0.0" + +vite@^5.0.0: + version "5.0.8" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.8.tgz#070383dcb4d4f12adde9c119b8cca0f40bf906e9" + integrity sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ== + dependencies: + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" + optionalDependencies: + fsevents "~2.3.3" + +vitest@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vitest/-/vitest-1.0.4.tgz#c4b39ba4fcba674499c90e28f4d8dd16fa1d4eb3" + integrity sha512-s1GQHp/UOeWEo4+aXDOeFBJwFzL6mjycbQwwKWX2QcYfh/7tIerS59hWQ20mxzupTJluA2SdwiBuWwQHH67ckg== + dependencies: + "@vitest/expect" "1.0.4" + "@vitest/runner" "1.0.4" + "@vitest/snapshot" "1.0.4" + "@vitest/spy" "1.0.4" + "@vitest/utils" "1.0.4" + acorn-walk "^8.3.0" + cac "^6.7.14" + chai "^4.3.10" + debug "^4.3.4" + execa "^8.0.1" + local-pkg "^0.5.0" + magic-string "^0.30.5" + pathe "^1.1.1" + picocolors "^1.0.0" + std-env "^3.5.0" + strip-literal "^1.3.0" + tinybench "^2.5.1" + tinypool "^0.8.1" + vite "^5.0.0" + vite-node "1.0.4" + why-is-node-running "^2.2.2" + +w3c-xmlserializer@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz#f925ba26855158594d907313cedd1476c5967f6c" + integrity sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== + dependencies: + xml-name-validator "^5.0.0" + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-encoding@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz#d0f4ef769905d426e1688f3e34381a99b60b76e5" + integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz#bc1bf94a985dc50388d54a9258ac405c3ca2fc0a" + integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== + +whatwg-url@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-14.0.0.tgz#00baaa7fd198744910c4b1ef68378f2200e4ceb6" + integrity sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw== + dependencies: + tr46 "^5.0.0" + webidl-conversions "^7.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +why-is-node-running@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e" + integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA== + dependencies: + siginfo "^2.0.0" + stackback "0.0.2" + +ws@^8.14.2: + version "8.15.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.1.tgz#271ba33a45ca0cc477940f7f200cd7fba7ee1997" + integrity sha512-W5OZiCjXEmk0yZ66ZN82beM5Sz7l7coYxpRkzS+p9PP+ToQry8szKh+61eNktr7EA9DOwvFGhfC605jDHbP6QQ== + +xml-name-validator@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-5.0.0.tgz#82be9b957f7afdacf961e5980f1bf227c0bf7673" + integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yocto-queue@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" + integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== From cb1aeea006a8ffa089a8e0179a94031afebb926c Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Fri, 15 Dec 2023 11:55:16 +0100 Subject: [PATCH 4/5] Add unit tests for OpenApiModels component --- ...EventApiModels.jsx => CallEventModels.jsx} | 4 +- .../docs/api/_common_/OpenApiModels.jsx | 42 +- .../docusaurus/docs/api/webhooks/events.mdx | 4 +- .../__tests__/OpenApiModels.test.jsx | 57 ++ .../__tests__/mock-open-api.json | 3 +- .../video/openapi-to-docs/__tests__/setup.js | 1 + .../video/openapi-to-docs/__tests__/utils.js | 18 + docusaurus/video/openapi-to-docs/package.json | 4 + .../video/openapi-to-docs/vite.config.js | 1 + docusaurus/video/openapi-to-docs/yarn.lock | 630 +++++++++++++++++- 10 files changed, 737 insertions(+), 27 deletions(-) rename docusaurus/video/docusaurus/docs/api/_common_/{EventApiModels.jsx => CallEventModels.jsx} (94%) create mode 100644 docusaurus/video/openapi-to-docs/__tests__/OpenApiModels.test.jsx create mode 100644 docusaurus/video/openapi-to-docs/__tests__/setup.js create mode 100644 docusaurus/video/openapi-to-docs/__tests__/utils.js diff --git a/docusaurus/video/docusaurus/docs/api/_common_/EventApiModels.jsx b/docusaurus/video/docusaurus/docs/api/_common_/CallEventModels.jsx similarity index 94% rename from docusaurus/video/docusaurus/docs/api/_common_/EventApiModels.jsx rename to docusaurus/video/docusaurus/docs/api/_common_/CallEventModels.jsx index 15c8bdaa..46939f3a 100644 --- a/docusaurus/video/docusaurus/docs/api/_common_/EventApiModels.jsx +++ b/docusaurus/video/docusaurus/docs/api/_common_/CallEventModels.jsx @@ -17,7 +17,7 @@ const events = filter(apiJson).map(key => { events.sort((e1, e2) => e1.type < e2.type ? -1 : (e1.type > e2.type ? 1 : 0)); -const EventApiModels = () => { +const CallEventModels = () => { return @@ -33,4 +33,4 @@ const EventApiModels = () => { } -export default EventApiModels; \ No newline at end of file +export default CallEventModels; \ No newline at end of file diff --git a/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx index 82acfa45..fb270e8e 100644 --- a/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx +++ b/docusaurus/video/docusaurus/docs/api/_common_/OpenApiModels.jsx @@ -1,43 +1,45 @@ import React from 'react'; import { parseModel } from './open-api-model-parser'; -const OpenApiModels = ({ modelName, modelFilter, recursive = true }) => { +const OpenApiModels = ({ modelName, modelFilter, recursive = true, apiJson }) => { const models = React.useMemo(() => { if (!modelName && !modelFilter) { return []; } - return parseModel({modelName, modelFilter, recursive}); + return parseModel({modelName, modelFilter, recursive, apiJson}); }, [modelName, modelFilter]); return (
{models.map((model) => ( - +

{model.name}

-
+
- - - - + + + + + + - {model.properties.map(p => { - return ( - - - + {model.properties.map(p => { + return ( + + - - - + + - - ); - })} + ); + })} +
NameTypeDescriptionConstraints
NameTypeDescriptionConstraints
+
{p.name} - {p.type.definitionLink ? {p.type.formattedName} : {p.type.formattedName}} + + {p.type.definitionLink ? {p.type.formattedName} : {p.type.formattedName}} {p.description || '-'}{p.constraints.join(', ') || '-'}{p.description || '-'}{p.constraints.join(', ') || '-'}
))} diff --git a/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx b/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx index f7bfa32e..6a12c886 100644 --- a/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx +++ b/docusaurus/video/docusaurus/docs/api/webhooks/events.mdx @@ -5,8 +5,8 @@ slug: /streaming/events title: Events --- -import EventApiModels from '../_common_/EventApiModels'; +import CallEventModels from '../_common_/CallEventModels'; Here you can find the list of events are sent to Webhook and SQS. - + diff --git a/docusaurus/video/openapi-to-docs/__tests__/OpenApiModels.test.jsx b/docusaurus/video/openapi-to-docs/__tests__/OpenApiModels.test.jsx new file mode 100644 index 00000000..a78f2123 --- /dev/null +++ b/docusaurus/video/openapi-to-docs/__tests__/OpenApiModels.test.jsx @@ -0,0 +1,57 @@ +import { render, screen } from './utils' +import OpenApiModels from '../../docusaurus/docs/api/_common_/OpenApiModels' +import mockApiJson from './mock-open-api.json'; +import { beforeEach, describe, expect, it } from 'vitest'; + +describe('OpenApiModels', async () => { + let container; + + beforeEach(() => { + container = render( + , + ).container; + }); + + it('should render each model in an HTML table', () => { + expect(screen.getByTestId('GetOrCreateCallRequest-table')).toBeInTheDocument(); + expect(screen.getByTestId('CallRequest-table')).toBeInTheDocument(); + expect(screen.getByTestId('MemberRequest-table')).toBeInTheDocument(); + + expect(container.querySelectorAll('table').length).toBe(3); + }); + + it('should render model name', () => { + expect(screen.getByText('GetOrCreateCallRequest')).toBeInTheDocument(); + }); + + it('should render properties of model - name', () => { + expect(screen.getByTestId('GetOrCreateCallRequest-data-name').innerHTML).toContain('data'); + }); + + it('should render properties of model - type and type definition links', () => { + // ref + expect(screen.getByTestId('GetOrCreateCallRequest-data-type').innerHTML).toContain('CallRequest'); + + expect(screen.getByTestId('GetOrCreateCallRequest-data-typelink').href).toContain('#CallRequest'); + + expect(container.querySelector('#CallRequest')).toBeInTheDocument(); + + // primitive + expect(screen.getByTestId('GetOrCreateCallRequest-ring-type').innerHTML).toContain('boolean'); + + expect(container.querySelector('[data-testid=GetOrCreateCallRequest-ring-typelink]')).toBe(null); + + // formatted name + expect(screen.getByTestId('CallRequest-members-type').innerHTML).toContain('MemberRequest[]'); + }); + + it('should render properties of model - description', () => { + expect(screen.getByTestId('GetOrCreateCallRequest-data-description').innerHTML).toContain('Configuration options for the call'); + }) + + it('should render properties of model - constraints', () => { + expect(screen.getByTestId('GetOrCreateCallRequest-data-constraints').innerHTML).toContain('Required'); + expect(screen.getByTestId('GetOrCreateCallRequest-notify-constraints').innerHTML).toContain('-'); + expect(screen.getByTestId('CallRequest-members-constraints').innerHTML).toContain('Required, Maximum: 100'); + }); +}) \ No newline at end of file diff --git a/docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json b/docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json index 609faaff..32feee4f 100644 --- a/docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json +++ b/docusaurus/video/openapi-to-docs/__tests__/mock-open-api.json @@ -73,7 +73,8 @@ "x-stream-index": "007" } }, - "type": "object" + "type": "object", + "required": ["members"] }, "MemberRequest": { "properties": { diff --git a/docusaurus/video/openapi-to-docs/__tests__/setup.js b/docusaurus/video/openapi-to-docs/__tests__/setup.js new file mode 100644 index 00000000..331666ce --- /dev/null +++ b/docusaurus/video/openapi-to-docs/__tests__/setup.js @@ -0,0 +1 @@ +import '@testing-library/jest-dom'; \ No newline at end of file diff --git a/docusaurus/video/openapi-to-docs/__tests__/utils.js b/docusaurus/video/openapi-to-docs/__tests__/utils.js new file mode 100644 index 00000000..a5e7f3be --- /dev/null +++ b/docusaurus/video/openapi-to-docs/__tests__/utils.js @@ -0,0 +1,18 @@ +import { cleanup, render } from '@testing-library/react' +import { afterEach } from 'vitest' + +afterEach(() => { + cleanup() +}) + +function customRender(ui, options = {}) { + return render(ui, { + // wrap provider(s) here if needed + wrapper: ({ children }) => children, + ...options, + }) +} + +export * from '@testing-library/react' +// override render export +export { customRender as render } \ No newline at end of file diff --git a/docusaurus/video/openapi-to-docs/package.json b/docusaurus/video/openapi-to-docs/package.json index 9ffc7d4e..8bc1cf6d 100644 --- a/docusaurus/video/openapi-to-docs/package.json +++ b/docusaurus/video/openapi-to-docs/package.json @@ -7,8 +7,12 @@ "test:ui": "vitest --ui" }, "devDependencies": { + "@testing-library/jest-dom": "^6.1.5", + "@testing-library/react": "^14.1.2", "@vitejs/plugin-react": "^4.2.1", "jsdom": "^23.0.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", "vitest": "^1.0.4" } } diff --git a/docusaurus/video/openapi-to-docs/vite.config.js b/docusaurus/video/openapi-to-docs/vite.config.js index b0ce391b..3345974d 100644 --- a/docusaurus/video/openapi-to-docs/vite.config.js +++ b/docusaurus/video/openapi-to-docs/vite.config.js @@ -6,6 +6,7 @@ export default defineConfig({ test: { globals: true, environment: 'jsdom', + setupFiles: './__tests__/setup.js', css: false, }, }) \ No newline at end of file diff --git a/docusaurus/video/openapi-to-docs/yarn.lock b/docusaurus/video/openapi-to-docs/yarn.lock index 745e96a2..133540f2 100644 --- a/docusaurus/video/openapi-to-docs/yarn.lock +++ b/docusaurus/video/openapi-to-docs/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@adobe/css-tools@^4.3.1": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.2.tgz#a6abc715fb6884851fca9dad37fc34739a04fd11" + integrity sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw== + "@ampproject/remapping@^2.2.0": version "2.2.1" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" @@ -10,7 +15,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": +"@babel/code-frame@^7.10.4", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== @@ -174,6 +179,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" + integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" @@ -427,6 +439,48 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@testing-library/dom@^9.0.0": + version "9.3.3" + resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-9.3.3.tgz#108c23a5b0ef51121c26ae92eb3179416b0434f5" + integrity sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/runtime" "^7.12.5" + "@types/aria-query" "^5.0.1" + aria-query "5.1.3" + chalk "^4.1.0" + dom-accessibility-api "^0.5.9" + lz-string "^1.5.0" + pretty-format "^27.0.2" + +"@testing-library/jest-dom@^6.1.5": + version "6.1.5" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.1.5.tgz#0a635d0ad4a1a880089d967299d94e9cfc81fbe1" + integrity sha512-3y04JLW+EceVPy2Em3VwNr95dOKqA8DhR0RJHhHKDZNYXcVXnEK7WIrpj4eYU8SVt/qYZ2aRWt/WgQ+grNES8g== + dependencies: + "@adobe/css-tools" "^4.3.1" + "@babel/runtime" "^7.9.2" + aria-query "^5.0.0" + chalk "^3.0.0" + css.escape "^1.5.1" + dom-accessibility-api "^0.5.6" + lodash "^4.17.15" + redent "^3.0.0" + +"@testing-library/react@^14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-14.1.2.tgz#a2b9e9ee87721ec9ed2d7cfc51cc04e474537c32" + integrity sha512-z4p7DVBTPjKM5qDZ0t5ZjzkpSNb+fZy1u6bzO7kk8oeGagpPCAtgh4cx1syrfp7a+QWkM021jGqjJaxJJnXAZg== + dependencies: + "@babel/runtime" "^7.12.5" + "@testing-library/dom" "^9.0.0" + "@types/react-dom" "^18.0.0" + +"@types/aria-query@^5.0.1": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708" + integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw== + "@types/babel__core@^7.20.5": version "7.20.5" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" @@ -460,6 +514,32 @@ dependencies: "@babel/types" "^7.20.7" +"@types/prop-types@*": + version "15.7.11" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" + integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== + +"@types/react-dom@^18.0.0": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" + integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.2.45" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.45.tgz#253f4fac288e7e751ab3dc542000fb687422c15c" + integrity sha512-TtAxCNrlrBp8GoeEp1npd5g+d/OejJHFxS3OWmrPBMFaVQMSN0OFySozJio5BHxTuTeug00AVXVAjfDSfk+lUg== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + +"@types/scheduler@*": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff" + integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== + "@vitejs/plugin-react@^4.2.1": version "4.2.1" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.2.1.tgz#744d8e4fcb120fc3dbaa471dadd3483f5a304bb9" @@ -531,6 +611,11 @@ agent-base@^7.0.2, agent-base@^7.1.0: dependencies: debug "^4.3.4" +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -538,11 +623,40 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + ansi-styles@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== +aria-query@5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== + dependencies: + deep-equal "^2.0.5" + +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" @@ -553,6 +667,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + browserslist@^4.22.2: version "4.22.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" @@ -568,6 +687,15 @@ cac@^6.7.14: resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + caniuse-lite@^1.0.30001565: version "1.0.30001570" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz#b4e5c1fa786f733ab78fc70f592df6b3f23244ca" @@ -595,6 +723,22 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + check-error@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" @@ -609,11 +753,23 @@ color-convert@^1.9.0: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -635,6 +791,11 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +css.escape@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" + integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== + cssstyle@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a" @@ -642,6 +803,11 @@ cssstyle@^3.0.0: dependencies: rrweb-cssom "^0.6.0" +csstype@^3.0.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" + integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== + data-urls@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-5.0.0.tgz#2f76906bce1824429ffecb6920f45a0b30f00dde" @@ -669,16 +835,68 @@ deep-eql@^4.1.3: dependencies: type-detect "^4.0.0" +deep-equal@^2.0.5: + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +dequal@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== +dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9: + version "0.5.16" + resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz#5a7429e6066eb3664d911e33fb0e45de8eb08453" + integrity sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg== + electron-to-chromium@^1.4.601: version "1.4.611" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.611.tgz#92d3a8f03110fbf5f99b054da97825f994fa480a" @@ -689,6 +907,21 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + esbuild@^0.19.3: version "0.19.9" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.9.tgz#423a8f35153beb22c0b695da1cd1e6c0c8cdd490" @@ -742,6 +975,13 @@ execa@^8.0.1: signal-exit "^4.1.0" strip-final-newline "^3.0.0" +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -756,6 +996,16 @@ fsevents@~2.3.2, fsevents@~2.3.3: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -766,6 +1016,16 @@ get-func-name@^2.0.1, get-func-name@^2.0.2: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-stream@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" @@ -776,11 +1036,59 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + dependencies: + get-intrinsic "^1.2.2" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + html-encoding-sniffer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz#696df529a7cfd82446369dc5193e590a3735b448" @@ -816,22 +1124,151 @@ iconv-lite@0.6.3: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +internal-slot@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + dependencies: + get-intrinsic "^1.2.2" + hasown "^2.0.0" + side-channel "^1.0.4" + +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + is-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== @@ -886,6 +1323,18 @@ local-pkg@^0.5.0: mlly "^1.4.2" pkg-types "^1.0.3" +lodash@^4.17.15: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + loupe@^2.3.6, loupe@^2.3.7: version "2.3.7" resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" @@ -900,6 +1349,11 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lz-string@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + magic-string@^0.30.5: version "0.30.5" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" @@ -929,6 +1383,11 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + mlly@^1.2.0, mlly@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.4.2.tgz#7cf406aa319ff6563d25da6b36610a93f2a8007e" @@ -966,6 +1425,34 @@ nwsapi@^2.2.7: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== +object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + onetime@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" @@ -1030,6 +1517,15 @@ postcss@^8.4.32: picocolors "^1.0.0" source-map-js "^1.0.2" +pretty-format@^27.0.2: + version "27.5.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" + integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== + dependencies: + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^17.0.1" + pretty-format@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" @@ -1054,6 +1550,19 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +react-dom@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" + integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== + dependencies: + loose-envify "^1.1.0" + scheduler "^0.23.0" + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + react-is@^18.0.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" @@ -1064,6 +1573,35 @@ react-refresh@^0.14.0: resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== +react@^18.2.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" + integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== + dependencies: + loose-envify "^1.1.0" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -1106,11 +1644,37 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" +scheduler@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" + integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== + dependencies: + loose-envify "^1.1.0" + semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -1123,6 +1687,15 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + siginfo@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30" @@ -1148,11 +1721,25 @@ std-env@^3.5.0: resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.6.0.tgz#94807562bddc68fa90f2e02c5fd5b6865bb4e98e" integrity sha512-aFZ19IgVmhdB2uX599ve2kE6BIE3YMnQ6Gp6BURhW/oIzpXGKr878TQfAQZn1+i0Flcc/UKUy1gOlcfaUBCryg== +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + strip-final-newline@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + strip-literal@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.3.0.tgz#db3942c2ec1699e6836ad230090b84bb458e3a07" @@ -1167,6 +1754,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" @@ -1321,6 +1915,38 @@ whatwg-url@^14.0.0: tr46 "^5.0.0" webidl-conversions "^7.0.0" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.11, which-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" From c906efb3bc9e1067583bb5b06f5ba138935179a5 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Mon, 13 May 2024 11:55:22 +0200 Subject: [PATCH 5/5] Parse events from client side API --- .../docs/api/_common_/CallEventModels.jsx | 60 +- .../docs/api/video-client-openapi.json | 18910 +++++++++++ .../docusaurus/docs/api/video-openapi.json | 27388 ++++++++++++---- 3 files changed, 39410 insertions(+), 6948 deletions(-) create mode 100644 docusaurus/video/docusaurus/docs/api/video-client-openapi.json diff --git a/docusaurus/video/docusaurus/docs/api/_common_/CallEventModels.jsx b/docusaurus/video/docusaurus/docs/api/_common_/CallEventModels.jsx index 46939f3a..15acf29f 100644 --- a/docusaurus/video/docusaurus/docs/api/_common_/CallEventModels.jsx +++ b/docusaurus/video/docusaurus/docs/api/_common_/CallEventModels.jsx @@ -1,36 +1,48 @@ import React from 'react'; import OpenApiModels from './OpenApiModels'; -import apiJson from '../video-openapi.json'; +import apiJson from '../video-client-openapi.json'; const filter = (apiJson) => -Object.keys(apiJson.components.schemas).filter( - (key) => - apiJson.components.schemas[key]['x-stream-event-call-type'] === true, -); + Object.keys(apiJson.components.schemas).filter( + (key) => + apiJson.components.schemas[key]['x-stream-event-call-type'] === true, + ); -const events = filter(apiJson).map(key => { - const type = apiJson.components.schemas[key].properties.type.default || '-'; - const description = apiJson.components.schemas[key].description || '-'; +const events = filter(apiJson).map((key) => { + const type = apiJson.components.schemas[key].properties.type.default || '-'; + const description = apiJson.components.schemas[key].description || '-'; - return {key, type, description} + return { key, type, description }; }); -events.sort((e1, e2) => e1.type < e2.type ? -1 : (e1.type > e2.type ? 1 : 0)); +events.sort((e1, e2) => (e1.type < e2.type ? -1 : e1.type > e2.type ? 1 : 0)); const CallEventModels = () => { - return - - - - - - {events.map(event => - - - )} -
NameDescription
{event.type}{event.description}
- + return ( + + + + + + + {events.map((event) => ( + + + + + ))} +
NameDescription
+ + {event.type} + + {event.description}
+
-} + ); +}; -export default CallEventModels; \ No newline at end of file +export default CallEventModels; diff --git a/docusaurus/video/docusaurus/docs/api/video-client-openapi.json b/docusaurus/video/docusaurus/docs/api/video-client-openapi.json new file mode 100644 index 00000000..f9576b90 --- /dev/null +++ b/docusaurus/video/docusaurus/docs/api/video-client-openapi.json @@ -0,0 +1,18910 @@ +{ + "components": { + "schemas": { + "APIError": { + "properties": { + "StatusCode": { + "description": "Response HTTP status code", + "format": "int32", + "title": "Status code", + "type": "integer", + "x-stream-index": "004" + }, + "code": { + "description": "API error code", + "format": "int32", + "title": "Code", + "type": "integer", + "x-stream-index": "001" + }, + "details": { + "description": "Additional error-specific information", + "items": { "type": "integer" }, + "title": "Details", + "type": "array", + "x-stream-index": "007" + }, + "duration": { + "description": "Request duration", + "title": "Duration", + "type": "string", + "x-stream-index": "005" + }, + "exception_fields": { + "additionalProperties": { "type": "string" }, + "description": "Additional error info", + "title": "Exception fields", + "type": "object", + "x-stream-index": "003" + }, + "message": { + "description": "Message describing an error", + "title": "Message", + "type": "string", + "x-stream-index": "002" + }, + "more_info": { + "description": "URL with additional information", + "title": "More info", + "type": "string", + "x-stream-index": "006" + } + }, + "required": [ + "code", + "message", + "StatusCode", + "duration", + "more_info", + "details" + ], + "title": "Error response", + "type": "object" + }, + "AcceptCallRequest": { "nullable": true, "type": "object" }, + "AcceptCallResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "Action": { + "nullable": true, + "properties": { + "name": { "type": "string", "x-stream-index": "001" }, + "style": { "type": "string", "x-stream-index": "003" }, + "text": { "type": "string", "x-stream-index": "002" }, + "type": { "type": "string", "x-stream-index": "004" }, + "value": { "type": "string", "x-stream-index": "005" } + }, + "required": ["name", "text", "type"], + "type": "object" + }, + "AnyEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "*", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at"], + "title": "AnyEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "AppResponseFields": { + "properties": { + "async_url_enrich_enabled": { + "type": "boolean", + "x-stream-index": "016" + }, + "auto_translation_enabled": { + "type": "boolean", + "x-stream-index": "019" + }, + "file_upload_config": { + "$ref": "#/components/schemas/FileUploadConfig", + "x-stream-index": "029" + }, + "image_upload_config": { + "$ref": "#/components/schemas/FileUploadConfig", + "x-stream-index": "030" + }, + "name": { "type": "string", "x-stream-index": "001" }, + "video_provider": { "type": "string", "x-stream-index": "038" } + }, + "required": [ + "name", + "organization", + "push_notifications", + "webhook_url", + "channel_configs", + "call_types", + "policies", + "suspended", + "suspended_explanation", + "disable_auth_checks", + "disable_permissions_checks", + "permission_version", + "user_search_disallowed_roles", + "multi_tenant_enabled", + "image_moderation_enabled", + "async_url_enrich_enabled", + "auto_translation_enabled", + "custom_action_handler_url", + "enforce_unique_usernames", + "sqs_url", + "sqs_key", + "sqs_secret", + "sns_topic_arn", + "sns_key", + "sns_secret", + "file_upload_config", + "image_upload_config", + "grants", + "campaign_enabled", + "polls_enabled", + "webhook_events", + "reminders_interval", + "cdn_expiration_seconds", + "video_provider" + ], + "type": "object" + }, + "Attachment": { + "nullable": true, + "properties": { + "actions": { + "items": { "$ref": "#/components/schemas/Action" }, + "type": "array", + "x-stream-index": "015" + }, + "asset_url": { "type": "string", "x-stream-index": "017" }, + "author_icon": { "type": "string", "x-stream-index": "007" }, + "author_link": { "type": "string", "x-stream-index": "006" }, + "author_name": { "type": "string", "x-stream-index": "005" }, + "color": { "type": "string", "x-stream-index": "003" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "018" + }, + "fallback": { "type": "string", "x-stream-index": "002" }, + "fields": { + "items": { "$ref": "#/components/schemas/Field" }, + "type": "array", + "x-stream-index": "016" + }, + "footer": { "type": "string", "x-stream-index": "013" }, + "footer_icon": { "type": "string", "x-stream-index": "014" }, + "giphy": { + "$ref": "#/components/schemas/Images", + "x-stream-index": "019" + }, + "image_url": { "type": "string", "x-stream-index": "011" }, + "og_scrape_url": { "type": "string", "x-stream-index": "020" }, + "original_height": { + "format": "int32", + "type": "integer", + "x-stream-index": "022" + }, + "original_width": { + "format": "int32", + "type": "integer", + "x-stream-index": "021" + }, + "pretext": { "type": "string", "x-stream-index": "004" }, + "text": { "type": "string", "x-stream-index": "010" }, + "thumb_url": { "type": "string", "x-stream-index": "012" }, + "title": { "type": "string", "x-stream-index": "008" }, + "title_link": { "type": "string", "x-stream-index": "009" }, + "type": { + "description": "Attachment type (e.g. image, video, url, poll)", + "title": "Type", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["custom"], + "title": "Attachment", + "type": "object", + "x-stream-docs-page-id": "file_uploads" + }, + "AudioSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "default_device": { + "enum": ["speaker", "earpiece"], + "type": "string", + "x-stream-index": "006" + }, + "mic_default_on": { "type": "boolean", "x-stream-index": "004" }, + "noise_cancellation": { + "$ref": "#/components/schemas/NoiseCancellationSettings", + "x-stream-index": "007" + }, + "opus_dtx_enabled": { "type": "boolean", "x-stream-index": "002" }, + "redundant_coding_enabled": { + "type": "boolean", + "x-stream-index": "003" + }, + "speaker_default_on": { "type": "boolean", "x-stream-index": "005" } + }, + "required": ["default_device"], + "type": "object" + }, + "AudioSettingsResponse": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "default_device": { + "enum": ["speaker", "earpiece"], + "type": "string", + "x-stream-index": "006" + }, + "mic_default_on": { "type": "boolean", "x-stream-index": "004" }, + "noise_cancellation": { + "$ref": "#/components/schemas/NoiseCancellationSettings", + "x-stream-index": "007" + }, + "opus_dtx_enabled": { "type": "boolean", "x-stream-index": "002" }, + "redundant_coding_enabled": { + "type": "boolean", + "x-stream-index": "003" + }, + "speaker_default_on": { "type": "boolean", "x-stream-index": "005" } + }, + "required": [ + "access_request_enabled", + "opus_dtx_enabled", + "redundant_coding_enabled", + "mic_default_on", + "speaker_default_on", + "default_device" + ], + "type": "object" + }, + "AutomodDetails": { + "properties": { + "action": { "type": "string", "x-stream-index": "001" }, + "image_labels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "005" + }, + "message_details": { + "$ref": "#/components/schemas/FlagMessageDetails", + "x-stream-index": "004" + }, + "original_message_type": { + "type": "string", + "x-stream-index": "002" + }, + "result": { + "$ref": "#/components/schemas/MessageModerationResult", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "BackstageSettingsRequest": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "type": "object" + }, + "BackstageSettingsResponse": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "BanRequest": { + "nullable": true, + "properties": { + "banned_by": { + "$ref": "#/components/schemas/UserRequest", + "description": "User who issued a ban", + "title": "Banned by", + "x-stream-index": "010" + }, + "banned_by_id": { + "description": "User ID who issued a ban", + "title": "Banned by ID", + "type": "string", + "x-stream-index": "009" + }, + "channel_cid": { + "description": "Channel CID to ban user in eg. messaging:123", + "title": "Channel CID", + "type": "string", + "x-stream-index": "006" + }, + "ip_ban": { + "description": "Whether to perform IP ban or not", + "title": "IP ban", + "type": "boolean", + "x-stream-index": "008" + }, + "reason": { + "description": "Ban reason", + "title": "Reason", + "type": "string", + "x-stream-index": "003" + }, + "shadow": { + "description": "Whether to perform shadow ban or not", + "title": "Shadow", + "type": "boolean", + "x-stream-index": "007" + }, + "target_user_id": { + "description": "ID of user to ban", + "title": "Target user ID", + "type": "string", + "x-stream-index": "001" + }, + "timeout": { + "description": "Timeout of ban in minutes. User will be unbanned after this period of time", + "title": "Timeout", + "type": "integer", + "x-stream-index": "002" + } + }, + "required": ["target_user_id"], + "type": "object" + }, + "BanResponse": { + "nullable": true, + "properties": { + "banned_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "006" + }, + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "reason": { "type": "string", "x-stream-index": "004" }, + "shadow": { "type": "boolean", "x-stream-index": "005" }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002" + } + }, + "required": ["created_at"], + "type": "object" + }, + "BlockListOptions": { + "properties": { + "behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "002" + }, + "blocklist": { "type": "string", "x-stream-index": "001" } + }, + "required": ["blocklist", "behavior"], + "type": "object" + }, + "BlockUserRequest": { + "nullable": true, + "properties": { + "user_id": { + "description": "the user to block", + "title": "UserID", + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["user_id"], + "type": "object" + }, + "BlockUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "BlockedUserEvent": { + "description": "This event is sent to call participants to notify when a user is blocked on a call, clients can use this event to show a notification. \nIf the user is the current user, the client should leave the call screen as well", + "properties": { + "blocked_by_user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that blocked the user, null if the user was blocked by server-side", + "title": "Blocked by", + "x-stream-index": "004" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.blocked_user", + "description": "The type of event: \"call.blocked_user\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that was blocked", + "title": "User", + "x-stream-index": "003" + } + }, + "required": ["type", "created_at", "call_cid", "user"], + "title": "BlockedUserEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "BroadcastSettingsRequest": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "hls": { + "$ref": "#/components/schemas/HLSSettingsRequest", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "BroadcastSettingsResponse": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "hls": { + "$ref": "#/components/schemas/HLSSettingsResponse", + "x-stream-index": "002" + } + }, + "required": ["enabled", "hls"], + "type": "object" + }, + "CallAcceptedEvent": { + "description": "This event is sent when a user accepts a notification to join a call.", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.accepted", + "description": "The type of event: \"call.accepted\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who accepted the call", + "title": "User", + "x-stream-index": "004" + } + }, + "required": ["type", "created_at", "call_cid", "call", "user"], + "title": "CallAcceptedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallClosedCaption": { + "description": "CallClosedCaption represents a closed caption of a call.", + "properties": { + "end_time": { + "format": "date-time", + "title": "The end time of the closed caption.", + "type": "number", + "x-stream-index": "003" + }, + "speaker_id": { + "title": "The speaker ID of the closed caption.", + "type": "string", + "x-stream-index": "004" + }, + "start_time": { + "format": "date-time", + "title": "The start time of the closed caption.", + "type": "number", + "x-stream-index": "002" + }, + "text": { + "title": "The text of the closed caption.", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["text", "start_time", "end_time", "speaker_id"], + "type": "object" + }, + "CallCreatedEvent": { + "description": "This event is sent when a call is created. Clients receiving this event should check if the ringing \nfield is set to true and if so, show the call screen", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "members": { + "description": "the members added to this call", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.created", + "description": "The type of event: \"call.created\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call", "members"], + "title": "CallCreatedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallDeletedEvent": { + "description": "This event is sent when a call is deleted. Clients receiving this event should leave the call screen", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.deleted", + "description": "The type of event: \"call.deleted\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call"], + "title": "CallDeletedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallEndedEvent": { + "description": "This event is sent when a call is mark as ended for all its participants. Clients receiving this event should leave the call screen", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.ended", + "description": "The type of event: \"call.ended\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who ended the call, null if the call was ended by the server", + "title": "User", + "x-stream-index": "004" + } + }, + "required": ["type", "created_at", "call_cid", "call"], + "title": "CallEndedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallEvent": { + "nullable": true, + "properties": { + "description": { "type": "string", "x-stream-index": "004" }, + "end_timestamp": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "severity": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "timestamp": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + }, + "type": { "type": "string", "x-stream-index": "005" } + }, + "required": [ + "timestamp", + "end_timestamp", + "severity", + "description", + "type" + ], + "type": "object" + }, + "CallHLSBroadcastingFailedEvent": { + "description": "This event is sent when HLS broadcasting has failed", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.hls_broadcasting_failed", + "description": "The type of event: \"call.hls_broadcasting_failed\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallHLSBroadcastingFailedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallHLSBroadcastingStartedEvent": { + "description": "This event is sent when HLS broadcasting has started", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "hls_playlist_url": { "type": "string", "x-stream-index": "003" }, + "type": { + "default": "call.hls_broadcasting_started", + "description": "The type of event: \"call.hls_broadcasting_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "hls_playlist_url"], + "title": "CallHLSBroadcastingStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallHLSBroadcastingStoppedEvent": { + "description": "This event is sent when HLS broadcasting has stopped", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.hls_broadcasting_stopped", + "description": "The type of event: \"call.hls_broadcasting_stopped\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallHLSBroadcastingStoppedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallIngressResponse": { + "properties": { + "rtmp": { + "$ref": "#/components/schemas/RTMPIngress", + "x-stream-index": "001" + } + }, + "required": ["rtmp"], + "title": "Call inputs", + "type": "object" + }, + "CallLiveStartedEvent": { + "description": "This event is sent when a call is started. Clients receiving this event should start the call.", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.live_started", + "description": "The type of event: \"call.live_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call"], + "title": "CallLiveStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberAddedEvent": { + "description": "This event is sent when one or more members are added to a call", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "members": { + "description": "the members added to this call", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.member_added", + "description": "The type of event: \"call.member_added\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call", "members"], + "title": "CallMemberAddedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberRemovedEvent": { + "description": "This event is sent when one or more members are removed from a call", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "members": { + "description": "the list of member IDs removed from the call", + "items": { "type": "string" }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.member_removed", + "description": "The type of event: \"call.member_removed\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call", "members"], + "title": "CallMemberRemovedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberUpdatedEvent": { + "description": "This event is sent when one or more members are updated", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "members": { + "description": "The list of members that were updated", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.member_updated", + "description": "The type of event: \"call.member_updated\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call", "members"], + "title": "CallMemberUpdatedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallMemberUpdatedPermissionEvent": { + "description": "This event is sent when one or more members get its role updated", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "capabilities_by_role": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "description": "The capabilities by role for this call", + "title": "CapabilitiesByRole", + "type": "object", + "x-stream-index": "004" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "members": { + "description": "The list of members that were updated", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "005" + }, + "type": { + "default": "call.member_updated_permission", + "description": "The type of event: \"call.member_added\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "capabilities_by_role", + "members" + ], + "title": "CallMemberUpdatedPermissionEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallNotificationEvent": { + "description": "This event is sent to all call members to notify they are getting called", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "004" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "members": { + "description": "Call members", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "005" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.notification", + "description": "The type of event: \"call.notification\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that sent the call notification", + "title": "User", + "x-stream-index": "006" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "call", + "members", + "user" + ], + "title": "CallNotificationEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallParticipantResponse": { + "properties": { + "joined_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004" + }, + "role": { "type": "string", "x-stream-index": "003" }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + }, + "user_session_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user", "user_session_id", "role", "joined_at"], + "type": "object" + }, + "CallReactionEvent": { + "description": "This event is sent when a reaction is sent in a call, clients should use this to show the reaction in the call screen", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "reaction": { + "$ref": "#/components/schemas/ReactionResponse", + "description": "the reaction object sent by the user on the call", + "title": "reaction", + "x-stream-index": "003" + }, + "type": { + "default": "call.reaction_new", + "description": "The type of event: \"call.reaction_new\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "reaction"], + "title": "CallReactionEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecording": { + "description": "CallRecording represents a recording of a call.", + "properties": { + "end_time": { + "format": "date-time", + "title": "The end time of the recording.", + "type": "number", + "x-stream-index": "004" + }, + "filename": { + "title": "The filename of the recording.", + "type": "string", + "x-stream-index": "001" + }, + "start_time": { + "format": "date-time", + "title": "The start time of the recording.", + "type": "number", + "x-stream-index": "003" + }, + "url": { + "title": "The URL of the recording.", + "type": "string", + "x-stream-index": "002" + } + }, + "required": ["filename", "url", "start_time", "end_time"], + "type": "object" + }, + "CallRecordingFailedEvent": { + "description": "This event is sent when call recording has failed", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_failed", + "description": "The type of event: \"call.recording_failed\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallRecordingFailedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecordingReadyEvent": { + "description": "This event is sent when call recording is ready", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "call_recording": { + "$ref": "#/components/schemas/CallRecording", + "description": "The call recording object", + "title": "CallRecording", + "x-stream-index": "003" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_ready", + "description": "The type of event: \"call.recording_ready\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call_recording"], + "title": "CallRecordingReadyEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecordingStartedEvent": { + "description": "This event is sent when call recording has started", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_started", + "description": "The type of event: \"call.recording_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallRecordingStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRecordingStoppedEvent": { + "description": "This event is sent when call recording has stopped", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.recording_stopped", + "description": "The type of event: \"call.recording_stopped\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallRecordingStoppedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRejectedEvent": { + "description": "This event is sent when a user rejects a notification to join a call.", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.rejected", + "description": "The type of event: \"call.rejected\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who rejected the call", + "title": "User", + "x-stream-index": "004" + } + }, + "required": ["type", "created_at", "call_cid", "call", "user"], + "title": "CallRejectedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004" + }, + "members": { + "items": { "$ref": "#/components/schemas/MemberRequest" }, + "maximum": 100, + "type": "array", + "x-stream-index": "005" + }, + "settings_override": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "006" + }, + "starts_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "team": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "CallResponse": { + "description": "Represents a call", + "properties": { + "backstage": { "type": "boolean", "x-stream-index": "015" }, + "blocked_user_ids": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "017" + }, + "cid": { + "description": "The unique identifier for a call (\u003ctype\u003e:\u003cid\u003e)", + "title": "CID", + "type": "string", + "x-stream-index": "004" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "009" + }, + "created_by": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that created the call", + "title": "Created By", + "x-stream-index": "007" + }, + "current_session_id": { "type": "string", "x-stream-index": "005" }, + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "008" + }, + "egress": { + "$ref": "#/components/schemas/EgressResponse", + "x-stream-index": "020" + }, + "ended_at": { + "description": "Date/time when the call ended", + "format": "date-time", + "title": "Ended At", + "type": "number", + "x-stream-index": "013" + }, + "id": { + "description": "Call ID", + "title": "ID", + "type": "string", + "x-stream-index": "003" + }, + "ingress": { + "$ref": "#/components/schemas/CallIngressResponse", + "x-stream-index": "018" + }, + "recording": { "type": "boolean", "x-stream-index": "011" }, + "session": { + "$ref": "#/components/schemas/CallSessionResponse", + "x-stream-index": "019" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "016" + }, + "starts_at": { + "description": "Date/time when the call will start", + "format": "date-time", + "title": "Starts At", + "type": "number", + "x-stream-index": "014" + }, + "team": { "type": "string", "x-stream-index": "006" }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailResponse", + "x-stream-index": "021" + }, + "transcribing": { "type": "boolean", "x-stream-index": "012" }, + "type": { + "description": "The type of call", + "title": "Type", + "type": "string", + "x-stream-index": "002" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "010" + } + }, + "required": [ + "type", + "id", + "cid", + "current_session_id", + "created_by", + "custom", + "created_at", + "updated_at", + "recording", + "transcribing", + "backstage", + "settings", + "blocked_user_ids", + "ingress", + "egress" + ], + "title": "Call", + "type": "object" + }, + "CallRingEvent": { + "description": "This event is sent to all call members to notify they are getting called", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "005" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "members": { + "description": "Call members", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "006" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.ring", + "description": "The type of event: \"call.notification\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that sent the call notification", + "title": "User", + "x-stream-index": "007" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "call", + "members", + "user" + ], + "title": "CallRingEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionEndedEvent": { + "description": "This event is sent when a call session ends", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "004" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_ended", + "description": "The type of event: \"call.session_ended\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "session_id", "call"], + "title": "CallSessionEndedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionParticipantJoinedEvent": { + "description": "This event is sent when a participant joins a call session", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "participant": { + "$ref": "#/components/schemas/CallParticipantResponse", + "description": "The participant that joined the session", + "title": "Participant", + "x-stream-index": "004" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_participant_joined", + "description": "The type of event: \"call.session_participant_joined\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "participant" + ], + "title": "CallSessionParticipantJoinedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionParticipantLeftEvent": { + "description": "This event is sent when a participant leaves a call session", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "participant": { + "$ref": "#/components/schemas/CallParticipantResponse", + "description": "The participant that left the session", + "title": "Participant", + "x-stream-index": "004" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_participant_left", + "description": "The type of event: \"call.session_participant_left\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "session_id", + "participant" + ], + "title": "CallSessionParticipantLeftEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSessionResponse": { + "properties": { + "accepted_by": { + "additionalProperties": { "format": "date-time", "type": "number" }, + "type": "object", + "x-stream-index": "007" + }, + "ended_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "live_ended_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "live_started_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008" + }, + "participants": { + "items": { "$ref": "#/components/schemas/CallParticipantResponse" }, + "type": "array", + "x-stream-index": "004" + }, + "participants_count_by_role": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "005" + }, + "rejected_by": { + "additionalProperties": { "format": "date-time", "type": "number" }, + "type": "object", + "x-stream-index": "006" + }, + "started_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + } + }, + "required": [ + "id", + "participants", + "participants_count_by_role", + "rejected_by", + "accepted_by" + ], + "type": "object" + }, + "CallSessionStartedEvent": { + "description": "This event is sent when a call session starts", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "004" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "session_id": { + "description": "Call session ID", + "title": "Session ID", + "type": "string", + "x-stream-index": "003.001" + }, + "type": { + "default": "call.session_started", + "description": "The type of event: \"call.session_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "session_id", "call"], + "title": "CallSessionStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallSettingsRequest": { + "properties": { + "audio": { + "$ref": "#/components/schemas/AudioSettingsRequest", + "x-stream-index": "001" + }, + "backstage": { + "$ref": "#/components/schemas/BackstageSettingsRequest", + "x-stream-index": "002" + }, + "broadcasting": { + "$ref": "#/components/schemas/BroadcastSettingsRequest", + "x-stream-index": "009" + }, + "geofencing": { + "$ref": "#/components/schemas/GeofenceSettingsRequest", + "x-stream-index": "003" + }, + "recording": { + "$ref": "#/components/schemas/RecordSettingsRequest", + "x-stream-index": "005" + }, + "ring": { + "$ref": "#/components/schemas/RingSettingsRequest", + "x-stream-index": "006" + }, + "screensharing": { + "$ref": "#/components/schemas/ScreensharingSettingsRequest", + "x-stream-index": "007" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailsSettingsRequest", + "x-stream-index": "010" + }, + "transcription": { + "$ref": "#/components/schemas/TranscriptionSettingsRequest", + "x-stream-index": "008" + }, + "video": { + "$ref": "#/components/schemas/VideoSettingsRequest", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "CallSettingsResponse": { + "properties": { + "audio": { + "$ref": "#/components/schemas/AudioSettingsResponse", + "x-stream-index": "001" + }, + "backstage": { + "$ref": "#/components/schemas/BackstageSettingsResponse", + "x-stream-index": "002" + }, + "broadcasting": { + "$ref": "#/components/schemas/BroadcastSettingsResponse", + "x-stream-index": "003" + }, + "geofencing": { + "$ref": "#/components/schemas/GeofenceSettingsResponse", + "x-stream-index": "004" + }, + "recording": { + "$ref": "#/components/schemas/RecordSettingsResponse", + "x-stream-index": "005" + }, + "ring": { + "$ref": "#/components/schemas/RingSettingsResponse", + "x-stream-index": "006" + }, + "screensharing": { + "$ref": "#/components/schemas/ScreensharingSettingsResponse", + "x-stream-index": "007" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailsSettingsResponse", + "x-stream-index": "010" + }, + "transcription": { + "$ref": "#/components/schemas/TranscriptionSettingsResponse", + "x-stream-index": "008" + }, + "video": { + "$ref": "#/components/schemas/VideoSettingsResponse", + "x-stream-index": "009" + } + }, + "required": [ + "audio", + "backstage", + "broadcasting", + "geofencing", + "recording", + "ring", + "screensharing", + "transcription", + "video", + "thumbnails" + ], + "type": "object" + }, + "CallStateResponseFields": { + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "members": { + "description": "List of call members", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "description": "Current user membership object", + "title": "Membership", + "x-stream-index": "003" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "004" + } + }, + "required": ["call", "members", "own_capabilities", "blocked_users"], + "type": "object" + }, + "CallStatsReportSummaryResponse": { + "properties": { + "call_cid": { "type": "string", "x-stream-index": "001" }, + "call_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "call_session_id": { "type": "string", "x-stream-index": "002" }, + "call_status": { "type": "string", "x-stream-index": "004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "first_stats_time": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "quality_score": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + } + }, + "required": [ + "call_cid", + "call_session_id", + "first_stats_time", + "call_status", + "call_duration_seconds" + ], + "type": "object" + }, + "CallTimeline": { + "properties": { + "events": { + "items": { "$ref": "#/components/schemas/CallEvent" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["events"], + "type": "object" + }, + "CallTranscription": { + "description": "CallTranscription represents a transcription of a call.", + "properties": { + "end_time": { + "format": "date-time", + "title": "The end time of the transcription.", + "type": "number", + "x-stream-index": "004" + }, + "filename": { + "title": "The filename of the transcription.", + "type": "string", + "x-stream-index": "001" + }, + "start_time": { + "format": "date-time", + "title": "The start time of the transcription.", + "type": "number", + "x-stream-index": "003" + }, + "url": { + "title": "The URL of the transcription.", + "type": "string", + "x-stream-index": "002" + } + }, + "required": ["filename", "url", "start_time", "end_time"], + "type": "object" + }, + "CallTranscriptionFailedEvent": { + "description": "This event is sent when call transcription has failed", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.transcription_failed", + "description": "The type of event: \"call.transcription_failed\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallTranscriptionFailedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallTranscriptionReadyEvent": { + "description": "This event is sent when call transcription is ready", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "call_transcription": { + "$ref": "#/components/schemas/CallTranscription", + "description": "The call transcription object", + "title": "CallTranscription", + "x-stream-index": "003" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.transcription_ready", + "description": "The type of event: \"call.transcription_ready\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "call_transcription"], + "title": "CallTranscriptionReadyEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallTranscriptionStartedEvent": { + "description": "This event is sent when call transcription has started", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.transcription_started", + "description": "The type of event: \"call.transcription_started\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallTranscriptionStartedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallTranscriptionStoppedEvent": { + "description": "This event is sent when call transcription has stopped", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.transcription_stopped", + "description": "The type of event: \"call.transcription_stopped\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid"], + "title": "CallTranscriptionStoppedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallUpdatedEvent": { + "description": "This event is sent when a call is updated, clients should use this update the local state of the call. \nThis event also contains the capabilities by role for the call, clients should update the own_capability for the current.", + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "description": "Call object", + "title": "Call", + "x-stream-index": "003" + }, + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "capabilities_by_role": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "description": "The capabilities by role for this call", + "title": "CapabilitiesByRole", + "type": "object", + "x-stream-index": "004" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.updated", + "description": "The type of event: \"call.ended\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "call", + "capabilities_by_role" + ], + "title": "CallUpdatedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CallUserMutedEvent": { + "description": "This event is sent when a call member is muted", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "from_user_id": { "type": "string", "x-stream-index": "003" }, + "muted_user_ids": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.user_muted", + "description": "The type of event: \"call.user_muted\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "from_user_id", + "muted_user_ids" + ], + "title": "CallUserMutedEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CastPollVoteRequest": { + "nullable": true, + "properties": { + "vote": { + "$ref": "#/components/schemas/VoteData", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "Channel": { + "properties": { + "auto_translation_enabled": { + "type": "boolean", + "x-stream-index": "028" + }, + "auto_translation_language": { + "type": "string", + "x-stream-index": "029" + }, + "cid": { "type": "string", "x-stream-index": "003" }, + "config": { + "$ref": "#/components/schemas/ChannelConfig", + "x-stream-index": "025" + }, + "config_overrides": { + "$ref": "#/components/schemas/ChannelConfig", + "x-stream-index": "026" + }, + "cooldown": { + "format": "int32", + "type": "integer", + "x-stream-index": "030" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "018" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "disabled": { "type": "boolean", "x-stream-index": "017" }, + "frozen": { "type": "boolean", "x-stream-index": "016" }, + "id": { "type": "string", "x-stream-index": "004" }, + "invites": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "021" + }, + "last_message_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "member_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "020" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "019" + }, + "team": { "type": "string", "x-stream-index": "027" }, + "truncated_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "015" + }, + "type": { "type": "string", "x-stream-index": "005" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + } + }, + "required": [ + "cid", + "id", + "type", + "created_at", + "updated_at", + "frozen", + "disabled", + "custom", + "auto_translation_language" + ], + "type": "object" + }, + "ChannelConfig": { + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "001.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "001.025" + }, + "blocklist": { "type": "string", "x-stream-index": "001.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "001.023" + }, + "commands": { + "description": "List of commands that channel supports", + "items": { "type": "string" }, + "title": "Commands", + "type": "array", + "x-stream-index": "003" + }, + "connect_events": { "type": "boolean", "x-stream-index": "001.004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.003" + }, + "custom_events": { "type": "boolean", "x-stream-index": "001.012" }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "001.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "001.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "001.009" }, + "name": { "type": "string", "x-stream-index": "001.001" }, + "polls": { "type": "boolean", "x-stream-index": "001.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "001.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "001.008" }, + "reactions": { "type": "boolean", "x-stream-index": "001.006" }, + "read_events": { "type": "boolean", "x-stream-index": "001.003" }, + "reminders": { "type": "boolean", "x-stream-index": "001.014" }, + "replies": { "type": "boolean", "x-stream-index": "001.007" }, + "search": { "type": "boolean", "x-stream-index": "001.005" }, + "typing_events": { "type": "boolean", "x-stream-index": "001.002" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.004" + }, + "uploads": { "type": "boolean", "x-stream-index": "001.010" }, + "url_enrichment": { "type": "boolean", "x-stream-index": "001.011" } + }, + "required": [ + "name", + "typing_events", + "read_events", + "connect_events", + "search", + "reactions", + "replies", + "quotes", + "mutes", + "uploads", + "url_enrichment", + "custom_events", + "push_notifications", + "reminders", + "mark_messages_pending", + "polls", + "message_retention", + "max_message_length", + "automod", + "automod_behavior", + "created_at", + "updated_at", + "commands" + ], + "type": "object" + }, + "ChannelConfigWithInfo": { + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.002.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "001.002.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.002.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "001.002.025" + }, + "blocklist": { "type": "string", "x-stream-index": "001.002.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.002.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "001.002.023" + }, + "commands": { + "items": { "$ref": "#/components/schemas/Command" }, + "type": "array", + "x-stream-index": "001.003" + }, + "connect_events": { + "type": "boolean", + "x-stream-index": "001.002.004" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.001.003" + }, + "custom_events": { + "type": "boolean", + "x-stream-index": "001.002.012" + }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "title": "Grants", + "type": "object", + "x-stream-index": "002", + "x-stream-map": { + "key": "role", + "title": "Grants", + "description": "List of grants modifiers that apply to a role" + } + }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "001.002.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "001.002.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "001.002.009" }, + "name": { "type": "string", "x-stream-index": "001.002.001" }, + "polls": { "type": "boolean", "x-stream-index": "001.002.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "001.002.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "001.002.008" }, + "reactions": { "type": "boolean", "x-stream-index": "001.002.006" }, + "read_events": { "type": "boolean", "x-stream-index": "001.002.003" }, + "reminders": { "type": "boolean", "x-stream-index": "001.002.014" }, + "replies": { "type": "boolean", "x-stream-index": "001.002.007" }, + "search": { "type": "boolean", "x-stream-index": "001.002.005" }, + "typing_events": { + "type": "boolean", + "x-stream-index": "001.002.002" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.001.004" + }, + "uploads": { "type": "boolean", "x-stream-index": "001.002.010" }, + "url_enrichment": { + "type": "boolean", + "x-stream-index": "001.002.011" + } + }, + "required": [ + "created_at", + "updated_at", + "name", + "typing_events", + "read_events", + "connect_events", + "search", + "reactions", + "replies", + "quotes", + "mutes", + "uploads", + "url_enrichment", + "custom_events", + "push_notifications", + "reminders", + "mark_messages_pending", + "polls", + "message_retention", + "max_message_length", + "automod", + "automod_behavior", + "commands" + ], + "type": "object" + }, + "ChannelCreatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "channel.created", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at"], + "title": "ChannelCreatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelDeletedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "003.004" + }, + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "team": { "type": "string", "x-stream-index": "001.001" }, + "type": { + "default": "channel.deleted", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "ChannelDeletedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelFrozenEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "channel.frozen", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "ChannelFrozenEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelGetOrCreateRequest": { + "nullable": true, + "properties": { + "data": { + "$ref": "#/components/schemas/ChannelInput", + "x-stream-index": "004" + }, + "hide_for_creator": { + "description": "Whether this channel will be hidden for the user who created the channel or not", + "title": "Hide for creator", + "type": "boolean", + "x-stream-index": "008" + }, + "members": { + "$ref": "#/components/schemas/PaginationParams", + "x-stream-index": "011" + }, + "messages": { + "$ref": "#/components/schemas/MessagePaginationParams", + "x-stream-index": "010" + }, + "presence": { + "description": "Fetch user presence info", + "title": "Presence", + "type": "boolean", + "x-stream-index": "007" + }, + "state": { + "description": "Refresh channel state", + "title": "State", + "type": "boolean", + "x-stream-index": "006" + }, + "thread_unread_counts": { + "type": "boolean", + "x-stream-index": "009" + }, + "watch": { + "description": "Start watching the channel", + "title": "Watch", + "type": "boolean", + "x-stream-index": "005" + }, + "watchers": { + "$ref": "#/components/schemas/PaginationParams", + "x-stream-index": "012" + } + }, + "type": "object" + }, + "ChannelHiddenEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "003.004" + }, + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "clear_history": { "type": "boolean", "x-stream-index": "001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "type": { + "default": "channel.hidden", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002.001" + } + }, + "required": [ + "clear_history", + "cid", + "channel_id", + "channel_type", + "type", + "created_at" + ], + "title": "ChannelHiddenEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelInput": { + "properties": { + "auto_translation_enabled": { + "description": "Enable or disable auto translation", + "title": "Auto translation", + "type": "boolean", + "x-stream-index": "007" + }, + "auto_translation_language": { + "description": "Switch auto translation language", + "title": "Auto translation language", + "type": "string", + "x-stream-index": "008" + }, + "config_overrides": { + "$ref": "#/components/schemas/ChannelConfig", + "x-stream-index": "026" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "011" + }, + "created_by_id": { "type": "string", "x-stream-index": "010" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "017" + }, + "disabled": { "type": "boolean", "x-stream-index": "016" }, + "frozen": { + "description": "Freeze or unfreeze the channel", + "title": "Frozen", + "type": "boolean", + "x-stream-index": "015" + }, + "invites": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "type": "array", + "x-stream-index": "018" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "type": "array", + "x-stream-index": "020" + }, + "team": { + "description": "Team the channel belongs to (if multi-tenant mode is enabled)", + "title": "Team", + "type": "string", + "x-stream-index": "006" + }, + "truncated_by_id": { "type": "string", "x-stream-index": "012" } + }, + "type": "object" + }, + "ChannelKickedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002.004" + }, + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "channel.kicked", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "ChannelKickedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelMember": { + "nullable": true, + "properties": { + "ban_expires": { + "description": "Expiration date of the ban", + "format": "date-time", + "title": "Ban expires", + "type": "number", + "x-stream-index": "016" + }, + "banned": { + "description": "Whether member is banned this channel or not", + "title": "Banned", + "type": "boolean", + "x-stream-index": "015" + }, + "channel_role": { + "description": "Role of the member in the channel", + "title": "Channel Role", + "type": "string", + "x-stream-index": "020" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "011" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "invite_accepted_at": { + "description": "Date when invite was accepted", + "format": "date-time", + "title": "Invited accepted at", + "type": "number", + "x-stream-index": "008" + }, + "invite_rejected_at": { + "description": "Date when invite was rejected", + "format": "date-time", + "title": "Invited rejected at", + "type": "number", + "x-stream-index": "009" + }, + "invited": { + "description": "Whether member was invited or not", + "title": "Invited", + "type": "boolean", + "x-stream-index": "007" + }, + "is_moderator": { + "description": "Whether member is channel moderator or not", + "title": "Is moderator", + "type": "boolean", + "x-stream-index": "006" + }, + "shadow_banned": { + "description": "Whether member is shadow banned in this channel or not", + "title": "Shadow banned", + "type": "boolean", + "x-stream-index": "018" + }, + "status": { "type": "string", "x-stream-index": "010" }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "012" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "005" + }, + "user_id": { + "title": "User ID", + "type": "string", + "x-stream-index": "004" + } + }, + "required": [ + "created_at", + "updated_at", + "banned", + "shadow_banned", + "channel_role", + "notifications_muted" + ], + "title": "Channel member", + "type": "object" + }, + "ChannelMute": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "007" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "009" + }, + "expires": { + "description": "Date/time of mute expiration", + "format": "date-time", + "title": "Expires", + "type": "number", + "x-stream-index": "008" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "Owner of channel mute", + "title": "User", + "x-stream-index": "005" + } + }, + "required": ["created_at", "updated_at"], + "type": "object" + }, + "ChannelResponse": { + "description": "Represents channel in chat", + "properties": { + "auto_translation_enabled": { + "description": "Whether auto translation is enabled or not", + "title": "Auto translation", + "type": "boolean", + "x-stream-index": "021" + }, + "auto_translation_language": { + "description": "Language to translate to when auto translation is active", + "title": "Auto translation language", + "type": "string", + "x-stream-index": "022" + }, + "cid": { + "description": "Channel CID (\u003ctype\u003e:\u003cid\u003e)", + "title": "CID", + "type": "string", + "x-stream-index": "005" + }, + "config": { + "$ref": "#/components/schemas/ChannelConfigWithInfo", + "description": "Channel configuration", + "title": "Config", + "x-stream-index": "017" + }, + "cooldown": { + "description": "Cooldown period after sending each message", + "format": "int32", + "title": "Cooldown", + "type": "integer", + "x-stream-index": "024" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "008" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Creator of the channel", + "title": "Created by", + "x-stream-index": "011" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "029" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "010" + }, + "disabled": { "type": "boolean", "x-stream-index": "013" }, + "frozen": { + "description": "Whether channel is frozen or not", + "title": "Frozen", + "type": "boolean", + "x-stream-index": "012" + }, + "hidden": { + "description": "Whether this channel is hidden by current user or not", + "title": "Hidden", + "type": "boolean", + "x-stream-index": "026" + }, + "hide_messages_before": { + "description": "Date since when the message history is accessible", + "format": "date-time", + "title": "Hide messages before", + "type": "number", + "x-stream-index": "023" + }, + "id": { + "description": "Channel unique ID", + "title": "ID", + "type": "string", + "x-stream-index": "003" + }, + "last_message_at": { + "description": "Date of the last message sent", + "format": "date-time", + "title": "Last message at", + "type": "number", + "x-stream-index": "006" + }, + "member_count": { + "description": "Number of members in the channel", + "format": "int32", + "title": "Member count", + "type": "integer", + "x-stream-index": "015" + }, + "members": { + "description": "List of channel members (max 100)", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "title": "Members", + "type": "array", + "x-stream-index": "014" + }, + "mute_expires_at": { + "description": "Date of mute expiration", + "format": "date-time", + "title": "Mute expires at", + "type": "number", + "x-stream-index": "019" + }, + "muted": { + "description": "Whether this channel is muted or not", + "title": "Muted", + "type": "boolean", + "x-stream-index": "018" + }, + "own_capabilities": { + "description": "List of channel capabilities of authenticated user", + "items": { "type": "string" }, + "title": "Own Capabilities", + "type": "array", + "x-stream-index": "025" + }, + "team": { + "description": "Team the channel belongs to (multi-tenant only)", + "title": "Team", + "type": "string", + "x-stream-index": "020" + }, + "truncated_at": { + "description": "Date of the latest truncation of the channel", + "format": "date-time", + "title": "Truncated At", + "type": "number", + "x-stream-index": "027" + }, + "truncated_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "028" + }, + "type": { + "description": "Type of the channel", + "title": "Type", + "type": "string", + "x-stream-docs-page-id": "channel_features", + "x-stream-index": "004" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "009" + } + }, + "required": [ + "id", + "type", + "cid", + "created_at", + "updated_at", + "frozen", + "disabled", + "custom" + ], + "title": "Channel", + "type": "object" + }, + "ChannelStateResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001.001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "hidden": { "type": "boolean", "x-stream-index": "001.010" }, + "hide_messages_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.011" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "001.007" + }, + "membership": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "001.008" + }, + "messages": { + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "pending_messages": { + "items": { "$ref": "#/components/schemas/PendingMessage" }, + "type": "array", + "x-stream-index": "001.012" + }, + "pinned_messages": { + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "type": "array", + "x-stream-index": "001.003" + }, + "read": { + "items": { "$ref": "#/components/schemas/ReadStateResponse" }, + "type": "array", + "x-stream-index": "001.006" + }, + "threads": { + "items": { "$ref": "#/components/schemas/ThreadState" }, + "type": "array", + "x-stream-index": "001.009" + }, + "watcher_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.004" + }, + "watchers": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "001.005" + } + }, + "required": [ + "messages", + "pinned_messages", + "members", + "threads", + "duration" + ], + "type": "object" + }, + "ChannelStateResponseFields": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "hidden": { + "description": "Whether this channel is hidden or not", + "title": "Hidden", + "type": "boolean", + "x-stream-index": "010" + }, + "hide_messages_before": { + "description": "Messages before this date are hidden from the user", + "format": "date-time", + "title": "Hide messages before", + "type": "number", + "x-stream-index": "011" + }, + "members": { + "description": "List of channel members", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "title": "Members", + "type": "array", + "x-stream-index": "007" + }, + "membership": { + "$ref": "#/components/schemas/ChannelMember", + "description": "Current user membership object", + "title": "Membership", + "x-stream-index": "008" + }, + "messages": { + "description": "List of channel messages", + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "title": "Message", + "type": "array", + "x-stream-index": "002" + }, + "pending_messages": { + "description": "Pending messages that this user has sent", + "items": { "$ref": "#/components/schemas/PendingMessage" }, + "title": "Pending messages", + "type": "array", + "x-stream-index": "012" + }, + "pinned_messages": { + "description": "List of pinned messages in the channel", + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "title": "Pinned messages", + "type": "array", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "003" + }, + "read": { + "description": "List of read states", + "items": { "$ref": "#/components/schemas/ReadStateResponse" }, + "title": "Read", + "type": "array", + "x-stream-index": "006" + }, + "threads": { + "items": { "$ref": "#/components/schemas/ThreadState" }, + "type": "array", + "x-stream-index": "009" + }, + "watcher_count": { + "description": "Number of channel watchers", + "format": "int32", + "title": "Watcher count", + "type": "integer", + "x-stream-index": "004" + }, + "watchers": { + "description": "List of user who is watching the channel", + "items": { "$ref": "#/components/schemas/UserResponse" }, + "title": "Watchers", + "type": "array", + "x-stream-index": "005" + } + }, + "required": ["messages", "pinned_messages", "members", "threads"], + "type": "object" + }, + "ChannelStopWatchingRequest": { "nullable": true, "type": "object" }, + "ChannelTruncatedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001.004" + }, + "channel_id": { "type": "string", "x-stream-index": "001.002" }, + "channel_type": { "type": "string", "x-stream-index": "001.003" }, + "cid": { "type": "string", "x-stream-index": "001.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "channel.truncated", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "ChannelTruncatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelUnFrozenEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "channel.unfrozen", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "ChannelUnFrozenEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelUpdatedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "004.004" + }, + "channel_id": { "type": "string", "x-stream-index": "004.002" }, + "channel_type": { "type": "string", "x-stream-index": "004.003" }, + "cid": { "type": "string", "x-stream-index": "004.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "type": { + "default": "channel.updated", + "type": "string", + "x-stream-index": "003.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "005.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "ChannelUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ChannelVisibleEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "001.002" }, + "channel_type": { "type": "string", "x-stream-index": "001.003" }, + "cid": { "type": "string", "x-stream-index": "001.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002" + }, + "type": { + "default": "channel.visible", + "type": "string", + "x-stream-index": "003.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "ChannelVisibleEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ClosedCaptionEvent": { + "description": "This event is sent when closed captions are being sent in a call, clients should use this to show the closed captions in the call screen", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "closed_caption": { + "$ref": "#/components/schemas/CallClosedCaption", + "description": "The closed caption object", + "title": "CallClosedCaption", + "x-stream-index": "003" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.closed_caption", + "description": "The type of event: \"call.closed_caption\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "call_cid", "closed_caption"], + "title": "ClosedCaptionEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "CollectUserFeedbackRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "009" + }, + "rating": { + "format": "int32", + "maximum": 5, + "minimum": 1, + "type": "integer", + "x-stream-index": "007" + }, + "reason": { + "maxLength": 1000, + "type": "string", + "x-stream-index": "008" + }, + "sdk": { "maxLength": 50, "type": "string", "x-stream-index": "005" }, + "sdk_version": { + "maxLength": 50, + "type": "string", + "x-stream-index": "006" + }, + "user_session_id": { + "maxLength": 50, + "type": "string", + "x-stream-index": "004" + } + }, + "required": ["user_session_id", "sdk", "sdk_version", "rating"], + "type": "object" + }, + "CollectUserFeedbackResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "Command": { + "description": "Represents custom chat command", + "nullable": true, + "properties": { + "args": { + "description": "Arguments help text, shown in commands auto-completion", + "title": "Arguments", + "type": "string", + "x-stream-index": "006" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "readOnly": true, + "title": "Created at", + "type": "number", + "x-stream-index": "001" + }, + "description": { + "description": "Description, shown in commands auto-completion", + "title": "Description", + "type": "string", + "x-stream-index": "005" + }, + "name": { + "description": "Unique command name", + "title": "Name", + "type": "string", + "x-stream-index": "004" + }, + "set": { + "description": "Set name used for grouping commands", + "title": "Set", + "type": "string", + "x-stream-index": "007" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "readOnly": true, + "title": "Updated at", + "type": "number", + "x-stream-index": "002" + } + }, + "required": ["name", "description", "args", "set"], + "title": "Command", + "type": "object" + }, + "ConnectUserDetailsRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "image": { "type": "string", "x-stream-index": "003" }, + "invisible": { "type": "boolean", "x-stream-index": "006" }, + "language": { "type": "string", "x-stream-index": "005" }, + "name": { "type": "string", "x-stream-index": "002" }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "007" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettingsInput", + "x-stream-index": "010" + } + }, + "required": ["id"], + "type": "object" + }, + "ConnectedEvent": { + "description": "This event is sent when the WS connection is established and authenticated, this event contains the full user object as it is stored on the server", + "properties": { + "connection_id": { + "description": "The connection_id for this client", + "title": "Connection ID", + "type": "string", + "x-stream-index": "002" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "me": { + "$ref": "#/components/schemas/OwnUserResponse", + "description": "The full user object as it is stored on the server", + "title": "OwnUserResponse", + "x-stream-index": "003" + }, + "type": { + "default": "connection.ok", + "description": "The type of event: \"connection.ok\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "connection_id", "me"], + "title": "ConnectedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ConnectionErrorEvent": { + "description": "This event is sent when the WS connection fails", + "properties": { + "connection_id": { "type": "string", "x-stream-index": "002" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "error": { + "$ref": "#/components/schemas/APIError", + "description": "The error that caused the connection to fail", + "title": "Error", + "x-stream-index": "003" + }, + "type": { + "default": "connection.error", + "description": "The type of event: \"connection.ok\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "connection_id", "error"], + "title": "ConnectionErrorEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "Coordinates": { + "properties": { + "latitude": { + "format": "float", + "type": "number", + "x-stream-index": "001" + }, + "longitude": { + "format": "float", + "type": "number", + "x-stream-index": "002" + } + }, + "required": ["latitude", "longitude"], + "type": "object" + }, + "CreateDeviceRequest": { + "nullable": true, + "properties": { + "id": { + "maxLength": 255, + "minLength": 1, + "type": "string", + "x-stream-index": "001" + }, + "push_provider": { + "enum": ["firebase", "apn", "huawei", "xiaomi"], + "type": "string", + "x-stream-index": "002" + }, + "push_provider_name": { "type": "string", "x-stream-index": "003" }, + "voip_token": { "type": "boolean", "x-stream-index": "004" } + }, + "required": ["id", "push_provider"], + "type": "object" + }, + "CreateGuestRequest": { + "nullable": true, + "properties": { + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "001" + } + }, + "required": ["user"], + "type": "object" + }, + "CreateGuestResponse": { + "nullable": true, + "properties": { + "access_token": { + "description": "the access token to authenticate the user", + "title": "Access token", + "type": "string", + "x-stream-index": "002" + }, + "duration": { "type": "string", "x-stream-index": "003.001" }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "title": "User", + "x-stream-index": "001" + } + }, + "required": ["user", "access_token", "duration"], + "type": "object" + }, + "CreatePollOptionRequest": { + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "004" + }, + "position": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "text": { "type": "string", "x-stream-index": "002" } + }, + "required": ["text"], + "type": "object" + }, + "CreatePollRequest": { + "description": "Contains all information needed to create a new poll", + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "011" + }, + "allow_answers": { + "description": "Indicates whether users can suggest user defined answers", + "title": "Allow answers", + "type": "boolean", + "x-stream-index": "009" + }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "008" + }, + "description": { + "description": "A description of the poll", + "title": "Description", + "type": "string", + "x-stream-index": "003" + }, + "enforce_unique_vote": { + "description": "Indicates whether users can cast multiple votes", + "title": "Multiple choice", + "type": "boolean", + "x-stream-index": "006" + }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "is_closed": { + "description": "Indicates whether the poll is open for voting", + "title": "Is closed", + "type": "boolean", + "x-stream-index": "010" + }, + "max_votes_allowed": { + "description": "Indicates the maximum amount of votes a user can cast", + "format": "int32", + "maximum": 10, + "title": "Maximum votes allowed", + "type": "integer", + "x-stream-index": "007" + }, + "name": { + "description": "The name of the poll", + "title": "Name", + "type": "string", + "x-stream-index": "002" + }, + "options": { + "items": { "$ref": "#/components/schemas/PollOptionInput" }, + "maximum": 100, + "type": "array", + "x-stream-index": "004" + }, + "voting_visibility": { + "enum": ["anonymous", "public"], + "type": "string", + "x-stream-index": "005" + } + }, + "required": ["name"], + "title": "Create Poll Request", + "type": "object" + }, + "Credentials": { + "properties": { + "ice_servers": { + "items": { "$ref": "#/components/schemas/ICEServer" }, + "type": "array", + "x-stream-index": "003" + }, + "server": { + "$ref": "#/components/schemas/SFUResponse", + "x-stream-index": "001" + }, + "token": { "type": "string", "x-stream-index": "002" } + }, + "required": ["server", "token", "ice_servers"], + "type": "object" + }, + "CustomVideoEvent": { + "description": "A custom event, this event is used to send custom events to other participants in the call.", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "type": { + "default": "custom", + "description": "The type of event, \"custom\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "004" + } + }, + "required": ["type", "created_at", "call_cid", "custom", "user"], + "title": "CustomVideoEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "DeleteChannelResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "DeleteChannelsRequest": { + "nullable": true, + "properties": { + "cids": { + "description": "All channels that should be deleted", + "items": { "type": "string" }, + "maximum": 100, + "minimum": 1, + "title": "Channels CID", + "type": "array", + "x-stream-index": "001" + }, + "hard_delete": { + "description": "Specify if channels and all ressources should be hard deleted", + "title": "Hard delete", + "type": "boolean", + "x-stream-index": "002" + } + }, + "required": ["cids"], + "type": "object" + }, + "DeleteChannelsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "result": { + "additionalProperties": { + "$ref": "#/components/schemas/DeleteChannelsResult" + }, + "type": "object", + "x-stream-index": "001" + }, + "task_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["duration"], + "type": "object" + }, + "DeleteChannelsResult": { + "nullable": true, + "properties": { + "error": { "type": "string", "x-stream-index": "003" }, + "status": { "type": "string", "x-stream-index": "002" } + }, + "required": ["status"], + "type": "object" + }, + "DeleteMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "message": { + "$ref": "#/components/schemas/MessageResponse", + "x-stream-index": "001" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "Device": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "disabled": { "type": "boolean", "x-stream-index": "002.003" }, + "disabled_reason": { "type": "string", "x-stream-index": "002.004" }, + "id": { + "description": "Device ID", + "title": "ID", + "type": "string", + "x-stream-index": "002.001.004" + }, + "push_provider": { + "enum": ["firebase", "apn", "huawei", "xiaomi"], + "title": "Push provider", + "type": "string", + "x-stream-index": "002.001.001" + }, + "push_provider_name": { + "description": "Name of the push provider configuration", + "title": "Push provider name", + "type": "string", + "x-stream-index": "002.001.003" + }, + "user_id": { "type": "string", "x-stream-index": "004" }, + "voip": { "type": "boolean", "x-stream-index": "002.001.005" } + }, + "required": ["push_provider", "id", "created_at", "user_id"], + "type": "object" + }, + "EdgeResponse": { + "properties": { + "continent_code": { "type": "string", "x-stream-index": "007.003" }, + "country_iso_code": { "type": "string", "x-stream-index": "007.002" }, + "green": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "latency_test_url": { "type": "string", "x-stream-index": "002" }, + "latitude": { + "format": "float", + "type": "number", + "x-stream-index": "006.001" + }, + "longitude": { + "format": "float", + "type": "number", + "x-stream-index": "006.002" + }, + "red": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + }, + "subdivision_iso_code": { + "type": "string", + "x-stream-index": "007.001" + }, + "yellow": { + "format": "int32", + "type": "integer", + "x-stream-index": "004" + } + }, + "required": [ + "id", + "latency_test_url", + "green", + "yellow", + "red", + "latitude", + "longitude", + "subdivision_iso_code", + "country_iso_code", + "continent_code" + ], + "type": "object" + }, + "EgressHLSResponse": { + "properties": { + "playlist_url": { "type": "string", "x-stream-index": "001" } + }, + "required": ["playlist_url"], + "type": "object" + }, + "EgressRTMPResponse": { + "properties": { + "name": { "type": "string", "x-stream-index": "001" }, + "stream_key": { "type": "string", "x-stream-index": "003" }, + "url": { "type": "string", "x-stream-index": "002" } + }, + "required": ["name", "url", "stream_key"], + "type": "object" + }, + "EgressResponse": { + "properties": { + "broadcasting": { "type": "boolean", "x-stream-index": "001" }, + "hls": { + "$ref": "#/components/schemas/EgressHLSResponse", + "x-stream-index": "002" + }, + "rtmps": { + "items": { "$ref": "#/components/schemas/EgressRTMPResponse" }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["broadcasting", "rtmps"], + "type": "object" + }, + "EndCallRequest": { "nullable": true, "type": "object" }, + "EndCallResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "EventRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "parent_id": { "type": "string", "x-stream-index": "002" }, + "type": { "type": "string", "x-stream-index": "001" } + }, + "required": ["type"], + "type": "object" + }, + "EventResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "event": { + "$ref": "#/components/schemas/WSEvent", + "x-stream-index": "001" + } + }, + "required": ["event", "duration"], + "type": "object" + }, + "Field": { + "nullable": true, + "properties": { + "short": { "type": "boolean", "x-stream-index": "003" }, + "title": { "type": "string", "x-stream-index": "001" }, + "value": { "type": "string", "x-stream-index": "002" } + }, + "required": ["title", "value", "short"], + "type": "object" + }, + "FileDeleteResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "FileUploadConfig": { + "properties": { + "allowed_file_extensions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + }, + "allowed_mime_types": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + }, + "blocked_file_extensions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002" + }, + "blocked_mime_types": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + }, + "size_limit": { + "format": "int32", + "maximum": 104857600, + "minimum": 0, + "type": "integer", + "x-stream-index": "005" + } + }, + "required": [ + "allowed_file_extensions", + "blocked_file_extensions", + "allowed_mime_types", + "blocked_mime_types", + "size_limit" + ], + "type": "object" + }, + "FileUploadRequest": { + "nullable": true, + "properties": { + "file": { + "description": "file field", + "title": "File", + "type": "string", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/OnlyUserID", + "description": "user for the request **server side only**", + "title": "User", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "FileUploadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" }, + "file": { + "description": "URL to the uploaded asset. Should be used to put to `asset_url` attachment field", + "title": "File", + "type": "string", + "x-stream-index": "002" + }, + "thumb_url": { + "description": "URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field", + "title": "Thumbnail URL", + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "Flag": { + "description": "Contains information about flagged user or message", + "properties": { + "approved_at": { + "description": "Date of the approval", + "format": "date-time", + "title": "Approved at", + "type": "number", + "x-stream-index": "015" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "011" + }, + "created_by_automod": { "type": "boolean", "x-stream-index": "004" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "022" + }, + "details": { + "$ref": "#/components/schemas/FlagDetails", + "x-stream-index": "021" + }, + "reason": { "type": "string", "x-stream-index": "020" }, + "rejected_at": { + "description": "Date of the rejection", + "format": "date-time", + "title": "Rejected at", + "type": "number", + "x-stream-index": "016" + }, + "reviewed_at": { + "description": "Date of the review", + "format": "date-time", + "title": "Reviewed at", + "type": "number", + "x-stream-index": "013" + }, + "reviewed_by": { "type": "string", "x-stream-index": "014" }, + "target_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "008" + }, + "target_message_id": { + "description": "ID of flagged message", + "title": "Target Message ID", + "type": "string", + "x-stream-index": "007" + }, + "target_user": { + "$ref": "#/components/schemas/UserObject", + "description": "Flagged user", + "title": "User", + "x-stream-index": "010" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "012" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "User who flagged a message or a user", + "title": "User", + "x-stream-index": "006" + } + }, + "required": ["created_by_automod", "created_at", "updated_at"], + "title": "Flag", + "type": "object" + }, + "FlagDetails": { + "properties": { + "Extra": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "002" + }, + "automod": { + "$ref": "#/components/schemas/AutomodDetails", + "x-stream-index": "001" + }, + "original_text": { "type": "string", "x-stream-index": "003" } + }, + "required": ["Extra", "original_text"], + "type": "object" + }, + "FlagFeedback": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "005" + }, + "labels": { + "items": { "$ref": "#/components/schemas/Label" }, + "type": "array", + "x-stream-index": "006" + }, + "message_id": { "type": "string", "x-stream-index": "004" } + }, + "required": ["message_id", "created_at", "labels"], + "type": "object" + }, + "FlagMessageDetails": { + "properties": { + "pin_changed": { "type": "boolean", "x-stream-index": "002" }, + "should_enrich": { "type": "boolean", "x-stream-index": "003" }, + "skip_push": { "type": "boolean", "x-stream-index": "004" }, + "updated_by_id": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "FlagRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004" + }, + "reason": { + "maxLength": 255, + "type": "string", + "x-stream-index": "003" + }, + "target_message_id": { + "description": "ID of the message when reporting a message", + "title": "Target Message ID", + "type": "string", + "x-stream-index": "001" + }, + "target_user_id": { + "description": "ID of the user when reporting a user", + "title": "Target User ID", + "type": "string", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "FlagResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "flag": { + "$ref": "#/components/schemas/Flag", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "FullUserResponse": { + "properties": { + "banned": { "type": "boolean", "x-stream-index": "001.011" }, + "channel_mutes": { + "items": { "$ref": "#/components/schemas/ChannelMute" }, + "type": "array", + "x-stream-index": "007" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.004" + }, + "deactivated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.015" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.010" + }, + "devices": { + "items": { "$ref": "#/components/schemas/Device" }, + "type": "array", + "x-stream-index": "004" + }, + "id": { "type": "string", "x-stream-index": "001.001" }, + "image": { "type": "string", "x-stream-index": "001.003" }, + "invisible": { "type": "boolean", "x-stream-index": "005" }, + "language": { "type": "string", "x-stream-index": "001.005" }, + "last_active": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.013" + }, + "latest_hidden_channels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "011" + }, + "mutes": { + "items": { "$ref": "#/components/schemas/UserMute" }, + "type": "array", + "x-stream-index": "006" + }, + "name": { "type": "string", "x-stream-index": "001.002" }, + "online": { "type": "boolean", "x-stream-index": "001.012" }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "003" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "002" + }, + "revoke_tokens_issued_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.014" + }, + "role": { "type": "string", "x-stream-index": "001.006" }, + "shadow_banned": { "type": "boolean", "x-stream-index": "012" }, + "teams": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.007" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "unread_channels": { + "format": "int32", + "type": "integer", + "x-stream-index": "009" + }, + "unread_threads": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.009" + } + }, + "required": [ + "id", + "custom", + "language", + "role", + "teams", + "created_at", + "updated_at", + "banned", + "online", + "devices", + "mutes", + "channel_mutes", + "total_unread_count", + "unread_channels", + "unread_threads", + "shadow_banned" + ], + "type": "object" + }, + "GeofenceSettingsRequest": { + "properties": { + "names": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "GeofenceSettingsResponse": { + "properties": { + "names": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["names"], + "type": "object" + }, + "GeolocationResult": { + "properties": { + "accuracy_radius": { + "format": "int32", + "type": "integer", + "x-stream-index": "004" + }, + "city": { "type": "string", "x-stream-index": "003.001" }, + "continent": { "type": "string", "x-stream-index": "003.004" }, + "continent_code": { "type": "string", "x-stream-index": "002.003" }, + "country": { "type": "string", "x-stream-index": "003.003" }, + "country_iso_code": { "type": "string", "x-stream-index": "002.002" }, + "latitude": { + "format": "float", + "type": "number", + "x-stream-index": "001.001" + }, + "longitude": { + "format": "float", + "type": "number", + "x-stream-index": "001.002" + }, + "subdivision": { "type": "string", "x-stream-index": "003.002" }, + "subdivision_iso_code": { + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": [ + "latitude", + "longitude", + "subdivision_iso_code", + "country_iso_code", + "continent_code", + "city", + "subdivision", + "country", + "continent", + "accuracy_radius" + ], + "type": "object" + }, + "GetApplicationResponse": { + "nullable": true, + "properties": { + "app": { + "$ref": "#/components/schemas/AppResponseFields", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["app", "duration"], + "type": "object" + }, + "GetCallResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "blocked_users", + "duration" + ], + "type": "object" + }, + "GetCallStatsResponse": { + "nullable": true, + "properties": { + "call_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "call_timeline": { + "$ref": "#/components/schemas/CallTimeline", + "x-stream-index": "012" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "004" + }, + "latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "005" + }, + "max_freezes_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "max_participants": { + "format": "int32", + "type": "integer", + "x-stream-index": "006" + }, + "max_total_quality_limitation_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "009" + }, + "participant_report": { + "items": { "$ref": "#/components/schemas/UserStats" }, + "type": "array", + "x-stream-index": "013" + }, + "publishing_participants": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "quality_score": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "sfu_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "sfus": { + "items": { "$ref": "#/components/schemas/SFULocationResponse" }, + "type": "array", + "x-stream-index": "011" + } + }, + "required": [ + "duration", + "call_duration_seconds", + "quality_score", + "max_participants", + "publishing_participants", + "sfu_count", + "max_total_quality_limitation_duration_seconds", + "max_freezes_duration_seconds", + "sfus", + "participant_report" + ], + "type": "object" + }, + "GetEdgesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "edges": { + "items": { "$ref": "#/components/schemas/EdgeResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["edges", "duration"], + "type": "object" + }, + "GetManyMessagesResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.002.001" }, + "messages": { + "description": "List of messages", + "items": { "$ref": "#/components/schemas/Message" }, + "title": "Messages", + "type": "array", + "x-stream-index": "001.001" + } + }, + "required": ["messages", "duration"], + "type": "object" + }, + "GetMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/MessageWithChannelResponse", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "GetOGResponse": { + "nullable": true, + "properties": { + "actions": { + "items": { "$ref": "#/components/schemas/Action" }, + "type": "array", + "x-stream-index": "001.015" + }, + "asset_url": { + "description": "URL of detected video or audio", + "title": "Image URL", + "type": "string", + "x-stream-index": "001.017" + }, + "author_icon": { "type": "string", "x-stream-index": "001.007" }, + "author_link": { + "description": "og:site", + "title": "Author Link", + "type": "string", + "x-stream-index": "001.006" + }, + "author_name": { + "description": "og:site_name", + "title": "Author Name", + "type": "string", + "x-stream-index": "001.005" + }, + "color": { "type": "string", "x-stream-index": "001.003" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.018" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "fallback": { "type": "string", "x-stream-index": "001.002" }, + "fields": { + "items": { "$ref": "#/components/schemas/Field" }, + "type": "array", + "x-stream-index": "001.016" + }, + "footer": { "type": "string", "x-stream-index": "001.013" }, + "footer_icon": { "type": "string", "x-stream-index": "001.014" }, + "giphy": { + "$ref": "#/components/schemas/Images", + "x-stream-index": "001.019" + }, + "image_url": { + "description": "URL of detected image", + "title": "Image URL", + "type": "string", + "x-stream-index": "001.011" + }, + "og_scrape_url": { + "description": "extracted url from the text", + "title": "OG Scrape URL", + "type": "string", + "x-stream-index": "001.020" + }, + "original_height": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.022" + }, + "original_width": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.021" + }, + "pretext": { "type": "string", "x-stream-index": "001.004" }, + "text": { + "description": "og:description", + "title": "Text", + "type": "string", + "x-stream-index": "001.010" + }, + "thumb_url": { + "description": "URL of detected thumb image", + "title": "Image URL", + "type": "string", + "x-stream-index": "001.012" + }, + "title": { + "description": "og:title", + "title": "Title", + "type": "string", + "x-stream-index": "001.008" + }, + "title_link": { + "description": "og:url", + "title": "Title Link", + "type": "string", + "x-stream-index": "001.009" + }, + "type": { + "description": "Attachment type, could be empty, image, audio or video", + "title": "Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["custom", "duration"], + "title": "Get OG Attachment", + "type": "object", + "x-stream-docs-page-id": "og" + }, + "GetOrCreateCallRequest": { + "nullable": true, + "properties": { + "data": { + "$ref": "#/components/schemas/CallRequest", + "title": "ReadOnlyData", + "x-stream-index": "003" + }, + "members_limit": { + "format": "int32", + "maximum": 100, + "type": "integer", + "x-stream-index": "006" + }, + "notify": { + "description": "if provided it sends a notification event to the members for this call", + "title": "Notify", + "type": "boolean", + "x-stream-index": "005" + }, + "ring": { + "description": "if provided it sends a ring event to the members for this call", + "title": "Ring", + "type": "boolean", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "GetOrCreateCallResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "created": { "type": "boolean", "x-stream-index": "002" }, + "duration": { "type": "string", "x-stream-index": "003.001" }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "blocked_users", + "created", + "duration" + ], + "type": "object" + }, + "GetReactionsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "reactions": { + "description": "List of reactions", + "items": { "$ref": "#/components/schemas/Reaction" }, + "title": "Reactions", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["reactions", "duration"], + "type": "object" + }, + "GetRepliesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "messages": { + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["messages", "duration"], + "type": "object" + }, + "GetThreadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "thread": { + "$ref": "#/components/schemas/ThreadStateResponse", + "description": "Enriched thread state", + "title": "Thread", + "x-stream-index": "001" + } + }, + "required": ["thread", "duration"], + "type": "object" + }, + "GoLiveRequest": { + "nullable": true, + "properties": { + "recording_storage_name": { + "type": "string", + "x-stream-index": "005" + }, + "start_hls": { "type": "boolean", "x-stream-index": "003" }, + "start_recording": { "type": "boolean", "x-stream-index": "004" }, + "start_transcription": { "type": "boolean", "x-stream-index": "007" }, + "transcription_storage_name": { + "type": "string", + "x-stream-index": "006" + } + }, + "type": "object" + }, + "GoLiveResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["call", "duration"], + "type": "object" + }, + "HLSSettingsRequest": { + "properties": { + "auto_on": { "type": "boolean", "x-stream-index": "001" }, + "enabled": { "type": "boolean", "x-stream-index": "002" }, + "quality_tracks": { + "items": { "type": "string" }, + "maximum": 3, + "minimum": 1, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["quality_tracks"], + "type": "object" + }, + "HLSSettingsResponse": { + "properties": { + "auto_on": { "type": "boolean", "x-stream-index": "001" }, + "enabled": { "type": "boolean", "x-stream-index": "002" }, + "quality_tracks": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["auto_on", "enabled", "quality_tracks", "layout"], + "type": "object" + }, + "HealthCheckEvent": { + "properties": { + "cid": { "type": "string", "x-stream-index": "001" }, + "connection_id": { "type": "string", "x-stream-index": "002" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "me": { + "$ref": "#/components/schemas/OwnUser", + "x-stream-index": "003" + }, + "type": { + "default": "health.check", + "type": "string", + "x-stream-index": "004.001" + } + }, + "required": ["cid", "connection_id", "type", "created_at"], + "title": "HealthCheckEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "HideChannelRequest": { + "nullable": true, + "properties": { + "clear_history": { + "description": "Whether to clear message history of the channel or not", + "title": "Clear history", + "type": "boolean", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "HideChannelResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "ICEServer": { + "properties": { + "password": { "type": "string", "x-stream-index": "003" }, + "urls": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + }, + "username": { "type": "string", "x-stream-index": "002" } + }, + "required": ["urls", "username", "password"], + "type": "object" + }, + "ImageData": { + "properties": { + "frames": { "type": "string", "x-stream-index": "005" }, + "height": { "type": "string", "x-stream-index": "003" }, + "size": { "type": "string", "x-stream-index": "004" }, + "url": { "type": "string", "x-stream-index": "001" }, + "width": { "type": "string", "x-stream-index": "002" } + }, + "required": ["url", "width", "height", "size", "frames"], + "type": "object" + }, + "ImageSize": { + "properties": { + "crop": { + "description": "Crop mode", + "enum": ["top", "bottom", "left", "right", "center"], + "title": "Crop", + "type": "string", + "x-stream-index": "001" + }, + "height": { + "description": "Target image height", + "format": "int32", + "title": "Height", + "type": "integer", + "x-stream-index": "003" + }, + "resize": { + "description": "Resize method", + "enum": ["clip", "crop", "scale", "fill"], + "title": "Resize", + "type": "string", + "x-stream-index": "002" + }, + "width": { + "description": "Target image width", + "format": "int32", + "title": "Width", + "type": "integer", + "x-stream-index": "004" + } + }, + "title": "Image size configuration", + "type": "object" + }, + "ImageUploadRequest": { + "nullable": true, + "properties": { + "file": { "type": "string", "x-stream-index": "001.002" }, + "upload_sizes": { + "description": "field with JSON-encoded array of image size configurations", + "items": { "$ref": "#/components/schemas/ImageSize" }, + "title": "Upload sizes", + "type": "array", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/OnlyUserID", + "x-stream-index": "001.003" + } + }, + "type": "object" + }, + "ImageUploadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001.001" }, + "file": { + "description": "URL to the uploaded asset. Should be used to put to `asset_url` attachment field", + "title": "File", + "type": "string", + "x-stream-index": "001.002" + }, + "thumb_url": { + "description": "URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field", + "title": "Thumbnail URL", + "type": "string", + "x-stream-index": "001.003" + }, + "upload_sizes": { + "items": { "$ref": "#/components/schemas/ImageSize" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration"], + "type": "object" + }, + "Images": { + "properties": { + "fixed_height": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "002" + }, + "fixed_height_downsampled": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "004" + }, + "fixed_height_still": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "003" + }, + "fixed_width": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "005" + }, + "fixed_width_downsampled": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "007" + }, + "fixed_width_still": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "006" + }, + "original": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "001" + } + }, + "required": [ + "original", + "fixed_height", + "fixed_height_still", + "fixed_height_downsampled", + "fixed_width", + "fixed_width_still", + "fixed_width_downsampled" + ], + "type": "object" + }, + "JoinCallRequest": { + "nullable": true, + "properties": { + "create": { + "description": "if true the call will be created if it doesn't exist", + "title": "Create", + "type": "boolean", + "x-stream-index": "002" + }, + "data": { + "$ref": "#/components/schemas/CallRequest", + "x-stream-index": "003" + }, + "location": { + "title": "Location", + "type": "string", + "x-stream-index": "008" + }, + "members_limit": { + "format": "int32", + "maximum": 100, + "title": "The amount of members that should be returned", + "type": "integer", + "x-stream-index": "006" + }, + "migrating_from": { + "description": "If the participant is migrating from another SFU, then this is the ID of the previous SFU", + "title": "MigratingFrom", + "type": "string", + "x-stream-index": "009" + }, + "notify": { "type": "boolean", "x-stream-index": "005" }, + "ring": { + "description": "if true and the call is created, the notification will include ring=true", + "title": "Ring", + "type": "boolean", + "x-stream-index": "004" + } + }, + "required": ["location"], + "type": "object" + }, + "JoinCallResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "created": { + "title": "Created", + "type": "boolean", + "x-stream-index": "002" + }, + "credentials": { + "$ref": "#/components/schemas/Credentials", + "title": "Credentials", + "x-stream-index": "003" + }, + "duration": { "type": "string", "x-stream-index": "005.001" }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "001.004" + }, + "stats_options": { + "$ref": "#/components/schemas/StatsOptions", + "x-stream-index": "004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "blocked_users", + "created", + "credentials", + "stats_options", + "duration" + ], + "type": "object" + }, + "Label": { + "properties": { + "harm_labels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + }, + "name": { "type": "string", "x-stream-index": "001" }, + "phrase_list_ids": { + "items": { "format": "int32", "type": "integer" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["name"], + "type": "object" + }, + "LabelThresholds": { + "properties": { + "block": { + "description": "Threshold for automatic message block", + "format": "float", + "maximum": 1, + "minimum": 0, + "title": "Block", + "type": "number", + "x-stream-index": "002" + }, + "flag": { + "description": "Threshold for automatic message flag", + "format": "float", + "maximum": 1, + "minimum": 0, + "title": "Flag", + "type": "number", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "ListDevicesResponse": { + "nullable": true, + "properties": { + "devices": { + "description": "List of devices", + "items": { "$ref": "#/components/schemas/Device" }, + "title": "Devices", + "type": "array", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["devices", "duration"], + "type": "object" + }, + "ListRecordingsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" }, + "recordings": { + "items": { "$ref": "#/components/schemas/CallRecording" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration", "recordings"], + "type": "object" + }, + "ListTranscriptionsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" }, + "transcriptions": { + "items": { "$ref": "#/components/schemas/CallTranscription" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration", "transcriptions"], + "type": "object" + }, + "Location": { + "properties": { + "continent_code": { "type": "string", "x-stream-index": "003" }, + "country_iso_code": { "type": "string", "x-stream-index": "002" }, + "subdivision_iso_code": { "type": "string", "x-stream-index": "001" } + }, + "required": [ + "subdivision_iso_code", + "country_iso_code", + "continent_code" + ], + "type": "object" + }, + "MOSStats": { + "properties": { + "average_score": { + "format": "float", + "type": "number", + "x-stream-index": "001" + }, + "histogram_duration_seconds": { + "items": { "format": "float", "type": "number" }, + "type": "array", + "x-stream-index": "004" + }, + "max_score": { + "format": "float", + "type": "number", + "x-stream-index": "002" + }, + "min_score": { + "format": "float", + "type": "number", + "x-stream-index": "003" + } + }, + "required": [ + "average_score", + "max_score", + "min_score", + "histogram_duration_seconds" + ], + "type": "object" + }, + "MarkChannelsReadRequest": { + "nullable": true, + "properties": { + "read_by_channel": { + "additionalProperties": { "type": "string" }, + "maximum": 30, + "type": "object", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "MarkReadRequest": { + "nullable": true, + "properties": { + "message_id": { + "description": "ID of the message that is considered last read by client", + "title": "Message ID", + "type": "string", + "x-stream-index": "001" + }, + "thread_id": { + "description": "Optional Thread ID to specifically mark a given thread as read", + "title": "Thread ID", + "type": "string", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "MarkReadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "event": { + "$ref": "#/components/schemas/MessageReadEvent", + "description": "Mark read event", + "title": "Event", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "MarkUnreadRequest": { + "nullable": true, + "properties": { + "message_id": { + "description": "ID of the message from where the channel is marked unread", + "title": "Message ID", + "type": "string", + "x-stream-index": "001" + }, + "thread_id": { + "description": "Mark a thread unread, specify both the thread and message id", + "title": "Thread ID", + "type": "string", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "MediaPubSubHint": { + "properties": { + "audio_published": { "type": "boolean", "x-stream-index": "001" }, + "audio_subscribed": { "type": "boolean", "x-stream-index": "002" }, + "video_published": { "type": "boolean", "x-stream-index": "003" }, + "video_subscribed": { "type": "boolean", "x-stream-index": "004" } + }, + "required": [ + "audio_published", + "audio_subscribed", + "video_published", + "video_subscribed" + ], + "type": "object" + }, + "MemberAddedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "004.002" }, + "channel_type": { "type": "string", "x-stream-index": "004.003" }, + "cid": { "type": "string", "x-stream-index": "004.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "001.001" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "type": { + "default": "member.added", + "type": "string", + "x-stream-index": "003.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "005.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "MemberAddedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MemberRemovedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "001.001" + }, + "type": { + "default": "member.removed", + "type": "string", + "x-stream-index": "002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "MemberRemovedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MemberRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "002" + }, + "user_id": { + "minLength": 1, + "title": "User ID", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["user_id"], + "type": "object" + }, + "MemberResponse": { + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "005" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom member response data", + "title": "Custom", + "type": "object", + "x-stream-index": "004" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "007" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "003" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "006" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user", "user_id", "custom", "created_at", "updated_at"], + "type": "object" + }, + "MemberUpdatedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "005.002" }, + "channel_type": { "type": "string", "x-stream-index": "005.003" }, + "cid": { "type": "string", "x-stream-index": "005.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "001.001" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "type": { + "default": "member.updated", + "type": "string", + "x-stream-index": "003.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "MemberUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MembersResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "members": { + "description": "List of found members", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "title": "Members", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["members", "duration"], + "type": "object" + }, + "Message": { + "description": "Represents any chat message", + "properties": { + "attachments": { + "description": "Array of message attachments", + "items": { "$ref": "#/components/schemas/Attachment" }, + "title": "Message attachments", + "type": "array", + "x-stream-docs-page-id": "message_format#attachment-format", + "x-stream-index": "011" + }, + "before_message_send_failed": { + "description": "Whether `before_message_send webhook` failed or not. Field is only accessible in push webhook", + "title": "Before Message Send Failed", + "type": "boolean", + "x-stream-docs-page-id": "before_message_send_webhook", + "x-stream-index": "044" + }, + "cid": { + "description": "Channel unique identifier in \u003ctype\u003e:\u003cid\u003e format", + "title": "Channel CID", + "type": "string", + "x-stream-index": "027" + }, + "command": { + "description": "Contains provided slash command", + "title": "Command", + "type": "string", + "x-stream-docs-page-id": "custom_commands_webhook", + "x-stream-index": "006" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "029" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "032" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "031" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "022" + }, + "html": { + "description": "Contains HTML markup of the message. Can only be set when using server-side API", + "title": "HTML content", + "type": "string", + "x-stream-index": "007" + }, + "i18n": { + "additionalProperties": { "type": "string" }, + "description": "Object with translations. Key `language` contains the original language key. Other keys contain translations", + "title": "Internationalization info", + "type": "object", + "x-stream-docs-page-id": "translation", + "x-stream-index": "042" + }, + "id": { + "description": "Message ID is unique string identifier of the message", + "title": "ID", + "type": "string", + "x-stream-index": "002" + }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "description": "Contains image moderation information", + "title": "Image moderation labels", + "type": "object", + "x-stream-index": "038" + }, + "latest_reactions": { + "description": "List of 10 latest reactions to this message", + "items": { "$ref": "#/components/schemas/Reaction" }, + "title": "Latest reactions", + "type": "array", + "x-stream-index": "012" + }, + "mentioned_users": { + "description": "List of mentioned users", + "items": { "$ref": "#/components/schemas/UserObject" }, + "title": "Mentioned Users", + "type": "array", + "x-stream-index": "041" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "050" + }, + "mml": { + "description": "Should be empty if `text` is provided. Can only be set when using server-side API", + "title": "Messaging Markup Language", + "type": "string", + "x-stream-docs-page-id": "mml_overview", + "x-stream-index": "005" + }, + "own_reactions": { + "description": "List of 10 latest reactions of authenticated user to this message", + "items": { "$ref": "#/components/schemas/Reaction" }, + "title": "Own reactions", + "type": "array", + "x-stream-index": "013" + }, + "parent_id": { + "description": "ID of parent message (thread)", + "title": "Parent message ID", + "type": "string", + "x-stream-docs-page-id": "threads", + "x-stream-index": "018" + }, + "pin_expires": { + "description": "Date when pinned message expires", + "format": "date-time", + "title": "Pin expiration date", + "type": "number", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "049" + }, + "pinned": { + "description": "Whether message is pinned or not", + "title": "Pinned", + "type": "boolean", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "045" + }, + "pinned_at": { + "description": "Date when message got pinned", + "format": "date-time", + "title": "Pinned at", + "type": "number", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "046" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Contains user who pinned the message", + "title": "Pinned by", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "048" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "052" + }, + "poll_id": { + "description": "Identifier of the poll to include in the message", + "title": "Poll ID", + "type": "string", + "x-stream-index": "051" + }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "description": "Contains quoted message", + "title": "Quoted message", + "x-stream-docs-page-id": "threads#quote-message", + "x-stream-index": "024" + }, + "quoted_message_id": { + "title": "ID of quoted message", + "type": "string", + "x-stream-docs-page-id": "threads#quote-message", + "x-stream-index": "023" + }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "description": "An object containing number of reactions of each type. Key: reaction type (string), value: number of reactions (int)", + "title": "Reaction counts", + "type": "object", + "x-stream-index": "014" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "016" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "description": "An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)", + "title": "Reaction scores", + "type": "object", + "x-stream-index": "015" + }, + "reply_count": { + "description": "Number of replies to this message", + "format": "int32", + "title": "Reply count", + "type": "integer", + "x-stream-index": "021" + }, + "shadowed": { + "description": "Whether the message was shadowed or not", + "title": "Shadowed", + "type": "boolean", + "x-stream-docs-page-id": "moderation#shadow-ban", + "x-stream-index": "034" + }, + "show_in_channel": { + "description": "Whether thread reply should be shown in the channel as well", + "title": "Show in channel", + "type": "boolean", + "x-stream-docs-page-id": "threads", + "x-stream-index": "020" + }, + "silent": { + "description": "Whether message is silent or not", + "title": "Silent", + "type": "boolean", + "x-stream-index": "043" + }, + "text": { + "description": "Text of the message. Should be empty if `mml` is provided", + "title": "Text", + "type": "string", + "x-stream-index": "004" + }, + "thread_participants": { + "description": "List of users who participate in thread", + "items": { "$ref": "#/components/schemas/UserObject" }, + "title": "Thread participants", + "type": "array", + "x-stream-docs-page-id": "threads#quote-message", + "x-stream-index": "026" + }, + "type": { + "description": "Contains type of the message", + "enum": [ + "regular", + "ephemeral", + "error", + "reply", + "system", + "deleted" + ], + "title": "Message Type", + "type": "string", + "x-stream-docs-page-id": "message_format#message-types", + "x-stream-index": "008" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "030" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "Sender of the message. Required when using server-side API", + "title": "User object", + "x-stream-index": "010" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reaction_groups", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned" + ], + "title": "Message", + "type": "object", + "x-stream-docs-page-id": "send_message" + }, + "MessageActionRequest": { + "nullable": true, + "properties": { + "form_data": { + "additionalProperties": { "type": "string" }, + "description": "ReadOnlyData to execute command with", + "title": "Form data", + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["form_data"], + "type": "object" + }, + "MessageChangeSet": { + "properties": { + "attachments": { "type": "boolean", "x-stream-index": "005" }, + "custom": { "type": "boolean", "x-stream-index": "001" }, + "html": { "type": "boolean", "x-stream-index": "004" }, + "mentioned_user_ids": { "type": "boolean", "x-stream-index": "006" }, + "mml": { "type": "boolean", "x-stream-index": "003" }, + "pin": { "type": "boolean", "x-stream-index": "009" }, + "quoted_message_id": { "type": "boolean", "x-stream-index": "007" }, + "silent": { "type": "boolean", "x-stream-index": "008" }, + "text": { "type": "boolean", "x-stream-index": "002" } + }, + "required": [ + "custom", + "text", + "mml", + "html", + "attachments", + "mentioned_user_ids", + "quoted_message_id", + "silent", + "pin" + ], + "type": "object" + }, + "MessageDeletedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006.002" + }, + "hard_delete": { "type": "boolean", "x-stream-index": "002.001" }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.001" + }, + "team": { "type": "string", "x-stream-index": "005.001" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.002" + }, + "type": { + "default": "message.deleted", + "type": "string", + "x-stream-index": "006.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004.001" + } + }, + "required": [ + "hard_delete", + "cid", + "channel_id", + "channel_type", + "type", + "created_at" + ], + "title": "MessageDeletedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MessageFlag": { + "nullable": true, + "properties": { + "approved_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "created_by_automod": { "type": "boolean", "x-stream-index": "001" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "008" + }, + "details": { + "$ref": "#/components/schemas/FlagDetails", + "x-stream-index": "006" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "005" + }, + "moderation_feedback": { + "$ref": "#/components/schemas/FlagFeedback", + "x-stream-index": "003" + }, + "moderation_result": { + "$ref": "#/components/schemas/MessageModerationResult", + "x-stream-index": "002" + }, + "reason": { "type": "string", "x-stream-index": "007" }, + "rejected_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "014" + }, + "reviewed_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "reviewed_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "012" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004" + } + }, + "required": ["created_by_automod", "created_at", "updated_at"], + "type": "object" + }, + "MessageModerationResult": { + "properties": { + "action": { "type": "string", "x-stream-index": "004" }, + "ai_moderation_response": { + "$ref": "#/components/schemas/ModerationResponse", + "x-stream-index": "009" + }, + "blocked_word": { "type": "string", "x-stream-index": "006" }, + "blocklist_name": { "type": "string", "x-stream-index": "007" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "012" + }, + "message_id": { "type": "string", "x-stream-index": "003" }, + "moderated_by": { "type": "string", "x-stream-index": "005" }, + "moderation_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "008" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "user_bad_karma": { "type": "boolean", "x-stream-index": "011" }, + "user_karma": { + "format": "float", + "type": "number", + "x-stream-index": "010" + } + }, + "required": [ + "message_id", + "action", + "user_karma", + "user_bad_karma", + "created_at", + "updated_at" + ], + "type": "object" + }, + "MessageNewEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "005.002" }, + "channel_type": { "type": "string", "x-stream-index": "005.003" }, + "cid": { "type": "string", "x-stream-index": "005.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.001" + }, + "team": { "type": "string", "x-stream-index": "006.001" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.002" + }, + "type": { + "default": "message.new", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + }, + "watcher_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "002.001" + } + }, + "required": [ + "watcher_count", + "type", + "created_at", + "cid", + "channel_id", + "channel_type" + ], + "title": "MessageNewEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MessagePaginationParams": { + "properties": { + "limit": { + "format": "int32", + "minimum": 0, + "type": "integer", + "x-stream-index": "001" + }, + "offset": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "MessageReadEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "005.002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "006" }, + "team": { "type": "string", "x-stream-index": "004.001" }, + "thread": { + "$ref": "#/components/schemas/Thread", + "x-stream-index": "003.001" + }, + "type": { + "default": "message.read", + "type": "string", + "x-stream-index": "005.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "MessageReadEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MessageRequest": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "maximum": 30, + "type": "array", + "x-stream-index": "004" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "007" + }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "mentioned_users": { + "items": { "type": "string" }, + "maximum": 25, + "type": "array", + "x-stream-index": "008" + }, + "mml": { "type": "string", "x-stream-index": "003" }, + "parent_id": { "type": "string", "x-stream-index": "005" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "015" + }, + "pinned": { "type": "boolean", "x-stream-index": "013" }, + "pinned_at": { + "format": "date-time", + "nullable": true, + "type": "string", + "x-stream-index": "014" + }, + "poll_id": { "type": "string", "x-stream-index": "038" }, + "quoted_message_id": { "type": "string", "x-stream-index": "009" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "006" }, + "silent": { "type": "boolean", "x-stream-index": "012" }, + "text": { "type": "string", "x-stream-index": "002" }, + "type": { + "enum": ["''regular", "system"], + "type": "string", + "x-stream-index": "011" + } + }, + "type": "object" + }, + "MessageResponse": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "type": "array", + "x-stream-index": "008" + }, + "cid": { "type": "string", "x-stream-index": "021" }, + "command": { "type": "string", "x-stream-index": "004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "022" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "025" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "024" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "017" + }, + "html": { "type": "string", "x-stream-index": "005" }, + "i18n": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "029" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "027" + }, + "latest_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "009" + }, + "mentioned_users": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "028" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "035" + }, + "mml": { "type": "string", "x-stream-index": "003" }, + "own_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "010" + }, + "parent_id": { "type": "string", "x-stream-index": "014" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "034" + }, + "pinned": { "type": "boolean", "x-stream-index": "031" }, + "pinned_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "032" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "033" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "037" + }, + "poll_id": { "type": "string", "x-stream-index": "036" }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "019" + }, + "quoted_message_id": { "type": "string", "x-stream-index": "018" }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "011" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "013" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "012" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "016" + }, + "shadowed": { "type": "boolean", "x-stream-index": "026" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "015" }, + "silent": { "type": "boolean", "x-stream-index": "030" }, + "text": { "type": "string", "x-stream-index": "002" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "020" + }, + "type": { "type": "string", "x-stream-index": "006" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "023" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "007" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "user", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned" + ], + "type": "object" + }, + "MessageUndeletedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "005.002" }, + "channel_type": { "type": "string", "x-stream-index": "005.003" }, + "cid": { "type": "string", "x-stream-index": "005.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.001" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.002" + }, + "type": { + "default": "message.undeleted", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "MessageUndeletedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MessageUpdate": { + "properties": { + "change_set": { + "$ref": "#/components/schemas/MessageChangeSet", + "x-stream-index": "002" + }, + "old_text": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "MessageUpdatedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "005.002" }, + "channel_type": { "type": "string", "x-stream-index": "005.003" }, + "cid": { "type": "string", "x-stream-index": "005.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.001" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.002" + }, + "type": { + "default": "message.updated", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "MessageUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MessageWithChannelResponse": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "type": "array", + "x-stream-index": "001.008" + }, + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "cid": { "type": "string", "x-stream-index": "001.021" }, + "command": { "type": "string", "x-stream-index": "001.004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.022" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.025" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.024" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.017" + }, + "html": { "type": "string", "x-stream-index": "001.005" }, + "i18n": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "001.029" + }, + "id": { "type": "string", "x-stream-index": "001.001" }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.027" + }, + "latest_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "001.009" + }, + "mentioned_users": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "001.028" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.035" + }, + "mml": { "type": "string", "x-stream-index": "001.003" }, + "own_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "001.010" + }, + "parent_id": { "type": "string", "x-stream-index": "001.014" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.034" + }, + "pinned": { "type": "boolean", "x-stream-index": "001.031" }, + "pinned_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.032" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001.033" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001.037" + }, + "poll_id": { "type": "string", "x-stream-index": "001.036" }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.019" + }, + "quoted_message_id": { + "type": "string", + "x-stream-index": "001.018" + }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.011" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "001.013" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.012" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.016" + }, + "shadowed": { "type": "boolean", "x-stream-index": "001.026" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "001.015" }, + "silent": { "type": "boolean", "x-stream-index": "001.030" }, + "text": { "type": "string", "x-stream-index": "001.002" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "001.020" + }, + "type": { "type": "string", "x-stream-index": "001.006" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.023" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001.007" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "user", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned", + "channel" + ], + "type": "object" + }, + "ModerationResponse": { + "properties": { + "action": { "type": "string", "x-stream-index": "004" }, + "explicit": { + "format": "float", + "type": "number", + "x-stream-index": "002" + }, + "spam": { + "format": "float", + "type": "number", + "x-stream-index": "003" + }, + "toxic": { + "format": "float", + "type": "number", + "x-stream-index": "001" + } + }, + "required": ["toxic", "explicit", "spam", "action", "automod_response"], + "type": "object" + }, + "MuteChannelRequest": { + "nullable": true, + "properties": { + "channel_cids": { + "description": "Channel CIDs to mute (if multiple channels)", + "items": { "type": "string" }, + "maximum": 25, + "title": "Channel CIDs", + "type": "array", + "x-stream-index": "002" + }, + "expiration": { + "description": "Duration of mute in milliseconds", + "title": "Expiration", + "type": "integer", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "MuteChannelResponse": { + "nullable": true, + "properties": { + "channel_mute": { + "$ref": "#/components/schemas/ChannelMute", + "description": "Object with channel mute (if one channel was muted)", + "title": "Channel mute", + "x-stream-index": "001" + }, + "channel_mutes": { + "description": "Object with mutes (if multiple channels were muted)", + "items": { "$ref": "#/components/schemas/ChannelMute" }, + "title": "Channel mutes", + "type": "array", + "x-stream-index": "002" + }, + "duration": { "type": "string", "x-stream-index": "004.001" }, + "own_user": { + "$ref": "#/components/schemas/OwnUser", + "description": "Authorized user object with fresh mutes information", + "title": "Own user", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "MuteUserRequest": { + "nullable": true, + "properties": { + "target_ids": { + "description": "User IDs to mute (if multiple users)", + "items": { "type": "string" }, + "maximum": 1000, + "title": "Target IDs", + "type": "array", + "x-stream-index": "002" + }, + "timeout": { + "description": "Duration of mute in minutes", + "minimum": 0, + "title": "Timeout", + "type": "integer", + "x-stream-index": "003" + } + }, + "required": ["timeout"], + "type": "object" + }, + "MuteUserResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "005.001" }, + "mute": { + "$ref": "#/components/schemas/UserMute", + "description": "Object with user mute (if one user was muted)", + "title": "Mute", + "x-stream-index": "001" + }, + "mutes": { + "description": "Object with mutes (if multiple users were muted)", + "items": { "$ref": "#/components/schemas/UserMute" }, + "title": "Mutes", + "type": "array", + "x-stream-index": "002" + }, + "non_existing_users": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + }, + "own_user": { + "$ref": "#/components/schemas/OwnUser", + "description": "Authorized user object with fresh mutes information", + "title": "Own user", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "MuteUsersRequest": { + "nullable": true, + "properties": { + "audio": { + "title": "Audio", + "type": "boolean", + "x-stream-index": "005" + }, + "mute_all_users": { "type": "boolean", "x-stream-index": "003" }, + "screenshare": { + "title": "Screenshare", + "type": "boolean", + "x-stream-index": "007" + }, + "screenshare_audio": { + "title": "ScreenshareAudio", + "type": "boolean", + "x-stream-index": "008" + }, + "user_ids": { + "items": { "type": "string" }, + "title": "UserIDs", + "type": "array", + "x-stream-index": "004" + }, + "video": { + "title": "Video", + "type": "boolean", + "x-stream-index": "006" + } + }, + "type": "object" + }, + "MuteUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "NoiseCancellationSettings": { + "properties": { + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["mode"], + "type": "object" + }, + "NotificationAddedToChannelEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "003.004" + }, + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "001.001" + }, + "type": { + "default": "notification.added_to_channel", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "NotificationAddedToChannelEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationChannelDeletedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "003.004" + }, + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "team": { "type": "string", "x-stream-index": "001.001" }, + "type": { + "default": "notification.channel_deleted", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "NotificationChannelDeletedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationChannelMutesUpdatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "me": { + "$ref": "#/components/schemas/OwnUser", + "x-stream-index": "001" + }, + "type": { + "default": "notification.channel_mutes_updated", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["me", "type", "created_at"], + "title": "NotificationChannelMutesUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationChannelTruncatedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002.004" + }, + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "notification.channel_truncated", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "NotificationChannelTruncatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationInviteAcceptedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002.004" + }, + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "004.001" + }, + "type": { + "default": "notification.invite_accepted", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "NotificationInviteAcceptedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationInviteRejectedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002.004" + }, + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "004.001" + }, + "type": { + "default": "notification.invite_rejected", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "NotificationInviteRejectedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationInvitedEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002.004" + }, + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "004.001" + }, + "type": { + "default": "notification.invited", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "NotificationInvitedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationMarkReadEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "003.004" + }, + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "006" + }, + "type": { + "default": "notification.mark_read", + "type": "string", + "x-stream-index": "001.001" + }, + "unread_channels": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + }, + "unread_threads": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004.001" + } + }, + "required": [ + "type", + "created_at", + "cid", + "channel_id", + "channel_type", + "unread_count", + "total_unread_count", + "unread_channels", + "unread_threads" + ], + "title": "NotificationMarkReadEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationMarkUnreadEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "003.004" + }, + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "first_unread_message_id": { + "type": "string", + "x-stream-index": "005" + }, + "last_read_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "012" }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "009" + }, + "type": { + "default": "notification.mark_unread", + "type": "string", + "x-stream-index": "001.001" + }, + "unread_channels": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "unread_messages": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "unread_threads": { + "format": "int32", + "type": "integer", + "x-stream-index": "011" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004.001" + } + }, + "required": [ + "type", + "created_at", + "cid", + "channel_id", + "channel_type", + "first_unread_message_id", + "last_read_at", + "unread_messages", + "unread_count", + "total_unread_count", + "unread_channels", + "unread_threads" + ], + "title": "NotificationMarkUnreadEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationMutesUpdatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "me": { + "$ref": "#/components/schemas/OwnUser", + "x-stream-index": "001" + }, + "type": { + "default": "notification.mutes_updated", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["me", "type", "created_at"], + "title": "NotificationMutesUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationNewMessageEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "004.004" + }, + "channel_id": { "type": "string", "x-stream-index": "004.002" }, + "channel_type": { "type": "string", "x-stream-index": "004.003" }, + "cid": { "type": "string", "x-stream-index": "004.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "type": { + "default": "notification.message_new", + "type": "string", + "x-stream-index": "003.001" + } + }, + "required": [ + "message", + "type", + "created_at", + "cid", + "channel_id", + "channel_type" + ], + "title": "NotificationNewMessageEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NotificationRemovedFromChannelEvent": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002.004" + }, + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "004.001" + }, + "type": { + "default": "notification.removed_from_channel", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["type", "created_at", "cid", "channel_id", "channel_type"], + "title": "NotificationRemovedFromChannelEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "NullBool": { + "properties": { + "HasValue": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" + }, + "Value": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "001" + } + }, + "type": "object" + }, + "NullTime": { + "properties": { + "HasValue": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" + }, + "Value": { + "format": "date-time", + "type": "number", + "writeOnly": true, + "x-stream-index": "001" + } + }, + "type": "object" + }, + "OnlyUserID": { + "properties": { "id": { "type": "string", "x-stream-index": "001" } }, + "required": ["id"], + "type": "object" + }, + "OwnCapability": { + "description": "All possibility of string to use", + "enum": [ + "block-users", + "create-call", + "create-reaction", + "enable-noise-cancellation", + "end-call", + "join-backstage", + "join-call", + "join-ended-call", + "mute-users", + "pin-for-everyone", + "read-call", + "remove-call-member", + "screenshare", + "send-audio", + "send-video", + "start-broadcast-call", + "start-record-call", + "start-transcription-call", + "stop-broadcast-call", + "stop-record-call", + "stop-transcription-call", + "update-call", + "update-call-member", + "update-call-permissions", + "update-call-settings" + ], + "title": "OwnCapability", + "type": "string" + }, + "OwnUser": { + "properties": { + "banned": { "type": "boolean", "x-stream-index": "014" }, + "channel_mutes": { + "items": { "$ref": "#/components/schemas/ChannelMute" }, + "type": "array", + "x-stream-index": "027" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "005" + }, + "deactivated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "012" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "devices": { + "items": { "$ref": "#/components/schemas/Device" }, + "type": "array", + "x-stream-index": "025" + }, + "id": { "type": "string", "x-stream-index": "003" }, + "invisible": { "type": "boolean", "x-stream-index": "021" }, + "language": { "type": "string", "x-stream-index": "032" }, + "last_active": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "latest_hidden_channels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "034" + }, + "mutes": { + "items": { "$ref": "#/components/schemas/UserMute" }, + "type": "array", + "x-stream-index": "026" + }, + "online": { "type": "boolean", "x-stream-index": "020" }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "024" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "023" + }, + "role": { "type": "string", "x-stream-index": "004" }, + "teams": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "033" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "029" + }, + "unread_channels": { + "format": "int32", + "type": "integer", + "x-stream-index": "030" + }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "028" + }, + "unread_threads": { + "format": "int32", + "type": "integer", + "x-stream-index": "031" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008" + } + }, + "required": [ + "id", + "role", + "custom", + "created_at", + "updated_at", + "banned", + "online", + "devices", + "mutes", + "channel_mutes", + "unread_count", + "total_unread_count", + "unread_channels", + "unread_threads", + "language" + ], + "type": "object" + }, + "OwnUserResponse": { + "properties": { + "banned": { "type": "boolean", "x-stream-index": "001.011" }, + "channel_mutes": { + "items": { "$ref": "#/components/schemas/ChannelMute" }, + "type": "array", + "x-stream-index": "007" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.004" + }, + "deactivated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.015" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.010" + }, + "devices": { + "items": { "$ref": "#/components/schemas/Device" }, + "title": "Devices", + "type": "array", + "x-stream-index": "004" + }, + "id": { "type": "string", "x-stream-index": "001.001" }, + "image": { "type": "string", "x-stream-index": "001.003" }, + "invisible": { "type": "boolean", "x-stream-index": "005" }, + "language": { "type": "string", "x-stream-index": "001.005" }, + "last_active": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.013" + }, + "latest_hidden_channels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "011" + }, + "mutes": { + "items": { "$ref": "#/components/schemas/UserMute" }, + "type": "array", + "x-stream-index": "006" + }, + "name": { "type": "string", "x-stream-index": "001.002" }, + "online": { "type": "boolean", "x-stream-index": "001.012" }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "003" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "002" + }, + "revoke_tokens_issued_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.014" + }, + "role": { "type": "string", "x-stream-index": "001.006" }, + "teams": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.007" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "unread_channels": { + "format": "int32", + "type": "integer", + "x-stream-index": "009" + }, + "unread_threads": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.009" + } + }, + "required": [ + "id", + "custom", + "language", + "role", + "teams", + "created_at", + "updated_at", + "banned", + "online", + "devices", + "mutes", + "channel_mutes", + "total_unread_count", + "unread_channels", + "unread_threads" + ], + "type": "object" + }, + "PaginationParams": { + "properties": { + "limit": { + "format": "int32", + "minimum": 0, + "type": "integer", + "x-stream-index": "001" + }, + "offset": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "PendingMessage": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/Channel", + "x-stream-index": "007" + }, + "message": { + "$ref": "#/components/schemas/Message", + "description": "The message", + "title": "Message", + "x-stream-index": "009" + }, + "metadata": { + "additionalProperties": { "type": "string" }, + "description": "Additional data attached to the pending message. This data is discarded once the pending message is committed.", + "title": "Metadata", + "type": "object", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "PermissionRequestEvent": { + "description": "This event is sent when a user requests access to a feature on a call,\nclients receiving this event should display a permission request to the user", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "permissions": { + "description": "The list of permissions requested by the user", + "items": { "type": "string" }, + "title": "Permissions", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.permission_request", + "description": "The type of event: \"call.permission_request\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who sent the permission request", + "title": "User", + "x-stream-index": "003" + } + }, + "required": ["type", "created_at", "call_cid", "user", "permissions"], + "title": "PermissionRequestEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PinRequest": { + "nullable": true, + "properties": { + "session_id": { "type": "string", "x-stream-index": "003" }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user_id", "session_id"], + "type": "object" + }, + "PinResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "Poll": { + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "023" + }, + "allow_answers": { "type": "boolean", "x-stream-index": "010" }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "009" + }, + "answers_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "015" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "021" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "020" + }, + "created_by_id": { "type": "string", "x-stream-index": "019" }, + "description": { "type": "string", "x-stream-index": "005" }, + "enforce_unique_vote": { "type": "boolean", "x-stream-index": "007" }, + "id": { "type": "string", "x-stream-index": "003" }, + "is_closed": { "type": "boolean", "x-stream-index": "011" }, + "latest_answers": { + "items": { "$ref": "#/components/schemas/PollVote" }, + "type": "array", + "x-stream-index": "017" + }, + "latest_votes_by_option": { + "additionalProperties": { + "items": { "$ref": "#/components/schemas/PollVote" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "016" + }, + "max_votes_allowed": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "name": { "type": "string", "x-stream-index": "004" }, + "options": { + "items": { "$ref": "#/components/schemas/PollOption" }, + "type": "array", + "x-stream-index": "013" + }, + "own_votes": { + "items": { "$ref": "#/components/schemas/PollVote" }, + "type": "array", + "x-stream-index": "018" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "022" + }, + "vote_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "012" + }, + "vote_counts_by_option": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "014" + }, + "voting_visibility": { "type": "string", "x-stream-index": "006" } + }, + "required": [ + "id", + "name", + "description", + "enforce_unique_vote", + "allow_user_suggested_options", + "allow_answers", + "vote_count", + "options", + "vote_counts_by_option", + "answers_count", + "latest_votes_by_option", + "latest_answers", + "own_votes", + "created_by_id", + "created_at", + "updated_at", + "Custom" + ], + "type": "object" + }, + "PollClosedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001" + }, + "type": { + "default": "poll.closed", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["type", "created_at"], + "title": "PollClosedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PollCreatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001" + }, + "type": { + "default": "poll.created", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["type", "created_at"], + "title": "PollCreatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PollDeletedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001" + }, + "type": { + "default": "poll.deleted", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["type", "created_at"], + "title": "PollDeletedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PollOption": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "text": { "type": "string", "x-stream-index": "002" } + }, + "required": ["id", "text", "custom"], + "type": "object" + }, + "PollOptionInput": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "text": { "type": "string", "x-stream-index": "002" } + }, + "type": "object" + }, + "PollOptionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "poll_option": { + "$ref": "#/components/schemas/PollOptionResponseData", + "x-stream-index": "001" + } + }, + "required": ["poll_option", "duration"], + "type": "object" + }, + "PollOptionResponseData": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "text": { "type": "string", "x-stream-index": "002" } + }, + "required": ["id", "text", "custom"], + "type": "object" + }, + "PollResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "poll": { + "$ref": "#/components/schemas/PollResponseData", + "x-stream-index": "001" + } + }, + "required": ["poll", "duration"], + "type": "object" + }, + "PollResponseData": { + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "020" + }, + "allow_answers": { "type": "boolean", "x-stream-index": "008" }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "007" + }, + "answers_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "012" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "018" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "017" + }, + "created_by_id": { "type": "string", "x-stream-index": "016" }, + "description": { "type": "string", "x-stream-index": "003" }, + "enforce_unique_vote": { "type": "boolean", "x-stream-index": "005" }, + "id": { "type": "string", "x-stream-index": "001" }, + "is_closed": { "type": "boolean", "x-stream-index": "009" }, + "latest_votes_by_option": { + "additionalProperties": { + "items": { "$ref": "#/components/schemas/PollVoteResponseData" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "014" + }, + "max_votes_allowed": { + "format": "int32", + "type": "integer", + "x-stream-index": "006" + }, + "name": { "type": "string", "x-stream-index": "002" }, + "options": { + "items": { "$ref": "#/components/schemas/PollOptionResponseData" }, + "type": "array", + "x-stream-index": "011" + }, + "own_votes": { + "items": { "$ref": "#/components/schemas/PollVoteResponseData" }, + "type": "array", + "x-stream-index": "015" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "019" + }, + "vote_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "vote_counts_by_option": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "013" + }, + "voting_visibility": { "type": "string", "x-stream-index": "004" } + }, + "required": [ + "id", + "name", + "description", + "voting_visibility", + "enforce_unique_vote", + "allow_user_suggested_options", + "allow_answers", + "vote_count", + "options", + "answers_count", + "vote_counts_by_option", + "latest_votes_by_option", + "own_votes", + "created_by_id", + "created_at", + "updated_at", + "Custom" + ], + "type": "object" + }, + "PollUpdatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001" + }, + "type": { + "default": "poll.updated", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["type", "created_at"], + "title": "PollUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PollVote": { + "nullable": true, + "properties": { + "answer_text": { "type": "string", "x-stream-index": "007" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "id": { "type": "string", "x-stream-index": "004" }, + "is_answer": { "type": "boolean", "x-stream-index": "006" }, + "option_id": { "type": "string", "x-stream-index": "005" }, + "poll_id": { "type": "string", "x-stream-index": "003" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "009" + }, + "user_id": { "type": "string", "x-stream-index": "008" } + }, + "required": ["poll_id", "id", "option_id", "created_at", "updated_at"], + "type": "object" + }, + "PollVoteCastedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "poll.vote_casted", + "type": "string", + "x-stream-index": "002.001" + }, + "vote": { + "$ref": "#/components/schemas/PollVote", + "x-stream-index": "001" + } + }, + "required": ["type", "created_at"], + "title": "PollVoteCastedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PollVoteChangedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "poll.vote_changed", + "type": "string", + "x-stream-index": "002.001" + }, + "vote": { + "$ref": "#/components/schemas/PollVote", + "x-stream-index": "001" + } + }, + "required": ["type", "created_at"], + "title": "PollVoteChangedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PollVoteRemovedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "poll.vote_removed", + "type": "string", + "x-stream-index": "002.001" + }, + "vote": { + "$ref": "#/components/schemas/PollVote", + "x-stream-index": "001" + } + }, + "required": ["type", "created_at"], + "title": "PollVoteRemovedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "PollVoteResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "vote": { + "$ref": "#/components/schemas/PollVoteResponseData", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "PollVoteResponseData": { + "nullable": true, + "properties": { + "answer_text": { "type": "string", "x-stream-index": "005" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008" + }, + "id": { "type": "string", "x-stream-index": "002" }, + "is_answer": { "type": "boolean", "x-stream-index": "004" }, + "option_id": { "type": "string", "x-stream-index": "003" }, + "poll_id": { "type": "string", "x-stream-index": "001" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "007" + }, + "user_id": { "type": "string", "x-stream-index": "006" } + }, + "required": ["poll_id", "id", "option_id", "created_at", "updated_at"], + "type": "object" + }, + "PollVotesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" }, + "votes": { + "items": { "$ref": "#/components/schemas/PollVoteResponseData" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["votes", "duration"], + "type": "object" + }, + "PrivacySettings": { + "properties": { + "read_receipts": { + "$ref": "#/components/schemas/ReadReceipts", + "x-stream-index": "002" + }, + "typing_indicators": { + "$ref": "#/components/schemas/TypingIndicators", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "PushNotificationSettings": { + "properties": { + "disabled": { "type": "boolean", "x-stream-index": "001" }, + "disabled_until": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "PushNotificationSettingsInput": { + "properties": { + "disabled": { + "$ref": "#/components/schemas/NullBool", + "x-stream-index": "001" + }, + "disabled_until": { + "$ref": "#/components/schemas/NullTime", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "QueryBannedUsersRequest": { + "properties": { + "exclude_expired_bans": { + "type": "boolean", + "x-stream-index": "006" + }, + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "format": "int32", + "maximum": 300, + "type": "integer", + "x-stream-index": "004" + }, + "offset": { + "format": "int32", + "maximum": 10000, + "type": "integer", + "x-stream-index": "005" + }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["filter_conditions"], + "type": "object" + }, + "QueryBannedUsersResponse": { + "nullable": true, + "properties": { + "bans": { + "items": { "$ref": "#/components/schemas/BanResponse" }, + "type": "array", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["bans", "duration"], + "type": "object" + }, + "QueryCallMembersRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "id": { + "maxLength": 64, + "type": "string", + "x-stream-index": "001.002" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "004.001" + }, + "next": { "type": "string", "x-stream-index": "004.002" }, + "prev": { "type": "string", "x-stream-index": "004.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, + "type": "array", + "x-stream-index": "003" + }, + "type": { + "maxLength": 64, + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "id"], + "type": "object" + }, + "QueryCallMembersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001" + }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" } + }, + "required": ["members", "duration"], + "type": "object" + }, + "QueryCallStatsRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "004.001" + }, + "next": { "type": "string", "x-stream-index": "004.002" }, + "prev": { "type": "string", "x-stream-index": "004.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 2, + "type": "array", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "QueryCallStatsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "next": { "type": "string", "x-stream-index": "003.001" }, + "prev": { "type": "string", "x-stream-index": "003.002" }, + "reports": { + "items": { + "$ref": "#/components/schemas/CallStatsReportSummaryResponse" + }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["reports", "duration"], + "type": "object" + }, + "QueryCallsRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "006.001" + }, + "next": { "type": "string", "x-stream-index": "006.002" }, + "prev": { "type": "string", "x-stream-index": "006.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 2, + "type": "array", + "x-stream-index": "004" + }, + "watch": { "type": "boolean", "x-stream-index": "001" } + }, + "type": "object" + }, + "QueryCallsResponse": { + "nullable": true, + "properties": { + "calls": { + "items": { "$ref": "#/components/schemas/CallStateResponseFields" }, + "title": "Calls", + "type": "array", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "003.001" }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" } + }, + "required": ["calls", "duration"], + "type": "object" + }, + "QueryChannelsRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "description": "Number of channels to limit", + "format": "int32", + "title": "Limit", + "type": "integer", + "x-stream-index": "008" + }, + "member_limit": { + "description": "Number of members to limit", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Member limit", + "type": "integer", + "x-stream-index": "007" + }, + "message_limit": { + "description": "Number of messages to limit", + "format": "int32", + "minimum": 0, + "title": "Message limit", + "type": "integer", + "x-stream-index": "006" + }, + "offset": { + "description": "Channel pagination offset", + "format": "int32", + "title": "Offset", + "type": "integer", + "x-stream-index": "009" + }, + "presence": { + "title": "Presence", + "type": "boolean", + "x-stream-index": "005" + }, + "sort": { + "description": "List of sort parameters", + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "title": "Sort", + "type": "array", + "x-stream-index": "002" + }, + "state": { + "description": "Whether to update channel state or not", + "title": "State", + "type": "boolean", + "x-stream-index": "004" + }, + "watch": { + "description": "Whether to start watching found channels or not", + "title": "Watch", + "type": "boolean", + "x-stream-index": "003" + } + }, + "title": "Query Channels Request", + "type": "object", + "x-stream-docs-page-id": "query_channels" + }, + "QueryChannelsResponse": { + "nullable": true, + "properties": { + "channels": { + "description": "List of channels", + "items": { + "$ref": "#/components/schemas/ChannelStateResponseFields" + }, + "title": "Channels", + "type": "array", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["channels", "duration"], + "title": "Channels list", + "type": "object" + }, + "QueryMembersRequest": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "description": "Filter to apply to members", + "title": "Filter conditions", + "type": "object", + "x-stream-index": "004" + }, + "id": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "x-stream-index": "002" + }, + "limit": { + "description": "Number of records to return", + "format": "int32", + "maximum": 300, + "minimum": 0, + "title": "Limit", + "type": "integer", + "x-stream-index": "006.003" + }, + "members": { + "description": "List of members to search in distinct channels", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Members", + "type": "array", + "x-stream-index": "003" + }, + "offset": { + "description": "Number of records to offset", + "format": "int32", + "maximum": 10000, + "title": "Offset", + "type": "integer", + "x-stream-index": "006.004" + }, + "sort": { + "description": "Array of sort parameters", + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, + "title": "Sort", + "type": "array", + "x-stream-index": "005" + }, + "type": { + "description": "Channel type to interact with", + "maxLength": 64, + "title": "Channel type", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["type", "filter_conditions"], + "type": "object" + }, + "QueryMessageFlagsRequest": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "format": "int32", + "maximum": 300, + "minimum": 0, + "type": "integer", + "x-stream-index": "003.003" + }, + "offset": { + "format": "int32", + "maximum": 10000, + "type": "integer", + "x-stream-index": "003.004" + }, + "show_deleted_messages": { + "type": "boolean", + "x-stream-index": "002" + }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "003.005" + } + }, + "type": "object" + }, + "QueryMessageFlagsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "flags": { + "items": { "$ref": "#/components/schemas/MessageFlag" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["flags", "duration"], + "type": "object" + }, + "QueryPollVotesRequest": { + "nullable": true, + "properties": { + "filter": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "005.001" + }, + "next": { "type": "string", "x-stream-index": "005.002" }, + "prev": { "type": "string", "x-stream-index": "005.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "QueryPollsRequest": { + "nullable": true, + "properties": { + "filter": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "005.001" + }, + "next": { "type": "string", "x-stream-index": "005.002" }, + "prev": { "type": "string", "x-stream-index": "005.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "QueryPollsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "polls": { + "items": { "$ref": "#/components/schemas/PollResponseData" }, + "type": "array", + "x-stream-index": "001" + }, + "prev": { "type": "string", "x-stream-index": "002.002" } + }, + "required": ["polls", "duration"], + "type": "object" + }, + "QueryReactionsRequest": { + "properties": { + "filter": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "006.001" + }, + "next": { "type": "string", "x-stream-index": "006.002" }, + "prev": { "type": "string", "x-stream-index": "006.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 2, + "type": "array", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "QueryReactionsResponse": { + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "next": { "type": "string", "x-stream-index": "003.001" }, + "prev": { "type": "string", "x-stream-index": "003.002" }, + "reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["reactions", "duration"], + "type": "object" + }, + "QueryThreadsRequest": { + "nullable": true, + "properties": { + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "006.001" + }, + "member_limit": { + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer", + "x-stream-index": "005" + }, + "next": { "type": "string", "x-stream-index": "006.002" }, + "participant_limit": { + "description": "Limit the number of participants returned per each thread", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Participant limit", + "type": "integer", + "x-stream-index": "004" + }, + "prev": { "type": "string", "x-stream-index": "006.003" }, + "reply_limit": { + "description": "Limit the number of replies returned per each thread", + "format": "int32", + "maximum": 10, + "minimum": 0, + "title": "Reply limit", + "type": "integer", + "x-stream-index": "003" + }, + "watch": { + "description": "Start watching the channel this thread belongs to", + "title": "Watch", + "type": "boolean", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "QueryThreadsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "003.001" }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" }, + "threads": { + "description": "List of enriched thread states", + "items": { "$ref": "#/components/schemas/ThreadStateResponse" }, + "title": "Threads", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["threads", "duration"], + "type": "object" + }, + "QueryUsersPayload": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "include_deactivated_users": { + "type": "boolean", + "x-stream-index": "004" + }, + "limit": { + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer", + "x-stream-index": "005.003" + }, + "offset": { + "format": "int32", + "maximum": 1000, + "type": "integer", + "x-stream-index": "005.004" + }, + "presence": { "type": "boolean", "x-stream-index": "003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["filter_conditions"], + "type": "object" + }, + "QueryUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "users": { + "items": { "$ref": "#/components/schemas/FullUserResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["users", "duration"], + "type": "object" + }, + "RTMPIngress": { + "description": "RTMP input settings", + "properties": { + "address": { "type": "string", "x-stream-index": "001" } + }, + "required": ["address"], + "title": "RTMP Ingress", + "type": "object" + }, + "Reaction": { + "description": "Represents user reaction to a message", + "nullable": true, + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "readOnly": true, + "title": "Created at", + "type": "number", + "x-stream-index": "008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "010" + }, + "message_id": { + "description": "ID of a message user reacted to", + "title": "Message ID", + "type": "string", + "x-stream-index": "003" + }, + "score": { + "description": "Reaction score. If not specified reaction has score of 1", + "format": "int32", + "title": "Score", + "type": "integer", + "x-stream-index": "007" + }, + "type": { + "description": "The type of reaction (e.g. 'like', 'laugh', 'wow')", + "maxLength": 30, + "title": "Type", + "type": "string", + "x-stream-index": "006" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "readOnly": true, + "title": "Updated at", + "type": "number", + "x-stream-index": "009" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "005" + }, + "user_id": { + "description": "ID of a user who reacted to a message", + "title": "User ID", + "type": "string", + "x-stream-index": "004" + } + }, + "required": [ + "message_id", + "type", + "score", + "created_at", + "updated_at", + "custom" + ], + "title": "Reaction", + "type": "object", + "x-stream-docs-page-id": "send_reaction" + }, + "ReactionDeletedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.001" + }, + "reaction": { + "$ref": "#/components/schemas/Reaction", + "x-stream-index": "002" + }, + "team": { "type": "string", "x-stream-index": "005.001" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.002" + }, + "type": { + "default": "reaction.deleted", + "type": "string", + "x-stream-index": "006.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "ReactionDeletedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ReactionGroupResponse": { + "nullable": true, + "properties": { + "count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + }, + "first_reaction_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "last_reaction_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004" + }, + "sum_scores": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "required": [ + "count", + "sum_scores", + "first_reaction_at", + "last_reaction_at" + ], + "type": "object" + }, + "ReactionNewEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "004.002" }, + "channel_type": { "type": "string", "x-stream-index": "004.003" }, + "cid": { "type": "string", "x-stream-index": "004.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.001" + }, + "reaction": { + "$ref": "#/components/schemas/Reaction", + "x-stream-index": "002" + }, + "team": { "type": "string", "x-stream-index": "005.001" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.002" + }, + "type": { + "default": "reaction.new", + "type": "string", + "x-stream-index": "006.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "ReactionNewEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "ReactionRemovalResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "reaction": { + "$ref": "#/components/schemas/Reaction", + "x-stream-index": "002" + } + }, + "required": ["duration"], + "type": "object" + }, + "ReactionRequest": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "005" + }, + "score": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "type": { + "maxLength": 30, + "type": "string", + "x-stream-index": "001" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004" + } + }, + "required": ["type"], + "type": "object" + }, + "ReactionResponse": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "008" + }, + "message_id": { "type": "string", "x-stream-index": "001" }, + "score": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + }, + "type": { "type": "string", "x-stream-index": "004" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "003" + }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": [ + "message_id", + "user_id", + "user", + "type", + "score", + "created_at", + "updated_at", + "custom" + ], + "type": "object" + }, + "ReactionUpdatedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "004.002" }, + "channel_type": { "type": "string", "x-stream-index": "004.003" }, + "cid": { "type": "string", "x-stream-index": "004.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006.002" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "reaction": { + "$ref": "#/components/schemas/Reaction", + "x-stream-index": "002" + }, + "team": { "type": "string", "x-stream-index": "005.001" }, + "type": { + "default": "reaction.updated", + "type": "string", + "x-stream-index": "006.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": [ + "message", + "reaction", + "cid", + "channel_id", + "channel_type", + "type", + "created_at" + ], + "title": "ReactionUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "Read": { + "nullable": true, + "properties": { + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "004" }, + "unread_messages": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + } + }, + "required": ["last_read", "unread_messages"], + "type": "object" + }, + "ReadReceipts": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "ReadStateResponse": { + "properties": { + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "004" }, + "unread_messages": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + } + }, + "required": ["user", "last_read", "unread_messages"], + "type": "object" + }, + "RecordSettingsRequest": { + "properties": { + "audio_only": { "type": "boolean", "x-stream-index": "001" }, + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "002" + }, + "quality": { + "enum": ["360p", "480p", "720p", "1080p", "1440p"], + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["mode"], + "type": "object" + }, + "RecordSettingsResponse": { + "properties": { + "audio_only": { "type": "boolean", "x-stream-index": "001" }, + "mode": { "type": "string", "x-stream-index": "002" }, + "quality": { "type": "string", "x-stream-index": "003" } + }, + "required": ["audio_only", "mode", "quality", "layout"], + "type": "object" + }, + "RejectCallRequest": { "nullable": true, "type": "object" }, + "RejectCallResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "RequestPermissionRequest": { + "nullable": true, + "properties": { + "permissions": { + "items": { "type": "string" }, + "title": "Permissions", + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["permissions"], + "type": "object" + }, + "RequestPermissionResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "Response": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "RingSettingsRequest": { + "properties": { + "auto_cancel_timeout_ms": { + "format": "int32", + "maximum": 180000, + "minimum": 5000, + "type": "integer", + "x-stream-index": "002" + }, + "incoming_call_timeout_ms": { + "format": "int32", + "maximum": 180000, + "minimum": 5000, + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["incoming_call_timeout_ms", "auto_cancel_timeout_ms"], + "type": "object" + }, + "RingSettingsResponse": { + "properties": { + "auto_cancel_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "incoming_call_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["incoming_call_timeout_ms", "auto_cancel_timeout_ms"], + "type": "object" + }, + "SFULocationResponse": { + "properties": { + "coordinates": { + "$ref": "#/components/schemas/Coordinates", + "x-stream-index": "004" + }, + "datacenter": { "type": "string", "x-stream-index": "002" }, + "id": { "type": "string", "x-stream-index": "001" }, + "location": { + "$ref": "#/components/schemas/Location", + "x-stream-index": "003" + } + }, + "required": ["id", "datacenter", "location", "coordinates"], + "type": "object" + }, + "SFUResponse": { + "properties": { + "edge_name": { "type": "string", "x-stream-index": "001" }, + "url": { "type": "string", "x-stream-index": "002" }, + "ws_endpoint": { "type": "string", "x-stream-index": "003" } + }, + "required": ["edge_name", "url", "ws_endpoint"], + "type": "object" + }, + "ScreensharingSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "ScreensharingSettingsResponse": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "required": ["enabled", "access_request_enabled"], + "type": "object" + }, + "SearchRequest": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "description": "Channel filter conditions", + "maximum": 100, + "minimum": 1, + "title": "Channel filter", + "type": "object", + "x-stream-docs-page-id": "query_channels", + "x-stream-index": "002" + }, + "limit": { + "description": "Number of messages to return", + "format": "int32", + "title": "Limit", + "type": "integer", + "x-stream-index": "004" + }, + "message_filter_conditions": { + "additionalProperties": {}, + "description": "Message filter conditions", + "title": "Message filter", + "type": "object", + "x-stream-index": "003" + }, + "next": { + "description": "Pagination parameter. Cannot be used with non-zero offset.", + "title": "Next", + "type": "string", + "x-stream-index": "007" + }, + "offset": { + "description": "Pagination offset. Cannot be used with sort or next.", + "format": "int32", + "title": "Offset", + "type": "integer", + "x-stream-index": "005" + }, + "query": { + "description": "Search phrase", + "title": "Query", + "type": "string", + "x-stream-index": "001" + }, + "sort": { + "description": "Sort parameters. Cannot be used with non-zero offset", + "items": { "$ref": "#/components/schemas/SortParam" }, + "title": "Sort", + "type": "array", + "x-stream-index": "006" + } + }, + "required": ["filter_conditions"], + "type": "object" + }, + "SearchResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "005.001" }, + "next": { + "description": "Value to pass to the next search query in order to paginate", + "title": "Next", + "type": "string", + "x-stream-index": "003" + }, + "previous": { + "description": "Value that points to the previous page. Pass as the next value in a search query to paginate backwards", + "title": "Previous", + "type": "string", + "x-stream-index": "004" + }, + "results": { + "description": "Search results", + "items": { "$ref": "#/components/schemas/SearchResult" }, + "title": "Results", + "type": "array", + "x-stream-index": "001" + }, + "results_warning": { + "$ref": "#/components/schemas/SearchWarning", + "description": "Warning about the search results", + "title": "Results Warning", + "x-stream-index": "002" + } + }, + "required": ["results", "duration"], + "type": "object" + }, + "SearchResult": { + "properties": { + "message": { + "$ref": "#/components/schemas/SearchResultMessage", + "description": "Found message", + "title": "Message", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "SearchResultMessage": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "type": "array", + "x-stream-index": "001.011" + }, + "before_message_send_failed": { + "type": "boolean", + "x-stream-index": "001.044" + }, + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "description": "Channel object", + "title": "Channel", + "x-stream-index": "002" + }, + "cid": { "type": "string", "x-stream-index": "001.027" }, + "command": { "type": "string", "x-stream-index": "001.006" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.029" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.032" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.031" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.022" + }, + "html": { "type": "string", "x-stream-index": "001.007" }, + "i18n": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "001.042" + }, + "id": { "type": "string", "x-stream-index": "001.002" }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.038" + }, + "latest_reactions": { + "items": { "$ref": "#/components/schemas/Reaction" }, + "type": "array", + "x-stream-index": "001.012" + }, + "mentioned_users": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.041" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.050" + }, + "mml": { "type": "string", "x-stream-index": "001.005" }, + "own_reactions": { + "items": { "$ref": "#/components/schemas/Reaction" }, + "type": "array", + "x-stream-index": "001.013" + }, + "parent_id": { "type": "string", "x-stream-index": "001.018" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.049" + }, + "pinned": { "type": "boolean", "x-stream-index": "001.045" }, + "pinned_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.046" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.048" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001.052" + }, + "poll_id": { "type": "string", "x-stream-index": "001.051" }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.024" + }, + "quoted_message_id": { + "type": "string", + "x-stream-index": "001.023" + }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.014" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "001.016" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.015" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.021" + }, + "shadowed": { "type": "boolean", "x-stream-index": "001.034" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "001.020" }, + "silent": { "type": "boolean", "x-stream-index": "001.043" }, + "text": { "type": "string", "x-stream-index": "001.004" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.026" + }, + "type": { "type": "string", "x-stream-index": "001.008" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.030" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.010" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reaction_groups", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned" + ], + "type": "object" + }, + "SearchWarning": { + "properties": { + "channel_search_cids": { + "description": "Channel CIDs for the searched channels", + "items": { "type": "string" }, + "title": "Channel Search CIDs", + "type": "array", + "x-stream-index": "004" + }, + "channel_search_count": { + "description": "Number of channels searched", + "format": "int32", + "title": "Channel Search Count", + "type": "integer", + "x-stream-index": "003" + }, + "warning_code": { + "description": "Code corresponding to the warning", + "format": "int32", + "title": "Warning Code", + "type": "integer", + "x-stream-index": "002" + }, + "warning_description": { + "description": "Description of the warning", + "title": "Warning Description", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["warning_description", "warning_code"], + "type": "object" + }, + "SendEventRequest": { + "nullable": true, + "properties": { + "event": { + "$ref": "#/components/schemas/EventRequest", + "x-stream-index": "001" + } + }, + "required": ["event"], + "type": "object" + }, + "SendEventResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "SendMessageRequest": { + "nullable": true, + "properties": { + "keep_channel_hidden": { "type": "boolean", "x-stream-index": "008" }, + "message": { + "$ref": "#/components/schemas/MessageRequest", + "x-stream-index": "001" + }, + "skip_enrich_url": { "type": "boolean", "x-stream-index": "003" }, + "skip_push": { "type": "boolean", "x-stream-index": "002" } + }, + "required": ["message"], + "type": "object" + }, + "SendMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/MessageResponse", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "SendReactionRequest": { + "nullable": true, + "properties": { + "enforce_unique": { + "description": "Whether to replace all existing user reactions", + "title": "Enforce unique", + "type": "boolean", + "x-stream-index": "003" + }, + "reaction": { + "$ref": "#/components/schemas/ReactionRequest", + "x-stream-index": "002" + }, + "skip_push": { + "description": "Skips any mobile push notifications", + "title": "Skip push", + "type": "boolean", + "x-stream-index": "004" + } + }, + "required": ["reaction"], + "type": "object" + }, + "SendReactionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/MessageResponse", + "x-stream-index": "001" + }, + "reaction": { + "$ref": "#/components/schemas/ReactionResponse", + "x-stream-index": "002" + } + }, + "required": ["message", "reaction", "duration"], + "type": "object" + }, + "ShowChannelRequest": { "nullable": true, "type": "object" }, + "ShowChannelResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "SortParam": { + "nullable": true, + "properties": { + "direction": { + "description": "Direction of sorting, -1 for descending, 1 for ascending", + "format": "int32", + "title": "Direction", + "type": "integer", + "x-stream-index": "002" + }, + "field": { + "description": "Name of field to sort by", + "title": "Field", + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "StartHLSBroadcastingRequest": { "nullable": true, "type": "object" }, + "StartHLSBroadcastingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "playlist_url": { "type": "string", "x-stream-index": "002" } + }, + "required": ["duration", "playlist_url"], + "type": "object" + }, + "StartRecordingRequest": { + "nullable": true, + "properties": { + "recording_external_storage": { + "type": "string", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "StartRecordingResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "StartTranscriptionRequest": { + "nullable": true, + "properties": { + "transcription_external_storage": { + "type": "string", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "StartTranscriptionResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "Stats": { + "properties": { + "average_seconds": { + "format": "float", + "type": "number", + "x-stream-index": "001" + }, + "max_seconds": { + "format": "float", + "type": "number", + "x-stream-index": "002" + } + }, + "required": ["average_seconds", "max_seconds"], + "type": "object" + }, + "StatsOptions": { + "properties": { + "reporting_interval_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["reporting_interval_ms"], + "type": "object" + }, + "StopHLSBroadcastingRequest": { "nullable": true, "type": "object" }, + "StopHLSBroadcastingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "StopLiveRequest": { "nullable": true, "type": "object" }, + "StopLiveResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["call", "duration"], + "type": "object" + }, + "StopRecordingRequest": { "nullable": true, "type": "object" }, + "StopRecordingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "StopTranscriptionRequest": { "nullable": true, "type": "object" }, + "StopTranscriptionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "StopWatchingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "Subsession": { + "nullable": true, + "properties": { + "ended_at": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "joined_at": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + }, + "pub_sub_hint": { + "$ref": "#/components/schemas/MediaPubSubHint", + "x-stream-index": "004" + }, + "sfu_id": { "type": "string", "x-stream-index": "003" } + }, + "required": ["joined_at", "ended_at", "sfu_id"], + "type": "object" + }, + "SyncRequest": { + "nullable": true, + "properties": { + "channel_cids": { + "description": "List of channel CIDs to sync", + "items": { "type": "string" }, + "maximum": 255, + "minimum": 1, + "title": "Channel CIDs", + "type": "array", + "x-stream-index": "001" + }, + "last_sync_at": { + "description": "Date from which synchronization should happen", + "format": "date-time", + "title": "Last sync at", + "type": "number", + "x-stream-index": "002" + } + }, + "required": ["channel_cids", "last_sync_at"], + "type": "object" + }, + "SyncResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "003.001" }, + "events": { + "description": "List of events", + "items": { "$ref": "#/components/schemas/WSEvent" }, + "title": "Events", + "type": "array", + "x-stream-index": "001" + }, + "inaccessible_cids": { + "description": "List of CIDs that user can't access", + "items": { "type": "string" }, + "title": "Inaccessible CIDs", + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["events", "duration"], + "type": "object" + }, + "TargetResolution": { + "properties": { + "bitrate": { + "format": "int32", + "maximum": 6000000, + "type": "integer", + "x-stream-index": "003" + }, + "height": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "002" + }, + "width": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["width", "height"], + "type": "object" + }, + "Thread": { + "description": "Represents a conversation thread linked to a specific message in a channel.", + "properties": { + "channel": { + "$ref": "#/components/schemas/Channel", + "description": "Channel is the channel the thread belongs to", + "title": "Channel", + "x-stream-index": "004" + }, + "channel_cid": { + "description": "Channel CID is unique string identifier of the channel", + "title": "Channel CID", + "type": "string", + "x-stream-index": "003" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "013" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Created By is the user who created the thread", + "title": "Created By", + "x-stream-index": "008" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom is the custom data of the thread", + "title": "Custom", + "type": "object", + "x-stream-index": "017" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "015" + }, + "last_message_at": { + "description": "Last Message At is the time of the last message in the thread", + "format": "date-time", + "title": "Last Message At", + "type": "number", + "x-stream-index": "012" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "description": "Parent Message is the message the thread is replying to", + "title": "Parent Message", + "x-stream-index": "006" + }, + "parent_message_id": { + "description": "Parent Message ID is unique string identifier of the parent message", + "title": "Parent Message ID", + "type": "string", + "x-stream-index": "005" + }, + "participant_count": { + "description": "The number of participants in the thread", + "format": "int32", + "title": "Participant Count", + "type": "integer", + "x-stream-index": "010" + }, + "reply_count": { + "description": "The number of replies in the thread", + "format": "int32", + "title": "Reply Count", + "type": "integer", + "x-stream-index": "009" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "011" + }, + "title": { + "description": "Title is the title of the thread", + "title": "Title", + "type": "string", + "x-stream-index": "016" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "014" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_at", + "updated_at", + "title", + "custom" + ], + "title": "Thread", + "type": "object" + }, + "ThreadParticipant": { + "description": "Represents a user that is participating in a thread.", + "nullable": true, + "properties": { + "app_pk": { + "format": "int32", + "readOnly": true, + "type": "integer", + "x-stream-index": "002" + }, + "channel_cid": { "type": "string", "x-stream-index": "003" }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "007" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "010" + }, + "last_read_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "left_thread_at": { + "description": "Left Thread At is the time when the user left the thread", + "format": "date-time", + "title": "Left Thread At", + "type": "number", + "x-stream-index": "008" + }, + "thread_id": { + "description": "Thead ID is unique string identifier of the thread", + "title": "ID", + "type": "string", + "x-stream-index": "004" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "User is the user object", + "title": "User", + "x-stream-index": "006" + }, + "user_id": { + "description": "User ID is unique string identifier of the user", + "title": "User ID", + "type": "string", + "x-stream-index": "005" + } + }, + "required": [ + "app_pk", + "channel_cid", + "created_at", + "last_read_at", + "custom" + ], + "title": "ThreadParticipant", + "type": "object" + }, + "ThreadResponse": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "channel_cid": { "type": "string", "x-stream-index": "001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "006" + }, + "created_by_user_id": { "type": "string", "x-stream-index": "005" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "015" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "last_message_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "004" + }, + "parent_message_id": { "type": "string", "x-stream-index": "003" }, + "participant_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "009" + }, + "title": { "type": "string", "x-stream-index": "014" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "012" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_by_user_id", + "created_at", + "updated_at", + "title", + "custom" + ], + "type": "object" + }, + "ThreadState": { + "description": "Represents a conversation thread linked to a specific message in a channel.", + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/Channel", + "description": "Channel is the channel the thread belongs to", + "title": "Channel", + "x-stream-index": "001.004" + }, + "channel_cid": { + "description": "Channel CID is unique string identifier of the channel", + "title": "Channel CID", + "type": "string", + "x-stream-index": "001.003" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "001.013" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Created By is the user who created the thread", + "title": "Created By", + "x-stream-index": "001.008" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom is the custom data of the thread", + "title": "Custom", + "type": "object", + "x-stream-index": "001.017" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "001.015" + }, + "last_message_at": { + "description": "Last Message At is the time of the last message in the thread", + "format": "date-time", + "title": "Last Message At", + "type": "number", + "x-stream-index": "001.012" + }, + "latest_replies": { + "items": { "$ref": "#/components/schemas/Message" }, + "type": "array", + "x-stream-index": "002" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "description": "Parent Message is the message the thread is replying to", + "title": "Parent Message", + "x-stream-index": "001.006" + }, + "parent_message_id": { + "description": "Parent Message ID is unique string identifier of the parent message", + "title": "Parent Message ID", + "type": "string", + "x-stream-index": "001.005" + }, + "participant_count": { + "description": "The number of participants in the thread", + "format": "int32", + "title": "Participant Count", + "type": "integer", + "x-stream-index": "001.010" + }, + "read": { + "items": { "$ref": "#/components/schemas/Read" }, + "type": "array", + "x-stream-index": "003" + }, + "reply_count": { + "description": "The number of replies in the thread", + "format": "int32", + "title": "Reply Count", + "type": "integer", + "x-stream-index": "001.009" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "001.011" + }, + "title": { + "description": "Title is the title of the thread", + "title": "Title", + "type": "string", + "x-stream-index": "001.016" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "001.014" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_at", + "updated_at", + "title", + "custom", + "latest_replies" + ], + "title": "Thread", + "type": "object" + }, + "ThreadStateResponse": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001.002" + }, + "channel_cid": { "type": "string", "x-stream-index": "001.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.011" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.006" + }, + "created_by_user_id": { + "type": "string", + "x-stream-index": "001.005" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.015" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.013" + }, + "last_message_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.010" + }, + "latest_replies": { + "items": { "$ref": "#/components/schemas/Message" }, + "type": "array", + "x-stream-index": "002" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.004" + }, + "parent_message_id": { + "type": "string", + "x-stream-index": "001.003" + }, + "participant_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.008" + }, + "read": { + "items": { "$ref": "#/components/schemas/Read" }, + "type": "array", + "x-stream-index": "003" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.007" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "001.009" + }, + "title": { "type": "string", "x-stream-index": "001.014" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.012" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_by_user_id", + "created_at", + "updated_at", + "title", + "custom", + "latest_replies" + ], + "type": "object" + }, + "ThreadUpdatedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "001.002" }, + "channel_type": { "type": "string", "x-stream-index": "001.003" }, + "cid": { "type": "string", "x-stream-index": "001.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "thread": { + "$ref": "#/components/schemas/Thread", + "x-stream-index": "003.001" + }, + "type": { + "default": "thread.updated", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "ThreadUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "Thresholds": { + "description": "Sets thresholds for AI moderation", + "properties": { + "explicit": { + "$ref": "#/components/schemas/LabelThresholds", + "description": "Thresholds for explicit messages", + "title": "Explicit", + "x-stream-index": "001" + }, + "spam": { + "$ref": "#/components/schemas/LabelThresholds", + "description": "Thresholds for spam", + "title": "Spam", + "x-stream-index": "002" + }, + "toxic": { + "$ref": "#/components/schemas/LabelThresholds", + "description": "Thresholds for toxic messages", + "title": "Toxic", + "x-stream-index": "003" + } + }, + "title": "Auto moderation thresholds", + "type": "object" + }, + "ThumbnailResponse": { + "properties": { + "image_url": { "type": "string", "x-stream-index": "001" } + }, + "required": ["image_url"], + "type": "object" + }, + "ThumbnailsSettingsRequest": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "type": "object" + }, + "ThumbnailsSettingsResponse": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "TranscriptionSettingsRequest": { + "properties": { + "closed_caption_mode": { "type": "string", "x-stream-index": "002" }, + "languages": { + "items": { "type": "string" }, + "maximum": 2, + "type": "array", + "x-stream-index": "003" + }, + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["mode"], + "type": "object" + }, + "TranscriptionSettingsResponse": { + "properties": { + "closed_caption_mode": { "type": "string", "x-stream-index": "002" }, + "languages": { + "items": { "type": "string" }, + "maximum": 2, + "type": "array", + "x-stream-index": "003" + }, + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["mode", "closed_caption_mode", "languages"], + "type": "object" + }, + "TranslateMessageRequest": { + "nullable": true, + "properties": { + "language": { + "description": "Language to translate message to", + "enum": [ + "af", + "sq", + "am", + "ar", + "az", + "bn", + "bs", + "bg", + "zh", + "zh-TW", + "hr", + "cs", + "da", + "fa-AF", + "nl", + "en", + "et", + "fi", + "fr", + "fr-CA", + "ka", + "de", + "el", + "ha", + "he", + "hi", + "hu", + "id", + "it", + "ja", + "ko", + "lv", + "ms", + "no", + "fa", + "ps", + "pl", + "pt", + "ro", + "ru", + "sr", + "sk", + "sl", + "so", + "es", + "es-MX", + "sw", + "sv", + "tl", + "ta", + "th", + "tr", + "uk", + "ur", + "vi" + ], + "title": "Language", + "type": "string", + "x-stream-index": "002" + } + }, + "required": ["language"], + "type": "object" + }, + "TruncateChannelRequest": { + "nullable": true, + "properties": { + "hard_delete": { + "description": "Permanently delete channel data (messages, reactions, etc.)", + "title": "Hard delete", + "type": "boolean", + "x-stream-index": "002" + }, + "message": { + "$ref": "#/components/schemas/MessageRequest", + "x-stream-index": "004" + }, + "skip_push": { + "description": "When `message` is set disables all push notifications for it", + "title": "Skip push", + "type": "boolean", + "x-stream-index": "005" + }, + "truncated_at": { + "description": "Truncate channel data up to `truncated_at`. The system message (if provided) creation time is always greater than `truncated_at`", + "format": "date-time", + "title": "Truncated at", + "type": "number", + "x-stream-index": "006" + } + }, + "type": "object" + }, + "TruncateChannelResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "TypingIndicators": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "TypingStartEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "003.002" }, + "channel_type": { "type": "string", "x-stream-index": "003.003" }, + "cid": { "type": "string", "x-stream-index": "003.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "parent_id": { "type": "string", "x-stream-index": "001" }, + "type": { + "default": "typing.start", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "TypingStartEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "TypingStopEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "parent_id": { "type": "string", "x-stream-index": "001" }, + "type": { + "default": "typing.stop", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "TypingStopEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UnblockUserRequest": { + "nullable": true, + "properties": { + "user_id": { + "description": "the user to unblock", + "title": "UserID", + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["user_id"], + "type": "object" + }, + "UnblockUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UnblockedUserEvent": { + "description": "This event is sent when a user is unblocked on a call, \nthis can be useful to notify the user that they can now join the call again", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "type": { + "default": "call.unblocked_user", + "description": "The type of event: \"call.unblocked_user\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that was unblocked", + "title": "User", + "x-stream-index": "003" + } + }, + "required": ["type", "created_at", "call_cid", "user"], + "title": "UnblockedUserEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UnmuteChannelRequest": { + "nullable": true, + "properties": { + "channel_cids": { + "description": "Channel CIDs to mute (if multiple channels)", + "items": { "type": "string" }, + "maximum": 25, + "title": "Channel CIDs", + "type": "array", + "x-stream-index": "001.002" + }, + "expiration": { + "description": "Duration of mute in milliseconds", + "title": "Expiration", + "type": "integer", + "x-stream-index": "001.003" + } + }, + "type": "object" + }, + "UnmuteResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "non_existing_users": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UnmuteUserRequest": { + "nullable": true, + "properties": { + "target_ids": { + "description": "User IDs to mute (if multiple users)", + "items": { "type": "string" }, + "maximum": 1000, + "title": "Target IDs", + "type": "array", + "x-stream-index": "001.002" + }, + "timeout": { + "description": "Duration of mute in minutes", + "minimum": 0, + "title": "Timeout", + "type": "integer", + "x-stream-index": "001.003" + } + }, + "required": ["timeout"], + "type": "object" + }, + "UnpinRequest": { + "nullable": true, + "properties": { + "session_id": { "type": "string", "x-stream-index": "003" }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user_id", "session_id"], + "type": "object" + }, + "UnpinResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UnreadCountsChannel": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "001" }, + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "required": ["channel_id", "unread_count", "last_read"], + "type": "object" + }, + "UnreadCountsChannelType": { + "properties": { + "channel_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "channel_type": { "type": "string", "x-stream-index": "001" }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + } + }, + "required": ["channel_type", "channel_count", "unread_count"], + "type": "object" + }, + "UnreadCountsThread": { + "properties": { + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "003" }, + "parent_message_id": { "type": "string", "x-stream-index": "004" }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": [ + "unread_count", + "last_read", + "last_read_message_id", + "parent_message_id" + ], + "type": "object" + }, + "UpdateCallMembersRequest": { + "nullable": true, + "properties": { + "remove_members": { + "description": "List of userID to remove", + "items": { "type": "string" }, + "maximum": 100, + "title": "Remove Members", + "type": "array", + "x-stream-index": "003" + }, + "update_members": { + "description": "List of members to update or insert", + "items": { "$ref": "#/components/schemas/MemberRequest" }, + "maximum": 100, + "title": "Update Members", + "type": "array", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "UpdateCallMembersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration", "members"], + "type": "object" + }, + "UpdateCallRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "settings_override": { + "$ref": "#/components/schemas/CallSettingsRequest", + "description": "the settings to change for this call", + "title": "Settings Override", + "x-stream-index": "004" + }, + "starts_at": { + "description": "the time the call is scheduled to start", + "format": "date-time", + "title": "Starts At", + "type": "number", + "x-stream-index": "005" + } + }, + "type": "object" + }, + "UpdateCallResponse": { + "description": "Represents a call", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "membership": { + "$ref": "#/components/schemas/MemberResponse", + "x-stream-index": "001.003" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "blocked_users", + "duration" + ], + "title": "Call", + "type": "object" + }, + "UpdateChannelPartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002.001" + }, + "unset": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002.002" + } + }, + "type": "object" + }, + "UpdateChannelPartialResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["members", "duration"], + "type": "object" + }, + "UpdateChannelRequest": { + "nullable": true, + "properties": { + "accept_invite": { + "description": "Set to `true` to accept the invite", + "title": "Accept invite", + "type": "boolean", + "x-stream-index": "008" + }, + "add_members": { + "description": "List of user IDs to add to the channel", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Add members", + "type": "array", + "x-stream-index": "001" + }, + "add_moderators": { + "description": "List of user IDs to make channel moderators", + "items": { "type": "string" }, + "maximum": 100, + "title": "Add moderators", + "type": "array", + "x-stream-index": "003" + }, + "assign_roles": { + "description": "List of channel member role assignments. If any specified user is not part of the channel, the request will fail", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Assign roles", + "type": "array", + "x-stream-index": "006" + }, + "cooldown": { + "description": "Sets cool down period for the channel in seconds", + "format": "int32", + "maximum": 120, + "minimum": 0, + "title": "Cool down", + "type": "integer", + "x-stream-index": "007" + }, + "data": { + "$ref": "#/components/schemas/ChannelInput", + "x-stream-index": "013.001" + }, + "demote_moderators": { + "description": "List of user IDs to take away moderators status from", + "items": { "type": "string" }, + "maximum": 100, + "title": "Demote moderators", + "type": "array", + "x-stream-index": "004" + }, + "hide_history": { + "description": "Set to `true` to hide channel's history when adding new members", + "title": "Hide history", + "type": "boolean", + "x-stream-index": "012" + }, + "invites": { + "description": "List of user IDs to invite to the channel", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Invites", + "type": "array", + "x-stream-index": "005" + }, + "message": { + "$ref": "#/components/schemas/MessageRequest", + "description": "Message to send to the chat when channel is successfully updated", + "title": "Message", + "x-stream-index": "010" + }, + "reject_invite": { + "description": "Set to `true` to reject the invite", + "title": "Reject invite", + "type": "boolean", + "x-stream-index": "009" + }, + "remove_members": { + "description": "List of user IDs to remove from the channel", + "items": { "type": "string" }, + "maximum": 100, + "title": "Remove members", + "type": "array", + "x-stream-index": "002" + }, + "skip_push": { + "description": "When `message` is set disables all push notifications for it", + "title": "Skip push", + "type": "boolean", + "x-stream-index": "011" + } + }, + "title": "Channel update request", + "type": "object", + "x-stream-docs-page-id": "channel_update" + }, + "UpdateChannelResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "004.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "003" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "002" + } + }, + "required": ["members", "duration"], + "type": "object" + }, + "UpdateMessagePartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "description": "Sets new field values", + "title": "Set", + "type": "object", + "x-stream-index": "002.001", + "x-stream-map": { + "key": "field", + "title": "Value", + "description": "New value to set" + } + }, + "skip_enrich_url": { "type": "boolean", "x-stream-index": "001" }, + "unset": { + "description": "Array of field names to unset", + "items": { "type": "string" }, + "title": "Unset", + "type": "array", + "x-stream-index": "002.002" + } + }, + "type": "object" + }, + "UpdateMessagePartialResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["duration"], + "type": "object" + }, + "UpdateMessageRequest": { + "nullable": true, + "properties": { + "message": { + "$ref": "#/components/schemas/MessageRequest", + "x-stream-index": "001" + }, + "skip_enrich_url": { "type": "boolean", "x-stream-index": "002" } + }, + "required": ["message"], + "type": "object" + }, + "UpdateMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "UpdatePollOptionRequest": { + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "004" + }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "002" }, + "text": { "type": "string", "x-stream-index": "003" } + }, + "required": ["id", "text"], + "type": "object" + }, + "UpdatePollPartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "description": "Sets new field values", + "title": "Set", + "type": "object", + "x-stream-index": "002.001", + "x-stream-map": { + "key": "field", + "title": "Value", + "description": "New value to set" + } + }, + "unset": { + "description": "Array of field names to unset", + "items": { "type": "string" }, + "title": "Unset", + "type": "array", + "x-stream-index": "002.002" + } + }, + "type": "object" + }, + "UpdatePollRequest": { + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "011" + }, + "allow_answers": { "type": "boolean", "x-stream-index": "009" }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "008" + }, + "description": { "type": "string", "x-stream-index": "003" }, + "enforce_unique_vote": { "type": "boolean", "x-stream-index": "005" }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "is_closed": { "type": "boolean", "x-stream-index": "010" }, + "max_votes_allowed": { + "format": "int32", + "maximum": 10, + "type": "integer", + "x-stream-index": "007" + }, + "name": { "type": "string", "x-stream-index": "002" }, + "options": { + "items": { "$ref": "#/components/schemas/PollOption" }, + "maximum": 100, + "type": "array", + "x-stream-index": "004" + }, + "voting_visibility": { + "enum": ["anonymous", "public"], + "type": "string", + "x-stream-index": "006" + } + }, + "required": ["id", "name"], + "type": "object" + }, + "UpdateThreadPartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004.001" + }, + "unset": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004.002" + } + }, + "type": "object" + }, + "UpdateThreadPartialResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "thread": { + "$ref": "#/components/schemas/ThreadResponse", + "description": "Updated thread (not enriched)", + "title": "Thread", + "x-stream-index": "001" + } + }, + "required": ["thread", "duration"], + "type": "object" + }, + "UpdateUserPartialRequest": { + "properties": { + "id": { + "description": "User ID to update", + "title": "ID", + "type": "string", + "x-stream-index": "001" + }, + "set": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002.001" + }, + "unset": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002.002" + } + }, + "required": ["id"], + "type": "object" + }, + "UpdateUserPermissionsRequest": { + "nullable": true, + "properties": { + "grant_permissions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002" + }, + "revoke_permissions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + }, + "user_id": { "type": "string", "x-stream-index": "001" } + }, + "required": ["user_id"], + "type": "object" + }, + "UpdateUserPermissionsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UpdateUsersPartialRequest": { + "nullable": true, + "properties": { + "users": { + "items": { + "$ref": "#/components/schemas/UpdateUserPartialRequest" + }, + "maximum": 100, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["users"], + "type": "object" + }, + "UpdateUsersRequest": { + "nullable": true, + "properties": { + "users": { + "additionalProperties": { + "$ref": "#/components/schemas/UserRequest" + }, + "description": "Object containing users", + "title": "Users", + "type": "object", + "x-stream-index": "001", + "x-stream-map": { "key": "user_id" } + } + }, + "required": ["users"], + "type": "object" + }, + "UpdateUsersResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "003.001" }, + "membership_deletion_task_id": { + "type": "string", + "x-stream-index": "002" + }, + "users": { + "additionalProperties": { + "$ref": "#/components/schemas/FullUserResponse" + }, + "description": "Object containing users", + "title": "Users", + "type": "object", + "x-stream-index": "001", + "x-stream-map": { "key": "user_id" } + } + }, + "required": ["users", "membership_deletion_task_id", "duration"], + "type": "object" + }, + "UpdatedCallPermissionsEvent": { + "description": "This event is sent to notify about permission changes for a user, clients receiving this event should update their UI accordingly", + "properties": { + "call_cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002" + }, + "own_capabilities": { + "description": "The capabilities of the current user", + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "title": "Own capabilities", + "type": "array", + "x-stream-index": "004" + }, + "type": { + "default": "call.permissions_updated", + "description": "The type of event: \"call.permissions_updated\" in this case", + "title": "Event Type", + "type": "string", + "x-stream-index": "001.001" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user who received the new permissions", + "title": "User", + "x-stream-index": "003" + } + }, + "required": [ + "type", + "created_at", + "call_cid", + "user", + "own_capabilities" + ], + "title": "UpdatedCallPermissionsEvent", + "type": "object", + "x-stream-event-call-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserBannedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "006.002" }, + "channel_type": { "type": "string", "x-stream-index": "006.003" }, + "cid": { "type": "string", "x-stream-index": "006.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008.002" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + }, + "expiration": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "reason": { "type": "string", "x-stream-index": "004" }, + "shadow": { "type": "boolean", "x-stream-index": "002" }, + "team": { "type": "string", "x-stream-index": "005.001" }, + "type": { + "default": "user.banned", + "type": "string", + "x-stream-index": "008.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "007.001" + } + }, + "required": [ + "created_by", + "shadow", + "cid", + "channel_id", + "channel_type", + "type", + "created_at" + ], + "title": "UserBannedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserDeactivatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + }, + "type": { + "default": "user.deactivated", + "type": "string", + "x-stream-index": "003.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002.001" + } + }, + "required": ["created_by", "type", "created_at"], + "title": "UserDeactivatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserDeletedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "delete_conversation_channels": { + "type": "boolean", + "x-stream-index": "005" + }, + "hard_delete": { "type": "boolean", "x-stream-index": "003.001" }, + "mark_messages_deleted": { + "type": "boolean", + "x-stream-index": "004" + }, + "type": { + "default": "user.deleted", + "type": "string", + "x-stream-index": "002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.001" + } + }, + "required": [ + "type", + "created_at", + "hard_delete", + "mark_messages_deleted", + "delete_conversation_channels" + ], + "title": "UserDeletedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserInfoResponse": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "image": { "type": "string", "x-stream-index": "002" }, + "name": { "type": "string", "x-stream-index": "001" }, + "roles": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + } + }, + "required": ["name", "image", "custom", "roles"], + "type": "object" + }, + "UserMute": { + "nullable": true, + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "009" + }, + "expires": { + "description": "Date/time of mute expiration", + "format": "date-time", + "title": "Expires", + "type": "number", + "x-stream-index": "008" + }, + "target": { + "$ref": "#/components/schemas/UserObject", + "description": "User who's muted", + "title": "Target", + "x-stream-index": "007" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "Owner of channel mute", + "title": "User", + "x-stream-index": "005" + } + }, + "required": ["created_at", "updated_at"], + "type": "object" + }, + "UserMutedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004.002" + }, + "target_user": { "type": "string", "x-stream-index": "001" }, + "target_users": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002" + }, + "type": { + "default": "user.muted", + "type": "string", + "x-stream-index": "004.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": ["type", "created_at"], + "title": "UserMutedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserObject": { + "description": "Represents chat user", + "properties": { + "ban_expires": { + "description": "Expiration date of the ban", + "format": "date-time", + "title": "Ban expires", + "type": "number", + "x-stream-index": "015" + }, + "banned": { + "description": "Whether a user is banned or not", + "title": "Banned", + "type": "boolean", + "x-stream-index": "014" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "readOnly": true, + "title": "Created at", + "type": "number", + "x-stream-index": "007" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "005" + }, + "deactivated_at": { + "description": "Date of deactivation", + "format": "date-time", + "readOnly": true, + "title": "Deactivated at", + "type": "number", + "x-stream-index": "012" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "readOnly": true, + "title": "Deleted at", + "type": "number", + "x-stream-index": "011" + }, + "id": { + "description": "Unique user identifier", + "title": "ID", + "type": "string", + "x-stream-index": "003" + }, + "invisible": { "type": "boolean", "x-stream-index": "021" }, + "language": { + "description": "Preferred language of a user", + "title": "Language", + "type": "string", + "x-stream-index": "032" + }, + "last_active": { + "description": "Date of last activity", + "format": "date-time", + "readOnly": true, + "title": "Last active", + "type": "number", + "x-stream-index": "010" + }, + "online": { + "description": "Whether a user online or not", + "readOnly": true, + "title": "Online", + "type": "boolean", + "x-stream-index": "020" + }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "024" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "023" + }, + "revoke_tokens_issued_before": { + "description": "Revocation date for tokens", + "format": "date-time", + "title": "Revoke tokens issued before", + "type": "number", + "x-stream-index": "039" + }, + "role": { + "description": "Determines the set of user permissions", + "title": "Role", + "type": "string", + "x-stream-index": "004" + }, + "teams": { + "description": "List of teams user is a part of", + "items": { "type": "string" }, + "title": "Teams", + "type": "array", + "x-stream-index": "033" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "readOnly": true, + "title": "Updated at", + "type": "number", + "x-stream-index": "008" + } + }, + "required": ["id", "role", "custom", "banned", "online"], + "title": "User object", + "type": "object" + }, + "UserPresenceChangedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "user.presence.changed", + "type": "string", + "x-stream-index": "002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.001" + } + }, + "required": ["type", "created_at"], + "title": "UserPresenceChangedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserReactivatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "user.reactivated", + "type": "string", + "x-stream-index": "002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + } + }, + "required": ["type", "created_at"], + "title": "UserReactivatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "title": "Custom", + "type": "object", + "x-stream-index": "004" + }, + "id": { + "description": "User ID", + "title": "ID", + "type": "string", + "x-stream-index": "001" + }, + "image": { + "title": "Image", + "type": "string", + "x-stream-index": "003" + }, + "invisible": { "type": "boolean", "x-stream-index": "006" }, + "language": { "type": "string", "x-stream-index": "005" }, + "name": { + "description": "Optional name of user", + "title": "Name", + "type": "string", + "x-stream-index": "002" + }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "007" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettingsInput", + "x-stream-index": "010" + } + }, + "required": ["id"], + "type": "object" + }, + "UserResponse": { + "properties": { + "banned": { "type": "boolean", "x-stream-index": "001.011" }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "001.008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.004" + }, + "deactivated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.015" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "001.010" + }, + "id": { "type": "string", "x-stream-index": "001.001" }, + "image": { "type": "string", "x-stream-index": "001.003" }, + "language": { "type": "string", "x-stream-index": "001.005" }, + "last_active": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.013" + }, + "name": { "type": "string", "x-stream-index": "001.002" }, + "online": { "type": "boolean", "x-stream-index": "001.012" }, + "revoke_tokens_issued_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.014" + }, + "role": { "type": "string", "x-stream-index": "001.006" }, + "teams": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.007" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "001.009" + } + }, + "required": [ + "id", + "custom", + "language", + "role", + "teams", + "created_at", + "updated_at", + "banned", + "online", + "shadow_banned", + "devices", + "invisible" + ], + "type": "object" + }, + "UserSessionStats": { + "properties": { + "browser": { "type": "string", "x-stream-index": "012.008" }, + "browser_version": { "type": "string", "x-stream-index": "012.009" }, + "current_ip": { "type": "string", "x-stream-index": "005" }, + "current_sfu": { "type": "string", "x-stream-index": "006" }, + "device_model": { "type": "string", "x-stream-index": "012.006" }, + "device_version": { "type": "string", "x-stream-index": "012.007" }, + "distance_to_sfu_kilometers": { + "format": "float", + "type": "number", + "x-stream-index": "007" + }, + "freeze_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "014.012" + }, + "geolocation": { + "$ref": "#/components/schemas/GeolocationResult", + "x-stream-index": "008" + }, + "jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "002" + }, + "latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "003" + }, + "max_fir_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.003" + }, + "max_freeze_fraction": { + "format": "float", + "type": "number", + "x-stream-index": "014.006" + }, + "max_freezes_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "014.005" + }, + "max_freezes_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.004" + }, + "max_nack_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.002" + }, + "max_pli_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.001" + }, + "max_publishing_video_quality": { + "$ref": "#/components/schemas/VideoQuality", + "x-stream-index": "013.003" + }, + "max_receiving_video_quality": { + "$ref": "#/components/schemas/VideoQuality", + "x-stream-index": "014.014" + }, + "os": { "type": "string", "x-stream-index": "012.001" }, + "os_version": { "type": "string", "x-stream-index": "012.002" }, + "packet_loss_fraction": { + "format": "float", + "type": "number", + "x-stream-index": "014.008" + }, + "pub_sub_hints": { + "$ref": "#/components/schemas/MediaPubSubHint", + "x-stream-index": "011" + }, + "publisher_audio_mos": { + "$ref": "#/components/schemas/MOSStats", + "x-stream-index": "013.005" + }, + "publisher_jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "013.008" + }, + "publisher_latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "013.007" + }, + "publisher_packet_loss_fraction": { + "format": "float", + "type": "number", + "x-stream-index": "013.006" + }, + "publisher_video_quality_limitation_duration_seconds": { + "additionalProperties": { "format": "float", "type": "number" }, + "type": "object", + "x-stream-index": "013.009" + }, + "publishing_audio_codec": { + "type": "string", + "x-stream-index": "013.002" + }, + "publishing_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "013.001" + }, + "quality_score": { + "format": "float", + "type": "number", + "x-stream-index": "004" + }, + "receiving_audio_codec": { + "type": "string", + "x-stream-index": "014.013" + }, + "receiving_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "014.011" + }, + "sdk": { "type": "string", "x-stream-index": "012.004" }, + "sdk_version": { "type": "string", "x-stream-index": "012.005" }, + "session_id": { "type": "string", "x-stream-index": "010" }, + "subscriber_audio_mos": { + "$ref": "#/components/schemas/MOSStats", + "x-stream-index": "014.007" + }, + "subscriber_jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "014.010" + }, + "subscriber_latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "014.009" + }, + "subsessions": { + "items": { "$ref": "#/components/schemas/Subsession" }, + "type": "array", + "x-stream-index": "009" + }, + "timeline": { + "$ref": "#/components/schemas/CallTimeline", + "x-stream-index": "001" + }, + "total_pixels_in": { "type": "integer", "x-stream-index": "014.015" }, + "total_pixels_out": { + "type": "integer", + "x-stream-index": "013.004" + }, + "webrtc_version": { "type": "string", "x-stream-index": "012.003" } + }, + "required": [ + "quality_score", + "session_id", + "publishing_duration_seconds", + "total_pixels_out", + "publisher_packet_loss_fraction", + "max_freezes_duration_seconds", + "max_freeze_fraction", + "packet_loss_fraction", + "receiving_duration_seconds", + "freeze_duration_seconds", + "total_pixels_in" + ], + "type": "object" + }, + "UserStats": { + "nullable": true, + "properties": { + "info": { + "$ref": "#/components/schemas/UserInfoResponse", + "x-stream-index": "001" + }, + "session_stats": { + "items": { "$ref": "#/components/schemas/UserSessionStats" }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["info", "session_stats"], + "type": "object" + }, + "UserUnbannedEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "005.002" + }, + "shadow": { "type": "boolean", "x-stream-index": "001" }, + "team": { "type": "string", "x-stream-index": "004.001" }, + "type": { + "default": "user.unbanned", + "type": "string", + "x-stream-index": "005.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + } + }, + "required": [ + "shadow", + "cid", + "channel_id", + "channel_type", + "type", + "created_at" + ], + "title": "UserUnbannedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserUpdatedEvent": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "user.updated", + "type": "string", + "x-stream-index": "002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + } + }, + "required": ["type", "created_at"], + "title": "UserUpdatedEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserWatchingStartEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "004.002" }, + "channel_type": { "type": "string", "x-stream-index": "004.003" }, + "cid": { "type": "string", "x-stream-index": "004.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002" + }, + "team": { "type": "string", "x-stream-index": "002.001" }, + "type": { + "default": "user.watching.start", + "type": "string", + "x-stream-index": "003.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "005.001" + }, + "watcher_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.001" + } + }, + "required": [ + "watcher_count", + "type", + "created_at", + "cid", + "channel_id", + "channel_type" + ], + "title": "UserWatchingStartEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "UserWatchingStopEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "004.002" }, + "channel_type": { "type": "string", "x-stream-index": "004.003" }, + "cid": { "type": "string", "x-stream-index": "004.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "type": { + "default": "user.watching.stop", + "type": "string", + "x-stream-index": "002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "003.001" + }, + "watcher_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.001" + } + }, + "required": [ + "watcher_count", + "type", + "created_at", + "cid", + "channel_id", + "channel_type" + ], + "title": "UserWatchingStopEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "VideoQuality": { + "properties": { + "resolution": { + "$ref": "#/components/schemas/VideoResolution", + "x-stream-index": "002" + }, + "usage_type": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "VideoResolution": { + "properties": { + "height": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "width": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["width", "height"], + "type": "object" + }, + "VideoSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "camera_default_on": { "type": "boolean", "x-stream-index": "004" }, + "camera_facing": { + "enum": ["front", "back", "external"], + "type": "string", + "x-stream-index": "005" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "VideoSettingsResponse": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "camera_default_on": { "type": "boolean", "x-stream-index": "004" }, + "camera_facing": { + "enum": ["front", "back", "external"], + "type": "string", + "x-stream-index": "005" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "required": [ + "enabled", + "access_request_enabled", + "target_resolution", + "camera_default_on", + "camera_facing" + ], + "type": "object" + }, + "VoteData": { + "properties": { + "Option": { + "$ref": "#/components/schemas/PollOption", + "x-stream-index": "003" + }, + "answer_text": { "type": "string", "x-stream-index": "002" }, + "option_id": { + "maxLength": 255, + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "WSAuthMessage": { + "nullable": true, + "properties": { + "products": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + }, + "token": { + "title": "Token", + "type": "string", + "x-stream-index": "002" + }, + "user_details": { + "$ref": "#/components/schemas/ConnectUserDetailsRequest", + "x-stream-index": "001" + } + }, + "required": ["user_details", "token"], + "type": "object" + }, + "WSEvent": { + "description": "The discriminator object for all websocket events, it maps events' payload to the final type", + "discriminator": { + "mapping": { + "*": "#/components/schemas/AnyEvent", + "call.accepted": "#/components/schemas/CallAcceptedEvent", + "call.blocked_user": "#/components/schemas/BlockedUserEvent", + "call.closed_caption": "#/components/schemas/ClosedCaptionEvent", + "call.created": "#/components/schemas/CallCreatedEvent", + "call.deleted": "#/components/schemas/CallDeletedEvent", + "call.ended": "#/components/schemas/CallEndedEvent", + "call.hls_broadcasting_failed": "#/components/schemas/CallHLSBroadcastingFailedEvent", + "call.hls_broadcasting_started": "#/components/schemas/CallHLSBroadcastingStartedEvent", + "call.hls_broadcasting_stopped": "#/components/schemas/CallHLSBroadcastingStoppedEvent", + "call.live_started": "#/components/schemas/CallLiveStartedEvent", + "call.member_added": "#/components/schemas/CallMemberAddedEvent", + "call.member_removed": "#/components/schemas/CallMemberRemovedEvent", + "call.member_updated": "#/components/schemas/CallMemberUpdatedEvent", + "call.member_updated_permission": "#/components/schemas/CallMemberUpdatedPermissionEvent", + "call.notification": "#/components/schemas/CallNotificationEvent", + "call.permission_request": "#/components/schemas/PermissionRequestEvent", + "call.permissions_updated": "#/components/schemas/UpdatedCallPermissionsEvent", + "call.reaction_new": "#/components/schemas/CallReactionEvent", + "call.recording_failed": "#/components/schemas/CallRecordingFailedEvent", + "call.recording_ready": "#/components/schemas/CallRecordingReadyEvent", + "call.recording_started": "#/components/schemas/CallRecordingStartedEvent", + "call.recording_stopped": "#/components/schemas/CallRecordingStoppedEvent", + "call.rejected": "#/components/schemas/CallRejectedEvent", + "call.ring": "#/components/schemas/CallRingEvent", + "call.session_ended": "#/components/schemas/CallSessionEndedEvent", + "call.session_participant_joined": "#/components/schemas/CallSessionParticipantJoinedEvent", + "call.session_participant_left": "#/components/schemas/CallSessionParticipantLeftEvent", + "call.session_started": "#/components/schemas/CallSessionStartedEvent", + "call.transcription_failed": "#/components/schemas/CallTranscriptionFailedEvent", + "call.transcription_ready": "#/components/schemas/CallTranscriptionReadyEvent", + "call.transcription_started": "#/components/schemas/CallTranscriptionStartedEvent", + "call.transcription_stopped": "#/components/schemas/CallTranscriptionStoppedEvent", + "call.unblocked_user": "#/components/schemas/UnblockedUserEvent", + "call.updated": "#/components/schemas/CallUpdatedEvent", + "call.user_muted": "#/components/schemas/CallUserMutedEvent", + "channel.created": "#/components/schemas/ChannelCreatedEvent", + "channel.deleted": "#/components/schemas/ChannelDeletedEvent", + "channel.frozen": "#/components/schemas/ChannelFrozenEvent", + "channel.hidden": "#/components/schemas/ChannelHiddenEvent", + "channel.kicked": "#/components/schemas/ChannelKickedEvent", + "channel.truncated": "#/components/schemas/ChannelTruncatedEvent", + "channel.unfrozen": "#/components/schemas/ChannelUnFrozenEvent", + "channel.updated": "#/components/schemas/ChannelUpdatedEvent", + "channel.visible": "#/components/schemas/ChannelVisibleEvent", + "connection.error": "#/components/schemas/ConnectionErrorEvent", + "connection.ok": "#/components/schemas/ConnectedEvent", + "custom": "#/components/schemas/CustomVideoEvent", + "health.check": "#/components/schemas/HealthCheckEvent", + "member.added": "#/components/schemas/MemberAddedEvent", + "member.removed": "#/components/schemas/MemberRemovedEvent", + "member.updated": "#/components/schemas/MemberUpdatedEvent", + "message.deleted": "#/components/schemas/MessageDeletedEvent", + "message.new": "#/components/schemas/MessageNewEvent", + "message.read": "#/components/schemas/MessageReadEvent", + "message.undeleted": "#/components/schemas/MessageUndeletedEvent", + "message.updated": "#/components/schemas/MessageUpdatedEvent", + "notification.added_to_channel": "#/components/schemas/NotificationAddedToChannelEvent", + "notification.channel_deleted": "#/components/schemas/NotificationChannelDeletedEvent", + "notification.channel_mutes_updated": "#/components/schemas/NotificationChannelMutesUpdatedEvent", + "notification.channel_truncated": "#/components/schemas/NotificationChannelTruncatedEvent", + "notification.invite_accepted": "#/components/schemas/NotificationInviteAcceptedEvent", + "notification.invite_rejected": "#/components/schemas/NotificationInviteRejectedEvent", + "notification.invited": "#/components/schemas/NotificationInvitedEvent", + "notification.mark_read": "#/components/schemas/NotificationMarkReadEvent", + "notification.mark_unread": "#/components/schemas/NotificationMarkUnreadEvent", + "notification.message_new": "#/components/schemas/NotificationNewMessageEvent", + "notification.mutes_updated": "#/components/schemas/NotificationMutesUpdatedEvent", + "notification.removed_from_channel": "#/components/schemas/NotificationRemovedFromChannelEvent", + "notification.thread_message_new": "#/components/schemas/MessageNewEvent", + "poll.closed": "#/components/schemas/PollClosedEvent", + "poll.created": "#/components/schemas/PollCreatedEvent", + "poll.deleted": "#/components/schemas/PollDeletedEvent", + "poll.updated": "#/components/schemas/PollUpdatedEvent", + "poll.vote_casted": "#/components/schemas/PollVoteCastedEvent", + "poll.vote_changed": "#/components/schemas/PollVoteChangedEvent", + "poll.vote_removed": "#/components/schemas/PollVoteRemovedEvent", + "reaction.deleted": "#/components/schemas/ReactionDeletedEvent", + "reaction.new": "#/components/schemas/ReactionNewEvent", + "reaction.updated": "#/components/schemas/ReactionUpdatedEvent", + "thread.updated": "#/components/schemas/ThreadUpdatedEvent", + "typing.start": "#/components/schemas/TypingStartEvent", + "typing.stop": "#/components/schemas/TypingStopEvent", + "user.banned": "#/components/schemas/UserBannedEvent", + "user.deactivated": "#/components/schemas/UserDeactivatedEvent", + "user.deleted": "#/components/schemas/UserDeletedEvent", + "user.muted": "#/components/schemas/UserMutedEvent", + "user.presence.changed": "#/components/schemas/UserPresenceChangedEvent", + "user.reactivated": "#/components/schemas/UserReactivatedEvent", + "user.unbanned": "#/components/schemas/UserUnbannedEvent", + "user.updated": "#/components/schemas/UserUpdatedEvent", + "user.watching.start": "#/components/schemas/UserWatchingStartEvent", + "user.watching.stop": "#/components/schemas/UserWatchingStopEvent" + }, + "propertyName": "type" + }, + "oneOf": [ + { "$ref": "#/components/schemas/AnyEvent" }, + { "$ref": "#/components/schemas/BlockedUserEvent" }, + { "$ref": "#/components/schemas/CallAcceptedEvent" }, + { "$ref": "#/components/schemas/CallCreatedEvent" }, + { "$ref": "#/components/schemas/CallDeletedEvent" }, + { "$ref": "#/components/schemas/CallEndedEvent" }, + { "$ref": "#/components/schemas/CallHLSBroadcastingFailedEvent" }, + { "$ref": "#/components/schemas/CallHLSBroadcastingStartedEvent" }, + { "$ref": "#/components/schemas/CallHLSBroadcastingStoppedEvent" }, + { "$ref": "#/components/schemas/CallLiveStartedEvent" }, + { "$ref": "#/components/schemas/CallMemberAddedEvent" }, + { "$ref": "#/components/schemas/CallMemberRemovedEvent" }, + { "$ref": "#/components/schemas/CallMemberUpdatedEvent" }, + { "$ref": "#/components/schemas/CallMemberUpdatedPermissionEvent" }, + { "$ref": "#/components/schemas/CallNotificationEvent" }, + { "$ref": "#/components/schemas/CallReactionEvent" }, + { "$ref": "#/components/schemas/CallRecordingFailedEvent" }, + { "$ref": "#/components/schemas/CallRecordingReadyEvent" }, + { "$ref": "#/components/schemas/CallRecordingStartedEvent" }, + { "$ref": "#/components/schemas/CallRecordingStoppedEvent" }, + { "$ref": "#/components/schemas/CallRejectedEvent" }, + { "$ref": "#/components/schemas/CallRingEvent" }, + { "$ref": "#/components/schemas/CallSessionEndedEvent" }, + { "$ref": "#/components/schemas/CallSessionParticipantJoinedEvent" }, + { "$ref": "#/components/schemas/CallSessionParticipantLeftEvent" }, + { "$ref": "#/components/schemas/CallSessionStartedEvent" }, + { "$ref": "#/components/schemas/CallTranscriptionFailedEvent" }, + { "$ref": "#/components/schemas/CallTranscriptionReadyEvent" }, + { "$ref": "#/components/schemas/CallTranscriptionStartedEvent" }, + { "$ref": "#/components/schemas/CallTranscriptionStoppedEvent" }, + { "$ref": "#/components/schemas/CallUpdatedEvent" }, + { "$ref": "#/components/schemas/CallUserMutedEvent" }, + { "$ref": "#/components/schemas/ChannelCreatedEvent" }, + { "$ref": "#/components/schemas/ChannelDeletedEvent" }, + { "$ref": "#/components/schemas/ChannelFrozenEvent" }, + { "$ref": "#/components/schemas/ChannelHiddenEvent" }, + { "$ref": "#/components/schemas/ChannelKickedEvent" }, + { "$ref": "#/components/schemas/ChannelTruncatedEvent" }, + { "$ref": "#/components/schemas/ChannelUnFrozenEvent" }, + { "$ref": "#/components/schemas/ChannelUpdatedEvent" }, + { "$ref": "#/components/schemas/ChannelVisibleEvent" }, + { "$ref": "#/components/schemas/ClosedCaptionEvent" }, + { "$ref": "#/components/schemas/ConnectedEvent" }, + { "$ref": "#/components/schemas/ConnectionErrorEvent" }, + { "$ref": "#/components/schemas/CustomVideoEvent" }, + { "$ref": "#/components/schemas/HealthCheckEvent" }, + { "$ref": "#/components/schemas/MemberAddedEvent" }, + { "$ref": "#/components/schemas/MemberRemovedEvent" }, + { "$ref": "#/components/schemas/MemberUpdatedEvent" }, + { "$ref": "#/components/schemas/MessageDeletedEvent" }, + { "$ref": "#/components/schemas/MessageNewEvent" }, + { "$ref": "#/components/schemas/MessageNewEvent" }, + { "$ref": "#/components/schemas/MessageReadEvent" }, + { "$ref": "#/components/schemas/MessageUndeletedEvent" }, + { "$ref": "#/components/schemas/MessageUpdatedEvent" }, + { "$ref": "#/components/schemas/NotificationAddedToChannelEvent" }, + { "$ref": "#/components/schemas/NotificationChannelDeletedEvent" }, + { + "$ref": "#/components/schemas/NotificationChannelMutesUpdatedEvent" + }, + { "$ref": "#/components/schemas/NotificationChannelTruncatedEvent" }, + { "$ref": "#/components/schemas/NotificationInviteAcceptedEvent" }, + { "$ref": "#/components/schemas/NotificationInviteRejectedEvent" }, + { "$ref": "#/components/schemas/NotificationInvitedEvent" }, + { "$ref": "#/components/schemas/NotificationMarkReadEvent" }, + { "$ref": "#/components/schemas/NotificationMarkUnreadEvent" }, + { "$ref": "#/components/schemas/NotificationMutesUpdatedEvent" }, + { "$ref": "#/components/schemas/NotificationNewMessageEvent" }, + { + "$ref": "#/components/schemas/NotificationRemovedFromChannelEvent" + }, + { "$ref": "#/components/schemas/PermissionRequestEvent" }, + { "$ref": "#/components/schemas/PollClosedEvent" }, + { "$ref": "#/components/schemas/PollCreatedEvent" }, + { "$ref": "#/components/schemas/PollDeletedEvent" }, + { "$ref": "#/components/schemas/PollUpdatedEvent" }, + { "$ref": "#/components/schemas/PollVoteCastedEvent" }, + { "$ref": "#/components/schemas/PollVoteChangedEvent" }, + { "$ref": "#/components/schemas/PollVoteRemovedEvent" }, + { "$ref": "#/components/schemas/ReactionDeletedEvent" }, + { "$ref": "#/components/schemas/ReactionNewEvent" }, + { "$ref": "#/components/schemas/ReactionUpdatedEvent" }, + { "$ref": "#/components/schemas/ThreadUpdatedEvent" }, + { "$ref": "#/components/schemas/TypingStartEvent" }, + { "$ref": "#/components/schemas/TypingStopEvent" }, + { "$ref": "#/components/schemas/UnblockedUserEvent" }, + { "$ref": "#/components/schemas/UpdatedCallPermissionsEvent" }, + { "$ref": "#/components/schemas/UserBannedEvent" }, + { "$ref": "#/components/schemas/UserDeactivatedEvent" }, + { "$ref": "#/components/schemas/UserDeletedEvent" }, + { "$ref": "#/components/schemas/UserMutedEvent" }, + { "$ref": "#/components/schemas/UserPresenceChangedEvent" }, + { "$ref": "#/components/schemas/UserReactivatedEvent" }, + { "$ref": "#/components/schemas/UserUnbannedEvent" }, + { "$ref": "#/components/schemas/UserUpdatedEvent" }, + { "$ref": "#/components/schemas/UserWatchingStartEvent" }, + { "$ref": "#/components/schemas/UserWatchingStopEvent" } + ] + }, + "WrappedUnreadCountsResponse": { + "nullable": true, + "properties": { + "channel_type": { + "items": { "$ref": "#/components/schemas/UnreadCountsChannelType" }, + "type": "array", + "x-stream-index": "001.004" + }, + "channels": { + "items": { "$ref": "#/components/schemas/UnreadCountsChannel" }, + "type": "array", + "x-stream-index": "001.003" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "threads": { + "items": { "$ref": "#/components/schemas/UnreadCountsThread" }, + "type": "array", + "x-stream-index": "001.005" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.001" + }, + "total_unread_threads_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.002" + } + }, + "required": [ + "total_unread_count", + "total_unread_threads_count", + "channels", + "channel_type", + "threads", + "duration" + ], + "type": "object" + } + }, + "securitySchemes": { + "JWT": { + "description": "JWT should be always provided when stream-auth-type=jwt.\n\nUsing JWT auth request could be authenticated as user or as server-side.\n\nWhen using user authentication permission checking is going to be applied to requests based on the user that is\nperforming a request.\n\nThe `authorization` header should be a JWT string signed using the secret attached to the API key used to perform\nrequests.\n\n**WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not\nshared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side.\nIf you wish, you can configure your application to ignore authentication (see `disable_auth_check`)\nThe JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well.\n", + "in": "header", + "name": "Authorization", + "type": "apiKey" + }, + "api_key": { + "description": "Application API key should be always set in order to authenticate the request.", + "in": "query", + "name": "api_key", + "type": "apiKey" + }, + "stream-auth-type": { + "description": "Stream-Auth-Type should be always set in order to authenticate the request. Possible\nvalues: `jwt` or `anonymous`.\n\n`jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization\nheader.\n\n`anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available\nto anonymous users.", + "in": "header", + "name": "Stream-Auth-Type", + "type": "apiKey" + } + } + }, + "info": { "title": "Stream API", "version": "v112.7.0" }, + "openapi": "3.0.3", + "paths": { + "/api/v2/app": { + "get": { + "description": "This Method returns the application settings\n", + "operationId": "GetApp", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetApplicationResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get App Settings", + "tags": ["product:common"] + } + }, + "/api/v2/chat/channels": { + "post": { + "description": "Query channels with filter query\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryChannels", + "parameters": [ + { + "in": "query", + "name": "connection_id", + "schema": { + "description": "Websocket connection ID to interact with. You can pass it as Body or URL parameter", + "title": "Connection ID", + "type": "string", + "x-stream-index": "011.003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryChannelsRequest" } + } + }, + "description": "Query Channels Request", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryChannelsResponse" + } + } + }, + "description": "Channels list" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query channels", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/delete": { + "post": { + "description": "Allows to delete several channels at once asynchronously\n\nSends events:\n- channel.deleted\n\nRequired permissions:\n- DeleteChannel\n", + "operationId": "DeleteChannels", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/DeleteChannelsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteChannelsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Deletes channels asynchronously", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/read": { + "post": { + "description": "Marks channels as read up to the specific message. If no channels is given, mark all channel as read\n\nSends events:\n- message.read\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "MarkChannelsRead", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MarkChannelsReadRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkReadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mark channels as read", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/query": { + "post": { + "description": "This Method creates a channel or returns an existing one with matching attributes\n\nSends events:\n- channel.created\n- member.added\n- member.removed\n- member.updated\n- user.watching.start\n", + "operationId": "GetOrCreateDistinctChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "description": "Websocket connection ID to interact with. You can pass it as Body or URL parameter", + "title": "Connection ID", + "type": "string", + "x-stream-index": "001.003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelGetOrCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelStateResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get or create channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}": { + "delete": { + "description": "Deletes channel\n\nSends events:\n- channel.deleted\n\nRequired permissions:\n- DeleteChannel\n", + "operationId": "DeleteChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + }, + { + "in": "query", + "name": "hard_delete", + "schema": { "type": "boolean", "x-stream-index": "002" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteChannelResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete channel", + "tags": ["product:chat"] + }, + "patch": { + "description": "Updates certain fields of the channel\n\nSends events:\n- channel.updated\n\nRequired permissions:\n- UpdateChannel\n- UpdateChannelCooldown\n- UpdateChannelFrozen\n", + "operationId": "UpdateChannelPartial", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelPartialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelPartialResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Partially update channel", + "tags": ["product:chat"] + }, + "post": { + "description": "Change channel data\n\nSends events:\n- channel.updated\n- member.added\n- member.removed\n- member.updated\n- message.new\n\nRequired permissions:\n- AddOwnChannelMembership\n- RemoveOwnChannelMembership\n- UpdateChannel\n- UpdateChannelCooldown\n- UpdateChannelFrozen\n- UpdateChannelMembers\n", + "operationId": "UpdateChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "013.002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "013.002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateChannelRequest" } + } + }, + "description": "Channel update request", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/event": { + "post": { + "description": "Sends event to the channel\n\nRequired permissions:\n- SendCustomEvent\n", + "operationId": "SendEvent", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendEventRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/EventResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send event", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/file": { + "delete": { + "description": "Deletes previously uploaded file\n\nRequired permissions:\n- DeleteAttachment\n", + "operationId": "DeleteFile", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of file", + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "File ID", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "url", + "schema": { + "description": "File URL to delete", + "title": "URL", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FileDeleteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete file", + "tags": ["product:chat"] + }, + "post": { + "description": "Uploads file\n\nRequired permissions:\n- UploadAttachment\n", + "operationId": "UploadFile", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { "$ref": "#/components/schemas/FileUploadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FileUploadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Upload file", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/hide": { + "post": { + "description": "Marks channel as hidden for current user\n\nSends events:\n- channel.hidden\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "HideChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HideChannelRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HideChannelResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Hide channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/image": { + "delete": { + "description": "Deletes previously uploaded image\n\nRequired permissions:\n- DeleteAttachment\n", + "operationId": "DeleteImage", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of file", + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "File ID", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "url", + "schema": { + "description": "File URL to delete", + "title": "URL", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FileDeleteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete image", + "tags": ["product:chat"] + }, + "post": { + "description": "Uploads image\n\nRequired permissions:\n- UploadAttachment\n", + "operationId": "UploadImage", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001.002" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { "$ref": "#/components/schemas/ImageUploadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ImageUploadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Upload image", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/message": { + "post": { + "description": "Sends new message to the specified channel\n\nSends events:\n- message.new\n- message.updated\n\nRequired permissions:\n- AddLinks\n- CreateMessage\n- PinMessage\n- SkipChannelCooldown\n- SkipMessageModeration\n- UseFrozenChannel\n", + "operationId": "SendMessage", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "009.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "009.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendMessageRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendMessageResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send new message", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/messages": { + "get": { + "description": "Returns list messages found by IDs\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetManyMessages", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "ids", + "required": true, + "schema": { + "description": "List of comma-separated IDs", + "items": { "type": "string" }, + "maximum": 50, + "minimum": 1, + "title": "IDs", + "type": "array", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetManyMessagesResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get many messages", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/query": { + "post": { + "description": "This Method creates a channel or returns an existing one with matching attributes\n\nSends events:\n- channel.created\n- member.added\n- member.removed\n- member.updated\n- user.watching.start\n", + "operationId": "GetOrCreateChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID (maximum length of 64 characters)", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "description": "Websocket connection ID to interact with. You can pass it as Body or URL parameter", + "title": "Connection ID", + "type": "string", + "x-stream-index": "001.003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelGetOrCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelStateResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get or create channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/read": { + "post": { + "description": "Marks channel as read up to the specific message\n\nSends events:\n- message.read\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "MarkRead", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkReadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkReadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mark read", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/show": { + "post": { + "description": "Shows previously hidden channel\n\nSends events:\n- channel.visible\n", + "operationId": "ShowChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ShowChannelRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ShowChannelResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Show channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/stop-watching": { + "post": { + "description": "Call this Method to stop receiving channel events\n\nSends events:\n- user.watching.stop\n", + "operationId": "StopWatchingChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { "type": "string", "x-stream-index": "001.003" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelStopWatchingRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopWatchingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Stop watching channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/truncate": { + "post": { + "description": "Truncates channel\n\nSends events:\n- channel.truncated\n\nRequired permissions:\n- DeleteChannel\n- TruncateChannel\n", + "operationId": "TruncateChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TruncateChannelRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TruncateChannelResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Truncate channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/unread": { + "post": { + "description": "Marks channel as unread from a specific message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "MarkUnread", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkUnreadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mark unread", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/members": { + "get": { + "description": "Find and filter channel members\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryMembers", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMembersRequest", + "x-stream-index": "001" + } + } + }, + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MembersResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query members", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}": { + "delete": { + "description": "Deletes message\n\nSends events:\n- message.deleted\n\nRequired permissions:\n- DeleteMessage\n", + "operationId": "DeleteMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID to delete", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "hard", + "schema": { + "description": "Delete all message reactions and replies as well", + "title": "Hard", + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "deleted_by", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteMessageResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete message", + "tags": ["product:chat"] + }, + "get": { + "description": "Returns message by ID\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetMessageResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get message", + "tags": ["product:chat"] + }, + "post": { + "description": "Updates message with new data\n\nSends events:\n- message.updated\n\nRequired permissions:\n- AddLinks\n- PinMessage\n- SkipMessageModeration\n- UpdateMessage\n", + "operationId": "UpdateMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003.001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateMessageRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessageResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update message", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates certain fields of the message\n\nSends events:\n- message.updated\n\nRequired permissions:\n- AddLinks\n- PinMessage\n- SkipMessageModeration\n- UpdateMessage\n", + "operationId": "UpdateMessagePartial", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003.001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessagePartialRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessagePartialResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Partially message update", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/action": { + "post": { + "description": "Executes message command action with given parameters\n\nSends events:\n- message.new\n\nRequired permissions:\n- RunMessageAction\n", + "operationId": "RunMessageAction", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MessageActionRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MessageResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Run message command action", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/reaction": { + "post": { + "description": "Sends reaction to specified message\n\nSends events:\n- reaction.new\n- reaction.updated\n\nRequired permissions:\n- CreateReaction\n- UseFrozenChannel\n", + "operationId": "SendReaction", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID to send reaction for", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendReactionRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendReactionResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send reaction", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/reaction/{type}": { + "delete": { + "description": "Removes user reaction from the message\n\nSends events:\n- reaction.deleted\n\nRequired permissions:\n- DeleteReaction\n", + "operationId": "DeleteReaction", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID to remove reaction from", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Reaction type to remove", + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReactionRemovalResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete reaction", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/reactions": { + "get": { + "description": "Returns list of reactions of specific message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetReactions", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "description": "Number of records to return", + "format": "int32", + "title": "Limit", + "type": "integer", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "offset", + "schema": { + "description": "Number of records to offset", + "format": "int32", + "title": "Offset", + "type": "integer", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetReactionsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get reactions", + "tags": ["product:chat"] + }, + "post": { + "description": "Get reactions on a message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryReactions", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryReactionsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryReactionsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/translate": { + "post": { + "description": "Translates message to a given language using automated translation software\n\nSends events:\n- message.updated\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "TranslateMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TranslateMessageRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MessageResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Translate message", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{message_id}/polls/{poll_id}/vote": { + "post": { + "description": "Cast a vote on a poll\n\nSends events:\n- poll.vote_casted\n\nRequired permissions:\n- CastVote\n", + "operationId": "CastPollVote", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CastPollVoteRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollVoteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Cast vote", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{message_id}/polls/{poll_id}/vote/{vote_id}": { + "delete": { + "description": "Delete a vote from a poll\n\nSends events:\n- poll.vote_removed\n\nRequired permissions:\n- CastVote\n", + "operationId": "RemovePollVote", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "003" + } + }, + { + "in": "path", + "name": "vote_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "004" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollVoteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete vote", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{parent_id}/replies": { + "get": { + "description": "Returns replies (thread) of the message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetReplies", + "parameters": [ + { + "in": "path", + "name": "parent_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "sort", + "schema": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, + "type": "array", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "id_gte", + "schema": { "type": "string", "x-stream-index": "003.003" } + }, + { + "in": "query", + "name": "id_gt", + "schema": { "type": "string", "x-stream-index": "003.004" } + }, + { + "in": "query", + "name": "id_lte", + "schema": { "type": "string", "x-stream-index": "003.005" } + }, + { + "in": "query", + "name": "id_lt", + "schema": { "type": "string", "x-stream-index": "003.006" } + }, + { + "in": "query", + "name": "created_at_after_or_equal", + "schema": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.007" + } + }, + { + "in": "query", + "name": "created_at_after", + "schema": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.008" + } + }, + { + "in": "query", + "name": "created_at_before_or_equal", + "schema": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.009" + } + }, + { + "in": "query", + "name": "created_at_before", + "schema": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.010" + } + }, + { + "in": "query", + "name": "id_around", + "schema": { "type": "string", "x-stream-index": "003.011" } + }, + { + "in": "query", + "name": "created_at_around", + "schema": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.012" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetRepliesResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get replies", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/moderation/flags/message": { + "get": { + "description": "Find and filter message flags\n\nRequired permissions:\n- ReadMessageFlags\n", + "operationId": "QueryMessageFlags", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMessageFlagsRequest", + "x-stream-index": "001" + } + } + }, + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMessageFlagsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query Message Flags", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/moderation/mute/channel": { + "post": { + "description": "Mutes channel for user\n\nSends events:\n- channel.muted\n\nRequired permissions:\n- MuteChannel\n", + "operationId": "MuteChannel", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteChannelRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteChannelResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mute channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/moderation/unmute/channel": { + "post": { + "description": "Unmutes channel for user\n\nSends events:\n- channel.unmuted\n\nRequired permissions:\n- MuteChannel\n", + "operationId": "UnmuteChannel", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteChannelRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Unmute channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls": { + "post": { + "description": "Creates a new poll\n\nSends events:\n- poll.created\n\nRequired permissions:\n- CreatePoll\n", + "operationId": "CreatePoll", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreatePollRequest" } + } + }, + "description": "Create Poll Request", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create poll", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates a poll\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "UpdatePoll", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdatePollRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update poll", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/query": { + "post": { + "description": "Queries polls\n", + "operationId": "QueryPolls", + "parameters": [ + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryPollsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryPollsResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query polls", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}": { + "delete": { + "description": "Deletes a poll\n\nSends events:\n- poll.deleted\n\nRequired permissions:\n- DeletePoll\n", + "operationId": "DeletePoll", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete poll", + "tags": ["product:chat"] + }, + "get": { + "description": "Retrieves a poll\n", + "operationId": "GetPoll", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get poll", + "tags": ["product:chat"] + }, + "patch": { + "description": "Updates a poll partially\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "UpdatePollPartial", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePollPartialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Partial update poll", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}/options": { + "post": { + "description": "Creates a poll option\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- CastVote\n- UpdatePoll\n", + "operationId": "CreatePollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePollOptionRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollOptionResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create poll option", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates a poll option\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "UpdatePollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePollOptionRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollOptionResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update poll option", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}/options/{option_id}": { + "delete": { + "description": "Deletes a poll option\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "DeletePollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "002" + } + }, + { + "in": "path", + "name": "option_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete poll option", + "tags": ["product:chat"] + }, + "get": { + "description": "Retrieves a poll option\n", + "operationId": "GetPollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "002" + } + }, + { + "in": "path", + "name": "option_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollOptionResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get poll option", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}/votes": { + "post": { + "description": "Queries votes\n", + "operationId": "QueryPollVotes", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, + "type": "string", + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryPollVotesRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollVotesResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query votes", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/query_banned_users": { + "get": { + "description": "Find and filter channel scoped or global user bans\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryBannedUsers", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryBannedUsersRequest", + "x-stream-index": "001" + } + } + }, + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryBannedUsersResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query Banned Users", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/search": { + "get": { + "description": "Search messages across channels\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "Search", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchRequest", + "description": "JSON object with search payload", + "title": "Payload", + "x-stream-index": "001" + } + } + }, + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SearchResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Search messages", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/sync": { + "post": { + "description": "Returns all events happened since client disconnect in specified channels\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "Sync", + "parameters": [ + { + "in": "query", + "name": "with_inaccessible_cids", + "schema": { + "description": "If set to true this will add 'inaccessible_cids' to response type", + "title": "With inaccessible CIDs", + "type": "boolean", + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "watch", + "schema": { + "description": "If set to true this will start watching requested and newly added channels that user has access to. If error occurred with this option enabled and it is not an input error - channels will still be watched.", + "title": "Watch synced channels", + "type": "boolean", + "x-stream-index": "004" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { "type": "string", "x-stream-index": "006.003" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SyncRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SyncResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Sync", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/threads": { + "post": { + "description": "Returns the list of threads for specific user\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryThreads", + "parameters": [ + { + "in": "query", + "name": "connection_id", + "schema": { "type": "string", "x-stream-index": "002" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryThreadsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryThreadsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query Threads", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/threads/{message_id}": { + "get": { + "description": "Return a specific thread\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetThread", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "watch", + "schema": { + "description": "Start watching the channel this thread belongs to", + "title": "Watch", + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "reply_limit", + "schema": { + "description": "Limit the number of replies returned", + "format": "int32", + "minimum": 0, + "title": "Reply limit", + "type": "integer", + "writeOnly": true, + "x-stream-index": "004" + } + }, + { + "in": "query", + "name": "participant_limit", + "schema": { + "description": "Limit the number of participants returned", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Participant limit", + "type": "integer", + "writeOnly": true, + "x-stream-index": "005" + } + }, + { + "in": "query", + "name": "member_limit", + "schema": { + "description": "Limit the number of members returned per thread channel", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Member limit", + "type": "integer", + "writeOnly": true, + "x-stream-index": "006" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetThreadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get Thread", + "tags": ["product:chat"] + }, + "patch": { + "description": "Updates certain fields of the thread\n\nSends events:\n- thread.updated\n\nRequired permissions:\n- ReadChannel\n- UpdateThread\n", + "operationId": "UpdateThreadPartial", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateThreadPartialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateThreadPartialResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Partially update thread", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/unread": { + "get": { + "description": "Fetch unread counts for a single user\n", + "operationId": "UnreadCounts", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WrappedUnreadCountsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Unread counts", + "tags": ["product:chat"] + } + }, + "/api/v2/devices": { + "delete": { + "description": "Deletes one device\n", + "operationId": "DeleteDevice", + "parameters": [ + { + "in": "query", + "name": "id", + "required": true, + "schema": { + "description": "Device ID to delete", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete device", + "tags": ["product:common"] + }, + "get": { + "description": "Returns all available devices\n", + "operationId": "ListDevices", + "parameters": [ + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ListDevicesResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List devices", + "tags": ["product:common"] + }, + "post": { + "description": "Adds a new device to a user, if the same device already exists the call will have no effect\n", + "operationId": "CreateDevice", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateDeviceRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create device", + "tags": ["product:common"] + } + }, + "/api/v2/guest": { + "post": { + "description": "\n", + "operationId": "CreateGuest", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateGuestRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateGuestResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create Guest", + "tags": ["product:common"] + } + }, + "/api/v2/longpoll": { + "get": { + "description": "WebSocket fallback transport endpoint\n\nSends events:\n- user.updated\n", + "operationId": "LongPoll", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WSAuthMessage", + "x-stream-index": "001" + } + } + }, + "in": "query", + "name": "json" + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "maxLength": 36, + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "responses": { + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Long Poll (Transport)", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/ban": { + "delete": { + "description": "Removes previously applied ban\n\nSends events:\n- user.unbanned\n\nRequired permissions:\n- BanChannelMember\n- BanUser\n", + "operationId": "Unban", + "parameters": [ + { + "in": "query", + "name": "target_user_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "channel_cid", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "created_by", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "005" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Unban user", + "tags": ["product:common"] + }, + "post": { + "description": "Restricts user activity either in specific channel or globally\n\nSends events:\n- user.banned\n\nRequired permissions:\n- BanChannelMember\n- BanUser\n", + "operationId": "Ban", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/BanRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Ban user", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/flag": { + "post": { + "description": "Reports message or user for review by moderators\n\nSends events:\n- message.flagged\n- user.flagged\n\nRequired permissions:\n- FlagMessage\n- FlagUser\n", + "operationId": "Flag", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FlagRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FlagResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Flag", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/mute": { + "post": { + "description": "Mutes one or several users\n\nSends events:\n- user.muted\n\nRequired permissions:\n- MuteUser\n", + "operationId": "MuteUser", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUserRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUserResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mute user", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/unmute": { + "post": { + "description": "Unmutes previously muted user\n\nSends events:\n- user.unmuted\n\nRequired permissions:\n- MuteUser\n", + "operationId": "UnmuteUser", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteUserRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Unmute user", + "tags": ["product:common"] + } + }, + "/api/v2/og": { + "get": { + "description": "Get an OpenGraph attachment for a link\n", + "operationId": "GetOG", + "parameters": [ + { + "in": "query", + "name": "url", + "required": true, + "schema": { + "description": "URL to be scraped", + "title": "URL", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetOGResponse" } + } + }, + "description": "Get OG Attachment" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get OG", + "tags": ["product:common"] + } + }, + "/api/v2/users": { + "get": { + "description": "Find and filter users\n\nRequired permissions:\n- SearchUser\n", + "operationId": "QueryUsers", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryUsersPayload", + "x-stream-index": "001" + } + } + }, + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryUsersResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query users", + "tags": ["product:common"] + }, + "patch": { + "description": "Updates certain fields of the user\n\nSends events:\n- user.presence.changed\n- user.updated\n", + "operationId": "UpdateUsersPartial", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUsersPartialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateUsersResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Partially update user", + "tags": ["product:common"] + }, + "post": { + "description": "Update or create users in bulk\n\nSends events:\n- user.updated\n", + "operationId": "UpdateUsers", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateUsersRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateUsersResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Upsert users", + "tags": ["product:common"] + } + }, + "/api/v2/video/call/members": { + "post": { + "description": "Query call members with filter query\n\nRequired permissions:\n- ReadCall\n", + "operationId": "QueryCallMembers", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallMembersRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallMembersResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query call members", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/stats": { + "post": { + "description": "\n\nRequired permissions:\n- ReadCallStats\n", + "operationId": "QueryCallStats", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryCallStatsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallStatsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query Call Stats", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}": { + "get": { + "description": "\n\nRequired permissions:\n- ReadCall\n", + "operationId": "GetCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "members_limit", + "schema": { + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer", + "writeOnly": true, + "x-stream-index": "004" + } + }, + { + "in": "query", + "name": "ring", + "schema": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "005" + } + }, + { + "in": "query", + "name": "notify", + "schema": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "006" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetCallResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get Call", + "tags": ["product:video"] + }, + "patch": { + "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "UpdateCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateCallRequest" } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateCallResponse" } + } + }, + "description": "Call" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update Call", + "tags": ["product:video"] + }, + "post": { + "description": "Gets or creates a new call\n\nSends events:\n- call.created\n- call.notification\n- call.ring\n\nRequired permissions:\n- CreateCall\n- ReadCall\n- UpdateCallSettings\n", + "operationId": "GetOrCreateCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "007" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrCreateCallRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrCreateCallResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get or create a call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/accept": { + "post": { + "description": "\n\nSends events:\n- call.accepted\n\nRequired permissions:\n- JoinCall\n", + "operationId": "AcceptCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/AcceptCallResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Accept Call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/block": { + "post": { + "description": "Block a user, preventing them from joining the call until they are unblocked.\n\nSends events:\n- call.blocked_user\n\nRequired permissions:\n- BlockUser\n", + "operationId": "BlockUser", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/BlockUserRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/BlockUserResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Block user on a call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/event": { + "post": { + "description": "Sends custom event to the call\n\nSends events:\n- custom\n\nRequired permissions:\n- SendEvent\n", + "operationId": "SendCallEvent", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendEventRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendEventResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send custom event", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/feedback/{session}": { + "post": { + "description": "\n\nRequired permissions:\n- JoinCall\n", + "operationId": "CollectUserFeedback", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + }, + { + "in": "path", + "name": "session", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectUserFeedbackRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectUserFeedbackResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Collect user feedback", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/go_live": { + "post": { + "description": "\n\nSends events:\n- call.live_started\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "GoLive", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GoLiveRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GoLiveResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Set call as live", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/join": { + "post": { + "description": "Request to join a call\n\nRequired permissions:\n- CreateCall\n- JoinCall\n", + "operationId": "JoinCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + }, + { + "in": "query", + "name": "connection_id", + "schema": { + "title": "ConnectionID", + "type": "string", + "writeOnly": true, + "x-stream-index": "007" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/JoinCallRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/JoinCallResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Join call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/mark_ended": { + "post": { + "description": "\n\nSends events:\n- call.ended\n\nRequired permissions:\n- EndCall\n", + "operationId": "EndCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/EndCallResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "End call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/members": { + "post": { + "description": "\n\nSends events:\n- call.member_added\n- call.member_removed\n- call.member_updated\n\nRequired permissions:\n- RemoveCallMember\n- UpdateCallMember\n- UpdateCallMemberRole\n", + "operationId": "UpdateCallMembers", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallMembersRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallMembersResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update Call Member", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/mute_users": { + "post": { + "description": "Mutes users in a call\n\nRequired permissions:\n- MuteUsers\n", + "operationId": "MuteUsers", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUsersRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUsersResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mute users", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/pin": { + "post": { + "description": "Pins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", + "operationId": "VideoPin", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PinRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PinResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Pin", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/reaction": { + "post": { + "description": "Sends reaction to the call\n\nSends events:\n- call.reaction_new\n\nRequired permissions:\n- CreateCallReaction\n", + "operationId": "SendVideoReaction", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendReactionRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendReactionResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send reaction to the call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/recordings": { + "get": { + "description": "Lists recordings\n\nRequired permissions:\n- ListRecordings\n", + "operationId": "ListRecordings", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListRecordingsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List recordings", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/reject": { + "post": { + "description": "\n\nSends events:\n- call.rejected\n\nRequired permissions:\n- JoinCall\n", + "operationId": "RejectCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/RejectCallResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Reject Call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/request_permission": { + "post": { + "description": "Request permission to perform an action\n\nSends events:\n- call.permission_request\n", + "operationId": "RequestPermission", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestPermissionRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequestPermissionResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Request permission", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/start_broadcasting": { + "post": { + "description": "Starts HLS broadcasting\n\nRequired permissions:\n- StartBroadcasting\n", + "operationId": "StartHLSBroadcasting", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartHLSBroadcastingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Start HLS broadcasting", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/start_recording": { + "post": { + "description": "Starts recording\n\nSends events:\n- call.recording_started\n\nRequired permissions:\n- StartRecording\n", + "operationId": "StartRecording", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/StartRecordingRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartRecordingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Start recording", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/start_transcription": { + "post": { + "description": "Starts transcription\n\nRequired permissions:\n- StartTranscription\n", + "operationId": "StartTranscription", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartTranscriptionRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StartTranscriptionResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Start transcription", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stats/{session}": { + "get": { + "description": "\n\nRequired permissions:\n- ReadCallStats\n", + "operationId": "GetCallStats", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + }, + { + "in": "path", + "name": "session", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCallStatsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get Call Stats", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_broadcasting": { + "post": { + "description": "Stops HLS broadcasting\n\nRequired permissions:\n- StopBroadcasting\n", + "operationId": "StopHLSBroadcasting", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopHLSBroadcastingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Stop HLS broadcasting", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_live": { + "post": { + "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "StopLive", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/StopLiveResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Set call as not live", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_recording": { + "post": { + "description": "Stops recording\n\nSends events:\n- call.recording_stopped\n\nRequired permissions:\n- StopRecording\n", + "operationId": "StopRecording", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopRecordingResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Stop recording", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_transcription": { + "post": { + "description": "Stops transcription\n\nSends events:\n- call.transcription_stopped\n\nRequired permissions:\n- StopTranscription\n", + "operationId": "StopTranscription", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StopTranscriptionResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Stop transcription", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/transcriptions": { + "get": { + "description": "Lists transcriptions\n\nRequired permissions:\n- ListTranscriptions\n", + "operationId": "ListTranscriptions", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListTranscriptionsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List transcriptions", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/unblock": { + "post": { + "description": "Removes the block for a user on a call. The user will be able to join the call again.\n\nSends events:\n- call.unblocked_user\n\nRequired permissions:\n- BlockUser\n", + "operationId": "UnblockUser", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnblockUserRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnblockUserResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Unblocks user on a call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/unpin": { + "post": { + "description": "Unpins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", + "operationId": "VideoUnpin", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnpinRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnpinResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Unpin", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/user_permissions": { + "post": { + "description": "Updates user permissions\n\nSends events:\n- call.permissions_updated\n\nRequired permissions:\n- UpdateCallPermissions\n", + "operationId": "UpdateUserPermissions", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "005.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "005.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPermissionsRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPermissionsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update user permissions", + "tags": ["product:video"] + } + }, + "/api/v2/video/calls": { + "post": { + "description": "Query calls with filter query\n\nRequired permissions:\n- ReadCall\n", + "operationId": "QueryCalls", + "parameters": [ + { + "in": "query", + "name": "connection_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryCallsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryCallsResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query call", + "tags": ["product:video"] + } + }, + "/api/v2/video/edges": { + "get": { + "description": "Returns the list of all edges available for video calls.\n", + "operationId": "GetEdges", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetEdgesResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get Edges", + "tags": ["product:video"] + } + } + }, + "security": [ + { "JWT": [], "api_key": [], "stream-auth-type": [] }, + { "api_key": [], "stream-auth-type": [] } + ], + "servers": [ + { "description": "Stream API", "url": "https://stream-io-api.com" } + ] +} diff --git a/docusaurus/video/docusaurus/docs/api/video-openapi.json b/docusaurus/video/docusaurus/docs/api/video-openapi.json index 46978df0..3e6229a7 100644 --- a/docusaurus/video/docusaurus/docs/api/video-openapi.json +++ b/docusaurus/video/docusaurus/docs/api/video-openapi.json @@ -1,7818 +1,21358 @@ { - "components": { - "schemas": { - "APIError": { - "nullable": true, - "properties": { - "StatusCode": { - "description": "Response HTTP status code", - "format": "int32", - "title": "Status code", - "type": "integer", - "x-stream-index": "004" + "components": { + "schemas": { + "APIError": { + "nullable": true, + "properties": { + "StatusCode": { + "description": "Response HTTP status code", + "format": "int32", + "title": "Status code", + "type": "integer", + "x-stream-index": "004" + }, + "code": { + "description": "API error code", + "format": "int32", + "title": "Code", + "type": "integer", + "x-stream-index": "001" + }, + "details": { + "description": "Additional error-specific information", + "items": { "type": "integer" }, + "title": "Details", + "type": "array", + "x-stream-index": "007" + }, + "duration": { + "description": "Request duration", + "title": "Duration", + "type": "string", + "x-stream-index": "005" + }, + "exception_fields": { + "additionalProperties": { "type": "string" }, + "description": "Additional error info", + "title": "Exception fields", + "type": "object", + "x-stream-index": "003" + }, + "message": { + "description": "Message describing an error", + "title": "Message", + "type": "string", + "x-stream-index": "002" + }, + "more_info": { + "description": "URL with additional information", + "title": "More info", + "type": "string", + "x-stream-index": "006" + } + }, + "required": [ + "code", + "message", + "StatusCode", + "duration", + "more_info", + "details" + ], + "title": "Error response", + "type": "object" + }, + "APNConfig": { + "properties": { + "Disabled": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "005" + }, + "auth_key": { "type": "string", "x-stream-index": "006.001" }, + "auth_type": { + "enum": ["certificate", "token"], + "type": "string", + "x-stream-index": "001" + }, + "bundle_id": { "type": "string", "x-stream-index": "004" }, + "development": { "type": "boolean", "x-stream-index": "002" }, + "host": { "type": "string", "x-stream-index": "003" }, + "key_id": { "type": "string", "x-stream-index": "006.002" }, + "notification_template": { + "type": "string", + "x-stream-index": "008" + }, + "p12_cert": { "type": "string", "x-stream-index": "007.001" }, + "team_id": { "type": "string", "x-stream-index": "006.003" } + }, + "type": "object" + }, + "APNConfigFields": { + "properties": { + "auth_key": { "type": "string", "x-stream-index": "009" }, + "auth_type": { "type": "string", "x-stream-index": "003" }, + "bundle_id": { "type": "string", "x-stream-index": "006" }, + "development": { "type": "boolean", "x-stream-index": "002" }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "host": { "type": "string", "x-stream-index": "005" }, + "key_id": { "type": "string", "x-stream-index": "008" }, + "notification_template": { + "type": "string", + "x-stream-index": "004" + }, + "p12_cert": { "type": "string", "x-stream-index": "010" }, + "team_id": { "type": "string", "x-stream-index": "007" } + }, + "required": ["enabled", "development", "notification_template"], + "type": "object" + }, + "APNS": { + "properties": { + "body": { "type": "string", "x-stream-index": "002" }, + "title": { "type": "string", "x-stream-index": "001" } + }, + "required": ["title", "body"], + "type": "object" + }, + "Action": { + "nullable": true, + "properties": { + "name": { "type": "string", "x-stream-index": "001" }, + "style": { "type": "string", "x-stream-index": "003" }, + "text": { "type": "string", "x-stream-index": "002" }, + "type": { "type": "string", "x-stream-index": "004" }, + "value": { "type": "string", "x-stream-index": "005" } + }, + "required": ["name", "text", "type"], + "type": "object" + }, + "AppResponseFields": { + "properties": { + "agora_options": { + "$ref": "#/components/schemas/Config", + "x-stream-index": "039" + }, + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "018" + }, + "async_url_enrich_enabled": { + "type": "boolean", + "x-stream-index": "016" + }, + "auto_translation_enabled": { + "type": "boolean", + "x-stream-index": "019" + }, + "before_message_send_hook_url": { + "type": "string", + "x-stream-index": "020" + }, + "call_types": { + "additionalProperties": { "$ref": "#/components/schemas/CallType" }, + "type": "object", + "x-stream-index": "006" + }, + "campaign_enabled": { "type": "boolean", "x-stream-index": "033" }, + "cdn_expiration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "037" + }, + "channel_configs": { + "additionalProperties": { + "$ref": "#/components/schemas/ChannelConfig" + }, + "type": "object", + "x-stream-index": "005" + }, + "custom_action_handler_url": { + "type": "string", + "x-stream-index": "021" + }, + "datadog_info": { + "$ref": "#/components/schemas/DataDogInfo", + "x-stream-index": "042" + }, + "disable_auth_checks": { "type": "boolean", "x-stream-index": "010" }, + "disable_permissions_checks": { + "type": "boolean", + "x-stream-index": "011" + }, + "enforce_unique_usernames": { + "type": "string", + "x-stream-index": "022" + }, + "file_upload_config": { + "$ref": "#/components/schemas/FileUploadConfig", + "x-stream-index": "029" + }, + "geofences": { + "items": { "$ref": "#/components/schemas/GeofenceResponse" }, + "type": "array", + "x-stream-index": "041" + }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "032" + }, + "hms_options": { + "$ref": "#/components/schemas/Config", + "x-stream-index": "040" + }, + "image_moderation_enabled": { + "type": "boolean", + "x-stream-index": "015" + }, + "image_moderation_labels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "017" + }, + "image_upload_config": { + "$ref": "#/components/schemas/FileUploadConfig", + "x-stream-index": "030" + }, + "multi_tenant_enabled": { + "type": "boolean", + "x-stream-index": "014" + }, + "name": { "type": "string", "x-stream-index": "001" }, + "organization": { "type": "string", "x-stream-index": "002" }, + "permission_version": { "type": "string", "x-stream-index": "012" }, + "policies": { + "additionalProperties": { + "items": { "$ref": "#/components/schemas/Policy" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "007" + }, + "polls_enabled": { "type": "boolean", "x-stream-index": "034" }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationFields", + "x-stream-index": "003" + }, + "reminders_interval": { + "format": "int32", + "type": "integer", + "x-stream-index": "036" + }, + "revoke_tokens_issued_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "031" + }, + "sns_key": { "type": "string", "x-stream-index": "027" }, + "sns_secret": { "type": "string", "x-stream-index": "028" }, + "sns_topic_arn": { "type": "string", "x-stream-index": "026" }, + "sqs_key": { "type": "string", "x-stream-index": "024" }, + "sqs_secret": { "type": "string", "x-stream-index": "025" }, + "sqs_url": { "type": "string", "x-stream-index": "023" }, + "suspended": { "type": "boolean", "x-stream-index": "008" }, + "suspended_explanation": { + "type": "string", + "x-stream-index": "009" + }, + "user_search_disallowed_roles": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "013" + }, + "video_provider": { "type": "string", "x-stream-index": "038" }, + "webhook_events": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "035" + }, + "webhook_url": { "type": "string", "x-stream-index": "004" } + }, + "required": [ + "name", + "organization", + "push_notifications", + "webhook_url", + "channel_configs", + "call_types", + "policies", + "suspended", + "suspended_explanation", + "disable_auth_checks", + "disable_permissions_checks", + "permission_version", + "user_search_disallowed_roles", + "multi_tenant_enabled", + "image_moderation_enabled", + "async_url_enrich_enabled", + "auto_translation_enabled", + "custom_action_handler_url", + "enforce_unique_usernames", + "sqs_url", + "sqs_key", + "sqs_secret", + "sns_topic_arn", + "sns_key", + "sns_secret", + "file_upload_config", + "image_upload_config", + "grants", + "campaign_enabled", + "polls_enabled", + "webhook_events", + "reminders_interval", + "cdn_expiration_seconds", + "video_provider" + ], + "type": "object" + }, + "AsyncModerationCallbackConfig": { + "properties": { + "mode": { + "enum": [ + "CALLBACK_MODE_NONE", + "CALLBACK_MODE_REST", + "CALLBACK_MODE_TWIRP" + ], + "type": "string", + "x-stream-index": "002" + }, + "server_url": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "AsyncModerationConfiguration": { + "properties": { + "callback": { + "$ref": "#/components/schemas/AsyncModerationCallbackConfig", + "x-stream-index": "002" + }, + "timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "Attachment": { + "nullable": true, + "properties": { + "actions": { + "items": { "$ref": "#/components/schemas/Action" }, + "type": "array", + "x-stream-index": "015" + }, + "asset_url": { "type": "string", "x-stream-index": "017" }, + "author_icon": { "type": "string", "x-stream-index": "007" }, + "author_link": { "type": "string", "x-stream-index": "006" }, + "author_name": { "type": "string", "x-stream-index": "005" }, + "color": { "type": "string", "x-stream-index": "003" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "018" + }, + "fallback": { "type": "string", "x-stream-index": "002" }, + "fields": { + "items": { "$ref": "#/components/schemas/Field" }, + "type": "array", + "x-stream-index": "016" + }, + "footer": { "type": "string", "x-stream-index": "013" }, + "footer_icon": { "type": "string", "x-stream-index": "014" }, + "giphy": { + "$ref": "#/components/schemas/Images", + "x-stream-index": "019" + }, + "image_url": { "type": "string", "x-stream-index": "011" }, + "og_scrape_url": { "type": "string", "x-stream-index": "020" }, + "original_height": { + "format": "int32", + "type": "integer", + "x-stream-index": "022" + }, + "original_width": { + "format": "int32", + "type": "integer", + "x-stream-index": "021" + }, + "pretext": { "type": "string", "x-stream-index": "004" }, + "text": { "type": "string", "x-stream-index": "010" }, + "thumb_url": { "type": "string", "x-stream-index": "012" }, + "title": { "type": "string", "x-stream-index": "008" }, + "title_link": { "type": "string", "x-stream-index": "009" }, + "type": { + "description": "Attachment type (e.g. image, video, url, poll)", + "title": "Type", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["custom"], + "title": "Attachment", + "type": "object", + "x-stream-docs-page-id": "file_uploads" + }, + "AudioSettings": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "default_device": { + "enum": ["speaker", "earpiece"], + "type": "string", + "x-stream-index": "006" + }, + "mic_default_on": { "type": "boolean", "x-stream-index": "004" }, + "noise_cancellation": { + "$ref": "#/components/schemas/NoiseCancellationSettings", + "x-stream-index": "007" + }, + "opus_dtx_enabled": { "type": "boolean", "x-stream-index": "002" }, + "redundant_coding_enabled": { + "type": "boolean", + "x-stream-index": "003" + }, + "speaker_default_on": { "type": "boolean", "x-stream-index": "005" } + }, + "required": [ + "access_request_enabled", + "opus_dtx_enabled", + "redundant_coding_enabled", + "mic_default_on", + "speaker_default_on", + "default_device" + ], + "type": "object" + }, + "AudioSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "default_device": { + "enum": ["speaker", "earpiece"], + "type": "string", + "x-stream-index": "006" + }, + "mic_default_on": { "type": "boolean", "x-stream-index": "004" }, + "noise_cancellation": { + "$ref": "#/components/schemas/NoiseCancellationSettings", + "x-stream-index": "007" + }, + "opus_dtx_enabled": { "type": "boolean", "x-stream-index": "002" }, + "redundant_coding_enabled": { + "type": "boolean", + "x-stream-index": "003" + }, + "speaker_default_on": { "type": "boolean", "x-stream-index": "005" } + }, + "required": ["default_device"], + "type": "object" + }, + "AudioSettingsResponse": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "001" + }, + "default_device": { + "enum": ["speaker", "earpiece"], + "type": "string", + "x-stream-index": "006" + }, + "mic_default_on": { "type": "boolean", "x-stream-index": "004" }, + "noise_cancellation": { + "$ref": "#/components/schemas/NoiseCancellationSettings", + "x-stream-index": "007" + }, + "opus_dtx_enabled": { "type": "boolean", "x-stream-index": "002" }, + "redundant_coding_enabled": { + "type": "boolean", + "x-stream-index": "003" + }, + "speaker_default_on": { "type": "boolean", "x-stream-index": "005" } + }, + "required": [ + "access_request_enabled", + "opus_dtx_enabled", + "redundant_coding_enabled", + "mic_default_on", + "speaker_default_on", + "default_device" + ], + "type": "object" + }, + "AutomodDetails": { + "properties": { + "action": { "type": "string", "x-stream-index": "001" }, + "image_labels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "005" + }, + "message_details": { + "$ref": "#/components/schemas/FlagMessageDetails", + "x-stream-index": "004" + }, + "original_message_type": { + "type": "string", + "x-stream-index": "002" + }, + "result": { + "$ref": "#/components/schemas/MessageModerationResult", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "AzureRequest": { + "properties": { + "abs_account_name": { "type": "string", "x-stream-index": "001" }, + "abs_client_id": { "type": "string", "x-stream-index": "003" }, + "abs_client_secret": { "type": "string", "x-stream-index": "004" }, + "abs_tenant_id": { "type": "string", "x-stream-index": "002" } + }, + "required": [ + "abs_account_name", + "abs_tenant_id", + "abs_client_id", + "abs_client_secret" + ], + "type": "object" + }, + "BackstageSettings": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "BackstageSettingsRequest": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "type": "object" + }, + "BackstageSettingsResponse": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "BanRequest": { + "nullable": true, + "properties": { + "banned_by": { + "$ref": "#/components/schemas/UserRequest", + "description": "User who issued a ban", + "title": "Banned by", + "x-stream-index": "010" + }, + "banned_by_id": { + "description": "User ID who issued a ban", + "title": "Banned by ID", + "type": "string", + "x-stream-index": "009" + }, + "channel_cid": { + "description": "Channel CID to ban user in eg. messaging:123", + "title": "Channel CID", + "type": "string", + "x-stream-index": "006" + }, + "ip_ban": { + "description": "Whether to perform IP ban or not", + "title": "IP ban", + "type": "boolean", + "x-stream-index": "008" + }, + "reason": { + "description": "Ban reason", + "title": "Reason", + "type": "string", + "x-stream-index": "003" + }, + "shadow": { + "description": "Whether to perform shadow ban or not", + "title": "Shadow", + "type": "boolean", + "x-stream-index": "007" + }, + "target_user_id": { + "description": "ID of user to ban", + "title": "Target user ID", + "type": "string", + "x-stream-index": "001" + }, + "timeout": { + "description": "Timeout of ban in minutes. User will be unbanned after this period of time", + "title": "Timeout", + "type": "integer", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "011.002" + }, + "user_id": { "type": "string", "x-stream-index": "011.001" } + }, + "required": ["target_user_id"], + "type": "object" + }, + "BanResponse": { + "nullable": true, + "properties": { + "banned_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "006" + }, + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "reason": { "type": "string", "x-stream-index": "004" }, + "shadow": { "type": "boolean", "x-stream-index": "005" }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002" + } + }, + "required": ["created_at"], + "type": "object" + }, + "BlockList": { + "description": "Block list contains restricted words", + "nullable": true, + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "004" + }, + "name": { + "description": "Block list name", + "title": "Name", + "type": "string", + "x-stream-index": "006" + }, + "type": { + "description": "Block list type.", + "title": "Type", + "type": "string", + "x-stream-index": "007" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "005" + }, + "words": { + "description": "List of words to block", + "items": { "type": "string" }, + "title": "Words", + "type": "array", + "x-stream-index": "008" + } + }, + "required": ["name", "type", "words"], + "title": "Block list", + "type": "object", + "x-stream-docs-page-id": "block_lists" + }, + "BlockListOptions": { + "properties": { + "behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "002" + }, + "blocklist": { "type": "string", "x-stream-index": "001" } + }, + "required": ["blocklist", "behavior"], + "type": "object" + }, + "BlockUserRequest": { + "nullable": true, + "properties": { + "user_id": { + "description": "the user to block", + "title": "UserID", + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["user_id"], + "type": "object" + }, + "BlockUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "BroadcastSettings": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "hls": { + "$ref": "#/components/schemas/HLSSettings", + "x-stream-index": "002" + } + }, + "required": ["enabled", "hls"], + "type": "object" + }, + "BroadcastSettingsRequest": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "hls": { + "$ref": "#/components/schemas/HLSSettingsRequest", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "BroadcastSettingsResponse": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "hls": { + "$ref": "#/components/schemas/HLSSettingsResponse", + "x-stream-index": "002" + } + }, + "required": ["enabled", "hls"], + "type": "object" + }, + "CallEvent": { + "nullable": true, + "properties": { + "description": { "type": "string", "x-stream-index": "004" }, + "end_timestamp": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "severity": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "timestamp": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + }, + "type": { "type": "string", "x-stream-index": "005" } + }, + "required": [ + "timestamp", + "end_timestamp", + "severity", + "description", + "type" + ], + "type": "object" + }, + "CallIngressResponse": { + "properties": { + "rtmp": { + "$ref": "#/components/schemas/RTMPIngress", + "x-stream-index": "001" + } + }, + "required": ["rtmp"], + "title": "Call inputs", + "type": "object" + }, + "CallParticipantResponse": { + "properties": { + "joined_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004" + }, + "role": { "type": "string", "x-stream-index": "003" }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + }, + "user_session_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user", "user_session_id", "role", "joined_at"], + "type": "object" + }, + "CallRecording": { + "description": "CallRecording represents a recording of a call.", + "properties": { + "end_time": { + "format": "date-time", + "title": "The end time of the recording.", + "type": "number", + "x-stream-index": "004" + }, + "filename": { + "title": "The filename of the recording.", + "type": "string", + "x-stream-index": "001" + }, + "start_time": { + "format": "date-time", + "title": "The start time of the recording.", + "type": "number", + "x-stream-index": "003" + }, + "url": { + "title": "The URL of the recording.", + "type": "string", + "x-stream-index": "002" + } + }, + "required": ["filename", "url", "start_time", "end_time"], + "type": "object" + }, + "CallRequest": { + "properties": { + "created_by": { + "$ref": "#/components/schemas/UserRequest", + "title": "The user that create this call", + "x-stream-index": "002" + }, + "created_by_id": { + "title": "The id of the user that create this call", + "type": "string", + "x-stream-index": "003" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004" + }, + "members": { + "items": { "$ref": "#/components/schemas/MemberRequest" }, + "maximum": 100, + "type": "array", + "x-stream-index": "005" + }, + "settings_override": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "006" + }, + "starts_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "team": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "CallResponse": { + "description": "Represents a call", + "properties": { + "backstage": { "type": "boolean", "x-stream-index": "015" }, + "blocked_user_ids": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "017" + }, + "cid": { + "description": "The unique identifier for a call (\u003ctype\u003e:\u003cid\u003e)", + "title": "CID", + "type": "string", + "x-stream-index": "004" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "009" + }, + "created_by": { + "$ref": "#/components/schemas/UserResponse", + "description": "The user that created the call", + "title": "Created By", + "x-stream-index": "007" + }, + "current_session_id": { "type": "string", "x-stream-index": "005" }, + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "008" + }, + "egress": { + "$ref": "#/components/schemas/EgressResponse", + "x-stream-index": "020" + }, + "ended_at": { + "description": "Date/time when the call ended", + "format": "date-time", + "title": "Ended At", + "type": "number", + "x-stream-index": "013" + }, + "id": { + "description": "Call ID", + "title": "ID", + "type": "string", + "x-stream-index": "003" + }, + "ingress": { + "$ref": "#/components/schemas/CallIngressResponse", + "x-stream-index": "018" + }, + "recording": { "type": "boolean", "x-stream-index": "011" }, + "session": { + "$ref": "#/components/schemas/CallSessionResponse", + "x-stream-index": "019" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "016" + }, + "starts_at": { + "description": "Date/time when the call will start", + "format": "date-time", + "title": "Starts At", + "type": "number", + "x-stream-index": "014" + }, + "team": { "type": "string", "x-stream-index": "006" }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailResponse", + "x-stream-index": "021" + }, + "transcribing": { "type": "boolean", "x-stream-index": "012" }, + "type": { + "description": "The type of call", + "title": "Type", + "type": "string", + "x-stream-index": "002" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "010" + } + }, + "required": [ + "type", + "id", + "cid", + "current_session_id", + "created_by", + "custom", + "created_at", + "updated_at", + "recording", + "transcribing", + "backstage", + "settings", + "blocked_user_ids", + "ingress", + "egress" + ], + "title": "Call", + "type": "object" + }, + "CallSessionResponse": { + "properties": { + "accepted_by": { + "additionalProperties": { "format": "date-time", "type": "number" }, + "type": "object", + "x-stream-index": "007" + }, + "ended_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "live_ended_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "live_started_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008" + }, + "participants": { + "items": { "$ref": "#/components/schemas/CallParticipantResponse" }, + "type": "array", + "x-stream-index": "004" + }, + "participants_count_by_role": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "005" + }, + "rejected_by": { + "additionalProperties": { "format": "date-time", "type": "number" }, + "type": "object", + "x-stream-index": "006" + }, + "started_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + } + }, + "required": [ + "id", + "participants", + "participants_count_by_role", + "rejected_by", + "accepted_by" + ], + "type": "object" + }, + "CallSettings": { + "properties": { + "audio": { + "$ref": "#/components/schemas/AudioSettings", + "x-stream-index": "001" + }, + "backstage": { + "$ref": "#/components/schemas/BackstageSettings", + "x-stream-index": "002" + }, + "broadcasting": { + "$ref": "#/components/schemas/BroadcastSettings", + "x-stream-index": "006" + }, + "geofencing": { + "$ref": "#/components/schemas/GeofenceSettings", + "x-stream-index": "007" + }, + "recording": { + "$ref": "#/components/schemas/RecordSettings", + "x-stream-index": "005" + }, + "ring": { + "$ref": "#/components/schemas/RingSettings", + "x-stream-index": "009" + }, + "screensharing": { + "$ref": "#/components/schemas/ScreensharingSettings", + "x-stream-index": "004" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailsSettings", + "x-stream-index": "010" + }, + "transcription": { + "$ref": "#/components/schemas/TranscriptionSettings", + "x-stream-index": "008" + }, + "video": { + "$ref": "#/components/schemas/VideoSettings", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "CallSettingsRequest": { + "properties": { + "audio": { + "$ref": "#/components/schemas/AudioSettingsRequest", + "x-stream-index": "001" + }, + "backstage": { + "$ref": "#/components/schemas/BackstageSettingsRequest", + "x-stream-index": "002" + }, + "broadcasting": { + "$ref": "#/components/schemas/BroadcastSettingsRequest", + "x-stream-index": "009" + }, + "geofencing": { + "$ref": "#/components/schemas/GeofenceSettingsRequest", + "x-stream-index": "003" + }, + "recording": { + "$ref": "#/components/schemas/RecordSettingsRequest", + "x-stream-index": "005" + }, + "ring": { + "$ref": "#/components/schemas/RingSettingsRequest", + "x-stream-index": "006" + }, + "screensharing": { + "$ref": "#/components/schemas/ScreensharingSettingsRequest", + "x-stream-index": "007" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailsSettingsRequest", + "x-stream-index": "010" + }, + "transcription": { + "$ref": "#/components/schemas/TranscriptionSettingsRequest", + "x-stream-index": "008" + }, + "video": { + "$ref": "#/components/schemas/VideoSettingsRequest", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "CallSettingsResponse": { + "properties": { + "audio": { + "$ref": "#/components/schemas/AudioSettingsResponse", + "x-stream-index": "001" + }, + "backstage": { + "$ref": "#/components/schemas/BackstageSettingsResponse", + "x-stream-index": "002" + }, + "broadcasting": { + "$ref": "#/components/schemas/BroadcastSettingsResponse", + "x-stream-index": "003" + }, + "geofencing": { + "$ref": "#/components/schemas/GeofenceSettingsResponse", + "x-stream-index": "004" + }, + "recording": { + "$ref": "#/components/schemas/RecordSettingsResponse", + "x-stream-index": "005" + }, + "ring": { + "$ref": "#/components/schemas/RingSettingsResponse", + "x-stream-index": "006" + }, + "screensharing": { + "$ref": "#/components/schemas/ScreensharingSettingsResponse", + "x-stream-index": "007" + }, + "thumbnails": { + "$ref": "#/components/schemas/ThumbnailsSettingsResponse", + "x-stream-index": "010" + }, + "transcription": { + "$ref": "#/components/schemas/TranscriptionSettingsResponse", + "x-stream-index": "008" + }, + "video": { + "$ref": "#/components/schemas/VideoSettingsResponse", + "x-stream-index": "009" + } + }, + "required": [ + "audio", + "backstage", + "broadcasting", + "geofencing", + "recording", + "ring", + "screensharing", + "transcription", + "video", + "thumbnails" + ], + "type": "object" + }, + "CallStateResponseFields": { + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "members": { + "description": "List of call members", + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "title": "Members", + "type": "array", + "x-stream-index": "002" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "004" + } + }, + "required": ["call", "members", "own_capabilities", "blocked_users"], + "type": "object" + }, + "CallStatsReportSummaryResponse": { + "properties": { + "call_cid": { "type": "string", "x-stream-index": "001" }, + "call_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "call_session_id": { "type": "string", "x-stream-index": "002" }, + "call_status": { "type": "string", "x-stream-index": "004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "first_stats_time": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "quality_score": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + } + }, + "required": [ + "call_cid", + "call_session_id", + "first_stats_time", + "call_status", + "call_duration_seconds" + ], + "type": "object" + }, + "CallTimeline": { + "properties": { + "events": { + "items": { "$ref": "#/components/schemas/CallEvent" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["events"], + "type": "object" + }, + "CallTranscription": { + "description": "CallTranscription represents a transcription of a call.", + "properties": { + "end_time": { + "format": "date-time", + "title": "The end time of the transcription.", + "type": "number", + "x-stream-index": "004" + }, + "filename": { + "title": "The filename of the transcription.", + "type": "string", + "x-stream-index": "001" + }, + "start_time": { + "format": "date-time", + "title": "The start time of the transcription.", + "type": "number", + "x-stream-index": "003" + }, + "url": { + "title": "The URL of the transcription.", + "type": "string", + "x-stream-index": "002" + } + }, + "required": ["filename", "url", "start_time", "end_time"], + "type": "object" + }, + "CallType": { + "nullable": true, + "properties": { + "AppPK": { + "format": "int32", + "type": "integer", + "writeOnly": true, + "x-stream-index": "003" + }, + "CreatedAt": { + "format": "date-time", + "type": "number", + "writeOnly": true, + "x-stream-index": "005" + }, + "ExternalStorage": { + "type": "string", + "writeOnly": true, + "x-stream-index": "009" + }, + "Name": { + "type": "string", + "writeOnly": true, + "x-stream-index": "004" + }, + "NotificationSettings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "008" + }, + "PK": { + "format": "int32", + "type": "integer", + "writeOnly": true, + "x-stream-index": "002" + }, + "Settings": { + "$ref": "#/components/schemas/CallSettings", + "x-stream-index": "007" + }, + "UpdatedAt": { + "format": "date-time", + "type": "number", + "writeOnly": true, + "x-stream-index": "006" + } + }, + "required": [ + "PK", + "AppPK", + "Name", + "CreatedAt", + "UpdatedAt", + "ExternalStorage" + ], + "type": "object" + }, + "CallTypeResponse": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "005" + }, + "external_storage": { "type": "string", "x-stream-index": "007" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002" + }, + "name": { "type": "string", "x-stream-index": "001" }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "003" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at" + ], + "type": "object" + }, + "CastPollVoteRequest": { + "nullable": true, + "properties": { + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" }, + "vote": { + "$ref": "#/components/schemas/VoteData", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "Channel": { + "properties": { + "auto_translation_enabled": { + "type": "boolean", + "x-stream-index": "028" + }, + "auto_translation_language": { + "type": "string", + "x-stream-index": "029" + }, + "cid": { "type": "string", "x-stream-index": "003" }, + "config": { + "$ref": "#/components/schemas/ChannelConfig", + "x-stream-index": "025" + }, + "config_overrides": { + "$ref": "#/components/schemas/ChannelConfig", + "x-stream-index": "026" + }, + "cooldown": { + "format": "int32", + "type": "integer", + "x-stream-index": "030" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "018" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "disabled": { "type": "boolean", "x-stream-index": "017" }, + "frozen": { "type": "boolean", "x-stream-index": "016" }, + "id": { "type": "string", "x-stream-index": "004" }, + "invites": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "021" + }, + "last_message_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "member_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "020" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "019" + }, + "team": { "type": "string", "x-stream-index": "027" }, + "truncated_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "015" + }, + "type": { "type": "string", "x-stream-index": "005" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + } + }, + "required": [ + "cid", + "id", + "type", + "created_at", + "updated_at", + "frozen", + "disabled", + "custom", + "auto_translation_language" + ], + "type": "object" + }, + "ChannelConfig": { + "nullable": true, + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "001.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "001.025" + }, + "blocklist": { "type": "string", "x-stream-index": "001.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "001.023" + }, + "commands": { + "description": "List of commands that channel supports", + "items": { "type": "string" }, + "title": "Commands", + "type": "array", + "x-stream-index": "003" + }, + "connect_events": { "type": "boolean", "x-stream-index": "001.004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.003" + }, + "custom_events": { "type": "boolean", "x-stream-index": "001.012" }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "001.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "001.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "001.009" }, + "name": { "type": "string", "x-stream-index": "001.001" }, + "polls": { "type": "boolean", "x-stream-index": "001.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "001.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "001.008" }, + "reactions": { "type": "boolean", "x-stream-index": "001.006" }, + "read_events": { "type": "boolean", "x-stream-index": "001.003" }, + "reminders": { "type": "boolean", "x-stream-index": "001.014" }, + "replies": { "type": "boolean", "x-stream-index": "001.007" }, + "search": { "type": "boolean", "x-stream-index": "001.005" }, + "typing_events": { "type": "boolean", "x-stream-index": "001.002" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.004" + }, + "uploads": { "type": "boolean", "x-stream-index": "001.010" }, + "url_enrichment": { "type": "boolean", "x-stream-index": "001.011" } + }, + "required": [ + "name", + "typing_events", + "read_events", + "connect_events", + "search", + "reactions", + "replies", + "quotes", + "mutes", + "uploads", + "url_enrichment", + "custom_events", + "push_notifications", + "reminders", + "mark_messages_pending", + "polls", + "message_retention", + "max_message_length", + "automod", + "automod_behavior", + "created_at", + "updated_at", + "commands" + ], + "type": "object" + }, + "ChannelConfigWithInfo": { + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.002.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "001.002.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.002.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "001.002.025" + }, + "blocklist": { "type": "string", "x-stream-index": "001.002.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.002.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "001.002.023" + }, + "commands": { + "items": { "$ref": "#/components/schemas/Command" }, + "type": "array", + "x-stream-index": "001.003" + }, + "connect_events": { + "type": "boolean", + "x-stream-index": "001.002.004" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.001.003" + }, + "custom_events": { + "type": "boolean", + "x-stream-index": "001.002.012" + }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "title": "Grants", + "type": "object", + "x-stream-index": "002", + "x-stream-map": { + "key": "role", + "title": "Grants", + "description": "List of grants modifiers that apply to a role" + } + }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "001.002.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "001.002.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "001.002.009" }, + "name": { "type": "string", "x-stream-index": "001.002.001" }, + "polls": { "type": "boolean", "x-stream-index": "001.002.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "001.002.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "001.002.008" }, + "reactions": { "type": "boolean", "x-stream-index": "001.002.006" }, + "read_events": { "type": "boolean", "x-stream-index": "001.002.003" }, + "reminders": { "type": "boolean", "x-stream-index": "001.002.014" }, + "replies": { "type": "boolean", "x-stream-index": "001.002.007" }, + "search": { "type": "boolean", "x-stream-index": "001.002.005" }, + "typing_events": { + "type": "boolean", + "x-stream-index": "001.002.002" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.001.004" + }, + "uploads": { "type": "boolean", "x-stream-index": "001.002.010" }, + "url_enrichment": { + "type": "boolean", + "x-stream-index": "001.002.011" + } + }, + "required": [ + "created_at", + "updated_at", + "name", + "typing_events", + "read_events", + "connect_events", + "search", + "reactions", + "replies", + "quotes", + "mutes", + "uploads", + "url_enrichment", + "custom_events", + "push_notifications", + "reminders", + "mark_messages_pending", + "polls", + "message_retention", + "max_message_length", + "automod", + "automod_behavior", + "commands" + ], + "type": "object" + }, + "ChannelExport": { + "properties": { + "cid": { "type": "string", "x-stream-index": "003" }, + "id": { + "description": "Channel ID", + "title": "ID", + "type": "string", + "x-stream-index": "002" + }, + "messages_since": { + "description": "Date to export messages since", + "format": "date-time", + "title": "Messages since", + "type": "number", + "x-stream-index": "004" + }, + "messages_until": { + "description": "Date to export messages until", + "format": "date-time", + "title": "Messages until", + "type": "number", + "x-stream-index": "005" + }, + "type": { + "description": "Channel type", + "title": "Type", + "type": "string", + "x-stream-index": "001" + } + }, + "title": "Channel Export", + "type": "object" + }, + "ChannelGetOrCreateRequest": { + "nullable": true, + "properties": { + "data": { + "$ref": "#/components/schemas/ChannelInput", + "x-stream-index": "004" + }, + "hide_for_creator": { + "description": "Whether this channel will be hidden for the user who created the channel or not", + "title": "Hide for creator", + "type": "boolean", + "x-stream-index": "008" + }, + "members": { + "$ref": "#/components/schemas/PaginationParams", + "x-stream-index": "011" + }, + "messages": { + "$ref": "#/components/schemas/MessagePaginationParams", + "x-stream-index": "010" + }, + "state": { + "description": "Refresh channel state", + "title": "State", + "type": "boolean", + "x-stream-index": "006" + }, + "thread_unread_counts": { + "type": "boolean", + "x-stream-index": "009" + }, + "watchers": { + "$ref": "#/components/schemas/PaginationParams", + "x-stream-index": "012" + } + }, + "type": "object" + }, + "ChannelInput": { + "properties": { + "auto_translation_enabled": { + "description": "Enable or disable auto translation", + "title": "Auto translation", + "type": "boolean", + "x-stream-index": "007" + }, + "auto_translation_language": { + "description": "Switch auto translation language", + "title": "Auto translation language", + "type": "string", + "x-stream-index": "008" + }, + "config_overrides": { + "$ref": "#/components/schemas/ChannelConfig", + "x-stream-index": "026" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "011" + }, + "created_by_id": { "type": "string", "x-stream-index": "010" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "017" + }, + "disabled": { "type": "boolean", "x-stream-index": "016" }, + "frozen": { + "description": "Freeze or unfreeze the channel", + "title": "Frozen", + "type": "boolean", + "x-stream-index": "015" + }, + "invites": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "type": "array", + "x-stream-index": "018" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "type": "array", + "x-stream-index": "020" + }, + "team": { + "description": "Team the channel belongs to (if multi-tenant mode is enabled)", + "title": "Team", + "type": "string", + "x-stream-index": "006" + }, + "truncated_by_id": { "type": "string", "x-stream-index": "012" } + }, + "type": "object" + }, + "ChannelMember": { + "nullable": true, + "properties": { + "ban_expires": { + "description": "Expiration date of the ban", + "format": "date-time", + "title": "Ban expires", + "type": "number", + "x-stream-index": "016" + }, + "banned": { + "description": "Whether member is banned this channel or not", + "title": "Banned", + "type": "boolean", + "x-stream-index": "015" + }, + "channel_role": { + "description": "Role of the member in the channel", + "title": "Channel Role", + "type": "string", + "x-stream-index": "020" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "011" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "invite_accepted_at": { + "description": "Date when invite was accepted", + "format": "date-time", + "title": "Invited accepted at", + "type": "number", + "x-stream-index": "008" + }, + "invite_rejected_at": { + "description": "Date when invite was rejected", + "format": "date-time", + "title": "Invited rejected at", + "type": "number", + "x-stream-index": "009" + }, + "invited": { + "description": "Whether member was invited or not", + "title": "Invited", + "type": "boolean", + "x-stream-index": "007" + }, + "is_moderator": { + "description": "Whether member is channel moderator or not", + "title": "Is moderator", + "type": "boolean", + "x-stream-index": "006" + }, + "notifications_muted": { "type": "boolean", "x-stream-index": "021" }, + "shadow_banned": { + "description": "Whether member is shadow banned in this channel or not", + "title": "Shadow banned", + "type": "boolean", + "x-stream-index": "018" + }, + "status": { "type": "string", "x-stream-index": "010" }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "012" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "005" + }, + "user_id": { + "title": "User ID", + "type": "string", + "x-stream-index": "004" + } + }, + "required": [ + "created_at", + "updated_at", + "banned", + "shadow_banned", + "channel_role", + "notifications_muted" + ], + "title": "Channel member", + "type": "object" + }, + "ChannelMute": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "007" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "009" + }, + "expires": { + "description": "Date/time of mute expiration", + "format": "date-time", + "title": "Expires", + "type": "number", + "x-stream-index": "008" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "Owner of channel mute", + "title": "User", + "x-stream-index": "005" + } + }, + "required": ["created_at", "updated_at"], + "type": "object" + }, + "ChannelResponse": { + "description": "Represents channel in chat", + "properties": { + "auto_translation_enabled": { + "description": "Whether auto translation is enabled or not", + "title": "Auto translation", + "type": "boolean", + "x-stream-index": "021" + }, + "auto_translation_language": { + "description": "Language to translate to when auto translation is active", + "title": "Auto translation language", + "type": "string", + "x-stream-index": "022" + }, + "cid": { + "description": "Channel CID (\u003ctype\u003e:\u003cid\u003e)", + "title": "CID", + "type": "string", + "x-stream-index": "005" + }, + "config": { + "$ref": "#/components/schemas/ChannelConfigWithInfo", + "description": "Channel configuration", + "title": "Config", + "x-stream-index": "017" + }, + "cooldown": { + "description": "Cooldown period after sending each message", + "format": "int32", + "title": "Cooldown", + "type": "integer", + "x-stream-index": "024" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "008" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Creator of the channel", + "title": "Created by", + "x-stream-index": "011" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "029" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "010" + }, + "disabled": { "type": "boolean", "x-stream-index": "013" }, + "frozen": { + "description": "Whether channel is frozen or not", + "title": "Frozen", + "type": "boolean", + "x-stream-index": "012" + }, + "hidden": { + "description": "Whether this channel is hidden by current user or not", + "title": "Hidden", + "type": "boolean", + "x-stream-index": "026" + }, + "hide_messages_before": { + "description": "Date since when the message history is accessible", + "format": "date-time", + "title": "Hide messages before", + "type": "number", + "x-stream-index": "023" + }, + "id": { + "description": "Channel unique ID", + "title": "ID", + "type": "string", + "x-stream-index": "003" + }, + "last_message_at": { + "description": "Date of the last message sent", + "format": "date-time", + "title": "Last message at", + "type": "number", + "x-stream-index": "006" + }, + "member_count": { + "description": "Number of members in the channel", + "format": "int32", + "title": "Member count", + "type": "integer", + "x-stream-index": "015" + }, + "members": { + "description": "List of channel members (max 100)", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "title": "Members", + "type": "array", + "x-stream-index": "014" + }, + "mute_expires_at": { + "description": "Date of mute expiration", + "format": "date-time", + "title": "Mute expires at", + "type": "number", + "x-stream-index": "019" + }, + "muted": { + "description": "Whether this channel is muted or not", + "title": "Muted", + "type": "boolean", + "x-stream-index": "018" + }, + "own_capabilities": { + "description": "List of channel capabilities of authenticated user", + "items": { "type": "string" }, + "title": "Own Capabilities", + "type": "array", + "x-stream-index": "025" + }, + "team": { + "description": "Team the channel belongs to (multi-tenant only)", + "title": "Team", + "type": "string", + "x-stream-index": "020" + }, + "truncated_at": { + "description": "Date of the latest truncation of the channel", + "format": "date-time", + "title": "Truncated At", + "type": "number", + "x-stream-index": "027" + }, + "truncated_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "028" + }, + "type": { + "description": "Type of the channel", + "title": "Type", + "type": "string", + "x-stream-docs-page-id": "channel_features", + "x-stream-index": "004" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "009" + } + }, + "required": [ + "id", + "type", + "cid", + "created_at", + "updated_at", + "frozen", + "disabled", + "custom" + ], + "title": "Channel", + "type": "object" + }, + "ChannelStateResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001.001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "hidden": { "type": "boolean", "x-stream-index": "001.010" }, + "hide_messages_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.011" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "001.007" + }, + "membership": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "001.008" + }, + "messages": { + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "pending_messages": { + "items": { "$ref": "#/components/schemas/PendingMessage" }, + "type": "array", + "x-stream-index": "001.012" + }, + "pinned_messages": { + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "type": "array", + "x-stream-index": "001.003" + }, + "read": { + "items": { "$ref": "#/components/schemas/ReadStateResponse" }, + "type": "array", + "x-stream-index": "001.006" + }, + "threads": { + "items": { "$ref": "#/components/schemas/ThreadState" }, + "type": "array", + "x-stream-index": "001.009" + }, + "watcher_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.004" + }, + "watchers": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "001.005" + } + }, + "required": [ + "messages", + "pinned_messages", + "members", + "threads", + "duration" + ], + "type": "object" + }, + "ChannelStateResponseFields": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "hidden": { + "description": "Whether this channel is hidden or not", + "title": "Hidden", + "type": "boolean", + "x-stream-index": "010" + }, + "hide_messages_before": { + "description": "Messages before this date are hidden from the user", + "format": "date-time", + "title": "Hide messages before", + "type": "number", + "x-stream-index": "011" + }, + "members": { + "description": "List of channel members", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "title": "Members", + "type": "array", + "x-stream-index": "007" + }, + "membership": { + "$ref": "#/components/schemas/ChannelMember", + "description": "Current user membership object", + "title": "Membership", + "x-stream-index": "008" + }, + "messages": { + "description": "List of channel messages", + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "title": "Message", + "type": "array", + "x-stream-index": "002" + }, + "pending_messages": { + "description": "Pending messages that this user has sent", + "items": { "$ref": "#/components/schemas/PendingMessage" }, + "title": "Pending messages", + "type": "array", + "x-stream-index": "012" + }, + "pinned_messages": { + "description": "List of pinned messages in the channel", + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "title": "Pinned messages", + "type": "array", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "003" + }, + "read": { + "description": "List of read states", + "items": { "$ref": "#/components/schemas/ReadStateResponse" }, + "title": "Read", + "type": "array", + "x-stream-index": "006" + }, + "threads": { + "items": { "$ref": "#/components/schemas/ThreadState" }, + "type": "array", + "x-stream-index": "009" + }, + "watcher_count": { + "description": "Number of channel watchers", + "format": "int32", + "title": "Watcher count", + "type": "integer", + "x-stream-index": "004" + }, + "watchers": { + "description": "List of user who is watching the channel", + "items": { "$ref": "#/components/schemas/UserResponse" }, + "title": "Watchers", + "type": "array", + "x-stream-index": "005" + } + }, + "required": ["messages", "pinned_messages", "members", "threads"], + "type": "object" + }, + "ChannelTypeConfig": { + "nullable": true, + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003.002.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "003.002.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "003.002.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "003.002.025" + }, + "blocklist": { "type": "string", "x-stream-index": "003.002.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "003.002.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "003.002.023" + }, + "commands": { + "description": "List of commands that channel supports", + "items": { "$ref": "#/components/schemas/Command" }, + "title": "Commands", + "type": "array", + "x-stream-index": "003.003" + }, + "connect_events": { + "type": "boolean", + "x-stream-index": "003.002.004" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.001.003" + }, + "custom_events": { + "type": "boolean", + "x-stream-index": "003.002.012" + }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002" + }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "003.002.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "003.002.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "003.002.009" }, + "name": { "type": "string", "x-stream-index": "003.002.001" }, + "permissions": { + "items": { "$ref": "#/components/schemas/PolicyRequest" }, + "type": "array", + "x-stream-index": "001" + }, + "polls": { "type": "boolean", "x-stream-index": "003.002.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "003.002.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "003.002.008" }, + "reactions": { "type": "boolean", "x-stream-index": "003.002.006" }, + "read_events": { "type": "boolean", "x-stream-index": "003.002.003" }, + "reminders": { "type": "boolean", "x-stream-index": "003.002.014" }, + "replies": { "type": "boolean", "x-stream-index": "003.002.007" }, + "search": { "type": "boolean", "x-stream-index": "003.002.005" }, + "typing_events": { + "type": "boolean", + "x-stream-index": "003.002.002" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.001.004" + }, + "uploads": { "type": "boolean", "x-stream-index": "003.002.010" }, + "url_enrichment": { + "type": "boolean", + "x-stream-index": "003.002.011" + } + }, + "required": [ + "permissions", + "grants", + "created_at", + "updated_at", + "name", + "typing_events", + "read_events", + "connect_events", + "search", + "reactions", + "replies", + "quotes", + "mutes", + "uploads", + "url_enrichment", + "custom_events", + "push_notifications", + "reminders", + "mark_messages_pending", + "polls", + "message_retention", + "max_message_length", + "automod", + "automod_behavior", + "commands" + ], + "type": "object" + }, + "CheckExternalStorageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "CheckPushRequest": { + "nullable": true, + "properties": { + "apn_template": { + "description": "Push message template for APN", + "title": "APN template", + "type": "string", + "x-stream-docs-page-id": "push_template", + "x-stream-index": "002" + }, + "firebase_data_template": { + "description": "Push message data template for Firebase", + "title": "Firebase data template", + "type": "string", + "x-stream-docs-page-id": "push_template", + "x-stream-index": "004" + }, + "firebase_template": { + "description": "Push message template for Firebase", + "title": "Firebase template", + "type": "string", + "x-stream-docs-page-id": "push_template", + "x-stream-index": "003" + }, + "message_id": { + "description": "Message ID to send push notification for", + "title": "Message ID", + "type": "string", + "x-stream-index": "001" + }, + "push_provider_name": { + "description": "Name of push provider", + "title": "Name of push provider", + "type": "string", + "x-stream-index": "007" + }, + "push_provider_type": { + "description": "Push provider type", + "enum": ["firebase", "apn", "huawei", "xiaomi"], + "title": "Type of push provider", + "type": "string", + "x-stream-index": "006" + }, + "skip_devices": { + "description": "Don't require existing devices to render templates", + "title": "Skip devices", + "type": "boolean", + "x-stream-index": "005" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "008.002" + }, + "user_id": { "type": "string", "x-stream-index": "008.001" } + }, + "type": "object" + }, + "CheckPushResponse": { + "nullable": true, + "properties": { + "device_errors": { + "additionalProperties": { + "$ref": "#/components/schemas/DeviceErrorInfo" + }, + "description": "Object with device errors", + "title": "Device errors", + "type": "object", + "x-stream-index": "001", + "x-stream-map": { "key": "device_id" } + }, + "duration": { "type": "string", "x-stream-index": "007.001" }, + "general_errors": { + "description": "List of general errors", + "items": { "type": "string" }, + "title": "General errors", + "type": "array", + "x-stream-index": "002" + }, + "rendered_apn_template": { + "title": "Rendered APN template", + "type": "string", + "x-stream-index": "004" + }, + "rendered_firebase_template": { + "title": "Rendered Firebase template", + "type": "string", + "x-stream-index": "005" + }, + "rendered_message": { + "additionalProperties": { "type": "string" }, + "title": "Rendered message", + "type": "object", + "x-stream-index": "006" + }, + "skip_devices": { + "description": "Don't require existing devices to render templates", + "title": "Skip devices", + "type": "boolean", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "CheckSNSRequest": { + "nullable": true, + "properties": { + "sns_key": { + "description": "AWS SNS access key", + "title": "SNS key", + "type": "string", + "x-stream-index": "002" + }, + "sns_secret": { + "description": "AWS SNS key secret", + "title": "SNS secret", + "type": "string", + "x-stream-index": "003" + }, + "sns_topic_arn": { + "description": "AWS SNS topic ARN", + "title": "SNS Topic ARN", + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "CheckSNSResponse": { + "nullable": true, + "properties": { + "data": { + "additionalProperties": {}, + "description": "Error data", + "title": "ReadOnlyData", + "type": "object", + "x-stream-index": "003" + }, + "duration": { "type": "string", "x-stream-index": "004.001" }, + "error": { + "description": "Error text", + "title": "Error", + "type": "string", + "x-stream-index": "002" + }, + "status": { + "description": "Validation result", + "enum": ["ok", "error"], + "title": "Status", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["status", "duration"], + "type": "object" + }, + "CheckSQSRequest": { + "nullable": true, + "properties": { + "sqs_key": { + "description": "AWS SQS access key", + "title": "SQS key", + "type": "string", + "x-stream-index": "002" + }, + "sqs_secret": { + "description": "AWS SQS key secret", + "title": "SQS secret", + "type": "string", + "x-stream-index": "003" + }, + "sqs_url": { + "description": "AWS SQS endpoint URL", + "title": "SQS URL", + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "CheckSQSResponse": { + "nullable": true, + "properties": { + "data": { + "additionalProperties": {}, + "description": "Error data", + "title": "ReadOnlyData", + "type": "object", + "x-stream-index": "003" + }, + "duration": { "type": "string", "x-stream-index": "004.001" }, + "error": { + "description": "Error text", + "title": "Error", + "type": "string", + "x-stream-index": "002" + }, + "status": { + "description": "Validation result", + "enum": ["ok", "error"], + "title": "Status", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["status", "duration"], + "type": "object" + }, + "CollectUserFeedbackRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "009" + }, + "rating": { + "format": "int32", + "maximum": 5, + "minimum": 1, + "type": "integer", + "x-stream-index": "007" + }, + "reason": { + "maxLength": 1000, + "type": "string", + "x-stream-index": "008" + }, + "sdk": { "maxLength": 50, "type": "string", "x-stream-index": "005" }, + "sdk_version": { + "maxLength": 50, + "type": "string", + "x-stream-index": "006" + }, + "user_session_id": { + "maxLength": 50, + "type": "string", + "x-stream-index": "004" + } + }, + "required": ["user_session_id", "sdk", "sdk_version", "rating"], + "type": "object" + }, + "CollectUserFeedbackResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "Command": { + "description": "Represents custom chat command", + "nullable": true, + "properties": { + "args": { + "description": "Arguments help text, shown in commands auto-completion", + "title": "Arguments", + "type": "string", + "x-stream-index": "006" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "readOnly": true, + "title": "Created at", + "type": "number", + "x-stream-index": "001" + }, + "description": { + "description": "Description, shown in commands auto-completion", + "title": "Description", + "type": "string", + "x-stream-index": "005" + }, + "name": { + "description": "Unique command name", + "title": "Name", + "type": "string", + "x-stream-index": "004" + }, + "set": { + "description": "Set name used for grouping commands", + "title": "Set", + "type": "string", + "x-stream-index": "007" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "readOnly": true, + "title": "Updated at", + "type": "number", + "x-stream-index": "002" + } + }, + "required": ["name", "description", "args", "set"], + "title": "Command", + "type": "object" + }, + "CommitMessageRequest": { "nullable": true, "type": "object" }, + "Config": { + "properties": { + "app_certificate": { "type": "string", "x-stream-index": "002" }, + "app_id": { "type": "string", "x-stream-index": "001" }, + "default_role": { + "enum": ["attendee", "publisher", "subscriber", "admin"], + "type": "string", + "x-stream-index": "003" + }, + "role_map": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "004" + } + }, + "required": ["app_id", "app_certificate"], + "type": "object" + }, + "Coordinates": { + "properties": { + "latitude": { + "format": "float", + "type": "number", + "x-stream-index": "001" + }, + "longitude": { + "format": "float", + "type": "number", + "x-stream-index": "002" + } + }, + "required": ["latitude", "longitude"], + "type": "object" + }, + "CreateBlockListRequest": { + "description": "Block list contains restricted words", + "nullable": true, + "properties": { + "name": { + "description": "Block list name", + "maxLength": 255, + "title": "Name", + "type": "string", + "x-stream-index": "001" + }, + "type": { + "description": "Block list type.", + "enum": ["regex", "domain", "email", "word"], + "title": "Type", + "type": "string", + "x-stream-index": "003" + }, + "words": { + "description": "List of words to block", + "items": { "type": "string" }, + "minimum": 1, + "title": "Words", + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["name", "words"], + "title": "Block list", + "type": "object", + "x-stream-docs-page-id": "block_lists" + }, + "CreateCallTypeRequest": { + "nullable": true, + "properties": { + "external_storage": { "type": "string", "x-stream-index": "002.004" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002.001" + }, + "name": { "type": "string", "x-stream-index": "001" }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "002.002" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "002.003" + } + }, + "required": ["name"], + "type": "object" + }, + "CreateCallTypeResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.005" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "external_storage": { "type": "string", "x-stream-index": "001.007" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.002" + }, + "name": { "type": "string", "x-stream-index": "001.001" }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "001.004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "001.003" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at", + "duration" + ], + "type": "object" + }, + "CreateChannelTypeRequest": { + "nullable": true, + "properties": { + "automod": { + "description": "Enables automatic message moderation", + "enum": ["disabled", "simple", "AI"], + "title": "Auto moderation", + "type": "string", + "x-stream-index": "017" + }, + "automod_behavior": { + "description": "Sets behavior of automatic moderation", + "enum": ["flag", "block"], + "title": "Auto moderation behavior", + "type": "string", + "x-stream-index": "018" + }, + "blocklist": { + "description": "Name of the blocklist to use", + "title": "Blocklist", + "type": "string", + "x-stream-index": "022" + }, + "blocklist_behavior": { + "description": "Sets behavior of blocklist", + "enum": ["flag", "block", "shadow_block"], + "title": "Blocklist behavior", + "type": "string", + "x-stream-index": "023" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "024" + }, + "commands": { + "description": "List of commands that channel supports", + "items": { "type": "string" }, + "title": "Commands", + "type": "array", + "x-stream-index": "019" + }, + "connect_events": { + "description": "Connect events support", + "title": "Connect events", + "type": "boolean", + "x-stream-index": "004" + }, + "custom_events": { + "description": "Enables custom events", + "title": "Custom events", + "type": "boolean", + "x-stream-index": "011" + }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "021" + }, + "mark_messages_pending": { + "description": "Marks messages as pending by default", + "title": "Mark messages pending", + "type": "boolean", + "x-stream-index": "013" + }, + "max_message_length": { + "description": "Number of maximum message characters", + "format": "int32", + "title": "Maximum message length", + "type": "integer", + "x-stream-index": "016" + }, + "message_retention": { "type": "string", "x-stream-index": "015" }, + "mutes": { + "description": "Enables mutes", + "title": "Mutes", + "type": "boolean", + "x-stream-index": "008" + }, + "name": { + "description": "Channel type name", + "title": "Name", + "type": "string", + "x-stream-index": "001" + }, + "permissions": { + "description": "List of permissions for the channel type", + "items": { "$ref": "#/components/schemas/PolicyRequest" }, + "title": "Permissions", + "type": "array", + "x-stream-index": "020" + }, + "polls": { + "description": "Enables polls", + "title": "Polls", + "type": "boolean", + "x-stream-index": "014" + }, + "push_notifications": { + "description": "Enables push notifications", + "title": "Push notifications", + "type": "boolean", + "x-stream-index": "012" + }, + "reactions": { + "description": "Enables message reactions", + "title": "Reactions", + "type": "boolean", + "x-stream-index": "005" + }, + "read_events": { + "description": "Read events support", + "title": "Read events", + "type": "boolean", + "x-stream-index": "003" + }, + "replies": { + "description": "Enables message replies (threads)", + "title": "Replies", + "type": "boolean", + "x-stream-index": "006" + }, + "search": { + "description": "Enables message search", + "title": "Search", + "type": "boolean", + "x-stream-index": "007" + }, + "typing_events": { + "description": "Typing events support", + "title": "Typing events", + "type": "boolean", + "x-stream-index": "002" + }, + "uploads": { + "description": "Enables file uploads", + "title": "Uploads", + "type": "boolean", + "x-stream-index": "009" + }, + "url_enrichment": { + "description": "Enables URL enrichment", + "title": "URL enrichment", + "type": "boolean", + "x-stream-index": "010" + } + }, + "required": [ + "name", + "max_message_length", + "automod", + "automod_behavior" + ], + "type": "object" + }, + "CreateChannelTypeResponse": { + "nullable": true, + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.001.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "001.001.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.001.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "001.001.025" + }, + "blocklist": { "type": "string", "x-stream-index": "001.001.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "001.001.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "001.001.023" + }, + "commands": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.003" + }, + "connect_events": { + "type": "boolean", + "x-stream-index": "001.001.004" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002.003" + }, + "custom_events": { + "type": "boolean", + "x-stream-index": "001.001.012" + }, + "duration": { "type": "string", "x-stream-index": "004.001" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "003" + }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "001.001.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "001.001.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "001.001.009" }, + "name": { "type": "string", "x-stream-index": "001.001.001" }, + "permissions": { + "items": { "$ref": "#/components/schemas/PolicyRequest" }, + "type": "array", + "x-stream-index": "002" + }, + "polls": { "type": "boolean", "x-stream-index": "001.001.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "001.001.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "001.001.008" }, + "reactions": { "type": "boolean", "x-stream-index": "001.001.006" }, + "read_events": { "type": "boolean", "x-stream-index": "001.001.003" }, + "reminders": { "type": "boolean", "x-stream-index": "001.001.014" }, + "replies": { "type": "boolean", "x-stream-index": "001.001.007" }, + "search": { "type": "boolean", "x-stream-index": "001.001.005" }, + "typing_events": { + "type": "boolean", + "x-stream-index": "001.001.002" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.002.004" + }, + "uploads": { "type": "boolean", "x-stream-index": "001.001.010" }, + "url_enrichment": { + "type": "boolean", + "x-stream-index": "001.001.011" + } + }, + "required": [ + "name", + "typing_events", + "read_events", + "connect_events", + "search", + "reactions", + "replies", + "quotes", + "mutes", + "uploads", + "url_enrichment", + "custom_events", + "push_notifications", + "reminders", + "mark_messages_pending", + "polls", + "message_retention", + "max_message_length", + "automod", + "automod_behavior", + "created_at", + "updated_at", + "commands", + "permissions", + "grants", + "duration" + ], + "type": "object" + }, + "CreateCommandRequest": { + "description": "Represents custom chat command", + "nullable": true, + "properties": { + "args": { + "description": "Arguments help text, shown in commands auto-completion", + "maxLength": 255, + "title": "Arguments", + "type": "string", + "x-stream-index": "003" + }, + "description": { + "description": "Description, shown in commands auto-completion", + "maxLength": 255, + "title": "Description", + "type": "string", + "x-stream-index": "002" + }, + "name": { + "description": "Unique command name", + "maxLength": 255, + "minLength": 1, + "title": "Name", + "type": "string", + "x-stream-index": "001" + }, + "set": { + "description": "Set name used for grouping commands", + "maxLength": 255, + "title": "Set", + "type": "string", + "x-stream-index": "004" + } + }, + "required": ["name", "description"], + "title": "Command", + "type": "object" + }, + "CreateCommandResponse": { + "nullable": true, + "properties": { + "command": { + "$ref": "#/components/schemas/Command", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "CreateDeviceRequest": { + "nullable": true, + "properties": { + "id": { + "maxLength": 255, + "minLength": 1, + "type": "string", + "x-stream-index": "001" + }, + "push_provider": { + "enum": ["firebase", "apn", "huawei", "xiaomi"], + "type": "string", + "x-stream-index": "002" + }, + "push_provider_name": { "type": "string", "x-stream-index": "003" }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "005.002" + }, + "user_id": { "type": "string", "x-stream-index": "005.001" }, + "voip_token": { "type": "boolean", "x-stream-index": "004" } + }, + "required": ["id", "push_provider"], + "type": "object" + }, + "CreateExternalStorageRequest": { + "nullable": true, + "properties": { + "aws_s3": { + "$ref": "#/components/schemas/S3Request", + "x-stream-index": "003.004" + }, + "azure_blob": { + "$ref": "#/components/schemas/AzureRequest", + "x-stream-index": "003.006" + }, + "bucket": { "type": "string", "x-stream-index": "003.002" }, + "gcs_credentials": { "type": "string", "x-stream-index": "003.005" }, + "name": { "type": "string", "x-stream-index": "001" }, + "path": { "type": "string", "x-stream-index": "003.003" }, + "storage_type": { "type": "string", "x-stream-index": "003.001" } + }, + "required": ["name", "storage_type", "bucket"], + "type": "object" + }, + "CreateExternalStorageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "CreateGuestRequest": { + "nullable": true, + "properties": { + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "001" + } + }, + "required": ["user"], + "type": "object" + }, + "CreateGuestResponse": { + "nullable": true, + "properties": { + "access_token": { + "description": "the access token to authenticate the user", + "title": "Access token", + "type": "string", + "x-stream-index": "002" + }, + "duration": { "type": "string", "x-stream-index": "003.001" }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "title": "User", + "x-stream-index": "001" + } + }, + "required": ["user", "access_token", "duration"], + "type": "object" + }, + "CreateImportRequest": { + "nullable": true, + "properties": { + "mode": { + "enum": ["insert", "upsert"], + "type": "string", + "x-stream-index": "002" + }, + "path": { "type": "string", "x-stream-index": "001" } + }, + "required": ["path", "mode"], + "type": "object" + }, + "CreateImportResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "import_task": { + "$ref": "#/components/schemas/ImportTask", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "CreateImportURLRequest": { + "nullable": true, + "properties": { + "filename": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "CreateImportURLResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "path": { "type": "string", "x-stream-index": "001" }, + "upload_url": { "type": "string", "x-stream-index": "002" } + }, + "required": ["path", "upload_url", "duration"], + "type": "object" + }, + "CreatePollOptionRequest": { + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "004" + }, + "position": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "text": { "type": "string", "x-stream-index": "002" }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "005.002" + }, + "user_id": { "type": "string", "x-stream-index": "005.001" } + }, + "required": ["text"], + "type": "object" + }, + "CreatePollRequest": { + "description": "Contains all information needed to create a new poll", + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "011" + }, + "allow_answers": { + "description": "Indicates whether users can suggest user defined answers", + "title": "Allow answers", + "type": "boolean", + "x-stream-index": "009" + }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "008" + }, + "description": { + "description": "A description of the poll", + "title": "Description", + "type": "string", + "x-stream-index": "003" + }, + "enforce_unique_vote": { + "description": "Indicates whether users can cast multiple votes", + "title": "Multiple choice", + "type": "boolean", + "x-stream-index": "006" + }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "is_closed": { + "description": "Indicates whether the poll is open for voting", + "title": "Is closed", + "type": "boolean", + "x-stream-index": "010" + }, + "max_votes_allowed": { + "description": "Indicates the maximum amount of votes a user can cast", + "format": "int32", + "maximum": 10, + "title": "Maximum votes allowed", + "type": "integer", + "x-stream-index": "007" + }, + "name": { + "description": "The name of the poll", + "title": "Name", + "type": "string", + "x-stream-index": "002" + }, + "options": { + "items": { "$ref": "#/components/schemas/PollOptionInput" }, + "maximum": 100, + "type": "array", + "x-stream-index": "004" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "012.002" + }, + "user_id": { "type": "string", "x-stream-index": "012.001" }, + "voting_visibility": { + "enum": ["anonymous", "public"], + "type": "string", + "x-stream-index": "005" + } + }, + "required": ["name"], + "title": "Create Poll Request", + "type": "object" + }, + "CreateRoleRequest": { + "nullable": true, + "properties": { + "name": { + "description": "Role name", + "maxLength": 64, + "title": "Name", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["name"], + "type": "object" + }, + "CreateRoleResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "role": { + "$ref": "#/components/schemas/Role", + "x-stream-index": "002" + } + }, + "required": ["duration", "role"], + "type": "object" + }, + "DataDogInfo": { + "properties": { + "api_key": { "type": "string", "x-stream-index": "001" }, + "enabled": { "type": "boolean", "x-stream-index": "003" }, + "site": { "type": "string", "x-stream-index": "002" } + }, + "type": "object" + }, + "DeactivateUserRequest": { + "nullable": true, + "properties": { + "created_by_id": { + "description": "ID of the user who deactivated the user", + "title": "Created by ID", + "type": "string", + "x-stream-index": "003" + }, + "mark_messages_deleted": { + "description": "Makes messages appear to be deleted", + "title": "Mark messages deleted", + "type": "boolean", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "DeactivateUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "DeactivateUsersRequest": { + "nullable": true, + "properties": { + "created_by_id": { + "description": "ID of the user who deactivated the users", + "title": "Created by ID", + "type": "string", + "x-stream-index": "003" + }, + "mark_channels_deleted": { + "type": "boolean", + "x-stream-index": "004" + }, + "mark_messages_deleted": { + "description": "Makes messages appear to be deleted", + "title": "Mark messages deleted", + "type": "boolean", + "x-stream-index": "002" + }, + "user_ids": { + "description": "User IDs to deactivate", + "items": { "type": "string" }, + "maximum": 100, + "minimum": 1, + "title": "User IDs", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["user_ids"], + "type": "object" + }, + "DeactivateUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "task_id": { "type": "string", "x-stream-index": "001" } + }, + "required": ["task_id", "duration"], + "type": "object" + }, + "DeleteChannelResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "DeleteChannelsRequest": { + "nullable": true, + "properties": { + "cids": { + "description": "All channels that should be deleted", + "items": { "type": "string" }, + "maximum": 100, + "minimum": 1, + "title": "Channels CID", + "type": "array", + "x-stream-index": "001" + }, + "hard_delete": { + "description": "Specify if channels and all ressources should be hard deleted", + "title": "Hard delete", + "type": "boolean", + "x-stream-index": "002" + } + }, + "required": ["cids"], + "type": "object" + }, + "DeleteChannelsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "result": { + "additionalProperties": { + "$ref": "#/components/schemas/DeleteChannelsResult" + }, + "type": "object", + "x-stream-index": "001" + }, + "task_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["duration"], + "type": "object" + }, + "DeleteChannelsResult": { + "nullable": true, + "properties": { + "error": { "type": "string", "x-stream-index": "003" }, + "status": { "type": "string", "x-stream-index": "002" } + }, + "required": ["status"], + "type": "object" + }, + "DeleteCommandResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "name": { "type": "string", "x-stream-index": "001" } + }, + "required": ["name", "duration"], + "type": "object" + }, + "DeleteExternalStorageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "DeleteMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "message": { + "$ref": "#/components/schemas/MessageResponse", + "x-stream-index": "001" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "DeleteUsersRequest": { + "nullable": true, + "properties": { + "calls": { + "enum": ["soft", "hard"], + "type": "string", + "x-stream-index": "001.002.004" + }, + "conversations": { + "description": "Conversation channels delete mode.\nConversation channel is any channel which only has two members one of which is the user being deleted.\n\n* null or empty string - doesn't delete any conversation channels\n* soft - marks all conversation channels as deleted (same effect as Delete Channels with 'hard' option disabled)\n* hard - deletes channel and all its data completely including messages (same effect as Delete Channels with 'hard' option enabled)\n", + "enum": ["soft", "hard"], + "title": "Delete Conversations", + "type": "string", + "x-stream-index": "001.002.003" + }, + "messages": { + "description": "Message delete mode.\n\n* null or empty string - doesn't delete user messages\n* soft - marks all user messages as deleted without removing any related message data\n* pruning - marks all user messages as deleted, nullifies message information and removes some message data such as reactions and flags\n* hard - deletes messages completely with all related information\n", + "enum": ["soft", "pruning", "hard"], + "title": "Delete Messages", + "type": "string", + "x-stream-index": "001.002.002" + }, + "new_call_owner_id": { + "type": "string", + "x-stream-index": "001.002.006" + }, + "new_channel_owner_id": { + "type": "string", + "x-stream-index": "001.002.005" + }, + "user": { + "description": "User delete mode.\n\n* soft - marks user as deleted and retains all user data\n* pruning - marks user as deleted and nullifies user information\n* hard - deletes user completely. Requires 'hard' option for messages and conversations as well\n", + "enum": ["soft", "pruning", "hard"], + "title": "Delete User", + "type": "string", + "x-stream-index": "001.002.001" + }, + "user_ids": { + "description": "IDs of users to delete", + "items": { "type": "string" }, + "maximum": 100, + "minimum": 1, + "title": "User IDs", + "type": "array", + "x-stream-index": "001.001" + } + }, + "required": ["user_ids"], + "type": "object" + }, + "DeleteUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "task_id": { "type": "string", "x-stream-index": "001" } + }, + "required": ["task_id", "duration"], + "type": "object" + }, + "Device": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "002.002" + }, + "disabled": { "type": "boolean", "x-stream-index": "002.003" }, + "disabled_reason": { "type": "string", "x-stream-index": "002.004" }, + "id": { + "description": "Device ID", + "title": "ID", + "type": "string", + "x-stream-index": "002.001.004" + }, + "push_provider": { + "enum": ["firebase", "apn", "huawei", "xiaomi"], + "title": "Push provider", + "type": "string", + "x-stream-index": "002.001.001" + }, + "push_provider_name": { + "description": "Name of the push provider configuration", + "title": "Push provider name", + "type": "string", + "x-stream-index": "002.001.003" + }, + "user_id": { "type": "string", "x-stream-index": "004" }, + "voip": { "type": "boolean", "x-stream-index": "002.001.005" } + }, + "required": ["push_provider", "id", "created_at", "user_id"], + "type": "object" + }, + "DeviceErrorInfo": { + "properties": { + "error_message": { "type": "string", "x-stream-index": "003" }, + "provider": { "type": "string", "x-stream-index": "001" }, + "provider_name": { "type": "string", "x-stream-index": "002" } + }, + "required": ["provider", "provider_name", "error_message"], + "type": "object" + }, + "EdgeResponse": { + "properties": { + "continent_code": { "type": "string", "x-stream-index": "007.003" }, + "country_iso_code": { "type": "string", "x-stream-index": "007.002" }, + "green": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "latency_test_url": { "type": "string", "x-stream-index": "002" }, + "latitude": { + "format": "float", + "type": "number", + "x-stream-index": "006.001" + }, + "longitude": { + "format": "float", + "type": "number", + "x-stream-index": "006.002" + }, + "red": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + }, + "subdivision_iso_code": { + "type": "string", + "x-stream-index": "007.001" + }, + "yellow": { + "format": "int32", + "type": "integer", + "x-stream-index": "004" + } + }, + "required": [ + "id", + "latency_test_url", + "green", + "yellow", + "red", + "latitude", + "longitude", + "subdivision_iso_code", + "country_iso_code", + "continent_code" + ], + "type": "object" + }, + "EgressHLSResponse": { + "properties": { + "playlist_url": { "type": "string", "x-stream-index": "001" } + }, + "required": ["playlist_url"], + "type": "object" + }, + "EgressRTMPResponse": { + "properties": { + "name": { "type": "string", "x-stream-index": "001" }, + "stream_key": { "type": "string", "x-stream-index": "003" }, + "url": { "type": "string", "x-stream-index": "002" } + }, + "required": ["name", "url", "stream_key"], + "type": "object" + }, + "EgressResponse": { + "properties": { + "broadcasting": { "type": "boolean", "x-stream-index": "001" }, + "hls": { + "$ref": "#/components/schemas/EgressHLSResponse", + "x-stream-index": "002" + }, + "rtmps": { + "items": { "$ref": "#/components/schemas/EgressRTMPResponse" }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["broadcasting", "rtmps"], + "type": "object" + }, + "EndCallRequest": { "nullable": true, "type": "object" }, + "EndCallResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "ErrorResult": { + "properties": { + "stacktrace": { "type": "string", "x-stream-index": "003" }, + "type": { "type": "string", "x-stream-index": "001" }, + "version": { "type": "string", "x-stream-index": "004" } + }, + "required": ["type", "description"], + "type": "object" + }, + "EventNotificationSettings": { + "properties": { + "apns": { + "$ref": "#/components/schemas/APNS", + "x-stream-index": "002" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled", "apns"], + "type": "object" + }, + "EventRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "parent_id": { "type": "string", "x-stream-index": "002" }, + "type": { "type": "string", "x-stream-index": "001" }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" } + }, + "required": ["type"], + "type": "object" + }, + "EventResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "event": { + "$ref": "#/components/schemas/WSEvent", + "x-stream-index": "001" + } + }, + "required": ["event", "duration"], + "type": "object" + }, + "ExportChannelsRequest": { + "nullable": true, + "properties": { + "channels": { + "description": "Export options for channels", + "items": { "$ref": "#/components/schemas/ChannelExport" }, + "maximum": 25, + "minimum": 1, + "title": "Channels", + "type": "array", + "x-stream-index": "002.001" + }, + "clear_deleted_message_text": { + "description": "Set if deleted message text should be cleared", + "title": "Clear deleted message text", + "type": "boolean", + "x-stream-index": "002.002" + }, + "export_users": { "type": "boolean", "x-stream-index": "002.005" }, + "include_soft_deleted_channels": { + "description": "Set if you want to include deleted channels", + "title": "Include soft deleted channels", + "type": "boolean", + "x-stream-index": "002.004" + }, + "include_truncated_messages": { + "description": "Set if you want to include truncated messages", + "title": "Include truncated messages", + "type": "boolean", + "x-stream-index": "002.003" + }, + "version": { "type": "string", "x-stream-index": "001" } + }, + "required": ["channels"], + "type": "object" + }, + "ExportChannelsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "task_id": { "type": "string", "x-stream-index": "001" } + }, + "required": ["task_id", "duration"], + "type": "object" + }, + "ExportChannelsResult": { + "properties": { + "path": { + "description": "S3 path of result", + "title": "PathPrefix", + "type": "string", + "x-stream-index": "002" + }, + "s3_bucket_name": { + "description": "S3 bucket name result", + "title": "S3 bucket name", + "type": "string", + "x-stream-index": "003" + }, + "url": { + "description": "URL of result", + "title": "URL", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["url"], + "type": "object" + }, + "ExportUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "004.001" + }, + "messages": { + "items": { "$ref": "#/components/schemas/Message" }, + "type": "array", + "x-stream-index": "002" + }, + "reactions": { + "items": { "$ref": "#/components/schemas/Reaction" }, + "type": "array", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "ExportUsersRequest": { + "nullable": true, + "properties": { + "user_ids": { + "items": { "type": "string" }, + "maximum": 25, + "minimum": 1, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["user_ids"], + "type": "object" + }, + "ExportUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "task_id": { "type": "string", "x-stream-index": "001" } + }, + "required": ["task_id", "duration"], + "type": "object" + }, + "ExternalStorageResponse": { + "properties": { + "bucket": { "type": "string", "x-stream-index": "003" }, + "name": { "type": "string", "x-stream-index": "001" }, + "path": { "type": "string", "x-stream-index": "004" }, + "type": { "type": "string", "x-stream-index": "002" } + }, + "required": ["name", "type", "bucket", "path"], + "type": "object" + }, + "Field": { + "nullable": true, + "properties": { + "short": { "type": "boolean", "x-stream-index": "003" }, + "title": { "type": "string", "x-stream-index": "001" }, + "value": { "type": "string", "x-stream-index": "002" } + }, + "required": ["title", "value", "short"], + "type": "object" + }, + "FileDeleteResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "FileUploadConfig": { + "properties": { + "allowed_file_extensions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + }, + "allowed_mime_types": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + }, + "blocked_file_extensions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002" + }, + "blocked_mime_types": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + }, + "size_limit": { + "format": "int32", + "maximum": 104857600, + "minimum": 0, + "type": "integer", + "x-stream-index": "005" + } + }, + "required": ["size_limit"], + "type": "object" + }, + "FileUploadRequest": { + "nullable": true, + "properties": { + "file": { + "description": "file field", + "title": "File", + "type": "string", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/OnlyUserID", + "description": "user for the request **server side only**", + "title": "User", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "FileUploadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" }, + "file": { + "description": "URL to the uploaded asset. Should be used to put to `asset_url` attachment field", + "title": "File", + "type": "string", + "x-stream-index": "002" + }, + "thumb_url": { + "description": "URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field", + "title": "Thumbnail URL", + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "FirebaseConfig": { + "properties": { + "Disabled": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "001" + }, + "apn_template": { "type": "string", "x-stream-index": "005" }, + "credentials_json": { "type": "string", "x-stream-index": "006" }, + "data_template": { "type": "string", "x-stream-index": "004" }, + "notification_template": { + "type": "string", + "x-stream-index": "003" + }, + "server_key": { "type": "string", "x-stream-index": "002" } + }, + "type": "object" + }, + "FirebaseConfigFields": { + "properties": { + "apn_template": { "type": "string", "x-stream-index": "004" }, + "credentials_json": { "type": "string", "x-stream-index": "006" }, + "data_template": { "type": "string", "x-stream-index": "003" }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "notification_template": { + "type": "string", + "x-stream-index": "002" + }, + "server_key": { "type": "string", "x-stream-index": "005" } + }, + "required": [ + "enabled", + "notification_template", + "data_template", + "apn_template" + ], + "type": "object" + }, + "Flag": { + "description": "Contains information about flagged user or message", + "properties": { + "approved_at": { + "description": "Date of the approval", + "format": "date-time", + "title": "Approved at", + "type": "number", + "x-stream-index": "015" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "011" + }, + "created_by_automod": { "type": "boolean", "x-stream-index": "004" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "022" + }, + "details": { + "$ref": "#/components/schemas/FlagDetails", + "x-stream-index": "021" + }, + "reason": { "type": "string", "x-stream-index": "020" }, + "rejected_at": { + "description": "Date of the rejection", + "format": "date-time", + "title": "Rejected at", + "type": "number", + "x-stream-index": "016" + }, + "reviewed_at": { + "description": "Date of the review", + "format": "date-time", + "title": "Reviewed at", + "type": "number", + "x-stream-index": "013" + }, + "reviewed_by": { "type": "string", "x-stream-index": "014" }, + "target_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "008" + }, + "target_message_id": { + "description": "ID of flagged message", + "title": "Target Message ID", + "type": "string", + "x-stream-index": "007" + }, + "target_user": { + "$ref": "#/components/schemas/UserObject", + "description": "Flagged user", + "title": "User", + "x-stream-index": "010" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "012" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "User who flagged a message or a user", + "title": "User", + "x-stream-index": "006" + } + }, + "required": ["created_by_automod", "created_at", "updated_at"], + "title": "Flag", + "type": "object" + }, + "FlagDetails": { + "properties": { + "Extra": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "002" + }, + "automod": { + "$ref": "#/components/schemas/AutomodDetails", + "x-stream-index": "001" + }, + "original_text": { "type": "string", "x-stream-index": "003" } + }, + "required": ["Extra", "original_text"], + "type": "object" + }, + "FlagFeedback": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "005" + }, + "labels": { + "items": { "$ref": "#/components/schemas/Label" }, + "type": "array", + "x-stream-index": "006" + }, + "message_id": { "type": "string", "x-stream-index": "004" } + }, + "required": ["message_id", "created_at", "labels"], + "type": "object" + }, + "FlagMessageDetails": { + "properties": { + "pin_changed": { "type": "boolean", "x-stream-index": "002" }, + "should_enrich": { "type": "boolean", "x-stream-index": "003" }, + "skip_push": { "type": "boolean", "x-stream-index": "004" }, + "updated_by_id": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "FlagRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004" + }, + "reason": { + "maxLength": 255, + "type": "string", + "x-stream-index": "003" + }, + "target_message_id": { + "description": "ID of the message when reporting a message", + "title": "Target Message ID", + "type": "string", + "x-stream-index": "001" + }, + "target_user_id": { + "description": "ID of the user when reporting a user", + "title": "Target User ID", + "type": "string", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "005.002" + }, + "user_id": { "type": "string", "x-stream-index": "005.001" } + }, + "type": "object" + }, + "FlagResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "flag": { + "$ref": "#/components/schemas/Flag", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "FullUserResponse": { + "properties": { + "banned": { "type": "boolean", "x-stream-index": "001.011" }, + "channel_mutes": { + "items": { "$ref": "#/components/schemas/ChannelMute" }, + "type": "array", + "x-stream-index": "007" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.004" + }, + "deactivated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.015" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.010" + }, + "devices": { + "items": { "$ref": "#/components/schemas/Device" }, + "type": "array", + "x-stream-index": "004" + }, + "id": { "type": "string", "x-stream-index": "001.001" }, + "image": { "type": "string", "x-stream-index": "001.003" }, + "invisible": { "type": "boolean", "x-stream-index": "005" }, + "language": { "type": "string", "x-stream-index": "001.005" }, + "last_active": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.013" + }, + "latest_hidden_channels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "011" + }, + "mutes": { + "items": { "$ref": "#/components/schemas/UserMute" }, + "type": "array", + "x-stream-index": "006" + }, + "name": { "type": "string", "x-stream-index": "001.002" }, + "online": { "type": "boolean", "x-stream-index": "001.012" }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "003" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "002" + }, + "revoke_tokens_issued_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.014" + }, + "role": { "type": "string", "x-stream-index": "001.006" }, + "shadow_banned": { "type": "boolean", "x-stream-index": "012" }, + "teams": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.007" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "unread_channels": { + "format": "int32", + "type": "integer", + "x-stream-index": "009" + }, + "unread_threads": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.009" + } + }, + "required": [ + "id", + "custom", + "language", + "role", + "teams", + "created_at", + "updated_at", + "banned", + "online", + "devices", + "mutes", + "channel_mutes", + "total_unread_count", + "unread_channels", + "unread_threads", + "shadow_banned" + ], + "type": "object" + }, + "GeofenceResponse": { + "nullable": true, + "properties": { + "country_codes": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + }, + "description": { "type": "string", "x-stream-index": "003" }, + "name": { "type": "string", "x-stream-index": "001" }, + "type": { "type": "string", "x-stream-index": "002" } + }, + "required": ["name"], + "type": "object" + }, + "GeofenceSettings": { + "properties": { + "names": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["names"], + "type": "object" + }, + "GeofenceSettingsRequest": { + "properties": { + "names": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "GeofenceSettingsResponse": { + "properties": { + "names": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["names"], + "type": "object" + }, + "GeolocationResult": { + "properties": { + "accuracy_radius": { + "format": "int32", + "type": "integer", + "x-stream-index": "004" + }, + "city": { "type": "string", "x-stream-index": "003.001" }, + "continent": { "type": "string", "x-stream-index": "003.004" }, + "continent_code": { "type": "string", "x-stream-index": "002.003" }, + "country": { "type": "string", "x-stream-index": "003.003" }, + "country_iso_code": { "type": "string", "x-stream-index": "002.002" }, + "latitude": { + "format": "float", + "type": "number", + "x-stream-index": "001.001" + }, + "longitude": { + "format": "float", + "type": "number", + "x-stream-index": "001.002" + }, + "subdivision": { "type": "string", "x-stream-index": "003.002" }, + "subdivision_iso_code": { + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": [ + "latitude", + "longitude", + "subdivision_iso_code", + "country_iso_code", + "continent_code", + "city", + "subdivision", + "country", + "continent", + "accuracy_radius" + ], + "type": "object" + }, + "GetApplicationResponse": { + "nullable": true, + "properties": { + "app": { + "$ref": "#/components/schemas/AppResponseFields", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["app", "duration"], + "type": "object" + }, + "GetBlockListResponse": { + "nullable": true, + "properties": { + "blocklist": { + "$ref": "#/components/schemas/BlockList", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "GetCallResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "blocked_users", + "duration" + ], + "type": "object" + }, + "GetCallStatsResponse": { + "nullable": true, + "properties": { + "call_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "call_timeline": { + "$ref": "#/components/schemas/CallTimeline", + "x-stream-index": "012" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "004" + }, + "latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "005" + }, + "max_freezes_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "max_participants": { + "format": "int32", + "type": "integer", + "x-stream-index": "006" + }, + "max_total_quality_limitation_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "009" + }, + "participant_report": { + "items": { "$ref": "#/components/schemas/UserStats" }, + "type": "array", + "x-stream-index": "013" + }, + "publishing_participants": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "quality_score": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "sfu_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "sfus": { + "items": { "$ref": "#/components/schemas/SFULocationResponse" }, + "type": "array", + "x-stream-index": "011" + } + }, + "required": [ + "duration", + "call_duration_seconds", + "quality_score", + "max_participants", + "publishing_participants", + "sfu_count", + "max_total_quality_limitation_duration_seconds", + "max_freezes_duration_seconds", + "sfus", + "participant_report" + ], + "type": "object" + }, + "GetCallTypeResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.005" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "external_storage": { "type": "string", "x-stream-index": "001.007" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.002" + }, + "name": { "type": "string", "x-stream-index": "001.001" }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "001.004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "001.003" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at", + "duration" + ], + "type": "object" + }, + "GetCommandResponse": { + "nullable": true, + "properties": { + "args": { "type": "string", "x-stream-index": "001.006" }, + "created_at": { + "format": "date-time", + "readOnly": true, + "type": "number", + "x-stream-index": "001.001" + }, + "description": { "type": "string", "x-stream-index": "001.005" }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "name": { "type": "string", "x-stream-index": "001.004" }, + "set": { "type": "string", "x-stream-index": "001.007" }, + "updated_at": { + "format": "date-time", + "readOnly": true, + "type": "number", + "x-stream-index": "001.002" + } + }, + "required": ["name", "description", "args", "set", "duration"], + "type": "object" + }, + "GetCustomPermissionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "permission": { + "$ref": "#/components/schemas/Permission", + "x-stream-index": "001" + } + }, + "required": ["permission", "duration"], + "type": "object" + }, + "GetEdgesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "edges": { + "items": { "$ref": "#/components/schemas/EdgeResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["edges", "duration"], + "type": "object" + }, + "GetExportChannelsStatusResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.003" + }, + "duration": { "type": "string", "x-stream-index": "001.007.001" }, + "error": { + "$ref": "#/components/schemas/ErrorResult", + "description": "Contains task error in case of failure", + "title": "Error", + "x-stream-index": "003" + }, + "result": { + "$ref": "#/components/schemas/ExportChannelsResult", + "description": "Contains task result in case of success", + "title": "Result", + "x-stream-index": "002" + }, + "status": { "type": "string", "x-stream-index": "001.002" }, + "task_id": { "type": "string", "x-stream-index": "001.001" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.004" + } + }, + "required": [ + "task_id", + "status", + "created_at", + "updated_at", + "duration" + ], + "type": "object" + }, + "GetImportResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "import_task": { + "$ref": "#/components/schemas/ImportTask", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "GetManyMessagesResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.002.001" }, + "messages": { + "description": "List of messages", + "items": { "$ref": "#/components/schemas/Message" }, + "title": "Messages", + "type": "array", + "x-stream-index": "001.001" + } + }, + "required": ["messages", "duration"], + "type": "object" + }, + "GetMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/MessageWithChannelResponse", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "GetOGResponse": { + "nullable": true, + "properties": { + "actions": { + "items": { "$ref": "#/components/schemas/Action" }, + "type": "array", + "x-stream-index": "001.015" + }, + "asset_url": { + "description": "URL of detected video or audio", + "title": "Image URL", + "type": "string", + "x-stream-index": "001.017" + }, + "author_icon": { "type": "string", "x-stream-index": "001.007" }, + "author_link": { + "description": "og:site", + "title": "Author Link", + "type": "string", + "x-stream-index": "001.006" + }, + "author_name": { + "description": "og:site_name", + "title": "Author Name", + "type": "string", + "x-stream-index": "001.005" + }, + "color": { "type": "string", "x-stream-index": "001.003" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.018" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "fallback": { "type": "string", "x-stream-index": "001.002" }, + "fields": { + "items": { "$ref": "#/components/schemas/Field" }, + "type": "array", + "x-stream-index": "001.016" + }, + "footer": { "type": "string", "x-stream-index": "001.013" }, + "footer_icon": { "type": "string", "x-stream-index": "001.014" }, + "giphy": { + "$ref": "#/components/schemas/Images", + "x-stream-index": "001.019" + }, + "image_url": { + "description": "URL of detected image", + "title": "Image URL", + "type": "string", + "x-stream-index": "001.011" + }, + "og_scrape_url": { + "description": "extracted url from the text", + "title": "OG Scrape URL", + "type": "string", + "x-stream-index": "001.020" + }, + "original_height": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.022" + }, + "original_width": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.021" + }, + "pretext": { "type": "string", "x-stream-index": "001.004" }, + "text": { + "description": "og:description", + "title": "Text", + "type": "string", + "x-stream-index": "001.010" + }, + "thumb_url": { + "description": "URL of detected thumb image", + "title": "Image URL", + "type": "string", + "x-stream-index": "001.012" + }, + "title": { + "description": "og:title", + "title": "Title", + "type": "string", + "x-stream-index": "001.008" + }, + "title_link": { + "description": "og:url", + "title": "Title Link", + "type": "string", + "x-stream-index": "001.009" + }, + "type": { + "description": "Attachment type, could be empty, image, audio or video", + "title": "Type", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["custom", "duration"], + "title": "Get OG Attachment", + "type": "object", + "x-stream-docs-page-id": "og" + }, + "GetOrCreateCallRequest": { + "nullable": true, + "properties": { + "data": { + "$ref": "#/components/schemas/CallRequest", + "title": "ReadOnlyData", + "x-stream-index": "003" + }, + "members_limit": { + "format": "int32", + "maximum": 100, + "type": "integer", + "x-stream-index": "006" + }, + "notify": { + "description": "if provided it sends a notification event to the members for this call", + "title": "Notify", + "type": "boolean", + "x-stream-index": "005" + }, + "ring": { + "description": "if provided it sends a ring event to the members for this call", + "title": "Ring", + "type": "boolean", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "GetOrCreateCallResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "created": { "type": "boolean", "x-stream-index": "002" }, + "duration": { "type": "string", "x-stream-index": "003.001" }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "blocked_users", + "created", + "duration" + ], + "type": "object" + }, + "GetRateLimitsResponse": { + "nullable": true, + "properties": { + "android": { + "additionalProperties": { + "$ref": "#/components/schemas/LimitInfo" + }, + "description": "Map of endpoint rate limits for the Android platform", + "title": "Android", + "type": "object", + "x-stream-index": "002", + "x-stream-map": { + "key": "endpoint", + "title": "Endpoint name", + "description": "The name of the endpoint for which the limits apply" + } + }, + "duration": { "type": "string", "x-stream-index": "005.001" }, + "ios": { + "additionalProperties": { + "$ref": "#/components/schemas/LimitInfo" + }, + "description": "Map of endpoint rate limits for the iOS platform", + "title": "iOS", + "type": "object", + "x-stream-index": "003", + "x-stream-map": { + "key": "endpoint", + "title": "Endpoint name", + "description": "The name of the endpoint for which the limits apply" + } + }, + "server_side": { + "additionalProperties": { + "$ref": "#/components/schemas/LimitInfo" + }, + "description": "Map of endpoint rate limits for the server-side platform", + "title": "Server-side", + "type": "object", + "x-stream-index": "001", + "x-stream-map": { + "key": "endpoint", + "title": "Endpoint name", + "description": "The name of the endpoint for which the limits apply" + } + }, + "web": { + "additionalProperties": { + "$ref": "#/components/schemas/LimitInfo" + }, + "description": "Map of endpoint rate limits for the web platform", + "title": "Web", + "type": "object", + "x-stream-index": "004", + "x-stream-map": { + "key": "endpoint", + "title": "Endpoint name", + "description": "The name of the endpoint for which the limits apply" + } + } + }, + "required": ["duration"], + "title": "Get Rate Limits Response", + "type": "object", + "x-stream-docs-page-id": "rate_limits" + }, + "GetReactionsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "reactions": { + "description": "List of reactions", + "items": { "$ref": "#/components/schemas/Reaction" }, + "title": "Reactions", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["reactions", "duration"], + "type": "object" + }, + "GetRepliesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "messages": { + "items": { "$ref": "#/components/schemas/MessageResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["messages", "duration"], + "type": "object" + }, + "GetTaskResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.003" + }, + "duration": { "type": "string", "x-stream-index": "004.001" }, + "error": { + "$ref": "#/components/schemas/ErrorResult", + "description": "Error produced by task", + "title": "Error", + "x-stream-index": "003" + }, + "result": { + "additionalProperties": {}, + "description": "Result produced by task after completion", + "title": "Result", + "type": "object", + "x-stream-index": "002" + }, + "status": { + "description": "Current status of task", + "title": "Status", + "type": "string", + "x-stream-index": "001.002" + }, + "task_id": { + "description": "ID of task", + "title": "Task ID", + "type": "string", + "x-stream-index": "001.001" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.004" + } + }, + "required": [ + "task_id", + "status", + "created_at", + "updated_at", + "duration" + ], + "title": "Get Task Response", + "type": "object", + "x-stream-docs-page-id": "tasks" + }, + "GetThreadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "thread": { + "$ref": "#/components/schemas/ThreadStateResponse", + "description": "Enriched thread state", + "title": "Thread", + "x-stream-index": "001" + } + }, + "required": ["thread", "duration"], + "type": "object" + }, + "GoLiveRequest": { + "nullable": true, + "properties": { + "recording_storage_name": { + "type": "string", + "x-stream-index": "005" + }, + "start_hls": { "type": "boolean", "x-stream-index": "003" }, + "start_recording": { "type": "boolean", "x-stream-index": "004" }, + "start_transcription": { "type": "boolean", "x-stream-index": "007" }, + "transcription_storage_name": { + "type": "string", + "x-stream-index": "006" + } + }, + "type": "object" + }, + "GoLiveResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["call", "duration"], + "type": "object" + }, + "HLSSettings": { + "properties": { + "auto_on": { "type": "boolean", "x-stream-index": "001" }, + "enabled": { "type": "boolean", "x-stream-index": "002" }, + "layout": { + "$ref": "#/components/schemas/LayoutSettings", + "x-stream-index": "004" + }, + "quality_tracks": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["auto_on", "enabled", "quality_tracks"], + "type": "object" + }, + "HLSSettingsRequest": { + "properties": { + "auto_on": { "type": "boolean", "x-stream-index": "001" }, + "enabled": { "type": "boolean", "x-stream-index": "002" }, + "layout": { + "$ref": "#/components/schemas/LayoutSettingsRequest", + "title": "LayoutSettings", + "x-stream-index": "004" + }, + "quality_tracks": { + "items": { "type": "string" }, + "maximum": 3, + "minimum": 1, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["quality_tracks"], + "type": "object" + }, + "HLSSettingsResponse": { + "properties": { + "auto_on": { "type": "boolean", "x-stream-index": "001" }, + "enabled": { "type": "boolean", "x-stream-index": "002" }, + "layout": { + "$ref": "#/components/schemas/LayoutSettingsResponse", + "title": "Layout", + "x-stream-index": "004" + }, + "quality_tracks": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["auto_on", "enabled", "quality_tracks", "layout"], + "type": "object" + }, + "HideChannelRequest": { + "nullable": true, + "properties": { + "clear_history": { + "description": "Whether to clear message history of the channel or not", + "title": "Clear history", + "type": "boolean", + "x-stream-index": "001" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "003.002" + }, + "user_id": { "type": "string", "x-stream-index": "003.001" } + }, + "type": "object" + }, + "HideChannelResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "HuaweiConfig": { + "properties": { + "Disabled": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "003" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "secret": { "type": "string", "x-stream-index": "002" } + }, + "type": "object" + }, + "HuaweiConfigFields": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "id": { "type": "string", "x-stream-index": "002" }, + "secret": { "type": "string", "x-stream-index": "003" } + }, + "required": ["enabled"], + "type": "object" + }, + "ImageData": { + "properties": { + "frames": { "type": "string", "x-stream-index": "005" }, + "height": { "type": "string", "x-stream-index": "003" }, + "size": { "type": "string", "x-stream-index": "004" }, + "url": { "type": "string", "x-stream-index": "001" }, + "width": { "type": "string", "x-stream-index": "002" } + }, + "required": ["url", "width", "height", "size", "frames"], + "type": "object" + }, + "ImageSize": { + "properties": { + "crop": { + "description": "Crop mode", + "enum": ["top", "bottom", "left", "right", "center"], + "title": "Crop", + "type": "string", + "x-stream-index": "001" + }, + "height": { + "description": "Target image height", + "format": "int32", + "title": "Height", + "type": "integer", + "x-stream-index": "003" + }, + "resize": { + "description": "Resize method", + "enum": ["clip", "crop", "scale", "fill"], + "title": "Resize", + "type": "string", + "x-stream-index": "002" + }, + "width": { + "description": "Target image width", + "format": "int32", + "title": "Width", + "type": "integer", + "x-stream-index": "004" + } + }, + "title": "Image size configuration", + "type": "object" + }, + "ImageUploadRequest": { + "nullable": true, + "properties": { + "file": { "type": "string", "x-stream-index": "001.002" }, + "upload_sizes": { + "description": "field with JSON-encoded array of image size configurations", + "items": { "$ref": "#/components/schemas/ImageSize" }, + "title": "Upload sizes", + "type": "array", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/OnlyUserID", + "x-stream-index": "001.003" + } + }, + "type": "object" + }, + "ImageUploadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001.001" }, + "file": { + "description": "URL to the uploaded asset. Should be used to put to `asset_url` attachment field", + "title": "File", + "type": "string", + "x-stream-index": "001.002" + }, + "thumb_url": { + "description": "URL of the file thumbnail for supported file formats. Should be put to `thumb_url` attachment field", + "title": "Thumbnail URL", + "type": "string", + "x-stream-index": "001.003" + }, + "upload_sizes": { + "items": { "$ref": "#/components/schemas/ImageSize" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration"], + "type": "object" + }, + "Images": { + "properties": { + "fixed_height": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "002" + }, + "fixed_height_downsampled": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "004" + }, + "fixed_height_still": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "003" + }, + "fixed_width": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "005" + }, + "fixed_width_downsampled": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "007" + }, + "fixed_width_still": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "006" + }, + "original": { + "$ref": "#/components/schemas/ImageData", + "x-stream-index": "001" + } + }, + "required": [ + "original", + "fixed_height", + "fixed_height_still", + "fixed_height_downsampled", + "fixed_width", + "fixed_width_still", + "fixed_width_downsampled" + ], + "type": "object" + }, + "ImportTask": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "history": { + "items": { "$ref": "#/components/schemas/ImportTaskHistory" }, + "type": "array", + "x-stream-index": "010" + }, + "id": { "type": "string", "x-stream-index": "003" }, + "mode": { "type": "string", "x-stream-index": "006" }, + "path": { "type": "string", "x-stream-index": "005" }, + "size": { + "format": "int64", + "type": "integer", + "x-stream-index": "007" + }, + "state": { "type": "string", "x-stream-index": "008" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "012" + } + }, + "required": [ + "id", + "path", + "mode", + "state", + "history", + "created_at", + "updated_at" + ], + "type": "object" + }, + "ImportTaskHistory": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "next_state": { "type": "string", "x-stream-index": "006" }, + "prev_state": { "type": "string", "x-stream-index": "005" } + }, + "required": ["prev_state", "next_state", "created_at"], + "type": "object" + }, + "Label": { + "properties": { + "harm_labels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + }, + "name": { "type": "string", "x-stream-index": "001" }, + "phrase_list_ids": { + "items": { "format": "int32", "type": "integer" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["name"], + "type": "object" + }, + "LabelThresholds": { + "properties": { + "block": { + "description": "Threshold for automatic message block", + "format": "float", + "maximum": 1, + "minimum": 0, + "title": "Block", + "type": "number", + "x-stream-index": "002" + }, + "flag": { + "description": "Threshold for automatic message flag", + "format": "float", + "maximum": 1, + "minimum": 0, + "title": "Flag", + "type": "number", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "LayoutSettings": { + "properties": { + "external_app_url": { "type": "string", "x-stream-index": "003" }, + "external_css_url": { "type": "string", "x-stream-index": "004" }, + "name": { + "enum": [ + "spotlight", + "grid", + "single-participant", + "mobile", + "custom" + ], + "type": "string", + "x-stream-index": "001" + }, + "options": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["name", "external_app_url", "external_css_url"], + "type": "object" + }, + "LayoutSettingsRequest": { + "properties": { + "external_app_url": { "type": "string", "x-stream-index": "003" }, + "external_css_url": { "type": "string", "x-stream-index": "004" }, + "name": { + "enum": [ + "spotlight", + "grid", + "single-participant", + "mobile", + "custom" + ], + "type": "string", + "x-stream-index": "001" + }, + "options": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["name"], + "type": "object" + }, + "LayoutSettingsResponse": { + "properties": { + "external_app_url": { "type": "string", "x-stream-index": "003" }, + "external_css_url": { "type": "string", "x-stream-index": "004" }, + "name": { + "enum": [ + "spotlight", + "grid", + "single-participant", + "mobile", + "custom" + ], + "type": "string", + "x-stream-index": "001" + }, + "options": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["name", "external_app_url", "external_css_url"], + "type": "object" + }, + "LimitInfo": { + "properties": { + "limit": { + "description": "The maximum number of calls allowed for the time window", + "format": "int32", + "title": "Limit", + "type": "integer", + "x-stream-index": "001" + }, + "remaining": { + "description": "The number of remaining calls in the current window", + "format": "int64", + "title": "Remaining", + "type": "integer", + "x-stream-index": "002" + }, + "reset": { + "description": "The Unix timestamp of the next window", + "format": "int64", + "title": "Reset", + "type": "integer", + "x-stream-index": "003" + } + }, + "required": ["limit", "remaining", "reset"], + "title": "Rate Limit info", + "type": "object", + "x-stream-docs-page-id": "rate_limits" + }, + "ListBlockListResponse": { + "nullable": true, + "properties": { + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockList" }, + "type": "array", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["blocklists", "duration"], + "type": "object" + }, + "ListCallTypeResponse": { + "nullable": true, + "properties": { + "call_types": { + "additionalProperties": { + "$ref": "#/components/schemas/CallTypeResponse" + }, + "type": "object", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["call_types", "duration"], + "type": "object" + }, + "ListChannelTypesResponse": { + "nullable": true, + "properties": { + "channel_types": { + "additionalProperties": { + "$ref": "#/components/schemas/ChannelTypeConfig" + }, + "description": "Object with all channel types", + "title": "Channel types", + "type": "object", + "x-stream-index": "001", + "x-stream-map": { + "key": "channel_type", + "title": "Channel type", + "description": "Channel type config object" + } + }, + "duration": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["channel_types", "duration"], + "type": "object" + }, + "ListCommandsResponse": { + "nullable": true, + "properties": { + "commands": { + "items": { "$ref": "#/components/schemas/Command" }, + "type": "array", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["commands", "duration"], + "type": "object" + }, + "ListDevicesResponse": { + "nullable": true, + "properties": { + "devices": { + "description": "List of devices", + "items": { "$ref": "#/components/schemas/Device" }, + "title": "Devices", + "type": "array", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["devices", "duration"], + "type": "object" + }, + "ListExternalStorageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "external_storages": { + "additionalProperties": { + "$ref": "#/components/schemas/ExternalStorageResponse" + }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["duration", "external_storages"], + "type": "object" + }, + "ListImportsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "import_tasks": { + "items": { "$ref": "#/components/schemas/ImportTask" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["import_tasks", "duration"], + "type": "object" + }, + "ListPermissionsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "permissions": { + "items": { "$ref": "#/components/schemas/Permission" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["permissions", "duration"], + "type": "object" + }, + "ListPushProvidersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "push_providers": { + "items": { "$ref": "#/components/schemas/PushProviderResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["push_providers", "duration"], + "type": "object" + }, + "ListRecordingsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" }, + "recordings": { + "items": { "$ref": "#/components/schemas/CallRecording" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration", "recordings"], + "type": "object" + }, + "ListRolesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "roles": { + "items": { "$ref": "#/components/schemas/Role" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["roles", "duration"], + "type": "object" + }, + "ListTranscriptionsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" }, + "transcriptions": { + "items": { "$ref": "#/components/schemas/CallTranscription" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration", "transcriptions"], + "type": "object" + }, + "Location": { + "properties": { + "continent_code": { "type": "string", "x-stream-index": "003" }, + "country_iso_code": { "type": "string", "x-stream-index": "002" }, + "subdivision_iso_code": { "type": "string", "x-stream-index": "001" } + }, + "required": [ + "subdivision_iso_code", + "country_iso_code", + "continent_code" + ], + "type": "object" + }, + "MOSStats": { + "properties": { + "average_score": { + "format": "float", + "type": "number", + "x-stream-index": "001" + }, + "histogram_duration_seconds": { + "items": { "format": "float", "type": "number" }, + "type": "array", + "x-stream-index": "004" + }, + "max_score": { + "format": "float", + "type": "number", + "x-stream-index": "002" + }, + "min_score": { + "format": "float", + "type": "number", + "x-stream-index": "003" + } + }, + "required": [ + "average_score", + "max_score", + "min_score", + "histogram_duration_seconds" + ], + "type": "object" + }, + "MarkChannelsReadRequest": { + "nullable": true, + "properties": { + "read_by_channel": { + "additionalProperties": { "type": "string" }, + "maximum": 30, + "type": "object", + "x-stream-index": "001" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "002.002" + }, + "user_id": { "type": "string", "x-stream-index": "002.001" } + }, + "type": "object" + }, + "MarkReadRequest": { + "nullable": true, + "properties": { + "message_id": { + "description": "ID of the message that is considered last read by client", + "title": "Message ID", + "type": "string", + "x-stream-index": "001" + }, + "thread_id": { + "description": "Optional Thread ID to specifically mark a given thread as read", + "title": "Thread ID", + "type": "string", + "x-stream-index": "004" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "003.002" + }, + "user_id": { "type": "string", "x-stream-index": "003.001" } + }, + "type": "object" + }, + "MarkReadResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "event": { + "$ref": "#/components/schemas/MessageReadEvent", + "description": "Mark read event", + "title": "Event", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "MarkUnreadRequest": { + "nullable": true, + "properties": { + "message_id": { + "description": "ID of the message from where the channel is marked unread", + "title": "Message ID", + "type": "string", + "x-stream-index": "001" + }, + "thread_id": { + "description": "Mark a thread unread, specify both the thread and message id", + "title": "Thread ID", + "type": "string", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" } + }, + "type": "object" + }, + "MediaPubSubHint": { + "properties": { + "audio_published": { "type": "boolean", "x-stream-index": "001" }, + "audio_subscribed": { "type": "boolean", "x-stream-index": "002" }, + "video_published": { "type": "boolean", "x-stream-index": "003" }, + "video_subscribed": { "type": "boolean", "x-stream-index": "004" } + }, + "required": [ + "audio_published", + "audio_subscribed", + "video_published", + "video_subscribed" + ], + "type": "object" + }, + "MemberRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "002" + }, + "user_id": { + "minLength": 1, + "title": "User ID", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["user_id"], + "type": "object" + }, + "MemberResponse": { + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "005" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom member response data", + "title": "Custom", + "type": "object", + "x-stream-index": "004" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "007" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "003" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "006" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user", "user_id", "custom", "created_at", "updated_at"], + "type": "object" + }, + "MembersResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "members": { + "description": "List of found members", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "title": "Members", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["members", "duration"], + "type": "object" + }, + "Message": { + "description": "Represents any chat message", + "nullable": true, + "properties": { + "attachments": { + "description": "Array of message attachments", + "items": { "$ref": "#/components/schemas/Attachment" }, + "title": "Message attachments", + "type": "array", + "x-stream-docs-page-id": "message_format#attachment-format", + "x-stream-index": "011" + }, + "before_message_send_failed": { + "description": "Whether `before_message_send webhook` failed or not. Field is only accessible in push webhook", + "title": "Before Message Send Failed", + "type": "boolean", + "x-stream-docs-page-id": "before_message_send_webhook", + "x-stream-index": "044" + }, + "cid": { + "description": "Channel unique identifier in \u003ctype\u003e:\u003cid\u003e format", + "title": "Channel CID", + "type": "string", + "x-stream-index": "027" + }, + "command": { + "description": "Contains provided slash command", + "title": "Command", + "type": "string", + "x-stream-docs-page-id": "custom_commands_webhook", + "x-stream-index": "006" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "029" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "032" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "031" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "022" + }, + "html": { + "description": "Contains HTML markup of the message. Can only be set when using server-side API", + "title": "HTML content", + "type": "string", + "x-stream-index": "007" + }, + "i18n": { + "additionalProperties": { "type": "string" }, + "description": "Object with translations. Key `language` contains the original language key. Other keys contain translations", + "title": "Internationalization info", + "type": "object", + "x-stream-docs-page-id": "translation", + "x-stream-index": "042" + }, + "id": { + "description": "Message ID is unique string identifier of the message", + "title": "ID", + "type": "string", + "x-stream-index": "002" + }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "description": "Contains image moderation information", + "title": "Image moderation labels", + "type": "object", + "x-stream-index": "038" + }, + "latest_reactions": { + "description": "List of 10 latest reactions to this message", + "items": { "$ref": "#/components/schemas/Reaction" }, + "title": "Latest reactions", + "type": "array", + "x-stream-index": "012" + }, + "mentioned_users": { + "description": "List of mentioned users", + "items": { "$ref": "#/components/schemas/UserObject" }, + "title": "Mentioned Users", + "type": "array", + "x-stream-index": "041" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "050" + }, + "mml": { + "description": "Should be empty if `text` is provided. Can only be set when using server-side API", + "title": "Messaging Markup Language", + "type": "string", + "x-stream-docs-page-id": "mml_overview", + "x-stream-index": "005" + }, + "own_reactions": { + "description": "List of 10 latest reactions of authenticated user to this message", + "items": { "$ref": "#/components/schemas/Reaction" }, + "title": "Own reactions", + "type": "array", + "x-stream-index": "013" + }, + "parent_id": { + "description": "ID of parent message (thread)", + "title": "Parent message ID", + "type": "string", + "x-stream-docs-page-id": "threads", + "x-stream-index": "018" + }, + "pin_expires": { + "description": "Date when pinned message expires", + "format": "date-time", + "title": "Pin expiration date", + "type": "number", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "049" + }, + "pinned": { + "description": "Whether message is pinned or not", + "title": "Pinned", + "type": "boolean", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "045" + }, + "pinned_at": { + "description": "Date when message got pinned", + "format": "date-time", + "title": "Pinned at", + "type": "number", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "046" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Contains user who pinned the message", + "title": "Pinned by", + "x-stream-docs-page-id": "pinned_messages", + "x-stream-index": "048" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "052" + }, + "poll_id": { + "description": "Identifier of the poll to include in the message", + "title": "Poll ID", + "type": "string", + "x-stream-index": "051" + }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "description": "Contains quoted message", + "title": "Quoted message", + "x-stream-docs-page-id": "threads#quote-message", + "x-stream-index": "024" + }, + "quoted_message_id": { + "title": "ID of quoted message", + "type": "string", + "x-stream-docs-page-id": "threads#quote-message", + "x-stream-index": "023" + }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "description": "An object containing number of reactions of each type. Key: reaction type (string), value: number of reactions (int)", + "title": "Reaction counts", + "type": "object", + "x-stream-index": "014" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "016" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "description": "An object containing scores of reactions of each type. Key: reaction type (string), value: total score of reactions (int)", + "title": "Reaction scores", + "type": "object", + "x-stream-index": "015" + }, + "reply_count": { + "description": "Number of replies to this message", + "format": "int32", + "title": "Reply count", + "type": "integer", + "x-stream-index": "021" + }, + "shadowed": { + "description": "Whether the message was shadowed or not", + "title": "Shadowed", + "type": "boolean", + "x-stream-docs-page-id": "moderation#shadow-ban", + "x-stream-index": "034" + }, + "show_in_channel": { + "description": "Whether thread reply should be shown in the channel as well", + "title": "Show in channel", + "type": "boolean", + "x-stream-docs-page-id": "threads", + "x-stream-index": "020" + }, + "silent": { + "description": "Whether message is silent or not", + "title": "Silent", + "type": "boolean", + "x-stream-index": "043" + }, + "text": { + "description": "Text of the message. Should be empty if `mml` is provided", + "title": "Text", + "type": "string", + "x-stream-index": "004" + }, + "thread_participants": { + "description": "List of users who participate in thread", + "items": { "$ref": "#/components/schemas/UserObject" }, + "title": "Thread participants", + "type": "array", + "x-stream-docs-page-id": "threads#quote-message", + "x-stream-index": "026" + }, + "type": { + "description": "Contains type of the message", + "enum": [ + "regular", + "ephemeral", + "error", + "reply", + "system", + "deleted" + ], + "title": "Message Type", + "type": "string", + "x-stream-docs-page-id": "message_format#message-types", + "x-stream-index": "008" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "030" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "Sender of the message. Required when using server-side API", + "title": "User object", + "x-stream-index": "010" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reaction_groups", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned" + ], + "title": "Message", + "type": "object", + "x-stream-docs-page-id": "send_message" + }, + "MessageActionRequest": { + "nullable": true, + "properties": { + "form_data": { + "additionalProperties": { "type": "string" }, + "description": "ReadOnlyData to execute command with", + "title": "Form data", + "type": "object", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "003.002" + }, + "user_id": { "type": "string", "x-stream-index": "003.001" } + }, + "required": ["form_data"], + "type": "object" + }, + "MessageChangeSet": { + "properties": { + "attachments": { "type": "boolean", "x-stream-index": "005" }, + "custom": { "type": "boolean", "x-stream-index": "001" }, + "html": { "type": "boolean", "x-stream-index": "004" }, + "mentioned_user_ids": { "type": "boolean", "x-stream-index": "006" }, + "mml": { "type": "boolean", "x-stream-index": "003" }, + "pin": { "type": "boolean", "x-stream-index": "009" }, + "quoted_message_id": { "type": "boolean", "x-stream-index": "007" }, + "silent": { "type": "boolean", "x-stream-index": "008" }, + "text": { "type": "boolean", "x-stream-index": "002" } + }, + "required": [ + "custom", + "text", + "mml", + "html", + "attachments", + "mentioned_user_ids", + "quoted_message_id", + "silent", + "pin" + ], + "type": "object" + }, + "MessageFlag": { + "nullable": true, + "properties": { + "approved_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "created_by_automod": { "type": "boolean", "x-stream-index": "001" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "008" + }, + "details": { + "$ref": "#/components/schemas/FlagDetails", + "x-stream-index": "006" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "005" + }, + "moderation_feedback": { + "$ref": "#/components/schemas/FlagFeedback", + "x-stream-index": "003" + }, + "moderation_result": { + "$ref": "#/components/schemas/MessageModerationResult", + "x-stream-index": "002" + }, + "reason": { "type": "string", "x-stream-index": "007" }, + "rejected_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "014" + }, + "reviewed_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "reviewed_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "012" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "004" + } + }, + "required": ["created_by_automod", "created_at", "updated_at"], + "type": "object" + }, + "MessageModerationResult": { + "properties": { + "action": { "type": "string", "x-stream-index": "004" }, + "ai_moderation_response": { + "$ref": "#/components/schemas/ModerationResponse", + "x-stream-index": "009" + }, + "blocked_word": { "type": "string", "x-stream-index": "006" }, + "blocklist_name": { "type": "string", "x-stream-index": "007" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "012" + }, + "message_id": { "type": "string", "x-stream-index": "003" }, + "moderated_by": { "type": "string", "x-stream-index": "005" }, + "moderation_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "008" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "user_bad_karma": { "type": "boolean", "x-stream-index": "011" }, + "user_karma": { + "format": "float", + "type": "number", + "x-stream-index": "010" + } + }, + "required": [ + "message_id", + "action", + "user_karma", + "user_bad_karma", + "created_at", + "updated_at" + ], + "type": "object" + }, + "MessagePaginationParams": { + "properties": { + "limit": { + "format": "int32", + "minimum": 0, + "type": "integer", + "x-stream-index": "001" + }, + "offset": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "MessageReadEvent": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "002.002" }, + "channel_type": { "type": "string", "x-stream-index": "002.003" }, + "cid": { "type": "string", "x-stream-index": "002.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "005.002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "006" }, + "team": { "type": "string", "x-stream-index": "004.001" }, + "thread": { + "$ref": "#/components/schemas/Thread", + "x-stream-index": "003.001" + }, + "type": { "type": "string", "x-stream-index": "005.001" }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.001" + } + }, + "required": ["cid", "channel_id", "channel_type", "type", "created_at"], + "title": "MessageReadEvent", + "type": "object", + "x-stream-event-client-type": true, + "x-stream-is-event": true, + "x-stream-ws-base-event-name": "VideoEvent" + }, + "MessageRequest": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "maximum": 30, + "type": "array", + "x-stream-index": "004" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "007" + }, + "html": { "type": "string", "x-stream-index": "010" }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "mentioned_users": { + "items": { "type": "string" }, + "maximum": 25, + "type": "array", + "x-stream-index": "008" + }, + "mml": { "type": "string", "x-stream-index": "003" }, + "parent_id": { "type": "string", "x-stream-index": "005" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "015" + }, + "pinned": { "type": "boolean", "x-stream-index": "013" }, + "pinned_at": { + "format": "date-time", + "nullable": true, + "type": "string", + "x-stream-index": "014" + }, + "poll_id": { "type": "string", "x-stream-index": "038" }, + "quoted_message_id": { "type": "string", "x-stream-index": "009" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "006" }, + "silent": { "type": "boolean", "x-stream-index": "012" }, + "text": { "type": "string", "x-stream-index": "002" }, + "type": { + "enum": ["''regular", "system"], + "type": "string", + "x-stream-index": "011" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "020.002" + }, + "user_id": { "type": "string", "x-stream-index": "020.001" } + }, + "type": "object" + }, + "MessageResponse": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "type": "array", + "x-stream-index": "008" + }, + "cid": { "type": "string", "x-stream-index": "021" }, + "command": { "type": "string", "x-stream-index": "004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "022" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "025" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "024" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "017" + }, + "html": { "type": "string", "x-stream-index": "005" }, + "i18n": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "029" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "027" + }, + "latest_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "009" + }, + "mentioned_users": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "028" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "035" + }, + "mml": { "type": "string", "x-stream-index": "003" }, + "own_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "010" + }, + "parent_id": { "type": "string", "x-stream-index": "014" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "034" + }, + "pinned": { "type": "boolean", "x-stream-index": "031" }, + "pinned_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "032" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "033" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "037" + }, + "poll_id": { "type": "string", "x-stream-index": "036" }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "019" + }, + "quoted_message_id": { "type": "string", "x-stream-index": "018" }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "011" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "013" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "012" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "016" + }, + "shadowed": { "type": "boolean", "x-stream-index": "026" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "015" }, + "silent": { "type": "boolean", "x-stream-index": "030" }, + "text": { "type": "string", "x-stream-index": "002" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "020" + }, + "type": { "type": "string", "x-stream-index": "006" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "023" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "007" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "user", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned" + ], + "type": "object" + }, + "MessageUpdate": { + "properties": { + "change_set": { + "$ref": "#/components/schemas/MessageChangeSet", + "x-stream-index": "002" + }, + "old_text": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "MessageWithChannelResponse": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "type": "array", + "x-stream-index": "001.008" + }, + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "cid": { "type": "string", "x-stream-index": "001.021" }, + "command": { "type": "string", "x-stream-index": "001.004" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.022" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.025" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.024" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.017" + }, + "html": { "type": "string", "x-stream-index": "001.005" }, + "i18n": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "001.029" + }, + "id": { "type": "string", "x-stream-index": "001.001" }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.027" + }, + "latest_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "001.009" + }, + "mentioned_users": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "001.028" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.035" + }, + "mml": { "type": "string", "x-stream-index": "001.003" }, + "own_reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "001.010" + }, + "parent_id": { "type": "string", "x-stream-index": "001.014" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.034" + }, + "pinned": { "type": "boolean", "x-stream-index": "001.031" }, + "pinned_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.032" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001.033" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001.037" + }, + "poll_id": { "type": "string", "x-stream-index": "001.036" }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.019" + }, + "quoted_message_id": { + "type": "string", + "x-stream-index": "001.018" + }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.011" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "001.013" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.012" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.016" + }, + "shadowed": { "type": "boolean", "x-stream-index": "001.026" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "001.015" }, + "silent": { "type": "boolean", "x-stream-index": "001.030" }, + "text": { "type": "string", "x-stream-index": "001.002" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserResponse" }, + "type": "array", + "x-stream-index": "001.020" + }, + "type": { "type": "string", "x-stream-index": "001.006" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.023" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001.007" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "user", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned", + "channel" + ], + "type": "object" + }, + "ModerationResponse": { + "properties": { + "action": { "type": "string", "x-stream-index": "004" }, + "explicit": { + "format": "float", + "type": "number", + "x-stream-index": "002" + }, + "spam": { + "format": "float", + "type": "number", + "x-stream-index": "003" + }, + "toxic": { + "format": "float", + "type": "number", + "x-stream-index": "001" + } + }, + "required": ["toxic", "explicit", "spam", "action", "automod_response"], + "type": "object" + }, + "MuteChannelRequest": { + "nullable": true, + "properties": { + "channel_cids": { + "description": "Channel CIDs to mute (if multiple channels)", + "items": { "type": "string" }, + "maximum": 25, + "title": "Channel CIDs", + "type": "array", + "x-stream-index": "002" + }, + "expiration": { + "description": "Duration of mute in milliseconds", + "title": "Expiration", + "type": "integer", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" } + }, + "type": "object" + }, + "MuteChannelResponse": { + "nullable": true, + "properties": { + "channel_mute": { + "$ref": "#/components/schemas/ChannelMute", + "description": "Object with channel mute (if one channel was muted)", + "title": "Channel mute", + "x-stream-index": "001" + }, + "channel_mutes": { + "description": "Object with mutes (if multiple channels were muted)", + "items": { "$ref": "#/components/schemas/ChannelMute" }, + "title": "Channel mutes", + "type": "array", + "x-stream-index": "002" + }, + "duration": { "type": "string", "x-stream-index": "004.001" }, + "own_user": { + "$ref": "#/components/schemas/OwnUser", + "description": "Authorized user object with fresh mutes information", + "title": "Own user", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "MuteUserRequest": { + "nullable": true, + "properties": { + "target_ids": { + "description": "User IDs to mute (if multiple users)", + "items": { "type": "string" }, + "maximum": 1000, + "title": "Target IDs", + "type": "array", + "x-stream-index": "002" + }, + "timeout": { + "description": "Duration of mute in minutes", + "minimum": 0, + "title": "Timeout", + "type": "integer", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" } + }, + "required": ["timeout"], + "type": "object" + }, + "MuteUserResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "005.001" }, + "mute": { + "$ref": "#/components/schemas/UserMute", + "description": "Object with user mute (if one user was muted)", + "title": "Mute", + "x-stream-index": "001" + }, + "mutes": { + "description": "Object with mutes (if multiple users were muted)", + "items": { "$ref": "#/components/schemas/UserMute" }, + "title": "Mutes", + "type": "array", + "x-stream-index": "002" + }, + "non_existing_users": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + }, + "own_user": { + "$ref": "#/components/schemas/OwnUser", + "description": "Authorized user object with fresh mutes information", + "title": "Own user", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "MuteUsersRequest": { + "nullable": true, + "properties": { + "audio": { + "title": "Audio", + "type": "boolean", + "x-stream-index": "005" + }, + "mute_all_users": { "type": "boolean", "x-stream-index": "003" }, + "muted_by": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "010" + }, + "muted_by_id": { "type": "string", "x-stream-index": "009" }, + "screenshare": { + "title": "Screenshare", + "type": "boolean", + "x-stream-index": "007" + }, + "screenshare_audio": { + "title": "ScreenshareAudio", + "type": "boolean", + "x-stream-index": "008" + }, + "user_ids": { + "items": { "type": "string" }, + "title": "UserIDs", + "type": "array", + "x-stream-index": "004" + }, + "video": { + "title": "Video", + "type": "boolean", + "x-stream-index": "006" + } + }, + "type": "object" + }, + "MuteUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "NoiseCancellationSettings": { + "properties": { + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["mode"], + "type": "object" + }, + "NotificationSettings": { + "properties": { + "call_live_started": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "002" + }, + "call_notification": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "004" + }, + "call_ring": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "005" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "session_started": { + "$ref": "#/components/schemas/EventNotificationSettings", + "x-stream-index": "003" + } + }, + "required": [ + "enabled", + "call_live_started", + "session_started", + "call_notification", + "call_ring" + ], + "type": "object" + }, + "NullBool": { + "properties": { + "HasValue": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" + }, + "Value": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "001" + } + }, + "type": "object" + }, + "NullTime": { + "properties": { + "HasValue": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" + }, + "Value": { + "format": "date-time", + "type": "number", + "writeOnly": true, + "x-stream-index": "001" + } + }, + "type": "object" + }, + "OnlyUserID": { + "properties": { "id": { "type": "string", "x-stream-index": "001" } }, + "required": ["id"], + "type": "object" + }, + "OwnCapability": { + "description": "All possibility of string to use", + "enum": [ + "block-users", + "create-call", + "create-reaction", + "enable-noise-cancellation", + "end-call", + "join-backstage", + "join-call", + "join-ended-call", + "mute-users", + "pin-for-everyone", + "read-call", + "remove-call-member", + "screenshare", + "send-audio", + "send-video", + "start-broadcast-call", + "start-record-call", + "start-transcription-call", + "stop-broadcast-call", + "stop-record-call", + "stop-transcription-call", + "update-call", + "update-call-member", + "update-call-permissions", + "update-call-settings" + ], + "title": "OwnCapability", + "type": "string" + }, + "OwnUser": { + "properties": { + "banned": { "type": "boolean", "x-stream-index": "014" }, + "channel_mutes": { + "items": { "$ref": "#/components/schemas/ChannelMute" }, + "type": "array", + "x-stream-index": "027" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "005" + }, + "deactivated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "012" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "devices": { + "items": { "$ref": "#/components/schemas/Device" }, + "type": "array", + "x-stream-index": "025" + }, + "id": { "type": "string", "x-stream-index": "003" }, + "invisible": { "type": "boolean", "x-stream-index": "021" }, + "language": { "type": "string", "x-stream-index": "032" }, + "last_active": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "latest_hidden_channels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "034" + }, + "mutes": { + "items": { "$ref": "#/components/schemas/UserMute" }, + "type": "array", + "x-stream-index": "026" + }, + "online": { "type": "boolean", "x-stream-index": "020" }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "024" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "023" + }, + "role": { "type": "string", "x-stream-index": "004" }, + "teams": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "033" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "029" + }, + "unread_channels": { + "format": "int32", + "type": "integer", + "x-stream-index": "030" + }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "028" + }, + "unread_threads": { + "format": "int32", + "type": "integer", + "x-stream-index": "031" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008" + } + }, + "required": [ + "id", + "role", + "custom", + "created_at", + "updated_at", + "banned", + "online", + "devices", + "mutes", + "channel_mutes", + "unread_count", + "total_unread_count", + "unread_channels", + "unread_threads", + "language" + ], + "type": "object" + }, + "PaginationParams": { + "properties": { + "limit": { + "format": "int32", + "minimum": 0, + "type": "integer", + "x-stream-index": "001" + }, + "offset": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "PendingMessage": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/Channel", + "x-stream-index": "007" + }, + "message": { + "$ref": "#/components/schemas/Message", + "description": "The message", + "title": "Message", + "x-stream-index": "009" + }, + "metadata": { + "additionalProperties": { "type": "string" }, + "description": "Additional data attached to the pending message. This data is discarded once the pending message is committed.", + "title": "Metadata", + "type": "object", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "Permission": { + "properties": { + "action": { + "description": "Action name this permission is for (e.g. SendMessage)", + "title": "Action", + "type": "string", + "x-stream-index": "004" + }, + "condition": { + "additionalProperties": {}, + "description": "MongoDB style condition which decides whether or not the permission is granted", + "title": "Condition", + "type": "object", + "x-stream-index": "007" + }, + "custom": { + "description": "Whether this is a custom permission or built-in", + "title": "Custom", + "type": "boolean", + "x-stream-index": "009" + }, + "description": { + "description": "Description of the permission", + "title": "Description", + "type": "string", + "x-stream-index": "003" + }, + "id": { + "description": "Unique permission ID", + "title": "ID", + "type": "string", + "x-stream-index": "001" + }, + "level": { + "description": "Level at which permission could be applied (app or channel)", + "enum": ["app", "channel"], + "title": "Level", + "type": "string", + "x-stream-index": "010" + }, + "name": { + "description": "Name of the permission", + "title": "Name", + "type": "string", + "x-stream-index": "002" + }, + "owner": { + "description": "Whether this permission applies to resource owner or not", + "title": "Owner", + "type": "boolean", + "x-stream-index": "005" + }, + "same_team": { + "description": "Whether this permission applies to teammates (multi-tenancy mode only)", + "title": "Same team", + "type": "boolean", + "x-stream-index": "006" + }, + "tags": { + "description": "List of tags of the permission", + "items": { "type": "string" }, + "title": "Tags", + "type": "array", + "x-stream-index": "011" + } + }, + "required": [ + "id", + "name", + "description", + "action", + "owner", + "same_team", + "custom", + "level", + "tags" + ], + "type": "object" + }, + "PinRequest": { + "nullable": true, + "properties": { + "session_id": { "type": "string", "x-stream-index": "003" }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user_id", "session_id"], + "type": "object" + }, + "PinResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "Policy": { + "properties": { + "action": { "type": "integer", "x-stream-index": "007" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "name": { "type": "string", "x-stream-index": "004" }, + "owner": { "type": "boolean", "x-stream-index": "008" }, + "priority": { + "format": "int32", + "type": "integer", + "x-stream-index": "009" + }, + "resources": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "005" + }, + "roles": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "006" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + } + }, + "required": [ + "name", + "resources", + "roles", + "action", + "owner", + "priority", + "created_at", + "updated_at" + ], + "type": "object" + }, + "PolicyRequest": { + "properties": { + "action": { + "enum": ["Deny", "Allow"], + "title": "Action", + "type": "string", + "x-stream-index": "001" + }, + "name": { + "description": "User-friendly policy name", + "title": "Name", + "type": "string", + "x-stream-index": "002" + }, + "owner": { + "description": "Whether policy applies to resource owner or not", + "title": "Owner", + "type": "boolean", + "x-stream-index": "005" + }, + "priority": { + "description": "Policy priority", + "format": "int32", + "maximum": 999, + "minimum": 1, + "title": "Priority", + "type": "integer", + "x-stream-index": "006" + }, + "resources": { + "description": "List of resources to apply policy to", + "items": { "type": "string" }, + "minimum": 1, + "title": "Resources", + "type": "array", + "x-stream-index": "003" + }, + "roles": { + "description": "List of roles to apply policy to", + "items": { "type": "string" }, + "title": "Roles", + "type": "array", + "x-stream-index": "004" + } + }, + "required": [ + "action", + "name", + "resources", + "roles", + "owner", + "priority" + ], + "type": "object" + }, + "Poll": { + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "023" + }, + "allow_answers": { "type": "boolean", "x-stream-index": "010" }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "009" + }, + "answers_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "015" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "021" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "020" + }, + "created_by_id": { "type": "string", "x-stream-index": "019" }, + "description": { "type": "string", "x-stream-index": "005" }, + "enforce_unique_vote": { "type": "boolean", "x-stream-index": "007" }, + "id": { "type": "string", "x-stream-index": "003" }, + "is_closed": { "type": "boolean", "x-stream-index": "011" }, + "latest_answers": { + "items": { "$ref": "#/components/schemas/PollVote" }, + "type": "array", + "x-stream-index": "017" + }, + "latest_votes_by_option": { + "additionalProperties": { + "items": { "$ref": "#/components/schemas/PollVote" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "016" + }, + "max_votes_allowed": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "name": { "type": "string", "x-stream-index": "004" }, + "options": { + "items": { "$ref": "#/components/schemas/PollOption" }, + "type": "array", + "x-stream-index": "013" + }, + "own_votes": { + "items": { "$ref": "#/components/schemas/PollVote" }, + "type": "array", + "x-stream-index": "018" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "022" + }, + "vote_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "012" + }, + "vote_counts_by_option": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "014" + }, + "voting_visibility": { "type": "string", "x-stream-index": "006" } + }, + "required": [ + "id", + "name", + "description", + "enforce_unique_vote", + "allow_user_suggested_options", + "allow_answers", + "vote_count", + "options", + "vote_counts_by_option", + "answers_count", + "latest_votes_by_option", + "latest_answers", + "own_votes", + "created_by_id", + "created_at", + "updated_at", + "Custom" + ], + "type": "object" + }, + "PollOption": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "text": { "type": "string", "x-stream-index": "002" } + }, + "required": ["id", "text", "custom"], + "type": "object" + }, + "PollOptionInput": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "text": { "type": "string", "x-stream-index": "002" } + }, + "type": "object" + }, + "PollOptionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "poll_option": { + "$ref": "#/components/schemas/PollOptionResponseData", + "x-stream-index": "001" + } + }, + "required": ["poll_option", "duration"], + "type": "object" + }, + "PollOptionResponseData": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "id": { "type": "string", "x-stream-index": "001" }, + "text": { "type": "string", "x-stream-index": "002" } + }, + "required": ["id", "text", "custom"], + "type": "object" + }, + "PollResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "poll": { + "$ref": "#/components/schemas/PollResponseData", + "x-stream-index": "001" + } + }, + "required": ["poll", "duration"], + "type": "object" + }, + "PollResponseData": { + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "020" + }, + "allow_answers": { "type": "boolean", "x-stream-index": "008" }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "007" + }, + "answers_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "012" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "018" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "017" + }, + "created_by_id": { "type": "string", "x-stream-index": "016" }, + "description": { "type": "string", "x-stream-index": "003" }, + "enforce_unique_vote": { "type": "boolean", "x-stream-index": "005" }, + "id": { "type": "string", "x-stream-index": "001" }, + "is_closed": { "type": "boolean", "x-stream-index": "009" }, + "latest_votes_by_option": { + "additionalProperties": { + "items": { "$ref": "#/components/schemas/PollVoteResponseData" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "014" + }, + "max_votes_allowed": { + "format": "int32", + "type": "integer", + "x-stream-index": "006" + }, + "name": { "type": "string", "x-stream-index": "002" }, + "options": { + "items": { "$ref": "#/components/schemas/PollOptionResponseData" }, + "type": "array", + "x-stream-index": "011" + }, + "own_votes": { + "items": { "$ref": "#/components/schemas/PollVoteResponseData" }, + "type": "array", + "x-stream-index": "015" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "019" + }, + "vote_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "010" + }, + "vote_counts_by_option": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "013" + }, + "voting_visibility": { "type": "string", "x-stream-index": "004" } + }, + "required": [ + "id", + "name", + "description", + "voting_visibility", + "enforce_unique_vote", + "allow_user_suggested_options", + "allow_answers", + "vote_count", + "options", + "answers_count", + "vote_counts_by_option", + "latest_votes_by_option", + "own_votes", + "created_by_id", + "created_at", + "updated_at", + "Custom" + ], + "type": "object" + }, + "PollVote": { + "nullable": true, + "properties": { + "answer_text": { "type": "string", "x-stream-index": "007" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "id": { "type": "string", "x-stream-index": "004" }, + "is_answer": { "type": "boolean", "x-stream-index": "006" }, + "option_id": { "type": "string", "x-stream-index": "005" }, + "poll_id": { "type": "string", "x-stream-index": "003" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "009" + }, + "user_id": { "type": "string", "x-stream-index": "008" } + }, + "required": ["poll_id", "id", "option_id", "created_at", "updated_at"], + "type": "object" + }, + "PollVoteResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "vote": { + "$ref": "#/components/schemas/PollVoteResponseData", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "PollVoteResponseData": { + "nullable": true, + "properties": { + "answer_text": { "type": "string", "x-stream-index": "005" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008" + }, + "id": { "type": "string", "x-stream-index": "002" }, + "is_answer": { "type": "boolean", "x-stream-index": "004" }, + "option_id": { "type": "string", "x-stream-index": "003" }, + "poll_id": { "type": "string", "x-stream-index": "001" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "007" + }, + "user_id": { "type": "string", "x-stream-index": "006" } + }, + "required": ["poll_id", "id", "option_id", "created_at", "updated_at"], + "type": "object" + }, + "PollVotesResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" }, + "votes": { + "items": { "$ref": "#/components/schemas/PollVoteResponseData" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["votes", "duration"], + "type": "object" + }, + "PrivacySettings": { + "properties": { + "read_receipts": { + "$ref": "#/components/schemas/ReadReceipts", + "x-stream-index": "002" + }, + "typing_indicators": { + "$ref": "#/components/schemas/TypingIndicators", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "PushConfig": { + "properties": { + "offline_only": { "type": "boolean", "x-stream-index": "002" }, + "version": { + "enum": ["v1", "v2"], + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["version"], + "type": "object" + }, + "PushNotificationFields": { + "properties": { + "apn": { + "$ref": "#/components/schemas/APNConfigFields", + "x-stream-index": "002" + }, + "firebase": { + "$ref": "#/components/schemas/FirebaseConfigFields", + "x-stream-index": "003" + }, + "huawei": { + "$ref": "#/components/schemas/HuaweiConfigFields", + "x-stream-index": "004" + }, + "offline_only": { "type": "boolean", "x-stream-index": "001.002" }, + "providers": { + "items": { "$ref": "#/components/schemas/PushProvider" }, + "type": "array", + "x-stream-index": "006" + }, + "version": { "type": "string", "x-stream-index": "001.001" }, + "xiaomi": { + "$ref": "#/components/schemas/XiaomiConfigFields", + "x-stream-index": "005" + } + }, + "required": [ + "version", + "offline_only", + "apn", + "firebase", + "huawei", + "xiaomi" + ], + "type": "object" + }, + "PushNotificationSettings": { + "properties": { + "disabled": { "type": "boolean", "x-stream-index": "001" }, + "disabled_until": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "PushNotificationSettingsInput": { + "properties": { + "disabled": { + "$ref": "#/components/schemas/NullBool", + "x-stream-index": "001" + }, + "disabled_until": { + "$ref": "#/components/schemas/NullTime", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "PushProvider": { + "nullable": true, + "properties": { + "apn_auth_key": { "type": "string", "x-stream-index": "012" }, + "apn_auth_type": { "type": "string", "x-stream-index": "017" }, + "apn_development": { "type": "boolean", "x-stream-index": "018" }, + "apn_host": { "type": "string", "x-stream-index": "019" }, + "apn_key_id": { "type": "string", "x-stream-index": "013" }, + "apn_notification_template": { + "type": "string", + "x-stream-index": "020" + }, + "apn_p12_cert": { "type": "string", "x-stream-index": "014" }, + "apn_team_id": { "type": "string", "x-stream-index": "015" }, + "apn_topic": { "type": "string", "x-stream-index": "016" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "008" + }, + "description": { + "maxLength": 128, + "type": "string", + "x-stream-index": "007" + }, + "disabled_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "disabled_reason": { + "maxLength": 255, + "type": "string", + "x-stream-index": "011" + }, + "firebase_apn_template": { + "type": "string", + "x-stream-index": "025" + }, + "firebase_credentials": { "type": "string", "x-stream-index": "022" }, + "firebase_data_template": { + "type": "string", + "x-stream-index": "023" + }, + "firebase_host": { "type": "string", "x-stream-index": "026" }, + "firebase_notification_template": { + "type": "string", + "x-stream-index": "024" + }, + "firebase_server_key": { "type": "string", "x-stream-index": "021" }, + "huawei_app_id": { "type": "string", "x-stream-index": "027" }, + "huawei_app_secret": { "type": "string", "x-stream-index": "028" }, + "name": { + "maxLength": 36, + "minLength": 1, + "type": "string", + "x-stream-index": "005" + }, + "type": { "type": "string", "x-stream-index": "006" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "xiaomi_app_secret": { "type": "string", "x-stream-index": "030" }, + "xiaomi_package_name": { "type": "string", "x-stream-index": "029" } + }, + "required": ["name", "type", "created_at", "updated_at"], + "type": "object" + }, + "PushProviderResponse": { + "properties": { + "apn_auth_key": { "type": "string", "x-stream-index": "008" }, + "apn_auth_type": { "type": "string", "x-stream-index": "013" }, + "apn_development": { "type": "boolean", "x-stream-index": "014" }, + "apn_host": { "type": "string", "x-stream-index": "015" }, + "apn_key_id": { "type": "string", "x-stream-index": "009" }, + "apn_p12_cert": { "type": "string", "x-stream-index": "010" }, + "apn_sandbox_certificate": { + "type": "boolean", + "x-stream-index": "016" + }, + "apn_supports_remote_notifications": { + "type": "boolean", + "x-stream-index": "018" + }, + "apn_supports_voip_notifications": { + "type": "boolean", + "x-stream-index": "017" + }, + "apn_team_id": { "type": "string", "x-stream-index": "011" }, + "apn_topic": { "type": "string", "x-stream-index": "012" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004" + }, + "description": { "type": "string", "x-stream-index": "003" }, + "disabled_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "disabled_reason": { "type": "string", "x-stream-index": "007" }, + "firebase_apn_template": { + "type": "string", + "x-stream-index": "023" + }, + "firebase_credentials": { "type": "string", "x-stream-index": "020" }, + "firebase_data_template": { + "type": "string", + "x-stream-index": "021" + }, + "firebase_host": { "type": "string", "x-stream-index": "024" }, + "firebase_notification_template": { + "type": "string", + "x-stream-index": "022" + }, + "firebase_server_key": { "type": "string", "x-stream-index": "019" }, + "huawei_app_id": { "type": "string", "x-stream-index": "025" }, + "huawei_app_secret": { "type": "string", "x-stream-index": "026" }, + "name": { "type": "string", "x-stream-index": "001" }, + "type": { "type": "string", "x-stream-index": "002" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "005" + }, + "xiaomi_app_secret": { "type": "string", "x-stream-index": "028" }, + "xiaomi_package_name": { "type": "string", "x-stream-index": "027" } + }, + "required": ["name", "type", "created_at", "updated_at"], + "type": "object" + }, + "QueryBannedUsersRequest": { + "properties": { + "exclude_expired_bans": { + "type": "boolean", + "x-stream-index": "006" + }, + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "format": "int32", + "maximum": 300, + "type": "integer", + "x-stream-index": "004" + }, + "offset": { + "format": "int32", + "maximum": 10000, + "type": "integer", + "x-stream-index": "005" + }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, + "type": "array", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "007.002" + }, + "user_id": { "type": "string", "x-stream-index": "007.001" } + }, + "required": ["filter_conditions"], + "type": "object" + }, + "QueryBannedUsersResponse": { + "nullable": true, + "properties": { + "bans": { + "items": { "$ref": "#/components/schemas/BanResponse" }, + "type": "array", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["bans", "duration"], + "type": "object" + }, + "QueryCallMembersRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "id": { + "maxLength": 64, + "type": "string", + "x-stream-index": "001.002" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "004.001" + }, + "next": { "type": "string", "x-stream-index": "004.002" }, + "prev": { "type": "string", "x-stream-index": "004.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, + "type": "array", + "x-stream-index": "003" + }, + "type": { + "maxLength": 64, + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["type", "id"], + "type": "object" + }, + "QueryCallMembersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001" + }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" } + }, + "required": ["members", "duration"], + "type": "object" + }, + "QueryCallStatsRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "004.001" + }, + "next": { "type": "string", "x-stream-index": "004.002" }, + "prev": { "type": "string", "x-stream-index": "004.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 2, + "type": "array", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "QueryCallStatsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "next": { "type": "string", "x-stream-index": "003.001" }, + "prev": { "type": "string", "x-stream-index": "003.002" }, + "reports": { + "items": { + "$ref": "#/components/schemas/CallStatsReportSummaryResponse" + }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["reports", "duration"], + "type": "object" + }, + "QueryCallsRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "006.001" + }, + "next": { "type": "string", "x-stream-index": "006.002" }, + "prev": { "type": "string", "x-stream-index": "006.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 2, + "type": "array", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "QueryCallsResponse": { + "nullable": true, + "properties": { + "calls": { + "items": { "$ref": "#/components/schemas/CallStateResponseFields" }, + "title": "Calls", + "type": "array", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "003.001" }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" } + }, + "required": ["calls", "duration"], + "type": "object" + }, + "QueryChannelsRequest": { + "nullable": true, + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "description": "Number of channels to limit", + "format": "int32", + "title": "Limit", + "type": "integer", + "x-stream-index": "008" + }, + "member_limit": { + "description": "Number of members to limit", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Member limit", + "type": "integer", + "x-stream-index": "007" + }, + "message_limit": { + "description": "Number of messages to limit", + "format": "int32", + "minimum": 0, + "title": "Message limit", + "type": "integer", + "x-stream-index": "006" + }, + "offset": { + "description": "Channel pagination offset", + "format": "int32", + "title": "Offset", + "type": "integer", + "x-stream-index": "009" + }, + "sort": { + "description": "List of sort parameters", + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "title": "Sort", + "type": "array", + "x-stream-index": "002" + }, + "state": { + "description": "Whether to update channel state or not", + "title": "State", + "type": "boolean", + "x-stream-index": "004" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "010.002" + }, + "user_id": { "type": "string", "x-stream-index": "010.001" } + }, + "title": "Query Channels Request", + "type": "object", + "x-stream-docs-page-id": "query_channels" + }, + "QueryChannelsResponse": { + "nullable": true, + "properties": { + "channels": { + "description": "List of channels", + "items": { + "$ref": "#/components/schemas/ChannelStateResponseFields" + }, + "title": "Channels", + "type": "array", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["channels", "duration"], + "title": "Channels list", + "type": "object" + }, + "QueryMembersRequest": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "description": "Filter to apply to members", + "title": "Filter conditions", + "type": "object", + "x-stream-index": "004" + }, + "id": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "x-stream-index": "002" + }, + "limit": { + "description": "Number of records to return", + "format": "int32", + "maximum": 300, + "minimum": 0, + "title": "Limit", + "type": "integer", + "x-stream-index": "006.003" + }, + "members": { + "description": "List of members to search in distinct channels", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Members", + "type": "array", + "x-stream-index": "003" + }, + "offset": { + "description": "Number of records to offset", + "format": "int32", + "maximum": 10000, + "title": "Offset", + "type": "integer", + "x-stream-index": "006.004" + }, + "sort": { + "description": "Array of sort parameters", + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, + "title": "Sort", + "type": "array", + "x-stream-index": "005" + }, + "type": { + "description": "Channel type to interact with", + "maxLength": 64, + "title": "Channel type", + "type": "string", + "x-stream-index": "001" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "007.002" + }, + "user_id": { "type": "string", "x-stream-index": "007.001" } + }, + "required": ["type", "filter_conditions"], + "type": "object" + }, + "QueryMessageFlagsRequest": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "limit": { + "format": "int32", + "maximum": 300, + "minimum": 0, + "type": "integer", + "x-stream-index": "003.003" + }, + "offset": { + "format": "int32", + "maximum": 10000, + "type": "integer", + "x-stream-index": "003.004" + }, + "show_deleted_messages": { + "type": "boolean", + "x-stream-index": "002" + }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "003.005" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" } + }, + "type": "object" + }, + "QueryMessageFlagsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "flags": { + "items": { "$ref": "#/components/schemas/MessageFlag" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["flags", "duration"], + "type": "object" + }, + "QueryPollVotesRequest": { + "nullable": true, + "properties": { + "filter": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "005.001" + }, + "next": { "type": "string", "x-stream-index": "005.002" }, + "prev": { "type": "string", "x-stream-index": "005.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "QueryPollsRequest": { + "nullable": true, + "properties": { + "filter": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "005.001" + }, + "next": { "type": "string", "x-stream-index": "005.002" }, + "prev": { "type": "string", "x-stream-index": "005.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "QueryPollsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "polls": { + "items": { "$ref": "#/components/schemas/PollResponseData" }, + "type": "array", + "x-stream-index": "001" + }, + "prev": { "type": "string", "x-stream-index": "002.002" } + }, + "required": ["polls", "duration"], + "type": "object" + }, + "QueryReactionsRequest": { + "properties": { + "filter": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "006.001" + }, + "next": { "type": "string", "x-stream-index": "006.002" }, + "prev": { "type": "string", "x-stream-index": "006.003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 2, + "type": "array", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" } + }, + "type": "object" + }, + "QueryReactionsResponse": { + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "next": { "type": "string", "x-stream-index": "003.001" }, + "prev": { "type": "string", "x-stream-index": "003.002" }, + "reactions": { + "items": { "$ref": "#/components/schemas/ReactionResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["reactions", "duration"], + "type": "object" + }, + "QueryThreadsRequest": { + "nullable": true, + "properties": { + "limit": { + "format": "int32", + "maximum": 25, + "minimum": 0, + "type": "integer", + "x-stream-index": "006.001" + }, + "member_limit": { + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer", + "x-stream-index": "005" + }, + "next": { "type": "string", "x-stream-index": "006.002" }, + "participant_limit": { + "description": "Limit the number of participants returned per each thread", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Participant limit", + "type": "integer", + "x-stream-index": "004" + }, + "prev": { "type": "string", "x-stream-index": "006.003" }, + "reply_limit": { + "description": "Limit the number of replies returned per each thread", + "format": "int32", + "maximum": 10, + "minimum": 0, + "title": "Reply limit", + "type": "integer", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "008.002" + }, + "user_id": { "type": "string", "x-stream-index": "008.001" } + }, + "type": "object" + }, + "QueryThreadsResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "003.001" }, + "next": { "type": "string", "x-stream-index": "002.001" }, + "prev": { "type": "string", "x-stream-index": "002.002" }, + "threads": { + "description": "List of enriched thread states", + "items": { "$ref": "#/components/schemas/ThreadStateResponse" }, + "title": "Threads", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["threads", "duration"], + "type": "object" + }, + "QueryUsersPayload": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001" + }, + "include_deactivated_users": { + "type": "boolean", + "x-stream-index": "004" + }, + "limit": { + "format": "int32", + "maximum": 100, + "minimum": 0, + "type": "integer", + "x-stream-index": "005.003" + }, + "offset": { + "format": "int32", + "maximum": 1000, + "type": "integer", + "x-stream-index": "005.004" + }, + "presence": { "type": "boolean", "x-stream-index": "003" }, + "sort": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 5, + "type": "array", + "x-stream-index": "002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "006.002" + }, + "user_id": { "type": "string", "x-stream-index": "006.001" } + }, + "required": ["filter_conditions"], + "type": "object" + }, + "QueryUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "users": { + "items": { "$ref": "#/components/schemas/FullUserResponse" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["users", "duration"], + "type": "object" + }, + "RTMPIngress": { + "description": "RTMP input settings", + "properties": { + "address": { "type": "string", "x-stream-index": "001" } + }, + "required": ["address"], + "title": "RTMP Ingress", + "type": "object" + }, + "Reaction": { + "description": "Represents user reaction to a message", + "nullable": true, + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "readOnly": true, + "title": "Created at", + "type": "number", + "x-stream-index": "008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "010" + }, + "message_id": { + "description": "ID of a message user reacted to", + "title": "Message ID", + "type": "string", + "x-stream-index": "003" + }, + "score": { + "description": "Reaction score. If not specified reaction has score of 1", + "format": "int32", + "title": "Score", + "type": "integer", + "x-stream-index": "007" + }, + "type": { + "description": "The type of reaction (e.g. 'like', 'laugh', 'wow')", + "maxLength": 30, + "title": "Type", + "type": "string", + "x-stream-index": "006" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "readOnly": true, + "title": "Updated at", + "type": "number", + "x-stream-index": "009" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "005" + }, + "user_id": { + "description": "ID of a user who reacted to a message", + "title": "User ID", + "type": "string", + "x-stream-index": "004" + } + }, + "required": [ + "message_id", + "type", + "score", + "created_at", + "updated_at", + "custom" + ], + "title": "Reaction", + "type": "object", + "x-stream-docs-page-id": "send_reaction" + }, + "ReactionGroupResponse": { + "nullable": true, + "properties": { + "count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + }, + "first_reaction_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "last_reaction_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004" + }, + "sum_scores": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "required": [ + "count", + "sum_scores", + "first_reaction_at", + "last_reaction_at" + ], + "type": "object" + }, + "ReactionRemovalResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "reaction": { + "$ref": "#/components/schemas/Reaction", + "x-stream-index": "002" + } + }, + "required": ["duration"], + "type": "object" + }, + "ReactionRequest": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "005" + }, + "score": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "type": { + "maxLength": 30, + "type": "string", + "x-stream-index": "001" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "004" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "006.002" + }, + "user_id": { "type": "string", "x-stream-index": "006.001" } + }, + "required": ["type"], + "type": "object" + }, + "ReactionResponse": { + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "006" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "008" + }, + "message_id": { "type": "string", "x-stream-index": "001" }, + "score": { + "format": "int32", + "type": "integer", + "x-stream-index": "005" + }, + "type": { "type": "string", "x-stream-index": "004" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "007" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "003" + }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": [ + "message_id", + "user_id", + "user", + "type", + "score", + "created_at", + "updated_at", + "custom" + ], + "type": "object" + }, + "ReactivateUserRequest": { + "nullable": true, + "properties": { + "created_by_id": { + "description": "ID of the user who's reactivating the user", + "title": "Created by ID", + "type": "string", + "x-stream-index": "004" + }, + "name": { + "description": "Set this field to put new name for the user", + "title": "Name", + "type": "string", + "x-stream-index": "003" + }, + "restore_messages": { + "description": "Restore previously deleted messages", + "title": "Restore messages", + "type": "boolean", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "ReactivateUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.002.001" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "ReactivateUsersRequest": { + "nullable": true, + "properties": { + "created_by_id": { + "description": "ID of the user who's reactivating the users", + "title": "Created by ID", + "type": "string", + "x-stream-index": "003" + }, + "restore_channels": { "type": "boolean", "x-stream-index": "004" }, + "restore_messages": { + "description": "Restore previously deleted messages", + "title": "Restore messages", + "type": "boolean", + "x-stream-index": "002" + }, + "user_ids": { + "description": "User IDs to reactivate", + "items": { "type": "string" }, + "maximum": 100, + "minimum": 1, + "title": "User IDs", + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["user_ids"], + "type": "object" + }, + "ReactivateUsersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.002.001" + }, + "task_id": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["task_id", "duration"], + "type": "object" + }, + "Read": { + "nullable": true, + "properties": { + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "004" }, + "unread_messages": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001" + } + }, + "required": ["last_read", "unread_messages"], + "type": "object" + }, + "ReadReceipts": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "type": "object" + }, + "ReadStateResponse": { + "properties": { + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "004" }, + "unread_messages": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + }, + "user": { + "$ref": "#/components/schemas/UserResponse", + "x-stream-index": "001" + } + }, + "required": ["user", "last_read", "unread_messages"], + "type": "object" + }, + "RecordSettings": { + "properties": { + "audio_only": { "type": "boolean", "x-stream-index": "001" }, + "layout": { + "$ref": "#/components/schemas/LayoutSettings", + "x-stream-index": "004" + }, + "mode": { "type": "string", "x-stream-index": "002" }, + "quality": { "type": "string", "x-stream-index": "003" } + }, + "required": ["audio_only", "mode", "quality"], + "type": "object" + }, + "RecordSettingsRequest": { + "properties": { + "audio_only": { "type": "boolean", "x-stream-index": "001" }, + "layout": { + "$ref": "#/components/schemas/LayoutSettingsRequest", + "title": "LayoutSettings", + "x-stream-index": "004" + }, + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "002" + }, + "quality": { + "enum": ["360p", "480p", "720p", "1080p", "1440p"], + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["mode"], + "type": "object" + }, + "RecordSettingsResponse": { + "properties": { + "audio_only": { "type": "boolean", "x-stream-index": "001" }, + "layout": { + "$ref": "#/components/schemas/LayoutSettingsResponse", + "title": "Layout", + "x-stream-index": "004" + }, + "mode": { "type": "string", "x-stream-index": "002" }, + "quality": { "type": "string", "x-stream-index": "003" } + }, + "required": ["audio_only", "mode", "quality", "layout"], + "type": "object" + }, + "Response": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "RestoreUsersRequest": { + "nullable": true, + "properties": { + "user_ids": { + "items": { "type": "string" }, + "maximum": 100, + "minimum": 1, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["user_ids"], + "type": "object" + }, + "RingSettings": { + "properties": { + "auto_cancel_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "incoming_call_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["incoming_call_timeout_ms", "auto_cancel_timeout_ms"], + "type": "object" + }, + "RingSettingsRequest": { + "properties": { + "auto_cancel_timeout_ms": { + "format": "int32", + "maximum": 180000, + "minimum": 5000, + "type": "integer", + "x-stream-index": "002" + }, + "incoming_call_timeout_ms": { + "format": "int32", + "maximum": 180000, + "minimum": 5000, + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["incoming_call_timeout_ms", "auto_cancel_timeout_ms"], + "type": "object" + }, + "RingSettingsResponse": { + "properties": { + "auto_cancel_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "incoming_call_timeout_ms": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["incoming_call_timeout_ms", "auto_cancel_timeout_ms"], + "type": "object" + }, + "Role": { + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "004" + }, + "custom": { + "description": "Whether this is a custom role or built-in", + "title": "Custom", + "type": "boolean", + "x-stream-index": "002" + }, + "name": { + "description": "Unique role name", + "title": "Name", + "type": "string", + "x-stream-index": "001" + }, + "scopes": { + "description": "List of scopes where this role is currently present. `.app` means that role is present in app-level grants", + "items": { "type": "string" }, + "title": "Scopes", + "type": "array", + "x-stream-index": "003" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "005" + } + }, + "required": ["name", "custom", "scopes", "created_at", "updated_at"], + "type": "object" + }, + "S3Request": { + "properties": { + "s3_api_key": { "type": "string", "x-stream-index": "002" }, + "s3_region": { "type": "string", "x-stream-index": "001" }, + "s3_secret": { "type": "string", "x-stream-index": "003" } + }, + "required": ["s3_region"], + "type": "object" + }, + "SFULocationResponse": { + "properties": { + "coordinates": { + "$ref": "#/components/schemas/Coordinates", + "x-stream-index": "004" + }, + "datacenter": { "type": "string", "x-stream-index": "002" }, + "id": { "type": "string", "x-stream-index": "001" }, + "location": { + "$ref": "#/components/schemas/Location", + "x-stream-index": "003" + } + }, + "required": ["id", "datacenter", "location", "coordinates"], + "type": "object" + }, + "ScreensharingSettings": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "required": ["enabled", "access_request_enabled"], + "type": "object" + }, + "ScreensharingSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "ScreensharingSettingsResponse": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "required": ["enabled", "access_request_enabled"], + "type": "object" + }, + "SearchRequest": { + "properties": { + "filter_conditions": { + "additionalProperties": {}, + "description": "Channel filter conditions", + "maximum": 100, + "minimum": 1, + "title": "Channel filter", + "type": "object", + "x-stream-docs-page-id": "query_channels", + "x-stream-index": "002" + }, + "limit": { + "description": "Number of messages to return", + "format": "int32", + "title": "Limit", + "type": "integer", + "x-stream-index": "004" + }, + "message_filter_conditions": { + "additionalProperties": {}, + "description": "Message filter conditions", + "title": "Message filter", + "type": "object", + "x-stream-index": "003" + }, + "next": { + "description": "Pagination parameter. Cannot be used with non-zero offset.", + "title": "Next", + "type": "string", + "x-stream-index": "007" + }, + "offset": { + "description": "Pagination offset. Cannot be used with sort or next.", + "format": "int32", + "title": "Offset", + "type": "integer", + "x-stream-index": "005" + }, + "query": { + "description": "Search phrase", + "title": "Query", + "type": "string", + "x-stream-index": "001" + }, + "sort": { + "description": "Sort parameters. Cannot be used with non-zero offset", + "items": { "$ref": "#/components/schemas/SortParam" }, + "title": "Sort", + "type": "array", + "x-stream-index": "006" + } + }, + "required": ["filter_conditions"], + "type": "object" + }, + "SearchResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "005.001" }, + "next": { + "description": "Value to pass to the next search query in order to paginate", + "title": "Next", + "type": "string", + "x-stream-index": "003" + }, + "previous": { + "description": "Value that points to the previous page. Pass as the next value in a search query to paginate backwards", + "title": "Previous", + "type": "string", + "x-stream-index": "004" + }, + "results": { + "description": "Search results", + "items": { "$ref": "#/components/schemas/SearchResult" }, + "title": "Results", + "type": "array", + "x-stream-index": "001" + }, + "results_warning": { + "$ref": "#/components/schemas/SearchWarning", + "description": "Warning about the search results", + "title": "Results Warning", + "x-stream-index": "002" + } + }, + "required": ["results", "duration"], + "type": "object" + }, + "SearchResult": { + "properties": { + "message": { + "$ref": "#/components/schemas/SearchResultMessage", + "description": "Found message", + "title": "Message", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "SearchResultMessage": { + "properties": { + "attachments": { + "items": { "$ref": "#/components/schemas/Attachment" }, + "type": "array", + "x-stream-index": "001.011" + }, + "before_message_send_failed": { + "type": "boolean", + "x-stream-index": "001.044" + }, + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "description": "Channel object", + "title": "Channel", + "x-stream-index": "002" + }, + "cid": { "type": "string", "x-stream-index": "001.027" }, + "command": { "type": "string", "x-stream-index": "001.006" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.029" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.032" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.031" + }, + "deleted_reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.022" + }, + "html": { "type": "string", "x-stream-index": "001.007" }, + "i18n": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "001.042" + }, + "id": { "type": "string", "x-stream-index": "001.002" }, + "image_labels": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.038" + }, + "latest_reactions": { + "items": { "$ref": "#/components/schemas/Reaction" }, + "type": "array", + "x-stream-index": "001.012" + }, + "mentioned_users": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.041" + }, + "message_text_updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.050" + }, + "mml": { "type": "string", "x-stream-index": "001.005" }, + "own_reactions": { + "items": { "$ref": "#/components/schemas/Reaction" }, + "type": "array", + "x-stream-index": "001.013" + }, + "parent_id": { "type": "string", "x-stream-index": "001.018" }, + "pin_expires": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.049" + }, + "pinned": { "type": "boolean", "x-stream-index": "001.045" }, + "pinned_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.046" + }, + "pinned_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.048" + }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "001.052" + }, + "poll_id": { "type": "string", "x-stream-index": "001.051" }, + "quoted_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.024" + }, + "quoted_message_id": { + "type": "string", + "x-stream-index": "001.023" + }, + "reaction_counts": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.014" + }, + "reaction_groups": { + "additionalProperties": { + "$ref": "#/components/schemas/ReactionGroupResponse" + }, + "type": "object", + "x-stream-index": "001.016" + }, + "reaction_scores": { + "additionalProperties": { "format": "int32", "type": "integer" }, + "type": "object", + "x-stream-index": "001.015" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.021" + }, + "shadowed": { "type": "boolean", "x-stream-index": "001.034" }, + "show_in_channel": { "type": "boolean", "x-stream-index": "001.020" }, + "silent": { "type": "boolean", "x-stream-index": "001.043" }, + "text": { "type": "string", "x-stream-index": "001.004" }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/UserObject" }, + "type": "array", + "x-stream-index": "001.026" + }, + "type": { "type": "string", "x-stream-index": "001.008" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.030" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.010" + } + }, + "required": [ + "id", + "text", + "html", + "type", + "attachments", + "latest_reactions", + "own_reactions", + "reaction_counts", + "reaction_scores", + "reaction_groups", + "reply_count", + "deleted_reply_count", + "cid", + "created_at", + "updated_at", + "custom", + "shadowed", + "mentioned_users", + "silent", + "pinned" + ], + "type": "object" + }, + "SearchWarning": { + "properties": { + "channel_search_cids": { + "description": "Channel CIDs for the searched channels", + "items": { "type": "string" }, + "title": "Channel Search CIDs", + "type": "array", + "x-stream-index": "004" + }, + "channel_search_count": { + "description": "Number of channels searched", + "format": "int32", + "title": "Channel Search Count", + "type": "integer", + "x-stream-index": "003" + }, + "warning_code": { + "description": "Code corresponding to the warning", + "format": "int32", + "title": "Warning Code", + "type": "integer", + "x-stream-index": "002" + }, + "warning_description": { + "description": "Description of the warning", + "title": "Warning Description", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["warning_description", "warning_code"], + "type": "object" + }, + "SendEventRequest": { + "nullable": true, + "properties": { + "event": { + "$ref": "#/components/schemas/EventRequest", + "x-stream-index": "001" + } + }, + "required": ["event"], + "type": "object" + }, + "SendEventResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "SendMessageRequest": { + "nullable": true, + "properties": { + "force_moderation": { "type": "boolean", "x-stream-index": "007" }, + "keep_channel_hidden": { "type": "boolean", "x-stream-index": "008" }, + "message": { + "$ref": "#/components/schemas/MessageRequest", + "x-stream-index": "001" + }, + "pending": { "type": "boolean", "x-stream-index": "006" }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "005" + }, + "skip_enrich_url": { "type": "boolean", "x-stream-index": "003" }, + "skip_push": { "type": "boolean", "x-stream-index": "002" } + }, + "required": ["message"], + "type": "object" + }, + "SendMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/MessageResponse", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "SendReactionRequest": { + "nullable": true, + "properties": { + "enforce_unique": { + "description": "Whether to replace all existing user reactions", + "title": "Enforce unique", + "type": "boolean", + "x-stream-index": "003" + }, + "reaction": { + "$ref": "#/components/schemas/ReactionRequest", + "x-stream-index": "002" + }, + "skip_push": { + "description": "Skips any mobile push notifications", + "title": "Skip push", + "type": "boolean", + "x-stream-index": "004" + } + }, + "required": ["reaction"], + "type": "object" + }, + "SendReactionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/MessageResponse", + "x-stream-index": "001" + }, + "reaction": { + "$ref": "#/components/schemas/ReactionResponse", + "x-stream-index": "002" + } + }, + "required": ["message", "reaction", "duration"], + "type": "object" + }, + "SendUserCustomEventRequest": { + "nullable": true, + "properties": { + "event": { + "$ref": "#/components/schemas/UserCustomEventRequest", + "x-stream-index": "001" + } + }, + "required": ["event"], + "type": "object" + }, + "ShowChannelRequest": { + "nullable": true, + "properties": { + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "002.002" + }, + "user_id": { "type": "string", "x-stream-index": "002.001" } + }, + "type": "object" + }, + "ShowChannelResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "SortParam": { + "nullable": true, + "properties": { + "direction": { + "description": "Direction of sorting, -1 for descending, 1 for ascending", + "format": "int32", + "title": "Direction", + "type": "integer", + "x-stream-index": "002" + }, + "field": { + "description": "Name of field to sort by", + "title": "Field", + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "StartHLSBroadcastingRequest": { "nullable": true, "type": "object" }, + "StartHLSBroadcastingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "playlist_url": { "type": "string", "x-stream-index": "002" } + }, + "required": ["duration", "playlist_url"], + "type": "object" + }, + "StartRecordingRequest": { + "nullable": true, + "properties": { + "recording_external_storage": { + "type": "string", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "StartRecordingResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "StartTranscriptionRequest": { + "nullable": true, + "properties": { + "transcription_external_storage": { + "type": "string", + "x-stream-index": "002" + } + }, + "type": "object" + }, + "StartTranscriptionResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "001.001" } + }, + "required": ["duration"], + "type": "object" + }, + "Stats": { + "properties": { + "average_seconds": { + "format": "float", + "type": "number", + "x-stream-index": "001" + }, + "max_seconds": { + "format": "float", + "type": "number", + "x-stream-index": "002" + } + }, + "required": ["average_seconds", "max_seconds"], + "type": "object" + }, + "StopHLSBroadcastingRequest": { "nullable": true, "type": "object" }, + "StopHLSBroadcastingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "StopLiveRequest": { "nullable": true, "type": "object" }, + "StopLiveResponse": { + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["call", "duration"], + "type": "object" + }, + "StopRecordingRequest": { "nullable": true, "type": "object" }, + "StopRecordingResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "StopTranscriptionRequest": { "nullable": true, "type": "object" }, + "StopTranscriptionResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "Subsession": { + "nullable": true, + "properties": { + "ended_at": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "joined_at": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + }, + "pub_sub_hint": { + "$ref": "#/components/schemas/MediaPubSubHint", + "x-stream-index": "004" + }, + "sfu_id": { "type": "string", "x-stream-index": "003" } + }, + "required": ["joined_at", "ended_at", "sfu_id"], + "type": "object" + }, + "TargetResolution": { + "properties": { + "bitrate": { + "format": "int32", + "maximum": 6000000, + "type": "integer", + "x-stream-index": "003" + }, + "height": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "002" + }, + "width": { + "format": "int32", + "maximum": 2560, + "minimum": 240, + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["width", "height", "bitrate"], + "type": "object" + }, + "Thread": { + "description": "Represents a conversation thread linked to a specific message in a channel.", + "properties": { + "channel": { + "$ref": "#/components/schemas/Channel", + "description": "Channel is the channel the thread belongs to", + "title": "Channel", + "x-stream-index": "004" + }, + "channel_cid": { + "description": "Channel CID is unique string identifier of the channel", + "title": "Channel CID", + "type": "string", + "x-stream-index": "003" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "013" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Created By is the user who created the thread", + "title": "Created By", + "x-stream-index": "008" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom is the custom data of the thread", + "title": "Custom", + "type": "object", + "x-stream-index": "017" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "015" + }, + "last_message_at": { + "description": "Last Message At is the time of the last message in the thread", + "format": "date-time", + "title": "Last Message At", + "type": "number", + "x-stream-index": "012" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "description": "Parent Message is the message the thread is replying to", + "title": "Parent Message", + "x-stream-index": "006" + }, + "parent_message_id": { + "description": "Parent Message ID is unique string identifier of the parent message", + "title": "Parent Message ID", + "type": "string", + "x-stream-index": "005" + }, + "participant_count": { + "description": "The number of participants in the thread", + "format": "int32", + "title": "Participant Count", + "type": "integer", + "x-stream-index": "010" + }, + "reply_count": { + "description": "The number of replies in the thread", + "format": "int32", + "title": "Reply Count", + "type": "integer", + "x-stream-index": "009" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "011" + }, + "title": { + "description": "Title is the title of the thread", + "title": "Title", + "type": "string", + "x-stream-index": "016" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "014" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_at", + "updated_at", + "title", + "custom" + ], + "title": "Thread", + "type": "object" + }, + "ThreadParticipant": { + "description": "Represents a user that is participating in a thread.", + "nullable": true, + "properties": { + "app_pk": { + "format": "int32", + "readOnly": true, + "type": "integer", + "x-stream-index": "002" + }, + "channel_cid": { "type": "string", "x-stream-index": "003" }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "007" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "010" + }, + "last_read_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "009" + }, + "left_thread_at": { + "description": "Left Thread At is the time when the user left the thread", + "format": "date-time", + "title": "Left Thread At", + "type": "number", + "x-stream-index": "008" + }, + "thread_id": { + "description": "Thead ID is unique string identifier of the thread", + "title": "ID", + "type": "string", + "x-stream-index": "004" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "User is the user object", + "title": "User", + "x-stream-index": "006" + }, + "user_id": { + "description": "User ID is unique string identifier of the user", + "title": "User ID", + "type": "string", + "x-stream-index": "005" + } + }, + "required": [ + "app_pk", + "channel_cid", + "created_at", + "last_read_at", + "custom" + ], + "title": "ThreadParticipant", + "type": "object" + }, + "ThreadResponse": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "channel_cid": { "type": "string", "x-stream-index": "001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "011" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "006" + }, + "created_by_user_id": { "type": "string", "x-stream-index": "005" }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "015" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "013" + }, + "last_message_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "010" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "004" + }, + "parent_message_id": { "type": "string", "x-stream-index": "003" }, + "participant_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "008" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "007" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "009" + }, + "title": { "type": "string", "x-stream-index": "014" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "012" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_by_user_id", + "created_at", + "updated_at", + "title", + "custom" + ], + "type": "object" + }, + "ThreadState": { + "description": "Represents a conversation thread linked to a specific message in a channel.", + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/Channel", + "description": "Channel is the channel the thread belongs to", + "title": "Channel", + "x-stream-index": "001.004" + }, + "channel_cid": { + "description": "Channel CID is unique string identifier of the channel", + "title": "Channel CID", + "type": "string", + "x-stream-index": "001.003" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "001.013" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "description": "Created By is the user who created the thread", + "title": "Created By", + "x-stream-index": "001.008" + }, + "custom": { + "additionalProperties": {}, + "description": "Custom is the custom data of the thread", + "title": "Custom", + "type": "object", + "x-stream-index": "001.017" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "001.015" + }, + "last_message_at": { + "description": "Last Message At is the time of the last message in the thread", + "format": "date-time", + "title": "Last Message At", + "type": "number", + "x-stream-index": "001.012" + }, + "latest_replies": { + "items": { "$ref": "#/components/schemas/Message" }, + "type": "array", + "x-stream-index": "002" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "description": "Parent Message is the message the thread is replying to", + "title": "Parent Message", + "x-stream-index": "001.006" + }, + "parent_message_id": { + "description": "Parent Message ID is unique string identifier of the parent message", + "title": "Parent Message ID", + "type": "string", + "x-stream-index": "001.005" + }, + "participant_count": { + "description": "The number of participants in the thread", + "format": "int32", + "title": "Participant Count", + "type": "integer", + "x-stream-index": "001.010" + }, + "read": { + "items": { "$ref": "#/components/schemas/Read" }, + "type": "array", + "x-stream-index": "003" + }, + "reply_count": { + "description": "The number of replies in the thread", + "format": "int32", + "title": "Reply Count", + "type": "integer", + "x-stream-index": "001.009" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "001.011" + }, + "title": { + "description": "Title is the title of the thread", + "title": "Title", + "type": "string", + "x-stream-index": "001.016" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "001.014" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_at", + "updated_at", + "title", + "custom", + "latest_replies" + ], + "title": "Thread", + "type": "object" + }, + "ThreadStateResponse": { + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001.002" + }, + "channel_cid": { "type": "string", "x-stream-index": "001.001" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.011" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "001.006" + }, + "created_by_user_id": { + "type": "string", + "x-stream-index": "001.005" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.015" + }, + "deleted_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.013" + }, + "last_message_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.010" + }, + "latest_replies": { + "items": { "$ref": "#/components/schemas/Message" }, + "type": "array", + "x-stream-index": "002" + }, + "parent_message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001.004" + }, + "parent_message_id": { + "type": "string", + "x-stream-index": "001.003" + }, + "participant_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.008" + }, + "read": { + "items": { "$ref": "#/components/schemas/Read" }, + "type": "array", + "x-stream-index": "003" + }, + "reply_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.007" + }, + "thread_participants": { + "items": { "$ref": "#/components/schemas/ThreadParticipant" }, + "type": "array", + "x-stream-index": "001.009" + }, + "title": { "type": "string", "x-stream-index": "001.014" }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.012" + } + }, + "required": [ + "channel_cid", + "parent_message_id", + "created_by_user_id", + "created_at", + "updated_at", + "title", + "custom", + "latest_replies" + ], + "type": "object" + }, + "Thresholds": { + "description": "Sets thresholds for AI moderation", + "properties": { + "explicit": { + "$ref": "#/components/schemas/LabelThresholds", + "description": "Thresholds for explicit messages", + "title": "Explicit", + "x-stream-index": "001" + }, + "spam": { + "$ref": "#/components/schemas/LabelThresholds", + "description": "Thresholds for spam", + "title": "Spam", + "x-stream-index": "002" + }, + "toxic": { + "$ref": "#/components/schemas/LabelThresholds", + "description": "Thresholds for toxic messages", + "title": "Toxic", + "x-stream-index": "003" + } + }, + "title": "Auto moderation thresholds", + "type": "object" + }, + "ThumbnailResponse": { + "properties": { + "image_url": { "type": "string", "x-stream-index": "001" } + }, + "required": ["image_url"], + "type": "object" + }, + "ThumbnailsSettings": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "ThumbnailsSettingsRequest": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "type": "object" + }, + "ThumbnailsSettingsResponse": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "required": ["enabled"], + "type": "object" + }, + "TranscriptionSettings": { + "properties": { + "closed_caption_mode": { + "title": "string", + "type": "string", + "x-stream-index": "002" + }, + "languages": { + "description": "the languages to transcribe to", + "items": { "type": "string" }, + "maximum": 2, + "title": "array", + "type": "array", + "x-stream-index": "003" + }, + "mode": { + "description": "oneof=available disabled auto-on", + "enum": ["available", "disabled", "auto-on"], + "title": "string", + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["mode", "closed_caption_mode", "languages"], + "type": "object" + }, + "TranscriptionSettingsRequest": { + "properties": { + "closed_caption_mode": { "type": "string", "x-stream-index": "002" }, + "languages": { + "items": { "type": "string" }, + "maximum": 2, + "type": "array", + "x-stream-index": "003" + }, + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["mode"], + "type": "object" + }, + "TranscriptionSettingsResponse": { + "properties": { + "closed_caption_mode": { "type": "string", "x-stream-index": "002" }, + "languages": { + "items": { "type": "string" }, + "maximum": 2, + "type": "array", + "x-stream-index": "003" + }, + "mode": { + "enum": ["available", "disabled", "auto-on"], + "type": "string", + "x-stream-index": "001" + } + }, + "required": ["mode", "closed_caption_mode", "languages"], + "type": "object" + }, + "TranslateMessageRequest": { + "nullable": true, + "properties": { + "language": { + "description": "Language to translate message to", + "enum": [ + "af", + "sq", + "am", + "ar", + "az", + "bn", + "bs", + "bg", + "zh", + "zh-TW", + "hr", + "cs", + "da", + "fa-AF", + "nl", + "en", + "et", + "fi", + "fr", + "fr-CA", + "ka", + "de", + "el", + "ha", + "he", + "hi", + "hu", + "id", + "it", + "ja", + "ko", + "lv", + "ms", + "no", + "fa", + "ps", + "pl", + "pt", + "ro", + "ru", + "sr", + "sk", + "sl", + "so", + "es", + "es-MX", + "sw", + "sv", + "tl", + "ta", + "th", + "tr", + "uk", + "ur", + "vi" + ], + "title": "Language", + "type": "string", + "x-stream-index": "002" + } + }, + "required": ["language"], + "type": "object" + }, + "TruncateChannelRequest": { + "nullable": true, + "properties": { + "hard_delete": { + "description": "Permanently delete channel data (messages, reactions, etc.)", + "title": "Hard delete", + "type": "boolean", + "x-stream-index": "002" + }, + "message": { + "$ref": "#/components/schemas/MessageRequest", + "x-stream-index": "004" + }, + "skip_push": { + "description": "When `message` is set disables all push notifications for it", + "title": "Skip push", + "type": "boolean", + "x-stream-index": "005" + }, + "truncated_at": { + "description": "Truncate channel data up to `truncated_at`. The system message (if provided) creation time is always greater than `truncated_at`", + "format": "date-time", + "title": "Truncated at", + "type": "number", + "x-stream-index": "006" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "007.002" + }, + "user_id": { "type": "string", "x-stream-index": "007.001" } + }, + "type": "object" + }, + "TruncateChannelResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "002" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "003" + } + }, + "required": ["duration"], + "type": "object" + }, + "TypingIndicators": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" } + }, + "type": "object" + }, + "UnblockUserRequest": { + "nullable": true, + "properties": { + "user_id": { + "description": "the user to unblock", + "title": "UserID", + "type": "string", + "x-stream-index": "003" + } + }, + "required": ["user_id"], + "type": "object" + }, + "UnblockUserResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UnmuteChannelRequest": { + "nullable": true, + "properties": { + "channel_cids": { + "description": "Channel CIDs to mute (if multiple channels)", + "items": { "type": "string" }, + "maximum": 25, + "title": "Channel CIDs", + "type": "array", + "x-stream-index": "001.002" + }, + "expiration": { + "description": "Duration of mute in milliseconds", + "title": "Expiration", + "type": "integer", + "x-stream-index": "001.003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "002.002" + }, + "user_id": { "type": "string", "x-stream-index": "002.001" } + }, + "type": "object" + }, + "UnmuteResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "non_existing_users": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UnmuteUserRequest": { + "nullable": true, + "properties": { + "target_ids": { + "description": "User IDs to mute (if multiple users)", + "items": { "type": "string" }, + "maximum": 1000, + "title": "Target IDs", + "type": "array", + "x-stream-index": "001.002" + }, + "timeout": { + "description": "Duration of mute in minutes", + "minimum": 0, + "title": "Timeout", + "type": "integer", + "x-stream-index": "001.003" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "002.002" + }, + "user_id": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["timeout"], + "type": "object" + }, + "UnpinRequest": { + "nullable": true, + "properties": { + "session_id": { "type": "string", "x-stream-index": "003" }, + "user_id": { "type": "string", "x-stream-index": "002" } + }, + "required": ["user_id", "session_id"], + "type": "object" + }, + "UnpinResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UnreadCountsBatchRequest": { + "nullable": true, + "properties": { + "user_ids": { + "items": { "type": "string" }, + "maximum": 100, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["user_ids"], + "type": "object" + }, + "UnreadCountsBatchResponse": { + "nullable": true, + "properties": { + "counts_by_user": { + "additionalProperties": { + "$ref": "#/components/schemas/UnreadCountsResponse" + }, + "type": "object", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + } + }, + "required": ["counts_by_user", "duration"], + "type": "object" + }, + "UnreadCountsChannel": { + "properties": { + "channel_id": { "type": "string", "x-stream-index": "001" }, + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "003" + }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "required": ["channel_id", "unread_count", "last_read"], + "type": "object" + }, + "UnreadCountsChannelType": { + "properties": { + "channel_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "channel_type": { "type": "string", "x-stream-index": "001" }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "003" + } + }, + "required": ["channel_type", "channel_count", "unread_count"], + "type": "object" + }, + "UnreadCountsResponse": { + "nullable": true, + "properties": { + "channel_type": { + "items": { "$ref": "#/components/schemas/UnreadCountsChannelType" }, + "type": "array", + "x-stream-index": "004" + }, + "channels": { + "items": { "$ref": "#/components/schemas/UnreadCountsChannel" }, + "type": "array", + "x-stream-index": "003" + }, + "threads": { + "items": { "$ref": "#/components/schemas/UnreadCountsThread" }, + "type": "array", + "x-stream-index": "005" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + }, + "total_unread_threads_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + } + }, + "required": [ + "total_unread_count", + "total_unread_threads_count", + "channels", + "channel_type", + "threads" + ], + "type": "object" + }, + "UnreadCountsThread": { + "properties": { + "last_read": { + "format": "date-time", + "type": "number", + "x-stream-index": "002" + }, + "last_read_message_id": { "type": "string", "x-stream-index": "003" }, + "parent_message_id": { "type": "string", "x-stream-index": "004" }, + "unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": [ + "unread_count", + "last_read", + "last_read_message_id", + "parent_message_id" + ], + "type": "object" + }, + "UpdateAppRequest": { + "nullable": true, + "properties": { + "agora_options": { + "$ref": "#/components/schemas/Config", + "x-stream-index": "001.038" + }, + "apn_config": { + "$ref": "#/components/schemas/APNConfig", + "x-stream-index": "001.003" + }, + "async_moderation_config": { + "$ref": "#/components/schemas/AsyncModerationConfiguration", + "x-stream-index": "001.040" + }, + "async_url_enrich_enabled": { + "type": "boolean", + "x-stream-index": "001.017" + }, + "auto_translation_enabled": { + "type": "boolean", + "x-stream-index": "001.016" + }, + "before_message_send_hook_url": { + "type": "string", + "x-stream-index": "001.018" + }, + "cdn_expiration_seconds": { + "format": "int32", + "maximum": 1209600, + "minimum": 14400, + "type": "integer", + "x-stream-index": "001.036" + }, + "channel_hide_members_only": { + "type": "boolean", + "x-stream-index": "001.031" + }, + "custom_action_handler_url": { + "type": "string", + "x-stream-index": "001.019" + }, + "datadog_info": { + "$ref": "#/components/schemas/DataDogInfo", + "x-stream-index": "001.041" + }, + "disable_auth_checks": { + "type": "boolean", + "x-stream-index": "001.001" + }, + "disable_permissions_checks": { + "type": "boolean", + "x-stream-index": "001.002" + }, + "enforce_unique_usernames": { + "enum": ["no", "app", "team"], + "type": "string", + "x-stream-index": "001.020" + }, + "file_upload_config": { + "$ref": "#/components/schemas/FileUploadConfig", + "x-stream-index": "001.028" + }, + "firebase_config": { + "$ref": "#/components/schemas/FirebaseConfig", + "x-stream-index": "001.004" + }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.032" + }, + "hms_options": { + "$ref": "#/components/schemas/Config", + "x-stream-index": "001.039" + }, + "huawei_config": { + "$ref": "#/components/schemas/HuaweiConfig", + "x-stream-index": "001.005" + }, + "image_moderation_block_labels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.013" + }, + "image_moderation_enabled": { + "type": "boolean", + "x-stream-index": "001.014" + }, + "image_moderation_labels": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.012" + }, + "image_upload_config": { + "$ref": "#/components/schemas/FileUploadConfig", + "x-stream-index": "001.027" + }, + "migrate_permissions_to_v2": { + "type": "boolean", + "x-stream-index": "001.033" + }, + "multi_tenant_enabled": { + "type": "boolean", + "x-stream-index": "001.011" + }, + "permission_version": { + "enum": ["v1", "v2"], + "type": "string", + "x-stream-index": "001.009" + }, + "push_config": { + "$ref": "#/components/schemas/PushConfig", + "x-stream-index": "001.007" + }, + "reminders_interval": { + "format": "int32", + "maximum": 86400, + "minimum": 60, + "type": "integer", + "x-stream-index": "001.034" + }, + "reminders_max_members": { + "format": "int32", + "minimum": 2, + "type": "integer", + "x-stream-index": "001.035" + }, + "revoke_tokens_issued_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.029" + }, + "sns_key": { "type": "string", "x-stream-index": "001.025" }, + "sns_secret": { "type": "string", "x-stream-index": "001.026" }, + "sns_topic_arn": { "type": "string", "x-stream-index": "001.024" }, + "sqs_key": { "type": "string", "x-stream-index": "001.022" }, + "sqs_secret": { "type": "string", "x-stream-index": "001.023" }, + "sqs_url": { "type": "string", "x-stream-index": "001.021" }, + "user_search_disallowed_roles": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.010" + }, + "video_provider": { + "enum": ["agora", "hms"], + "type": "string", + "x-stream-index": "001.037" + }, + "webhook_events": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.030" + }, + "webhook_url": { "type": "string", "x-stream-index": "001.008" }, + "xiaomi_config": { + "$ref": "#/components/schemas/XiaomiConfig", + "x-stream-index": "001.006" + } + }, + "type": "object" + }, + "UpdateBlockListRequest": { + "nullable": true, + "properties": { + "words": { + "description": "List of words to block", + "items": { "type": "string" }, + "minimum": 1, + "title": "Words", + "type": "array", + "x-stream-index": "002" + } + }, + "title": "Update block list", + "type": "object", + "x-stream-docs-page-id": "update_block_list" + }, + "UpdateCallMembersRequest": { + "nullable": true, + "properties": { + "remove_members": { + "description": "List of userID to remove", + "items": { "type": "string" }, + "maximum": 100, + "title": "Remove Members", + "type": "array", + "x-stream-index": "003" + }, + "update_members": { + "description": "List of members to update or insert", + "items": { "$ref": "#/components/schemas/MemberRequest" }, + "maximum": 100, + "title": "Update Members", + "type": "array", + "x-stream-index": "004" + } + }, + "type": "object" + }, + "UpdateCallMembersResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["duration", "members"], + "type": "object" + }, + "UpdateCallRequest": { + "nullable": true, + "properties": { + "custom": { + "additionalProperties": {}, + "description": "Custom data for this object", + "title": "Custom data", + "type": "object", + "x-stream-index": "003" + }, + "settings_override": { + "$ref": "#/components/schemas/CallSettingsRequest", + "description": "the settings to change for this call", + "title": "Settings Override", + "x-stream-index": "004" + }, + "starts_at": { + "description": "the time the call is scheduled to start", + "format": "date-time", + "title": "Starts At", + "type": "number", + "x-stream-index": "005" + } + }, + "type": "object" + }, + "UpdateCallResponse": { + "description": "Represents a call", + "nullable": true, + "properties": { + "call": { + "$ref": "#/components/schemas/CallResponse", + "x-stream-index": "001.001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "members": { + "items": { "$ref": "#/components/schemas/MemberResponse" }, + "type": "array", + "x-stream-index": "001.002" + }, + "own_capabilities": { + "items": { "$ref": "#/components/schemas/OwnCapability" }, + "type": "array", + "x-stream-index": "001.004" + } + }, + "required": [ + "call", + "members", + "own_capabilities", + "blocked_users", + "duration" + ], + "title": "Call", + "type": "object" + }, + "UpdateCallTypeRequest": { + "nullable": true, + "properties": { + "external_storage": { "type": "string", "x-stream-index": "002.004" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002.001" + }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "002.002" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsRequest", + "x-stream-index": "002.003" + } + }, + "type": "object" + }, + "UpdateCallTypeResponse": { + "nullable": true, + "properties": { + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.005" + }, + "duration": { "type": "string", "x-stream-index": "002.001" }, + "external_storage": { "type": "string", "x-stream-index": "001.007" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "001.002" + }, + "name": { "type": "string", "x-stream-index": "001.001" }, + "notification_settings": { + "$ref": "#/components/schemas/NotificationSettings", + "x-stream-index": "001.004" + }, + "settings": { + "$ref": "#/components/schemas/CallSettingsResponse", + "x-stream-index": "001.003" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.006" + } + }, + "required": [ + "name", + "grants", + "settings", + "notification_settings", + "created_at", + "updated_at", + "duration" + ], + "type": "object" + }, + "UpdateChannelPartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002.001" + }, + "unset": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002.002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "003.002" + }, + "user_id": { "type": "string", "x-stream-index": "003.001" } + }, + "type": "object" + }, + "UpdateChannelPartialResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "002" + } + }, + "required": ["members", "duration"], + "type": "object" + }, + "UpdateChannelRequest": { + "nullable": true, + "properties": { + "accept_invite": { + "description": "Set to `true` to accept the invite", + "title": "Accept invite", + "type": "boolean", + "x-stream-index": "008" + }, + "add_members": { + "description": "List of user IDs to add to the channel", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Add members", + "type": "array", + "x-stream-index": "001" + }, + "add_moderators": { + "description": "List of user IDs to make channel moderators", + "items": { "type": "string" }, + "maximum": 100, + "title": "Add moderators", + "type": "array", + "x-stream-index": "003" + }, + "assign_roles": { + "description": "List of channel member role assignments. If any specified user is not part of the channel, the request will fail", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Assign roles", + "type": "array", + "x-stream-index": "006" + }, + "cooldown": { + "description": "Sets cool down period for the channel in seconds", + "format": "int32", + "maximum": 120, + "minimum": 0, + "title": "Cool down", + "type": "integer", + "x-stream-index": "007" + }, + "data": { + "$ref": "#/components/schemas/ChannelInput", + "x-stream-index": "013.001" + }, + "demote_moderators": { + "description": "List of user IDs to take away moderators status from", + "items": { "type": "string" }, + "maximum": 100, + "title": "Demote moderators", + "type": "array", + "x-stream-index": "004" + }, + "hide_history": { + "description": "Set to `true` to hide channel's history when adding new members", + "title": "Hide history", + "type": "boolean", + "x-stream-index": "012" + }, + "invites": { + "description": "List of user IDs to invite to the channel", + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "maximum": 100, + "title": "Invites", + "type": "array", + "x-stream-index": "005" + }, + "message": { + "$ref": "#/components/schemas/MessageRequest", + "description": "Message to send to the chat when channel is successfully updated", + "title": "Message", + "x-stream-index": "010" + }, + "reject_invite": { + "description": "Set to `true` to reject the invite", + "title": "Reject invite", + "type": "boolean", + "x-stream-index": "009" + }, + "remove_members": { + "description": "List of user IDs to remove from the channel", + "items": { "type": "string" }, + "maximum": 100, + "title": "Remove members", + "type": "array", + "x-stream-index": "002" + }, + "skip_push": { + "description": "When `message` is set disables all push notifications for it", + "title": "Skip push", + "type": "boolean", + "x-stream-index": "011" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "014.002" + }, + "user_id": { "type": "string", "x-stream-index": "014.001" } + }, + "title": "Channel update request", + "type": "object", + "x-stream-docs-page-id": "channel_update" + }, + "UpdateChannelResponse": { + "nullable": true, + "properties": { + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "001" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "004.001" + }, + "members": { + "items": { "$ref": "#/components/schemas/ChannelMember" }, + "type": "array", + "x-stream-index": "003" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "002" + } + }, + "required": ["members", "duration"], + "type": "object" + }, + "UpdateChannelTypeRequest": { + "nullable": true, + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "007.001.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "007.001.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "007.001.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "007.001.025" + }, + "blocklist": { "type": "string", "x-stream-index": "007.001.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "007.001.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "007.001.023" + }, + "commands": { + "description": "List of commands that channel supports", + "items": { "type": "string" }, + "title": "Commands", + "type": "array", + "x-stream-index": "007.003" + }, + "connect_events": { + "type": "boolean", + "x-stream-index": "007.001.004" + }, + "custom_events": { + "type": "boolean", + "x-stream-index": "007.001.012" + }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "004" + }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "007.001.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "007.001.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "007.001.009" }, + "permissions": { + "items": { "$ref": "#/components/schemas/PolicyRequest" }, + "type": "array", + "x-stream-index": "003" + }, + "polls": { "type": "boolean", "x-stream-index": "007.001.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "007.001.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "007.001.008" }, + "reactions": { "type": "boolean", "x-stream-index": "007.001.006" }, + "read_events": { "type": "boolean", "x-stream-index": "007.001.003" }, + "reminders": { "type": "boolean", "x-stream-index": "007.001.014" }, + "replies": { "type": "boolean", "x-stream-index": "007.001.007" }, + "search": { "type": "boolean", "x-stream-index": "007.001.005" }, + "typing_events": { + "type": "boolean", + "x-stream-index": "007.001.002" + }, + "uploads": { "type": "boolean", "x-stream-index": "007.001.010" }, + "url_enrichment": { + "type": "boolean", + "x-stream-index": "007.001.011" + } + }, + "required": ["max_message_length", "automod", "automod_behavior"], + "type": "object" + }, + "UpdateChannelTypeResponse": { + "nullable": true, + "properties": { + "allowed_flag_reasons": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003.001.024" + }, + "automod": { + "enum": ["disabled", "simple", "AI"], + "type": "string", + "x-stream-index": "003.001.019" + }, + "automod_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "003.001.020" + }, + "automod_thresholds": { + "$ref": "#/components/schemas/Thresholds", + "x-stream-index": "003.001.025" + }, + "blocklist": { "type": "string", "x-stream-index": "003.001.021" }, + "blocklist_behavior": { + "enum": ["flag", "block", "shadow_block"], + "type": "string", + "x-stream-index": "003.001.022" + }, + "blocklists": { + "items": { "$ref": "#/components/schemas/BlockListOptions" }, + "type": "array", + "x-stream-index": "003.001.023" + }, + "commands": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003.003" + }, + "connect_events": { + "type": "boolean", + "x-stream-index": "003.001.004" + }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002.003" + }, + "custom_events": { + "type": "boolean", + "x-stream-index": "003.001.012" + }, + "duration": { "type": "string", "x-stream-index": "004.001" }, + "grants": { + "additionalProperties": { + "items": { "type": "string" }, + "type": "array" + }, + "type": "object", + "x-stream-index": "002" + }, + "mark_messages_pending": { + "type": "boolean", + "x-stream-index": "003.001.015" + }, + "max_message_length": { + "format": "int32", + "maximum": 20000, + "type": "integer", + "x-stream-index": "003.001.018" + }, + "mutes": { "type": "boolean", "x-stream-index": "003.001.009" }, + "name": { "type": "string", "x-stream-index": "003.001.001" }, + "permissions": { + "items": { "$ref": "#/components/schemas/PolicyRequest" }, + "type": "array", + "x-stream-index": "001" + }, + "polls": { "type": "boolean", "x-stream-index": "003.001.016" }, + "push_notifications": { + "type": "boolean", + "x-stream-index": "003.001.013" + }, + "quotes": { "type": "boolean", "x-stream-index": "003.001.008" }, + "reactions": { "type": "boolean", "x-stream-index": "003.001.006" }, + "read_events": { "type": "boolean", "x-stream-index": "003.001.003" }, + "reminders": { "type": "boolean", "x-stream-index": "003.001.014" }, + "replies": { "type": "boolean", "x-stream-index": "003.001.007" }, + "search": { "type": "boolean", "x-stream-index": "003.001.005" }, + "typing_events": { + "type": "boolean", + "x-stream-index": "003.001.002" + }, + "updated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.002.004" + }, + "uploads": { "type": "boolean", "x-stream-index": "003.001.010" }, + "url_enrichment": { + "type": "boolean", + "x-stream-index": "003.001.011" + } + }, + "required": [ + "permissions", + "grants", + "name", + "typing_events", + "read_events", + "connect_events", + "search", + "reactions", + "replies", + "quotes", + "mutes", + "uploads", + "url_enrichment", + "custom_events", + "push_notifications", + "reminders", + "mark_messages_pending", + "polls", + "message_retention", + "max_message_length", + "automod", + "automod_behavior", + "created_at", + "updated_at", + "commands", + "duration" + ], + "type": "object" + }, + "UpdateCommandRequest": { + "description": "Represents custom chat command", + "nullable": true, + "properties": { + "args": { + "description": "Arguments help text, shown in commands auto-completion", + "maxLength": 255, + "title": "Arguments", + "type": "string", + "x-stream-index": "003" + }, + "description": { + "description": "Description, shown in commands auto-completion", + "maxLength": 255, + "title": "Description", + "type": "string", + "x-stream-index": "002" + }, + "set": { + "description": "Set name used for grouping commands", + "maxLength": 255, + "title": "Set", + "type": "string", + "x-stream-index": "004" + } + }, + "required": ["description"], + "title": "Command", + "type": "object" + }, + "UpdateCommandResponse": { + "nullable": true, + "properties": { + "command": { + "$ref": "#/components/schemas/Command", + "x-stream-index": "001" + }, + "duration": { "type": "string", "x-stream-index": "002.001" } + }, + "required": ["duration"], + "type": "object" + }, + "UpdateExternalStorageRequest": { + "nullable": true, + "properties": { + "aws_s3": { + "$ref": "#/components/schemas/S3Request", + "x-stream-index": "003.004" + }, + "azure_blob": { + "$ref": "#/components/schemas/AzureRequest", + "x-stream-index": "003.006" + }, + "bucket": { "type": "string", "x-stream-index": "003.002" }, + "gcs_credentials": { "type": "string", "x-stream-index": "003.005" }, + "path": { "type": "string", "x-stream-index": "003.003" }, + "storage_type": { "type": "string", "x-stream-index": "003.001" } + }, + "required": ["storage_type", "bucket"], + "type": "object" + }, + "UpdateExternalStorageResponse": { + "nullable": true, + "properties": { + "bucket": { "type": "string", "x-stream-index": "001.003" }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "name": { "type": "string", "x-stream-index": "001.001" }, + "path": { "type": "string", "x-stream-index": "001.004" }, + "type": { "type": "string", "x-stream-index": "001.002" } + }, + "required": ["name", "type", "bucket", "path", "duration"], + "type": "object" + }, + "UpdateMessagePartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "description": "Sets new field values", + "title": "Set", + "type": "object", + "x-stream-index": "002.001", + "x-stream-map": { + "key": "field", + "title": "Value", + "description": "New value to set" + } + }, + "skip_enrich_url": { "type": "boolean", "x-stream-index": "001" }, + "unset": { + "description": "Array of field names to unset", + "items": { "type": "string" }, + "title": "Unset", + "type": "array", + "x-stream-index": "002.002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "004.002" + }, + "user_id": { "type": "string", "x-stream-index": "004.001" } + }, + "type": "object" + }, + "UpdateMessagePartialResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["duration"], + "type": "object" + }, + "UpdateMessageRequest": { + "nullable": true, + "properties": { + "message": { + "$ref": "#/components/schemas/MessageRequest", + "x-stream-index": "001" + }, + "skip_enrich_url": { "type": "boolean", "x-stream-index": "002" } + }, + "required": ["message"], + "type": "object" + }, + "UpdateMessageResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "003.001" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "001" + }, + "pending_message_metadata": { + "additionalProperties": { "type": "string" }, + "type": "object", + "x-stream-index": "002" + } + }, + "required": ["message", "duration"], + "type": "object" + }, + "UpdatePollOptionRequest": { + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "004" + }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "002" }, + "text": { "type": "string", "x-stream-index": "003" }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "005.002" + }, + "user_id": { "type": "string", "x-stream-index": "005.001" } + }, + "required": ["id", "text"], + "type": "object" + }, + "UpdatePollPartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "description": "Sets new field values", + "title": "Set", + "type": "object", + "x-stream-index": "002.001", + "x-stream-map": { + "key": "field", + "title": "Value", + "description": "New value to set" + } + }, + "unset": { + "description": "Array of field names to unset", + "items": { "type": "string" }, + "title": "Unset", + "type": "array", + "x-stream-index": "002.002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "003.002" + }, + "user_id": { "type": "string", "x-stream-index": "003.001" } + }, + "type": "object" + }, + "UpdatePollRequest": { + "nullable": true, + "properties": { + "Custom": { + "additionalProperties": {}, + "type": "object", + "writeOnly": true, + "x-stream-index": "011" + }, + "allow_answers": { "type": "boolean", "x-stream-index": "009" }, + "allow_user_suggested_options": { + "type": "boolean", + "x-stream-index": "008" + }, + "description": { "type": "string", "x-stream-index": "003" }, + "enforce_unique_vote": { "type": "boolean", "x-stream-index": "005" }, + "id": { "maxLength": 255, "type": "string", "x-stream-index": "001" }, + "is_closed": { "type": "boolean", "x-stream-index": "010" }, + "max_votes_allowed": { + "format": "int32", + "maximum": 10, + "type": "integer", + "x-stream-index": "007" + }, + "name": { "type": "string", "x-stream-index": "002" }, + "options": { + "items": { "$ref": "#/components/schemas/PollOption" }, + "maximum": 100, + "type": "array", + "x-stream-index": "004" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "012.002" + }, + "user_id": { "type": "string", "x-stream-index": "012.001" }, + "voting_visibility": { + "enum": ["anonymous", "public"], + "type": "string", + "x-stream-index": "006" + } + }, + "required": ["id", "name"], + "type": "object" + }, + "UpdateThreadPartialRequest": { + "nullable": true, + "properties": { + "set": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "004.001" + }, + "unset": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004.002" + }, + "user": { + "$ref": "#/components/schemas/UserRequest", + "x-stream-index": "003.002" + }, + "user_id": { "type": "string", "x-stream-index": "003.001" } + }, + "type": "object" + }, + "UpdateThreadPartialResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "002.001" }, + "thread": { + "$ref": "#/components/schemas/ThreadResponse", + "description": "Updated thread (not enriched)", + "title": "Thread", + "x-stream-index": "001" + } + }, + "required": ["thread", "duration"], + "type": "object" + }, + "UpdateUserPartialRequest": { + "properties": { + "id": { + "description": "User ID to update", + "title": "ID", + "type": "string", + "x-stream-index": "001" + }, + "set": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002.001" + }, + "unset": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002.002" + } + }, + "required": ["id"], + "type": "object" + }, + "UpdateUserPermissionsRequest": { + "nullable": true, + "properties": { + "grant_permissions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "002" + }, + "revoke_permissions": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "003" + }, + "user_id": { "type": "string", "x-stream-index": "001" } + }, + "required": ["user_id"], + "type": "object" + }, + "UpdateUserPermissionsResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "001.001" + } + }, + "required": ["duration"], + "type": "object" + }, + "UpdateUsersPartialRequest": { + "nullable": true, + "properties": { + "users": { + "items": { + "$ref": "#/components/schemas/UpdateUserPartialRequest" + }, + "maximum": 100, + "type": "array", + "x-stream-index": "001" + } + }, + "required": ["users"], + "type": "object" + }, + "UpdateUsersRequest": { + "nullable": true, + "properties": { + "users": { + "additionalProperties": { + "$ref": "#/components/schemas/UserRequest" + }, + "description": "Object containing users", + "title": "Users", + "type": "object", + "x-stream-index": "001", + "x-stream-map": { "key": "user_id" } + } + }, + "required": ["users"], + "type": "object" + }, + "UpdateUsersResponse": { + "nullable": true, + "properties": { + "duration": { "type": "string", "x-stream-index": "003.001" }, + "membership_deletion_task_id": { + "type": "string", + "x-stream-index": "002" + }, + "users": { + "additionalProperties": { + "$ref": "#/components/schemas/FullUserResponse" + }, + "description": "Object containing users", + "title": "Users", + "type": "object", + "x-stream-index": "001", + "x-stream-map": { "key": "user_id" } + } + }, + "required": ["users", "membership_deletion_task_id", "duration"], + "type": "object" + }, + "UpsertPushProviderRequest": { + "nullable": true, + "properties": { + "push_provider": { + "$ref": "#/components/schemas/PushProvider", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "UpsertPushProviderResponse": { + "nullable": true, + "properties": { + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "push_provider": { + "$ref": "#/components/schemas/PushProviderResponse", + "x-stream-index": "001" + } + }, + "required": ["push_provider", "duration"], + "type": "object" + }, + "UserCustomEventRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "002" + }, + "type": { "type": "string", "x-stream-index": "001" } + }, + "required": ["type"], + "type": "object" + }, + "UserInfoResponse": { + "properties": { + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "003" + }, + "image": { "type": "string", "x-stream-index": "002" }, + "name": { "type": "string", "x-stream-index": "001" }, + "roles": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "004" + } + }, + "required": ["name", "image", "custom", "roles"], + "type": "object" + }, + "UserMute": { + "nullable": true, + "properties": { + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "009" + }, + "expires": { + "description": "Date/time of mute expiration", + "format": "date-time", + "title": "Expires", + "type": "number", + "x-stream-index": "008" + }, + "target": { + "$ref": "#/components/schemas/UserObject", + "description": "User who's muted", + "title": "Target", + "x-stream-index": "007" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "010" + }, + "user": { + "$ref": "#/components/schemas/UserObject", + "description": "Owner of channel mute", + "title": "User", + "x-stream-index": "005" + } + }, + "required": ["created_at", "updated_at"], + "type": "object" + }, + "UserObject": { + "description": "Represents chat user", + "properties": { + "ban_expires": { + "description": "Expiration date of the ban", + "format": "date-time", + "title": "Ban expires", + "type": "number", + "x-stream-index": "015" + }, + "banned": { + "description": "Whether a user is banned or not", + "title": "Banned", + "type": "boolean", + "x-stream-index": "014" + }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "readOnly": true, + "title": "Created at", + "type": "number", + "x-stream-index": "007" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "005" + }, + "deactivated_at": { + "description": "Date of deactivation", + "format": "date-time", + "readOnly": true, + "title": "Deactivated at", + "type": "number", + "x-stream-index": "012" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "readOnly": true, + "title": "Deleted at", + "type": "number", + "x-stream-index": "011" + }, + "id": { + "description": "Unique user identifier", + "title": "ID", + "type": "string", + "x-stream-index": "003" + }, + "invisible": { "type": "boolean", "x-stream-index": "021" }, + "language": { + "description": "Preferred language of a user", + "title": "Language", + "type": "string", + "x-stream-index": "032" + }, + "last_active": { + "description": "Date of last activity", + "format": "date-time", + "readOnly": true, + "title": "Last active", + "type": "number", + "x-stream-index": "010" + }, + "online": { + "description": "Whether a user online or not", + "readOnly": true, + "title": "Online", + "type": "boolean", + "x-stream-index": "020" + }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "024" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "023" + }, + "revoke_tokens_issued_before": { + "description": "Revocation date for tokens", + "format": "date-time", + "title": "Revoke tokens issued before", + "type": "number", + "x-stream-index": "039" + }, + "role": { + "description": "Determines the set of user permissions", + "title": "Role", + "type": "string", + "x-stream-index": "004" + }, + "teams": { + "description": "List of teams user is a part of", + "items": { "type": "string" }, + "title": "Teams", + "type": "array", + "x-stream-index": "033" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "readOnly": true, + "title": "Updated at", + "type": "number", + "x-stream-index": "008" + } + }, + "required": ["id", "role", "custom", "banned", "online"], + "title": "User object", + "type": "object" + }, + "UserRequest": { + "properties": { + "custom": { + "additionalProperties": {}, + "title": "Custom", + "type": "object", + "x-stream-index": "004" + }, + "id": { + "description": "User ID", + "title": "ID", + "type": "string", + "x-stream-index": "001" + }, + "image": { + "title": "Image", + "type": "string", + "x-stream-index": "003" + }, + "invisible": { "type": "boolean", "x-stream-index": "006" }, + "language": { "type": "string", "x-stream-index": "005" }, + "name": { + "description": "Optional name of user", + "title": "Name", + "type": "string", + "x-stream-index": "002" + }, + "privacy_settings": { + "$ref": "#/components/schemas/PrivacySettings", + "x-stream-index": "007" + }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettingsInput", + "x-stream-index": "010" + }, + "role": { + "title": "Role", + "type": "string", + "x-stream-index": "008" + }, + "teams": { + "items": { "type": "string" }, + "title": "Teams", + "type": "array", + "x-stream-index": "009" + } + }, + "required": ["id"], + "type": "object" + }, + "UserResponse": { + "properties": { + "banned": { "type": "boolean", "x-stream-index": "001.011" }, + "created_at": { + "description": "Date/time of creation", + "format": "date-time", + "title": "Created at", + "type": "number", + "x-stream-index": "001.008" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "001.004" + }, + "deactivated_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.015" + }, + "deleted_at": { + "description": "Date/time of deletion", + "format": "date-time", + "title": "Deleted at", + "type": "number", + "x-stream-index": "001.010" + }, + "devices": { + "items": { "$ref": "#/components/schemas/Device" }, + "type": "array", + "x-stream-index": "004" + }, + "id": { "type": "string", "x-stream-index": "001.001" }, + "image": { "type": "string", "x-stream-index": "001.003" }, + "invisible": { "type": "boolean", "x-stream-index": "005" }, + "language": { "type": "string", "x-stream-index": "001.005" }, + "last_active": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.013" + }, + "name": { "type": "string", "x-stream-index": "001.002" }, + "online": { "type": "boolean", "x-stream-index": "001.012" }, + "push_notifications": { + "$ref": "#/components/schemas/PushNotificationSettings", + "x-stream-index": "003" + }, + "revoke_tokens_issued_before": { + "format": "date-time", + "type": "number", + "x-stream-index": "001.014" + }, + "role": { "type": "string", "x-stream-index": "001.006" }, + "shadow_banned": { "type": "boolean", "x-stream-index": "002" }, + "teams": { + "items": { "type": "string" }, + "type": "array", + "x-stream-index": "001.007" + }, + "updated_at": { + "description": "Date/time of the last update", + "format": "date-time", + "title": "Updated at", + "type": "number", + "x-stream-index": "001.009" + } + }, + "required": [ + "id", + "custom", + "language", + "role", + "teams", + "created_at", + "updated_at", + "banned", + "online", + "shadow_banned", + "devices", + "invisible" + ], + "type": "object" + }, + "UserSessionStats": { + "properties": { + "browser": { "type": "string", "x-stream-index": "012.008" }, + "browser_version": { "type": "string", "x-stream-index": "012.009" }, + "current_ip": { "type": "string", "x-stream-index": "005" }, + "current_sfu": { "type": "string", "x-stream-index": "006" }, + "device_model": { "type": "string", "x-stream-index": "012.006" }, + "device_version": { "type": "string", "x-stream-index": "012.007" }, + "distance_to_sfu_kilometers": { + "format": "float", + "type": "number", + "x-stream-index": "007" + }, + "freeze_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "014.012" + }, + "geolocation": { + "$ref": "#/components/schemas/GeolocationResult", + "x-stream-index": "008" + }, + "jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "002" + }, + "latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "003" + }, + "max_fir_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.003" + }, + "max_freeze_fraction": { + "format": "float", + "type": "number", + "x-stream-index": "014.006" + }, + "max_freezes_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "014.005" + }, + "max_freezes_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.004" + }, + "max_nack_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.002" + }, + "max_pli_per_second": { + "format": "float", + "type": "number", + "x-stream-index": "014.001" + }, + "max_publishing_video_quality": { + "$ref": "#/components/schemas/VideoQuality", + "x-stream-index": "013.003" + }, + "max_receiving_video_quality": { + "$ref": "#/components/schemas/VideoQuality", + "x-stream-index": "014.014" + }, + "os": { "type": "string", "x-stream-index": "012.001" }, + "os_version": { "type": "string", "x-stream-index": "012.002" }, + "packet_loss_fraction": { + "format": "float", + "type": "number", + "x-stream-index": "014.008" + }, + "pub_sub_hints": { + "$ref": "#/components/schemas/MediaPubSubHint", + "x-stream-index": "011" + }, + "publisher_audio_mos": { + "$ref": "#/components/schemas/MOSStats", + "x-stream-index": "013.005" + }, + "publisher_jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "013.008" + }, + "publisher_latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "013.007" + }, + "publisher_packet_loss_fraction": { + "format": "float", + "type": "number", + "x-stream-index": "013.006" + }, + "publisher_video_quality_limitation_duration_seconds": { + "additionalProperties": { "format": "float", "type": "number" }, + "type": "object", + "x-stream-index": "013.009" + }, + "publishing_audio_codec": { + "type": "string", + "x-stream-index": "013.002" + }, + "publishing_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "013.001" + }, + "quality_score": { + "format": "float", + "type": "number", + "x-stream-index": "004" + }, + "receiving_audio_codec": { + "type": "string", + "x-stream-index": "014.013" + }, + "receiving_duration_seconds": { + "format": "int32", + "type": "integer", + "x-stream-index": "014.011" + }, + "sdk": { "type": "string", "x-stream-index": "012.004" }, + "sdk_version": { "type": "string", "x-stream-index": "012.005" }, + "session_id": { "type": "string", "x-stream-index": "010" }, + "subscriber_audio_mos": { + "$ref": "#/components/schemas/MOSStats", + "x-stream-index": "014.007" + }, + "subscriber_jitter": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "014.010" + }, + "subscriber_latency": { + "$ref": "#/components/schemas/Stats", + "x-stream-index": "014.009" + }, + "subsessions": { + "items": { "$ref": "#/components/schemas/Subsession" }, + "type": "array", + "x-stream-index": "009" + }, + "timeline": { + "$ref": "#/components/schemas/CallTimeline", + "x-stream-index": "001" + }, + "total_pixels_in": { "type": "integer", "x-stream-index": "014.015" }, + "total_pixels_out": { + "type": "integer", + "x-stream-index": "013.004" + }, + "webrtc_version": { "type": "string", "x-stream-index": "012.003" } + }, + "required": [ + "quality_score", + "session_id", + "publishing_duration_seconds", + "total_pixels_out", + "publisher_packet_loss_fraction", + "max_freezes_duration_seconds", + "max_freeze_fraction", + "packet_loss_fraction", + "receiving_duration_seconds", + "freeze_duration_seconds", + "total_pixels_in" + ], + "type": "object" + }, + "UserStats": { + "nullable": true, + "properties": { + "info": { + "$ref": "#/components/schemas/UserInfoResponse", + "x-stream-index": "001" + }, + "session_stats": { + "items": { "$ref": "#/components/schemas/UserSessionStats" }, + "type": "array", + "x-stream-index": "003" + } + }, + "required": ["info", "session_stats"], + "type": "object" + }, + "VideoQuality": { + "properties": { + "resolution": { + "$ref": "#/components/schemas/VideoResolution", + "x-stream-index": "002" + }, + "usage_type": { "type": "string", "x-stream-index": "001" } + }, + "type": "object" + }, + "VideoResolution": { + "properties": { + "height": { + "format": "int32", + "type": "integer", + "x-stream-index": "002" + }, + "width": { + "format": "int32", + "type": "integer", + "x-stream-index": "001" + } + }, + "required": ["width", "height"], + "type": "object" + }, + "VideoSettings": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "camera_default_on": { "type": "boolean", "x-stream-index": "004" }, + "camera_facing": { + "enum": ["front", "back", "external"], + "type": "string", + "x-stream-index": "005" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "required": [ + "enabled", + "access_request_enabled", + "target_resolution", + "camera_default_on", + "camera_facing" + ], + "type": "object" + }, + "VideoSettingsRequest": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "camera_default_on": { "type": "boolean", "x-stream-index": "004" }, + "camera_facing": { + "enum": ["front", "back", "external"], + "type": "string", + "x-stream-index": "005" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "type": "object" + }, + "VideoSettingsResponse": { + "properties": { + "access_request_enabled": { + "type": "boolean", + "x-stream-index": "002" + }, + "camera_default_on": { "type": "boolean", "x-stream-index": "004" }, + "camera_facing": { + "enum": ["front", "back", "external"], + "type": "string", + "x-stream-index": "005" + }, + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "target_resolution": { + "$ref": "#/components/schemas/TargetResolution", + "x-stream-index": "003" + } + }, + "required": [ + "enabled", + "access_request_enabled", + "target_resolution", + "camera_default_on", + "camera_facing" + ], + "type": "object" + }, + "VoteData": { + "properties": { + "Option": { + "$ref": "#/components/schemas/PollOption", + "x-stream-index": "003" + }, + "answer_text": { "type": "string", "x-stream-index": "002" }, + "option_id": { + "maxLength": 255, + "type": "string", + "x-stream-index": "001" + } + }, + "type": "object" + }, + "WSEvent": { + "description": "Represents an BaseEvent that happened in Stream Chat", + "properties": { + "automoderation": { "type": "boolean", "x-stream-index": "020" }, + "automoderation_scores": { + "$ref": "#/components/schemas/ModerationResponse", + "x-stream-index": "021" + }, + "channel": { + "$ref": "#/components/schemas/ChannelResponse", + "x-stream-index": "009" + }, + "channel_id": { "type": "string", "x-stream-index": "004" }, + "channel_type": { "type": "string", "x-stream-index": "005" }, + "cid": { "type": "string", "x-stream-index": "003" }, + "connection_id": { "type": "string", "x-stream-index": "002" }, + "created_at": { + "format": "date-time", + "type": "number", + "x-stream-index": "025" + }, + "created_by": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "019" + }, + "custom": { + "additionalProperties": {}, + "type": "object", + "x-stream-index": "024" + }, + "me": { + "$ref": "#/components/schemas/OwnUser", + "x-stream-index": "016" + }, + "member": { + "$ref": "#/components/schemas/ChannelMember", + "x-stream-index": "011" + }, + "message": { + "$ref": "#/components/schemas/Message", + "x-stream-index": "006" + }, + "message_update": { + "$ref": "#/components/schemas/MessageUpdate", + "x-stream-index": "007" + }, + "parent_id": { "type": "string", "x-stream-index": "022" }, + "poll": { + "$ref": "#/components/schemas/Poll", + "x-stream-index": "012" + }, + "poll_vote": { + "$ref": "#/components/schemas/PollVote", + "x-stream-index": "013" + }, + "reaction": { + "$ref": "#/components/schemas/Reaction", + "x-stream-index": "008" + }, + "reason": { "type": "string", "x-stream-index": "018" }, + "team": { "type": "string", "x-stream-index": "023" }, + "thread": { + "$ref": "#/components/schemas/Thread", + "x-stream-index": "010" + }, + "type": { "type": "string", "x-stream-index": "001" }, + "user": { + "$ref": "#/components/schemas/UserObject", + "x-stream-index": "014" + }, + "user_id": { "type": "string", "x-stream-index": "015" }, + "watcher_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "017" + } + }, + "required": ["type", "custom", "created_at"], + "title": "Event", + "type": "object", + "x-stream-docs-page-id": "event_object" + }, + "WrappedUnreadCountsResponse": { + "nullable": true, + "properties": { + "channel_type": { + "items": { "$ref": "#/components/schemas/UnreadCountsChannelType" }, + "type": "array", + "x-stream-index": "001.004" + }, + "channels": { + "items": { "$ref": "#/components/schemas/UnreadCountsChannel" }, + "type": "array", + "x-stream-index": "001.003" + }, + "duration": { + "description": "Duration of the request in human-readable format", + "title": "Duration", + "type": "string", + "x-stream-index": "002.001" + }, + "threads": { + "items": { "$ref": "#/components/schemas/UnreadCountsThread" }, + "type": "array", + "x-stream-index": "001.005" + }, + "total_unread_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.001" + }, + "total_unread_threads_count": { + "format": "int32", + "type": "integer", + "x-stream-index": "001.002" + } + }, + "required": [ + "total_unread_count", + "total_unread_threads_count", + "channels", + "channel_type", + "threads", + "duration" + ], + "type": "object" + }, + "XiaomiConfig": { + "properties": { + "Disabled": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "003" + }, + "package_name": { "type": "string", "x-stream-index": "001" }, + "secret": { "type": "string", "x-stream-index": "002" } + }, + "type": "object" + }, + "XiaomiConfigFields": { + "properties": { + "enabled": { "type": "boolean", "x-stream-index": "001" }, + "package_name": { "type": "string", "x-stream-index": "002" }, + "secret": { "type": "string", "x-stream-index": "003" } + }, + "required": ["enabled"], + "type": "object" + } + }, + "securitySchemes": { + "JWT": { + "description": "JWT should be always provided when stream-auth-type=jwt.\n\nUsing JWT auth request could be authenticated as user or as server-side.\n\nWhen using user authentication permission checking is going to be applied to requests based on the user that is\nperforming a request.\n\nThe `authorization` header should be a JWT string signed using the secret attached to the API key used to perform\nrequests.\n\n**WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not\nshared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side.\nIf you wish, you can configure your application to ignore authentication (see `disable_auth_check`)\nThe JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well.\n", + "in": "header", + "name": "Authorization", + "type": "apiKey" + }, + "api_key": { + "description": "Application API key should be always set in order to authenticate the request.", + "in": "query", + "name": "api_key", + "type": "apiKey" + }, + "stream-auth-type": { + "description": "Stream-Auth-Type should be always set in order to authenticate the request. Possible\nvalues: `jwt` or `anonymous`.\n\n`jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization\nheader.\n\n`anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available\nto anonymous users.", + "in": "header", + "name": "Stream-Auth-Type", + "type": "apiKey" + } + } + }, + "info": { "title": "Stream API", "version": "v112.7.0" }, + "openapi": "3.0.3", + "paths": { + "/api/v2/app": { + "get": { + "description": "This Method returns the application settings\n", + "operationId": "GetApp", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetApplicationResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get App Settings", + "tags": ["product:common"] + }, + "patch": { + "description": "This Method updates one or more application settings\n", + "operationId": "UpdateApp", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateAppRequest" } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update App Settings", + "tags": ["product:common"] + } + }, + "/api/v2/blocklists": { + "get": { + "description": "Returns all available block lists\n", + "operationId": "ListBlockLists", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListBlockListResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List block lists", + "tags": ["product:common"] + }, + "post": { + "description": "Creates a new application blocklist, once created the blocklist can be used by any channel type\n", + "operationId": "CreateBlockList", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateBlockListRequest" + } + } + }, + "description": "Block list", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create block list", + "tags": ["product:common"] + } + }, + "/api/v2/blocklists/{name}": { + "delete": { + "description": "Deletes previously created application blocklist\n", + "operationId": "DeleteBlockList", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "description": "Block list name", + "title": "Name", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete block list", + "tags": ["product:common"] + }, + "get": { + "description": "Returns block list by given name\n", + "operationId": "GetBlockList", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "description": "Block list name", + "title": "Name", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetBlockListResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get block list", + "tags": ["product:common"] + }, + "put": { + "description": "Updates contents of the block list\n", + "operationId": "UpdateBlockList", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "description": "Block list name", + "title": "Name", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateBlockListRequest" + } + } + }, + "description": "Update block list", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update block list", + "tags": ["product:common"] + } + }, + "/api/v2/chat/channels": { + "post": { + "description": "Query channels with filter query\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryChannels", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryChannelsRequest" } + } + }, + "description": "Query Channels Request", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryChannelsResponse" + } + } + }, + "description": "Channels list" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query channels", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/delete": { + "post": { + "description": "Allows to delete several channels at once asynchronously\n\nSends events:\n- channel.deleted\n\nRequired permissions:\n- DeleteChannel\n", + "operationId": "DeleteChannels", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/DeleteChannelsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteChannelsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Deletes channels asynchronously", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/read": { + "post": { + "description": "Marks channels as read up to the specific message. If no channels is given, mark all channel as read\n\nSends events:\n- message.read\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "MarkChannelsRead", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MarkChannelsReadRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkReadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mark channels as read", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/query": { + "post": { + "description": "This Method creates a channel or returns an existing one with matching attributes\n\nSends events:\n- channel.created\n- member.added\n- member.removed\n- member.updated\n- user.watching.start\n", + "operationId": "GetOrCreateDistinctChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelGetOrCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelStateResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get or create channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}": { + "delete": { + "description": "Deletes channel\n\nSends events:\n- channel.deleted\n\nRequired permissions:\n- DeleteChannel\n", + "operationId": "DeleteChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + }, + { + "in": "query", + "name": "hard_delete", + "schema": { "type": "boolean", "x-stream-index": "002" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteChannelResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete channel", + "tags": ["product:chat"] + }, + "patch": { + "description": "Updates certain fields of the channel\n\nSends events:\n- channel.updated\n\nRequired permissions:\n- UpdateChannel\n- UpdateChannelCooldown\n- UpdateChannelFrozen\n", + "operationId": "UpdateChannelPartial", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelPartialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelPartialResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Partially update channel", + "tags": ["product:chat"] + }, + "post": { + "description": "Change channel data\n\nSends events:\n- channel.updated\n- member.added\n- member.removed\n- member.updated\n- message.new\n\nRequired permissions:\n- AddOwnChannelMembership\n- RemoveOwnChannelMembership\n- UpdateChannel\n- UpdateChannelCooldown\n- UpdateChannelFrozen\n- UpdateChannelMembers\n", + "operationId": "UpdateChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "013.002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "013.002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateChannelRequest" } + } + }, + "description": "Channel update request", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/event": { + "post": { + "description": "Sends event to the channel\n\nRequired permissions:\n- SendCustomEvent\n", + "operationId": "SendEvent", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendEventRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/EventResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send event", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/file": { + "delete": { + "description": "Deletes previously uploaded file\n\nRequired permissions:\n- DeleteAttachment\n", + "operationId": "DeleteFile", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of file", + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "File ID", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "url", + "schema": { + "description": "File URL to delete", + "title": "URL", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FileDeleteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete file", + "tags": ["product:chat"] + }, + "post": { + "description": "Uploads file\n\nRequired permissions:\n- UploadAttachment\n", + "operationId": "UploadFile", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { "$ref": "#/components/schemas/FileUploadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FileUploadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Upload file", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/hide": { + "post": { + "description": "Marks channel as hidden for current user\n\nSends events:\n- channel.hidden\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "HideChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HideChannelRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/HideChannelResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Hide channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/image": { + "delete": { + "description": "Deletes previously uploaded image\n\nRequired permissions:\n- DeleteAttachment\n", + "operationId": "DeleteImage", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of file", + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "File ID", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "url", + "schema": { + "description": "File URL to delete", + "title": "URL", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FileDeleteResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete image", + "tags": ["product:chat"] + }, + "post": { + "description": "Uploads image\n\nRequired permissions:\n- UploadAttachment\n", + "operationId": "UploadImage", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001.002" + } + } + ], + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { "$ref": "#/components/schemas/ImageUploadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ImageUploadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Upload image", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/message": { + "post": { + "description": "Sends new message to the specified channel\n\nSends events:\n- message.new\n- message.updated\n\nRequired permissions:\n- AddLinks\n- CreateMessage\n- PinMessage\n- SkipChannelCooldown\n- SkipMessageModeration\n- UseFrozenChannel\n", + "operationId": "SendMessage", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "009.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "009.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendMessageRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendMessageResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send new message", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/messages": { + "get": { + "description": "Returns list messages found by IDs\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetManyMessages", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + }, + { + "in": "query", + "name": "ids", + "required": true, + "schema": { + "description": "List of comma-separated IDs", + "items": { "type": "string" }, + "maximum": 50, + "minimum": 1, + "title": "IDs", + "type": "array", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetManyMessagesResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get many messages", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/query": { + "post": { + "description": "This Method creates a channel or returns an existing one with matching attributes\n\nSends events:\n- channel.created\n- member.added\n- member.removed\n- member.updated\n- user.watching.start\n", + "operationId": "GetOrCreateChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID (maximum length of 64 characters)", + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelGetOrCreateRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelStateResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get or create channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/read": { + "post": { + "description": "Marks channel as read up to the specific message\n\nSends events:\n- message.read\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "MarkRead", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkReadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkReadResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mark read", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/show": { + "post": { + "description": "Shows previously hidden channel\n\nSends events:\n- channel.visible\n", + "operationId": "ShowChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Channel type to interact with", + "title": "Channel type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Channel ID to interact with", + "title": "Channel ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ShowChannelRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ShowChannelResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Show channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/truncate": { + "post": { + "description": "Truncates channel\n\nSends events:\n- channel.truncated\n\nRequired permissions:\n- DeleteChannel\n- TruncateChannel\n", + "operationId": "TruncateChannel", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TruncateChannelRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TruncateChannelResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Truncate channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channels/{type}/{id}/unread": { + "post": { + "description": "Marks channel as unread from a specific message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "MarkUnread", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MarkUnreadRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Mark unread", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channeltypes": { + "get": { + "description": "Lists all available channel types\n", + "operationId": "ListChannelTypes", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListChannelTypesResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List channel types", + "tags": ["product:chat"] + }, + "post": { + "description": "Creates new channel type\n", + "operationId": "CreateChannelType", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateChannelTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateChannelTypeResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create channel type", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/channeltypes/{name}": { + "delete": { + "description": "Deletes channel type\n", + "operationId": "DeleteChannelType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "description": "Channel type name", + "title": "Name", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "code": { - "description": "API error code", - "format": "int32", - "title": "Code", - "type": "integer", + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete channel type", + "tags": ["product:chat"] + }, + "get": { + "description": "Gets channel type\n", + "operationId": "GetChannelType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "description": "Channel type name", + "title": "Name", + "type": "string", + "writeOnly": true, "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "details": { - "description": "Additional error-specific information", - "items": { - "type": "integer" - }, - "title": "Details", - "type": "array", - "x-stream-index": "007" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "duration": { - "description": "Request duration", - "title": "Duration", - "type": "string", - "x-stream-index": "005" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "exception_fields": { - "additionalProperties": { - "type": "string" - }, - "description": "Additional error info", - "title": "Exception fields", - "type": "object", - "x-stream-index": "003" + "description": "Too many requests" + } + }, + "summary": "Get channel type", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates channel type\n", + "operationId": "UpdateChannelType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelTypeRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateChannelTypeResponse" + } + } }, - "message": { - "description": "Message describing an error", - "title": "Message", - "type": "string", - "x-stream-index": "002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update channel type", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/commands": { + "get": { + "description": "Returns all custom commands\n", + "operationId": "ListCommands", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCommandsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List commands", + "tags": ["product:chat"] + }, + "post": { + "description": "Creates custom chat command\n", + "operationId": "CreateCommand", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateCommandRequest" } + } + }, + "description": "Command", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateCommandResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create command", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/commands/{name}": { + "delete": { + "description": "Deletes custom chat command\n", + "operationId": "DeleteCommand", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { "type": "string", "x-stream-index": "001" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteCommandResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete command", + "tags": ["product:chat"] + }, + "get": { + "description": "Returns custom command by its name\n", + "operationId": "GetCommand", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { "type": "string", "x-stream-index": "001" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetCommandResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "more_info": { - "description": "URL with additional information", - "title": "More info", + "description": "Too many requests" + } + }, + "summary": "Get command", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates custom chat command\n", + "operationId": "UpdateCommand", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "description": "Unique command name", + "title": "Name", "type": "string", - "x-stream-index": "006" + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateCommandRequest" } + } + }, + "description": "Command", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCommandResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update command", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/export_channels": { + "post": { + "description": "Exports channel data to JSON file\n", + "operationId": "ExportChannels", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ExportChannelsRequest" } } }, - "required": [ - "code", - "message", - "StatusCode", - "duration", - "more_info", - "details" - ], - "title": "Error response", - "type": "object" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExportChannelsResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "APNS": { - "properties": { - "body": { + "summary": "Export channels", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/export_channels/{id}": { + "get": { + "description": "\n", + "operationId": "GetExportChannelsStatus", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Task ID", + "title": "ID", "type": "string", - "x-stream-index": "002" + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetExportChannelsStatusResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Export channels status", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/members": { + "get": { + "description": "Find and filter channel members\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryMembers", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMembersRequest", + "x-stream-index": "001" + } + } + }, + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MembersResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "title": { + "description": "Too many requests" + } + }, + "summary": "Query members", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}": { + "delete": { + "description": "Deletes message\n\nSends events:\n- message.deleted\n\nRequired permissions:\n- DeleteMessage\n", + "operationId": "DeleteMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID to delete", + "title": "ID", "type": "string", + "writeOnly": true, "x-stream-index": "001" } }, - "required": [ - "title", - "body" - ], - "type": "object" - }, - "APNSRequest": { - "properties": { - "body": { - "type": "string", - "x-stream-index": "002" + { + "in": "query", + "name": "hard", + "schema": { + "description": "Delete all message reactions and replies as well", + "title": "Hard", + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "deleted_by", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeleteMessageResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "title": { - "type": "string", + "description": "Too many requests" + } + }, + "summary": "Delete message", + "tags": ["product:chat"] + }, + "get": { + "description": "Returns message by ID\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, "x-stream-index": "001" } }, - "type": "object" - }, - "AudioSettings": { - "properties": { - "access_request_enabled": { - "type": "boolean", - "x-stream-index": "001" - }, - "default_device": { - "enum": [ - "speaker", - "earpiece" - ], - "type": "string", - "x-stream-index": "006" - }, - "mic_default_on": { - "type": "boolean", - "x-stream-index": "004" - }, - "opus_dtx_enabled": { + { + "in": "query", + "name": "show_deleted_message", + "schema": { "type": "boolean", + "writeOnly": true, "x-stream-index": "002" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetMessageResponse" } + } }, - "redundant_coding_enabled": { - "type": "boolean", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "speaker_default_on": { - "type": "boolean", - "x-stream-index": "005" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get message", + "tags": ["product:chat"] + }, + "post": { + "description": "Updates message with new data\n\nSends events:\n- message.updated\n\nRequired permissions:\n- AddLinks\n- PinMessage\n- SkipMessageModeration\n- UpdateMessage\n", + "operationId": "UpdateMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003.001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateMessageRequest" } } }, - "required": [ - "access_request_enabled", - "opus_dtx_enabled", - "redundant_coding_enabled", - "mic_default_on", - "speaker_default_on", - "default_device" - ], - "type": "object" + "required": true }, - "AudioSettingsRequest": { - "properties": { - "access_request_enabled": { - "type": "boolean", - "x-stream-index": "001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessageResponse" + } + } }, - "default_device": { - "enum": [ - "speaker", - "earpiece" - ], - "type": "string", - "x-stream-index": "006" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "mic_default_on": { - "type": "boolean", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "opus_dtx_enabled": { - "type": "boolean", - "x-stream-index": "002" + "description": "Too many requests" + } + }, + "summary": "Update message", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates certain fields of the message\n\nSends events:\n- message.updated\n\nRequired permissions:\n- AddLinks\n- PinMessage\n- SkipMessageModeration\n- UpdateMessage\n", + "operationId": "UpdateMessagePartial", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003.001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessagePartialRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessagePartialResponse" + } + } }, - "redundant_coding_enabled": { - "type": "boolean", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "speaker_default_on": { - "type": "boolean", - "x-stream-index": "005" - } + "description": "Bad request" }, - "required": [ - "default_device" - ], - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "BackstageSettings": { - "properties": { - "enabled": { - "type": "boolean", + "summary": "Partially message update", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/action": { + "post": { + "description": "Executes message command action with given parameters\n\nSends events:\n- message.new\n\nRequired permissions:\n- RunMessageAction\n", + "operationId": "RunMessageAction", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID", + "title": "ID", + "type": "string", + "writeOnly": true, "x-stream-index": "001" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MessageActionRequest" } + } }, - "required": [ - "enabled" - ], - "type": "object" + "required": true }, - "BackstageSettingsRequest": { - "properties": { - "enabled": { - "type": "boolean", + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MessageResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Run message command action", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/commit": { + "post": { + "description": "Commits a pending message, which will make it visible in the channel\n\nSends events:\n- message.new\n- message.updated\n", + "operationId": "CommitMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, "x-stream-index": "001" } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CommitMessageRequest" } + } }, - "type": "object" + "required": true }, - "BlockUserRequest": { - "nullable": true, - "properties": { - "user_id": { - "description": "the user to block", - "title": "UserID", - "type": "string", - "x-stream-index": "003" - } + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MessageResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" }, - "required": [ - "user_id" - ], - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "BlockUserResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + "summary": "Commit message", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/reaction": { + "post": { + "description": "Sends reaction to specified message\n\nSends events:\n- reaction.new\n- reaction.updated\n\nRequired permissions:\n- CreateReaction\n- UseFrozenChannel\n", + "operationId": "SendReaction", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID to send reaction for", + "title": "ID", "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendReactionRequest" } } }, - "required": [ - "duration" - ], - "type": "object" + "required": true }, - "BlockedUserEvent": { - "description": "This event is sent to call participants to notify when a user is blocked on a call, clients can use this event to show a notification. \nIf the user is the current user, the client should leave the call screen as well", - "nullable": true, - "properties": { - "blocked_by_user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user that blocked the user, null if the user was blocked by server-side", - "title": "Blocked by", - "x-stream-index": "004" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendReactionResponse" + } + } }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.blocked_user", - "description": "The type of event: \"call.blocked_user\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Send reaction", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/reaction/{type}": { + "delete": { + "description": "Removes user reaction from the message\n\nSends events:\n- reaction.deleted\n\nRequired permissions:\n- DeleteReaction\n", + "operationId": "DeleteReaction", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID to remove reaction from", + "title": "ID", "type": "string", - "x-stream-index": "001.001" - }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user that was blocked", - "title": "User", - "x-stream-index": "003" - } - }, - "required": [ - "type", - "created_at", - "call_cid", - "user" - ], - "title": "BlockedUserEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "BroadcastSettingsRequest": { - "properties": { - "enabled": { - "type": "boolean", + "writeOnly": true, "x-stream-index": "001" - }, - "hls": { - "$ref": "#/components/schemas/HLSSettingsRequest", - "x-stream-index": "002" } }, - "type": "object" - }, - "BroadcastSettingsResponse": { - "properties": { - "enabled": { - "type": "boolean", - "x-stream-index": "001" - }, - "hls": { - "$ref": "#/components/schemas/HLSSettingsResponse", + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "Reaction type to remove", + "title": "Type", + "type": "string", + "writeOnly": true, "x-stream-index": "002" } }, - "required": [ - "enabled", - "hls" - ], - "type": "object" - }, - "CallAcceptedEvent": { - "description": "This event is sent when a user accepts a notification to join a call.", - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", + "type": "string", + "writeOnly": true, "x-stream-index": "003" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReactionRemovalResponse" + } + } }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.accepted", - "description": "The type of event: \"call.accepted\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Delete reaction", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/reactions": { + "get": { + "description": "Returns list of reactions of specific message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetReactions", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID", + "title": "ID", "type": "string", - "x-stream-index": "001.001" - }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user who accepted the call", - "title": "User", - "x-stream-index": "004" + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "query", + "name": "limit", + "schema": { + "description": "Number of records to return", + "format": "int32", + "title": "Limit", + "type": "integer", + "writeOnly": true, + "x-stream-index": "002" } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "user" - ], - "title": "CallAcceptedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallCreatedEvent": { - "description": "This event is sent when a call is created. Clients receiving this event should check if the ringing \nfield is set to true and if so, show the call screen", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", + { + "in": "query", + "name": "offset", + "schema": { + "description": "Number of records to offset", + "format": "int32", + "title": "Offset", + "type": "integer", + "writeOnly": true, "x-stream-index": "003" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetReactionsResponse" + } + } }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "members": { - "description": "the members added to this call", - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "title": "Members", - "type": "array", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.created", - "description": "The type of event: \"call.created\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Get reactions", + "tags": ["product:chat"] + }, + "post": { + "description": "Get reactions on a message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryReactions", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryReactionsRequest" } } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "members" - ], - "title": "CallCreatedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallEndedEvent": { - "description": "This event is sent when a call is mark as ended for all its participants. Clients receiving this event should leave the call screen", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "003" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryReactionsResponse" + } + } }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.ended", - "description": "The type of event: \"call.ended\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/translate": { + "post": { + "description": "Translates message to a given language using automated translation software\n\nSends events:\n- message.updated\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "TranslateMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Message ID", + "title": "ID", "type": "string", + "writeOnly": true, "x-stream-index": "001.001" - }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user who ended the call, null if the call was ended by the server", - "title": "User", - "x-stream-index": "004" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TranslateMessageRequest" + } } }, - "required": [ - "type", - "created_at", - "call_cid", - "call" - ], - "title": "CallEndedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" + "required": true }, - "CallHLSBroadcastingFailedEvent": { - "description": "This event is sent when HLS broadcasting has failed", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MessageResponse" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.hls_broadcasting_failed", - "description": "The type of event: \"call.hls_broadcasting_failed\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Translate message", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{id}/undelete": { + "post": { + "description": "Undelete a message that was previously soft-deleted\n\nSends events:\n- message.undeleted\n", + "operationId": "UndeleteMessage", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "003.001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateMessageRequest" } } }, - "required": [ - "type", - "created_at", - "call_cid" - ], - "title": "CallHLSBroadcastingFailedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" + "required": true }, - "CallHLSBroadcastingStartedEvent": { - "description": "This event is sent when HLS broadcasting has started", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMessageResponse" + } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "hls_playlist_url": { - "type": "string", - "x-stream-index": "003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.hls_broadcasting_started", - "description": "The type of event: \"call.hls_broadcasting_started\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Undelete message", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{message_id}/polls/{poll_id}/vote": { + "post": { + "description": "Cast a vote on a poll\n\nSends events:\n- poll.vote_casted\n\nRequired permissions:\n- CastVote\n", + "operationId": "CastPollVote", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" } }, - "required": [ - "type", - "created_at", - "call_cid", - "hls_playlist_url" - ], - "title": "CallHLSBroadcastingStartedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallHLSBroadcastingStoppedEvent": { - "description": "This event is sent when HLS broadcasting has stopped", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "type": { - "default": "call.hls_broadcasting_stopped", - "description": "The type of event: \"call.hls_broadcasting_stopped\" in this case", - "title": "Event Type", + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "001.001" + "x-stream-index": "002" } - }, - "required": [ - "type", - "created_at", - "call_cid" - ], - "title": "CallHLSBroadcastingStoppedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallIngressResponse": { - "properties": { - "rtmp": { - "$ref": "#/components/schemas/RTMPIngress", - "x-stream-index": "001" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CastPollVoteRequest" } } }, - "required": [ - "rtmp" - ], - "title": "Call inputs", - "type": "object" - }, - "CallLiveStartedEvent": { - "description": "This event is sent when a call is started. Clients receiving this event should start the call.", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "003" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollVoteResponse" } + } }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.live_started", - "description": "The type of event: \"call.live_started\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Cast vote", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{message_id}/polls/{poll_id}/vote/{vote_id}": { + "delete": { + "description": "Delete a vote from a poll\n\nSends events:\n- poll.vote_removed\n\nRequired permissions:\n- CastVote\n", + "operationId": "RemovePollVote", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" } }, - "required": [ - "type", - "created_at", - "call_cid", - "call" - ], - "title": "CallLiveStartedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallMemberAddedEvent": { - "description": "This event is sent when one or more members are added to a call", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "003" - }, - "call_cid": { + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", + "x-stream-index": "003" + } + }, + { + "in": "path", + "name": "vote_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "001.002" - }, - "members": { - "description": "the members added to this call", - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "title": "Members", - "type": "array", "x-stream-index": "004" - }, - "type": { - "default": "call.member_added", - "description": "The type of event: \"call.member_added\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "members" - ], - "title": "CallMemberAddedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallMemberRemovedEvent": { - "description": "This event is sent when one or more members are removed from a call", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "003" - }, - "call_cid": { + { + "in": "query", + "name": "user_id", + "schema": { "type": "string", - "x-stream-index": "002.001" + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollVoteResponse" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "members": { - "description": "the list of member IDs removed from the call", - "items": { - "type": "string" - }, - "title": "Members", - "type": "array", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.member_removed", - "description": "The type of event: \"call.member_removed\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Delete vote", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/messages/{parent_id}/replies": { + "get": { + "description": "Returns replies (thread) of the message\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetReplies", + "parameters": [ + { + "in": "path", + "name": "parent_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "members" - ], - "title": "CallMemberRemovedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallMemberUpdatedEvent": { - "description": "This event is sent when one or more members are updated", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "003" - }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "members": { - "description": "The list of members that were updated", - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "title": "Members", + { + "in": "query", + "name": "sort", + "schema": { + "items": { "$ref": "#/components/schemas/SortParam" }, + "maximum": 1, "type": "array", - "x-stream-index": "004" - }, - "type": { - "default": "call.member_updated", - "description": "The type of event: \"call.member_updated\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "002" } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "members" - ], - "title": "CallMemberUpdatedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallMemberUpdatedPermissionEvent": { - "description": "This event is sent when one or more members get its role updated", - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "003" - }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "capabilities_by_role": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "The capabilities by role for this call", - "title": "CapabilitiesByRole", - "type": "object", - "x-stream-index": "004" - }, - "created_at": { + { + "in": "query", + "name": "id_gte", + "schema": { "type": "string", "x-stream-index": "003.003" } + }, + { + "in": "query", + "name": "id_gt", + "schema": { "type": "string", "x-stream-index": "003.004" } + }, + { + "in": "query", + "name": "id_lte", + "schema": { "type": "string", "x-stream-index": "003.005" } + }, + { + "in": "query", + "name": "id_lt", + "schema": { "type": "string", "x-stream-index": "003.006" } + }, + { + "in": "query", + "name": "created_at_after_or_equal", + "schema": { "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "members": { - "description": "The list of members that were updated", - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "title": "Members", - "type": "array", - "x-stream-index": "005" - }, - "type": { - "default": "call.member_updated_permission", - "description": "The type of event: \"call.member_added\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "type": "number", + "x-stream-index": "003.007" } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "capabilities_by_role", - "members" - ], - "title": "CallMemberUpdatedPermissionEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallNotificationEvent": { - "description": "This event is sent to all call members to notify they are getting called", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "004" - }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { + { + "in": "query", + "name": "created_at_after", + "schema": { "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "members": { - "description": "Call members", - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "title": "Members", - "type": "array", - "x-stream-index": "005" - }, - "session_id": { - "description": "Call session ID", - "title": "Session ID", - "type": "string", - "x-stream-index": "003.001" - }, - "type": { - "default": "call.notification", - "description": "The type of event: \"call.notification\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" - }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user that sent the call notification", - "title": "User", - "x-stream-index": "006" + "type": "number", + "x-stream-index": "003.008" } }, - "required": [ - "type", - "created_at", - "call_cid", - "session_id", - "call", - "members", - "user" - ], - "title": "CallNotificationEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallParticipantResponse": { - "properties": { - "joined_at": { + { + "in": "query", + "name": "created_at_before_or_equal", + "schema": { "format": "date-time", - "type": "string", - "x-stream-index": "004" - }, - "role": { - "type": "string", - "x-stream-index": "003" - }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "x-stream-index": "001" - }, - "user_session_id": { - "type": "string", - "x-stream-index": "002" + "type": "number", + "x-stream-index": "003.009" } }, - "required": [ - "user", - "user_session_id", - "role", - "joined_at" - ], - "type": "object" - }, - "CallReactionEvent": { - "description": "This event is sent when a reaction is sent in a call, clients should use this to show the reaction in the call screen", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { + { + "in": "query", + "name": "created_at_before", + "schema": { "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "type": "number", + "x-stream-index": "003.010" + } + }, + { + "in": "query", + "name": "id_around", + "schema": { "type": "string", "x-stream-index": "003.011" } + }, + { + "in": "query", + "name": "created_at_around", + "schema": { + "format": "date-time", + "type": "number", + "x-stream-index": "003.012" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetRepliesResponse" } + } }, - "reaction": { - "$ref": "#/components/schemas/ReactionResponse", - "description": "the reaction object sent by the user on the call", - "title": "reaction", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.reaction_new", - "description": "The type of event: \"call.reaction_new\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" - } + "description": "Bad request" }, - "required": [ - "type", - "created_at", - "call_cid", - "reaction" - ], - "title": "CallReactionEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallRecording": { - "description": "CallRecording represents a recording of a call.", - "properties": { - "end_time": { - "format": "date-time", - "title": "The end time of the recording.", - "type": "string", - "x-stream-index": "004" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "filename": { - "title": "The filename of the recording.", - "type": "string", - "x-stream-index": "001" + "description": "Too many requests" + } + }, + "summary": "Get replies", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/moderation/flags/message": { + "get": { + "description": "Find and filter message flags\n\nRequired permissions:\n- ReadMessageFlags\n", + "operationId": "QueryMessageFlags", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMessageFlagsRequest", + "x-stream-index": "001" + } + } }, - "start_time": { - "format": "date-time", - "title": "The start time of the recording.", - "type": "string", - "x-stream-index": "003" + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryMessageFlagsResponse" + } + } }, - "url": { - "title": "The URL of the recording.", - "type": "string", - "x-stream-index": "002" - } + "description": "Successful response" }, - "required": [ - "filename", - "url", - "start_time", - "end_time" - ], - "type": "object" - }, - "CallRecordingFailedEvent": { - "description": "This event is sent when call recording has failed", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.recording_failed", - "description": "The type of event: \"call.recording_failed\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Query Message Flags", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/moderation/mute/channel": { + "post": { + "description": "Mutes channel for user\n\nSends events:\n- channel.muted\n\nRequired permissions:\n- MuteChannel\n", + "operationId": "MuteChannel", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteChannelRequest" } } }, - "required": [ - "type", - "created_at", - "call_cid" - ], - "title": "CallRecordingFailedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" + "required": true }, - "CallRecordingReadyEvent": { - "description": "This event is sent when call recording is ready", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "call_recording": { - "$ref": "#/components/schemas/CallRecording", - "description": "The call recording object", - "title": "CallRecording", - "x-stream-index": "003" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteChannelResponse" } + } }, - "type": { - "default": "call.recording_ready", - "description": "The type of event: \"call.recording_ready\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" - } + "description": "Successful response" }, - "required": [ - "type", - "created_at", - "call_cid", - "call_recording" - ], - "title": "CallRecordingReadyEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallRecordingStartedEvent": { - "description": "This event is sent when call recording has started", - "nullable": true, - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.recording_started", - "description": "The type of event: \"call.recording_started\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Mute channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/moderation/unmute/channel": { + "post": { + "description": "Unmutes channel for user\n\nSends events:\n- channel.unmuted\n\nRequired permissions:\n- MuteChannel\n", + "operationId": "UnmuteChannel", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteChannelRequest" } } }, - "required": [ - "type", - "created_at", - "call_cid" - ], - "title": "CallRecordingStartedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" + "required": true }, - "CallRecordingStoppedEvent": { - "description": "This event is sent when call recording has stopped", - "nullable": true, - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteResponse" } + } }, - "type": { - "default": "call.recording_stopped", - "description": "The type of event: \"call.recording_stopped\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" - } + "description": "Successful response" }, - "required": [ - "type", - "created_at", - "call_cid" - ], - "title": "CallRecordingStoppedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallRejectedEvent": { - "description": "This event is sent when a user rejects a notification to join a call.", - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "003" - }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.rejected", - "description": "The type of event: \"call.rejected\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user who rejected the call", - "title": "User", - "x-stream-index": "004" + "description": "Too many requests" + } + }, + "summary": "Unmute channel", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls": { + "post": { + "description": "Creates a new poll\n\nSends events:\n- poll.created\n\nRequired permissions:\n- CreatePoll\n", + "operationId": "CreatePoll", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreatePollRequest" } } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "user" - ], - "title": "CallRejectedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallRequest": { - "properties": { - "created_by": { - "$ref": "#/components/schemas/UserRequest", - "title": "The user that create this call", - "x-backend-only": true, - "x-stream-index": "008" - }, - "created_by_id": { - "title": "The id of the user that create this call", - "type": "string", - "x-backend-only": true, - "x-stream-index": "009" - }, - "custom": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "010" - }, - "members": { - "items": { - "$ref": "#/components/schemas/MemberRequest" - }, - "maximum": 100, - "type": "array", - "x-stream-index": "011" + "description": "Create Poll Request", + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } }, - "settings_override": { - "$ref": "#/components/schemas/CallSettingsRequest", - "x-stream-index": "012" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "starts_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "013" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "team": { - "type": "string", - "x-stream-index": "007" + "description": "Too many requests" + } + }, + "summary": "Create poll", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates a poll\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "UpdatePoll", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdatePollRequest" } } }, - "type": "object" + "required": true }, - "CallResponse": { - "description": "Represents a call", - "properties": { - "backstage": { - "type": "boolean", - "x-stream-index": "015" - }, - "blocked_user_ids": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "017" - }, - "cid": { - "description": "The unique identifier for a call (:)", - "title": "CID", - "type": "string", - "x-stream-index": "004" - }, - "created_at": { - "description": "Date/time of creation", - "format": "date-time", - "title": "Created at", - "type": "string", - "x-stream-index": "009" - }, - "created_by": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user that created the call", - "title": "Created By", - "x-stream-index": "007" - }, - "current_session_id": { - "type": "string", - "x-stream-index": "005" - }, - "custom": { - "additionalProperties": {}, - "description": "Custom data for this object", - "title": "Custom data", - "type": "object", - "x-stream-index": "008" - }, - "egress": { - "$ref": "#/components/schemas/EgressResponse", - "x-stream-index": "020" - }, - "ended_at": { - "description": "Date/time when the call ended", - "format": "date-time", - "title": "Ended At", - "type": "string", - "x-stream-index": "013" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } }, - "id": { - "description": "Call ID", - "title": "ID", - "type": "string", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "ingress": { - "$ref": "#/components/schemas/CallIngressResponse", - "x-stream-index": "018" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "recording": { - "type": "boolean", - "x-stream-index": "011" + "description": "Too many requests" + } + }, + "summary": "Update poll", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/query": { + "post": { + "description": "Queries polls\n", + "operationId": "QueryPolls", + "parameters": [ + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryPollsRequest" } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryPollsResponse" } + } }, - "session": { - "$ref": "#/components/schemas/CallSessionResponse", - "x-stream-index": "019" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "settings": { - "$ref": "#/components/schemas/CallSettingsResponse", - "x-stream-index": "016" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "starts_at": { - "description": "Date/time when the call will start", - "format": "date-time", - "title": "Starts At", + "description": "Too many requests" + } + }, + "summary": "Query polls", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}": { + "delete": { + "description": "Deletes a poll\n\nSends events:\n- poll.deleted\n\nRequired permissions:\n- DeletePoll\n", + "operationId": "DeletePoll", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "014" - }, - "team": { + "x-stream-index": "002" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { "type": "string", - "x-stream-index": "006" + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "thumbnails": { - "$ref": "#/components/schemas/ThumbnailResponse", - "x-stream-index": "021" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "transcribing": { - "type": "boolean", - "x-stream-index": "012" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "description": "The type of call", - "title": "Type", + "description": "Too many requests" + } + }, + "summary": "Delete poll", + "tags": ["product:chat"] + }, + "get": { + "description": "Retrieves a poll\n", + "operationId": "GetPoll", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", "x-stream-index": "002" - }, - "updated_at": { - "description": "Date/time of the last update", - "format": "date-time", - "title": "Updated at", - "type": "string", - "x-stream-index": "010" - } - }, - "required": [ - "type", - "id", - "cid", - "current_session_id", - "created_by", - "custom", - "created_at", - "updated_at", - "recording", - "transcribing", - "backstage", - "settings", - "blocked_user_ids", - "ingress", - "egress" - ], - "title": "Call", - "type": "object" - }, - "CallRingEvent": { - "description": "This event is sent to all call members to notify they are getting called", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "005" - }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "members": { - "description": "Call members", - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "title": "Members", - "type": "array", - "x-stream-index": "006" - }, - "session_id": { - "description": "Call session ID", - "title": "Session ID", + } + }, + { + "in": "query", + "name": "user_id", + "schema": { "type": "string", - "x-stream-index": "003.001" + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } }, - "type": { - "default": "call.ring", - "description": "The type of event: \"call.notification\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user that sent the call notification", - "title": "User", - "x-stream-index": "007" - } - }, - "required": [ - "type", - "created_at", - "call_cid", - "session_id", - "call", - "members", - "user" - ], - "title": "CallRingEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallSessionEndedEvent": { - "description": "This event is sent when a call session ends", - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "call_cid": { + "description": "Too many requests" + } + }, + "summary": "Get poll", + "tags": ["product:chat"] + }, + "patch": { + "description": "Updates a poll partially\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "UpdatePollPartial", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "002.001" + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePollPartialRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollResponse" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "session_id": { - "description": "Call session ID", - "title": "Session ID", - "type": "string", - "x-stream-index": "003.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.session_ended", - "description": "The type of event: \"call.session_ended\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Partial update poll", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}/options": { + "post": { + "description": "Creates a poll option\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- CastVote\n- UpdatePoll\n", + "operationId": "CreatePollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "001.001" + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreatePollOptionRequest" + } } }, - "required": [ - "type", - "created_at", - "call_cid", - "session_id", - "call" - ], - "title": "CallSessionEndedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallSessionParticipantJoinedEvent": { - "description": "This event is sent when a participant joins a call session", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollOptionResponse" } + } }, - "participant": { - "$ref": "#/components/schemas/CallParticipantResponse", - "description": "The participant that joined the session", - "title": "Participant", - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "session_id": { - "description": "Call session ID", - "title": "Session ID", - "type": "string", - "x-stream-index": "003.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.session_participant_joined", - "description": "The type of event: \"call.session_participant_joined\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Create poll option", + "tags": ["product:chat"] + }, + "put": { + "description": "Updates a poll option\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "UpdatePollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "001.001" + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdatePollOptionRequest" + } } }, - "required": [ - "type", - "created_at", - "call_cid", - "session_id", - "participant" - ], - "title": "CallSessionParticipantJoinedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallSessionParticipantLeftEvent": { - "description": "This event is sent when a participant leaves a call session", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollOptionResponse" } + } }, - "participant": { - "$ref": "#/components/schemas/CallParticipantResponse", - "description": "The participant that left the session", - "title": "Participant", - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "session_id": { - "description": "Call session ID", - "title": "Session ID", - "type": "string", - "x-stream-index": "003.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.session_participant_left", - "description": "The type of event: \"call.session_participant_left\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Update poll option", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}/options/{option_id}": { + "delete": { + "description": "Deletes a poll option\n\nSends events:\n- poll.updated\n\nRequired permissions:\n- UpdatePoll\n", + "operationId": "DeletePollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "001.001" + "x-stream-index": "002" } }, - "required": [ - "type", - "created_at", - "call_cid", - "session_id", - "participant" - ], - "title": "CallSessionParticipantLeftEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallSessionResponse": { - "properties": { - "accepted_by": { - "additionalProperties": { - "format": "date-time", - "type": "string" - }, - "type": "object", - "x-stream-index": "007" - }, - "ended_at": { - "format": "date-time", + { + "in": "path", + "name": "option_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", "x-stream-index": "003" - }, - "id": { + } + }, + { + "in": "query", + "name": "user_id", + "schema": { "type": "string", + "writeOnly": true, "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "live_ended_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "009" - }, - "live_started_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "008" - }, - "participants": { - "items": { - "$ref": "#/components/schemas/CallParticipantResponse" - }, - "type": "array", - "x-stream-index": "004" - }, - "participants_count_by_role": { - "additionalProperties": { - "format": "int32", - "type": "integer" - }, - "type": "object", - "x-stream-index": "005" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "rejected_by": { - "additionalProperties": { - "format": "date-time", - "type": "string" - }, - "type": "object", - "x-stream-index": "006" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "started_at": { - "format": "date-time", + "description": "Too many requests" + } + }, + "summary": "Delete poll option", + "tags": ["product:chat"] + }, + "get": { + "description": "Retrieves a poll option\n", + "operationId": "GetPollOption", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", "x-stream-index": "002" } }, - "required": [ - "id", - "participants", - "participants_count_by_role", - "rejected_by", - "accepted_by" - ], - "type": "object" - }, - "CallSessionStartedEvent": { - "description": "This event is sent when a call session starts", - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "004" - }, - "call_cid": { + { + "in": "path", + "name": "option_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", + "x-stream-index": "003" + } + }, + { + "in": "query", + "name": "user_id", + "schema": { "type": "string", - "x-stream-index": "001.002" + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollOptionResponse" } + } }, - "session_id": { - "description": "Call session ID", - "title": "Session ID", - "type": "string", - "x-stream-index": "003.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.session_started", - "description": "The type of event: \"call.session_started\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Get poll option", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/polls/{poll_id}/votes": { + "post": { + "description": "Queries votes\n", + "operationId": "QueryPollVotes", + "parameters": [ + { + "in": "path", + "name": "poll_id", + "required": true, + "schema": { + "maxLength": 255, "type": "string", - "x-stream-index": "001.001" + "x-stream-index": "002" } }, - "required": [ - "type", - "created_at", - "call_cid", - "session_id", - "call" - ], - "title": "CallSessionStartedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallSettingsRequest": { - "properties": { - "audio": { - "$ref": "#/components/schemas/AudioSettingsRequest", + { + "in": "query", + "name": "user_id", + "schema": { + "type": "string", + "writeOnly": true, "x-stream-index": "001" - }, - "backstage": { - "$ref": "#/components/schemas/BackstageSettingsRequest", - "x-stream-index": "002" - }, - "broadcasting": { - "$ref": "#/components/schemas/BroadcastSettingsRequest", - "x-stream-index": "009" - }, - "geofencing": { - "$ref": "#/components/schemas/GeofenceSettingsRequest", - "x-stream-index": "003" - }, - "recording": { - "$ref": "#/components/schemas/RecordSettingsRequest", - "x-stream-index": "005" - }, - "ring": { - "$ref": "#/components/schemas/RingSettingsRequest", - "x-stream-index": "006" - }, - "screensharing": { - "$ref": "#/components/schemas/ScreensharingSettingsRequest", - "x-stream-index": "007" - }, - "thumbnails": { - "$ref": "#/components/schemas/ThumbnailsSettingsRequest", - "x-stream-index": "010" - }, - "transcription": { - "$ref": "#/components/schemas/TranscriptionSettingsRequest", - "x-stream-index": "008" - }, - "video": { - "$ref": "#/components/schemas/VideoSettingsRequest", - "x-stream-index": "004" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryPollVotesRequest" } } }, - "type": "object" + "required": true }, - "CallSettingsResponse": { - "properties": { - "audio": { - "$ref": "#/components/schemas/AudioSettings", - "x-stream-index": "001" - }, - "backstage": { - "$ref": "#/components/schemas/BackstageSettings", - "x-stream-index": "002" - }, - "broadcasting": { - "$ref": "#/components/schemas/BroadcastSettingsResponse", - "x-stream-index": "003" - }, - "geofencing": { - "$ref": "#/components/schemas/GeofenceSettings", - "x-stream-index": "004" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PollVotesResponse" } + } }, - "recording": { - "$ref": "#/components/schemas/RecordSettingsResponse", - "x-stream-index": "005" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "ring": { - "$ref": "#/components/schemas/RingSettings", - "x-stream-index": "006" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "screensharing": { - "$ref": "#/components/schemas/ScreensharingSettings", - "x-stream-index": "007" - }, - "thumbnails": { - "$ref": "#/components/schemas/ThumbnailsSettings", - "x-stream-index": "010" - }, - "transcription": { - "$ref": "#/components/schemas/TranscriptionSettings", - "x-stream-index": "008" - }, - "video": { - "$ref": "#/components/schemas/VideoSettings", - "x-stream-index": "009" - } - }, - "required": [ - "audio", - "backstage", - "broadcasting", - "geofencing", - "recording", - "ring", - "screensharing", - "transcription", - "video", - "thumbnails" - ], - "type": "object" - }, - "CallStateResponseFields": { - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "001" + "description": "Too many requests" + } + }, + "summary": "Query votes", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/query_banned_users": { + "get": { + "description": "Find and filter channel scoped or global user bans\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryBannedUsers", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryBannedUsersRequest", + "x-stream-index": "001" + } + } }, - "members": { - "description": "List of call members", - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "title": "Members", - "type": "array", - "x-stream-index": "002" + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryBannedUsersResponse" + } + } }, - "membership": { - "$ref": "#/components/schemas/MemberResponse", - "description": "Current user membership object", - "title": "Membership", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "own_capabilities": { - "items": { - "$ref": "#/components/schemas/OwnCapability" - }, - "type": "array", - "x-stream-index": "004" - } + "description": "Bad request" }, - "required": [ - "call", - "members", - "own_capabilities" - ], - "type": "object" - }, - "CallTypeResponse": { - "properties": { - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "005" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "grants": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object", - "x-stream-index": "002" + "description": "Too many requests" + } + }, + "summary": "Query Banned Users", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/search": { + "get": { + "description": "Search messages across channels\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "Search", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SearchRequest", + "description": "JSON object with search payload", + "title": "Payload", + "x-stream-index": "001" + } + } }, - "name": { - "type": "string", - "x-stream-index": "001" + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SearchResponse" } + } }, - "notification_settings": { - "$ref": "#/components/schemas/NotificationSettings", - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "settings": { - "$ref": "#/components/schemas/CallSettingsResponse", - "x-stream-index": "003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "updated_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "006" + "description": "Too many requests" + } + }, + "summary": "Search messages", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/threads": { + "post": { + "description": "Returns the list of threads for specific user\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "QueryThreads", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryThreadsRequest" } } }, - "required": [ - "name", - "grants", - "settings", - "notification_settings", - "created_at", - "updated_at" - ], - "type": "object" - }, - "CallUpdatedEvent": { - "description": "This event is sent when a call is updated, clients should use this update the local state of the call. \nThis event also contains the capabilities by role for the call, clients should update the own_capability for the current.", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "description": "Call object", - "title": "Call", - "x-stream-index": "003" - }, - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryThreadsResponse" + } + } }, - "capabilities_by_role": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "description": "The capabilities by role for this call", - "title": "CapabilitiesByRole", - "type": "object", - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.updated", - "description": "The type of event: \"call.ended\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Query Threads", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/threads/{message_id}": { + "get": { + "description": "Return a specific thread\n\nRequired permissions:\n- ReadChannel\n", + "operationId": "GetThread", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" } }, - "required": [ - "type", - "created_at", - "call_cid", - "call", - "capabilities_by_role" - ], - "title": "CallUpdatedEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CallUserMuted": { - "description": "This event is sent when a call member is muted", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "from_user_id": { + { + "in": "query", + "name": "connection_id", + "schema": { "type": "string", + "writeOnly": true, "x-stream-index": "003" - }, - "muted_user_ids": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "004" - }, - "type": { - "default": "call.user_muted", - "description": "The type of event: \"call.user_muted\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" } }, - "required": [ - "type", - "created_at", - "call_cid", - "from_user_id", - "muted_user_ids" - ], - "title": "CallUserMuted", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "ConnectUserDetailsRequest": { - "properties": { - "custom": { - "additionalProperties": {}, - "type": "object", + { + "in": "query", + "name": "reply_limit", + "schema": { + "description": "Limit the number of replies returned", + "format": "int32", + "minimum": 0, + "title": "Reply limit", + "type": "integer", + "writeOnly": true, "x-stream-index": "004" - }, - "id": { - "type": "string", - "x-stream-index": "001" - }, - "image": { - "type": "string", - "x-stream-index": "003" - }, - "name": { - "type": "string", - "x-stream-index": "002" } }, - "required": [ - "id" - ], - "type": "object" - }, - "ConnectedEvent": { - "description": "This event is sent when the WS connection is established and authenticated, this event contains the full user object as it is stored on the server", - "nullable": true, - "properties": { - "connection_id": { - "description": "The connection_id for this client", - "title": "Connection ID", - "type": "string", - "x-stream-index": "002" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "me": { - "$ref": "#/components/schemas/OwnUserResponse", - "description": "The full user object as it is stored on the server", - "title": "OwnUserResponse", - "x-stream-index": "003" - }, - "type": { - "default": "connection.ok", - "description": "The type of event: \"connection.ok\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + { + "in": "query", + "name": "participant_limit", + "schema": { + "description": "Limit the number of participants returned", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Participant limit", + "type": "integer", + "writeOnly": true, + "x-stream-index": "005" } }, - "required": [ - "type", - "created_at", - "connection_id", - "me" - ], - "title": "ConnectedEvent", - "type": "object", - "x-stream-event-client-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "ConnectionErrorEvent": { - "description": "This event is sent when the WS connection fails", - "properties": { - "connection_id": { - "type": "string", - "x-stream-index": "002" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + { + "in": "query", + "name": "member_limit", + "schema": { + "description": "Limit the number of members returned per thread channel", + "format": "int32", + "maximum": 100, + "minimum": 0, + "title": "Member limit", + "type": "integer", + "writeOnly": true, + "x-stream-index": "006" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetThreadResponse" } + } }, - "error": { - "$ref": "#/components/schemas/APIError", - "description": "The error that caused the connection to fail", - "title": "Error", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "connection.error", - "description": "The type of event: \"connection.ok\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" - } + "description": "Bad request" }, - "required": [ - "type", - "created_at", - "connection_id", - "error" - ], - "title": "ConnectionErrorEvent", - "type": "object", - "x-stream-event-client-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "CreateCallTypeRequest": { - "nullable": true, - "properties": { - "grants": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object", - "x-stream-index": "002.001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "type": "string", + "description": "Too many requests" + } + }, + "summary": "Get Thread", + "tags": ["product:chat"] + }, + "patch": { + "description": "Updates certain fields of the thread\n\nSends events:\n- thread.updated\n\nRequired permissions:\n- ReadChannel\n- UpdateThread\n", + "operationId": "UpdateThreadPartial", + "parameters": [ + { + "in": "path", + "name": "message_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, "x-stream-index": "001" - }, - "notification_settings": { - "$ref": "#/components/schemas/NotificationSettingsRequest", - "x-stream-index": "002.002" - }, - "settings": { - "$ref": "#/components/schemas/CallSettingsRequest", - "x-stream-index": "002.003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateThreadPartialRequest" + } } }, - "required": [ - "name" - ], - "type": "object" + "required": true }, - "CreateCallTypeResponse": { - "nullable": true, - "properties": { - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.005" + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateThreadPartialResponse" + } + } }, - "duration": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "grants": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Partially update thread", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/unread": { + "get": { + "description": "Fetch unread counts for a single user\n", + "operationId": "UnreadCounts", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WrappedUnreadCountsResponse" + } + } }, - "notification_settings": { - "$ref": "#/components/schemas/NotificationSettings", - "x-stream-index": "001.004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "settings": { - "$ref": "#/components/schemas/CallSettingsResponse", - "x-stream-index": "001.003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "updated_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.006" + "description": "Too many requests" + } + }, + "summary": "Unread counts", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/unread_batch": { + "post": { + "description": "Fetch unread counts in batch for multiple users in one call\n", + "operationId": "UnreadCountsBatch", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnreadCountsBatchRequest" + } } }, - "required": [ - "name", - "grants", - "settings", - "notification_settings", - "created_at", - "updated_at", - "duration" - ], - "type": "object" + "required": true }, - "CreateDeviceRequest": { - "nullable": true, - "properties": { - "id": { - "maxLength": 255, - "minLength": 1, - "type": "string", - "x-stream-index": "001" - }, - "push_provider": { - "enum": [ - "firebase", - "apn", - "huawei", - "xiaomi" - ], - "type": "string", - "x-stream-index": "002" - }, - "push_provider_name": { - "type": "string", - "x-stream-index": "003" - }, - "user": { - "$ref": "#/components/schemas/UserRequest", - "x-stream-index": "005.002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UnreadCountsBatchResponse" + } + } }, - "user_id": { - "type": "string", - "x-stream-index": "005.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "voip_token": { - "type": "boolean", - "x-stream-index": "004" - } + "description": "Bad request" }, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "CreateGuestRequest": { - "nullable": true, - "properties": { - "user": { - "$ref": "#/components/schemas/UserRequest", - "x-stream-index": "001" + "summary": "Batch unread counts", + "tags": ["product:chat"] + } + }, + "/api/v2/chat/users/{user_id}/event": { + "post": { + "description": "Sends a custom event to a user\n\nSends events:\n- *\n", + "operationId": "SendUserCustomEvent", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SendUserCustomEventRequest" + } } }, - "required": [ - "user" - ], - "type": "object" + "required": true }, - "CreateGuestResponse": { - "nullable": true, - "properties": { - "access_token": { - "description": "the access token to authenticate the user", - "title": "Access token", - "type": "string", - "x-stream-index": "002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "duration": { - "type": "string", - "x-stream-index": "003.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "title": "User", - "x-stream-index": "001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Send user event", + "tags": ["product:chat"] + } + }, + "/api/v2/check_push": { + "post": { + "description": "Sends a test message via push, this is a test endpoint to verify your push settings\n", + "operationId": "CheckPush", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CheckPushRequest" } } }, - "required": [ - "user", - "access_token", - "duration" - ], - "type": "object" + "required": true }, - "CustomVideoEvent": { - "description": "A custom event, this event is used to send custom events to other participants in the call.", - "nullable": true, - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CheckPushResponse" } + } }, - "custom": { - "additionalProperties": {}, - "description": "Custom data for this object", - "title": "Custom data", - "type": "object", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "custom", - "description": "The type of event, \"custom\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "x-stream-index": "004" + "description": "Too many requests" + } + }, + "summary": "Check push", + "tags": ["product:common"] + } + }, + "/api/v2/check_sns": { + "post": { + "description": "Validates Amazon SNS configuration\n", + "operationId": "CheckSNS", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CheckSNSRequest" } } }, - "required": [ - "type", - "created_at", - "call_cid", - "custom", - "user" - ], - "title": "CustomVideoEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "Device": { - "properties": { - "created_at": { - "description": "Date/time of creation", - "format": "date-time", - "title": "Created at", - "type": "string", - "x-stream-index": "004" - }, - "disabled": { - "description": "Whether device is disabled or not", - "title": "Disabled", - "type": "boolean", - "x-stream-index": "005" - }, - "disabled_reason": { - "description": "Reason explaining why device had been disabled", - "title": "Reason", - "type": "string", - "x-stream-index": "006" - }, - "id": { - "type": "string", - "x-stream-index": "003" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CheckSNSResponse" } + } }, - "push_provider": { - "type": "string", - "x-stream-index": "001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "push_provider_name": { - "type": "string", - "x-stream-index": "002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "voip": { - "description": "When true the token is for Apple VoIP push notifications", - "title": "Voip", - "type": "boolean", - "x-stream-index": "007" + "description": "Too many requests" + } + }, + "summary": "Check SNS", + "tags": ["product:common"] + } + }, + "/api/v2/check_sqs": { + "post": { + "description": "Validates Amazon SQS credentials\n", + "operationId": "CheckSQS", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CheckSQSRequest" } } }, - "required": [ - "push_provider", - "id", - "created_at" - ], - "title": "Device", - "type": "object" + "required": true }, - "EdgeResponse": { - "properties": { - "continent_code": { - "type": "string", - "x-stream-index": "007.003" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CheckSQSResponse" } + } }, - "country_iso_code": { - "type": "string", - "x-stream-index": "007.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "green": { - "format": "int32", - "type": "integer", - "x-stream-index": "003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "id": { + "description": "Too many requests" + } + }, + "summary": "Check SQS", + "tags": ["product:common"] + } + }, + "/api/v2/devices": { + "delete": { + "description": "Deletes one device\n", + "operationId": "DeleteDevice", + "parameters": [ + { + "in": "query", + "name": "id", + "required": true, + "schema": { + "description": "Device ID to delete", + "title": "ID", "type": "string", + "writeOnly": true, "x-stream-index": "001" - }, - "latency_test_url": { + } + }, + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", "type": "string", - "x-stream-index": "002" - }, - "latitude": { - "format": "float", - "type": "number", - "x-stream-index": "006.001" + "writeOnly": true, + "x-stream-index": "002.001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "longitude": { - "format": "float", - "type": "number", - "x-stream-index": "006.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "red": { - "format": "int32", - "type": "integer", - "x-stream-index": "005" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "subdivision_iso_code": { + "description": "Too many requests" + } + }, + "summary": "Delete device", + "tags": ["product:common"] + }, + "get": { + "description": "Returns all available devices\n", + "operationId": "ListDevices", + "parameters": [ + { + "in": "query", + "name": "user_id", + "schema": { + "description": "**Server-side only**. User ID which server acts upon", + "title": "User ID", "type": "string", - "x-stream-index": "007.001" - }, - "yellow": { - "format": "int32", - "type": "integer", - "x-stream-index": "004" + "writeOnly": true, + "x-stream-index": "001.001" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ListDevicesResponse" } + } + }, + "description": "Successful response" }, - "required": [ - "id", - "latency_test_url", - "green", - "yellow", - "red", - "latitude", - "longitude", - "subdivision_iso_code", - "country_iso_code", - "continent_code" - ], - "type": "object" - }, - "EgressHLSResponse": { - "properties": { - "playlist_url": { - "type": "string", - "x-stream-index": "001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List devices", + "tags": ["product:common"] + }, + "post": { + "description": "Adds a new device to a user, if the same device already exists the call will have no effect\n", + "operationId": "CreateDevice", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateDeviceRequest" } } }, - "required": [ - "playlist_url" - ], - "type": "object" + "required": true }, - "EgressRTMPResponse": { - "properties": { - "name": { - "type": "string", - "x-stream-index": "001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "stream_key": { - "type": "string", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "url": { - "type": "string", - "x-stream-index": "002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Create device", + "tags": ["product:common"] + } + }, + "/api/v2/export/users": { + "post": { + "description": "Exports user profile, reactions and messages for list of given users\n", + "operationId": "ExportUsers", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ExportUsersRequest" } } }, - "required": [ - "name", - "url", - "stream_key" - ], - "type": "object" + "required": true }, - "EgressResponse": { - "properties": { - "broadcasting": { - "type": "boolean", - "x-stream-index": "001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ExportUsersResponse" } + } }, - "hls": { - "$ref": "#/components/schemas/EgressHLSResponse", - "x-stream-index": "002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "rtmps": { - "items": { - "$ref": "#/components/schemas/EgressRTMPResponse" - }, - "type": "array", - "x-stream-index": "003" - } + "description": "Bad request" }, - "required": [ - "broadcasting", - "rtmps" - ], - "type": "object" - }, - "EndCallRequest": { - "nullable": true, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "EndCallResponse": { - "nullable": true, - "properties": { - "duration": { - "type": "string", - "x-stream-index": "001.001" + "summary": "Export users", + "tags": ["product:common"] + } + }, + "/api/v2/guest": { + "post": { + "description": "\n", + "operationId": "CreateGuest", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateGuestRequest" } } }, - "required": [ - "duration" - ], - "type": "object" + "required": true }, - "EventNotificationSettings": { - "properties": { - "apns": { - "$ref": "#/components/schemas/APNS", - "x-stream-index": "002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateGuestResponse" } + } }, - "enabled": { - "type": "boolean", - "x-stream-index": "001" - } + "description": "Successful response" }, - "required": [ - "enabled", - "apns" - ], - "type": "object" - }, - "EventNotificationSettingsRequest": { - "properties": { - "apns": { - "$ref": "#/components/schemas/APNSRequest", - "x-stream-index": "002" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "enabled": { - "type": "boolean", - "x-stream-index": "001" - } + "description": "Bad request" }, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "GeofenceSettings": { - "properties": { - "names": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "001" + "summary": "Create Guest", + "tags": ["product:common"] + } + }, + "/api/v2/import_urls": { + "post": { + "description": "Creates a new import URL\n", + "operationId": "CreateImportURL", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateImportURLRequest" + } } }, - "required": [ - "names" - ], - "type": "object" + "required": true }, - "GeofenceSettingsRequest": { - "properties": { - "names": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "001" - } + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateImportURLResponse" + } + } + }, + "description": "Successful response" }, - "type": "object" - }, - "GetCallResponse": { - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "001.001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "duration": { - "type": "string", - "x-stream-index": "002.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "members": { - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "type": "array", - "x-stream-index": "001.002" + "description": "Too many requests" + } + }, + "summary": "Create import URL", + "tags": ["product:common"] + } + }, + "/api/v2/imports": { + "get": { + "description": "Gets an import\n", + "operationId": "ListImports", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ListImportsResponse" } + } }, - "membership": { - "$ref": "#/components/schemas/MemberResponse", - "x-stream-index": "001.003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "own_capabilities": { - "items": { - "$ref": "#/components/schemas/OwnCapability" - }, - "type": "array", - "x-stream-index": "001.004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Get import", + "tags": ["product:common"] + }, + "post": { + "description": "Creates a new import\n", + "operationId": "CreateImport", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateImportRequest" } } }, - "required": [ - "call", - "members", - "own_capabilities", - "duration" - ], - "type": "object" + "required": true }, - "GetCallTypeResponse": { - "nullable": true, - "properties": { - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.005" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateImportResponse" + } + } }, - "duration": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "grants": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Create import", + "tags": ["product:common"] + } + }, + "/api/v2/imports/{id}": { + "get": { + "description": "Gets an import\n", + "operationId": "GetImport", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetImportResponse" } + } }, - "notification_settings": { - "$ref": "#/components/schemas/NotificationSettings", - "x-stream-index": "001.004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "settings": { - "$ref": "#/components/schemas/CallSettingsResponse", - "x-stream-index": "001.003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "updated_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.006" + "description": "Too many requests" + } + }, + "summary": "Get import", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/ban": { + "delete": { + "description": "Removes previously applied ban\n\nSends events:\n- user.unbanned\n\nRequired permissions:\n- BanChannelMember\n- BanUser\n", + "operationId": "Unban", + "parameters": [ + { + "in": "query", + "name": "target_user_id", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" } }, - "required": [ - "name", - "grants", - "settings", - "notification_settings", - "created_at", - "updated_at", - "duration" - ], - "type": "object" - }, - "GetEdgesResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + { + "in": "query", + "name": "channel_cid", + "schema": { "type": "string", - "x-stream-index": "002.001" - }, - "edges": { - "items": { - "$ref": "#/components/schemas/EdgeResponse" - }, - "type": "array", - "x-stream-index": "001" + "writeOnly": true, + "x-stream-index": "002" } }, - "required": [ - "edges", - "duration" - ], - "type": "object" - }, - "GetOrCreateCallRequest": { - "nullable": true, - "properties": { - "data": { - "$ref": "#/components/schemas/CallRequest", - "title": "Data", - "x-stream-index": "003" + { + "in": "query", + "name": "created_by", + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "005" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "members_limit": { - "format": "int32", - "maximum": 100, - "type": "integer", - "x-stream-index": "006" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "notify": { - "description": "if provided it sends a notification event to the members for this call", - "title": "Notify", - "type": "boolean", - "x-stream-index": "005" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "ring": { - "description": "if provided it sends a ring event to the members for this call", - "title": "Ring", - "type": "boolean", - "x-stream-index": "004" + "description": "Too many requests" + } + }, + "summary": "Unban user", + "tags": ["product:common"] + }, + "post": { + "description": "Restricts user activity either in specific channel or globally\n\nSends events:\n- user.banned\n\nRequired permissions:\n- BanChannelMember\n- BanUser\n", + "operationId": "Ban", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/BanRequest" } } }, - "type": "object" + "required": true }, - "GetOrCreateCallResponse": { - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "001.001" - }, - "created": { - "type": "boolean", - "x-stream-index": "002" - }, - "duration": { - "type": "string", - "x-stream-index": "003.001" - }, - "members": { - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "type": "array", - "x-stream-index": "001.002" - }, - "membership": { - "$ref": "#/components/schemas/MemberResponse", - "x-stream-index": "001.003" - }, - "own_capabilities": { - "items": { - "$ref": "#/components/schemas/OwnCapability" - }, - "type": "array", - "x-stream-index": "001.004" - } - }, - "required": [ - "call", - "members", - "own_capabilities", - "created", - "duration" - ], - "type": "object" - }, - "GoLiveRequest": { - "nullable": true, - "properties": { - "start_hls": { - "type": "boolean", - "x-stream-index": "003" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "start_recording": { - "type": "boolean", - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "start_transcription": { - "type": "boolean", - "x-stream-index": "005" - } + "description": "Bad request" }, - "type": "object" - }, - "GoLiveResponse": { - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", - "type": "string", - "x-stream-index": "002.001" + "description": "Too many requests" + } + }, + "summary": "Ban user", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/flag": { + "post": { + "description": "Reports message or user for review by moderators\n\nSends events:\n- message.flagged\n- user.flagged\n\nRequired permissions:\n- FlagMessage\n- FlagUser\n", + "operationId": "Flag", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FlagRequest" } } }, - "required": [ - "call", - "duration" - ], - "type": "object" + "required": true }, - "HLSSettingsRequest": { - "properties": { - "auto_on": { - "type": "boolean", - "x-stream-index": "001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/FlagResponse" } + } }, - "enabled": { - "type": "boolean", - "x-stream-index": "002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "layout": { - "$ref": "#/components/schemas/LayoutSettingsRequest", - "title": "LayoutSettings", - "x-backend-only": true, - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "quality_tracks": { - "items": { - "type": "string" - }, - "maximum": 3, - "minimum": 1, - "type": "array", - "x-stream-index": "003" + "description": "Too many requests" + } + }, + "summary": "Flag", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/mute": { + "post": { + "description": "Mutes one or several users\n\nSends events:\n- user.muted\n\nRequired permissions:\n- MuteUser\n", + "operationId": "MuteUser", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUserRequest" } } }, - "type": "object" + "required": true }, - "HLSSettingsResponse": { - "properties": { - "auto_on": { - "type": "boolean", - "x-stream-index": "001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUserResponse" } + } }, - "enabled": { - "type": "boolean", - "x-stream-index": "002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "layout": { - "$ref": "#/components/schemas/LayoutSettings", - "title": "Layout", - "x-backend-only": true, - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "quality_tracks": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "003" + "description": "Too many requests" + } + }, + "summary": "Mute user", + "tags": ["product:common"] + } + }, + "/api/v2/moderation/unmute": { + "post": { + "description": "Unmutes previously muted user\n\nSends events:\n- user.unmuted\n\nRequired permissions:\n- MuteUser\n", + "operationId": "UnmuteUser", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteUserRequest" } } }, - "required": [ - "auto_on", - "enabled", - "quality_tracks", - "layout" - ], - "type": "object" + "required": true }, - "HealthCheckEvent": { - "nullable": true, - "properties": { - "connection_id": { - "description": "The connection_id for this client", - "title": "Connection ID", - "type": "string", - "x-stream-index": "002" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnmuteResponse" } + } }, - "type": { - "default": "health.check", - "description": "The type of event: \"health.check\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" - } + "description": "Successful response" }, - "required": [ - "type", - "created_at", - "connection_id" - ], - "title": "HealthCheckEvent", - "type": "object", - "x-stream-event-client-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "LayoutSettings": { - "properties": { - "external_app_url": { - "type": "string", - "x-stream-index": "003" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "external_css_url": { - "type": "string", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "enum": [ - "spotlight", - "grid", - "single-participant", - "mobile", - "custom" - ], - "type": "string", + "description": "Too many requests" + } + }, + "summary": "Unmute user", + "tags": ["product:common"] + } + }, + "/api/v2/og": { + "get": { + "description": "Get an OpenGraph attachment for a link\n", + "operationId": "GetOG", + "parameters": [ + { + "in": "query", + "name": "url", + "required": true, + "schema": { + "description": "URL to be scraped", + "title": "URL", + "type": "string", + "writeOnly": true, "x-stream-index": "001" - }, - "options": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "002" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetOGResponse" } + } + }, + "description": "Get OG Attachment" }, - "required": [ - "name", - "external_app_url", - "external_css_url" - ], - "type": "object" - }, - "LayoutSettingsRequest": { - "properties": { - "external_app_url": { - "type": "string", - "x-stream-index": "003" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "external_css_url": { - "type": "string", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "enum": [ - "spotlight", - "grid", - "single-participant", - "mobile", - "custom" - ], - "type": "string", - "x-stream-index": "001" + "description": "Too many requests" + } + }, + "summary": "Get OG", + "tags": ["product:common"] + } + }, + "/api/v2/permissions": { + "get": { + "description": "Lists all available permissions\n", + "operationId": "ListPermissions", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListPermissionsResponse" + } + } }, - "options": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "002" - } + "description": "Successful response" }, - "required": [ - "name" - ], - "type": "object" - }, - "ListCallTypeResponse": { - "nullable": true, - "properties": { - "call_types": { - "additionalProperties": { - "$ref": "#/components/schemas/CallTypeResponse" - }, - "type": "object", - "x-stream-index": "001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "duration": { - "type": "string", - "x-stream-index": "002.001" - } + "description": "Bad request" }, - "required": [ - "call_types", - "duration" - ], - "type": "object" - }, - "ListDevicesResponse": { - "nullable": true, - "properties": { - "devices": { - "description": "List of devices", - "items": { - "$ref": "#/components/schemas/Device" - }, - "title": "Devices", - "type": "array", - "x-stream-index": "001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "duration": { + "description": "Too many requests" + } + }, + "summary": "List permissions", + "tags": ["product:common"] + } + }, + "/api/v2/permissions/{id}": { + "get": { + "description": "Gets custom permission\n", + "operationId": "GetPermission", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Permission ID", + "title": "ID", "type": "string", - "x-stream-index": "002.001" + "writeOnly": true, + "x-stream-index": "001" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCustomPermissionResponse" + } + } + }, + "description": "Successful response" }, - "required": [ - "devices", - "duration" - ], - "type": "object" - }, - "ListRecordingsResponse": { - "nullable": true, - "properties": { - "duration": { - "type": "string", - "x-stream-index": "001.001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "recordings": { - "items": { - "$ref": "#/components/schemas/CallRecording" - }, - "type": "array", - "x-stream-index": "002" - } + "description": "Bad request" }, - "required": [ - "duration", - "recordings" - ], - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "MemberRequest": { - "properties": { - "custom": { - "additionalProperties": {}, - "description": "Custom data for this object", - "title": "Custom data", - "type": "object", - "x-stream-index": "003" + "summary": "Get permission", + "tags": ["product:common"] + } + }, + "/api/v2/push_providers": { + "get": { + "description": "List details of all push providers.\n", + "operationId": "ListPushProviders", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListPushProvidersResponse" + } + } }, - "role": { - "title": "Role", - "type": "string", - "x-stream-index": "002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user_id": { - "minLength": 1, - "title": "User ID", - "type": "string", - "x-stream-index": "001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "List push providers", + "tags": ["product:common"] + }, + "post": { + "description": "Upsert a push provider for v2 with multi bundle/package support\n", + "operationId": "UpsertPushProvider", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertPushProviderRequest" + } } }, - "required": [ - "user_id" - ], - "type": "object" + "required": true }, - "MemberResponse": { - "properties": { - "created_at": { - "description": "Date/time of creation", - "format": "date-time", - "title": "Created at", - "type": "string", - "x-stream-index": "005" - }, - "custom": { - "additionalProperties": {}, - "description": "Custom member response data", - "title": "Custom", - "type": "object", - "x-stream-index": "004" - }, - "deleted_at": { - "description": "Date/time of deletion", - "format": "date-time", - "title": "Deleted at", - "type": "string", - "x-stream-index": "007" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertPushProviderResponse" + } + } }, - "role": { - "title": "Role", - "type": "string", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "updated_at": { - "description": "Date/time of the last update", - "format": "date-time", - "title": "Updated at", - "type": "string", - "x-stream-index": "006" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user": { - "$ref": "#/components/schemas/UserResponse", + "description": "Too many requests" + } + }, + "summary": "Upsert a push provider", + "tags": ["product:common"] + } + }, + "/api/v2/push_providers/{type}/{name}": { + "delete": { + "description": "Delete a push provider from v2 with multi bundle/package support. v1 isn't supported in this endpoint\n", + "operationId": "DeletePushProvider", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "enum": ["apn", "firebase", "huawei", "xiaomi"], + "type": "string", + "writeOnly": true, "x-stream-index": "001" - }, - "user_id": { + } + }, + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "maxLength": 36, + "minLength": 1, "type": "string", + "writeOnly": true, "x-stream-index": "002" } - }, - "required": [ - "user", - "user_id", - "custom", - "created_at", - "updated_at" - ], - "type": "object" - }, - "MuteUsersRequest": { - "nullable": true, - "properties": { - "audio": { - "title": "Audio", - "type": "boolean", - "x-stream-index": "005" - }, - "mute_all_users": { - "type": "boolean", - "x-stream-index": "003" - }, - "screenshare": { - "title": "Screenshare", - "type": "boolean", - "x-stream-index": "007" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "screenshare_audio": { - "title": "ScreenshareAudio", - "type": "boolean", - "x-stream-index": "008" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user_ids": { - "items": { - "type": "string" - }, - "title": "UserIDs", - "type": "array", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "video": { - "title": "Video", + "description": "Too many requests" + } + }, + "summary": "Delete a push provider", + "tags": ["product:common"] + } + }, + "/api/v2/rate_limits": { + "get": { + "description": "Get rate limits usage and quotas\n", + "operationId": "GetRateLimits", + "parameters": [ + { + "in": "query", + "name": "server_side", + "schema": { + "description": "Whether to include server-side platform limits or not", + "title": "Server-side", "type": "boolean", - "x-stream-index": "006" + "writeOnly": true, + "x-stream-index": "001" } }, - "type": "object" - }, - "MuteUsersResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", - "type": "string", - "x-stream-index": "001.001" + { + "in": "query", + "name": "android", + "schema": { + "description": "Whether to include Android platform limits or not", + "title": "Android", + "type": "boolean", + "writeOnly": true, + "x-stream-index": "002" } }, - "required": [ - "duration" - ], - "type": "object" - }, - "NotificationSettings": { - "properties": { - "call_live_started": { - "$ref": "#/components/schemas/EventNotificationSettings", - "x-stream-index": "002" - }, - "call_notification": { - "$ref": "#/components/schemas/EventNotificationSettings", - "x-stream-index": "004" - }, - "call_ring": { - "$ref": "#/components/schemas/EventNotificationSettings", - "x-stream-index": "005" - }, - "enabled": { + { + "in": "query", + "name": "ios", + "schema": { + "description": "Whether to include iOS platform limits or not", + "title": "iOS", "type": "boolean", - "x-stream-index": "001" - }, - "session_started": { - "$ref": "#/components/schemas/EventNotificationSettings", + "writeOnly": true, "x-stream-index": "003" } }, - "required": [ - "enabled", - "call_live_started", - "session_started", - "call_notification", - "call_ring" - ], - "type": "object" - }, - "NotificationSettingsRequest": { - "properties": { - "call_live_started": { - "$ref": "#/components/schemas/EventNotificationSettingsRequest", - "x-stream-index": "002" - }, - "call_notification": { - "$ref": "#/components/schemas/EventNotificationSettingsRequest", - "x-stream-index": "004" - }, - "call_ring": { - "$ref": "#/components/schemas/EventNotificationSettingsRequest", - "x-stream-index": "005" - }, - "enabled": { + { + "in": "query", + "name": "web", + "schema": { + "description": "Whether to include web platform limits or not", + "title": "Web", "type": "boolean", - "x-stream-index": "001" - }, - "session_started": { - "$ref": "#/components/schemas/EventNotificationSettingsRequest", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "004" } }, - "type": "object" - }, - "OwnCapability": { - "description": "All possibility of string to use", - "enum": [ - "block-users", - "create-call", - "create-reaction", - "end-call", - "join-backstage", - "join-call", - "join-ended-call", - "mute-users", - "pin-for-everyone", - "read-call", - "remove-call-member", - "screenshare", - "send-audio", - "send-video", - "start-broadcast-call", - "start-record-call", - "start-transcription-call", - "stop-broadcast-call", - "stop-record-call", - "stop-transcription-call", - "update-call", - "update-call-member", - "update-call-permissions", - "update-call-settings" - ], - "title": "OwnCapability", - "type": "string" - }, - "OwnUserResponse": { - "properties": { - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" - }, - "custom": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "001.001.004" - }, - "deleted_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.004" - }, - "devices": { - "items": { - "$ref": "#/components/schemas/Device" - }, - "title": "Devices", - "type": "array", - "x-stream-index": "002" + { + "in": "query", + "name": "endpoints", + "schema": { + "description": "Specific endpoints to show limits for, as a comma-separated list of values", + "title": "Endpoints", + "type": "string", + "writeOnly": true, + "x-stream-index": "005" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetRateLimitsResponse" + } + } }, - "id": { - "type": "string", - "x-stream-index": "001.001.001" + "description": "Get Rate Limits Response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "image": { - "type": "string", - "x-stream-index": "001.001.003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "type": "string", - "x-stream-index": "001.001.002" + "description": "Too many requests" + } + }, + "summary": "Get rate limits", + "tags": ["product:common"] + } + }, + "/api/v2/roles": { + "get": { + "description": "Lists all available roles\n", + "operationId": "ListRoles", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ListRolesResponse" } + } }, - "role": { - "type": "string", - "x-stream-index": "001.001.005" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "teams": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "001.001.006" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "updated_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.003" + "description": "Too many requests" + } + }, + "summary": "List roles", + "tags": ["product:common"] + }, + "post": { + "description": "Creates custom role\n", + "operationId": "CreateRole", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateRoleRequest" } } }, - "required": [ - "id", - "custom", - "role", - "teams", - "created_at", - "updated_at", - "devices" - ], - "type": "object" + "required": true }, - "PermissionRequestEvent": { - "description": "This event is sent when a user requests access to a feature on a call,\nclients receiving this event should display a permission request to the user", - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateRoleResponse" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "permissions": { - "description": "The list of permissions requested by the user", - "items": { - "type": "string" - }, - "title": "Permissions", - "type": "array", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.permission_request", - "description": "The type of event: \"call.permission_request\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Create role", + "tags": ["product:common"] + } + }, + "/api/v2/roles/{name}": { + "delete": { + "description": "Deletes custom role\n", + "operationId": "DeleteRole", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "description": "Role name", + "title": "Name", "type": "string", - "x-stream-index": "001.001" - }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user who sent the permission request", - "title": "User", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "001" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } + }, + "description": "Successful response" }, - "required": [ - "type", - "created_at", - "call_cid", - "user", - "permissions" - ], - "title": "PermissionRequestEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "PinRequest": { - "nullable": true, - "properties": { - "session_id": { - "type": "string", - "x-stream-index": "003" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user_id": { - "type": "string", - "x-stream-index": "002" - } + "description": "Bad request" }, - "required": [ - "user_id", - "session_id" - ], - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "PinResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + "summary": "Delete role", + "tags": ["product:common"] + } + }, + "/api/v2/tasks/{id}": { + "get": { + "description": "Gets status of a task\n", + "operationId": "GetTask", + "parameters": [ + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Task ID", + "title": "ID", "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "001" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetTaskResponse" } + } + }, + "description": "Get Task Response" }, - "required": [ - "duration" - ], - "type": "object" - }, - "QueryCallsRequest": { - "nullable": true, - "properties": { - "filter_conditions": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "003" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "limit": { - "format": "int32", - "maximum": 25, - "minimum": 0, - "type": "integer", - "x-stream-index": "006.001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "next": { - "type": "string", - "x-stream-index": "006.002" + "description": "Too many requests" + } + }, + "summary": "Get status of a task", + "tags": ["product:common"] + } + }, + "/api/v2/users": { + "get": { + "description": "Find and filter users\n\nRequired permissions:\n- SearchUser\n", + "operationId": "QueryUsers", + "parameters": [ + { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryUsersPayload", + "x-stream-index": "001" + } + } }, - "prev": { - "type": "string", - "x-stream-index": "006.003" + "in": "query", + "name": "payload" + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryUsersResponse" } + } }, - "sort": { - "items": { - "$ref": "#/components/schemas/SortParamRequest" - }, - "maximum": 2, - "type": "array", - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "watch": { - "type": "boolean", - "x-stream-index": "001" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Query users", + "tags": ["product:common"] + }, + "patch": { + "description": "Updates certain fields of the user\n\nSends events:\n- user.presence.changed\n- user.updated\n", + "operationId": "UpdateUsersPartial", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUsersPartialRequest" + } } }, - "type": "object" + "required": true }, - "QueryCallsResponse": { - "nullable": true, - "properties": { - "calls": { - "items": { - "$ref": "#/components/schemas/CallStateResponseFields" - }, - "title": "Calls", - "type": "array", - "x-stream-index": "001" - }, - "duration": { - "type": "string", - "x-stream-index": "003.001" + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateUsersResponse" } + } }, - "next": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "prev": { - "type": "string", - "x-stream-index": "002.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Partially update user", + "tags": ["product:common"] + }, + "post": { + "description": "Update or create users in bulk\n\nSends events:\n- user.updated\n", + "operationId": "UpdateUsers", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateUsersRequest" } } }, - "required": [ - "calls", - "duration" - ], - "type": "object" + "required": true }, - "QueryMembersRequest": { - "nullable": true, - "properties": { - "filter_conditions": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "002" - }, - "id": { - "maxLength": 64, - "type": "string", - "x-stream-index": "001.002" - }, - "limit": { - "format": "int32", - "maximum": 25, - "minimum": 0, - "type": "integer", - "x-stream-index": "004.001" - }, - "next": { - "type": "string", - "x-stream-index": "004.002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateUsersResponse" } + } }, - "prev": { - "type": "string", - "x-stream-index": "004.003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "sort": { - "items": { - "$ref": "#/components/schemas/SortParamRequest" - }, - "maximum": 1, - "type": "array", - "x-stream-index": "003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "maxLength": 64, - "type": "string", - "x-stream-index": "001.001" + "description": "Too many requests" + } + }, + "summary": "Upsert users", + "tags": ["product:common"] + } + }, + "/api/v2/users/deactivate": { + "post": { + "description": "Deactivate users in batches\n\nSends events:\n- user.deactivated\n", + "operationId": "DeactivateUsers", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeactivateUsersRequest" + } } }, - "required": [ - "type", - "id" - ], - "type": "object" + "required": true }, - "QueryMembersResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", - "type": "string", - "x-stream-index": "003.001" - }, - "members": { - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "type": "array", - "x-stream-index": "001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeactivateUsersResponse" + } + } }, - "next": { - "type": "string", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "prev": { - "type": "string", - "x-stream-index": "002.002" - } + "description": "Bad request" }, - "required": [ - "members", - "duration" - ], - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "RTMPIngress": { - "description": "RTMP input settings", - "properties": { - "address": { - "type": "string", - "x-stream-index": "001" + "summary": "Deactivate users", + "tags": ["product:common"] + } + }, + "/api/v2/users/delete": { + "post": { + "description": "Deletes users and optionally all their belongings asynchronously.\n\nSends events:\n- channel.deleted\n- user.deleted\n", + "operationId": "DeleteUsers", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/DeleteUsersRequest" } } }, - "required": [ - "address" - ], - "title": "RTMP Ingress", - "type": "object" + "required": true }, - "ReactionResponse": { - "properties": { - "custom": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "004" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/DeleteUsersResponse" } + } }, - "emoji_code": { - "type": "string", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "type": "string", - "x-stream-index": "002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "x-stream-index": "001" + "description": "Too many requests" + } + }, + "summary": "Delete Users", + "tags": ["product:common"] + } + }, + "/api/v2/users/reactivate": { + "post": { + "description": "Reactivate users in batches\n\nSends events:\n- user.reactivated\n", + "operationId": "ReactivateUsers", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReactivateUsersRequest" + } } }, - "required": [ - "user", - "type" - ], - "type": "object" + "required": true }, - "RecordSettingsRequest": { - "properties": { - "audio_only": { - "type": "boolean", - "x-stream-index": "001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReactivateUsersResponse" + } + } }, - "layout": { - "$ref": "#/components/schemas/LayoutSettingsRequest", - "title": "LayoutSettings", - "x-backend-only": true, - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "mode": { - "enum": [ - "available", - "disabled", - "auto-on" - ], - "type": "string", - "x-stream-index": "002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "quality": { - "enum": [ - "360p", - "480p", - "720p", - "1080p", - "1440p" - ], - "type": "string", - "x-stream-index": "003" + "description": "Too many requests" + } + }, + "summary": "Reactivate users", + "tags": ["product:common"] + } + }, + "/api/v2/users/restore": { + "post": { + "description": "Restore soft deleted users\n", + "operationId": "RestoreUsers", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/RestoreUsersRequest" } } }, - "required": [ - "mode" - ], - "type": "object" + "required": true }, - "RecordSettingsResponse": { - "properties": { - "audio_only": { - "type": "boolean", - "x-stream-index": "001" - }, - "layout": { - "$ref": "#/components/schemas/LayoutSettings", - "title": "Layout", - "x-backend-only": true, - "x-stream-index": "004" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Response" } + } }, - "mode": { - "type": "string", - "x-stream-index": "002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "quality": { - "type": "string", - "x-stream-index": "003" - } + "description": "Bad request" }, - "required": [ - "audio_only", - "mode", - "quality", - "layout" - ], - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "Response": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + "summary": "Restore users", + "tags": ["product:common"] + } + }, + "/api/v2/users/{user_id}/deactivate": { + "post": { + "description": "Deactivates user with possibility to activate it back\n\nSends events:\n- user.deactivated\n", + "operationId": "DeactivateUser", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { + "title": "User ID", "type": "string", + "writeOnly": true, "x-stream-index": "001" } - }, - "required": [ - "duration" - ], - "type": "object" - }, - "RingSettings": { - "properties": { - "auto_cancel_timeout_ms": { - "format": "int32", - "type": "integer", - "x-stream-index": "002" - }, - "incoming_call_timeout_ms": { - "format": "int32", - "type": "integer", - "x-stream-index": "001" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/DeactivateUserRequest" } } }, - "required": [ - "incoming_call_timeout_ms", - "auto_cancel_timeout_ms" - ], - "type": "object" + "required": true }, - "RingSettingsRequest": { - "properties": { - "auto_cancel_timeout_ms": { - "format": "int32", - "type": "integer", - "x-stream-index": "002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DeactivateUserResponse" + } + } }, - "incoming_call_timeout_ms": { - "format": "int32", - "type": "integer", - "x-stream-index": "001" - } + "description": "Successful response" }, - "type": "object" - }, - "ScreensharingSettings": { - "properties": { - "access_request_enabled": { - "type": "boolean", - "x-stream-index": "002" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "enabled": { - "type": "boolean", - "x-stream-index": "001" - } + "description": "Bad request" }, - "required": [ - "enabled", - "access_request_enabled" - ], - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "ScreensharingSettingsRequest": { - "properties": { - "access_request_enabled": { - "type": "boolean", - "x-stream-index": "002" + "summary": "Deactivate user", + "tags": ["product:common"] + } + }, + "/api/v2/users/{user_id}/export": { + "get": { + "description": "Exports the user's profile, reactions and messages. Raises an error if a user has more than 10k messages or reactions\n", + "operationId": "ExportUser", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { "type": "string", "x-stream-index": "001" } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ExportUserResponse" } + } }, - "enabled": { - "type": "boolean", - "x-stream-index": "001" - } + "description": "Successful response" }, - "type": "object" - }, - "SendEventRequest": { - "nullable": true, - "properties": { - "custom": { - "additionalProperties": {}, - "title": "Custom", - "type": "object", - "x-stream-index": "004" - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" }, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "SendEventResponse": { - "nullable": true, - "properties": { - "duration": { + "summary": "Export user", + "tags": ["product:common"] + } + }, + "/api/v2/users/{user_id}/reactivate": { + "post": { + "description": "Activates user who's been deactivated previously\n\nSends events:\n- user.reactivated\n", + "operationId": "ReactivateUser", + "parameters": [ + { + "in": "path", + "name": "user_id", + "required": true, + "schema": { + "title": "User ID", "type": "string", - "x-stream-index": "001.001" + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/ReactivateUserRequest" } } }, - "required": [ - "duration" - ], - "type": "object" + "required": true }, - "SortParamRequest": { - "nullable": true, - "properties": { - "direction": { - "description": "Direction of sorting, -1 for descending, 1 for ascending", - "format": "int32", - "title": "Direction", - "type": "integer", - "x-stream-index": "002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ReactivateUserResponse" + } + } }, - "field": { - "description": "Name of field to sort by", - "title": "Field", - "type": "string", - "x-stream-index": "001" - } + "description": "Successful response" }, - "type": "object" - }, - "StartHLSBroadcastingRequest": { - "nullable": true, - "type": "object" - }, - "StartHLSBroadcastingResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", - "type": "string", - "x-stream-index": "001.001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "playlist_url": { - "type": "string", - "x-stream-index": "002" - } + "description": "Bad request" }, - "required": [ - "duration", - "playlist_url" - ], - "type": "object" - }, - "StartRecordingRequest": { - "nullable": true, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "StartRecordingResponse": { - "nullable": true, - "properties": { - "duration": { - "type": "string", - "x-stream-index": "001.001" + "summary": "Reactivate user", + "tags": ["product:common"] + } + }, + "/api/v2/video/call/members": { + "post": { + "description": "Query call members with filter query\n\nRequired permissions:\n- ReadCall\n", + "operationId": "QueryCallMembers", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallMembersRequest" + } } }, - "required": [ - "duration" - ], - "type": "object" - }, - "StartTranscriptionRequest": { - "nullable": true, - "type": "object" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallMembersResponse" + } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "StartTranscriptionResponse": { - "nullable": true, - "properties": { - "duration": { - "type": "string", - "x-stream-index": "001.001" + "summary": "Query call members", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/stats": { + "post": { + "description": "\n\nRequired permissions:\n- ReadCallStats\n", + "operationId": "QueryCallStats", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryCallStatsRequest" } } }, - "required": [ - "duration" - ], - "type": "object" + "required": true }, - "StopHLSBroadcastingRequest": { - "nullable": true, - "type": "object" - }, - "StopHLSBroadcastingResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", - "type": "string", - "x-stream-index": "001.001" - } + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueryCallStatsResponse" + } + } + }, + "description": "Successful response" }, - "required": [ - "duration" - ], - "type": "object" - }, - "StopLiveRequest": { - "nullable": true, - "type": "object" - }, - "StopLiveResponse": { - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", - "type": "string", - "x-stream-index": "002.001" - } + "description": "Bad request" }, - "required": [ - "call", - "duration" - ], - "type": "object" - }, - "StopRecordingRequest": { - "nullable": true, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "StopRecordingResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + "summary": "Query Call Stats", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}": { + "get": { + "description": "\n\nRequired permissions:\n- ReadCall\n", + "operationId": "GetCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", + "writeOnly": true, "x-stream-index": "001.001" } }, - "required": [ - "duration" - ], - "type": "object" - }, - "StopTranscriptionRequest": { - "nullable": true, - "type": "object" - }, - "StopTranscriptionResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "001.002" } }, - "required": [ - "duration" - ], - "type": "object" - }, - "TargetResolution": { - "properties": { - "bitrate": { + { + "in": "query", + "name": "members_limit", + "schema": { "format": "int32", - "maximum": 6000000, - "type": "integer", - "x-stream-index": "003" - }, - "height": { - "format": "int32", - "maximum": 2560, - "minimum": 240, - "type": "integer", - "x-stream-index": "002" - }, - "width": { - "format": "int32", - "maximum": 2560, - "minimum": 240, + "maximum": 100, + "minimum": 0, "type": "integer", - "x-stream-index": "001" + "writeOnly": true, + "x-stream-index": "004" } }, - "required": [ - "width", - "height", - "bitrate" - ], - "type": "object" - }, - "TargetResolutionRequest": { - "properties": { - "bitrate": { - "format": "int32", - "maximum": 6000000, - "type": "integer", - "x-stream-index": "003" + { + "in": "query", + "name": "ring", + "schema": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "005" + } + }, + { + "in": "query", + "name": "notify", + "schema": { + "type": "boolean", + "writeOnly": true, + "x-stream-index": "006" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetCallResponse" } + } }, - "height": { - "format": "int32", - "maximum": 2560, - "minimum": 240, - "type": "integer", - "x-stream-index": "002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "width": { - "format": "int32", - "maximum": 2560, - "minimum": 240, - "type": "integer", - "x-stream-index": "001" - } + "description": "Bad request" }, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "ThumbnailResponse": { - "properties": { - "image_url": { + "summary": "Get Call", + "tags": ["product:video"] + }, + "patch": { + "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "UpdateCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", - "x-stream-index": "001" + "writeOnly": true, + "x-stream-index": "002.001" } }, - "required": [ - "image_url" - ], - "type": "object" - }, - "ThumbnailsSettings": { - "properties": { - "enabled": { - "type": "boolean", - "x-stream-index": "001" + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" } - }, - "required": [ - "enabled" - ], - "type": "object" - }, - "ThumbnailsSettingsRequest": { - "properties": { - "enabled": { - "type": "boolean", - "x-stream-index": "001" + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateCallRequest" } } }, - "type": "object" + "required": true }, - "TranscriptionSettings": { - "properties": { - "closed_caption_mode": { - "type": "string", - "x-stream-index": "002" + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateCallResponse" } + } }, - "mode": { - "enum": [ - "available", - "disabled", - "auto-on" - ], - "type": "string", - "x-stream-index": "001" - } + "description": "Call" }, - "required": [ - "mode", - "closed_caption_mode" - ], - "type": "object" - }, - "TranscriptionSettingsRequest": { - "properties": { - "closed_caption_mode": { - "type": "string", - "x-stream-index": "002" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "mode": { - "enum": [ - "available", - "disabled", - "auto-on" - ], - "type": "string", - "x-stream-index": "001" - } + "description": "Bad request" }, - "type": "object" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "UnblockUserRequest": { - "nullable": true, - "properties": { - "user_id": { - "description": "the user to unblock", - "title": "UserID", + "summary": "Update Call", + "tags": ["product:video"] + }, + "post": { + "description": "Gets or creates a new call\n\nSends events:\n- call.created\n- call.notification\n- call.ring\n\nRequired permissions:\n- CreateCall\n- ReadCall\n- UpdateCallSettings\n", + "operationId": "GetOrCreateCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "002.001" } }, - "required": [ - "user_id" - ], - "type": "object" - }, - "UnblockUserResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrCreateCallRequest" + } } }, - "required": [ - "duration" - ], - "type": "object" + "required": true }, - "UnblockedUserEvent": { - "description": "This event is sent when a user is unblocked on a call, \nthis can be useful to notify the user that they can now join the call again", - "nullable": true, - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" - }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetOrCreateCallResponse" + } + } }, - "type": { - "default": "call.unblocked_user", - "description": "The type of event: \"call.unblocked_user\" in this case", - "title": "Event Type", - "type": "string", - "x-stream-index": "001.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user that was unblocked", - "title": "User", - "x-stream-index": "003" - } + "description": "Bad request" }, - "required": [ - "type", - "created_at", - "call_cid", - "user" - ], - "title": "UnblockedUserEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "UnpinRequest": { - "nullable": true, - "properties": { - "session_id": { - "type": "string", - "x-stream-index": "003" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user_id": { + "description": "Too many requests" + } + }, + "summary": "Get or create a call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/block": { + "post": { + "description": "Block a user, preventing them from joining the call until they are unblocked.\n\nSends events:\n- call.blocked_user\n\nRequired permissions:\n- BlockUser\n", + "operationId": "BlockUser", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", - "x-stream-index": "002" + "writeOnly": true, + "x-stream-index": "002.001" } }, - "required": [ - "user_id", - "session_id" - ], - "type": "object" - }, - "UnpinResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/BlockUserRequest" } } }, - "required": [ - "duration" - ], - "type": "object" + "required": true }, - "UpdateCallMembersRequest": { - "nullable": true, - "properties": { - "remove_members": { - "description": "List of userID to remove", - "items": { - "type": "string" - }, - "maximum": 100, - "title": "Remove Members", - "type": "array", - "x-stream-index": "003" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/BlockUserResponse" } + } }, - "update_members": { - "description": "List of members to update or insert", - "items": { - "$ref": "#/components/schemas/MemberRequest" - }, - "maximum": 100, - "title": "Update Members", - "type": "array", - "x-stream-index": "004" - } + "description": "Successful response" }, - "type": "object" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "UpdateCallMembersResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + "summary": "Block user on a call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/event": { + "post": { + "description": "Sends custom event to the call\n\nSends events:\n- custom\n\nRequired permissions:\n- SendEvent\n", + "operationId": "SendCallEvent", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "title": "Type", "type": "string", - "x-stream-index": "001.001" - }, - "members": { - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "type": "array", + "writeOnly": true, "x-stream-index": "002" } }, - "required": [ - "duration", - "members" - ], - "type": "object" - }, - "UpdateCallRequest": { - "nullable": true, - "properties": { - "custom": { - "additionalProperties": {}, - "description": "Custom data for this object", - "title": "Custom data", - "type": "object", - "x-stream-index": "003" - }, - "settings_override": { - "$ref": "#/components/schemas/CallSettingsRequest", - "description": "the settings to change for this call", - "title": "Settings Override", - "x-stream-index": "004" - }, - "starts_at": { - "description": "the time the call is scheduled to start", - "format": "date-time", - "title": "Starts At", + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "title": "ID", "type": "string", - "x-stream-index": "005" + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendEventRequest" } } }, - "type": "object" + "required": true }, - "UpdateCallResponse": { - "description": "Represents a call", - "nullable": true, - "properties": { - "call": { - "$ref": "#/components/schemas/CallResponse", - "x-stream-index": "001.001" - }, - "duration": { - "type": "string", - "x-stream-index": "002.001" - }, - "members": { - "items": { - "$ref": "#/components/schemas/MemberResponse" - }, - "type": "array", - "x-stream-index": "001.002" - }, - "membership": { - "$ref": "#/components/schemas/MemberResponse", - "x-stream-index": "001.003" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/SendEventResponse" } + } }, - "own_capabilities": { - "items": { - "$ref": "#/components/schemas/OwnCapability" - }, - "type": "array", - "x-stream-index": "001.004" - } - }, - "required": [ - "call", - "members", - "own_capabilities", - "duration" - ], - "title": "Call", - "type": "object" - }, - "UpdateCallTypeRequest": { - "nullable": true, - "properties": { - "grants": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object", - "x-stream-index": "002.001" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "notification_settings": { - "$ref": "#/components/schemas/NotificationSettingsRequest", - "x-stream-index": "002.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "settings": { - "$ref": "#/components/schemas/CallSettingsRequest", - "x-stream-index": "002.003" + "description": "Too many requests" + } + }, + "summary": "Send custom event", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/feedback/{session}": { + "post": { + "description": "\n\nRequired permissions:\n- JoinCall\n", + "operationId": "CollectUserFeedback", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" } }, - "type": "object" - }, - "UpdateCallTypeResponse": { - "nullable": true, - "properties": { - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.005" - }, - "duration": { + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, "type": "string", - "x-stream-index": "002.001" - }, - "grants": { - "additionalProperties": { - "items": { - "type": "string" - }, - "type": "array" - }, - "type": "object", + "writeOnly": true, "x-stream-index": "001.002" - }, - "name": { + } + }, + { + "in": "path", + "name": "session", + "required": true, + "schema": { + "maxLength": 64, "type": "string", - "x-stream-index": "001.001" - }, - "notification_settings": { - "$ref": "#/components/schemas/NotificationSettings", - "x-stream-index": "001.004" - }, - "settings": { - "$ref": "#/components/schemas/CallSettingsResponse", - "x-stream-index": "001.003" + "writeOnly": true, + "x-stream-index": "003" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectUserFeedbackRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CollectUserFeedbackResponse" + } + } }, - "updated_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.006" - } - }, - "required": [ - "name", - "grants", - "settings", - "notification_settings", - "created_at", - "updated_at", - "duration" - ], - "type": "object" - }, - "UpdateUserPermissionsRequest": { - "nullable": true, - "properties": { - "grant_permissions": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "004" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "revoke_permissions": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "005" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "user_id": { + "description": "Too many requests" + } + }, + "summary": "Collect user feedback", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/go_live": { + "post": { + "description": "\n\nSends events:\n- call.live_started\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "GoLive", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "002.001" } }, - "required": [ - "user_id" - ], - "type": "object" - }, - "UpdateUserPermissionsResponse": { - "nullable": true, - "properties": { - "duration": { - "description": "Duration of the request in human-readable format", - "title": "Duration", + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GoLiveRequest" } } }, - "required": [ - "duration" - ], - "type": "object" + "required": true }, - "UpdatedCallPermissionsEvent": { - "description": "This event is sent to notify about permission changes for a user, clients receiving this event should update their UI accordingly", - "nullable": true, - "properties": { - "call_cid": { - "type": "string", - "x-stream-index": "002.001" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GoLiveResponse" } + } }, - "created_at": { - "format": "date-time", - "type": "string", - "x-stream-index": "001.002" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "own_capabilities": { - "description": "The capabilities of the current user", - "items": { - "$ref": "#/components/schemas/OwnCapability" - }, - "title": "Own capabilities", - "type": "array", - "x-stream-index": "004" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "type": { - "default": "call.permissions_updated", - "description": "The type of event: \"call.permissions_updated\" in this case", - "title": "Event Type", + "description": "Too many requests" + } + }, + "summary": "Set call as live", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/mark_ended": { + "post": { + "description": "\n\nSends events:\n- call.ended\n\nRequired permissions:\n- EndCall\n", + "operationId": "EndCall", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", - "x-stream-index": "001.001" - }, - "user": { - "$ref": "#/components/schemas/UserResponse", - "description": "The user who received the new permissions", - "title": "User", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "002.001" } }, - "required": [ - "type", - "created_at", - "call_cid", - "user", - "own_capabilities" - ], - "title": "UpdatedCallPermissionsEvent", - "type": "object", - "x-stream-event-call-type": true, - "x-stream-is-event": true, - "x-stream-ws-base-event-name": "VideoEvent" - }, - "UserRequest": { - "properties": { - "custom": { - "additionalProperties": {}, - "title": "Custom", - "type": "object", - "x-stream-index": "004" - }, - "id": { - "description": "User ID", + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, "title": "ID", "type": "string", - "x-stream-index": "001" + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/EndCallResponse" } + } }, - "image": { - "title": "Image", - "type": "string", - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "description": "Optional name of user", - "title": "Name", - "type": "string", - "x-stream-index": "002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "role": { - "title": "Role", + "description": "Too many requests" + } + }, + "summary": "End call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/members": { + "post": { + "description": "\n\nSends events:\n- call.member_added\n- call.member_removed\n- call.member_updated\n\nRequired permissions:\n- RemoveCallMember\n- UpdateCallMember\n- UpdateCallMemberRole\n", + "operationId": "UpdateCallMembers", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", - "x-backend-only": true, - "x-stream-index": "005" - }, - "teams": { - "items": { - "type": "string" - }, - "title": "Teams", - "type": "array", - "x-backend-only": true, - "x-stream-index": "006" + "writeOnly": true, + "x-stream-index": "002.001" } }, - "required": [ - "id" - ], - "type": "object" - }, - "UserResponse": { - "properties": { - "created_at": { - "description": "Date/time of creation", - "format": "date-time", - "title": "Created at", - "type": "string", - "x-stream-index": "002" - }, - "custom": { - "additionalProperties": {}, - "type": "object", - "x-stream-index": "001.004" - }, - "deleted_at": { - "description": "Date/time of deletion", - "format": "date-time", - "title": "Deleted at", - "type": "string", - "x-stream-index": "004" - }, - "id": { + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", "type": "string", - "x-stream-index": "001.001" + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallMembersRequest" + } + } + }, + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateCallMembersResponse" + } + } }, - "image": { - "type": "string", - "x-stream-index": "001.003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "name": { - "type": "string", - "x-stream-index": "001.002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - "role": { + "description": "Too many requests" + } + }, + "summary": "Update Call Member", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/mute_users": { + "post": { + "description": "Mutes users in a call\n\nRequired permissions:\n- MuteUsers\n", + "operationId": "MuteUsers", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", "type": "string", - "x-stream-index": "001.005" - }, - "teams": { - "items": { - "type": "string" - }, - "type": "array", - "x-stream-index": "001.006" - }, - "updated_at": { - "description": "Date/time of the last update", - "format": "date-time", - "title": "Updated at", + "writeOnly": true, + "x-stream-index": "002.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", "type": "string", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "002.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUsersRequest" } } }, - "required": [ - "id", - "custom", - "role", - "teams", - "created_at", - "updated_at" - ], - "type": "object" - }, - "VideoEvent": { - "description": "The discriminator object for all websocket events, you should use this to map event payloads to their own type", - "discriminator": { - "mapping": { - "call.accepted": "#/components/schemas/CallAcceptedEvent", - "call.blocked_user": "#/components/schemas/BlockedUserEvent", - "call.created": "#/components/schemas/CallCreatedEvent", - "call.ended": "#/components/schemas/CallEndedEvent", - "call.hls_broadcasting_failed": "#/components/schemas/CallHLSBroadcastingFailedEvent", - "call.hls_broadcasting_started": "#/components/schemas/CallHLSBroadcastingStartedEvent", - "call.hls_broadcasting_stopped": "#/components/schemas/CallHLSBroadcastingStoppedEvent", - "call.live_started": "#/components/schemas/CallLiveStartedEvent", - "call.member_added": "#/components/schemas/CallMemberAddedEvent", - "call.member_removed": "#/components/schemas/CallMemberRemovedEvent", - "call.member_updated": "#/components/schemas/CallMemberUpdatedEvent", - "call.member_updated_permission": "#/components/schemas/CallMemberUpdatedPermissionEvent", - "call.notification": "#/components/schemas/CallNotificationEvent", - "call.permission_request": "#/components/schemas/PermissionRequestEvent", - "call.permissions_updated": "#/components/schemas/UpdatedCallPermissionsEvent", - "call.reaction_new": "#/components/schemas/CallReactionEvent", - "call.recording_failed": "#/components/schemas/CallRecordingFailedEvent", - "call.recording_ready": "#/components/schemas/CallRecordingReadyEvent", - "call.recording_started": "#/components/schemas/CallRecordingStartedEvent", - "call.recording_stopped": "#/components/schemas/CallRecordingStoppedEvent", - "call.rejected": "#/components/schemas/CallRejectedEvent", - "call.ring": "#/components/schemas/CallRingEvent", - "call.session_ended": "#/components/schemas/CallSessionEndedEvent", - "call.session_participant_joined": "#/components/schemas/CallSessionParticipantJoinedEvent", - "call.session_participant_left": "#/components/schemas/CallSessionParticipantLeftEvent", - "call.session_started": "#/components/schemas/CallSessionStartedEvent", - "call.unblocked_user": "#/components/schemas/UnblockedUserEvent", - "call.updated": "#/components/schemas/CallUpdatedEvent", - "call.user_muted": "#/components/schemas/CallUserMuted", - "connection.error": "#/components/schemas/ConnectionErrorEvent", - "connection.ok": "#/components/schemas/ConnectedEvent", - "custom": "#/components/schemas/CustomVideoEvent", - "health.check": "#/components/schemas/HealthCheckEvent" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/MuteUsersResponse" } + } }, - "propertyName": "type" + "description": "Successful response" }, - "oneOf": [ - { - "$ref": "#/components/schemas/BlockedUserEvent" - }, - { - "$ref": "#/components/schemas/CallAcceptedEvent" - }, - { - "$ref": "#/components/schemas/CallCreatedEvent" - }, - { - "$ref": "#/components/schemas/CallEndedEvent" - }, - { - "$ref": "#/components/schemas/CallHLSBroadcastingFailedEvent" - }, - { - "$ref": "#/components/schemas/CallHLSBroadcastingStartedEvent" - }, - { - "$ref": "#/components/schemas/CallHLSBroadcastingStoppedEvent" - }, - { - "$ref": "#/components/schemas/CallLiveStartedEvent" - }, - { - "$ref": "#/components/schemas/CallMemberAddedEvent" - }, - { - "$ref": "#/components/schemas/CallMemberRemovedEvent" - }, - { - "$ref": "#/components/schemas/CallMemberUpdatedEvent" - }, - { - "$ref": "#/components/schemas/CallMemberUpdatedPermissionEvent" - }, - { - "$ref": "#/components/schemas/CallNotificationEvent" - }, - { - "$ref": "#/components/schemas/CallReactionEvent" - }, - { - "$ref": "#/components/schemas/CallRecordingFailedEvent" - }, - { - "$ref": "#/components/schemas/CallRecordingReadyEvent" - }, - { - "$ref": "#/components/schemas/CallRecordingStartedEvent" - }, - { - "$ref": "#/components/schemas/CallRecordingStoppedEvent" - }, - { - "$ref": "#/components/schemas/CallRejectedEvent" - }, - { - "$ref": "#/components/schemas/CallRingEvent" - }, - { - "$ref": "#/components/schemas/CallSessionEndedEvent" - }, - { - "$ref": "#/components/schemas/CallSessionParticipantJoinedEvent" - }, - { - "$ref": "#/components/schemas/CallSessionParticipantLeftEvent" - }, - { - "$ref": "#/components/schemas/CallSessionStartedEvent" - }, - { - "$ref": "#/components/schemas/CallUpdatedEvent" - }, - { - "$ref": "#/components/schemas/CallUserMuted" - }, - { - "$ref": "#/components/schemas/ConnectedEvent" - }, - { - "$ref": "#/components/schemas/ConnectionErrorEvent" - }, - { - "$ref": "#/components/schemas/CustomVideoEvent" - }, - { - "$ref": "#/components/schemas/HealthCheckEvent" - }, - { - "$ref": "#/components/schemas/PermissionRequestEvent" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - { - "$ref": "#/components/schemas/UnblockedUserEvent" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } }, - { - "$ref": "#/components/schemas/UpdatedCallPermissionsEvent" - } - ] + "description": "Too many requests" + } }, - "VideoSettings": { - "properties": { - "access_request_enabled": { - "type": "boolean", - "x-stream-index": "002" - }, - "camera_default_on": { - "type": "boolean", - "x-stream-index": "004" - }, - "camera_facing": { - "enum": [ - "front", - "back", - "external" - ], + "summary": "Mute users", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/pin": { + "post": { + "description": "Pins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", + "operationId": "VideoPin", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, "type": "string", - "x-stream-index": "005" - }, - "enabled": { - "type": "boolean", - "x-stream-index": "001" - }, - "target_resolution": { - "$ref": "#/components/schemas/TargetResolution", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "001.001" } }, - "required": [ - "enabled", - "access_request_enabled", - "target_resolution", - "camera_default_on", - "camera_facing" - ], - "type": "object" - }, - "VideoSettingsRequest": { - "properties": { - "access_request_enabled": { - "type": "boolean", - "x-stream-index": "002" - }, - "camera_default_on": { - "type": "boolean", - "x-stream-index": "004" - }, - "camera_facing": { - "enum": [ - "front", - "back", - "external" - ], + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, "type": "string", - "x-stream-index": "005" - }, - "enabled": { - "type": "boolean", - "x-stream-index": "001" - }, - "target_resolution": { - "$ref": "#/components/schemas/TargetResolutionRequest", - "x-stream-index": "003" + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PinRequest" } } }, - "type": "object" + "required": true }, - "WSAuthMessageRequest": { - "nullable": true, - "properties": { - "token": { - "title": "Token", - "type": "string", - "x-stream-index": "002" + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/PinResponse" } + } }, - "user_details": { - "$ref": "#/components/schemas/ConnectUserDetailsRequest", - "x-stream-index": "001" - } + "description": "Successful response" }, - "required": [ - "user_details", - "token" - ], - "type": "object" - }, - "WSCallEvent": { - "description": "This is just a placeholder for all client events", - "properties": { - "call_cid": { - "type": "string" - } - }, - "type": "object", - "x-stream-is-ws-call-event": true - }, - "WSClientEvent": { - "description": "This is just a placeholder for all client events", - "properties": { - "connection_id": { - "type": "string" - } - }, - "type": "object", - "x-stream-is-ws-client-event": true - } - }, - "securitySchemes": { - "JWT": { - "description": "JWT should be always provided when stream-auth-type=jwt.\n\nUsing JWT auth request could be authenticated as user or as server-side.\n\nWhen using user authentication permission checking is going to be applied to requests based on the user that is\nperforming a request.\n\nThe `authorization` header should be a JWT string signed using the secret attached to the API key used to perform\nrequests.\n\n**WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not\nshared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side.\nIf you wish, you can configure your application to ignore authentication (see `disable_auth_check`)\nThe JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well.\n", - "in": "header", - "name": "Authorization", - "type": "apiKey" - }, - "api_key": { - "description": "Application API key should be always set in order to authenticate the request.", - "in": "query", - "name": "api_key", - "type": "apiKey" - }, - "stream-auth-type": { - "description": "Stream-Auth-Type should be always set in order to authenticate the request. Possible\nvalues: `jwt` or `anonymous`.\n\n`jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization\nheader.\n\n`anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available\nto anonymous users.", - "in": "header", - "name": "Stream-Auth-Type", - "type": "apiKey" - } - } - }, - "externalDocs": { - "description": "Stream Video Documentation", - "url": "https://getstream.io/video/docs/" - }, - "info": { - "title": "Stream Video API", - "version": "v93.2.1" - }, - "openapi": "3.0.3", - "paths": { - "/call/{type}/{id}": { - "get": { - "description": "\n\nRequired permissions:\n- ReadCall\n", - "operationId": "GetCall", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "query", - "name": "connection_id", - "schema": { - "type": "string", - "writeOnly": true, - "x-stream-index": "003" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "query", - "name": "members_limit", - "schema": { - "format": "int32", - "maximum": 100, - "minimum": 0, - "type": "integer", - "writeOnly": true, - "x-stream-index": "004" + "description": "Too many requests" + } + }, + "summary": "Pin", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/recordings": { + "get": { + "description": "Lists recordings\n\nRequired permissions:\n- ListRecordings\n", + "operationId": "ListRecordings", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListRecordingsResponse" + } } }, - { - "in": "query", - "name": "ring", - "schema": { - "type": "boolean", - "writeOnly": true, - "x-stream-index": "005" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "query", - "name": "notify", - "schema": { - "type": "boolean", - "writeOnly": true, - "x-stream-index": "006" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetCallResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } - } + "description": "Bad request" }, - "summary": "Get Call", - "x-stream-permissions": { - "ReadCall": "To retrieve a call" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" } }, - "patch": { - "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", - "operationId": "UpdateCall", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" - } + "summary": "List recordings", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/start_broadcasting": { + "post": { + "description": "Starts HLS broadcasting\n\nRequired permissions:\n- StartBroadcasting\n", + "operationId": "StartHLSBroadcasting", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" } - ], - "requestBody": { + } + ], + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateCallRequest" + "$ref": "#/components/schemas/StartHLSBroadcastingResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCallResponse" - } - } - }, - "description": "Call" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Update Call", - "x-stream-events": { - "call.updated": "" + }, + "description": "Bad request" }, - "x-stream-events-v2": { - "call.updated": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallUpdatedEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } + }, + "description": "Too many requests" + } + }, + "summary": "Start HLS broadcasting", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/start_recording": { + "post": { + "description": "Starts recording\n\nSends events:\n- call.recording_started\n\nRequired permissions:\n- StartRecording\n", + "operationId": "StartRecording", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" } }, - "x-stream-permissions": { - "UpdateCall": "To update a call" + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } } - }, - "post": { - "description": "Gets or creates a new call\n\nSends events:\n- call.created\n- call.notification\n- call.ring\n\nRequired permissions:\n- CreateCall\n- ReadCall\n- UpdateCallSettings\n", - "operationId": "GetOrCreateCall", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" - } - }, - { - "in": "query", - "name": "connection_id", - "schema": { - "type": "string", - "writeOnly": true, - "x-stream-index": "007" - } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/StartRecordingRequest" } } - ], - "requestBody": { + }, + "required": true + }, + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GetOrCreateCallRequest" + "$ref": "#/components/schemas/StartRecordingResponse" } } }, - "required": true - }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetOrCreateCallResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } - } - }, - "summary": "Get or create a call", - "x-stream-events": { - "call.created": "", - "call.notification": "", - "call.ring": "" + "description": "Successful response" }, - "x-stream-events-v2": { - "call.created": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallCreatedEvent" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - "call.notification": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallNotificationEvent" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - "call.ring": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallRingEvent" - } + "description": "Too many requests" + } + }, + "summary": "Start recording", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/start_transcription": { + "post": { + "description": "Starts transcription\n\nRequired permissions:\n- StartTranscription\n", + "operationId": "StartTranscription", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" } }, - "x-stream-permissions": { - "CreateCall": "To create a call", - "ReadCall": "To retrieve a call", - "UpdateCallSettings": "To create a call with different settings" + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } } - } - }, - "/call/{type}/{id}/block": { - "post": { - "description": "Block a user, preventing them from joining the call until they are unblocked.\n\nSends events:\n- call.blocked_user\n\nRequired permissions:\n- BlockUser\n", - "operationId": "BlockUser", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, + ], + "requestBody": { + "content": { + "application/json": { "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" + "$ref": "#/components/schemas/StartTranscriptionRequest" } } - ], - "requestBody": { + }, + "required": true + }, + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BlockUserRequest" + "$ref": "#/components/schemas/StartTranscriptionResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BlockUserResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Block user on a call", - "x-stream-events": { - "call.blocked_user": "" + }, + "description": "Bad request" }, - "x-stream-events-v2": { - "call.blocked_user": { - "description": "", - "schema": { - "ref": "#/components/schemas/BlockedUserEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } + }, + "description": "Too many requests" + } + }, + "summary": "Start transcription", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stats/{session}": { + "get": { + "description": "\n\nRequired permissions:\n- ReadCallStats\n", + "operationId": "GetCallStats", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" } }, - "x-stream-permissions": { - "BlockUser": "To block a user from a call" + { + "in": "path", + "name": "session", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "003" + } } - } - }, - "/call/{type}/{id}/event": { - "post": { - "description": "Sends custom event to the call\n\nSends events:\n- custom\n\nRequired permissions:\n- SendEvent\n", - "operationId": "SendEvent", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002" + ], + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GetCallStatsResponse" + } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "003" + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } + }, + "description": "Too many requests" + } + }, + "summary": "Get Call Stats", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_broadcasting": { + "post": { + "description": "Stops HLS broadcasting\n\nRequired permissions:\n- StopBroadcasting\n", + "operationId": "StopHLSBroadcasting", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" } - ], - "requestBody": { + } + ], + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SendEventRequest" + "$ref": "#/components/schemas/StopHLSBroadcastingResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SendEventResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Send custom event", - "x-stream-docs-page-id": "event_object", - "x-stream-events": { - "custom": "" + }, + "description": "Bad request" }, - "x-stream-events-v2": { - "custom": { - "description": "", - "schema": { - "ref": "#/components/schemas/CustomVideoEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } + }, + "description": "Too many requests" + } + }, + "summary": "Stop HLS broadcasting", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_live": { + "post": { + "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", + "operationId": "StopLive", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "description": "The type of call", + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.001" } }, - "x-stream-permissions": { - "SendEvent": "To send custom events" + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "description": "Call ID", + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002.002" + } } - } - }, - "/call/{type}/{id}/go_live": { - "post": { - "description": "\n\nSends events:\n- call.live_started\n\nRequired permissions:\n- UpdateCall\n", - "operationId": "GoLive", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" + ], + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/StopLiveResponse" } + } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } + }, + "description": "Too many requests" + } + }, + "summary": "Set call as not live", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_recording": { + "post": { + "description": "Stops recording\n\nSends events:\n- call.recording_stopped\n\nRequired permissions:\n- StopRecording\n", + "operationId": "StopRecording", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" } - ], - "requestBody": { + } + ], + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/GoLiveRequest" + "$ref": "#/components/schemas/StopRecordingResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GoLiveResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Set call as live", - "x-stream-events": { - "call.live_started": "" + }, + "description": "Bad request" }, - "x-stream-events-v2": { - "call.live_started": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallLiveStartedEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "x-stream-permissions": { - "UpdateCall": "To update a call" + }, + "description": "Too many requests" } - } - }, - "/call/{type}/{id}/mark_ended": { - "post": { - "description": "\n\nSends events:\n- call.ended\n\nRequired permissions:\n- EndCall\n", - "operationId": "EndCall", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/EndCallResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } + }, + "summary": "Stop recording", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/stop_transcription": { + "post": { + "description": "Stops transcription\n\nSends events:\n- call.transcription_stopped\n\nRequired permissions:\n- StopTranscription\n", + "operationId": "StopTranscription", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" } }, - "summary": "End call", - "x-stream-events": { - "call.ended": "" - }, - "x-stream-events-v2": { - "call.ended": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallEndedEvent" - } + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" } - }, - "x-stream-permissions": { - "EndCall": "To end a call" } - } - }, - "/call/{type}/{id}/members": { - "post": { - "description": "\n\nSends events:\n- call.member_added\n- call.member_removed\n- call.member_updated\n\nRequired permissions:\n- RemoveCallMember\n- UpdateCallMember\n- UpdateCallMemberRole\n", - "operationId": "UpdateCallMembers", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" - } - } - ], - "requestBody": { + ], + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateCallMembersRequest" + "$ref": "#/components/schemas/StopTranscriptionResponse" } } }, - "required": true - }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCallMembersResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } - } - }, - "summary": "Update Call Member", - "x-stream-events": { - "call.member_added": "", - "call.member_removed": "", - "call.member_updated": "" + "description": "Successful response" }, - "x-stream-events-v2": { - "call.member_added": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallMemberAddedEvent" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - "call.member_removed": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallMemberRemovedEvent" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - "call.member_updated": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallMemberUpdatedEvent" - } + "description": "Too many requests" + } + }, + "summary": "Stop transcription", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/transcriptions": { + "get": { + "description": "Lists transcriptions\n\nRequired permissions:\n- ListTranscriptions\n", + "operationId": "ListTranscriptions", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" } }, - "x-stream-permissions": { - "RemoveCallMember": "To remove participant", - "UpdateCallMember": "To upsert participant", - "UpdateCallMemberRole": "To update members role" - } - } - }, - "/call/{type}/{id}/mute_users": { - "post": { - "description": "Mutes users in a call\n\nRequired permissions:\n- MuteUsers\n", - "operationId": "MuteUsers", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" - } + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" } - ], - "requestBody": { + } + ], + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MuteUsersRequest" + "$ref": "#/components/schemas/ListTranscriptionsResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MuteUsersResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Mute users", - "x-stream-permissions": { - "MuteUsers": "To mute users on a call" - } - } - }, - "/call/{type}/{id}/pin": { - "post": { - "description": "Pins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", - "operationId": "VideoPin", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } + "description": "Too many requests" + } + }, + "summary": "List transcriptions", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/unblock": { + "post": { + "description": "Removes the block for a user on a call. The user will be able to join the call again.\n\nSends events:\n- call.unblocked_user\n\nRequired permissions:\n- BlockUser\n", + "operationId": "UnblockUser", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "title": "Type", + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + }, + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "title": "ID", + "type": "string", + "writeOnly": true, + "x-stream-index": "002" } - ], - "requestBody": { + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnblockUserRequest" } + } + }, + "required": true + }, + "responses": { + "201": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/PinRequest" - } + "schema": { "$ref": "#/components/schemas/UnblockUserResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PinResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Pin", - "x-stream-permissions": { - "PinCallTrack": "" - } - } - }, - "/call/{type}/{id}/recordings": { - "get": { - "description": "Lists recordings\n\nRequired permissions:\n- ListRecordings\n", - "operationId": "ListRecordings", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListRecordingsResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } - } - }, - "summary": "List recordings", - "x-stream-permissions": { - "ListRecordings": "To list recordings" + "description": "Too many requests" } - } - }, - "/call/{type}/{id}/start_broadcasting": { - "post": { - "description": "Starts HLS broadcasting\n\nRequired permissions:\n- StartBroadcasting\n", - "operationId": "StartHLSBroadcasting", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StartHLSBroadcastingResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } + }, + "summary": "Unblocks user on a call", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/unpin": { + "post": { + "description": "Unpins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", + "operationId": "VideoUnpin", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.001" } }, - "summary": "Start HLS broadcasting", - "x-stream-permissions": { - "StartBroadcasting": "To start HLS broadcasting" + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "001.002" + } } - } - }, - "/call/{type}/{id}/start_recording": { - "post": { - "description": "Starts recording\n\nSends events:\n- call.recording_started\n\nRequired permissions:\n- StopRecording\n", - "operationId": "StartRecording", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StartRecordingResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnpinRequest" } } }, - "summary": "Start recording", - "x-stream-events": { - "call.recording_started": "" - }, - "x-stream-events-v2": { - "call.recording_started": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallRecordingStartedEvent" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UnpinResponse" } } - } + }, + "description": "Successful response" }, - "x-stream-permissions": { - "StopRecording": "To start recording" - } - } - }, - "/call/{type}/{id}/start_transcription": { - "post": { - "description": "Starts transcription\n\nRequired permissions:\n- StartTranscription\n", - "operationId": "StartTranscription", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StartTranscriptionResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Start transcription", - "x-stream-permissions": { - "StartTranscription": "To start transcribing" - } - } - }, - "/call/{type}/{id}/stop_broadcasting": { - "post": { - "description": "Stops HLS broadcasting\n\nRequired permissions:\n- StopBroadcasting\n", - "operationId": "StopHLSBroadcasting", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StopHLSBroadcastingResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } + "description": "Too many requests" + } + }, + "summary": "Unpin", + "tags": ["product:video"] + } + }, + "/api/v2/video/call/{type}/{id}/user_permissions": { + "post": { + "description": "Updates user permissions\n\nSends events:\n- call.permissions_updated\n\nRequired permissions:\n- UpdateCallPermissions\n", + "operationId": "UpdateUserPermissions", + "parameters": [ + { + "in": "path", + "name": "type", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "005.001" } }, - "summary": "Stop HLS broadcasting", - "x-stream-permissions": { - "StopBroadcasting": "Allows the user to stop HLS broadcasting" + { + "in": "path", + "name": "id", + "required": true, + "schema": { + "maxLength": 64, + "type": "string", + "writeOnly": true, + "x-stream-index": "005.002" + } } - } - }, - "/call/{type}/{id}/stop_live": { - "post": { - "description": "\n\nSends events:\n- call.updated\n\nRequired permissions:\n- UpdateCall\n", - "operationId": "StopLive", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "description": "The type of call", - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, + ], + "requestBody": { + "content": { + "application/json": { "schema": { - "description": "Call ID", - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StopLiveResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "$ref": "#/components/schemas/UpdateUserPermissionsRequest" } } }, - "summary": "Set call as not live", - "x-stream-events": { - "call.updated": "" - }, - "x-stream-events-v2": { - "call.updated": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallUpdatedEvent" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateUserPermissionsResponse" + } } - } + }, + "description": "Successful response" }, - "x-stream-permissions": { - "UpdateCall": "To update a call" - } - } - }, - "/call/{type}/{id}/stop_recording": { - "post": { - "description": "Stops recording\n\nSends events:\n- call.recording_stopped\n\nRequired permissions:\n- StopRecording\n", - "operationId": "StopRecording", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StopRecordingResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } - } - }, - "summary": "Stop recording", - "x-stream-events": { - "call.recording_stopped": "" + "description": "Bad request" }, - "x-stream-events-v2": { - "call.recording_stopped": { - "description": "", - "schema": { - "ref": "#/components/schemas/CallRecordingStoppedEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } + }, + "description": "Too many requests" + } + }, + "summary": "Update user permissions", + "tags": ["product:video"] + } + }, + "/api/v2/video/calls": { + "post": { + "description": "Query calls with filter query\n\nRequired permissions:\n- ReadCall\n", + "operationId": "QueryCalls", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryCallsRequest" } } }, - "x-stream-permissions": { - "StopRecording": "To stop recording" - } - } - }, - "/call/{type}/{id}/stop_transcription": { - "post": { - "description": "Stops transcription\n\nRequired permissions:\n- StopTranscription\n", - "operationId": "StopTranscription", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" + "required": true + }, + "responses": { + "201": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/QueryCallsResponse" } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } - } - ], - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StopTranscriptionResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } - } + "description": "Successful response" }, - "summary": "Stop transcription", - "x-stream-permissions": { - "StopTranscription": "To stop transcribing" - } - } - }, - "/call/{type}/{id}/unblock": { - "post": { - "description": "Removes the block for a user on a call. The user will be able to join the call again.\n\nSends events:\n- call.unblocked_user\n\nRequired permissions:\n- BlockUser\n", - "operationId": "UnblockUser", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "title": "Type", - "type": "string", - "writeOnly": true, - "x-stream-index": "001" + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002" + "description": "Bad request" + }, + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - ], - "requestBody": { + }, + "description": "Too many requests" + } + }, + "summary": "Query call", + "tags": ["product:video"] + } + }, + "/api/v2/video/calltypes": { + "get": { + "description": "\n", + "operationId": "ListCallTypes", + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnblockUserRequest" + "$ref": "#/components/schemas/ListCallTypeResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnblockUserResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Unblocks user on a call", - "x-stream-events": { - "call.unblocked_user": "" + }, + "description": "Bad request" }, - "x-stream-events-v2": { - "call.unblocked_user": { - "description": "", - "schema": { - "ref": "#/components/schemas/UnblockedUserEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "x-stream-permissions": { - "BlockUser": "To block / unblock a user from a call" + }, + "description": "Too many requests" } - } + }, + "summary": "List Call Type", + "tags": ["product:video"] }, - "/call/{type}/{id}/unpin": { - "post": { - "description": "Unpins a track for all users in the call.\n\nRequired permissions:\n- PinCallTrack\n", - "operationId": "VideoUnpin", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" - } - }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "001.002" - } + "post": { + "description": "\n", + "operationId": "CreateCallType", + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/CreateCallTypeRequest" } } - ], - "requestBody": { + }, + "required": true + }, + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UnpinRequest" + "$ref": "#/components/schemas/CreateCallTypeResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UnpinResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Unpin", - "x-stream-permissions": { - "PinCallTrack": "" - } - } - }, - "/call/{type}/{id}/user_permissions": { - "post": { - "description": "Updates user permissions\n\nSends events:\n- call.permissions_updated\n\nRequired permissions:\n- UpdateCallPermissions\n", - "operationId": "UpdateUserPermissions", - "parameters": [ - { - "in": "path", - "name": "type", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "path", - "name": "id", - "required": true, - "schema": { - "maxLength": 64, - "type": "string", - "writeOnly": true, - "x-stream-index": "002.002" - } + "description": "Too many requests" + } + }, + "summary": "Create Call Type", + "tags": ["product:video"] + } + }, + "/api/v2/video/calltypes/{name}": { + "delete": { + "description": "\n", + "operationId": "DeleteCallType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" } - ], - "requestBody": { + } + ], + "responses": { + "200": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateUserPermissionsRequest" - } + "schema": { "$ref": "#/components/schemas/Response" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateUserPermissionsResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Update user permissions", - "x-stream-docs-page-id": "update_user_permissions", - "x-stream-events": { - "call.permissions_updated": "Includes the new capabilities for the user" + }, + "description": "Bad request" }, - "x-stream-events-v2": { - "call.permissions_updated": { - "description": "Includes the new capabilities for the user", - "schema": { - "ref": "#/components/schemas/UpdatedCallPermissionsEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "x-stream-permissions": { - "UpdateCallPermissions": "To update user permissions" + }, + "description": "Too many requests" } - } + }, + "summary": "Delete Call Type", + "tags": ["product:video"] }, - "/call/members": { - "post": { - "description": "Query call members with filter query\n\nRequired permissions:\n- ReadCall\n", - "operationId": "QueryMembers", - "requestBody": { + "get": { + "description": "\n", + "operationId": "GetCallType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "responses": { + "200": { "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryMembersRequest" - } + "schema": { "$ref": "#/components/schemas/GetCallTypeResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryMembersResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Query call members", - "x-stream-permissions": { - "ReadCall": "To retrieve a call" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" } - } + }, + "summary": "Get Call Type", + "tags": ["product:video"] }, - "/calls": { - "post": { - "description": "Query calls with filter query\n\nRequired permissions:\n- ReadCall\n", - "operationId": "QueryCalls", - "parameters": [ - { - "in": "query", - "name": "connection_id", - "schema": { - "type": "string", - "writeOnly": true, - "x-stream-index": "002" - } + "put": { + "description": "\n", + "operationId": "UpdateCallType", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/UpdateCallTypeRequest" } } - ], - "requestBody": { + }, + "required": true + }, + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/QueryCallsRequest" + "$ref": "#/components/schemas/UpdateCallTypeResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/QueryCallsResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Query call", - "x-stream-permissions": { - "ReadCall": "To retrieve a call" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" } - } - }, - "/calltypes": { - "get": { - "description": "\n", - "operationId": "ListCallTypes", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListCallTypeResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + }, + "summary": "Update Call Type", + "tags": ["product:video"] + } + }, + "/api/v2/video/edges": { + "get": { + "description": "Returns the list of all edges available for video calls.\n", + "operationId": "GetEdges", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/GetEdgesResponse" } } - } + }, + "description": "Successful response" + }, + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Bad request" }, - "summary": "List Call Type", - "tags": [ - "Server-side" - ], - "x-stream-server-side": true + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } }, - "post": { - "description": "\n", - "operationId": "CreateCallType", - "requestBody": { + "summary": "Get Edges", + "tags": ["product:video"] + } + }, + "/api/v2/video/external_storage": { + "get": { + "description": "Lists external storage\n", + "operationId": "ListExternalStorage", + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateCallTypeRequest" + "$ref": "#/components/schemas/ListExternalStorageResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateCallTypeResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Create Call Type", - "tags": [ - "Server-side" - ], - "x-stream-server-side": true - } - }, - "/calltypes/{name}": { - "delete": { - "description": "\n", - "operationId": "DeleteCallType", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string", - "writeOnly": true, - "x-stream-index": "001" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Delete Call Type", - "tags": [ - "Server-side" - ], - "x-stream-server-side": true + }, + "description": "Too many requests" + } }, - "get": { - "description": "\n", - "operationId": "GetCallType", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, + "summary": "List external storage", + "tags": ["product:video"] + }, + "post": { + "description": "Creates new external storage\n", + "operationId": "CreateExternalStorage", + "requestBody": { + "content": { + "application/json": { "schema": { - "type": "string", - "writeOnly": true, - "x-stream-index": "001" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetCallTypeResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "$ref": "#/components/schemas/CreateExternalStorageRequest" } } }, - "summary": "Get Call Type", - "tags": [ - "Server-side" - ], - "x-stream-server-side": true + "required": true }, - "put": { - "description": "\n", - "operationId": "UpdateCallType", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "schema": { - "type": "string", - "writeOnly": true, - "x-stream-index": "001" - } - } - ], - "requestBody": { + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateCallTypeRequest" + "$ref": "#/components/schemas/CreateExternalStorageResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateCallTypeResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Update Call Type", - "tags": [ - "Server-side" - ], - "x-stream-server-side": true - } - }, - "/devices": { - "delete": { - "description": "Deletes one device\n", - "operationId": "DeleteDevice", - "parameters": [ - { - "in": "query", - "name": "id", - "schema": { - "description": "Device ID to delete", - "title": "ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "001" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - { - "in": "query", - "name": "user_id", - "schema": { - "description": "**Server-side only**. User ID which server acts upon", - "title": "User ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "002.001" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } - } - }, - "summary": "Delete device", - "x-stream-docs-page-id": "push_devices" + "description": "Too many requests" + } }, - "get": { - "description": "Returns all available devices\n", - "operationId": "ListDevices", - "parameters": [ - { - "in": "query", - "name": "user_id", - "schema": { - "description": "**Server-side only**. User ID which server acts upon", - "title": "User ID", - "type": "string", - "writeOnly": true, - "x-stream-index": "001.001" - } - } - ], - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ListDevicesResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } - } + "summary": "Create external storage", + "tags": ["product:video"] + } + }, + "/api/v2/video/external_storage/{name}": { + "delete": { + "description": "Deletes external storage\n", + "operationId": "DeleteExternalStorage", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" } - }, - "summary": "List devices", - "x-stream-docs-page-id": "push_devices" - }, - "post": { - "description": "Adds a new device to a user, if the same device already exists the call will have no effect\n", - "operationId": "CreateDevice", - "requestBody": { + } + ], + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateDeviceRequest" + "$ref": "#/components/schemas/DeleteExternalStorageResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Create device", - "x-stream-docs-page-id": "push_devices" - } + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Delete external storage", + "tags": ["product:video"] }, - "/edges": { - "get": { - "description": "Returns the list of all edges available for video calls.\n", - "operationId": "GetEdges", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GetEdgesResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "put": { + "description": "\n", + "operationId": "UpdateExternalStorage", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "001" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateExternalStorageRequest" } } }, - "summary": "Get Edges" - } - }, - "/guest": { - "post": { - "description": "\n", - "operationId": "CreateGuest", - "requestBody": { + "required": true + }, + "responses": { + "201": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateGuestRequest" + "$ref": "#/components/schemas/UpdateExternalStorageResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "201": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGuestResponse" - } - } - }, - "description": "Successful response" - }, - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } + }, + "description": "Bad request" }, - "summary": "Create Guest" - } - }, - "/video/connect": { - "get": { - "description": "Establishes WebSocket connection for user to video\n\nSends events:\n- connection.ok\n- health.check\n", - "operationId": "VideoConnect", - "requestBody": { + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } + } + }, + "description": "Too many requests" + } + }, + "summary": "Update External Storage", + "tags": ["product:video"] + } + }, + "/api/v2/video/external_storage/{name}/check": { + "get": { + "description": "\n", + "operationId": "CheckExternalStorage", + "parameters": [ + { + "in": "path", + "name": "name", + "required": true, + "schema": { + "type": "string", + "writeOnly": true, + "x-stream-index": "002" + } + } + ], + "responses": { + "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WSAuthMessageRequest" + "$ref": "#/components/schemas/CheckExternalStorageResponse" } } }, - "required": true + "description": "Successful response" }, - "responses": { - "400": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Bad request" - }, - "429": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/APIError" - } - } - }, - "description": "Too many requests", - "headers": { - "X-RateLimit-Limit": { - "description": "The number of allowed requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Remaining": { - "description": "The number of remaining requests in the current period", - "schema": { - "type": "integer" - } - }, - "X-RateLimit-Reset": { - "description": "Timestamp when number of requests will be reset", - "schema": { - "type": "integer" - } - } + "400": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } - } - }, - "summary": "Video Connect (WebSocket)", - "x-stream-docs-page-id": "init_and_users", - "x-stream-events": { - "connection.ok": "", - "health.check": "" + }, + "description": "Bad request" }, - "x-stream-events-v2": { - "connection.ok": { - "description": "", - "schema": { - "ref": "#/components/schemas/ConnectedEvent" + "429": { + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/APIError" } } }, - "health.check": { - "description": "", - "schema": { - "ref": "#/components/schemas/HealthCheckEvent" - } - } + "description": "Too many requests" } - } - } - }, - "security": [ - { - "JWT": [], - "api_key": [], - "stream-auth-type": [] - }, - { - "api_key": [], - "stream-auth-type": [] - } - ], - "servers": [ - { - "description": "Video Production API", - "url": "https://video.stream-io-api.com" + }, + "summary": "Check External Storage", + "tags": ["product:video"] } - ] - } \ No newline at end of file + } + }, + "security": [ + { "JWT": [], "api_key": [], "stream-auth-type": [] }, + { "api_key": [], "stream-auth-type": [] } + ], + "servers": [ + { "description": "Stream API", "url": "https://stream-io-api.com" } + ] +}