From 7fd997262593aebee3d7f2e9b9f59ac305dfb4d6 Mon Sep 17 00:00:00 2001 From: GH Action CI Stream Date: Mon, 12 Feb 2024 12:08:24 +0000 Subject: [PATCH] Update video openapi Spec --- openapi/chat-openapi-clientside.json | 1 + openapi/chat-openapi-clientside.yaml | 11439 ++++++++++++++++ openapi/chat-openapi.json | 1 + openapi/chat-openapi.yaml | 6869 ++-------- openapi/clientside-api.json | 1 + openapi/clientside-api.yaml | 15541 +++++++++++++++++++++ openapi/serverside-api.json | 1 + openapi/serverside-api.yaml | 17242 ++++++++++++++++++++++++ openapi/video-openapi-clientside.json | 1 + openapi/video-openapi-clientside.yaml | 1112 +- openapi/video-openapi.json | 1 + openapi/video-openapi.yaml | 2525 +--- 12 files changed, 46273 insertions(+), 8461 deletions(-) create mode 100644 openapi/chat-openapi-clientside.json create mode 100644 openapi/chat-openapi-clientside.yaml create mode 100644 openapi/chat-openapi.json create mode 100644 openapi/clientside-api.json create mode 100644 openapi/clientside-api.yaml create mode 100644 openapi/serverside-api.json create mode 100644 openapi/serverside-api.yaml create mode 100644 openapi/video-openapi-clientside.json create mode 100644 openapi/video-openapi.json diff --git a/openapi/chat-openapi-clientside.json b/openapi/chat-openapi-clientside.json new file mode 100644 index 00000000..3e3eb67f --- /dev/null +++ b/openapi/chat-openapi-clientside.json @@ -0,0 +1 @@ +{"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"},"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"},"ActionRequest":{"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"}},"type":"object"},"AgoraCall":{"properties":{"channel":{"type":"string","x-stream-index":"001"}},"required":["channel"],"type":"object"},"AnyEvent":{"properties":{"created_at":{"format":"date-time","type":"string","x-stream-index":"001.002"},"type":{"default":"custom","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"},"App":{"properties":{"agora_options":{"$ref":"#/components/schemas/Config","x-stream-index":"001.038"},"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.018"},"async_url_enrich_enabled":{"type":"boolean","x-stream-index":"001.016"},"auto_translation_enabled":{"type":"boolean","x-stream-index":"001.019"},"before_message_send_hook_url":{"type":"string","x-stream-index":"001.020"},"call_types":{"additionalProperties":{"$ref":"#/components/schemas/CallType"},"type":"object","x-stream-index":"001.006"},"campaign_enabled":{"type":"boolean","x-stream-index":"001.033"},"cdn_expiration_seconds":{"format":"int32","type":"integer","x-stream-index":"001.036"},"channel_configs":{"additionalProperties":{"$ref":"#/components/schemas/ChannelConfig"},"description":"Object with channel configs","title":"Channel configs","type":"object","x-stream-index":"001.005","x-stream-map":{"key":"channel_type"}},"custom_action_handler_url":{"type":"string","x-stream-index":"001.021"},"datadog_info":{"$ref":"#/components/schemas/DataDogInfo","x-stream-index":"001.041"},"disable_auth_checks":{"type":"boolean","x-stream-index":"001.010"},"disable_permissions_checks":{"type":"boolean","x-stream-index":"001.011"},"enforce_unique_usernames":{"type":"string","x-stream-index":"001.022"},"file_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.029"},"geofences":{"items":{"$ref":"#/components/schemas/GeofenceResponse"},"type":"array","x-stream-index":"001.040"},"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"},"image_moderation_enabled":{"type":"boolean","x-stream-index":"001.015"},"image_moderation_labels":{"items":{"type":"string"},"type":"array","x-stream-index":"001.017"},"image_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.030"},"multi_tenant_enabled":{"type":"boolean","x-stream-index":"001.014"},"name":{"type":"string","x-stream-index":"001.001"},"organization":{"type":"string","x-stream-index":"001.002"},"permission_version":{"type":"string","x-stream-index":"001.012"},"policies":{"additionalProperties":{"items":{"$ref":"#/components/schemas/Policy"},"type":"array"},"type":"object","x-stream-index":"001.007"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationFields","x-stream-index":"001.003"},"reminders_interval":{"format":"int32","type":"integer","x-stream-index":"001.035"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.031"},"sns_key":{"type":"string","x-stream-index":"001.027"},"sns_secret":{"type":"string","x-stream-index":"001.028"},"sns_topic_arn":{"type":"string","x-stream-index":"001.026"},"sqs_key":{"type":"string","x-stream-index":"001.024"},"sqs_secret":{"type":"string","x-stream-index":"001.025"},"sqs_url":{"type":"string","x-stream-index":"001.023"},"suspended":{"type":"boolean","x-stream-index":"001.008"},"suspended_explanation":{"type":"string","x-stream-index":"001.009"},"user_search_disallowed_roles":{"items":{"type":"string"},"type":"array","x-stream-index":"001.013"},"video_provider":{"type":"string","x-stream-index":"001.037"},"webhook_events":{"items":{"type":"string"},"type":"array","x-stream-index":"001.034"},"webhook_url":{"type":"string","x-stream-index":"001.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","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","webhook_events","reminders_interval","cdn_expiration_seconds","video_provider"],"type":"object"},"Attachment":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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"},"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)","title":"Type","type":"string","x-stream-index":"001"}},"required":["Custom"],"title":"Attachment","type":"object","x-stream-docs-page-id":"file_uploads"},"AttachmentRequest":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"actions":{"items":{"$ref":"#/components/schemas/ActionRequest"},"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"},"fallback":{"type":"string","x-stream-index":"002"},"fields":{"items":{"$ref":"#/components/schemas/FieldRequest"},"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/ImagesRequest","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)","title":"Type","type":"string","x-stream-index":"001"}},"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"},"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"},"BackstageSettings":{"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":"009"},"banned_by_id":{"description":"User ID who issued a ban","title":"Banned by ID","type":"string","x-stream-index":"008"},"id":{"description":"Channel ID to ban user in","title":"ID","type":"string","x-stream-index":"005"},"ip_ban":{"description":"Whether to perform IP ban or not","title":"IP ban","type":"boolean","x-stream-index":"007"},"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":"006"},"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"},"type":{"description":"Channel type to ban user in","title":"Type","type":"string","x-stream-index":"004"}},"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":"string","x-stream-index":"007"},"expires":{"format":"date-time","type":"string","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"],"type":"string","x-stream-index":"002"},"blocklist":{"type":"string","x-stream-index":"001"}},"required":["blocklist","behavior"],"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"},"Call":{"properties":{"agora":{"$ref":"#/components/schemas/AgoraCall","x-stream-index":"005"},"hms":{"$ref":"#/components/schemas/HMSCall","x-stream-index":"004"},"id":{"type":"string","x-stream-index":"002"},"provider":{"type":"string","x-stream-index":"001"},"type":{"type":"string","x-stream-index":"003"}},"required":["provider","id","type"],"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"},"CallType":{"nullable":true,"properties":{"AppPK":{"format":"int32","type":"integer","writeOnly":true,"x-stream-index":"003"},"CreatedAt":{"format":"date-time","type":"string","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":"string","writeOnly":true,"x-stream-index":"006"}},"required":["PK","AppPK","Name","CreatedAt","UpdatedAt","ExternalStorage"],"type":"object"},"Channel":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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":"string","x-stream-index":"009"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"008"},"deleted_at":{"format":"date-time","type":"string","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":"string","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":"string","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.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.024"},"blocklist":{"type":"string","x-stream-index":"001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.016"},"mutes":{"type":"boolean","x-stream-index":"001.009"},"name":{"type":"string","x-stream-index":"001.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","created_at","updated_at","commands"],"type":"object"},"ChannelConfigRequest":{"description":"Channel configuration overrides","properties":{"blocklist":{"type":"string","x-stream-index":"008"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"009"},"commands":{"items":{"type":"string"},"type":"array","x-stream-index":"011"},"grants":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"title":"Grants","type":"object","x-stream-index":"010","x-stream-map":{"key":"role","title":"Grants","description":"List of grants modifiers that apply to a role"}},"max_message_length":{"description":"Overrides max message length","format":"int32","maximum":20000,"title":"Max Message Length","type":"integer","x-stream-index":"007"},"quotes":{"description":"Enables message quotes","title":"Quotes","type":"boolean","x-stream-index":"004"},"reactions":{"description":"Enables or disables reactions","title":"Reactions","type":"boolean","x-stream-index":"002"},"replies":{"description":"Enables message replies (threads)","title":"Replies","type":"boolean","x-stream-index":"003"},"typing_events":{"description":"Enables or disables typing events","title":"Typing events","type":"boolean","x-stream-index":"001"},"uploads":{"description":"Enables or disables file uploads","title":"Uploads","type":"boolean","x-stream-index":"005"},"url_enrichment":{"description":"Enables or disables URL enrichment","title":"URL Enrichment","type":"boolean","x-stream-index":"006"}},"type":"object"},"ChannelConfigWithInfo":{"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.002.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.002.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.002.024"},"blocklist":{"type":"string","x-stream-index":"001.002.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.002.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.002.016"},"mutes":{"type":"boolean","x-stream-index":"001.002.009"},"name":{"type":"string","x-stream-index":"001.002.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","commands"],"type":"object"},"ChannelCreatedEvent":{"properties":{"created_at":{"format":"date-time","type":"string","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":"string","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":"string","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":{"connection_id":{"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"},"data":{"$ref":"#/components/schemas/ChannelRequest","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/PaginationParamsRequest","x-stream-index":"011"},"messages":{"$ref":"#/components/schemas/MessagePaginationParamsRequest","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/PaginationParamsRequest","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":"string","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"},"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":"string","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":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","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"},"ChannelMemberRequest":{"nullable":true,"properties":{"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","x-stream-index":"012"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"005"},"user_id":{"title":"User ID","type":"string","x-stream-index":"004"}},"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":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","x-stream-index":"008"},"updated_at":{"description":"Date/time of the last update","format":"date-time","title":"Updated at","type":"string","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"},"ChannelRequest":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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/ChannelConfigRequest","x-stream-index":"026"},"disabled":{"type":"boolean","x-stream-index":"016"},"frozen":{"description":"Freeze or unfreeze the channel","title":"Frozen","type":"boolean","x-stream-index":"015"},"members":{"items":{"$ref":"#/components/schemas/ChannelMemberRequest"},"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"},"ChannelResponse":{"description":"Represents channel in chat","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"029"},"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":"string","x-stream-index":"008"},"created_by":{"$ref":"#/components/schemas/UserObject","description":"Creator of the channel","title":"Created by","x-stream-index":"011"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":"string","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":"string","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":"string","x-stream-index":"009"}},"required":["id","type","cid","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":"string","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/Message"},"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/Message"},"type":"array","x-stream-index":"001.003"},"read":{"items":{"$ref":"#/components/schemas/Read"},"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/UserObject"},"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":"string","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/Message"},"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/Message"},"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/Read"},"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/UserObject"},"title":"Watchers","type":"array","x-stream-index":"005"}},"required":["messages","pinned_messages","members","threads"],"type":"object"},"ChannelStopWatchingRequest":{"nullable":true,"properties":{"connection_id":{"type":"string","x-stream-index":"001.003"}},"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":"string","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":"string","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":"string","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":"string","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"},"ChannelsResponse":{"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"},"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":"string","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":"string","x-stream-index":"002"}},"required":["name","description","args","set"],"title":"Command","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"},"ConnectRequest":{"properties":{"device":{"$ref":"#/components/schemas/DeviceFields","x-stream-index":"001.002"},"user_details":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.001"}},"required":["user_details"],"type":"object"},"CreateCallRequest":{"nullable":true,"properties":{"id":{"type":"string","x-stream-index":"004"},"options":{"type":"object","x-stream-index":"005"},"type":{"enum":["audio","video"],"type":"string","x-stream-index":"003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"006.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"User ID","type":"string","x-stream-index":"006.001"}},"required":["type","id"],"type":"object"},"CreateCallResponse":{"nullable":true,"properties":{"agora_app_id":{"type":"string","x-stream-index":"002.003"},"agora_uid":{"format":"int32","type":"integer","x-stream-index":"002.002"},"call":{"$ref":"#/components/schemas/Call","x-stream-index":"001"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"003.001"},"token":{"type":"string","x-stream-index":"002.001"}},"required":["token","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"},"voip_token":{"type":"boolean","x-stream-index":"004"}},"type":"object"},"DataDogInfo":{"properties":{"api_key":{"type":"string","x-stream-index":"001"},"site":{"type":"string","x-stream-index":"002"}},"required":["api_key","site"],"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"}},"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"},"Device":{"nullable":true,"properties":{"created_at":{"format":"date-time","type":"string","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"},"DeviceFields":{"properties":{"id":{"description":"Device ID","title":"ID","type":"string","x-stream-index":"004"},"push_provider":{"enum":["firebase","apn","huawei","xiaomi"],"title":"Push provider","type":"string","x-stream-index":"001"},"push_provider_name":{"description":"Name of the push provider configuration","title":"Push provider name","type":"string","x-stream-index":"003"},"voip":{"type":"boolean","x-stream-index":"005"}},"required":["push_provider","id"],"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":{"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"},"FieldRequest":{"nullable":true,"properties":{"short":{"type":"boolean","x-stream-index":"003"},"title":{"type":"string","x-stream-index":"001"},"value":{"type":"string","x-stream-index":"002"}},"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"}},"required":["allowed_file_extensions","blocked_file_extensions","allowed_mime_types","blocked_mime_types"],"type":"object"},"FileUploadRequest":{"nullable":true,"properties":{"file":{"description":"file field","title":"File","type":"string","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"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":"string","x-stream-index":"015"},"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"011"},"created_by_automod":{"type":"boolean","x-stream-index":"004"},"custom":{"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":"string","x-stream-index":"016"},"reviewed_at":{"description":"Date of the review","format":"date-time","title":"Reviewed at","type":"string","x-stream-index":"013"},"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":"string","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":{"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":"string","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":{"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"GetApplicationResponse":{"nullable":true,"properties":{"app":{"$ref":"#/components/schemas/App","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"},"GetCallTokenRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"002.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"User ID","type":"string","x-stream-index":"002.001"}},"type":"object"},"GetCallTokenResponse":{"nullable":true,"properties":{"agora_app_id":{"type":"string","x-stream-index":"001.003"},"agora_uid":{"format":"int32","type":"integer","x-stream-index":"001.002"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"002.001"},"token":{"type":"string","x-stream-index":"001.001"}},"required":["token","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"},"GetOGResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.018"},"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"},"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"},"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":{"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"},"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":["duration"],"type":"object"},"GuestRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"001"}},"required":["user"],"type":"object"},"GuestResponse":{"nullable":true,"properties":{"access_token":{"description":"Authentication token to use for guest user","title":"Access token","type":"string","x-stream-index":"002"},"duration":{"type":"string","x-stream-index":"003.001"},"user":{"$ref":"#/components/schemas/UserObject","description":"Created user object","title":"User","x-stream-index":"001"}},"required":["access_token","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"},"HMSCall":{"properties":{"room_id":{"type":"string","x-stream-index":"001"},"room_name":{"type":"string","x-stream-index":"002"}},"required":["room_id","room_name"],"type":"object"},"HealthCheckEvent":{"properties":{"cid":{"type":"string","x-stream-index":"001"},"created_at":{"format":"date-time","type":"string","x-stream-index":"003.002"},"me":{"$ref":"#/components/schemas/OwnUser","x-stream-index":"002"},"type":{"default":"health.check","type":"string","x-stream-index":"003.001"}},"required":["cid","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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"ImageDataRequest":{"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"}},"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"}},"required":["crop","resize","height","width"],"title":"Image size configuration","type":"object"},"ImageSizeRequest":{"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/ImageSizeRequest"},"title":"Upload sizes","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"ImagesRequest":{"properties":{"fixed_height":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"002"},"fixed_height_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"004"},"fixed_height_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"003"},"fixed_width":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"005"},"fixed_width_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"007"},"fixed_width_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"006"},"original":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"001"}},"type":"object"},"Label":{"properties":{"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":{"type":"object","x-stream-index":"002"}},"required":["name","external_app_url","external_css_url"],"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"},"MarkChannelsReadRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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/UserObjectRequest","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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["message_id","thread_id"],"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":"string","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":"string","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"},"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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"031"},"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":"043"},"cid":{"description":"Channel unique identifier in \u003ctype\u003e:\u003cid\u003e format","title":"Channel CID","type":"string","x-stream-index":"026"},"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":"string","x-stream-index":"028"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","x-stream-index":"030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"021"},"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":"041"},"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":"037"},"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":"040"},"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":"017"},"pin_expires":{"description":"Date when pinned message expires","format":"date-time","title":"Pin expiration date","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"048"},"pinned":{"description":"Whether message is pinned or not","title":"Pinned","type":"boolean","x-stream-docs-page-id":"pinned_messages","x-stream-index":"044"},"pinned_at":{"description":"Date when message got pinned","format":"date-time","title":"Pinned at","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"045"},"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":"047"},"quoted_message":{"$ref":"#/components/schemas/Message","description":"Contains quoted message","title":"Quoted message","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"023"},"quoted_message_id":{"title":"ID of quoted message","type":"string","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"022"},"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_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":"020"},"shadowed":{"description":"Whether the message was shadowed or not","title":"Shadowed","type":"boolean","x-stream-docs-page-id":"moderation#shadow-ban","x-stream-index":"033"},"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":"019"},"silent":{"description":"Whether message is silent or not","title":"Silent","type":"boolean","x-stream-index":"042"},"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":"025"},"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":"string","x-stream-index":"029"},"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","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"form_data":{"additionalProperties":{"type":"string"},"description":"ReadOnlyData to execute command with","title":"Form data","type":"object","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["form_data"],"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":"string","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":"string","x-stream-index":"013"},"created_at":{"format":"date-time","type":"string","x-stream-index":"009"},"created_by_automod":{"type":"boolean","x-stream-index":"001"},"custom":{"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":"string","x-stream-index":"014"},"reviewed_at":{"format":"date-time","type":"string","x-stream-index":"011"},"reviewed_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"012"},"updated_at":{"format":"date-time","type":"string","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":"string","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":"string","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":"string","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"},"MessagePaginationParamsRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"008"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"007"},"created_at_around":{"format":"date-time","type":"string","x-stream-index":"012"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"010"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"009"},"id_around":{"type":"string","x-stream-index":"011"},"id_gt":{"type":"string","x-stream-index":"004"},"id_gte":{"type":"string","x-stream-index":"003"},"id_lt":{"type":"string","x-stream-index":"006"},"id_lte":{"type":"string","x-stream-index":"005"},"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":"string","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/AttachmentRequest"},"maximum":30,"type":"array","x-stream-index":"004"},"custom":{"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"},"parent_id":{"type":"string","x-stream-index":"005"},"pin_expires":{"format":"date-time","type":"string","x-stream-index":"015"},"pinned":{"type":"boolean","x-stream-index":"013"},"pinned_at":{"format":"date-time","nullable":true,"type":"string","x-stream-index":"014"},"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"}},"required":["attachments"],"type":"object"},"MessageResponse":{"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/Message","x-stream-index":"001"}},"required":["duration"],"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":"string","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"},"MessageWithPendingMetadataResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"001.002.001"},"message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.001"},"pending_message_metadata":{"additionalProperties":{"type":"string"},"description":"Metadata attached to a message while it is pending","title":"Pending message metadata","type":"object","x-stream-index":"002"}},"required":["duration"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["channel_cids"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["target_ids"],"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"},"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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","x-stream-index":"001.002"},"first_unread_message_id":{"type":"string","x-stream-index":"005"},"last_read_at":{"format":"date-time","type":"string","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":"string","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":"string","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":"string","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"},"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"},"OnlyUserIDRequest":{"properties":{"id":{"type":"string","x-stream-index":"001"}},"required":["id"],"type":"object"},"OwnUser":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"banned":{"type":"boolean","x-stream-index":"014"},"channel_mutes":{"items":{"$ref":"#/components/schemas/ChannelMute"},"type":"array","x-stream-index":"026"},"created_at":{"format":"date-time","type":"string","x-stream-index":"007"},"deactivated_at":{"format":"date-time","type":"string","x-stream-index":"012"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"011"},"devices":{"items":{"$ref":"#/components/schemas/Device"},"type":"array","x-stream-index":"024"},"id":{"type":"string","x-stream-index":"003"},"invisible":{"type":"boolean","x-stream-index":"021"},"language":{"type":"string","x-stream-index":"031"},"last_active":{"format":"date-time","type":"string","x-stream-index":"010"},"latest_hidden_channels":{"items":{"type":"string"},"type":"array","x-stream-index":"033"},"mutes":{"items":{"$ref":"#/components/schemas/UserMute"},"type":"array","x-stream-index":"025"},"online":{"type":"boolean","x-stream-index":"020"},"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":"032"},"total_unread_count":{"format":"int32","type":"integer","x-stream-index":"028"},"unread_channels":{"format":"int32","type":"integer","x-stream-index":"029"},"unread_count":{"format":"int32","type":"integer","x-stream-index":"027"},"unread_threads":{"format":"int32","type":"integer","x-stream-index":"030"},"updated_at":{"format":"date-time","type":"string","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"},"PaginationParamsRequest":{"properties":{"id_gt":{"format":"int32","type":"integer","x-stream-index":"004"},"id_gte":{"format":"int32","type":"integer","x-stream-index":"003"},"id_lt":{"format":"int32","type":"integer","x-stream-index":"006"},"id_lte":{"format":"int32","type":"integer","x-stream-index":"005"},"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"},"Policy":{"properties":{"action":{"type":"integer","x-stream-index":"007"},"created_at":{"format":"date-time","type":"string","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":"string","x-stream-index":"011"}},"required":["name","resources","roles","action","owner","priority","created_at","updated_at"],"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":"string","x-stream-index":"002"}},"type":"object"},"PushNotificationSettingsRequest":{"properties":{"disabled":{"type":"boolean","x-stream-index":"001"},"disabled_until":{"format":"date-time","type":"string","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":"string","x-stream-index":"008"},"description":{"maxLength":128,"type":"string","x-stream-index":"007"},"disabled_at":{"format":"date-time","type":"string","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":"integer","x-stream-index":"006"},"updated_at":{"format":"date-time","type":"string","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"},"QueryBannedUsersRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"003.006"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.005"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"003.008"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.007"},"exclude_expired_bans":{"type":"boolean","x-stream-index":"006"},"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"007.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryChannelsRequest":{"nullable":true,"properties":{"connection_id":{"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"},"filter_conditions":{"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/SortParamRequest"},"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/UserObjectRequest","x-stream-index":"010.002"},"user_id":{"type":"string","x-stream-index":"010.001"},"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"},"QueryMembersRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"006.010"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.009"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"006.012"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.011"},"filter_conditions":{"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/UserObject","x-stream-index":"007.002"},"user_id":{"type":"string","x-stream-index":"007.001"},"user_id_gt":{"type":"string","x-stream-index":"006.006"},"user_id_gte":{"type":"string","x-stream-index":"006.005"},"user_id_lt":{"type":"string","x-stream-index":"006.008"},"user_id_lte":{"type":"string","x-stream-index":"006.007"}},"required":["type","filter_conditions"],"type":"object"},"QueryMessageFlagsRequest":{"properties":{"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"004.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryThreadsRequest":{"nullable":true,"properties":{"connection_id":{"type":"string","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"},"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":"005.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"},"QueryUsersRequest":{"properties":{"connection_id":{"description":"Websocket connection ID to interact with. You can pass it as Body or URL parameter","title":"Connection ID","type":"string","x-stream-index":"006.003"},"filter_conditions":{"description":"User filters","title":"Filter conditions","type":"object","x-stream-docs-page-id":"query_users","x-stream-index":"001"},"id_gt":{"type":"string","x-stream-index":"004.006"},"id_gte":{"type":"string","x-stream-index":"004.005"},"id_lt":{"type":"string","x-stream-index":"004.008"},"id_lte":{"type":"string","x-stream-index":"004.007"},"limit":{"format":"int32","maximum":100,"minimum":0,"type":"integer","x-stream-index":"004.003"},"offset":{"format":"int32","maximum":1000,"type":"integer","x-stream-index":"004.004"},"presence":{"description":"Request user presence status","title":"Presence","type":"boolean","x-stream-index":"003"},"sort":{"description":"Array of sort parameters","items":{"$ref":"#/components/schemas/SortParam"},"maximum":5,"title":"Sort","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"005.002"},"user_id":{"type":"string","x-stream-index":"005.001"}},"required":["filter_conditions"],"type":"object"},"Reaction":{"description":"Represents user reaction to a message","nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"010"},"created_at":{"description":"Date/time of creation","format":"date-time","readOnly":true,"title":"Created at","type":"string","x-stream-index":"008"},"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":"string","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":"string","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"},"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":"string","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":{"description":"Represents user reaction to a message","properties":{"Custom":{"type":"object","writeOnly":true,"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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":["type"],"title":"Reaction","type":"object","x-stream-docs-page-id":"send_reaction"},"ReactionResponse":{"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"},"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":"string","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":"string","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"},"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"},"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"},"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"},"SearchRequest":{"properties":{"filter_conditions":{"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":{"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":{"nullable":true,"properties":{"message":{"$ref":"#/components/schemas/SearchResultMessage","description":"Found message","title":"Message","x-stream-index":"001"}},"type":"object"},"SearchResultMessage":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.031"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","x-stream-index":"001.011"},"before_message_send_failed":{"type":"boolean","x-stream-index":"001.043"},"channel":{"$ref":"#/components/schemas/ChannelResponse","description":"Channel object","title":"Channel","x-stream-index":"002"},"cid":{"type":"string","x-stream-index":"001.026"},"command":{"type":"string","x-stream-index":"001.006"},"created_at":{"format":"date-time","type":"string","x-stream-index":"001.028"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"001.021"},"html":{"type":"string","x-stream-index":"001.007"},"i18n":{"additionalProperties":{"type":"string"},"type":"object","x-stream-index":"001.041"},"id":{"type":"string","x-stream-index":"001.002"},"image_labels":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","x-stream-index":"001.037"},"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.040"},"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.017"},"pin_expires":{"format":"date-time","type":"string","x-stream-index":"001.048"},"pinned":{"type":"boolean","x-stream-index":"001.044"},"pinned_at":{"format":"date-time","type":"string","x-stream-index":"001.045"},"pinned_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.047"},"quoted_message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.023"},"quoted_message_id":{"type":"string","x-stream-index":"001.022"},"reaction_counts":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.014"},"reaction_scores":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.015"},"reply_count":{"format":"int32","type":"integer","x-stream-index":"001.020"},"shadowed":{"type":"boolean","x-stream-index":"001.033"},"show_in_channel":{"type":"boolean","x-stream-index":"001.019"},"silent":{"type":"boolean","x-stream-index":"001.042"},"text":{"type":"string","x-stream-index":"001.004"},"thread_participants":{"items":{"$ref":"#/components/schemas/UserObject"},"type":"array","x-stream-index":"001.025"},"type":{"type":"string","x-stream-index":"001.008"},"updated_at":{"format":"date-time","type":"string","x-stream-index":"001.029"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.010"}},"required":["id","text","html","type","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"},"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"},"SendMessageRequest":{"nullable":true,"properties":{"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/Message","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"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"},"ShowChannelRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"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"},"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"},"connection_id":{"type":"string","x-stream-index":"006.003"},"last_sync_at":{"description":"Date from which synchronization should happen","format":"date-time","title":"Last sync at","type":"string","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"005.002"},"user_id":{"type":"string","x-stream-index":"005.001"},"watch":{"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"},"with_inaccessible_cids":{"description":"If set to true this will add 'inaccessible_cids' to response type","title":"With inaccessible CIDs","type":"boolean","x-stream-index":"003"}},"required":["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","bitrate"],"type":"object"},"Thread":{"description":"Represents a conversation thread linked to a specific message in a channel.","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"009"},"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":"string","x-stream-index":"007"},"left_thread_at":{"description":"Left Thread At is the time when the user left the thread","format":"date-time","title":"Left Thread At","type":"string","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","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":"string","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":{"type":"object","x-stream-index":"015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","x-stream-index":"001.014"}},"required":["channel_cid","parent_message_id","created_at","updated_at","title","Custom","latest_replies"],"title":"Thread","type":"object"},"ThreadStateResponse":{"nullable":true,"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":"string","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":{"type":"object","x-stream-index":"001.015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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":"string","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"},"ThumbnailsSettings":{"properties":{"enabled":{"type":"boolean","x-stream-index":"001"}},"required":["enabled"],"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"},"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":"string","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"},"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":"string","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":"string","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"},"UnmuteChannelRequest":{"nullable":true,"properties":{"channel_cid":{"type":"string","x-stream-index":"001.001"},"channel_cids":{"items":{"type":"string"},"maximum":25,"type":"array","x-stream-index":"001.002"},"expiration":{"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["channel_cid","channel_cids"],"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_id":{"type":"string","x-stream-index":"001.001"},"target_ids":{"items":{"type":"string"},"maximum":1000,"type":"array","x-stream-index":"001.002"},"timeout":{"minimum":0,"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["target_id","target_ids"],"type":"object"},"UnreadCountsChannel":{"properties":{"channel_id":{"type":"string","x-stream-index":"001"},"last_read":{"format":"date-time","type":"string","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"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"006.001"},"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","duration"],"type":"object"},"UnreadCountsThread":{"properties":{"last_read":{"format":"date-time","type":"string","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"},"UpdateChannelPartialRequest":{"nullable":true,"properties":{"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["set","unset"],"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/ChannelMemberRequest"},"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/ChannelMemberRequest"},"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/ChannelRequest","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/ChannelMemberRequest"},"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"}},"required":["remove_members","add_moderators","demote_moderators"],"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":{"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"}},"required":["set","unset"],"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":["message","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"},"UpdateThreadPartialRequest":{"nullable":true,"properties":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"set":{"type":"object","x-stream-index":"004.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"004.002"}},"required":["set","unset"],"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":["duration"],"type":"object"},"UpdateUserPartialRequest":{"nullable":true,"properties":{"id":{"description":"User ID to update","title":"ID","type":"string","x-stream-index":"001"},"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"}},"required":["id","set","unset"],"type":"object"},"UpdateUsersRequest":{"nullable":true,"properties":{"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObjectRequest"},"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":"002.001"},"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObject"},"description":"Object containing users","title":"Users","type":"object","x-stream-index":"001","x-stream-map":{"key":"user_id"}}},"required":["users","duration"],"type":"object"},"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":"string","x-stream-index":"008.002"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001"},"expiration":{"format":"date-time","type":"string","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":"string","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":"string","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"},"UserMute":{"nullable":true,"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","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":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"007"},"deactivated_at":{"description":"Date of deactivation","format":"date-time","readOnly":true,"title":"Deactivated at","type":"string","x-stream-index":"012"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","readOnly":true,"title":"Deleted at","type":"string","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":"031"},"last_active":{"description":"Date of last activity","format":"date-time","readOnly":true,"title":"Last active","type":"string","x-stream-index":"010"},"online":{"description":"Whether a user online or not","readOnly":true,"title":"Online","type":"boolean","x-stream-index":"020"},"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":"string","x-stream-index":"038"},"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":"032"},"updated_at":{"description":"Date/time of the last update","format":"date-time","readOnly":true,"title":"Updated at","type":"string","x-stream-index":"008"}},"required":["id","role","Custom","banned","online"],"title":"User object","type":"object"},"UserObjectRequest":{"description":"Represents chat user","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","x-stream-index":"015"},"banned":{"description":"Whether a user is banned or not","title":"Banned","type":"boolean","x-stream-index":"014"},"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":"031"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettingsRequest","x-stream-index":"023"},"revoke_tokens_issued_before":{"description":"Revocation date for tokens","format":"date-time","title":"Revoke tokens issued before","type":"string","x-stream-index":"038"},"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":"032"}},"required":["id"],"title":"User object","type":"object"},"UserPresenceChangedEvent":{"properties":{"created_at":{"format":"date-time","type":"string","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":"string","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":{"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"},"language":{"type":"string","x-stream-index":"005"},"name":{"description":"Optional name of user","title":"Name","type":"string","x-stream-index":"002"}},"required":["id"],"type":"object"},"UserResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.005"},"ban_expires":{"format":"date-time","type":"string","x-stream-index":"001.015"},"banned":{"type":"boolean","x-stream-index":"001.014"},"created_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.007"},"deactivated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.012"},"deleted_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.011"},"id":{"type":"string","x-stream-index":"001.003"},"invisible":{"type":"boolean","x-stream-index":"001.021"},"language":{"type":"string","x-stream-index":"001.031"},"last_active":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.010"},"online":{"readOnly":true,"type":"boolean","x-stream-index":"001.020"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettings","x-stream-index":"001.023"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.038"},"role":{"type":"string","x-stream-index":"001.004"},"shadow_banned":{"description":"Whether user is shadow banned or not","title":"Shadow banned","type":"boolean","x-stream-index":"002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"001.032"},"updated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.008"}},"required":["id","role","Custom","banned","online","shadow_banned"],"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":"string","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":"string","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":"string","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":"string","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"},"UsersResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"002.001"},"users":{"description":"List of found users","items":{"$ref":"#/components/schemas/UserResponse"},"title":"Users","type":"array","x-stream-index":"001"}},"required":["users","duration"],"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"},"WSEvent":{"description":"The discriminator object for all websocket events, it maps events' payload to the final type","discriminator":{"mapping":{"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","custom":"#/components/schemas/AnyEvent","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.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","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/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/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/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/ReactionDeletedEvent"},{"$ref":"#/components/schemas/ReactionNewEvent"},{"$ref":"#/components/schemas/ReactionUpdatedEvent"},{"$ref":"#/components/schemas/ThreadUpdatedEvent"},{"$ref":"#/components/schemas/TypingStartEvent"},{"$ref":"#/components/schemas/TypingStopEvent"},{"$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"}]},"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"},"connectRequestQueryRequest":{"nullable":true,"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":"v98.0.2-message-blocked-event.1"},"openapi":"3.0.3","paths":{"/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":["Settings"]}},"/calls":{"post":{"description":"Retrieves the token to join a call\n\nRequired permissions:\n- JoinCall\n- ReadChannel\n","operationId":"GetCallToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenResponse"}}},"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 Token"}},"/calls/{call_id}":{"post":{"description":"Retrieves the token to join a call\n\nRequired permissions:\n- JoinCall\n- ReadChannel\n","operationId":"GetCallToken","parameters":[{"in":"path","name":"call_id","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenResponse"}}},"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 Token"}},"/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/ChannelsResponse"}}},"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":["Channels"]}},"/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":["Channels","GDPR"]}},"/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":["Channels","Messages"]}},"/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":"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":"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":["Channels"]}},"/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":["Channels"]},"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":["Channels"]},"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":["Channels"]}},"/channels/{type}/{id}/call":{"post":{"description":"Creates a call\n\nRequired permissions:\n- CreateCall\n- ReadChannel\n","operationId":"CreateCall","parameters":[{"in":"path","name":"type","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}},{"in":"path","name":"id","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"002"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCallRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCallResponse"}}},"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 a call"}},"/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":["Events"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Channels"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Messages"]}},"/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","schema":{"description":"List of comma-separated IDs","items":{"type":"string"},"maximum":50,"minimum":1,"title":"IDs","type":"array","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":["Messages"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/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":{"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/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":["Channels"]}},"/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":["Channels"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/connect":{"get":{"description":"Establishes WebSocket connection for user\n\nSends events:\n- user.updated\n","operationId":"Connect","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest","x-stream-index":"001"}}},"in":"query","name":"json"}],"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":"Connect (WebSocket)","tags":["Users"]}},"/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"}},"summary":"Delete device","tags":["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"}},"summary":"List devices","tags":["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":{"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":["Devices","Push"]}},"/guest":{"post":{"description":"Creates guest user\n","operationId":"CreateGuest","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestResponse"}}},"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":["Users"]}},"/longpoll":{"get":{"description":"WebSocket fallback transport endpoint\n\nSends events:\n- user.updated\n","operationId":"LongPoll","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest","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":["Users"]}},"/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":["Channels"]}},"/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/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":"Delete message","tags":["Messages"]},"get":{"description":"Returns message by ID\n\nRequired permissions:\n- ReadChannel\n","operationId":"GetMessage","parameters":[{"in":"path","name":"id","required":true,"schema":{"description":"Message ID","title":"ID","type":"string","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageWithPendingMetadataResponse"}}},"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":["Messages"]},"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":["Messages"]},"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":["Messages"]}},"/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":["Messages"]}},"/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/ReactionResponse"}}},"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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages"]}},"/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":{"description":"ID of a message which replies to return","title":"Parent ID","type":"string","writeOnly":true,"x-stream-index":"001"}},{"in":"query","name":"id_gte","schema":{"type":"string","x-stream-index":"002.001.003"}},{"in":"query","name":"id_gt","schema":{"type":"string","x-stream-index":"002.001.004"}},{"in":"query","name":"id_lte","schema":{"type":"string","x-stream-index":"002.001.005"}},{"in":"query","name":"id_lt","schema":{"type":"string","x-stream-index":"002.001.006"}},{"in":"query","name":"created_at_after_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.007"}},{"in":"query","name":"created_at_after","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.008"}},{"in":"query","name":"created_at_before_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.009"}},{"in":"query","name":"created_at_before","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.010"}},{"in":"query","name":"id_around","schema":{"type":"string","x-stream-index":"002.001.011"}},{"in":"query","name":"created_at_around","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.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":["Messages"]}},"/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","schema":{"type":"string","x-stream-index":"001"}},{"in":"query","name":"type","schema":{"type":"string","x-stream-index":"002"}},{"in":"query","name":"id","schema":{"type":"string","x-stream-index":"003"}},{"in":"query","name":"created_by","schema":{"type":"string","x-stream-index":"004"}}],"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":["Users","Moderation"]},"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":["Users","Moderation"]}},"/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":["Moderation","Messages","Users"]}},"/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":["Messages","Moderation"]}},"/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":["Users","Moderation"]}},"/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":["Channels"]}},"/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":["Users","Moderation"]}},"/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":["Channels"]}},"/og":{"get":{"description":"Get an OpenGraph attachment for a link\n","operationId":"GetOG","parameters":[{"in":"query","name":"url","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":["Messages"]}},"/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":["Users","Moderation"]}},"/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":["Channels","Messages"]}},"/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":["Channels","Events"]}},"/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":["Threads"]}},"/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"}}],"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":["Threads"]},"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":["Threads","Channels"]}},"/unread":{"get":{"description":"UnreadCount counts\n","operationId":"UnreadCounts","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnreadCountsResponse"}}},"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":"UnreadCount counts","tags":["Channels"]}},"/users":{"get":{"description":"Find and filter users\n\nRequired permissions:\n- SearchUser\n","operationId":"QueryUsers","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryUsersRequest","x-stream-index":"001"}}},"in":"query","name":"payload"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersResponse"}}},"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":["Users"]},"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/UpdateUserPartialRequest"}}},"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":["Users"]},"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":["Users"]}}},"security":[{"JWT":[],"api_key":[],"stream-auth-type":[]},{"api_key":[],"stream-auth-type":[]}],"servers":[{"description":"Stream API","url":"https://stream-io-api.com"}]} \ No newline at end of file diff --git a/openapi/chat-openapi-clientside.yaml b/openapi/chat-openapi-clientside.yaml new file mode 100644 index 00000000..1c9a0c89 --- /dev/null +++ b/openapi/chat-openapi-clientside.yaml @@ -0,0 +1,11439 @@ +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 + 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 + ActionRequest: + 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" + type: object + AgoraCall: + properties: + channel: + type: string + x-stream-index: "001" + required: + - channel + type: object + AnyEvent: + properties: + created_at: + format: date-time + type: string + x-stream-index: "001.002" + type: + default: custom + 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 + App: + properties: + agora_options: + $ref: '#/components/schemas/Config' + x-stream-index: "001.038" + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: "001.018" + async_url_enrich_enabled: + type: boolean + x-stream-index: "001.016" + auto_translation_enabled: + type: boolean + x-stream-index: "001.019" + before_message_send_hook_url: + type: string + x-stream-index: "001.020" + call_types: + additionalProperties: + $ref: '#/components/schemas/CallType' + type: object + x-stream-index: "001.006" + campaign_enabled: + type: boolean + x-stream-index: "001.033" + cdn_expiration_seconds: + format: int32 + type: integer + x-stream-index: "001.036" + channel_configs: + additionalProperties: + $ref: '#/components/schemas/ChannelConfig' + description: Object with channel configs + title: Channel configs + type: object + x-stream-index: "001.005" + x-stream-map: + key: channel_type + custom_action_handler_url: + type: string + x-stream-index: "001.021" + datadog_info: + $ref: '#/components/schemas/DataDogInfo' + x-stream-index: "001.041" + disable_auth_checks: + type: boolean + x-stream-index: "001.010" + disable_permissions_checks: + type: boolean + x-stream-index: "001.011" + enforce_unique_usernames: + type: string + x-stream-index: "001.022" + file_upload_config: + $ref: '#/components/schemas/FileUploadConfig' + x-stream-index: "001.029" + geofences: + items: + $ref: '#/components/schemas/GeofenceResponse' + type: array + x-stream-index: "001.040" + 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" + image_moderation_enabled: + type: boolean + x-stream-index: "001.015" + image_moderation_labels: + items: + type: string + type: array + x-stream-index: "001.017" + image_upload_config: + $ref: '#/components/schemas/FileUploadConfig' + x-stream-index: "001.030" + multi_tenant_enabled: + type: boolean + x-stream-index: "001.014" + name: + type: string + x-stream-index: "001.001" + organization: + type: string + x-stream-index: "001.002" + permission_version: + type: string + x-stream-index: "001.012" + policies: + additionalProperties: + items: + $ref: '#/components/schemas/Policy' + type: array + type: object + x-stream-index: "001.007" + push_notifications: + $ref: '#/components/schemas/PushNotificationFields' + x-stream-index: "001.003" + reminders_interval: + format: int32 + type: integer + x-stream-index: "001.035" + revoke_tokens_issued_before: + format: date-time + type: string + x-stream-index: "001.031" + sns_key: + type: string + x-stream-index: "001.027" + sns_secret: + type: string + x-stream-index: "001.028" + sns_topic_arn: + type: string + x-stream-index: "001.026" + sqs_key: + type: string + x-stream-index: "001.024" + sqs_secret: + type: string + x-stream-index: "001.025" + sqs_url: + type: string + x-stream-index: "001.023" + suspended: + type: boolean + x-stream-index: "001.008" + suspended_explanation: + type: string + x-stream-index: "001.009" + user_search_disallowed_roles: + items: + type: string + type: array + x-stream-index: "001.013" + video_provider: + type: string + x-stream-index: "001.037" + webhook_events: + items: + type: string + type: array + x-stream-index: "001.034" + webhook_url: + type: string + x-stream-index: "001.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 + - 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 + - webhook_events + - reminders_interval + - cdn_expiration_seconds + - video_provider + type: object + Attachment: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + 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" + 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) + title: Type + type: string + x-stream-index: "001" + required: + - Custom + title: Attachment + type: object + x-stream-docs-page-id: file_uploads + AttachmentRequest: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + actions: + items: + $ref: '#/components/schemas/ActionRequest' + 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" + fallback: + type: string + x-stream-index: "002" + fields: + items: + $ref: '#/components/schemas/FieldRequest' + 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/ImagesRequest' + 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) + title: Type + type: string + x-stream-index: "001" + 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" + 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 + BackstageSettings: + 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: "009" + banned_by_id: + description: User ID who issued a ban + title: Banned by ID + type: string + x-stream-index: "008" + id: + description: Channel ID to ban user in + title: ID + type: string + x-stream-index: "005" + ip_ban: + description: Whether to perform IP ban or not + title: IP ban + type: boolean + x-stream-index: "007" + 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: "006" + 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" + type: + description: Channel type to ban user in + title: Type + type: string + x-stream-index: "004" + 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: string + x-stream-index: "007" + expires: + format: date-time + type: string + 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 + type: string + x-stream-index: "002" + blocklist: + type: string + x-stream-index: "001" + required: + - blocklist + - behavior + 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 + Call: + properties: + agora: + $ref: '#/components/schemas/AgoraCall' + x-stream-index: "005" + hms: + $ref: '#/components/schemas/HMSCall' + x-stream-index: "004" + id: + type: string + x-stream-index: "002" + provider: + type: string + x-stream-index: "001" + type: + type: string + x-stream-index: "003" + required: + - provider + - id + - type + 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 + CallType: + nullable: true + properties: + AppPK: + format: int32 + type: integer + writeOnly: true + x-stream-index: "003" + CreatedAt: + format: date-time + type: string + 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: string + writeOnly: true + x-stream-index: "006" + required: + - PK + - AppPK + - Name + - CreatedAt + - UpdatedAt + - ExternalStorage + type: object + Channel: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + 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: string + x-stream-index: "009" + created_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "008" + deleted_at: + format: date-time + type: string + 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: string + 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: string + 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.023" + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: "001.018" + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: "001.019" + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: "001.024" + blocklist: + type: string + x-stream-index: "001.020" + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: "001.021" + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: "001.022" + 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: string + 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.017" + message_retention: + type: string + x-stream-index: "001.016" + mutes: + type: boolean + x-stream-index: "001.009" + name: + type: string + x-stream-index: "001.001" + 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: string + 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 + - message_retention + - max_message_length + - automod + - automod_behavior + - created_at + - updated_at + - commands + type: object + ChannelConfigRequest: + description: Channel configuration overrides + properties: + blocklist: + type: string + x-stream-index: "008" + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: "009" + commands: + items: + type: string + type: array + x-stream-index: "011" + grants: + additionalProperties: + items: + type: string + type: array + title: Grants + type: object + x-stream-index: "010" + x-stream-map: + description: List of grants modifiers that apply to a role + key: role + title: Grants + max_message_length: + description: Overrides max message length + format: int32 + maximum: 20000 + title: Max Message Length + type: integer + x-stream-index: "007" + quotes: + description: Enables message quotes + title: Quotes + type: boolean + x-stream-index: "004" + reactions: + description: Enables or disables reactions + title: Reactions + type: boolean + x-stream-index: "002" + replies: + description: Enables message replies (threads) + title: Replies + type: boolean + x-stream-index: "003" + typing_events: + description: Enables or disables typing events + title: Typing events + type: boolean + x-stream-index: "001" + uploads: + description: Enables or disables file uploads + title: Uploads + type: boolean + x-stream-index: "005" + url_enrichment: + description: Enables or disables URL enrichment + title: URL Enrichment + type: boolean + x-stream-index: "006" + type: object + ChannelConfigWithInfo: + properties: + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: 001.002.023 + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: 001.002.018 + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.002.019 + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: 001.002.024 + blocklist: + type: string + x-stream-index: 001.002.020 + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.002.021 + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: 001.002.022 + 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: string + 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: + description: List of grants modifiers that apply to a role + key: role + title: Grants + 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.017 + message_retention: + type: string + x-stream-index: 001.002.016 + mutes: + type: boolean + x-stream-index: 001.002.009 + name: + type: string + x-stream-index: 001.002.001 + 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: string + 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 + - message_retention + - max_message_length + - automod + - automod_behavior + - commands + type: object + ChannelCreatedEvent: + properties: + created_at: + format: date-time + type: string + 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: string + 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: string + 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: + connection_id: + 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" + data: + $ref: '#/components/schemas/ChannelRequest' + 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/PaginationParamsRequest' + x-stream-index: "011" + messages: + $ref: '#/components/schemas/MessagePaginationParamsRequest' + 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/PaginationParamsRequest' + 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: string + 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 + 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: string + 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: string + 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: string + x-stream-index: "011" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + invite_accepted_at: + description: Date when invite was accepted + format: date-time + title: Invited accepted at + type: string + x-stream-index: "008" + invite_rejected_at: + description: Date when invite was rejected + format: date-time + title: Invited rejected at + type: string + 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" + role: + description: 'Permission level of the member in the channel (DEPRECATED: + use channel_role instead)' + enum: + - member + - moderator + - admin + - owner + title: Role + type: string + x-stream-index: "019" + 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: string + 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 + ChannelMemberRequest: + nullable: true + properties: + ban_expires: + description: Expiration date of the ban + format: date-time + title: Ban expires + type: string + 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: string + x-stream-index: "011" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + invite_accepted_at: + description: Date when invite was accepted + format: date-time + title: Invited accepted at + type: string + x-stream-index: "008" + invite_rejected_at: + description: Date when invite was rejected + format: date-time + title: Invited rejected at + type: string + 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" + role: + description: 'Permission level of the member in the channel (DEPRECATED: + use channel_role instead)' + enum: + - member + - moderator + - admin + - owner + title: Role + type: string + x-stream-index: "019" + 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: string + x-stream-index: "012" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "005" + user_id: + title: User ID + type: string + x-stream-index: "004" + 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: string + x-stream-index: "009" + expires: + description: Date/time of mute expiration + format: date-time + title: Expires + type: string + x-stream-index: "008" + updated_at: + description: Date/time of the last update + format: date-time + title: Updated at + type: string + 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 + ChannelRequest: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "017" + 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/ChannelConfigRequest' + x-stream-index: "026" + disabled: + type: boolean + x-stream-index: "016" + frozen: + description: Freeze or unfreeze the channel + title: Frozen + type: boolean + x-stream-index: "015" + members: + items: + $ref: '#/components/schemas/ChannelMemberRequest' + 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 + ChannelResponse: + description: Represents channel in chat + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "029" + 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 (:) + 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: string + x-stream-index: "008" + created_by: + $ref: '#/components/schemas/UserObject' + description: Creator of the channel + title: Created by + x-stream-index: "011" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + 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: string + 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: string + 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: string + x-stream-index: "009" + required: + - id + - type + - cid + - 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: string + 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/Message' + 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/Message' + type: array + x-stream-index: "001.003" + read: + items: + $ref: '#/components/schemas/Read' + 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/UserObject' + 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: string + 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/Message' + 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/Message' + 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/Read' + 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/UserObject' + title: Watchers + type: array + x-stream-index: "005" + required: + - messages + - pinned_messages + - members + - threads + type: object + ChannelStopWatchingRequest: + nullable: true + properties: + connection_id: + type: string + x-stream-index: "001.003" + 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: string + 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: string + 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: string + 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: string + 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 + ChannelsResponse: + 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 + 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: string + 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: string + x-stream-index: "002" + required: + - name + - description + - args + - set + title: Command + 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 + ConnectRequest: + properties: + device: + $ref: '#/components/schemas/DeviceFields' + x-stream-index: "001.002" + user_details: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.001" + required: + - user_details + type: object + CreateCallRequest: + nullable: true + properties: + id: + type: string + x-stream-index: "004" + options: + type: object + x-stream-index: "005" + type: + enum: + - audio + - video + type: string + x-stream-index: "003" + user: + $ref: '#/components/schemas/UserObjectRequest' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "006.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: User ID + type: string + x-stream-index: "006.001" + required: + - type + - id + type: object + CreateCallResponse: + nullable: true + properties: + agora_app_id: + type: string + x-stream-index: "002.003" + agora_uid: + format: int32 + type: integer + x-stream-index: "002.002" + call: + $ref: '#/components/schemas/Call' + x-stream-index: "001" + duration: + description: Duration of the request in human-readable format + title: Duration + type: string + x-stream-index: "003.001" + token: + type: string + x-stream-index: "002.001" + required: + - token + - 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" + voip_token: + type: boolean + x-stream-index: "004" + type: object + DataDogInfo: + properties: + api_key: + type: string + x-stream-index: "001" + site: + type: string + x-stream-index: "002" + required: + - api_key + - site + 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" + 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 + Device: + nullable: true + properties: + created_at: + format: date-time + type: string + 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 + DeviceFields: + properties: + id: + description: Device ID + title: ID + type: string + x-stream-index: "004" + push_provider: + enum: + - firebase + - apn + - huawei + - xiaomi + title: Push provider + type: string + x-stream-index: "001" + push_provider_name: + description: Name of the push provider configuration + title: Push provider name + type: string + x-stream-index: "003" + voip: + type: boolean + x-stream-index: "005" + required: + - push_provider + - id + 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: + 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 + FieldRequest: + nullable: true + properties: + short: + type: boolean + x-stream-index: "003" + title: + type: string + x-stream-index: "001" + value: + type: string + x-stream-index: "002" + 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" + required: + - allowed_file_extensions + - blocked_file_extensions + - allowed_mime_types + - blocked_mime_types + type: object + FileUploadRequest: + nullable: true + properties: + file: + description: file field + title: File + type: string + x-stream-index: "002" + user: + $ref: '#/components/schemas/OnlyUserIDRequest' + 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 + 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: string + x-stream-index: "015" + created_at: + description: Date/time of creation + format: date-time + title: Created at + type: string + x-stream-index: "011" + created_by_automod: + type: boolean + x-stream-index: "004" + custom: + 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: string + x-stream-index: "016" + reviewed_at: + description: Date of the review + format: date-time + title: Reviewed at + type: string + x-stream-index: "013" + 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: string + 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: + 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: string + 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: + 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + GetApplicationResponse: + nullable: true + properties: + app: + $ref: '#/components/schemas/App' + 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 + GetCallTokenRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "002.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: User ID + type: string + x-stream-index: "002.001" + type: object + GetCallTokenResponse: + nullable: true + properties: + agora_app_id: + type: string + x-stream-index: "001.003" + agora_uid: + format: int32 + type: integer + x-stream-index: "001.002" + duration: + description: Duration of the request in human-readable format + title: Duration + type: string + x-stream-index: "002.001" + token: + type: string + x-stream-index: "001.001" + required: + - token + - 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 + GetOGResponse: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.018" + 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" + 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 + 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: + 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 + 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: + - duration + type: object + GuestRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "001" + required: + - user + type: object + GuestResponse: + nullable: true + properties: + access_token: + description: Authentication token to use for guest user + title: Access token + type: string + x-stream-index: "002" + duration: + type: string + x-stream-index: "003.001" + user: + $ref: '#/components/schemas/UserObject' + description: Created user object + title: User + x-stream-index: "001" + required: + - access_token + - 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 + HMSCall: + properties: + room_id: + type: string + x-stream-index: "001" + room_name: + type: string + x-stream-index: "002" + required: + - room_id + - room_name + type: object + HealthCheckEvent: + properties: + cid: + type: string + x-stream-index: "001" + created_at: + format: date-time + type: string + x-stream-index: "003.002" + me: + $ref: '#/components/schemas/OwnUser' + x-stream-index: "002" + type: + default: health.check + type: string + x-stream-index: "003.001" + required: + - cid + - 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + ImageDataRequest: + 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" + 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" + required: + - crop + - resize + - height + - width + title: Image size configuration + type: object + ImageSizeRequest: + 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/ImageSizeRequest' + title: Upload sizes + type: array + x-stream-index: "002" + user: + $ref: '#/components/schemas/OnlyUserIDRequest' + 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 + ImagesRequest: + properties: + fixed_height: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "002" + fixed_height_downsampled: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "004" + fixed_height_still: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "003" + fixed_width: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "005" + fixed_width_downsampled: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "007" + fixed_width_still: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "006" + original: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "001" + type: object + Label: + properties: + 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: + type: object + x-stream-index: "002" + required: + - name + - external_app_url + - external_css_url + 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 + MarkChannelsReadRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + 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/UserObjectRequest' + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - message_id + - thread_id + 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: string + 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: string + 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 + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "031" + 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: "043" + cid: + description: Channel unique identifier in : format + title: Channel CID + type: string + x-stream-index: "026" + 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: string + x-stream-index: "028" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + x-stream-index: "030" + deleted_reply_count: + format: int32 + type: integer + x-stream-index: "021" + 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: "041" + 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: "037" + 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: "040" + 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: "017" + pin_expires: + description: Date when pinned message expires + format: date-time + title: Pin expiration date + type: string + x-stream-docs-page-id: pinned_messages + x-stream-index: "048" + pinned: + description: Whether message is pinned or not + title: Pinned + type: boolean + x-stream-docs-page-id: pinned_messages + x-stream-index: "044" + pinned_at: + description: Date when message got pinned + format: date-time + title: Pinned at + type: string + x-stream-docs-page-id: pinned_messages + x-stream-index: "045" + 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: "047" + quoted_message: + $ref: '#/components/schemas/Message' + description: Contains quoted message + title: Quoted message + x-stream-docs-page-id: threads#quote-message + x-stream-index: "023" + quoted_message_id: + title: ID of quoted message + type: string + x-stream-docs-page-id: threads#quote-message + x-stream-index: "022" + 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_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: "020" + shadowed: + description: Whether the message was shadowed or not + title: Shadowed + type: boolean + x-stream-docs-page-id: moderation#shadow-ban + x-stream-index: "033" + 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: "019" + silent: + description: Whether message is silent or not + title: Silent + type: boolean + x-stream-index: "042" + 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: "025" + 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: string + x-stream-index: "029" + 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 + - 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: + ID: + type: string + writeOnly: true + x-stream-index: "001" + form_data: + additionalProperties: + type: string + description: ReadOnlyData to execute command with + title: Form data + type: object + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "003.002" + user_id: + type: string + x-stream-index: "003.001" + required: + - form_data + 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: string + 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: string + x-stream-index: "013" + created_at: + format: date-time + type: string + x-stream-index: "009" + created_by_automod: + type: boolean + x-stream-index: "001" + custom: + 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: string + x-stream-index: "014" + reviewed_at: + format: date-time + type: string + x-stream-index: "011" + reviewed_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "012" + updated_at: + format: date-time + type: string + 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: string + 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: string + 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: string + 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 + MessagePaginationParamsRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "008" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "007" + created_at_around: + format: date-time + type: string + x-stream-index: "012" + created_at_before: + format: date-time + type: string + x-stream-index: "010" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "009" + id_around: + type: string + x-stream-index: "011" + id_gt: + type: string + x-stream-index: "004" + id_gte: + type: string + x-stream-index: "003" + id_lt: + type: string + x-stream-index: "006" + id_lte: + type: string + x-stream-index: "005" + 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: string + 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/AttachmentRequest' + maximum: 30 + type: array + x-stream-index: "004" + custom: + 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" + parent_id: + type: string + x-stream-index: "005" + pin_expires: + format: date-time + type: string + x-stream-index: "015" + pinned: + type: boolean + x-stream-index: "013" + pinned_at: + format: date-time + nullable: true + type: string + x-stream-index: "014" + 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" + required: + - attachments + type: object + MessageResponse: + 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/Message' + x-stream-index: "001" + required: + - duration + 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: string + 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 + MessageWithPendingMetadataResponse: + nullable: true + properties: + duration: + type: string + x-stream-index: 001.002.001 + message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.001" + pending_message_metadata: + additionalProperties: + type: string + description: Metadata attached to a message while it is pending + title: Pending message metadata + type: object + x-stream-index: "002" + required: + - duration + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - channel_cids + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - target_ids + 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 + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + x-stream-index: "001.002" + first_unread_message_id: + type: string + x-stream-index: "005" + last_read_at: + format: date-time + type: string + 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: string + 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: string + 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: string + 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 + 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 + OnlyUserIDRequest: + properties: + id: + type: string + x-stream-index: "001" + required: + - id + type: object + OwnUser: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + banned: + type: boolean + x-stream-index: "014" + channel_mutes: + items: + $ref: '#/components/schemas/ChannelMute' + type: array + x-stream-index: "026" + created_at: + format: date-time + type: string + x-stream-index: "007" + deactivated_at: + format: date-time + type: string + x-stream-index: "012" + deleted_at: + format: date-time + type: string + x-stream-index: "011" + devices: + items: + $ref: '#/components/schemas/Device' + type: array + x-stream-index: "024" + id: + type: string + x-stream-index: "003" + invisible: + type: boolean + x-stream-index: "021" + language: + type: string + x-stream-index: "031" + last_active: + format: date-time + type: string + x-stream-index: "010" + latest_hidden_channels: + items: + type: string + type: array + x-stream-index: "033" + mutes: + items: + $ref: '#/components/schemas/UserMute' + type: array + x-stream-index: "025" + online: + type: boolean + x-stream-index: "020" + 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: "032" + total_unread_count: + format: int32 + type: integer + x-stream-index: "028" + unread_channels: + format: int32 + type: integer + x-stream-index: "029" + unread_count: + format: int32 + type: integer + x-stream-index: "027" + unread_threads: + format: int32 + type: integer + x-stream-index: "030" + updated_at: + format: date-time + type: string + 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 + PaginationParamsRequest: + properties: + id_gt: + format: int32 + type: integer + x-stream-index: "004" + id_gte: + format: int32 + type: integer + x-stream-index: "003" + id_lt: + format: int32 + type: integer + x-stream-index: "006" + id_lte: + format: int32 + type: integer + x-stream-index: "005" + 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 + Policy: + properties: + action: + type: integer + x-stream-index: "007" + created_at: + format: date-time + type: string + 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: string + x-stream-index: "011" + required: + - name + - resources + - roles + - action + - owner + - priority + - created_at + - updated_at + 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: string + x-stream-index: "002" + type: object + PushNotificationSettingsRequest: + properties: + disabled: + type: boolean + x-stream-index: "001" + disabled_until: + format: date-time + type: string + 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: string + x-stream-index: "008" + description: + maxLength: 128 + type: string + x-stream-index: "007" + disabled_at: + format: date-time + type: string + 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: integer + x-stream-index: "006" + updated_at: + format: date-time + type: string + 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 + QueryBannedUsersRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "003.006" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "003.005" + created_at_before: + format: date-time + type: string + x-stream-index: "003.008" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "003.007" + exclude_expired_bans: + type: boolean + x-stream-index: "006" + filter_conditions: + 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/UserObject' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "007.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: 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 + QueryChannelsRequest: + nullable: true + properties: + connection_id: + 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" + filter_conditions: + 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/SortParamRequest' + 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/UserObjectRequest' + x-stream-index: "010.002" + user_id: + type: string + x-stream-index: "010.001" + 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 + QueryMembersRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "006.010" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "006.009" + created_at_before: + format: date-time + type: string + x-stream-index: "006.012" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "006.011" + filter_conditions: + 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/UserObject' + x-stream-index: "007.002" + user_id: + type: string + x-stream-index: "007.001" + user_id_gt: + type: string + x-stream-index: "006.006" + user_id_gte: + type: string + x-stream-index: "006.005" + user_id_lt: + type: string + x-stream-index: "006.008" + user_id_lte: + type: string + x-stream-index: "006.007" + required: + - type + - filter_conditions + type: object + QueryMessageFlagsRequest: + properties: + filter_conditions: + 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/UserObject' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "004.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: 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 + QueryThreadsRequest: + nullable: true + properties: + connection_id: + type: string + 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" + 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: "005.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 + QueryUsersRequest: + properties: + connection_id: + description: Websocket connection ID to interact with. You can pass it as + Body or URL parameter + title: Connection ID + type: string + x-stream-index: "006.003" + filter_conditions: + description: User filters + title: Filter conditions + type: object + x-stream-docs-page-id: query_users + x-stream-index: "001" + id_gt: + type: string + x-stream-index: "004.006" + id_gte: + type: string + x-stream-index: "004.005" + id_lt: + type: string + x-stream-index: "004.008" + id_lte: + type: string + x-stream-index: "004.007" + limit: + format: int32 + maximum: 100 + minimum: 0 + type: integer + x-stream-index: "004.003" + offset: + format: int32 + maximum: 1000 + type: integer + x-stream-index: "004.004" + presence: + description: Request user presence status + title: Presence + type: boolean + x-stream-index: "003" + sort: + description: Array of sort parameters + items: + $ref: '#/components/schemas/SortParam' + maximum: 5 + title: Sort + type: array + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "005.002" + user_id: + type: string + x-stream-index: "005.001" + required: + - filter_conditions + type: object + Reaction: + description: Represents user reaction to a message + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "010" + created_at: + description: Date/time of creation + format: date-time + readOnly: true + title: Created at + type: string + x-stream-index: "008" + 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: string + 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: string + 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 + 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: string + 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: + description: Represents user reaction to a message + properties: + Custom: + type: object + writeOnly: true + 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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: + - type + title: Reaction + type: object + x-stream-docs-page-id: send_reaction + ReactionResponse: + 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 + 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: string + 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: string + 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 + 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 + 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 + 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 + SearchRequest: + properties: + filter_conditions: + 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: + 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: + nullable: true + properties: + message: + $ref: '#/components/schemas/SearchResultMessage' + description: Found message + title: Message + x-stream-index: "001" + type: object + SearchResultMessage: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.031" + attachments: + items: + $ref: '#/components/schemas/Attachment' + type: array + x-stream-index: "001.011" + before_message_send_failed: + type: boolean + x-stream-index: "001.043" + channel: + $ref: '#/components/schemas/ChannelResponse' + description: Channel object + title: Channel + x-stream-index: "002" + cid: + type: string + x-stream-index: "001.026" + command: + type: string + x-stream-index: "001.006" + created_at: + format: date-time + type: string + x-stream-index: "001.028" + deleted_at: + format: date-time + type: string + x-stream-index: "001.030" + deleted_reply_count: + format: int32 + type: integer + x-stream-index: "001.021" + html: + type: string + x-stream-index: "001.007" + i18n: + additionalProperties: + type: string + type: object + x-stream-index: "001.041" + id: + type: string + x-stream-index: "001.002" + image_labels: + additionalProperties: + items: + type: string + type: array + type: object + x-stream-index: "001.037" + 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.040" + 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.017" + pin_expires: + format: date-time + type: string + x-stream-index: "001.048" + pinned: + type: boolean + x-stream-index: "001.044" + pinned_at: + format: date-time + type: string + x-stream-index: "001.045" + pinned_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.047" + quoted_message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.023" + quoted_message_id: + type: string + x-stream-index: "001.022" + reaction_counts: + additionalProperties: + format: int32 + type: integer + type: object + x-stream-index: "001.014" + reaction_scores: + additionalProperties: + format: int32 + type: integer + type: object + x-stream-index: "001.015" + reply_count: + format: int32 + type: integer + x-stream-index: "001.020" + shadowed: + type: boolean + x-stream-index: "001.033" + show_in_channel: + type: boolean + x-stream-index: "001.019" + silent: + type: boolean + x-stream-index: "001.042" + text: + type: string + x-stream-index: "001.004" + thread_participants: + items: + $ref: '#/components/schemas/UserObject' + type: array + x-stream-index: "001.025" + type: + type: string + x-stream-index: "001.008" + updated_at: + format: date-time + type: string + x-stream-index: "001.029" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.010" + required: + - id + - text + - html + - type + - 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 + 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 + SendMessageRequest: + nullable: true + properties: + 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/Message' + 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: + ID: + type: string + writeOnly: true + x-stream-index: "001" + 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 + ShowChannelRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + 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 + 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" + connection_id: + type: string + x-stream-index: "006.003" + last_sync_at: + description: Date from which synchronization should happen + format: date-time + title: Last sync at + type: string + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "005.002" + user_id: + type: string + x-stream-index: "005.001" + watch: + 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" + with_inaccessible_cids: + description: If set to true this will add 'inaccessible_cids' to response + type + title: With inaccessible CIDs + type: boolean + x-stream-index: "003" + required: + - 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 + - bitrate + type: object + Thread: + description: Represents a conversation thread linked to a specific message in + a channel. + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "009" + 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: string + x-stream-index: "007" + left_thread_at: + description: Left Thread At is the time when the user left the thread + format: date-time + title: Left Thread At + type: string + 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 + - 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: string + 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: + type: object + x-stream-index: "015" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + last_message_at: + format: date-time + type: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "001.017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + x-stream-index: "001.014" + required: + - channel_cid + - parent_message_id + - created_at + - updated_at + - title + - Custom + - latest_replies + title: Thread + type: object + ThreadStateResponse: + nullable: true + 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: string + 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: + type: object + x-stream-index: "001.015" + deleted_at: + format: date-time + type: string + x-stream-index: "001.013" + last_message_at: + format: date-time + type: string + 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: string + 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: string + 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 + ThumbnailsSettings: + properties: + enabled: + type: boolean + x-stream-index: "001" + required: + - enabled + 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 + 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: string + 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 + 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: string + 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: string + 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 + UnmuteChannelRequest: + nullable: true + properties: + channel_cid: + type: string + x-stream-index: "001.001" + channel_cids: + items: + type: string + maximum: 25 + type: array + x-stream-index: "001.002" + expiration: + type: integer + x-stream-index: "001.003" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "002.002" + user_id: + type: string + x-stream-index: "002.001" + required: + - channel_cid + - channel_cids + 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_id: + type: string + x-stream-index: "001.001" + target_ids: + items: + type: string + maximum: 1000 + type: array + x-stream-index: "001.002" + timeout: + minimum: 0 + type: integer + x-stream-index: "001.003" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "002.002" + user_id: + type: string + x-stream-index: "002.001" + required: + - target_id + - target_ids + type: object + UnreadCountsChannel: + properties: + channel_id: + type: string + x-stream-index: "001" + last_read: + format: date-time + type: string + 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" + duration: + description: Duration of the request in human-readable format + title: Duration + type: string + x-stream-index: "006.001" + 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 + - duration + type: object + UnreadCountsThread: + properties: + last_read: + format: date-time + type: string + 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 + UpdateChannelPartialRequest: + nullable: true + properties: + set: + type: object + x-stream-index: "002.001" + unset: + items: + type: string + type: array + x-stream-index: "002.002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "003.002" + user_id: + type: string + x-stream-index: "003.001" + required: + - set + - unset + 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/ChannelMemberRequest' + 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/ChannelMemberRequest' + 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/ChannelRequest' + 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/ChannelMemberRequest' + 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" + required: + - remove_members + - add_moderators + - demote_moderators + 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: + description: Sets new field values + title: Set + type: object + x-stream-index: "002.001" + x-stream-map: + description: New value to set + key: field + title: Value + 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" + required: + - set + - unset + 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: + - message + - 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 + UpdateThreadPartialRequest: + nullable: true + properties: + ID: + type: string + writeOnly: true + x-stream-index: "001" + set: + type: object + x-stream-index: "004.001" + unset: + items: + type: string + type: array + x-stream-index: "004.002" + required: + - set + - unset + 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: + - duration + type: object + UpdateUserPartialRequest: + nullable: true + properties: + id: + description: User ID to update + title: ID + type: string + x-stream-index: "001" + set: + type: object + x-stream-index: "002.001" + unset: + items: + type: string + type: array + x-stream-index: "002.002" + required: + - id + - set + - unset + type: object + UpdateUsersRequest: + nullable: true + properties: + users: + additionalProperties: + $ref: '#/components/schemas/UserObjectRequest' + 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: "002.001" + users: + additionalProperties: + $ref: '#/components/schemas/UserObject' + description: Object containing users + title: Users + type: object + x-stream-index: "001" + x-stream-map: + key: user_id + required: + - users + - duration + type: object + 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: string + x-stream-index: "008.002" + created_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001" + expiration: + format: date-time + type: string + 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: string + 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: string + 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 + UserMute: + nullable: true + properties: + created_at: + description: Date/time of creation + format: date-time + title: Created at + type: string + x-stream-index: "009" + expires: + description: Date/time of mute expiration + format: date-time + title: Expires + type: string + 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: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + ban_expires: + description: Expiration date of the ban + format: date-time + title: Ban expires + type: string + 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: string + x-stream-index: "007" + deactivated_at: + description: Date of deactivation + format: date-time + readOnly: true + title: Deactivated at + type: string + x-stream-index: "012" + deleted_at: + description: Date/time of deletion + format: date-time + readOnly: true + title: Deleted at + type: string + 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: "031" + last_active: + description: Date of last activity + format: date-time + readOnly: true + title: Last active + type: string + x-stream-index: "010" + online: + description: Whether a user online or not + readOnly: true + title: Online + type: boolean + x-stream-index: "020" + 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: string + x-stream-index: "038" + 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: "032" + updated_at: + description: Date/time of the last update + format: date-time + readOnly: true + title: Updated at + type: string + x-stream-index: "008" + required: + - id + - role + - Custom + - banned + - online + title: User object + type: object + UserObjectRequest: + description: Represents chat user + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + ban_expires: + description: Expiration date of the ban + format: date-time + title: Ban expires + type: string + x-stream-index: "015" + banned: + description: Whether a user is banned or not + title: Banned + type: boolean + x-stream-index: "014" + 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: "031" + push_notifications: + $ref: '#/components/schemas/PushNotificationSettingsRequest' + x-stream-index: "023" + revoke_tokens_issued_before: + description: Revocation date for tokens + format: date-time + title: Revoke tokens issued before + type: string + x-stream-index: "038" + 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: "032" + required: + - id + title: User object + type: object + UserPresenceChangedEvent: + properties: + created_at: + format: date-time + type: string + 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: string + 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: + 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" + language: + type: string + x-stream-index: "005" + name: + description: Optional name of user + title: Name + type: string + x-stream-index: "002" + required: + - id + type: object + UserResponse: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.005" + ban_expires: + format: date-time + type: string + x-stream-index: "001.015" + banned: + type: boolean + x-stream-index: "001.014" + created_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.007" + deactivated_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.012" + deleted_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.011" + id: + type: string + x-stream-index: "001.003" + invisible: + type: boolean + x-stream-index: "001.021" + language: + type: string + x-stream-index: "001.031" + last_active: + format: date-time + readOnly: true + type: string + x-stream-index: "001.010" + online: + readOnly: true + type: boolean + x-stream-index: "001.020" + push_notifications: + $ref: '#/components/schemas/PushNotificationSettings' + x-stream-index: "001.023" + revoke_tokens_issued_before: + format: date-time + type: string + x-stream-index: "001.038" + role: + type: string + x-stream-index: "001.004" + shadow_banned: + description: Whether user is shadow banned or not + title: Shadow banned + type: boolean + x-stream-index: "002" + teams: + items: + type: string + type: array + x-stream-index: "001.032" + updated_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.008" + required: + - id + - role + - Custom + - banned + - online + - shadow_banned + 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: string + 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: string + 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: string + 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: string + 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 + UsersResponse: + nullable: true + properties: + duration: + type: string + x-stream-index: "002.001" + users: + description: List of found users + items: + $ref: '#/components/schemas/UserResponse' + title: Users + type: array + x-stream-index: "001" + required: + - users + - duration + 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 + WSEvent: + description: The discriminator object for all websocket events, it maps events' + payload to the final type + discriminator: + mapping: + 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' + custom: '#/components/schemas/AnyEvent' + 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.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' + 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/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/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/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/ReactionDeletedEvent' + - $ref: '#/components/schemas/ReactionNewEvent' + - $ref: '#/components/schemas/ReactionUpdatedEvent' + - $ref: '#/components/schemas/ThreadUpdatedEvent' + - $ref: '#/components/schemas/TypingStartEvent' + - $ref: '#/components/schemas/TypingStopEvent' + - $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' + 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 + connectRequestQueryRequest: + nullable: true + type: object + securitySchemes: + JWT: + description: | + JWT should be always provided when stream-auth-type=jwt. + + Using JWT auth request could be authenticated as user or as server-side. + + When using user authentication permission checking is going to be applied to requests based on the user that is + performing a request. + + The `authorization` header should be a JWT string signed using the secret attached to the API key used to perform + requests. + + **WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not + shared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side. + If you wish, you can configure your application to ignore authentication (see `disable_auth_check`) + The JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well. + 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 + values: `jwt` or `anonymous`. + + `jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization + header. + + `anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available + to anonymous users. + in: header + name: Stream-Auth-Type + type: apiKey +info: + title: Stream API + version: v98.0.2-message-blocked-event.1 +openapi: 3.0.3 +paths: + /app: + get: + description: | + This Method returns the application settings + 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: + - Settings + /calls: + post: + description: | + Retrieves the token to join a call + + Required permissions: + - JoinCall + - ReadChannel + operationId: GetCallToken + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetCallTokenRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/GetCallTokenResponse' + 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 Token + /calls/{call_id}: + post: + description: | + Retrieves the token to join a call + + Required permissions: + - JoinCall + - ReadChannel + operationId: GetCallToken + parameters: + - in: path + name: call_id + required: true + schema: + type: string + writeOnly: true + x-stream-index: "001" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetCallTokenRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/GetCallTokenResponse' + 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 Token + /channels: + post: + description: | + Query channels with filter query + + Required permissions: + - ReadChannel + 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/ChannelsResponse' + 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: + - Channels + /channels/{type}/{id}: + delete: + description: | + Deletes channel + + Sends events: + - channel.deleted + + Required permissions: + - DeleteChannel + 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: + - Channels + patch: + description: | + Updates certain fields of the channel + + Sends events: + - channel.updated + + Required permissions: + - UpdateChannel + - UpdateChannelCooldown + - UpdateChannelFrozen + 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: + - Channels + post: + description: | + Change channel data + + Sends events: + - channel.updated + - member.added + - member.removed + - member.updated + - message.new + + Required permissions: + - AddOwnChannelMembership + - RemoveOwnChannelMembership + - UpdateChannel + - UpdateChannelCooldown + - UpdateChannelFrozen + - UpdateChannelMembers + 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: + - Channels + /channels/{type}/{id}/call: + post: + description: | + Creates a call + + Required permissions: + - CreateCall + - ReadChannel + operationId: CreateCall + parameters: + - in: path + name: type + required: true + schema: + type: string + writeOnly: true + x-stream-index: "001" + - in: path + name: id + required: true + schema: + type: string + writeOnly: true + x-stream-index: "002" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCallRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateCallResponse' + 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 a call + /channels/{type}/{id}/event: + post: + description: | + Sends event to the channel + + Required permissions: + - SendCustomEvent + 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: + - Events + /channels/{type}/{id}/file: + delete: + description: | + Deletes previously uploaded file + + Required permissions: + - DeleteAttachment + 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: + - Messages + - Files + post: + description: | + Uploads file + + Required permissions: + - UploadAttachment + 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: + - Messages + - Files + /channels/{type}/{id}/hide: + post: + description: | + Marks channel as hidden for current user + + Sends events: + - channel.hidden + + Required permissions: + - ReadChannel + 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: + - Channels + /channels/{type}/{id}/image: + delete: + description: | + Deletes previously uploaded image + + Required permissions: + - DeleteAttachment + 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: + - Messages + - Files + post: + description: | + Uploads image + + Required permissions: + - UploadAttachment + 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: + - Messages + - Files + /channels/{type}/{id}/message: + post: + description: | + Sends new message to the specified channel + + Sends events: + - message.new + - message.updated + + Required permissions: + - AddLinks + - CreateMessage + - PinMessage + - SkipChannelCooldown + - SkipMessageModeration + - UseFrozenChannel + 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: + - Messages + /channels/{type}/{id}/messages: + get: + description: | + Returns list messages found by IDs + + Required permissions: + - ReadChannel + 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 + schema: + description: List of comma-separated IDs + items: + type: string + maximum: 50 + minimum: 1 + title: IDs + type: array + 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: + - Messages + /channels/{type}/{id}/query: + post: + description: | + This Method creates a channel or returns an existing one with matching attributes + + Sends events: + - channel.created + - member.added + - member.removed + - member.updated + - user.watching.start + 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: + - Channels + /channels/{type}/{id}/read: + post: + description: | + Marks channel as read up to the specific message + + Sends events: + - message.read + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /channels/{type}/{id}/show: + post: + description: | + Shows previously hidden channel + + Sends events: + - channel.visible + operationId: ShowChannel + 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/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: + - Channels + /channels/{type}/{id}/stop-watching: + post: + description: | + Call this Method to stop receiving channel events + + Sends events: + - user.watching.stop + 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: + - Channels + /channels/{type}/{id}/truncate: + post: + description: | + Truncates channel + + Sends events: + - channel.truncated + + Required permissions: + - DeleteChannel + - TruncateChannel + 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: + - Channels + /channels/{type}/{id}/unread: + post: + description: | + Marks channel as unread from a specific message + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /channels/{type}/query: + post: + description: | + This Method creates a channel or returns an existing one with matching attributes + + Sends events: + - channel.created + - member.added + - member.removed + - member.updated + - user.watching.start + 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: 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: + - Channels + /channels/delete: + post: + description: | + Allows to delete several channels at once asynchronously + + Sends events: + - channel.deleted + + Required permissions: + - DeleteChannel + 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: + - Channels + - GDPR + /channels/read: + post: + description: | + Marks channels as read up to the specific message. If no channels is given, mark all channel as read + + Sends events: + - message.read + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /connect: + get: + description: | + Establishes WebSocket connection for user + + Sends events: + - user.updated + operationId: Connect + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/ConnectRequest' + x-stream-index: "001" + in: query + name: json + 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: Connect (WebSocket) + tags: + - Users + /devices: + delete: + description: | + Deletes one device + 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 + summary: Delete device + tags: + - Devices + get: + description: | + Returns all available devices + 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: + - Devices + post: + description: | + Adds a new device to a user, if the same device already exists the call will have no effect + operationId: CreateDevice + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDeviceRequest' + 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 + summary: Create device + tags: + - Devices + - Push + /guest: + post: + description: | + Creates guest user + operationId: CreateGuest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GuestRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/GuestResponse' + 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: + - Users + /longpoll: + get: + description: | + WebSocket fallback transport endpoint + + Sends events: + - user.updated + operationId: LongPoll + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/ConnectRequest' + 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: + - Users + /members: + get: + description: | + Find and filter channel members + + Required permissions: + - ReadChannel + 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: + - Channels + /messages/{id}: + delete: + description: | + Deletes message + + Sends events: + - message.deleted + + Required permissions: + - DeleteMessage + 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/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: Delete message + tags: + - Messages + get: + description: | + Returns message by ID + + Required permissions: + - ReadChannel + operationId: GetMessage + parameters: + - in: path + name: id + required: true + schema: + description: Message ID + title: ID + type: string + writeOnly: true + x-stream-index: "001" + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/MessageWithPendingMetadataResponse' + 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: + - Messages + post: + description: | + Updates message with new data + + Sends events: + - message.updated + + Required permissions: + - AddLinks + - PinMessage + - SkipMessageModeration + - UpdateMessage + 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: + - Messages + put: + description: | + Updates certain fields of the message + + Sends events: + - message.updated + + Required permissions: + - AddLinks + - PinMessage + - SkipMessageModeration + - UpdateMessage + 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: + - Messages + /messages/{id}/action: + post: + description: | + Executes message command action with given parameters + + Sends events: + - message.new + + Required permissions: + - RunMessageAction + 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: + - Messages + /messages/{id}/reaction: + post: + description: | + Sends reaction to specified message + + Sends events: + - reaction.new + - reaction.updated + + Required permissions: + - CreateReaction + - UseFrozenChannel + 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/ReactionResponse' + 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: + - Messages + - Reactions + /messages/{id}/reaction/{type}: + delete: + description: | + Removes user reaction from the message + + Sends events: + - reaction.deleted + + Required permissions: + - DeleteReaction + 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: + - Messages + - Reactions + /messages/{id}/reactions: + get: + description: | + Returns list of reactions of specific message + + Required permissions: + - ReadChannel + 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: + - Messages + - Reactions + /messages/{id}/translate: + post: + description: | + Translates message to a given language using automated translation software + + Sends events: + - message.updated + + Required permissions: + - ReadChannel + 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: + - Messages + /messages/{parent_id}/replies: + get: + description: | + Returns replies (thread) of the message + + Required permissions: + - ReadChannel + operationId: GetReplies + parameters: + - in: path + name: parent_id + required: true + schema: + description: ID of a message which replies to return + title: Parent ID + type: string + writeOnly: true + x-stream-index: "001" + - in: query + name: id_gte + schema: + type: string + x-stream-index: 002.001.003 + - in: query + name: id_gt + schema: + type: string + x-stream-index: 002.001.004 + - in: query + name: id_lte + schema: + type: string + x-stream-index: 002.001.005 + - in: query + name: id_lt + schema: + type: string + x-stream-index: 002.001.006 + - in: query + name: created_at_after_or_equal + schema: + format: date-time + type: string + x-stream-index: 002.001.007 + - in: query + name: created_at_after + schema: + format: date-time + type: string + x-stream-index: 002.001.008 + - in: query + name: created_at_before_or_equal + schema: + format: date-time + type: string + x-stream-index: 002.001.009 + - in: query + name: created_at_before + schema: + format: date-time + type: string + x-stream-index: 002.001.010 + - in: query + name: id_around + schema: + type: string + x-stream-index: 002.001.011 + - in: query + name: created_at_around + schema: + format: date-time + type: string + x-stream-index: 002.001.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: + - Messages + /moderation/ban: + delete: + description: | + Removes previously applied ban + + Sends events: + - user.unbanned + + Required permissions: + - BanChannelMember + - BanUser + operationId: Unban + parameters: + - in: query + name: target_user_id + schema: + type: string + x-stream-index: "001" + - in: query + name: type + schema: + type: string + x-stream-index: "002" + - in: query + name: id + schema: + type: string + x-stream-index: "003" + - in: query + name: created_by + schema: + type: string + x-stream-index: "004" + 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: + - Users + - Moderation + post: + description: | + Restricts user activity either in specific channel or globally + + Sends events: + - user.banned + + Required permissions: + - BanChannelMember + - BanUser + 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: + - Users + - Moderation + /moderation/flag: + post: + description: | + Reports message or user for review by moderators + + Sends events: + - message.flagged + - user.flagged + + Required permissions: + - FlagMessage + - FlagUser + 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: + - Moderation + - Messages + - Users + /moderation/flags/message: + get: + description: | + Find and filter message flags + + Required permissions: + - ReadMessageFlags + 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: + - Messages + - Moderation + /moderation/mute: + post: + description: | + Mutes one or several users + + Sends events: + - user.muted + + Required permissions: + - MuteUser + 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: + - Users + - Moderation + /moderation/mute/channel: + post: + description: | + Mutes channel for user + + Sends events: + - channel.muted + + Required permissions: + - MuteChannel + 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: + - Channels + /moderation/unmute: + post: + description: | + Unmutes previously muted user + + Sends events: + - user.unmuted + + Required permissions: + - MuteUser + 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: + - Users + - Moderation + /moderation/unmute/channel: + post: + description: | + Unmutes channel for user + + Sends events: + - channel.unmuted + + Required permissions: + - MuteChannel + 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: + - Channels + /og: + get: + description: | + Get an OpenGraph attachment for a link + operationId: GetOG + parameters: + - in: query + name: url + 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: + - Messages + /query_banned_users: + get: + description: | + Find and filter channel scoped or global user bans + + Required permissions: + - ReadChannel + 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: + - Users + - Moderation + /search: + get: + description: | + Search messages across channels + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /sync: + post: + description: | + Returns all events happened since client disconnect in specified channels + + Required permissions: + - ReadChannel + 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: + - Channels + - Events + /threads: + post: + description: | + Returns the list of threads for specific user + + Required permissions: + - ReadChannel + 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: + - Threads + /threads/{message_id}: + get: + description: | + Return a specific thread + + Required permissions: + - ReadChannel + 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" + 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: + - Threads + patch: + description: | + Updates certain fields of the thread + + Sends events: + - thread.updated + + Required permissions: + - ReadChannel + - UpdateThread + 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: + - Threads + - Channels + /unread: + get: + description: | + UnreadCount counts + operationId: UnreadCounts + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/UnreadCountsResponse' + 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: UnreadCount counts + tags: + - Channels + /users: + get: + description: | + Find and filter users + + Required permissions: + - SearchUser + operationId: QueryUsers + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/QueryUsersRequest' + x-stream-index: "001" + in: query + name: payload + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/UsersResponse' + 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: + - Users + patch: + description: | + Updates certain fields of the user + + Sends events: + - user.presence.changed + - user.updated + operationId: UpdateUsersPartial + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateUserPartialRequest' + 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: + - Users + post: + description: | + Update or create users in bulk + + Sends events: + - user.updated + 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: + - Users +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/openapi/chat-openapi.json b/openapi/chat-openapi.json new file mode 100644 index 00000000..5079d4ca --- /dev/null +++ b/openapi/chat-openapi.json @@ -0,0 +1 @@ +{"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"},"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"},"APNConfigRequest":{"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"},"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"},"ActionRequest":{"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"}},"type":"object"},"AgoraCall":{"properties":{"channel":{"type":"string","x-stream-index":"001"}},"required":["channel"],"type":"object"},"App":{"properties":{"agora_options":{"$ref":"#/components/schemas/Config","x-stream-index":"001.038"},"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.018"},"async_url_enrich_enabled":{"type":"boolean","x-stream-index":"001.016"},"auto_translation_enabled":{"type":"boolean","x-stream-index":"001.019"},"before_message_send_hook_url":{"type":"string","x-stream-index":"001.020"},"call_types":{"additionalProperties":{"$ref":"#/components/schemas/CallType"},"type":"object","x-stream-index":"001.006"},"campaign_enabled":{"type":"boolean","x-stream-index":"001.033"},"cdn_expiration_seconds":{"format":"int32","type":"integer","x-stream-index":"001.036"},"channel_configs":{"additionalProperties":{"$ref":"#/components/schemas/ChannelConfig"},"description":"Object with channel configs","title":"Channel configs","type":"object","x-stream-index":"001.005","x-stream-map":{"key":"channel_type"}},"custom_action_handler_url":{"type":"string","x-stream-index":"001.021"},"datadog_info":{"$ref":"#/components/schemas/DataDogInfo","x-stream-index":"001.041"},"disable_auth_checks":{"type":"boolean","x-stream-index":"001.010"},"disable_permissions_checks":{"type":"boolean","x-stream-index":"001.011"},"enforce_unique_usernames":{"type":"string","x-stream-index":"001.022"},"file_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.029"},"geofences":{"items":{"$ref":"#/components/schemas/GeofenceResponse"},"type":"array","x-stream-index":"001.040"},"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"},"image_moderation_enabled":{"type":"boolean","x-stream-index":"001.015"},"image_moderation_labels":{"items":{"type":"string"},"type":"array","x-stream-index":"001.017"},"image_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.030"},"multi_tenant_enabled":{"type":"boolean","x-stream-index":"001.014"},"name":{"type":"string","x-stream-index":"001.001"},"organization":{"type":"string","x-stream-index":"001.002"},"permission_version":{"type":"string","x-stream-index":"001.012"},"policies":{"additionalProperties":{"items":{"$ref":"#/components/schemas/Policy"},"type":"array"},"type":"object","x-stream-index":"001.007"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationFields","x-stream-index":"001.003"},"reminders_interval":{"format":"int32","type":"integer","x-stream-index":"001.035"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.031"},"sns_key":{"type":"string","x-stream-index":"001.027"},"sns_secret":{"type":"string","x-stream-index":"001.028"},"sns_topic_arn":{"type":"string","x-stream-index":"001.026"},"sqs_key":{"type":"string","x-stream-index":"001.024"},"sqs_secret":{"type":"string","x-stream-index":"001.025"},"sqs_url":{"type":"string","x-stream-index":"001.023"},"suspended":{"type":"boolean","x-stream-index":"001.008"},"suspended_explanation":{"type":"string","x-stream-index":"001.009"},"user_search_disallowed_roles":{"items":{"type":"string"},"type":"array","x-stream-index":"001.013"},"video_provider":{"type":"string","x-stream-index":"001.037"},"webhook_events":{"items":{"type":"string"},"type":"array","x-stream-index":"001.034"},"webhook_url":{"type":"string","x-stream-index":"001.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","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","webhook_events","reminders_interval","cdn_expiration_seconds","video_provider"],"type":"object"},"AsyncModerationCallbackConfigRequest":{"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"},"AsyncModerationConfigurationRequest":{"properties":{"callback":{"$ref":"#/components/schemas/AsyncModerationCallbackConfigRequest","x-stream-index":"002"},"timeout_ms":{"format":"int32","type":"integer","x-stream-index":"001"}},"type":"object"},"Attachment":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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"},"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)","title":"Type","type":"string","x-stream-index":"001"}},"required":["Custom"],"title":"Attachment","type":"object","x-stream-docs-page-id":"file_uploads"},"AttachmentRequest":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"actions":{"items":{"$ref":"#/components/schemas/ActionRequest"},"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"},"fallback":{"type":"string","x-stream-index":"002"},"fields":{"items":{"$ref":"#/components/schemas/FieldRequest"},"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/ImagesRequest","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)","title":"Type","type":"string","x-stream-index":"001"}},"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"},"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"},"BackstageSettings":{"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":"009"},"banned_by_id":{"description":"User ID who issued a ban","title":"Banned by ID","type":"string","x-stream-index":"008"},"id":{"description":"Channel ID to ban user in","title":"ID","type":"string","x-stream-index":"005"},"ip_ban":{"description":"Whether to perform IP ban or not","title":"IP ban","type":"boolean","x-stream-index":"007"},"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":"006"},"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"},"type":{"description":"Channel type to ban user in","title":"Type","type":"string","x-stream-index":"004"},"user":{"$ref":"#/components/schemas/UserRequest","x-stream-index":"010.002"},"user_id":{"type":"string","x-stream-index":"010.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":"string","x-stream-index":"007"},"expires":{"format":"date-time","type":"string","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":"string","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":"string","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"],"type":"string","x-stream-index":"002"},"blocklist":{"type":"string","x-stream-index":"001"}},"required":["blocklist","behavior"],"type":"object"},"BlockListOptionsRequest":{"properties":{"behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"002"},"blocklist":{"type":"string","x-stream-index":"001"}},"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"},"Call":{"properties":{"agora":{"$ref":"#/components/schemas/AgoraCall","x-stream-index":"005"},"hms":{"$ref":"#/components/schemas/HMSCall","x-stream-index":"004"},"id":{"type":"string","x-stream-index":"002"},"provider":{"type":"string","x-stream-index":"001"},"type":{"type":"string","x-stream-index":"003"}},"required":["provider","id","type"],"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"},"CallType":{"nullable":true,"properties":{"AppPK":{"format":"int32","type":"integer","writeOnly":true,"x-stream-index":"003"},"CreatedAt":{"format":"date-time","type":"string","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":"string","writeOnly":true,"x-stream-index":"006"}},"required":["PK","AppPK","Name","CreatedAt","UpdatedAt","ExternalStorage"],"type":"object"},"Channel":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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":"string","x-stream-index":"009"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"008"},"deleted_at":{"format":"date-time","type":"string","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":"string","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":"string","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.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.024"},"blocklist":{"type":"string","x-stream-index":"001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.016"},"mutes":{"type":"boolean","x-stream-index":"001.009"},"name":{"type":"string","x-stream-index":"001.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","created_at","updated_at","commands"],"type":"object"},"ChannelConfigRequest":{"description":"Channel configuration overrides","properties":{"blocklist":{"type":"string","x-stream-index":"008"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"009"},"commands":{"items":{"type":"string"},"type":"array","x-stream-index":"011"},"grants":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"title":"Grants","type":"object","x-stream-index":"010","x-stream-map":{"key":"role","title":"Grants","description":"List of grants modifiers that apply to a role"}},"max_message_length":{"description":"Overrides max message length","format":"int32","maximum":20000,"title":"Max Message Length","type":"integer","x-stream-index":"007"},"quotes":{"description":"Enables message quotes","title":"Quotes","type":"boolean","x-stream-index":"004"},"reactions":{"description":"Enables or disables reactions","title":"Reactions","type":"boolean","x-stream-index":"002"},"replies":{"description":"Enables message replies (threads)","title":"Replies","type":"boolean","x-stream-index":"003"},"typing_events":{"description":"Enables or disables typing events","title":"Typing events","type":"boolean","x-stream-index":"001"},"uploads":{"description":"Enables or disables file uploads","title":"Uploads","type":"boolean","x-stream-index":"005"},"url_enrichment":{"description":"Enables or disables URL enrichment","title":"URL Enrichment","type":"boolean","x-stream-index":"006"}},"type":"object"},"ChannelConfigWithInfo":{"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.002.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.002.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.002.024"},"blocklist":{"type":"string","x-stream-index":"001.002.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.002.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.002.016"},"mutes":{"type":"boolean","x-stream-index":"001.002.009"},"name":{"type":"string","x-stream-index":"001.002.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","commands"],"type":"object"},"ChannelExportRequest":{"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":"string","x-stream-index":"004"},"messages_until":{"description":"Date to export messages until","format":"date-time","title":"Messages until","type":"string","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/ChannelRequest","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/PaginationParamsRequest","x-stream-index":"011"},"messages":{"$ref":"#/components/schemas/MessagePaginationParamsRequest","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/PaginationParamsRequest","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":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","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"},"ChannelMemberRequest":{"nullable":true,"properties":{"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","x-stream-index":"012"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"005"},"user_id":{"title":"User ID","type":"string","x-stream-index":"004"}},"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":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","x-stream-index":"008"},"updated_at":{"description":"Date/time of the last update","format":"date-time","title":"Updated at","type":"string","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"},"ChannelRequest":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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/ChannelConfigRequest","x-stream-index":"026"},"disabled":{"type":"boolean","x-stream-index":"016"},"frozen":{"description":"Freeze or unfreeze the channel","title":"Frozen","type":"boolean","x-stream-index":"015"},"members":{"items":{"$ref":"#/components/schemas/ChannelMemberRequest"},"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"},"ChannelResponse":{"description":"Represents channel in chat","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"029"},"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":"string","x-stream-index":"008"},"created_by":{"$ref":"#/components/schemas/UserObject","description":"Creator of the channel","title":"Created by","x-stream-index":"011"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":"string","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":"string","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":"string","x-stream-index":"009"}},"required":["id","type","cid","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":"string","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/Message"},"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/Message"},"type":"array","x-stream-index":"001.003"},"read":{"items":{"$ref":"#/components/schemas/Read"},"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/UserObject"},"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":"string","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/Message"},"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/Message"},"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/Read"},"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/UserObject"},"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.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"003.002.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.002.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"003.002.024"},"blocklist":{"type":"string","x-stream-index":"003.002.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.002.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"003.002.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"003.002.016"},"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"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","commands"],"type":"object"},"ChannelsResponse":{"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"},"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/UserObjectRequest","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":{"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":{"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"},"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":"string","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":"string","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"},"ConfigRequest":{"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"},"ConnectRequest":{"properties":{"device":{"$ref":"#/components/schemas/DeviceFields","x-stream-index":"001.002"},"user_details":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.001"}},"required":["user_details"],"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","regular","domains","emails"],"title":"Type","type":"string","x-stream-index":"003"},"words":{"description":"List of words to block","items":{"type":"string"},"title":"Words","type":"array","x-stream-index":"002"}},"required":["name","words"],"title":"Block list","type":"object","x-stream-docs-page-id":"block_lists"},"CreateCallRequest":{"nullable":true,"properties":{"id":{"type":"string","x-stream-index":"004"},"options":{"type":"object","x-stream-index":"005"},"type":{"enum":["audio","video"],"type":"string","x-stream-index":"003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"006.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"User ID","type":"string","x-stream-index":"006.001"}},"required":["type","id"],"type":"object"},"CreateCallResponse":{"nullable":true,"properties":{"agora_app_id":{"type":"string","x-stream-index":"002.003"},"agora_uid":{"format":"int32","type":"integer","x-stream-index":"002.002"},"call":{"$ref":"#/components/schemas/Call","x-stream-index":"001"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"003.001"},"token":{"type":"string","x-stream-index":"002.001"}},"required":["token","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":"016"},"automod_behavior":{"description":"Sets behavior of automatic moderation","enum":["flag","block"],"title":"Auto moderation behavior","type":"string","x-stream-index":"017"},"blocklist":{"description":"Name of the blocklist to use","title":"Blocklist","type":"string","x-stream-index":"021"},"blocklist_behavior":{"description":"Sets behavior of blocklist","enum":["flag","block"],"title":"Blocklist behavior","type":"string","x-stream-index":"022"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptionsRequest"},"type":"array","x-stream-index":"023"},"commands":{"description":"List of commands that channel supports","items":{"type":"string"},"title":"Commands","type":"array","x-stream-index":"018"},"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":"020"},"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":"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_1"},"title":"Permissions","type":"array","x-stream-index":"019"},"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","automod"],"type":"object"},"CreateChannelTypeResponse":{"nullable":true,"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.001.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.001.024"},"blocklist":{"type":"string","x-stream-index":"001.001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.001.016"},"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"},"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":"string","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","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"}},"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"],"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"},"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"},"site":{"type":"string","x-stream-index":"002"}},"required":["api_key","site"],"type":"object"},"DataDogInfoRequest":{"properties":{"api_key":{"type":"string","x-stream-index":"001"},"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"},"user_id":{"title":"User ID","type":"string","x-stream-index":"001"}},"required":["user_id"],"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_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"}},"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"},"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":"string","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"},"DeviceFields":{"properties":{"id":{"description":"Device ID","title":"ID","type":"string","x-stream-index":"004"},"push_provider":{"enum":["firebase","apn","huawei","xiaomi"],"title":"Push provider","type":"string","x-stream-index":"001"},"push_provider_name":{"description":"Name of the push provider configuration","title":"Push provider name","type":"string","x-stream-index":"003"},"voip":{"type":"boolean","x-stream-index":"005"}},"required":["push_provider","id"],"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":{"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/ChannelExportRequest"},"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.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"}},"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"},"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"},"FieldRequest":{"nullable":true,"properties":{"short":{"type":"boolean","x-stream-index":"003"},"title":{"type":"string","x-stream-index":"001"},"value":{"type":"string","x-stream-index":"002"}},"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"}},"required":["allowed_file_extensions","blocked_file_extensions","allowed_mime_types","blocked_mime_types"],"type":"object"},"FileUploadConfigRequest":{"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"}},"type":"object"},"FileUploadRequest":{"nullable":true,"properties":{"file":{"description":"file field","title":"File","type":"string","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"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"},"FirebaseConfigRequest":{"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"},"Flag":{"description":"Contains information about flagged user or message","properties":{"approved_at":{"description":"Date of the approval","format":"date-time","title":"Approved at","type":"string","x-stream-index":"015"},"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"011"},"created_by_automod":{"type":"boolean","x-stream-index":"004"},"custom":{"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":"string","x-stream-index":"016"},"reviewed_at":{"description":"Date of the review","format":"date-time","title":"Reviewed at","type":"string","x-stream-index":"013"},"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":"string","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":{"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":"string","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":{"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"GetApplicationResponse":{"nullable":true,"properties":{"app":{"$ref":"#/components/schemas/App","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"},"GetCallTokenRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"002.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"User ID","type":"string","x-stream-index":"002.001"}},"type":"object"},"GetCallTokenResponse":{"nullable":true,"properties":{"agora_app_id":{"type":"string","x-stream-index":"001.003"},"agora_uid":{"format":"int32","type":"integer","x-stream-index":"001.002"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"002.001"},"token":{"type":"string","x-stream-index":"001.001"}},"required":["token","duration"],"type":"object"},"GetCommandResponse":{"nullable":true,"properties":{"args":{"type":"string","x-stream-index":"001.006"},"created_at":{"format":"date-time","readOnly":true,"type":"string","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":"string","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"},"GetExportChannelsStatusResponse":{"nullable":true,"properties":{"created_at":{"format":"date-time","type":"string","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":"string","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"},"GetOGResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.018"},"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"},"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"},"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":{"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"},"GetTaskResponse":{"nullable":true,"properties":{"created_at":{"format":"date-time","type":"string","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":{"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":"string","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":["duration"],"type":"object"},"GuestRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"001"}},"required":["user"],"type":"object"},"GuestResponse":{"nullable":true,"properties":{"access_token":{"description":"Authentication token to use for guest user","title":"Access token","type":"string","x-stream-index":"002"},"duration":{"type":"string","x-stream-index":"003.001"},"user":{"$ref":"#/components/schemas/UserObject","description":"Created user object","title":"User","x-stream-index":"001"}},"required":["access_token","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"},"HMSCall":{"properties":{"room_id":{"type":"string","x-stream-index":"001"},"room_name":{"type":"string","x-stream-index":"002"}},"required":["room_id","room_name"],"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/UserObjectRequest","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"},"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"},"HuaweiConfigRequest":{"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"},"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"},"ImageDataRequest":{"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"}},"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"}},"required":["crop","resize","height","width"],"title":"Image size configuration","type":"object"},"ImageSizeRequest":{"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/ImageSizeRequest"},"title":"Upload sizes","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"ImagesRequest":{"properties":{"fixed_height":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"002"},"fixed_height_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"004"},"fixed_height_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"003"},"fixed_width":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"005"},"fixed_width_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"007"},"fixed_width_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"006"},"original":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"001"}},"type":"object"},"ImportTask":{"properties":{"created_at":{"format":"date-time","type":"string","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":"string","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":"string","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":{"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"},"LabelThresholdsRequest":{"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":{"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"},"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"},"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"},"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"},"MarkChannelsReadRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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/UserObjectRequest","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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["message_id","thread_id"],"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","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"031"},"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":"043"},"cid":{"description":"Channel unique identifier in \u003ctype\u003e:\u003cid\u003e format","title":"Channel CID","type":"string","x-stream-index":"026"},"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":"string","x-stream-index":"028"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","x-stream-index":"030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"021"},"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":"041"},"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":"037"},"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":"040"},"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":"017"},"pin_expires":{"description":"Date when pinned message expires","format":"date-time","title":"Pin expiration date","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"048"},"pinned":{"description":"Whether message is pinned or not","title":"Pinned","type":"boolean","x-stream-docs-page-id":"pinned_messages","x-stream-index":"044"},"pinned_at":{"description":"Date when message got pinned","format":"date-time","title":"Pinned at","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"045"},"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":"047"},"quoted_message":{"$ref":"#/components/schemas/Message","description":"Contains quoted message","title":"Quoted message","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"023"},"quoted_message_id":{"title":"ID of quoted message","type":"string","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"022"},"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_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":"020"},"shadowed":{"description":"Whether the message was shadowed or not","title":"Shadowed","type":"boolean","x-stream-docs-page-id":"moderation#shadow-ban","x-stream-index":"033"},"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":"019"},"silent":{"description":"Whether message is silent or not","title":"Silent","type":"boolean","x-stream-index":"042"},"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":"025"},"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":"string","x-stream-index":"029"},"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","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"form_data":{"additionalProperties":{"type":"string"},"description":"ReadOnlyData to execute command with","title":"Form data","type":"object","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["form_data"],"type":"object"},"MessageFlag":{"nullable":true,"properties":{"approved_at":{"format":"date-time","type":"string","x-stream-index":"013"},"created_at":{"format":"date-time","type":"string","x-stream-index":"009"},"created_by_automod":{"type":"boolean","x-stream-index":"001"},"custom":{"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":"string","x-stream-index":"014"},"reviewed_at":{"format":"date-time","type":"string","x-stream-index":"011"},"reviewed_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"012"},"updated_at":{"format":"date-time","type":"string","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":"string","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":"string","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"},"MessagePaginationParamsRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"008"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"007"},"created_at_around":{"format":"date-time","type":"string","x-stream-index":"012"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"010"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"009"},"id_around":{"type":"string","x-stream-index":"011"},"id_gt":{"type":"string","x-stream-index":"004"},"id_gte":{"type":"string","x-stream-index":"003"},"id_lt":{"type":"string","x-stream-index":"006"},"id_lte":{"type":"string","x-stream-index":"005"},"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":"string","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/AttachmentRequest"},"maximum":30,"type":"array","x-stream-index":"004"},"custom":{"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":"string","x-stream-index":"015"},"pinned":{"type":"boolean","x-stream-index":"013"},"pinned_at":{"format":"date-time","nullable":true,"type":"string","x-stream-index":"014"},"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"}},"required":["attachments"],"type":"object"},"MessageResponse":{"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/Message","x-stream-index":"001"}},"required":["duration"],"type":"object"},"MessageWithPendingMetadataResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"001.002.001"},"message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.001"},"pending_message_metadata":{"additionalProperties":{"type":"string"},"description":"Metadata attached to a message while it is pending","title":"Pending message metadata","type":"object","x-stream-index":"002"}},"required":["duration"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["channel_cids"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["target_ids"],"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"},"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"},"OnlyUserIDRequest":{"properties":{"id":{"type":"string","x-stream-index":"001"}},"required":["id"],"type":"object"},"OwnUser":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"banned":{"type":"boolean","x-stream-index":"014"},"channel_mutes":{"items":{"$ref":"#/components/schemas/ChannelMute"},"type":"array","x-stream-index":"026"},"created_at":{"format":"date-time","type":"string","x-stream-index":"007"},"deactivated_at":{"format":"date-time","type":"string","x-stream-index":"012"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"011"},"devices":{"items":{"$ref":"#/components/schemas/Device"},"type":"array","x-stream-index":"024"},"id":{"type":"string","x-stream-index":"003"},"invisible":{"type":"boolean","x-stream-index":"021"},"language":{"type":"string","x-stream-index":"031"},"last_active":{"format":"date-time","type":"string","x-stream-index":"010"},"latest_hidden_channels":{"items":{"type":"string"},"type":"array","x-stream-index":"033"},"mutes":{"items":{"$ref":"#/components/schemas/UserMute"},"type":"array","x-stream-index":"025"},"online":{"type":"boolean","x-stream-index":"020"},"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":"032"},"total_unread_count":{"format":"int32","type":"integer","x-stream-index":"028"},"unread_channels":{"format":"int32","type":"integer","x-stream-index":"029"},"unread_count":{"format":"int32","type":"integer","x-stream-index":"027"},"unread_threads":{"format":"int32","type":"integer","x-stream-index":"030"},"updated_at":{"format":"date-time","type":"string","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"},"PaginationParamsRequest":{"properties":{"id_gt":{"format":"int32","type":"integer","x-stream-index":"004"},"id_gte":{"format":"int32","type":"integer","x-stream-index":"003"},"id_lt":{"format":"int32","type":"integer","x-stream-index":"006"},"id_lte":{"format":"int32","type":"integer","x-stream-index":"005"},"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":{"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"},"Policy":{"properties":{"action":{"type":"integer","x-stream-index":"007"},"created_at":{"format":"date-time","type":"string","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":"string","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"},"PolicyRequest_1":{"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":["name","priority"],"type":"object"},"PushConfigRequest":{"properties":{"offline_only":{"type":"boolean","x-stream-index":"002"},"version":{"enum":["v1","v2"],"type":"string","x-stream-index":"001"}},"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":"string","x-stream-index":"002"}},"type":"object"},"PushNotificationSettingsRequest":{"properties":{"disabled":{"type":"boolean","x-stream-index":"001"},"disabled_until":{"format":"date-time","type":"string","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":"string","x-stream-index":"008"},"description":{"maxLength":128,"type":"string","x-stream-index":"007"},"disabled_at":{"format":"date-time","type":"string","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":"integer","x-stream-index":"006"},"updated_at":{"format":"date-time","type":"string","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"},"PushProviderRequest":{"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":"string","x-stream-index":"008"},"description":{"maxLength":128,"type":"string","x-stream-index":"007"},"disabled_at":{"format":"date-time","type":"string","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":"integer","x-stream-index":"006"},"updated_at":{"format":"date-time","type":"string","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":"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":"string","x-stream-index":"004"},"description":{"type":"string","x-stream-index":"003"},"disabled_at":{"format":"date-time","type":"string","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":"string","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":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"003.006"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.005"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"003.008"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.007"},"exclude_expired_bans":{"type":"boolean","x-stream-index":"006"},"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"007.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryChannelsRequest":{"nullable":true,"properties":{"filter_conditions":{"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/SortParamRequest"},"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/UserObjectRequest","x-stream-index":"010.002"},"user_id":{"type":"string","x-stream-index":"010.001"},"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"},"QueryMembersRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"006.010"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.009"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"006.012"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.011"},"filter_conditions":{"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/UserObject","x-stream-index":"007.002"},"user_id":{"type":"string","x-stream-index":"007.001"},"user_id_gt":{"type":"string","x-stream-index":"006.006"},"user_id_gte":{"type":"string","x-stream-index":"006.005"},"user_id_lt":{"type":"string","x-stream-index":"006.008"},"user_id_lte":{"type":"string","x-stream-index":"006.007"}},"required":["type","filter_conditions"],"type":"object"},"QueryMessageFlagsRequest":{"properties":{"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"004.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryThreadsRequest":{"nullable":true,"properties":{"connection_id":{"type":"string","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"},"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":"005.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":"007.002"},"user_id":{"type":"string","x-stream-index":"007.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"},"QueryUsersRequest":{"properties":{"filter_conditions":{"description":"User filters","title":"Filter conditions","type":"object","x-stream-docs-page-id":"query_users","x-stream-index":"001"},"id_gt":{"type":"string","x-stream-index":"004.006"},"id_gte":{"type":"string","x-stream-index":"004.005"},"id_lt":{"type":"string","x-stream-index":"004.008"},"id_lte":{"type":"string","x-stream-index":"004.007"},"limit":{"format":"int32","maximum":100,"minimum":0,"type":"integer","x-stream-index":"004.003"},"offset":{"format":"int32","maximum":1000,"type":"integer","x-stream-index":"004.004"},"presence":{"description":"Request user presence status","title":"Presence","type":"boolean","x-stream-index":"003"},"sort":{"description":"Array of sort parameters","items":{"$ref":"#/components/schemas/SortParam"},"maximum":5,"title":"Sort","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"005.002"},"user_id":{"type":"string","x-stream-index":"005.001"}},"required":["filter_conditions"],"type":"object"},"Reaction":{"description":"Represents user reaction to a message","nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"010"},"created_at":{"description":"Date/time of creation","format":"date-time","readOnly":true,"title":"Created at","type":"string","x-stream-index":"008"},"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":"string","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"},"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":{"description":"Represents user reaction to a message","properties":{"Custom":{"type":"object","writeOnly":true,"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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":["type"],"title":"Reaction","type":"object","x-stream-docs-page-id":"send_reaction"},"ReactionResponse":{"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"},"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"},"user_id":{"title":"User ID","type":"string","x-stream-index":"001"}},"required":["user_id"],"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_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":"string","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"},"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"},"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"},"Role":{"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","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":"string","x-stream-index":"005"}},"required":["name","custom","scopes","created_at","updated_at"],"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"},"SearchRequest":{"properties":{"filter_conditions":{"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":{"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":{"nullable":true,"properties":{"message":{"$ref":"#/components/schemas/SearchResultMessage","description":"Found message","title":"Message","x-stream-index":"001"}},"type":"object"},"SearchResultMessage":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.031"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","x-stream-index":"001.011"},"before_message_send_failed":{"type":"boolean","x-stream-index":"001.043"},"channel":{"$ref":"#/components/schemas/ChannelResponse","description":"Channel object","title":"Channel","x-stream-index":"002"},"cid":{"type":"string","x-stream-index":"001.026"},"command":{"type":"string","x-stream-index":"001.006"},"created_at":{"format":"date-time","type":"string","x-stream-index":"001.028"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"001.021"},"html":{"type":"string","x-stream-index":"001.007"},"i18n":{"additionalProperties":{"type":"string"},"type":"object","x-stream-index":"001.041"},"id":{"type":"string","x-stream-index":"001.002"},"image_labels":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","x-stream-index":"001.037"},"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.040"},"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.017"},"pin_expires":{"format":"date-time","type":"string","x-stream-index":"001.048"},"pinned":{"type":"boolean","x-stream-index":"001.044"},"pinned_at":{"format":"date-time","type":"string","x-stream-index":"001.045"},"pinned_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.047"},"quoted_message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.023"},"quoted_message_id":{"type":"string","x-stream-index":"001.022"},"reaction_counts":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.014"},"reaction_scores":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.015"},"reply_count":{"format":"int32","type":"integer","x-stream-index":"001.020"},"shadowed":{"type":"boolean","x-stream-index":"001.033"},"show_in_channel":{"type":"boolean","x-stream-index":"001.019"},"silent":{"type":"boolean","x-stream-index":"001.042"},"text":{"type":"string","x-stream-index":"001.004"},"thread_participants":{"items":{"$ref":"#/components/schemas/UserObject"},"type":"array","x-stream-index":"001.025"},"type":{"type":"string","x-stream-index":"001.008"},"updated_at":{"format":"date-time","type":"string","x-stream-index":"001.029"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.010"}},"required":["id","text","html","type","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"},"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"},"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/Message","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"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"},"SendUserCustomEventRequest":{"nullable":true,"properties":{"event":{"$ref":"#/components/schemas/UserCustomEventRequest","x-stream-index":"002"}},"required":["event"],"type":"object"},"ShowChannelRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"009"},"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":"string","x-stream-index":"007"},"left_thread_at":{"description":"Left Thread At is the time when the user left the thread","format":"date-time","title":"Left Thread At","type":"string","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","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":"string","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":{"type":"object","x-stream-index":"015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","x-stream-index":"001.014"}},"required":["channel_cid","parent_message_id","created_at","updated_at","title","Custom","latest_replies"],"title":"Thread","type":"object"},"ThreadStateResponse":{"nullable":true,"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":"string","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":{"type":"object","x-stream-index":"001.015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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"},"ThresholdsRequest":{"description":"Sets thresholds for AI moderation","properties":{"explicit":{"$ref":"#/components/schemas/LabelThresholdsRequest","description":"Thresholds for explicit messages","title":"Explicit","x-stream-index":"001"},"spam":{"$ref":"#/components/schemas/LabelThresholdsRequest","description":"Thresholds for spam","title":"Spam","x-stream-index":"002"},"toxic":{"$ref":"#/components/schemas/LabelThresholdsRequest","description":"Thresholds for toxic messages","title":"Toxic","x-stream-index":"003"}},"title":"Auto moderation thresholds","type":"object"},"ThumbnailsSettings":{"properties":{"enabled":{"type":"boolean","x-stream-index":"001"}},"required":["enabled"],"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"},"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":"string","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"},"UnmuteChannelRequest":{"nullable":true,"properties":{"channel_cid":{"type":"string","x-stream-index":"001.001"},"channel_cids":{"items":{"type":"string"},"maximum":25,"type":"array","x-stream-index":"001.002"},"expiration":{"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["channel_cid","channel_cids"],"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_id":{"type":"string","x-stream-index":"001.001"},"target_ids":{"items":{"type":"string"},"maximum":1000,"type":"array","x-stream-index":"001.002"},"timeout":{"minimum":0,"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["target_id","target_ids"],"type":"object"},"UnreadCountsChannel":{"properties":{"channel_id":{"type":"string","x-stream-index":"001"},"last_read":{"format":"date-time","type":"string","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"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"006.001"},"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","duration"],"type":"object"},"UnreadCountsThread":{"properties":{"last_read":{"format":"date-time","type":"string","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/ConfigRequest","x-stream-index":"001.038"},"apn_config":{"$ref":"#/components/schemas/APNConfigRequest","x-stream-index":"001.003"},"async_moderation_config":{"$ref":"#/components/schemas/AsyncModerationConfigurationRequest","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/DataDogInfoRequest","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/FileUploadConfigRequest","x-stream-index":"001.028"},"firebase_config":{"$ref":"#/components/schemas/FirebaseConfigRequest","x-stream-index":"001.004"},"grants":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","x-stream-index":"001.032"},"hms_options":{"$ref":"#/components/schemas/ConfigRequest","x-stream-index":"001.039"},"huawei_config":{"$ref":"#/components/schemas/HuaweiConfigRequest","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/FileUploadConfigRequest","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/PushConfigRequest","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":"string","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/XiaomiConfigRequest","x-stream-index":"001.006"}},"type":"object"},"UpdateBlockListRequest":{"nullable":true,"properties":{"Name":{"type":"string","writeOnly":true,"x-stream-index":"001"},"words":{"items":{"type":"string"},"type":"array","x-stream-index":"002"}},"type":"object"},"UpdateChannelPartialRequest":{"nullable":true,"properties":{"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["set","unset"],"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/ChannelMemberRequest"},"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/ChannelMemberRequest"},"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/ChannelRequest","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/ChannelMemberRequest"},"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"}},"required":["remove_members","add_moderators","demote_moderators"],"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":{"NameFromPath":{"type":"string","writeOnly":true,"x-stream-index":"001"},"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"007.001.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"007.001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"007.001.019"},"automod_thresholds":{"$ref":"#/components/schemas/ThresholdsRequest","x-stream-index":"007.001.024"},"blocklist":{"type":"string","x-stream-index":"007.001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"007.001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptionsRequest"},"type":"array","x-stream-index":"007.001.022"},"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.017"},"message_retention":{"type":"string","x-stream-index":"007.001.016"},"mutes":{"type":"boolean","x-stream-index":"007.001.009"},"permissions":{"items":{"$ref":"#/components/schemas/PolicyRequest_1"},"type":"array","x-stream-index":"003"},"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":["automod"],"type":"object"},"UpdateChannelTypeResponse":{"nullable":true,"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"003.001.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"003.001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"003.001.024"},"blocklist":{"type":"string","x-stream-index":"003.001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"003.001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"003.001.016"},"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"},"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":"string","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","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":{"Name":{"type":"string","writeOnly":true,"x-stream-index":"001"},"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"},"UpdateMessagePartialRequest":{"nullable":true,"properties":{"set":{"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"}},"required":["set","unset"],"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":["message","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"},"UpdateThreadPartialRequest":{"nullable":true,"properties":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"set":{"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"}},"required":["set","unset"],"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":["duration"],"type":"object"},"UpdateUserPartialRequest":{"nullable":true,"properties":{"id":{"description":"User ID to update","title":"ID","type":"string","x-stream-index":"001"},"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"}},"required":["id","set","unset"],"type":"object"},"UpdateUsersRequest":{"nullable":true,"properties":{"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObjectRequest"},"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":"002.001"},"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObject"},"description":"Object containing users","title":"Users","type":"object","x-stream-index":"001","x-stream-map":{"key":"user_id"}}},"required":["users","duration"],"type":"object"},"UpsertPushProviderRequest":{"nullable":true,"properties":{"push_provider":{"$ref":"#/components/schemas/PushProviderRequest","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":{"type":"object","writeOnly":true,"x-stream-index":"004"},"created_at":{"format":"date-time","type":"string","x-stream-index":"005"},"type":{"type":"string","x-stream-index":"001"}},"required":["type"],"type":"object"},"UserMute":{"nullable":true,"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"007"},"deactivated_at":{"description":"Date of deactivation","format":"date-time","readOnly":true,"title":"Deactivated at","type":"string","x-stream-index":"012"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","readOnly":true,"title":"Deleted at","type":"string","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":"031"},"last_active":{"description":"Date of last activity","format":"date-time","readOnly":true,"title":"Last active","type":"string","x-stream-index":"010"},"online":{"description":"Whether a user online or not","readOnly":true,"title":"Online","type":"boolean","x-stream-index":"020"},"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":"string","x-stream-index":"038"},"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":"032"},"updated_at":{"description":"Date/time of the last update","format":"date-time","readOnly":true,"title":"Updated at","type":"string","x-stream-index":"008"}},"required":["id","role","Custom","banned","online"],"title":"User object","type":"object"},"UserObjectRequest":{"description":"Represents chat user","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","x-stream-index":"015"},"banned":{"description":"Whether a user is banned or not","title":"Banned","type":"boolean","x-stream-index":"014"},"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":"031"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettingsRequest","x-stream-index":"023"},"revoke_tokens_issued_before":{"description":"Revocation date for tokens","format":"date-time","title":"Revoke tokens issued before","type":"string","x-stream-index":"038"},"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":"032"}},"required":["id"],"title":"User object","type":"object"},"UserRequest":{"properties":{"custom":{"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"},"language":{"type":"string","x-stream-index":"005"},"name":{"description":"Optional name of user","title":"Name","type":"string","x-stream-index":"002"},"role":{"title":"Role","type":"string","x-stream-index":"006"},"teams":{"items":{"type":"string"},"title":"Teams","type":"array","x-stream-index":"007"}},"required":["id"],"type":"object"},"UserResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.005"},"ban_expires":{"format":"date-time","type":"string","x-stream-index":"001.015"},"banned":{"type":"boolean","x-stream-index":"001.014"},"created_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.007"},"deactivated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.012"},"deleted_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.011"},"id":{"type":"string","x-stream-index":"001.003"},"invisible":{"type":"boolean","x-stream-index":"001.021"},"language":{"type":"string","x-stream-index":"001.031"},"last_active":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.010"},"online":{"readOnly":true,"type":"boolean","x-stream-index":"001.020"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettings","x-stream-index":"001.023"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.038"},"role":{"type":"string","x-stream-index":"001.004"},"shadow_banned":{"description":"Whether user is shadow banned or not","title":"Shadow banned","type":"boolean","x-stream-index":"002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"001.032"},"updated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.008"}},"required":["id","role","Custom","banned","online","shadow_banned"],"type":"object"},"UsersResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"002.001"},"users":{"description":"List of found users","items":{"$ref":"#/components/schemas/UserResponse"},"title":"Users","type":"array","x-stream-index":"001"}},"required":["users","duration"],"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"},"WSEvent":{"description":"Represents an BaseEvent that happened in Stream Chat","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"021"},"automoderation":{"type":"boolean","x-stream-index":"017"},"automoderation_scores":{"$ref":"#/components/schemas/ModerationResponse","x-stream-index":"018"},"channel":{"$ref":"#/components/schemas/ChannelResponse","x-stream-index":"008"},"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":"string","x-stream-index":"022"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"016"},"me":{"$ref":"#/components/schemas/OwnUser","x-stream-index":"013"},"member":{"$ref":"#/components/schemas/ChannelMember","x-stream-index":"010"},"message":{"$ref":"#/components/schemas/Message","x-stream-index":"006"},"parent_id":{"type":"string","x-stream-index":"019"},"reaction":{"$ref":"#/components/schemas/Reaction","x-stream-index":"007"},"reason":{"type":"string","x-stream-index":"015"},"team":{"type":"string","x-stream-index":"020"},"thread":{"$ref":"#/components/schemas/Thread","x-stream-index":"009"},"type":{"type":"string","x-stream-index":"001"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"011"},"user_id":{"type":"string","x-stream-index":"012"},"watcher_count":{"format":"int32","type":"integer","x-stream-index":"014"}},"required":["type","Custom","created_at"],"title":"Event","type":"object","x-stream-docs-page-id":"event_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"},"XiaomiConfigRequest":{"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"},"connectRequestQueryRequest":{"nullable":true,"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":"v98.0.2-message-blocked-event.1"},"openapi":"3.0.3","paths":{"/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":["Settings"]},"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":["Settings"]}},"/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":["Settings","Moderation"]},"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":["Settings","Moderation"]}},"/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":["Settings","Moderation"]},"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":["Settings","Moderation"]},"put":{"description":"Updates contents of the block list\n","operationId":"UpdateBlockList","parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBlockListRequest"}}},"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":["Settings","Moderation"]}},"/calls":{"post":{"description":"Retrieves the token to join a call\n\nRequired permissions:\n- JoinCall\n- ReadChannel\n","operationId":"GetCallToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenResponse"}}},"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 Token"}},"/calls/{call_id}":{"post":{"description":"Retrieves the token to join a call\n\nRequired permissions:\n- JoinCall\n- ReadChannel\n","operationId":"GetCallToken","parameters":[{"in":"path","name":"call_id","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCallTokenResponse"}}},"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 Token"}},"/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/ChannelsResponse"}}},"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":["Channels"]}},"/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":["Channels","GDPR"]}},"/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":["Channels","Messages"]}},"/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":"GetOrCreateChannel","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":["Channels"]}},"/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":["Channels"]},"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":["Channels"]},"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":["Channels"]}},"/channels/{type}/{id}/call":{"post":{"description":"Creates a call\n\nRequired permissions:\n- CreateCall\n- ReadChannel\n","operationId":"CreateCall","parameters":[{"in":"path","name":"type","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}},{"in":"path","name":"id","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"002"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCallRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCallResponse"}}},"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 a call"}},"/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":["Events"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Channels"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Messages"]}},"/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","schema":{"description":"List of comma-separated IDs","items":{"type":"string"},"maximum":50,"minimum":1,"title":"IDs","type":"array","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":["Messages"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/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":{"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/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":["Channels"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/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":["Settings","Channel types"]},"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":["Settings","Channel types"]}},"/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"}}},"description":"Bad request"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"description":"Too many requests"}},"summary":"Delete channel type","tags":["Settings","Channel types"]},"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"}}},"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 channel type","tags":["Settings","Channel types"]},"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"}}},"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":["Settings","Channel types"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPushResponse"}}},"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":"Check push","tags":["Settings","Testing"]}},"/check_sns":{"post":{"description":"Validates Amazon SNS configuration\n","operationId":"CheckSNS","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSNSRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSNSResponse"}}},"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":"Check SNS","tags":["Settings","Testing"]}},"/check_sqs":{"post":{"description":"Validates Amazon SQS credentials\n","operationId":"CheckSQS","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSQSRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSQSResponse"}}},"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":"Check SQS","tags":["Settings","Testing"]}},"/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":["Custom commands"]},"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":["Custom commands"]}},"/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":["Custom commands"]},"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"}}},"description":"Too many requests"}},"summary":"Get command","tags":["Custom commands"]},"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","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":["Custom commands"]}},"/connect":{"get":{"description":"Establishes WebSocket connection for user\n\nSends events:\n- user.updated\n","operationId":"Connect","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest","x-stream-index":"001"}}},"in":"query","name":"json"}],"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":"Connect (WebSocket)","tags":["Users"]}},"/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"}},"summary":"Delete device","tags":["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"}},"summary":"List devices","tags":["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":{"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":["Devices","Push"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportUsersResponse"}}},"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 users","tags":["Users"]}},"/export_channels":{"post":{"description":"Exports channel data to JSON file\n","operationId":"ExportChannels","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportChannelsRequest"}}},"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"}},"summary":"Export channels","tags":["Channels"]}},"/export_channels/{id}":{"get":{"description":"\n","operationId":"GetExportChannelsStatus","parameters":[{"in":"path","name":"id","required":true,"schema":{"description":"Task ID","title":"ID","type":"string","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":["Channels"]}},"/guest":{"post":{"description":"Creates guest user\n","operationId":"CreateGuest","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestResponse"}}},"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":["Users"]}},"/import_urls":{"post":{"description":"Creates a new import URL\n","operationId":"CreateImportURL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportURLRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportURLResponse"}}},"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 import URL","tags":["Imports"]}},"/imports":{"get":{"description":"Gets an import\n","operationId":"ListImports","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListImportsResponse"}}},"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 import","tags":["Imports"]},"post":{"description":"Creates a new import\n","operationId":"CreateImport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportResponse"}}},"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 import","tags":["Imports"]}},"/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"}}},"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 import","tags":["Imports"]}},"/longpoll":{"get":{"description":"WebSocket fallback transport endpoint\n\nSends events:\n- user.updated\n","operationId":"LongPoll","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest","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":["Users"]}},"/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":["Channels"]}},"/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/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":"Delete message","tags":["Messages"]},"get":{"description":"Returns message by ID\n\nRequired permissions:\n- ReadChannel\n","operationId":"GetMessage","parameters":[{"in":"path","name":"id","required":true,"schema":{"description":"Message ID","title":"ID","type":"string","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageWithPendingMetadataResponse"}}},"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":["Messages"]},"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":["Messages"]},"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":["Messages"]}},"/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":["Messages"]}},"/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"}}],"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":"Commit message"}},"/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/ReactionResponse"}}},"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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages"]}},"/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":{"description":"ID of a message which replies to return","title":"Parent ID","type":"string","writeOnly":true,"x-stream-index":"001"}},{"in":"query","name":"id_gte","schema":{"type":"string","x-stream-index":"002.001.003"}},{"in":"query","name":"id_gt","schema":{"type":"string","x-stream-index":"002.001.004"}},{"in":"query","name":"id_lte","schema":{"type":"string","x-stream-index":"002.001.005"}},{"in":"query","name":"id_lt","schema":{"type":"string","x-stream-index":"002.001.006"}},{"in":"query","name":"created_at_after_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.007"}},{"in":"query","name":"created_at_after","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.008"}},{"in":"query","name":"created_at_before_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.009"}},{"in":"query","name":"created_at_before","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.010"}},{"in":"query","name":"id_around","schema":{"type":"string","x-stream-index":"002.001.011"}},{"in":"query","name":"created_at_around","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.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":["Messages"]}},"/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","schema":{"type":"string","x-stream-index":"001"}},{"in":"query","name":"type","schema":{"type":"string","x-stream-index":"002"}},{"in":"query","name":"id","schema":{"type":"string","x-stream-index":"003"}},{"in":"query","name":"created_by","schema":{"type":"string","x-stream-index":"004"}}],"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":["Users","Moderation"]},"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":["Users","Moderation"]}},"/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":["Moderation","Messages","Users"]}},"/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":["Messages","Moderation"]}},"/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":["Users","Moderation"]}},"/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":["Channels"]}},"/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":["Users","Moderation"]}},"/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":["Channels"]}},"/og":{"get":{"description":"Get an OpenGraph attachment for a link\n","operationId":"GetOG","parameters":[{"in":"query","name":"url","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":["Messages"]}},"/permissions":{"get":{"description":"Lists all available permissions\n","operationId":"ListPermissions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPermissionsResponse"}}},"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 permissions","tags":["Permissions 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","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomPermissionResponse"}}},"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 permission","tags":["Permissions V2"]}},"/push_providers":{"get":{"description":"List details of all push providers.\n","operationId":"ListPushProviders","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPushProvidersResponse"}}},"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 push providers","tags":["Push","Settings"]},"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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertPushProviderResponse"}}},"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 a push provider","tags":["Server-side"]}},"/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"}},{"in":"path","name":"name","required":true,"schema":{"maxLength":36,"minLength":1,"type":"string","writeOnly":true,"x-stream-index":"002"}}],"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 a push provider","tags":["Push","Settings"]}},"/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":["Users","Moderation"]}},"/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","writeOnly":true,"x-stream-index":"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"}},{"in":"query","name":"ios","schema":{"description":"Whether to include iOS platform limits or not","title":"iOS","type":"boolean","writeOnly":true,"x-stream-index":"003"}},{"in":"query","name":"web","schema":{"description":"Whether to include web platform limits or not","title":"Web","type":"boolean","writeOnly":true,"x-stream-index":"004"}},{"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"}}},"description":"Get Rate Limits 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 rate limits","tags":["Settings"]}},"/roles":{"get":{"description":"Lists all available roles\n","operationId":"ListRoles","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRolesResponse"}}},"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 roles","tags":["Permissions V2"]},"post":{"description":"Creates custom role\n","operationId":"CreateRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleResponse"}}},"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 role","tags":["Permissions 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","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 role","tags":["Permissions V2"]}},"/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":["Channels","Messages"]}},"/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","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskResponse"}}},"description":"Get Task 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 status of a task","tags":["Tasks"]}},"/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":["Threads"]}},"/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"}}],"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":["Threads"]},"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":["Threads","Channels"]}},"/unread":{"get":{"description":"UnreadCount counts\n","operationId":"UnreadCounts","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnreadCountsResponse"}}},"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":"UnreadCount counts","tags":["Channels"]}},"/users":{"get":{"description":"Find and filter users\n\nRequired permissions:\n- SearchUser\n","operationId":"QueryUsers","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryUsersRequest","x-stream-index":"001"}}},"in":"query","name":"payload"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersResponse"}}},"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":["Users"]},"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/UpdateUserPartialRequest"}}},"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":["Users"]},"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":["Users"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateUsersResponse"}}},"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":"Deactivate users","tags":["Users","GDPR","Moderation"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUsersResponse"}}},"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 Users","tags":["Users","GDPR","Moderation"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivateUsersResponse"}}},"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":"Reactivate users","tags":["Users","GDPR","Moderation"]}},"/users/restore":{"post":{"description":"Restore soft deleted users\n","operationId":"RestoreUsers","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreUsersRequest"}}},"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":"Restore users","tags":["Users"]}},"/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","x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateUserRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateUserResponse"}}},"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":"Deactivate user","tags":["Users","GDPR","Moderation"]}},"/users/{user_id}/event":{"post":{"description":"Sends a custom event to a user\n\nSends events:\n- custom\n","operationId":"SendUserCustomEvent","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendUserCustomEventRequest"}}},"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":"Send user event","tags":["Events"]}},"/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"}}},"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 user","tags":["Users"]}},"/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"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivateUserRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivateUserResponse"}}},"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":"Reactivate user","tags":["Users","GDPR","Moderation"]}}},"security":[{"JWT":[],"api_key":[],"stream-auth-type":[]},{"api_key":[],"stream-auth-type":[]}],"servers":[{"description":"Stream API","url":"https://stream-io-api.com"}]} \ No newline at end of file diff --git a/openapi/chat-openapi.yaml b/openapi/chat-openapi.yaml index 4d3fce13..de4e9a50 100644 --- a/openapi/chat-openapi.yaml +++ b/openapi/chat-openapi.yaml @@ -189,30 +189,11 @@ components: required: - channel type: object - AnyEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - x-stream-index: "001.002" - type: - default: custom - 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: ChatEvent App: properties: agora_options: $ref: '#/components/schemas/Config' - x-stream-index: "001.039" + x-stream-index: "001.038" allowed_flag_reasons: items: type: string @@ -238,7 +219,7 @@ components: cdn_expiration_seconds: format: int32 type: integer - x-stream-index: "001.037" + x-stream-index: "001.036" channel_configs: additionalProperties: $ref: '#/components/schemas/ChannelConfig' @@ -253,7 +234,7 @@ components: x-stream-index: "001.021" datadog_info: $ref: '#/components/schemas/DataDogInfo' - x-stream-index: "001.042" + x-stream-index: "001.041" disable_auth_checks: type: boolean x-stream-index: "001.010" @@ -270,7 +251,7 @@ components: items: $ref: '#/components/schemas/GeofenceResponse' type: array - x-stream-index: "001.041" + x-stream-index: "001.040" grants: additionalProperties: items: @@ -280,7 +261,7 @@ components: x-stream-index: "001.032" hms_options: $ref: '#/components/schemas/Config' - x-stream-index: "001.040" + x-stream-index: "001.039" image_moderation_enabled: type: boolean x-stream-index: "001.015" @@ -317,20 +298,11 @@ components: reminders_interval: format: int32 type: integer - x-stream-index: "001.036" + x-stream-index: "001.035" revoke_tokens_issued_before: format: date-time type: string x-stream-index: "001.031" - search_backend: - description: Backend implementation used for search - enum: - - elasticsearch - - postgres - - disabled - title: Search Backend - type: string - x-stream-index: "001.034" sns_key: type: string x-stream-index: "001.027" @@ -362,12 +334,12 @@ components: x-stream-index: "001.013" video_provider: type: string - x-stream-index: "001.038" + x-stream-index: "001.037" webhook_events: items: type: string type: array - x-stream-index: "001.035" + x-stream-index: "001.034" webhook_url: type: string x-stream-index: "001.004" @@ -400,7 +372,6 @@ components: - image_upload_config - grants - campaign_enabled - - search_backend - webhook_events - reminders_interval - cdn_expiration_seconds @@ -430,9 +401,12 @@ components: x-stream-index: "001" type: object Attachment: - additionalProperties: true nullable: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" actions: items: $ref: '#/components/schemas/Action' @@ -504,13 +478,18 @@ components: title: Type type: string x-stream-index: "001" + required: + - Custom title: Attachment type: object x-stream-docs-page-id: file_uploads AttachmentRequest: - additionalProperties: true nullable: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" actions: items: $ref: '#/components/schemas/ActionRequest' @@ -648,7 +627,7 @@ components: nullable: true properties: banned_by: - $ref: '#/components/schemas/UserObjectRequest' + $ref: '#/components/schemas/UserRequest' description: User who issued a ban title: Banned by x-stream-index: "009" @@ -694,7 +673,7 @@ components: type: string x-stream-index: "004" user: - $ref: '#/components/schemas/UserObjectRequest' + $ref: '#/components/schemas/UserRequest' x-stream-index: "010.002" user_id: type: string @@ -733,6 +712,7 @@ components: type: object BlockList: description: Block list contains restricted words + nullable: true properties: created_at: description: Date/time of creation @@ -877,6 +857,10 @@ components: type: string writeOnly: true x-stream-index: "005" + ExternalStorage: + type: string + writeOnly: true + x-stream-index: "009" Name: type: string writeOnly: true @@ -903,10 +887,14 @@ components: - Name - CreatedAt - UpdatedAt + - ExternalStorage type: object Channel: - additionalProperties: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" auto_translation_enabled: type: boolean x-stream-index: "028" @@ -985,6 +973,7 @@ components: - updated_at - frozen - disabled + - Custom - auto_translation_language type: object ChannelConfig: @@ -1322,180 +1311,6 @@ components: - automod_behavior - commands type: object - ChannelConfigWithInfoRequest: - properties: - allowed_flag_reasons: - items: - type: string - type: array - x-stream-index: 001.002.023 - automod: - enum: - - disabled - - simple - - AI - type: string - x-stream-index: 001.002.018 - automod_behavior: - enum: - - flag - - block - type: string - x-stream-index: 001.002.019 - automod_thresholds: - $ref: '#/components/schemas/ThresholdsRequest' - x-stream-index: 001.002.024 - blocklist: - type: string - x-stream-index: 001.002.020 - blocklist_behavior: - enum: - - flag - - block - type: string - x-stream-index: 001.002.021 - blocklists: - items: - $ref: '#/components/schemas/BlockListOptionsRequest' - type: array - x-stream-index: 001.002.022 - commands: - items: - $ref: '#/components/schemas/CommandRequest' - type: array - x-stream-index: "001.003" - connect_events: - type: boolean - x-stream-index: 001.002.004 - created_at: - format: date-time - type: string - 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: - description: List of grants modifiers that apply to a role - key: role - title: Grants - 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.017 - message_retention: - type: string - x-stream-index: 001.002.016 - mutes: - type: boolean - x-stream-index: 001.002.009 - name: - type: string - x-stream-index: 001.002.001 - 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: string - 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: - - automod - type: object - ChannelCreatedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - 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: ChatEvent - ChannelDeletedEvent: - nullable: true - 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: string - 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: ChatEvent ChannelExportRequest: properties: cid: @@ -1525,36 +1340,6 @@ components: x-stream-index: "001" title: Channel Export type: object - 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: string - 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: ChatEvent ChannelGetOrCreateRequest: nullable: true properties: @@ -1569,94 +1354,23 @@ components: x-stream-index: "008" members: $ref: '#/components/schemas/PaginationParamsRequest' - x-stream-index: "010" + x-stream-index: "011" messages: $ref: '#/components/schemas/MessagePaginationParamsRequest' - x-stream-index: "009" + 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/PaginationParamsRequest' - x-stream-index: "011" + x-stream-index: "012" type: object - ChannelHiddenEvent: - nullable: true - 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: string - 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: ChatEvent - 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: string - 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: ChatEvent - ChannelMember: + ChannelMember: nullable: true properties: ban_expires: @@ -1839,20 +1553,6 @@ components: x-stream-index: "004" title: Channel member type: object - ChannelMessages: - nullable: true - properties: - channel: - $ref: '#/components/schemas/ChannelResponse' - x-stream-index: "001" - messages: - items: - $ref: '#/components/schemas/Message' - type: array - x-stream-index: "002" - required: - - messages - type: object ChannelMute: nullable: true properties: @@ -1886,58 +1586,12 @@ components: - created_at - updated_at type: object - ChannelMuteRequest: - nullable: true - properties: - channel: - $ref: '#/components/schemas/ChannelResponseRequest' - x-stream-index: "007" - created_at: - description: Date/time of creation - format: date-time - title: Created at - type: string - x-stream-index: "009" - expires: - description: Date/time of mute expiration - format: date-time - title: Expires - type: string - x-stream-index: "008" - updated_at: - description: Date/time of the last update - format: date-time - title: Updated at - type: string - x-stream-index: "010" - user: - $ref: '#/components/schemas/UserObjectRequest' - description: Owner of channel mute - title: User - x-stream-index: "005" - type: object - ChannelMutedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - x-stream-index: "001.002" - type: - default: channel.muted - type: string - x-stream-index: "001.001" - required: - - type - - created_at - title: ChannelMutedEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent ChannelRequest: - additionalProperties: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "017" auto_translation_enabled: description: Enable or disable auto translation title: Auto translation @@ -1965,34 +1619,22 @@ components: maximum: 100 type: array x-stream-index: "020" - own_capabilities: - items: - type: integer - type: array - x-stream-index: "027" team: description: Team the channel belongs to (if multi-tenant mode is enabled) title: Team type: string x-stream-index: "006" - truncated_at: - items: - type: integer - type: array - x-stream-index: "014" - truncated_by: - items: - type: integer - type: array - x-stream-index: "013" truncated_by_id: type: string x-stream-index: "012" type: object ChannelResponse: - additionalProperties: true description: Represents channel in chat properties: + Custom: + type: object + writeOnly: true + x-stream-index: "029" auto_translation_enabled: description: Whether auto translation is enabled or not title: Auto translation @@ -2129,178 +1771,43 @@ components: - cid - frozen - disabled + - Custom title: Channel type: object - ChannelResponseRequest: - additionalProperties: true - description: Represents channel in chat + ChannelStateResponse: + nullable: true 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 (:) - title: CID - type: string - x-stream-index: "005" - config: - $ref: '#/components/schemas/ChannelConfigWithInfoRequest' - 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: string - x-stream-index: "008" - created_by: - $ref: '#/components/schemas/UserObjectRequest' - description: Creator of the channel - title: Created by - x-stream-index: "011" - deleted_at: - description: Date/time of deletion - format: date-time - title: Deleted at + channel: + $ref: '#/components/schemas/ChannelResponse' + x-stream-index: "001.001" + duration: type: string - 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" + x-stream-index: "002.001" hidden: - description: Whether this channel is hidden by current user or not - title: Hidden type: boolean - x-stream-index: "026" + x-stream-index: "001.010" hide_messages_before: - description: Date since when the message history is accessible - format: date-time - title: Hide messages before - type: string - 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: string - x-stream-index: "006" - member_count: - description: Number of members in the channel - format: int32 - title: Member count - type: integer - x-stream-index: "015" + x-stream-index: "001.011" members: - description: List of channel members (max 100) items: - $ref: '#/components/schemas/ChannelMemberRequest' - title: Members + $ref: '#/components/schemas/ChannelMember' type: array - x-stream-index: "014" - mute_expires_at: - description: Date of mute expiration - format: date-time - title: Mute expires at - type: string - 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 + x-stream-index: "001.007" + membership: + $ref: '#/components/schemas/ChannelMember' + x-stream-index: "001.008" + messages: 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: string - x-stream-index: "027" - truncated_by: - $ref: '#/components/schemas/UserObjectRequest' - 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: string - x-stream-index: "009" - 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.009" - hide_messages_before: - format: date-time - type: string - x-stream-index: "001.010" - 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/Message' + $ref: '#/components/schemas/Message' type: array x-stream-index: "001.002" pending_messages: items: $ref: '#/components/schemas/PendingMessage' type: array - x-stream-index: "001.011" + x-stream-index: "001.012" pinned_messages: items: $ref: '#/components/schemas/Message' @@ -2311,6 +1818,11 @@ components: $ref: '#/components/schemas/Read' 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 @@ -2324,6 +1836,7 @@ components: - messages - pinned_messages - members + - threads - duration type: object ChannelStateResponseFields: @@ -2335,13 +1848,13 @@ components: description: Whether this channel is hidden or not title: Hidden type: boolean - x-stream-index: "009" + 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: string - x-stream-index: "010" + x-stream-index: "011" members: description: List of channel members items: @@ -2367,7 +1880,7 @@ components: $ref: '#/components/schemas/PendingMessage' title: Pending messages type: array - x-stream-index: "011" + x-stream-index: "012" pinned_messages: description: List of pinned messages in the channel items: @@ -2383,6 +1896,11 @@ components: 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 @@ -2400,41 +1918,8 @@ components: - messages - pinned_messages - members + - threads type: object - ChannelTruncatedEvent: - nullable: true - 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: string - 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: ChatEvent ChannelTypeConfig: nullable: true properties: @@ -2516,7 +2001,7 @@ components: x-stream-index: 003.002.001 permissions: items: - $ref: '#/components/schemas/PolicyRequest_1' + $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "001" push_notifications: @@ -2579,132 +2064,6 @@ components: - automod_behavior - commands type: object - 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: string - 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: ChatEvent - ChannelUnmutedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - x-stream-index: "001.002" - type: - default: channel.unmuted - type: string - x-stream-index: "001.001" - required: - - type - - created_at - title: ChannelUnmutedEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - ChannelUpdatedEvent: - nullable: true - 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: string - 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: ChatEvent - ChannelVisibleEvent: - nullable: true - 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: string - 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: ChatEvent ChannelsResponse: nullable: true properties: @@ -2723,121 +2082,6 @@ components: - duration title: Channels list type: object - ChatEvent: - description: The discriminator object for all websocket events, you should use - this to map event payloads to their own type - discriminator: - mapping: - any: '#/components/schemas/AnyEvent' - 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.muted: '#/components/schemas/ChannelMutedEvent' - channel.truncated: '#/components/schemas/ChannelTruncatedEvent' - channel.unfrozen: '#/components/schemas/ChannelUnFrozenEvent' - channel.unmuted: '#/components/schemas/ChannelUnmutedEvent' - channel.updated: '#/components/schemas/ChannelUpdatedEvent' - channel.visible: '#/components/schemas/ChannelVisibleEvent' - custom: '#/components/schemas/AnyEvent' - flag.updated: '#/components/schemas/FlagUpdatedEvent' - 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.flagged: '#/components/schemas/MessageFlaggedEvent' - message.new: '#/components/schemas/MessageNewEvent' - message.read: '#/components/schemas/MessageReadEvent' - message.unblocked: '#/components/schemas/MessageUnblockedEvent' - 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' - reaction.deleted: '#/components/schemas/ReactionDeletedEvent' - reaction.new: '#/components/schemas/ReactionNewEvent' - reaction.updated: '#/components/schemas/ReactionUpdatedEvent' - 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.flagged: '#/components/schemas/UserFlaggedEvent' - user.muted: '#/components/schemas/UserMutedEvent' - user.presence.changed: '#/components/schemas/UserPresenceChangedEvent' - user.reactivated: '#/components/schemas/UserReactivatedEvent' - user.unbanned: '#/components/schemas/UserUnbannedEvent' - user.unmuted: '#/components/schemas/UserUnmutedEvent' - user.unread_message_reminder: '#/components/schemas/UserUnreadReminderEvent' - 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/AnyEvent' - - $ref: '#/components/schemas/ChannelCreatedEvent' - - $ref: '#/components/schemas/ChannelDeletedEvent' - - $ref: '#/components/schemas/ChannelFrozenEvent' - - $ref: '#/components/schemas/ChannelHiddenEvent' - - $ref: '#/components/schemas/ChannelKickedEvent' - - $ref: '#/components/schemas/ChannelMutedEvent' - - $ref: '#/components/schemas/ChannelTruncatedEvent' - - $ref: '#/components/schemas/ChannelUnFrozenEvent' - - $ref: '#/components/schemas/ChannelUnmutedEvent' - - $ref: '#/components/schemas/ChannelUpdatedEvent' - - $ref: '#/components/schemas/ChannelVisibleEvent' - - $ref: '#/components/schemas/FlagUpdatedEvent' - - $ref: '#/components/schemas/HealthCheckEvent' - - $ref: '#/components/schemas/MemberAddedEvent' - - $ref: '#/components/schemas/MemberRemovedEvent' - - $ref: '#/components/schemas/MemberUpdatedEvent' - - $ref: '#/components/schemas/MessageDeletedEvent' - - $ref: '#/components/schemas/MessageFlaggedEvent' - - $ref: '#/components/schemas/MessageNewEvent' - - $ref: '#/components/schemas/MessageReadEvent' - - $ref: '#/components/schemas/MessageUnblockedEvent' - - $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/ReactionDeletedEvent' - - $ref: '#/components/schemas/ReactionNewEvent' - - $ref: '#/components/schemas/ReactionUpdatedEvent' - - $ref: '#/components/schemas/TypingStartEvent' - - $ref: '#/components/schemas/TypingStopEvent' - - $ref: '#/components/schemas/UserBannedEvent' - - $ref: '#/components/schemas/UserDeactivatedEvent' - - $ref: '#/components/schemas/UserDeletedEvent' - - $ref: '#/components/schemas/UserFlaggedEvent' - - $ref: '#/components/schemas/UserMutedEvent' - - $ref: '#/components/schemas/UserPresenceChangedEvent' - - $ref: '#/components/schemas/UserReactivatedEvent' - - $ref: '#/components/schemas/UserUnbannedEvent' - - $ref: '#/components/schemas/UserUnmutedEvent' - - $ref: '#/components/schemas/UserUnreadReminderEvent' - - $ref: '#/components/schemas/UserUpdatedEvent' - - $ref: '#/components/schemas/UserWatchingStartEvent' - - $ref: '#/components/schemas/UserWatchingStopEvent' CheckPushRequest: nullable: true properties: @@ -2958,9 +2202,8 @@ components: nullable: true properties: data: - additionalProperties: {} description: Error data - title: Data + title: ReadOnlyData type: object x-stream-index: "003" duration: @@ -3006,9 +2249,8 @@ components: nullable: true properties: data: - additionalProperties: {} description: Error data - title: Data + title: ReadOnlyData type: object x-stream-index: "003" duration: @@ -3076,32 +2318,6 @@ components: - set title: Command type: object - CommandRequest: - 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" - 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" - title: Command - type: object CommitMessageRequest: nullable: true type: object @@ -3178,6 +2394,11 @@ components: x-stream-index: "001" type: description: Block list type. + enum: + - regex + - regular + - domains + - emails title: Type type: string x-stream-index: "003" @@ -3201,7 +2422,6 @@ components: type: string x-stream-index: "004" options: - additionalProperties: {} type: object x-stream-index: "005" type: @@ -3283,9 +2503,9 @@ components: type: string x-stream-index: "022" blocklists: - additionalProperties: + items: $ref: '#/components/schemas/BlockListOptionsRequest' - type: object + type: array x-stream-index: "023" commands: description: List of commands that channel supports @@ -3335,7 +2555,7 @@ components: permissions: description: List of permissions for the channel type items: - $ref: '#/components/schemas/PolicyRequest' + $ref: '#/components/schemas/PolicyRequest_1' title: Permissions type: array x-stream-index: "019" @@ -3465,7 +2685,7 @@ components: x-stream-index: 001.001.001 permissions: items: - $ref: '#/components/schemas/PolicyRequest_1' + $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "002" push_notifications: @@ -3861,24 +3081,6 @@ components: - name - duration type: object - DeleteUserResponse: - nullable: true - properties: - duration: - description: Duration of the request in human-readable format - title: Duration - type: string - x-stream-index: "003.001" - task_id: - type: string - x-stream-index: "002" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "001" - required: - - task_id - - duration - type: object DeleteUsersRequest: nullable: true properties: @@ -4052,52 +3254,8 @@ components: - push_provider - id type: object - DeviceRequest: - nullable: true - properties: - created_at: - format: date-time - type: string - 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 - type: object ErrorResult: properties: - description: - x-stream-index: "002" stacktrace: type: string x-stream-index: "003" @@ -4111,104 +3269,6 @@ components: - type - description type: object - Event: - additionalProperties: true - description: Represents an BaseEvent that happened in Stream Chat - properties: - automoderation: - description: Only applicable to `message.flagged` BaseEvent. - title: Auto moderation - type: boolean - x-stream-index: "016" - automoderation_scores: - $ref: '#/components/schemas/ModerationResponse' - description: Only applicable to `message.flagged` BaseEvent. - title: Auto moderation scores - x-stream-index: "017" - channel: - $ref: '#/components/schemas/ChannelResponse' - x-stream-index: "008" - channel_id: - title: Channel ID - type: string - x-stream-index: "004" - channel_type: - title: Channel type - type: string - x-stream-index: "005" - cid: - description: Channel CID (:) - title: CID - type: string - x-stream-index: "003" - connection_id: - description: Only applicable to `health.check` BaseEvent - title: Connection ID - type: string - x-stream-index: "002" - created_at: - description: Date/time of creation - format: date-time - title: Created at - type: string - x-stream-index: "021" - created_by: - $ref: '#/components/schemas/UserObject' - description: User who issued moderation action. Only applicable to moderation-related - events - title: Created by - x-stream-index: "015" - me: - $ref: '#/components/schemas/OwnUser' - x-stream-index: "012" - member: - $ref: '#/components/schemas/ChannelMember' - x-stream-index: "009" - message: - $ref: '#/components/schemas/Message' - x-stream-index: "006" - parent_id: - description: ID of thread. Used in typing events - title: Parent ID - type: string - x-stream-index: "018" - reaction: - $ref: '#/components/schemas/Reaction' - x-stream-index: "007" - reason: - description: Ban reason. Only applicable to `user.banned` BaseEvent - title: Reason - type: string - x-stream-index: "014" - team: - type: string - x-stream-index: "019" - type: - description: Event type. To use custom BaseEvent types see Custom Events - documentation - title: Type - type: string - x-stream-docs-page-id: custom_events - x-stream-index: "001" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "010" - user_id: - title: User ID - type: string - x-stream-index: "011" - watcher_count: - description: Number of watchers who received this BaseEvent - format: int32 - title: Watcher count - type: integer - x-stream-index: "013" - required: - - type - - created_at - title: Event - type: object - x-stream-docs-page-id: event_object EventNotificationSettings: properties: apns: @@ -4222,102 +3282,25 @@ components: - apns type: object EventRequest: - additionalProperties: true - description: Represents an BaseEvent that happened in Stream Chat properties: - automoderation: - description: Only applicable to `message.flagged` BaseEvent. - title: Auto moderation - type: boolean - x-stream-index: "016" - automoderation_scores: - $ref: '#/components/schemas/ModerationResponseRequest' - description: Only applicable to `message.flagged` BaseEvent. - title: Auto moderation scores - x-stream-index: "017" - channel: - $ref: '#/components/schemas/ChannelResponseRequest' - x-stream-index: "008" - channel_id: - title: Channel ID - type: string - x-stream-index: "004" - channel_type: - title: Channel type - type: string - x-stream-index: "005" - cid: - description: Channel CID (:) - title: CID - type: string + custom: + type: object x-stream-index: "003" - connection_id: - description: Only applicable to `health.check` BaseEvent - title: Connection ID - type: string - x-stream-index: "002" - created_at: - description: Date/time of creation - format: date-time - title: Created at - type: string - x-stream-index: "021" - created_by: - $ref: '#/components/schemas/UserObjectRequest' - description: User who issued moderation action. Only applicable to moderation-related - events - title: Created by - x-stream-index: "015" - me: - $ref: '#/components/schemas/OwnUserRequest' - x-stream-index: "012" - member: - $ref: '#/components/schemas/ChannelMemberRequest' - x-stream-index: "009" - message: - $ref: '#/components/schemas/MessageRequest_1' - x-stream-index: "006" parent_id: - description: ID of thread. Used in typing events - title: Parent ID - type: string - x-stream-index: "018" - reaction: - $ref: '#/components/schemas/ReactionRequest' - x-stream-index: "007" - reason: - description: Ban reason. Only applicable to `user.banned` BaseEvent - title: Reason type: string - x-stream-index: "014" - team: - type: string - x-stream-index: "019" + x-stream-index: "002" type: - description: Event type. To use custom BaseEvent types see Custom Events - documentation - title: Type type: string - x-stream-docs-page-id: custom_events x-stream-index: "001" user: - $ref: '#/components/schemas/UserObjectRequest' - x-stream-index: "010" + $ref: '#/components/schemas/UserRequest' + x-stream-index: "004.002" user_id: - title: User ID type: string - x-stream-index: "011" - watcher_count: - description: Number of watchers who received this BaseEvent - format: int32 - title: Watcher count - type: integer - x-stream-index: "013" + x-stream-index: "004.001" required: - type - title: Event type: object - x-stream-docs-page-id: event_object EventResponse: nullable: true properties: @@ -4327,9 +3310,10 @@ components: type: string x-stream-index: "002.001" event: - $ref: '#/components/schemas/Event' + $ref: '#/components/schemas/WSEvent' x-stream-index: "001" required: + - event - duration type: object ExportChannelsRequest: @@ -4380,7 +3364,7 @@ components: properties: path: description: S3 path of result - title: Path + title: PathPrefix type: string x-stream-index: "002" s3_bucket_name: @@ -4642,7 +3626,6 @@ components: type: boolean x-stream-index: "004" custom: - additionalProperties: {} type: object x-stream-index: "022" details: @@ -4694,11 +3677,20 @@ components: title: Flag type: object FlagDetails: - additionalProperties: true properties: + Extra: + 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: @@ -4738,7 +3730,6 @@ components: nullable: true properties: custom: - additionalProperties: {} type: object x-stream-index: "004" reason: @@ -4771,38 +3762,6 @@ components: required: - duration type: object - FlagUpdatedEvent: - properties: - CreatedBy: - $ref: '#/components/schemas/UserObject' - x-stream-index: "004" - created_at: - format: date-time - type: string - x-stream-index: "003.002" - message: - $ref: '#/components/schemas/Message' - x-stream-index: "001.001" - thread_participants: - items: - $ref: '#/components/schemas/UserObject' - type: array - x-stream-index: "001.002" - type: - default: flag.updated - type: string - x-stream-index: "003.001" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "002.001" - required: - - type - - created_at - title: FlagUpdatedEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent GeofenceResponse: nullable: true properties: @@ -5017,9 +3976,12 @@ components: - duration type: object GetOGResponse: - additionalProperties: true nullable: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.018" actions: items: $ref: '#/components/schemas/Action' @@ -5113,6 +4075,7 @@ components: type: string x-stream-index: "001.001" required: + - Custom - duration title: Get OG Attachment type: object @@ -5222,7 +4185,6 @@ components: title: Error x-stream-index: "003" result: - additionalProperties: {} description: Result produced by task after completion title: Result type: object @@ -5250,6 +4212,20 @@ components: 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: + - duration + type: object GuestRequest: nullable: true properties: @@ -5312,41 +4288,16 @@ components: - room_id - room_name type: object - HealthCheckEvent: + HideChannelRequest: + nullable: true properties: - cid: - type: string + clear_history: + description: Whether to clear message history of the channel or not + title: Clear history + type: boolean x-stream-index: "001" - created_at: - format: date-time - type: string - x-stream-index: "003.002" - me: - $ref: '#/components/schemas/OwnUser' - x-stream-index: "002" - type: - default: health.check - type: string - x-stream-index: "003.001" - required: - - cid - - type - - created_at - title: HealthCheckEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - 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/UserObjectRequest' + user: + $ref: '#/components/schemas/UserObjectRequest' x-stream-index: "003.002" user_id: type: string @@ -5630,8 +4581,6 @@ components: path: type: string x-stream-index: "005" - result: - x-stream-index: "009" size: format: int64 type: integer @@ -5740,7 +4689,6 @@ components: type: string x-stream-index: "001" options: - additionalProperties: {} type: object x-stream-index: "002" required: @@ -5933,6 +4881,11 @@ components: 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/UserObjectRequest' x-stream-index: "003.002" @@ -5962,132 +4915,21 @@ components: 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/UserObjectRequest' - x-stream-index: "003.002" - user_id: - type: string - x-stream-index: "003.001" - required: - - message_id - type: object - MemberAddedEvent: - nullable: true - 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: string - 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: ChatEvent - MemberRemovedEvent: - nullable: true - 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: string - 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: ChatEvent - MemberUpdatedEvent: - nullable: true - 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: string - 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 + user_id: 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 + - message_id + - thread_id type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent MembersResponse: nullable: true properties: @@ -6106,10 +4948,12 @@ components: - duration type: object Message: - additionalProperties: true description: Represents any chat message - nullable: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "031" attachments: description: Array of message attachments items: @@ -6345,6 +5189,7 @@ components: - cid - created_at - updated_at + - Custom - shadowed - mentioned_users - silent @@ -6362,7 +5207,7 @@ components: form_data: additionalProperties: type: string - description: Data to execute command with + description: ReadOnlyData to execute command with title: Form data type: object x-stream-index: "002" @@ -6375,55 +5220,6 @@ components: required: - form_data type: object - MessageDeletedEvent: - nullable: true - 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: string - 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: ChatEvent MessageFlag: nullable: true properties: @@ -6439,7 +5235,6 @@ components: type: boolean x-stream-index: "001" custom: - additionalProperties: {} type: object x-stream-index: "008" details: @@ -6480,43 +5275,6 @@ components: - created_at - updated_at type: object - MessageFlaggedEvent: - nullable: true - properties: - cid: - type: string - x-stream-index: "001" - created_at: - format: date-time - type: string - x-stream-index: "005.002" - flag: - $ref: '#/components/schemas/Flag' - x-stream-index: "003.001" - message: - $ref: '#/components/schemas/Message' - x-stream-index: "002.001" - thread_participants: - items: - $ref: '#/components/schemas/UserObject' - type: array - x-stream-index: "002.002" - type: - default: message.flagged - type: string - x-stream-index: "005.001" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "004" - required: - - cid - - type - - created_at - title: MessageFlaggedEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent MessageModerationResult: properties: action: @@ -6563,79 +5321,29 @@ components: - created_at - updated_at type: object - MessageNewEvent: - nullable: true + MessagePaginationParamsRequest: properties: - channel_id: + created_at_after: + format: date-time type: string - x-stream-index: "005.002" - channel_type: + x-stream-index: "008" + created_at_after_or_equal: + format: date-time type: string - x-stream-index: "005.003" - cid: + x-stream-index: "007" + created_at_around: + format: date-time type: string - x-stream-index: "005.001" - created_at: + x-stream-index: "012" + created_at_before: format: date-time type: string - x-stream-index: "004.002" - message: - $ref: '#/components/schemas/Message' - x-stream-index: "001.001" - team: + x-stream-index: "010" + created_at_before_or_equal: + format: date-time 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: ChatEvent - MessagePaginationParamsRequest: - properties: - created_at_after: - format: date-time - type: string - x-stream-index: "008" - created_at_after_or_equal: - format: date-time - type: string - x-stream-index: "007" - created_at_around: - format: date-time - type: string - x-stream-index: "012" - created_at_before: - format: date-time - type: string - x-stream-index: "010" - created_at_before_or_equal: - format: date-time - type: string - x-stream-index: "009" - id_around: + x-stream-index: "009" + id_around: type: string x-stream-index: "011" id_gt: @@ -6674,17 +5382,19 @@ components: created_at: format: date-time type: string - x-stream-index: "004.002" + x-stream-index: "005.002" last_read_message_id: type: string - x-stream-index: "005" + 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: "004.001" + x-stream-index: "005.001" user: $ref: '#/components/schemas/UserObject' x-stream-index: "001.001" @@ -6698,501 +5408,117 @@ components: type: object x-stream-event-client-type: true x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent + x-stream-ws-base-event-name: VideoEvent MessageRequest: - additionalProperties: true - description: Represents any chat message properties: attachments: - description: Array of message attachments items: $ref: '#/components/schemas/AttachmentRequest' maximum: 30 - title: Message attachments - type: array - x-stream-docs-page-id: message_format#attachment-format - x-stream-index: "005" - cid: - description: Channel unique identifier in : format - items: - type: integer - title: Channel CID type: array - x-stream-index: "027" + x-stream-index: "004" + custom: + type: object + x-stream-index: "007" 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: "016" + x-stream-index: "010" id: - description: Message ID is unique string identifier of the message maxLength: 255 - title: ID type: string x-stream-index: "001" mentioned_users: - description: List of mentioned users items: type: string maximum: 25 - title: Mentioned Users type: array - x-stream-index: "009" + x-stream-index: "008" 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: "003" - parent: - items: - type: integer - type: array - x-stream-index: "007" parent_id: - description: ID of parent message (thread) - title: Parent message ID type: string - x-stream-docs-page-id: threads - x-stream-index: "006" + x-stream-index: "005" pin_expires: - description: Date when pinned message expires format: date-time - title: Pin expiration date type: string - x-stream-docs-page-id: pinned_messages - x-stream-index: "035" + x-stream-index: "015" pinned: - description: Whether message is pinned or not - title: Pinned type: boolean - x-stream-docs-page-id: pinned_messages - x-stream-index: "034" + x-stream-index: "013" pinned_at: - description: Date when message got pinned format: date-time nullable: true - title: Pinned at type: string - x-stream-docs-page-id: pinned_messages - x-stream-index: "037" - pinned_by: - description: Contains user who pinned the message - items: - type: integer - title: Pinned by - type: array - x-stream-docs-page-id: pinned_messages - x-stream-index: "036" + x-stream-index: "014" quoted_message_id: - title: ID of quoted message type: string - x-stream-docs-page-id: threads#quote-message - x-stream-index: "024" - reaction_scores: - description: 'An object containing scores of reactions of each type. Key: - reaction type (string), value: total score of reactions (int)' - items: - type: integer - title: Reaction scores - type: array - x-stream-index: "022" + x-stream-index: "009" 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: "008" + x-stream-index: "006" silent: - description: Whether message is silent or not - title: Silent type: boolean - x-stream-index: "032" + x-stream-index: "012" text: - description: Text of the message. Should be empty if `mml` is provided - title: Text type: string x-stream-index: "002" type: - description: Contains type of the message enum: - - regular - - ephemeral - - error - - reply + - '''''regular' - system - - deleted - title: Message Type type: string - x-stream-docs-page-id: message_format#message-types - x-stream-index: "017" + x-stream-index: "011" user: - $ref: '#/components/schemas/UserObjectRequest' - description: Sender of the message. Required when using server-side API - title: User object - x-stream-index: "004" + $ref: '#/components/schemas/UserRequest' + x-stream-index: "020.002" user_id: - title: User ID type: string - x-stream-index: "012" + x-stream-index: "020.001" required: - attachments - title: Message type: object - x-stream-docs-page-id: send_message - MessageRequest_1: - additionalProperties: true - description: Represents any chat message + MessageResponse: + nullable: true properties: - attachments: - description: Array of message attachments - items: - $ref: '#/components/schemas/AttachmentRequest' - 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: "043" - cid: - description: Channel unique identifier in : format - title: Channel CID - type: string - x-stream-index: "026" - 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: string - x-stream-index: "028" - deleted_at: - description: Date/time of deletion - format: date-time - title: Deleted at + duration: + description: Duration of the request in human-readable format + title: Duration type: string - x-stream-index: "030" - deleted_reply_count: - format: int32 - type: integer - x-stream-index: "021" - html: - description: Contains HTML markup of the message. Can only be set when using - server-side API - title: HTML content + x-stream-index: "002.001" + message: + $ref: '#/components/schemas/Message' + x-stream-index: "001" + required: + - duration + type: object + MessageWithPendingMetadataResponse: + nullable: true + properties: + duration: type: string - x-stream-index: "007" - i18n: + x-stream-index: 001.002.001 + message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.001" + pending_message_metadata: additionalProperties: type: string - description: Object with translations. Key `language` contains the original - language key. Other keys contain translations - title: Internationalization info + description: Metadata attached to a message while it is pending + title: Pending message metadata type: object - x-stream-docs-page-id: translation - x-stream-index: "041" - id: - description: Message ID is unique string identifier of the message - title: ID + x-stream-index: "002" + required: + - duration + type: object + ModerationResponse: + properties: + action: 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: "037" - latest_reactions: - description: List of 10 latest reactions to this message - items: - $ref: '#/components/schemas/ReactionRequest' - title: Latest reactions - type: array - x-stream-index: "012" - mentioned_users: - description: List of mentioned users - items: - $ref: '#/components/schemas/UserObjectRequest' - title: Mentioned Users - type: array - x-stream-index: "040" - 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/ReactionRequest' - 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: "017" - pin_expires: - description: Date when pinned message expires - format: date-time - title: Pin expiration date - type: string - x-stream-docs-page-id: pinned_messages - x-stream-index: "048" - pinned: - description: Whether message is pinned or not - title: Pinned - type: boolean - x-stream-docs-page-id: pinned_messages - x-stream-index: "044" - pinned_at: - description: Date when message got pinned - format: date-time - title: Pinned at - type: string - x-stream-docs-page-id: pinned_messages - x-stream-index: "045" - pinned_by: - $ref: '#/components/schemas/UserObjectRequest' - description: Contains user who pinned the message - title: Pinned by - x-stream-docs-page-id: pinned_messages - x-stream-index: "047" - quoted_message: - $ref: '#/components/schemas/MessageRequest_1' - description: Contains quoted message - title: Quoted message - x-stream-docs-page-id: threads#quote-message - x-stream-index: "023" - quoted_message_id: - title: ID of quoted message - type: string - x-stream-docs-page-id: threads#quote-message - x-stream-index: "022" - 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_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: "020" - shadowed: - description: Whether the message was shadowed or not - title: Shadowed - type: boolean - x-stream-docs-page-id: moderation#shadow-ban - x-stream-index: "033" - 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: "019" - silent: - description: Whether message is silent or not - title: Silent - type: boolean - x-stream-index: "042" - 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/UserObjectRequest' - title: Thread participants - type: array - x-stream-docs-page-id: threads#quote-message - x-stream-index: "025" - 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: string - x-stream-index: "029" - user: - $ref: '#/components/schemas/UserObjectRequest' - description: Sender of the message. Required when using server-side API - title: User object - x-stream-index: "010" - required: - - text - - mml - title: Message - type: object - x-stream-docs-page-id: send_message - MessageResponse: - 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/Message' - x-stream-index: "001" - required: - - duration - type: object - MessageUnblockedEvent: - properties: - cid: - type: string - x-stream-index: "001" - created_at: - format: date-time - type: string - x-stream-index: "004.002" - message: - $ref: '#/components/schemas/Message' - x-stream-index: "002.001" - thread_participants: - items: - $ref: '#/components/schemas/UserObject' - type: array - x-stream-index: "002.002" - type: - default: message.unblocked - type: string - x-stream-index: "004.001" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "003.001" - required: - - cid - - type - - created_at - title: MessageUnblockedEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - MessageUpdatedEvent: - nullable: true - 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: string - 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: ChatEvent - MessageWithPendingMetadataResponse: - nullable: true - properties: - duration: - type: string - x-stream-index: 001.002.001 - message: - $ref: '#/components/schemas/Message' - x-stream-index: "001.001" - pending_message_metadata: - additionalProperties: - type: string - description: Metadata attached to a message while it is pending - title: Pending message metadata - type: object - x-stream-index: "002" - required: - - duration - type: object - ModerationResponse: - properties: - action: - type: string - x-stream-index: "004" - automod_response: - x-stream-index: "005" - explicit: - format: float - type: number + x-stream-index: "004" + explicit: + format: float + type: number x-stream-index: "002" spam: format: float @@ -7209,26 +5535,6 @@ components: - action - automod_response type: object - ModerationResponseRequest: - properties: - action: - type: string - x-stream-index: "004" - automod_response: - x-stream-index: "005" - 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" - type: object MuteChannelRequest: nullable: true properties: @@ -7241,572 +5547,102 @@ components: 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/UserObjectRequest' - x-stream-index: "004.002" - user_id: - type: string - x-stream-index: "004.001" - required: - - channel_cids - 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/UserObjectRequest' - x-stream-index: "004.002" - user_id: - type: string - x-stream-index: "004.001" - required: - - target_ids - 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 - 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: string - 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: ChatEvent - 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: string - 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: ChatEvent - NotificationChannelMutesUpdatedEvent: - properties: - created_at: - format: date-time - type: string - 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: ChatEvent - 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: string - 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: ChatEvent - 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: string - 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: ChatEvent - 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: string - 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: ChatEvent - 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: string - 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: ChatEvent - 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: string - 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" - 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 - title: NotificationMarkReadEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - 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: string - x-stream-index: "001.002" - first_unread_message_id: - type: string - x-stream-index: "005" - last_read_at: - format: date-time - type: string - x-stream-index: "006" - last_read_message_id: - type: string - x-stream-index: "011" - 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 + description: Duration of mute in milliseconds + title: Expiration type: integer - x-stream-index: "007" + x-stream-index: "003" user: - $ref: '#/components/schemas/UserObject' + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string 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 - title: NotificationMarkUnreadEvent + - channel_cids type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - NotificationMutesUpdatedEvent: + MuteChannelResponse: + nullable: true properties: - created_at: - format: date-time - type: string - x-stream-index: "002.002" - me: - $ref: '#/components/schemas/OwnUser' + channel_mute: + $ref: '#/components/schemas/ChannelMute' + description: Object with channel mute (if one channel was muted) + title: Channel mute x-stream-index: "001" - type: - default: notification.mutes_updated + 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: "002.001" + 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: - - me - - type - - created_at - title: NotificationMutesUpdatedEvent + - duration type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - NotificationNewMessageEvent: + MuteUserRequest: + nullable: true properties: - channel: - $ref: '#/components/schemas/ChannelResponse' - x-stream-index: "004.004" - channel_id: - type: string + 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/UserObjectRequest' x-stream-index: "004.002" - channel_type: - type: string - x-stream-index: "004.003" - cid: + user_id: type: string x-stream-index: "004.001" - created_at: - format: date-time - type: string - 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 + - target_ids type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - NotificationRemovedFromChannelEvent: + MuteUserResponse: + nullable: true 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: string - x-stream-index: "001.002" - member: - $ref: '#/components/schemas/ChannelMember' - x-stream-index: "004.001" - type: - default: notification.removed_from_channel + duration: type: string - x-stream-index: "001.001" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "003.001" + 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: - - type - - created_at - - cid - - channel_id - - channel_type - title: NotificationRemovedFromChannelEvent + - duration type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent NotificationSettings: properties: call_live_started: @@ -7840,110 +5676,17 @@ components: - id type: object OwnUser: - additionalProperties: true - properties: - banned: - type: boolean - x-stream-index: "014" - channel_mutes: - items: - $ref: '#/components/schemas/ChannelMute' - type: array - x-stream-index: "026" - created_at: - format: date-time - type: string - x-stream-index: "007" - deactivated_at: - format: date-time - type: string - x-stream-index: "012" - deleted_at: - format: date-time - type: string - x-stream-index: "011" - devices: - items: - $ref: '#/components/schemas/Device' - type: array - x-stream-index: "024" - id: - type: string - x-stream-index: "003" - invisible: - type: boolean - x-stream-index: "021" - language: - type: string - x-stream-index: "030" - last_active: - format: date-time - type: string - x-stream-index: "010" - latest_hidden_channels: - items: - type: string - type: array - x-stream-index: "032" - mutes: - items: - $ref: '#/components/schemas/UserMute' - type: array - x-stream-index: "025" - online: - type: boolean - x-stream-index: "020" - 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: "031" - total_unread_count: - format: int32 - type: integer - x-stream-index: "028" - unread_channels: - format: int32 - type: integer - x-stream-index: "029" - unread_count: - format: int32 - type: integer - x-stream-index: "027" - updated_at: - format: date-time - type: string - x-stream-index: "008" - required: - - id - - role - - created_at - - updated_at - - banned - - online - - devices - - mutes - - channel_mutes - - unread_count - - total_unread_count - - unread_channels - - language - type: object - OwnUserRequest: - additionalProperties: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "005" banned: type: boolean x-stream-index: "014" channel_mutes: items: - $ref: '#/components/schemas/ChannelMuteRequest' + $ref: '#/components/schemas/ChannelMute' type: array x-stream-index: "026" created_at: @@ -7960,7 +5703,7 @@ components: x-stream-index: "011" devices: items: - $ref: '#/components/schemas/DeviceRequest' + $ref: '#/components/schemas/Device' type: array x-stream-index: "024" id: @@ -7971,7 +5714,7 @@ components: x-stream-index: "021" language: type: string - x-stream-index: "030" + x-stream-index: "031" last_active: format: date-time type: string @@ -7980,17 +5723,17 @@ components: items: type: string type: array - x-stream-index: "032" + x-stream-index: "033" mutes: items: - $ref: '#/components/schemas/UserMuteRequest' + $ref: '#/components/schemas/UserMute' type: array x-stream-index: "025" online: type: boolean x-stream-index: "020" push_notifications: - $ref: '#/components/schemas/PushNotificationSettingsRequest' + $ref: '#/components/schemas/PushNotificationSettings' x-stream-index: "023" role: type: string @@ -7999,7 +5742,7 @@ components: items: type: string type: array - x-stream-index: "031" + x-stream-index: "032" total_unread_count: format: int32 type: integer @@ -8012,10 +5755,30 @@ components: format: int32 type: integer x-stream-index: "027" + unread_threads: + format: int32 + type: integer + x-stream-index: "030" updated_at: format: date-time type: string 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 PaginationParamsRequest: properties: @@ -8076,7 +5839,6 @@ components: type: string x-stream-index: "004" condition: - additionalProperties: {} description: MongoDB style condition which decides whether or not the permission is granted title: Condition @@ -8225,7 +5987,11 @@ components: type: array x-stream-index: "004" required: + - action - name + - resources + - roles + - owner - priority type: object PolicyRequest_1: @@ -8271,11 +6037,7 @@ components: type: array x-stream-index: "004" required: - - action - name - - resources - - roles - - owner - priority type: object PushConfigRequest: @@ -8644,7 +6406,6 @@ components: type: boolean x-stream-index: "006" filter_conditions: - additionalProperties: {} type: object x-stream-index: "001" limit: @@ -8697,7 +6458,6 @@ components: nullable: true properties: filter_conditions: - additionalProperties: {} type: object x-stream-index: "001" limit: @@ -8777,7 +6537,6 @@ components: type: string x-stream-index: "006.011" filter_conditions: - additionalProperties: {} description: Filter to apply to members title: Filter conditions type: object @@ -8849,7 +6608,6 @@ components: QueryMessageFlagsRequest: properties: filter_conditions: - additionalProperties: {} type: object x-stream-index: "001" limit: @@ -8900,10 +6658,73 @@ components: - flags - duration type: object + QueryThreadsRequest: + nullable: true + properties: + connection_id: + type: string + 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" + 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: "005.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: "007.002" + user_id: + type: string + x-stream-index: "007.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 QueryUsersRequest: properties: filter_conditions: - additionalProperties: {} description: User filters title: Filter conditions type: object @@ -8955,10 +6776,13 @@ components: - filter_conditions type: object Reaction: - additionalProperties: true description: Represents user reaction to a message nullable: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "010" created_at: description: Date/time of creation format: date-time @@ -9004,105 +6828,10 @@ components: - score - created_at - updated_at + - Custom title: Reaction type: object x-stream-docs-page-id: send_reaction - ReactionDeletedEvent: - nullable: true - 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: string - 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: ChatEvent - ReactionNewEvent: - nullable: true - 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: string - 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: ChatEvent ReactionRemovalResponse: nullable: true properties: @@ -9121,10 +6850,12 @@ components: - duration type: object ReactionRequest: - additionalProperties: true description: Represents user reaction to a message - nullable: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "010" message_id: description: ID of a message user reacted to title: Message ID @@ -9172,51 +6903,6 @@ components: required: - duration type: object - ReactionUpdatedEvent: - nullable: true - 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: string - 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: ChatEvent ReactivateUserRequest: nullable: true properties: @@ -9428,7 +7114,6 @@ components: SearchRequest: properties: filter_conditions: - additionalProperties: {} description: Channel filter conditions maximum: 100 minimum: 1 @@ -9443,7 +7128,6 @@ components: type: integer x-stream-index: "004" message_filter_conditions: - additionalProperties: {} description: Message filter conditions title: Message filter type: object @@ -9517,8 +7201,11 @@ components: x-stream-index: "001" type: object SearchResultMessage: - additionalProperties: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.031" attachments: items: $ref: '#/components/schemas/Attachment' @@ -9667,6 +7354,7 @@ components: - cid - created_at - updated_at + - Custom - shadowed - mentioned_users - silent @@ -9712,49 +7400,53 @@ components: - event type: object SendMessageRequest: - description: Contains all information needed to send new message nullable: true properties: force_moderation: - description: Enable moderation on server-side requests - title: Force moderation - type: boolean - x-stream-index: "006" - is_pending_message: type: boolean - x-stream-index: "004" + x-stream-index: "007" keep_channel_hidden: - description: Keeps the channel hidden for the sender - title: Keep channel hidden type: boolean - x-stream-index: "007" + x-stream-index: "008" message: $ref: '#/components/schemas/MessageRequest' - x-stream-index: "001.001" + x-stream-index: "001" pending: - description: Make the message a pending message. This message will not be - viewable to others until it is committed. - title: Pending type: boolean - x-stream-index: "005" + x-stream-index: "006" pending_message_metadata: additionalProperties: type: string type: object - x-stream-index: "001.002" + x-stream-index: "005" skip_enrich_url: - description: Do not try to enrich the links within message - title: Skip Enrich URL type: boolean x-stream-index: "003" skip_push: - description: Disables all push notifications for this message - title: Skip push notifications type: boolean x-stream-index: "002" required: - message - title: Send Message Request + 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/Message' + x-stream-index: "001" + pending_message_metadata: + additionalProperties: + type: string + type: object + x-stream-index: "002" + required: + - message + - duration type: object SendReactionRequest: nullable: true @@ -9822,46 +7514,426 @@ components: description: Name of field to sort by title: Field type: string - x-stream-index: "001" + x-stream-index: "001" + 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 + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "009" + 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: string + x-stream-index: "007" + left_thread_at: + description: Left Thread At is the time when the user left the thread + format: date-time + title: Left Thread At + type: string + 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 + - 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: string + 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: + type: object + x-stream-index: "015" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + last_message_at: + format: date-time + type: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "001.017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + x-stream-index: "001.014" + required: + - channel_cid + - parent_message_id + - created_at + - updated_at + - title + - Custom + - latest_replies + title: Thread type: object - SortParamRequest: + ThreadStateResponse: nullable: true properties: - direction: - description: Direction of sorting, -1 for descending, 1 for ascending - format: int32 - title: Direction - type: integer + 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: string + 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: + type: object + x-stream-index: "001.015" + deleted_at: + format: date-time + type: string + x-stream-index: "001.013" + last_message_at: + format: date-time + type: string + x-stream-index: "001.010" + latest_replies: + items: + $ref: '#/components/schemas/Message' + type: array x-stream-index: "002" - field: - description: Name of field to sort by - title: Field + parent_message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.004" + parent_message_id: type: string - x-stream-index: "001" - type: object - TargetResolution: - properties: - bitrate: + x-stream-index: "001.003" + participant_count: format: int32 - maximum: 6000000 type: integer + x-stream-index: "001.008" + read: + items: + $ref: '#/components/schemas/Read' + type: array x-stream-index: "003" - height: - format: int32 - maximum: 2560 - minimum: 240 - type: integer - x-stream-index: "002" - width: + reply_count: format: int32 - maximum: 2560 - minimum: 240 type: integer - x-stream-index: "001" + 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: string + x-stream-index: "001.012" required: - - width - - height - - bitrate + - 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 @@ -10018,7 +8090,7 @@ components: type: string x-stream-index: "006" user: - $ref: '#/components/schemas/UserObjectRequest' + $ref: '#/components/schemas/UserRequest' x-stream-index: "007.002" user_id: type: string @@ -10041,78 +8113,6 @@ components: required: - duration 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: string - 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: ChatEvent - 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: string - 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: ChatEvent UnmuteChannelRequest: nullable: true properties: @@ -10223,27 +8223,60 @@ components: items: $ref: '#/components/schemas/UnreadCountsChannelType' type: array - x-stream-index: "003" + x-stream-index: "004" channels: items: $ref: '#/components/schemas/UnreadCountsChannel' type: array - x-stream-index: "002" + x-stream-index: "003" duration: description: Duration of the request in human-readable format title: Duration type: string - x-stream-index: "004.001" + x-stream-index: "006.001" + 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 - duration type: object + UnreadCountsThread: + properties: + last_read: + format: date-time + type: string + 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: @@ -10416,7 +8449,6 @@ components: nullable: true properties: set: - additionalProperties: {} type: object x-stream-index: "002.001" unset: @@ -10543,7 +8575,7 @@ components: type: boolean x-stream-index: "011" user: - $ref: '#/components/schemas/UserObjectRequest' + $ref: '#/components/schemas/UserRequest' x-stream-index: "014.002" user_id: type: string @@ -10656,7 +8688,7 @@ components: x-stream-index: 007.001.009 permissions: items: - $ref: '#/components/schemas/PolicyRequest' + $ref: '#/components/schemas/PolicyRequest_1' type: array x-stream-index: "003" push_notifications: @@ -10774,7 +8806,7 @@ components: x-stream-index: 003.001.001 permissions: items: - $ref: '#/components/schemas/PolicyRequest_1' + $ref: '#/components/schemas/PolicyRequest' type: array x-stream-index: "001" push_notifications: @@ -10865,76 +8897,143 @@ components: type: string x-stream-index: "004" required: - - description - title: Command + - 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 + UpdateMessagePartialRequest: + nullable: true + properties: + set: + description: Sets new field values + title: Set + type: object + x-stream-index: "002.001" + x-stream-map: + description: New value to set + key: field + title: Value + 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" + required: + - set + - unset + 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: + - message + - duration type: object - UpdateCommandResponse: + UpdateMessageRequest: nullable: true properties: - command: - $ref: '#/components/schemas/Command' + 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: "002.001" + 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 - UpdateMessagePartialRequest: + UpdateThreadPartialRequest: nullable: true properties: + ID: + type: string + writeOnly: true + x-stream-index: "001" set: - additionalProperties: {} - description: Sets new field values - title: Set type: object - x-stream-index: "001.001" - x-stream-map: - description: New value to set - key: field - title: Value - skip_enrich_url: - description: Do not try to enrich the links within message - title: Skip Enrich URL - type: boolean - x-stream-index: "005" + x-stream-index: "004.001" unset: - description: Array of field names to unset items: type: string - title: Unset type: array - x-stream-index: "001.002" + x-stream-index: "004.002" user: - $ref: '#/components/schemas/UserObjectRequest' - x-stream-index: "002.002" + $ref: '#/components/schemas/UserRequest' + x-stream-index: "003.002" user_id: type: string - x-stream-index: "002.001" + x-stream-index: "003.001" required: - set - unset type: object - UpdateMessageRequest: - description: Contains all information needed to update a message + UpdateThreadPartialResponse: nullable: true properties: - message: - $ref: '#/components/schemas/MessageRequest' - x-stream-index: "001.001" - pending_message_metadata: - additionalProperties: - type: string - type: object - x-stream-index: "001.002" - skip_enrich_url: - description: Do not try to enrich the links within message - title: Skip Enrich URL - type: boolean - x-stream-index: "003" + 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: - - message - title: Update Message Request + - duration type: object UpdateUserPartialRequest: nullable: true @@ -10945,7 +9044,6 @@ components: type: string x-stream-index: "001" set: - additionalProperties: {} type: object x-stream-index: "002.001" unset: @@ -11014,161 +9112,22 @@ components: - push_provider - duration type: object - UserBannedEvent: - nullable: true - 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: string - x-stream-index: "008.002" - created_by: - $ref: '#/components/schemas/UserObject' - x-stream-index: "001" - expiration: - format: date-time - type: string - 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: ChatEvent UserCustomEventRequest: - additionalProperties: true - properties: - created_at: - format: date-time - type: string - x-stream-index: "005" - type: - type: string - x-stream-index: "001" - required: - - type - type: object - UserDeactivatedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - 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: ChatEvent - UserDeletedEvent: - nullable: true properties: - created_at: - format: date-time - type: string - 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 + Custom: + type: object + writeOnly: true 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: ChatEvent - UserFlaggedEvent: - nullable: true - properties: created_at: format: date-time type: string - x-stream-index: "004.002" - target_user: - type: string - x-stream-index: "002" - target_users: - items: - type: string - type: array - x-stream-index: "003" + x-stream-index: "005" type: - default: user.flagged type: string - x-stream-index: "004.001" - user: - $ref: '#/components/schemas/UserObject' x-stream-index: "001" required: - type - - created_at - title: UserFlaggedEvent type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent UserMute: nullable: true properties: @@ -11194,82 +9153,23 @@ components: format: date-time title: Updated at type: string - 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 - UserMuteRequest: - nullable: true - properties: - created_at: - description: Date/time of creation - format: date-time - title: Created at - type: string - x-stream-index: "009" - expires: - description: Date/time of mute expiration - format: date-time - title: Expires - type: string - x-stream-index: "008" - target: - $ref: '#/components/schemas/UserObjectRequest' - 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: string - x-stream-index: "010" - user: - $ref: '#/components/schemas/UserObjectRequest' - description: Owner of channel mute - title: User - x-stream-index: "005" - type: object - UserMutedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - 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" + x-stream-index: "010" user: $ref: '#/components/schemas/UserObject' - x-stream-index: "003.001" + description: Owner of channel mute + title: User + x-stream-index: "005" required: - - type - created_at - title: UserMutedEvent + - updated_at type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent UserObject: - additionalProperties: true description: Represents chat user properties: + Custom: + type: object + writeOnly: true + x-stream-index: "005" ban_expires: description: Expiration date of the ban format: date-time @@ -11314,7 +9214,7 @@ components: description: Preferred language of a user title: Language type: string - x-stream-index: "030" + x-stream-index: "031" last_active: description: Date of last activity format: date-time @@ -11336,7 +9236,7 @@ components: format: date-time title: Revoke tokens issued before type: string - x-stream-index: "037" + x-stream-index: "038" role: description: Determines the set of user permissions title: Role @@ -11348,7 +9248,7 @@ components: type: string title: Teams type: array - x-stream-index: "031" + x-stream-index: "032" updated_at: description: Date/time of the last update format: date-time @@ -11359,14 +9259,18 @@ components: required: - id - role + - Custom - banned - online title: User object type: object UserObjectRequest: - additionalProperties: true description: Represents chat user properties: + Custom: + type: object + writeOnly: true + x-stream-index: "005" ban_expires: description: Expiration date of the ban format: date-time @@ -11390,7 +9294,7 @@ components: description: Preferred language of a user title: Language type: string - x-stream-index: "030" + x-stream-index: "031" push_notifications: $ref: '#/components/schemas/PushNotificationSettingsRequest' x-stream-index: "023" @@ -11399,7 +9303,7 @@ components: format: date-time title: Revoke tokens issued before type: string - x-stream-index: "037" + x-stream-index: "038" role: description: Determines the set of user permissions title: Role @@ -11411,59 +9315,14 @@ components: type: string title: Teams type: array - x-stream-index: "031" + x-stream-index: "032" required: - id title: User object type: object - UserPresenceChangedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - 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: ChatEvent - UserReactivatedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - 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: ChatEvent UserRequest: properties: custom: - additionalProperties: {} title: Custom type: object x-stream-index: "004" @@ -11476,6 +9335,9 @@ components: title: Image type: string x-stream-index: "003" + language: + type: string + x-stream-index: "005" name: description: Optional name of user title: Name @@ -11484,22 +9346,23 @@ components: role: title: Role type: string - x-backend-only: true - x-stream-index: "005" + x-stream-index: "006" teams: items: type: string title: Teams type: array - x-backend-only: true - x-stream-index: "006" + x-stream-index: "007" required: - id type: object UserResponse: - additionalProperties: true nullable: true properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.005" ban_expires: format: date-time type: string @@ -11530,7 +9393,7 @@ components: x-stream-index: "001.021" language: type: string - x-stream-index: "001.030" + x-stream-index: "001.031" last_active: format: date-time readOnly: true @@ -11546,7 +9409,7 @@ components: revoke_tokens_issued_before: format: date-time type: string - x-stream-index: "001.037" + x-stream-index: "001.038" role: type: string x-stream-index: "001.004" @@ -11559,219 +9422,20 @@ components: items: type: string type: array - x-stream-index: "001.031" + x-stream-index: "001.032" updated_at: format: date-time - readOnly: true - type: string - x-stream-index: "001.008" - required: - - id - - role - - banned - - online - - shadow_banned - type: object - UserUnbannedEvent: - nullable: true - 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: string - 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: ChatEvent - UserUnmutedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - x-stream-index: "004.002" - target_user: - type: string - x-stream-index: "002" - target_users: - items: - type: string - type: array - x-stream-index: "003" - type: - default: user.unmuted - type: string - x-stream-index: "004.001" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "001" - required: - - type - - created_at - title: UserUnmutedEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - UserUnreadReminderEvent: - properties: - channels: - additionalProperties: - $ref: '#/components/schemas/ChannelMessages' - type: object - x-stream-index: "003" - created_at: - format: date-time - type: string - x-stream-index: "001.002" - type: - default: user.unread_message_reminder - type: string - x-stream-index: "001.001" - user: - $ref: '#/components/schemas/UserObject' - x-stream-index: "002" - required: - - type - - created_at - - channels - title: UserUnreadReminderEvent - type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent - UserUpdatedEvent: - nullable: true - properties: - created_at: - format: date-time - type: string - 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: ChatEvent - UserWatchingStartEvent: - nullable: true - 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: string - 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: ChatEvent - 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: string - 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 + readOnly: true + type: string + x-stream-index: "001.008" + required: + - id + - role + - Custom + - banned + - online + - shadow_banned type: object - x-stream-event-client-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: ChatEvent UsersResponse: nullable: true properties: @@ -11817,13 +9481,85 @@ components: - camera_default_on - camera_facing type: object - WSClientEvent: - description: This is just a placeholder for all client events + WSEvent: + description: Represents an BaseEvent that happened in Stream Chat properties: + Custom: + type: object + writeOnly: true + x-stream-index: "021" + automoderation: + type: boolean + x-stream-index: "017" + automoderation_scores: + $ref: '#/components/schemas/ModerationResponse' + x-stream-index: "018" + channel: + $ref: '#/components/schemas/ChannelResponse' + x-stream-index: "008" + 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: string + x-stream-index: "022" + created_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "016" + me: + $ref: '#/components/schemas/OwnUser' + x-stream-index: "013" + member: + $ref: '#/components/schemas/ChannelMember' + x-stream-index: "010" + message: + $ref: '#/components/schemas/Message' + x-stream-index: "006" + parent_id: + type: string + x-stream-index: "019" + reaction: + $ref: '#/components/schemas/Reaction' + x-stream-index: "007" + reason: + type: string + x-stream-index: "015" + team: + type: string + x-stream-index: "020" + thread: + $ref: '#/components/schemas/Thread' + x-stream-index: "009" + type: + type: string + x-stream-index: "001" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "011" + user_id: + type: string + x-stream-index: "012" + watcher_count: + format: int32 + type: integer + x-stream-index: "014" + required: + - type + - Custom + - created_at + title: Event type: object - x-stream-is-ws-client-event: true + x-stream-docs-page-id: event_object XiaomiConfigFields: properties: enabled: @@ -11893,18 +9629,15 @@ components: in: header name: Stream-Auth-Type type: apiKey -externalDocs: - description: Stream Chat Documentation - url: https://getstream.io/chat/docs/ info: - title: Stream Chat API - version: v95.2.2 + title: Stream API + version: v98.0.2-message-blocked-event.1 openapi: 3.0.3 paths: /app: get: description: | - This method returns the application settings + This Method returns the application settings operationId: GetApp responses: "200": @@ -11925,26 +9658,12 @@ paths: 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 App Settings tags: - Settings - x-stream-docs-page-id: app_setting_overview patch: description: | - This method updates one or more application settings + This Method updates one or more application settings operationId: UpdateApp requestBody: content: @@ -11971,24 +9690,9 @@ paths: 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 App Settings tags: - Settings - x-stream-docs-page-id: app_setting_overview - x-stream-server-side: true /blocklists: get: description: | @@ -12013,25 +9717,10 @@ paths: 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 block lists tags: - Settings - Moderation - x-stream-docs-page-id: block_lists - x-stream-server-side: true post: description: | Creates a new application blocklist, once created the blocklist can be used by any channel type @@ -12062,25 +9751,10 @@ paths: 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 block list tags: - Settings - Moderation - x-stream-docs-page-id: block_lists - x-stream-server-side: true /blocklists/{name}: delete: description: | @@ -12115,25 +9789,10 @@ paths: 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 block list tags: - Settings - Moderation - x-stream-docs-page-id: block_lists - x-stream-server-side: true get: description: | Returns block list by given name @@ -12167,25 +9826,10 @@ paths: 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 block list tags: - Settings - Moderation - x-stream-docs-page-id: block_lists - x-stream-server-side: true put: description: | Updates contents of the block list @@ -12223,25 +9867,45 @@ paths: 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 block list tags: - Settings - Moderation - x-stream-docs-page-id: block_lists - x-stream-server-side: true + /calls: + post: + description: | + Retrieves the token to join a call + + Required permissions: + - JoinCall + - ReadChannel + operationId: GetCallToken + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetCallTokenRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/GetCallTokenResponse' + 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 Token /calls/{call_id}: post: description: | @@ -12284,24 +9948,7 @@ paths: 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 Token - x-stream-docs-page-id: video - x-stream-permissions: - JoinCall: To request the call token - ReadChannel: To read the channel /channels: post: description: | @@ -12336,25 +9983,9 @@ paths: 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 channels tags: - Channels - x-stream-docs-page-id: query_channels - x-stream-permissions: - ReadChannel: To access channels that were requested /channels/{type}/{id}: delete: description: | @@ -12409,32 +10040,9 @@ paths: 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 channel tags: - Channels - x-stream-docs-page-id: channel_delete - x-stream-events: - channel.deleted: When channel is deleted - x-stream-events-v2: - channel.deleted: - description: When channel is deleted - schema: - ref: '#/components/schemas/ChannelDeletedEvent' - x-stream-permissions: - DeleteChannel: To delete a channel patch: description: | Updates certain fields of the channel @@ -12487,34 +10095,9 @@ paths: 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: Partially update channel tags: - Channels - x-stream-docs-page-id: channel_update#partial-update - x-stream-events: - channel.updated: When channel is updated - x-stream-events-v2: - channel.updated: - description: When channel is updated - schema: - ref: '#/components/schemas/ChannelUpdatedEvent' - x-stream-permissions: - UpdateChannel: To update channel data - UpdateChannelCooldown: To update channel cooldown (slowmode) - UpdateChannelFrozen: To freeze or unfreeze a channel post: description: | Change channel data @@ -12575,57 +10158,9 @@ paths: 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 channel tags: - Channels - x-stream-docs-page-id: channel_update - x-stream-events: - channel.updated: When channel is successfully updated - member.added: When new channel member is added - member.removed: When new channel member is removed - member.updated: When new channel member is updated - message.new: When system `message` is set - x-stream-events-v2: - channel.updated: - description: When channel is successfully updated - schema: - ref: '#/components/schemas/ChannelUpdatedEvent' - member.added: - description: When new channel member is added - schema: - ref: '#/components/schemas/MemberAddedEvent' - member.removed: - description: When new channel member is removed - schema: - ref: '#/components/schemas/MemberRemovedEvent' - member.updated: - description: When new channel member is updated - schema: - ref: '#/components/schemas/MemberUpdatedEvent' - message.new: - description: When system `message` is set - schema: - ref: '#/components/schemas/MessageNewEvent' - x-stream-permissions: - AddOwnChannelMembership: To add own channel membership (join a channel) - RemoveOwnChannelMembership: To remove own channel membership (leave a channel) - UpdateChannel: To update channel data - UpdateChannelCooldown: To update channel cooldown (slowmode) - UpdateChannelFrozen: To freeze or unfreeze a channel - UpdateChannelMembers: To add, remove or modify channel members /channels/{type}/{id}/call: post: description: | @@ -12675,32 +10210,12 @@ paths: 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 a call - x-stream-docs-page-id: video - x-stream-permissions: - CreateCall: To create a call - ReadChannel: To read the channel /channels/{type}/{id}/event: post: description: | Sends event to the channel - Sends events: - - any - Required permissions: - SendCustomEvent operationId: SendEvent @@ -12748,32 +10263,9 @@ paths: 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 event tags: - Events - x-stream-docs-page-id: event_object - x-stream-events: - any: Any event could be sent through this endpoint - x-stream-events-v2: - any: - description: Any event could be sent through this endpoint - schema: - ref: '#/components/schemas/AnyEvent' - x-stream-permissions: - SendCustomEvent: To send custom events /channels/{type}/{id}/file: delete: description: | @@ -12828,26 +10320,10 @@ paths: 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 file tags: - Messages - Files - x-stream-docs-page-id: file_uploads - x-stream-permissions: - DeleteAttachment: To delete a file post: description: | Uploads file @@ -12895,26 +10371,10 @@ paths: 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: Upload file tags: - Messages - Files - x-stream-docs-page-id: file_uploads - x-stream-permissions: - UploadAttachment: To upload a file /channels/{type}/{id}/hide: post: description: | @@ -12966,32 +10426,9 @@ paths: 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: Hide channel tags: - Channels - x-stream-docs-page-id: channel_delete#hiding-a-channel - x-stream-events: - channel.hidden: When channel is hidden - x-stream-events-v2: - channel.hidden: - description: When channel is hidden - schema: - ref: '#/components/schemas/ChannelHiddenEvent' - x-stream-permissions: - ReadChannel: To hide specified channel /channels/{type}/{id}/image: delete: description: | @@ -13046,26 +10483,10 @@ paths: 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 image tags: - Messages - Files - x-stream-docs-page-id: file_uploads - x-stream-permissions: - DeleteAttachment: To delete an image post: description: | Uploads image @@ -13113,26 +10534,10 @@ paths: 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: Upload image tags: - Messages - Files - x-stream-docs-page-id: file_uploads - x-stream-permissions: - UploadAttachment: To upload an image /channels/{type}/{id}/message: post: description: | @@ -13155,29 +10560,32 @@ paths: name: type required: true schema: + description: Channel type to interact with + title: Channel type type: string writeOnly: true - x-stream-index: "008.001" + 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: "008.002" + x-stream-index: "009.002" requestBody: content: application/json: schema: $ref: '#/components/schemas/SendMessageRequest' - description: Send Message Request required: true responses: "201": content: application/json: schema: - $ref: '#/components/schemas/MessageWithPendingMetadataResponse' + $ref: '#/components/schemas/SendMessageResponse' description: Successful response "400": content: @@ -13191,44 +10599,9 @@ paths: 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 new message tags: - Messages - x-stream-docs-page-id: send_message - x-stream-events: - message.new: When the message was successfully sent - message.updated: Parent message gets this event in case the message had been - sent to a thread - x-stream-events-v2: - message.new: - description: When the message was successfully sent - schema: - ref: '#/components/schemas/MessageNewEvent' - message.updated: - description: Parent message gets this event in case the message had been - sent to a thread - schema: - ref: '#/components/schemas/MessageUpdatedEvent' - x-stream-permissions: - AddLinks: To send message with URLs - CreateMessage: To send a message - PinMessage: To send pinned message - SkipChannelCooldown: To bypass channel slow mode - SkipMessageModeration: To bypass automatic message moderation - UseFrozenChannel: To send a message to frozen channel /channels/{type}/{id}/messages: get: description: | @@ -13282,28 +10655,13 @@ paths: 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 many messages tags: - Messages - x-stream-permissions: - ReadChannel: To read specified messages /channels/{type}/{id}/query: post: description: | - This method creates a channel or returns an existing one with matching attributes + This Method creates a channel or returns an existing one with matching attributes Sends events: - channel.created @@ -13357,50 +10715,9 @@ paths: 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 channel tags: - Channels - x-stream-docs-page-id: watch_channel - x-stream-events: - channel.created: If channel is created - member.added: If member is added - member.removed: If member is removed - member.updated: If member is updated - user.watching.start: 'If `watch: true`' - x-stream-events-v2: - channel.created: - description: If channel is created - schema: - ref: '#/components/schemas/ChannelCreatedEvent' - member.added: - description: If member is added - schema: - ref: '#/components/schemas/MemberAddedEvent' - member.removed: - description: If member is removed - schema: - ref: '#/components/schemas/MemberRemovedEvent' - member.updated: - description: If member is updated - schema: - ref: '#/components/schemas/MemberUpdatedEvent' - user.watching.start: - description: 'If `watch: true`' - schema: - ref: '#/components/schemas/UserWatchingStartEvent' /channels/{type}/{id}/read: post: description: | @@ -13452,32 +10769,10 @@ paths: 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: Mark read tags: - Channels - Messages - x-stream-events: - message.read: When the channel is marked as read - x-stream-events-v2: - message.read: - description: When the channel is marked as read - schema: - ref: '#/components/schemas/MessageReadEvent' - x-stream-permissions: - ReadChannel: To mark message read /channels/{type}/{id}/show: post: description: | @@ -13526,30 +10821,9 @@ paths: 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: Show channel tags: - Channels - x-stream-docs-page-id: channel_delete#hiding-a-channel - x-stream-events: - channel.visible: When channel is shown - x-stream-events-v2: - channel.visible: - description: When channel is shown - schema: - ref: '#/components/schemas/ChannelVisibleEvent' /channels/{type}/{id}/truncate: post: description: | @@ -13569,26 +10843,77 @@ paths: schema: type: string writeOnly: true - x-stream-index: "001.001" + 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: + - Channels + /channels/{type}/{id}/unread: + post: + description: | + Marks channel as unread from a specific message + + Required permissions: + - ReadChannel + 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: "001.002" + x-stream-index: "002.002" requestBody: content: application/json: schema: - $ref: '#/components/schemas/TruncateChannelRequest' + $ref: '#/components/schemas/MarkUnreadRequest' required: true responses: "201": content: application/json: schema: - $ref: '#/components/schemas/TruncateChannelResponse' + $ref: '#/components/schemas/Response' description: Successful response "400": content: @@ -13602,69 +10927,45 @@ paths: 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: Truncate channel + summary: Mark unread tags: - Channels - x-stream-docs-page-id: truncate_channel - x-stream-events: - channel.truncated: When channel is truncated - x-stream-events-v2: - channel.truncated: - description: When channel is truncated - schema: - ref: '#/components/schemas/ChannelTruncatedEvent' - x-stream-permissions: - DeleteChannel: To truncate a channel if TruncateChannel is not allowed or - hard_delete is requested - TruncateChannel: To truncate a channel if DeleteChannel is not allowed - /channels/{type}/{id}/unread: + - Messages + /channels/{type}/query: post: description: | - Marks channel as unread from a specific message + This Method creates a channel or returns an existing one with matching attributes - Required permissions: - - ReadChannel - operationId: MarkUnread + Sends events: + - channel.created + - member.added + - member.removed + - member.updated + - user.watching.start + 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.001" - - in: path - name: id - required: true - schema: - type: string - writeOnly: true - x-stream-index: "002.002" + x-stream-index: "002" requestBody: content: application/json: schema: - $ref: '#/components/schemas/MarkUnreadRequest' + $ref: '#/components/schemas/ChannelGetOrCreateRequest' required: true responses: "201": content: application/json: schema: - $ref: '#/components/schemas/Response' + $ref: '#/components/schemas/ChannelStateResponse' description: Successful response "400": content: @@ -13678,25 +10979,9 @@ paths: 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: Mark unread + summary: Get or create channel tags: - Channels - - Messages - x-stream-permissions: - ReadChannel: To mark messages unread /channels/delete: post: description: | @@ -13733,33 +11018,10 @@ paths: 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: Deletes channels asynchronously tags: - Channels - GDPR - x-stream-docs-page-id: gdpr - x-stream-events: - channel.deleted: When a channel is deleted - x-stream-events-v2: - channel.deleted: - description: When a channel is deleted - schema: - ref: '#/components/schemas/ChannelDeletedEvent' - x-stream-permissions: - DeleteChannel: To delete a channel /channels/read: post: description: | @@ -13796,32 +11058,10 @@ paths: 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: Mark channels as read tags: - Channels - Messages - x-stream-events: - message.read: When the channel is marked as read - x-stream-events-v2: - message.read: - description: When the channel is marked as read - schema: - ref: '#/components/schemas/MessageReadEvent' - x-stream-permissions: - ReadChannel: To mark message read /channeltypes: get: description: | @@ -13846,25 +11086,10 @@ paths: 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 channel types tags: - Settings - Channel types - x-stream-docs-page-id: channel_features - x-stream-server-side: true post: description: | Creates new channel type @@ -13894,25 +11119,10 @@ paths: 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 channel type tags: - Settings - Channel types - x-stream-docs-page-id: channel_features - x-stream-server-side: true /channeltypes/{name}: delete: description: | @@ -13947,25 +11157,10 @@ paths: 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 channel type tags: - Settings - Channel types - x-stream-docs-page-id: channel_features - x-stream-server-side: true get: description: | Gets channel type @@ -13999,25 +11194,10 @@ paths: 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 channel type tags: - Settings - Channel types - x-stream-docs-page-id: channel_features - x-stream-server-side: true put: description: | Updates channel type @@ -14055,25 +11235,10 @@ paths: 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 channel type tags: - Settings - Channel types - x-stream-docs-page-id: channel_features - x-stream-server-side: true /check_push: post: description: | @@ -14104,25 +11269,10 @@ paths: 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: Check push tags: - Settings - Testing - x-stream-docs-page-id: push_test - x-stream-server-side: true /check_sns: post: description: | @@ -14153,25 +11303,10 @@ paths: 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: Check SNS tags: - Settings - Testing - x-stream-docs-page-id: sns - x-stream-server-side: true /check_sqs: post: description: | @@ -14202,25 +11337,10 @@ paths: 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: Check SQS tags: - Settings - Testing - x-stream-docs-page-id: sqs - x-stream-server-side: true /commands: get: description: | @@ -14245,24 +11365,9 @@ paths: 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 commands tags: - Custom commands - x-stream-docs-page-id: custom_commands_webhook - x-stream-server-side: true post: description: | Creates custom chat command @@ -14293,24 +11398,9 @@ paths: 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 command tags: - Custom commands - x-stream-docs-page-id: custom_commands_webhook - x-stream-server-side: true /commands/{name}: delete: description: | @@ -14342,24 +11432,9 @@ paths: 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 command tags: - Custom commands - x-stream-docs-page-id: custom_commands_webhook - x-stream-server-side: true get: description: | Returns custom command by its name @@ -14390,24 +11465,9 @@ paths: 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 command tags: - Custom commands - x-stream-docs-page-id: custom_commands_webhook - x-stream-server-side: true put: description: | Updates custom chat command @@ -14448,24 +11508,9 @@ paths: 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 command tags: - Custom commands - x-stream-docs-page-id: custom_commands_webhook - x-stream-server-side: true /connect: get: description: | @@ -14495,30 +11540,9 @@ paths: 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: Connect (WebSocket) tags: - Users - x-stream-docs-page-id: init_and_users - x-stream-events: - user.updated: When user is created or updated - x-stream-events-v2: - user.updated: - description: When user is created or updated - schema: - ref: '#/components/schemas/UserUpdatedEvent' /devices: delete: description: | @@ -14560,23 +11584,9 @@ paths: 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 tags: - Devices - x-stream-docs-page-id: push_devices get: description: | Returns all available devices @@ -14609,23 +11619,9 @@ paths: 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 tags: - 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 @@ -14649,24 +11645,10 @@ paths: 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 tags: - Devices - Push - x-stream-docs-page-id: push_devices /export/users: post: description: | @@ -14697,25 +11679,9 @@ paths: 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: Export users tags: - Users - x-stream-beta: true - x-stream-docs-page-id: gdpr - x-stream-server-side: true /export_channels: post: description: | @@ -14746,24 +11712,9 @@ paths: 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: Export channels tags: - Channels - x-stream-docs-page-id: exporting_channels - x-stream-server-side: true /export_channels/{id}: get: description: |2+ @@ -14798,24 +11749,9 @@ paths: 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: Export channels status tags: - Channels - x-stream-docs-page-id: exporting_channels - x-stream-server-side: true /guest: post: description: | @@ -14846,23 +11782,9 @@ paths: 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 tags: - Users - x-stream-docs-page-id: guest_users /import_urls: post: description: | @@ -14893,25 +11815,9 @@ paths: 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 import URL tags: - Imports - x-stream-beta: true - x-stream-docs-page-id: imports - x-stream-server-side: true /imports: get: description: | @@ -14936,25 +11842,9 @@ paths: 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 import tags: - Imports - x-stream-beta: true - x-stream-docs-page-id: imports - x-stream-server-side: true post: description: | Creates a new import @@ -14984,25 +11874,9 @@ paths: 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 import tags: - Imports - x-stream-beta: true - x-stream-docs-page-id: imports - x-stream-server-side: true /imports/{id}: get: description: | @@ -15035,25 +11909,9 @@ paths: 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 import tags: - Imports - x-stream-beta: true - x-stream-docs-page-id: imports - x-stream-server-side: true /longpoll: get: description: | @@ -15090,30 +11948,9 @@ paths: 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: Long Poll (Transport) tags: - Users - x-stream-docs-page-id: init_and_users - x-stream-events: - user.updated: When user is created or updated - x-stream-events-v2: - user.updated: - description: When user is created or updated - schema: - ref: '#/components/schemas/UserUpdatedEvent' /members: get: description: | @@ -15149,25 +11986,9 @@ paths: 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 members tags: - Channels - x-stream-docs-page-id: query_members - x-stream-permissions: - ReadChannel: To read members of specified channel /messages/{id}: delete: description: | @@ -15222,32 +12043,9 @@ paths: 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 message tags: - Messages - x-stream-docs-page-id: send_message#delete-a-message - x-stream-events: - message.deleted: When message is deleted - x-stream-events-v2: - message.deleted: - description: When message is deleted - schema: - ref: '#/components/schemas/MessageDeletedEvent' - x-stream-permissions: - DeleteMessage: To delete a message get: description: | Returns message by ID @@ -15284,25 +12082,9 @@ paths: 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 message tags: - Messages - x-stream-docs-page-id: send_message#get-a-message - x-stream-permissions: - ReadChannel: To read specified message post: description: | Updates message with new data @@ -15321,24 +12103,21 @@ paths: name: id required: true schema: - description: Message ID - title: ID type: string writeOnly: true - x-stream-index: "002.001" + x-stream-index: "003.001" requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateMessageRequest' - description: Update Message Request required: true responses: "201": content: application/json: schema: - $ref: '#/components/schemas/MessageResponse' + $ref: '#/components/schemas/UpdateMessageResponse' description: Successful response "400": content: @@ -15352,35 +12131,9 @@ paths: 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 message tags: - Messages - x-stream-docs-page-id: send_message#update-a-message - x-stream-events: - message.updated: When message is updated - x-stream-events-v2: - message.updated: - description: When message is updated - schema: - ref: '#/components/schemas/MessageUpdatedEvent' - x-stream-permissions: - AddLinks: To add URLs to a message - PinMessage: To pin a message - SkipMessageModeration: To bypass automatic message moderation - UpdateMessage: To update message text or other data put: description: | Updates certain fields of the message @@ -15399,8 +12152,6 @@ paths: name: id required: true schema: - description: Message ID - title: ID type: string writeOnly: true x-stream-index: "003.001" @@ -15415,7 +12166,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/MessageResponse' + $ref: '#/components/schemas/UpdateMessagePartialResponse' description: Successful response "400": content: @@ -15429,35 +12180,9 @@ paths: 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: Partially message update tags: - Messages - x-stream-docs-page-id: send_message#partial-update - x-stream-events: - message.updated: When message is updated - x-stream-events-v2: - message.updated: - description: When message is updated - schema: - ref: '#/components/schemas/MessageUpdatedEvent' - x-stream-permissions: - AddLinks: To add URLs to a message - PinMessage: To pin a message - SkipMessageModeration: To bypass automatic message moderation - UpdateMessage: To update message text or other data /messages/{id}/action: post: description: | @@ -15504,31 +12229,9 @@ paths: 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: Run message command action tags: - Messages - x-stream-events: - message.new: When messages became visible after command execution - x-stream-events-v2: - message.new: - description: When messages became visible after command execution - schema: - ref: '#/components/schemas/MessageNewEvent' - x-stream-permissions: - RunMessageAction: To execute action on specified message /messages/{id}/commit: post: description: | @@ -15565,35 +12268,7 @@ paths: 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: Commit message - x-stream-events: - message.new: When the message was successfully sent - message.updated: Parent message gets this event in case the message had been - sent to a thread - x-stream-events-v2: - message.new: - description: When the message was successfully sent - schema: - ref: '#/components/schemas/MessageNewEvent' - message.updated: - description: Parent message gets this event in case the message had been - sent to a thread - schema: - ref: '#/components/schemas/MessageUpdatedEvent' - x-stream-server-side: true /messages/{id}/reaction: post: description: | @@ -15642,39 +12317,10 @@ paths: 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 reaction tags: - Messages - Reactions - x-stream-docs-page-id: send_reaction - x-stream-events: - reaction.new: When new reaction is created - reaction.updated: When reaction is updated - x-stream-events-v2: - reaction.new: - description: When new reaction is created - schema: - ref: '#/components/schemas/ReactionNewEvent' - reaction.updated: - description: When reaction is updated - schema: - ref: '#/components/schemas/ReactionUpdatedEvent' - x-stream-permissions: - CreateReaction: To send a reaction - UseFrozenChannel: To send a message to frozen channel /messages/{id}/reaction/{type}: delete: description: | @@ -15732,33 +12378,10 @@ paths: 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 reaction tags: - Messages - Reactions - x-stream-docs-page-id: send_reaction - x-stream-events: - reaction.deleted: When reaction is deleted - x-stream-events-v2: - reaction.deleted: - description: When reaction is deleted - schema: - ref: '#/components/schemas/ReactionDeletedEvent' - x-stream-permissions: - DeleteReaction: To delete a reaction /messages/{id}/reactions: get: description: | @@ -15814,26 +12437,10 @@ paths: 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 reactions tags: - Messages - Reactions - x-stream-docs-page-id: send_reaction - x-stream-permissions: - ReadChannel: To read specified reactions /messages/{id}/translate: post: description: | @@ -15880,32 +12487,9 @@ paths: 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: Translate message tags: - Messages - x-stream-docs-page-id: translation - x-stream-events: - message.updated: When event is updated with translation data - x-stream-events-v2: - message.updated: - description: When event is updated with translation data - schema: - ref: '#/components/schemas/MessageUpdatedEvent' - x-stream-permissions: - ReadChannel: To access channel of specified message /messages/{parent_id}/replies: get: description: | @@ -15998,25 +12582,9 @@ paths: 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 replies tags: - Messages - x-stream-docs-page-id: threads - x-stream-permissions: - ReadChannel: To read replies of specified message /moderation/ban: delete: description: | @@ -16069,34 +12637,10 @@ paths: 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: Unban user tags: - Users - Moderation - x-stream-docs-page-id: moderation#ban - x-stream-events: - user.unbanned: When user is unbanned - x-stream-events-v2: - user.unbanned: - description: When user is unbanned - schema: - ref: '#/components/schemas/UserUnbannedEvent' - x-stream-permissions: - BanChannelMember: To unban channel member - BanUser: To unban a user post: description: | Restricts user activity either in specific channel or globally @@ -16133,34 +12677,10 @@ paths: 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: Ban user tags: - Users - Moderation - x-stream-docs-page-id: moderation#ban - x-stream-events: - user.banned: When user is banned - x-stream-events-v2: - user.banned: - description: When user is banned - schema: - ref: '#/components/schemas/UserBannedEvent' - x-stream-permissions: - BanChannelMember: To ban channel member - BanUser: To ban a user /moderation/flag: post: description: | @@ -16199,40 +12719,11 @@ paths: 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: Flag tags: - Moderation - Messages - Users - x-stream-docs-page-id: moderation#flag - x-stream-events: - message.flagged: When message is flagged - user.flagged: When user is flagged - x-stream-events-v2: - message.flagged: - description: When message is flagged - schema: - ref: '#/components/schemas/MessageFlaggedEvent' - user.flagged: - description: When user is flagged - schema: - ref: '#/components/schemas/UserFlaggedEvent' - x-stream-permissions: - FlagMessage: To flag a message - FlagUser: To flag a user /moderation/flags/message: get: description: | @@ -16268,26 +12759,10 @@ paths: 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 Message Flags tags: - Messages - Moderation - x-stream-docs-page-id: moderation#query-message-flags - x-stream-permissions: - ReadMessageFlags: To read flagged messages /moderation/mute: post: description: | @@ -16324,33 +12799,10 @@ paths: 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 user tags: - Users - Moderation - x-stream-docs-page-id: moderation#mutes - x-stream-events: - user.muted: When user is muted - x-stream-events-v2: - user.muted: - description: When user is muted - schema: - ref: '#/components/schemas/UserMutedEvent' - x-stream-permissions: - MuteUser: To mute a user /moderation/mute/channel: post: description: | @@ -16387,89 +12839,9 @@ paths: 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 channel tags: - Channels - x-stream-docs-page-id: muting_channels - x-stream-events: - channel.muted: When channel is muted - x-stream-events-v2: - channel.muted: - description: When channel is muted - schema: - ref: '#/components/schemas/ChannelMutedEvent' - x-stream-permissions: - MuteChannel: To mute a channel - /moderation/unflag: - post: - description: | - Removes previously created user or message flag - - Required permissions: - - FlagMessage - - FlagUser - operationId: Unflag - 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 - 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: Unflag - tags: - - Moderation - - Messages - - Users - x-stream-deprecated: true - x-stream-docs-page-id: moderation#flag - x-stream-permissions: - FlagMessage: To remove message flag - FlagUser: To remove user flag /moderation/unmute: post: description: | @@ -16506,33 +12878,10 @@ paths: 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: Unmute user tags: - Users - Moderation - x-stream-docs-page-id: moderation#mutes - x-stream-events: - user.unmuted: When user is unmuted - x-stream-events-v2: - user.unmuted: - description: When user is unmuted - schema: - ref: '#/components/schemas/UserUnmutedEvent' - x-stream-permissions: - MuteUser: To unmute a user /moderation/unmute/channel: post: description: | @@ -16569,32 +12918,9 @@ paths: 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: Unmute channel tags: - Channels - x-stream-docs-page-id: muting_channels - x-stream-events: - channel.unmuted: When channel is unmuted - x-stream-events-v2: - channel.unmuted: - description: When channel is unmuted - schema: - ref: '#/components/schemas/ChannelUnmutedEvent' - x-stream-permissions: - MuteChannel: To unmute a channel /og: get: description: | @@ -16628,23 +12954,9 @@ paths: 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 OG tags: - Messages - x-stream-docs-page-id: og /permissions: get: description: | @@ -16669,23 +12981,9 @@ paths: 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 permissions tags: - Permissions V2 - x-stream-server-side: true /permissions/{id}: get: description: | @@ -16719,24 +13017,10 @@ paths: 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: Get permission tags: - Permissions V2 - x-stream-server-side: true /push_providers: get: description: | @@ -16761,25 +13045,10 @@ paths: 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 push providers tags: - Push - Settings - x-stream-docs-page-id: push - x-stream-server-side: true post: description: | Upsert a push provider for v2 with multi bundle/package support @@ -16809,24 +13078,9 @@ paths: 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: Upsert a push provider tags: - Server-side - x-stream-docs-page-id: push - x-stream-server-side: true /push_providers/{type}/{name}: delete: description: | @@ -16873,25 +13127,10 @@ paths: 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 a push provider tags: - Push - Settings - x-stream-docs-page-id: push - x-stream-server-side: true /query_banned_users: get: description: | @@ -16927,26 +13166,10 @@ paths: 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 Banned Users tags: - Users - Moderation - x-stream-docs-page-id: moderation#query-banned-users - x-stream-permissions: - ReadChannel: To read banned users of specified channels /rate_limits: get: description: | @@ -17013,24 +13236,9 @@ paths: 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 rate limits tags: - Settings - x-stream-docs-page-id: rate_limits - x-stream-server-side: true /roles: get: description: | @@ -17055,23 +13263,9 @@ paths: 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 roles tags: - Permissions V2 - x-stream-server-side: true post: description: | Creates custom role @@ -17101,23 +13295,9 @@ paths: 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 role tags: - Permissions V2 - x-stream-server-side: true /roles/{name}: delete: description: | @@ -17152,23 +13332,9 @@ paths: 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 role tags: - Permissions V2 - x-stream-server-side: true /search: get: description: | @@ -17206,26 +13372,10 @@ paths: 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: Search messages tags: - Channels - Messages - x-stream-docs-page-id: search - x-stream-permissions: - ReadChannel: To read channels that were found by search /tasks/{id}: get: description: | @@ -17260,24 +13410,172 @@ paths: schema: $ref: '#/components/schemas/APIError' description: Too many requests - headers: - X-RateLimit-Limit: - description: The number of allowed requests in the current period + summary: Get status of a task + tags: + - Tasks + /threads: + post: + description: | + Returns the list of threads for specific user + + Required permissions: + - ReadChannel + 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: - type: integer - X-RateLimit-Remaining: - description: The number of remaining requests in the current period + $ref: '#/components/schemas/QueryThreadsResponse' + description: Successful response + "400": + content: + application/json: schema: - type: integer - X-RateLimit-Reset: - description: Timestamp when number of requests will be reset + $ref: '#/components/schemas/APIError' + description: Bad request + "429": + content: + application/json: schema: - type: integer - summary: Get status of a task + $ref: '#/components/schemas/APIError' + description: Too many requests + summary: Query Threads tags: - - Tasks - x-stream-docs-page-id: tasks - x-stream-server-side: true + - Threads + /threads/{message_id}: + get: + description: | + Return a specific thread + + Required permissions: + - ReadChannel + 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" + 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: + - Threads + patch: + description: | + Updates certain fields of the thread + + Sends events: + - thread.updated + + Required permissions: + - ReadChannel + - UpdateThread + 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: + - Threads + - Channels /unread: get: description: | @@ -17302,23 +13600,9 @@ paths: 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: UnreadCount counts tags: - Channels - x-stream-docs-page-id: unread_counts /users: get: description: | @@ -17354,25 +13638,9 @@ paths: 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 users tags: - Users - x-stream-docs-page-id: query_users - x-stream-permissions: - SearchUser: To search users patch: description: | Updates certain fields of the user @@ -17406,35 +13674,9 @@ paths: 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: Partially update user tags: - Users - x-stream-docs-page-id: update_users - x-stream-events: - user.presence.changed: When user visibility changes - user.updated: When user is updated - x-stream-events-v2: - user.presence.changed: - description: When user visibility changes - schema: - ref: '#/components/schemas/UserPresenceChangedEvent' - user.updated: - description: When user is updated - schema: - ref: '#/components/schemas/UserUpdatedEvent' post: description: | Update or create users in bulk @@ -17467,127 +13709,9 @@ paths: 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: Upsert users tags: - Users - x-stream-docs-page-id: update_users - x-stream-events: - user.updated: When user is updated - x-stream-events-v2: - user.updated: - description: When user is updated - schema: - ref: '#/components/schemas/UserUpdatedEvent' - /users/{user_id}: - delete: - description: | - Deletes user and optionally all their belongings. The Endpoint is deprecated, please use 'Delete Users' endpoint instead - - Sends events: - - channel.deleted - - message.deleted - - user.deleted - operationId: DeleteUser - parameters: - - in: path - name: user_id - required: true - schema: - description: ID of user to delete - title: User ID - type: string - x-stream-index: "001" - - in: query - name: mark_messages_deleted - schema: - description: Delete user messages - title: Mark messages deleted - type: boolean - x-stream-index: "002" - - in: query - name: hard_delete - schema: - description: Delete all user data (messages, reactions, etc.) - title: Hard delete - type: boolean - x-stream-index: "003" - - in: query - name: delete_conversation_channels - schema: - description: Delete all one-to-one channels of the user - title: Delete conversations - type: boolean - x-stream-index: "004" - responses: - "200": - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteUserResponse' - 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 user - tags: - - Users - - GDPR - - Moderation - x-stream-deprecated: true - x-stream-docs-page-id: gdpr - x-stream-events: - channel.deleted: When channel is deleted - message.deleted: When message is deleted - user.deleted: When user is deleted - x-stream-events-v2: - channel.deleted: - description: When channel is deleted - schema: - ref: '#/components/schemas/ChannelDeletedEvent' - message.deleted: - description: When message is deleted - schema: - ref: '#/components/schemas/MessageDeletedEvent' - user.deleted: - description: When user is deleted - schema: - ref: '#/components/schemas/UserDeletedEvent' - x-stream-server-side: true /users/{user_id}/deactivate: post: description: | @@ -17629,33 +13753,11 @@ paths: 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: Deactivate user tags: - Users - GDPR - Moderation - x-stream-docs-page-id: gdpr - x-stream-events: - user.deactivated: When user is deactivated - x-stream-events-v2: - user.deactivated: - description: When user is deactivated - schema: - ref: '#/components/schemas/UserDeactivatedEvent' - x-stream-server-side: true /users/{user_id}/event: post: description: | @@ -17697,31 +13799,9 @@ paths: 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 user event tags: - Events - x-stream-docs-page-id: event_object - x-stream-events: - custom: Only custom event could be sent through this endpoint - x-stream-events-v2: - custom: - description: Only custom event could be sent through this endpoint - schema: - ref: '#/components/schemas/AnyEvent' - x-stream-server-side: true /users/{user_id}/export: get: description: | @@ -17753,24 +13833,9 @@ paths: 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: Export user tags: - Users - x-stream-docs-page-id: gdpr - x-stream-server-side: true /users/{user_id}/reactivate: post: description: | @@ -17812,33 +13877,11 @@ paths: 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: Reactivate user tags: - Users - GDPR - Moderation - x-stream-docs-page-id: gdpr - x-stream-events: - user.reactivated: When user is reactivated - x-stream-events-v2: - user.reactivated: - description: When user is reactivated - schema: - ref: '#/components/schemas/UserReactivatedEvent' - x-stream-server-side: true /users/deactivate: post: description: | @@ -17872,33 +13915,11 @@ paths: 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: Deactivate users tags: - Users - GDPR - Moderation - x-stream-docs-page-id: gdpr - x-stream-events: - user.deactivated: When user is deactivated - x-stream-events-v2: - user.deactivated: - description: When user is deactivated - schema: - ref: '#/components/schemas/UserDeactivatedEvent' - x-stream-server-side: true /users/delete: post: description: | @@ -17933,38 +13954,11 @@ paths: 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 Users tags: - Users - GDPR - Moderation - x-stream-docs-page-id: gdpr - x-stream-events: - channel.deleted: When channel is deleted - user.deleted: When user is deleted - x-stream-events-v2: - channel.deleted: - description: When channel is deleted - schema: - ref: '#/components/schemas/ChannelDeletedEvent' - user.deleted: - description: When user is deleted - schema: - ref: '#/components/schemas/UserDeletedEvent' - x-stream-server-side: true /users/reactivate: post: description: | @@ -17998,33 +13992,11 @@ paths: 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: Reactivate users tags: - Users - GDPR - Moderation - x-stream-docs-page-id: gdpr - x-stream-events: - user.reactivated: When user is reactivated - x-stream-events-v2: - user.reactivated: - description: When user is reactivated - schema: - ref: '#/components/schemas/UserReactivatedEvent' - x-stream-server-side: true /users/restore: post: description: | @@ -18055,24 +14027,9 @@ paths: 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: Restore users tags: - Users - x-stream-docs-page-id: restore_users - x-stream-server-side: true security: - JWT: [] api_key: [] @@ -18080,5 +14037,5 @@ security: - api_key: [] stream-auth-type: [] servers: -- description: Chat Production API - url: https://chat.stream-io-api.com +- description: Stream API + url: https://stream-io-api.com diff --git a/openapi/clientside-api.json b/openapi/clientside-api.json new file mode 100644 index 00000000..f18cc91f --- /dev/null +++ b/openapi/clientside-api.json @@ -0,0 +1 @@ +{"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"},"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"},"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"},"ActionRequest":{"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"}},"type":"object"},"AnyEvent":{"properties":{"created_at":{"format":"date-time","type":"string","x-stream-index":"001.002"},"type":{"default":"custom","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"},"App":{"properties":{"agora_options":{"$ref":"#/components/schemas/Config","x-stream-index":"001.038"},"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.018"},"async_url_enrich_enabled":{"type":"boolean","x-stream-index":"001.016"},"auto_translation_enabled":{"type":"boolean","x-stream-index":"001.019"},"before_message_send_hook_url":{"type":"string","x-stream-index":"001.020"},"call_types":{"additionalProperties":{"$ref":"#/components/schemas/CallType"},"type":"object","x-stream-index":"001.006"},"campaign_enabled":{"type":"boolean","x-stream-index":"001.033"},"cdn_expiration_seconds":{"format":"int32","type":"integer","x-stream-index":"001.036"},"channel_configs":{"additionalProperties":{"$ref":"#/components/schemas/ChannelConfig"},"description":"Object with channel configs","title":"Channel configs","type":"object","x-stream-index":"001.005","x-stream-map":{"key":"channel_type"}},"custom_action_handler_url":{"type":"string","x-stream-index":"001.021"},"datadog_info":{"$ref":"#/components/schemas/DataDogInfo","x-stream-index":"001.041"},"disable_auth_checks":{"type":"boolean","x-stream-index":"001.010"},"disable_permissions_checks":{"type":"boolean","x-stream-index":"001.011"},"enforce_unique_usernames":{"type":"string","x-stream-index":"001.022"},"file_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.029"},"geofences":{"items":{"$ref":"#/components/schemas/GeofenceResponse"},"type":"array","x-stream-index":"001.040"},"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"},"image_moderation_enabled":{"type":"boolean","x-stream-index":"001.015"},"image_moderation_labels":{"items":{"type":"string"},"type":"array","x-stream-index":"001.017"},"image_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.030"},"multi_tenant_enabled":{"type":"boolean","x-stream-index":"001.014"},"name":{"type":"string","x-stream-index":"001.001"},"organization":{"type":"string","x-stream-index":"001.002"},"permission_version":{"type":"string","x-stream-index":"001.012"},"policies":{"additionalProperties":{"items":{"$ref":"#/components/schemas/Policy"},"type":"array"},"type":"object","x-stream-index":"001.007"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationFields","x-stream-index":"001.003"},"reminders_interval":{"format":"int32","type":"integer","x-stream-index":"001.035"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.031"},"sns_key":{"type":"string","x-stream-index":"001.027"},"sns_secret":{"type":"string","x-stream-index":"001.028"},"sns_topic_arn":{"type":"string","x-stream-index":"001.026"},"sqs_key":{"type":"string","x-stream-index":"001.024"},"sqs_secret":{"type":"string","x-stream-index":"001.025"},"sqs_url":{"type":"string","x-stream-index":"001.023"},"suspended":{"type":"boolean","x-stream-index":"001.008"},"suspended_explanation":{"type":"string","x-stream-index":"001.009"},"user_search_disallowed_roles":{"items":{"type":"string"},"type":"array","x-stream-index":"001.013"},"video_provider":{"type":"string","x-stream-index":"001.037"},"webhook_events":{"items":{"type":"string"},"type":"array","x-stream-index":"001.034"},"webhook_url":{"type":"string","x-stream-index":"001.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","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","webhook_events","reminders_interval","cdn_expiration_seconds","video_provider"],"type":"object"},"Attachment":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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"},"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)","title":"Type","type":"string","x-stream-index":"001"}},"required":["Custom"],"title":"Attachment","type":"object","x-stream-docs-page-id":"file_uploads"},"AttachmentRequest":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"actions":{"items":{"$ref":"#/components/schemas/ActionRequest"},"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"},"fallback":{"type":"string","x-stream-index":"002"},"fields":{"items":{"$ref":"#/components/schemas/FieldRequest"},"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/ImagesRequest","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)","title":"Type","type":"string","x-stream-index":"001"}},"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"},"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"},"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"},"BackstageSettings":{"properties":{"enabled":{"type":"boolean","x-stream-index":"001"}},"required":["enabled"],"type":"object"},"BackstageSettingsRequest":{"properties":{"enabled":{"type":"boolean","x-stream-index":"001"}},"type":"object"},"BanRequest":{"nullable":true,"properties":{"banned_by":{"$ref":"#/components/schemas/UserRequest","description":"User who issued a ban","title":"Banned by","x-stream-index":"009"},"banned_by_id":{"description":"User ID who issued a ban","title":"Banned by ID","type":"string","x-stream-index":"008"},"id":{"description":"Channel ID to ban user in","title":"ID","type":"string","x-stream-index":"005"},"ip_ban":{"description":"Whether to perform IP ban or not","title":"IP ban","type":"boolean","x-stream-index":"007"},"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":"006"},"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"},"type":{"description":"Channel type to ban user in","title":"Type","type":"string","x-stream-index":"004"}},"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":"string","x-stream-index":"007"},"expires":{"format":"date-time","type":"string","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"],"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":"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"},"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"},"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","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"},"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":"string","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":"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.","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","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","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","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","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","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","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":{"custom":{"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":"string","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":"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":{"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","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"},"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/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"},"CallType":{"nullable":true,"properties":{"AppPK":{"format":"int32","type":"integer","writeOnly":true,"x-stream-index":"003"},"CreatedAt":{"format":"date-time","type":"string","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":"string","writeOnly":true,"x-stream-index":"006"}},"required":["PK","AppPK","Name","CreatedAt","UpdatedAt","ExternalStorage"],"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.","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"},"Channel":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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":"string","x-stream-index":"009"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"008"},"deleted_at":{"format":"date-time","type":"string","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":"string","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":"string","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.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.024"},"blocklist":{"type":"string","x-stream-index":"001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.016"},"mutes":{"type":"boolean","x-stream-index":"001.009"},"name":{"type":"string","x-stream-index":"001.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","created_at","updated_at","commands"],"type":"object"},"ChannelConfigRequest":{"description":"Channel configuration overrides","properties":{"blocklist":{"type":"string","x-stream-index":"008"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"009"},"commands":{"items":{"type":"string"},"type":"array","x-stream-index":"011"},"grants":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"title":"Grants","type":"object","x-stream-index":"010","x-stream-map":{"key":"role","title":"Grants","description":"List of grants modifiers that apply to a role"}},"max_message_length":{"description":"Overrides max message length","format":"int32","maximum":20000,"title":"Max Message Length","type":"integer","x-stream-index":"007"},"quotes":{"description":"Enables message quotes","title":"Quotes","type":"boolean","x-stream-index":"004"},"reactions":{"description":"Enables or disables reactions","title":"Reactions","type":"boolean","x-stream-index":"002"},"replies":{"description":"Enables message replies (threads)","title":"Replies","type":"boolean","x-stream-index":"003"},"typing_events":{"description":"Enables or disables typing events","title":"Typing events","type":"boolean","x-stream-index":"001"},"uploads":{"description":"Enables or disables file uploads","title":"Uploads","type":"boolean","x-stream-index":"005"},"url_enrichment":{"description":"Enables or disables URL enrichment","title":"URL Enrichment","type":"boolean","x-stream-index":"006"}},"type":"object"},"ChannelConfigWithInfo":{"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.002.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.002.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.002.024"},"blocklist":{"type":"string","x-stream-index":"001.002.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.002.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.002.016"},"mutes":{"type":"boolean","x-stream-index":"001.002.009"},"name":{"type":"string","x-stream-index":"001.002.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","commands"],"type":"object"},"ChannelCreatedEvent":{"properties":{"created_at":{"format":"date-time","type":"string","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":"string","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":"string","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":{"connection_id":{"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"},"data":{"$ref":"#/components/schemas/ChannelRequest","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/PaginationParamsRequest","x-stream-index":"011"},"messages":{"$ref":"#/components/schemas/MessagePaginationParamsRequest","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/PaginationParamsRequest","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":"string","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"},"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":"string","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":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","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"},"ChannelMemberRequest":{"nullable":true,"properties":{"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","x-stream-index":"012"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"005"},"user_id":{"title":"User ID","type":"string","x-stream-index":"004"}},"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":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","x-stream-index":"008"},"updated_at":{"description":"Date/time of the last update","format":"date-time","title":"Updated at","type":"string","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"},"ChannelRequest":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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/ChannelConfigRequest","x-stream-index":"026"},"disabled":{"type":"boolean","x-stream-index":"016"},"frozen":{"description":"Freeze or unfreeze the channel","title":"Frozen","type":"boolean","x-stream-index":"015"},"members":{"items":{"$ref":"#/components/schemas/ChannelMemberRequest"},"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"},"ChannelResponse":{"description":"Represents channel in chat","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"029"},"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":"string","x-stream-index":"008"},"created_by":{"$ref":"#/components/schemas/UserObject","description":"Creator of the channel","title":"Created by","x-stream-index":"011"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":"string","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":"string","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":"string","x-stream-index":"009"}},"required":["id","type","cid","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":"string","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/Message"},"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/Message"},"type":"array","x-stream-index":"001.003"},"read":{"items":{"$ref":"#/components/schemas/Read"},"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/UserObject"},"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":"string","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/Message"},"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/Message"},"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/Read"},"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/UserObject"},"title":"Watchers","type":"array","x-stream-index":"005"}},"required":["messages","pinned_messages","members","threads"],"type":"object"},"ChannelStopWatchingRequest":{"nullable":true,"properties":{"connection_id":{"type":"string","x-stream-index":"001.003"}},"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":"string","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":"string","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":"string","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":"string","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"},"ChannelsResponse":{"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"},"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":"string","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":"string","x-stream-index":"002"}},"required":["name","description","args","set"],"title":"Command","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"},"ConnectRequest":{"properties":{"device":{"$ref":"#/components/schemas/DeviceFields","x-stream-index":"001.002"},"user_details":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.001"}},"required":["user_details"],"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":"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"},"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"}},"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"},"DataDogInfo":{"properties":{"api_key":{"type":"string","x-stream-index":"001"},"site":{"type":"string","x-stream-index":"002"}},"required":["api_key","site"],"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"}},"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"},"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"},"DeviceFields":{"properties":{"id":{"description":"Device ID","title":"ID","type":"string","x-stream-index":"004"},"push_provider":{"enum":["firebase","apn","huawei","xiaomi"],"title":"Push provider","type":"string","x-stream-index":"001"},"push_provider_name":{"description":"Name of the push provider configuration","title":"Push provider name","type":"string","x-stream-index":"003"},"voip":{"type":"boolean","x-stream-index":"005"}},"required":["push_provider","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"},"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":{"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"},"FieldRequest":{"nullable":true,"properties":{"short":{"type":"boolean","x-stream-index":"003"},"title":{"type":"string","x-stream-index":"001"},"value":{"type":"string","x-stream-index":"002"}},"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"}},"required":["allowed_file_extensions","blocked_file_extensions","allowed_mime_types","blocked_mime_types"],"type":"object"},"FileUploadRequest":{"nullable":true,"properties":{"file":{"description":"file field","title":"File","type":"string","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"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":"string","x-stream-index":"015"},"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"011"},"created_by_automod":{"type":"boolean","x-stream-index":"004"},"custom":{"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":"string","x-stream-index":"016"},"reviewed_at":{"description":"Date of the review","format":"date-time","title":"Reviewed at","type":"string","x-stream-index":"013"},"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":"string","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":{"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":"string","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":{"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"GetApplicationResponse":{"nullable":true,"properties":{"app":{"$ref":"#/components/schemas/App","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","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"},"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"},"GetOGResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.018"},"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"},"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","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":{"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"},"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":["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":"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"},"GuestRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"001"}},"required":["user"],"type":"object"},"GuestResponse":{"nullable":true,"properties":{"access_token":{"description":"Authentication token to use for guest user","title":"Access token","type":"string","x-stream-index":"002"},"duration":{"type":"string","x-stream-index":"003.001"},"user":{"$ref":"#/components/schemas/UserObject","description":"Created user object","title":"User","x-stream-index":"001"}},"required":["access_token","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"},"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"},"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"},"created_at":{"format":"date-time","type":"string","x-stream-index":"003.002"},"me":{"$ref":"#/components/schemas/OwnUser","x-stream-index":"002"},"type":{"default":"health.check","type":"string","x-stream-index":"003.001"}},"required":["cid","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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"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"},"ImageDataRequest":{"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"}},"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"}},"required":["crop","resize","height","width"],"title":"Image size configuration","type":"object"},"ImageSizeRequest":{"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/ImageSizeRequest"},"title":"Upload sizes","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"ImagesRequest":{"properties":{"fixed_height":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"002"},"fixed_height_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"004"},"fixed_height_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"003"},"fixed_width":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"005"},"fixed_width_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"007"},"fixed_width_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"006"},"original":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"001"}},"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":"004.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","credentials","duration"],"type":"object"},"Label":{"properties":{"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":{"type":"object","x-stream-index":"002"}},"required":["name","external_app_url","external_css_url"],"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"},"MarkChannelsReadRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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/UserObjectRequest","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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["message_id","thread_id"],"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":"string","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":"string","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":{"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":{"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"},"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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"031"},"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":"043"},"cid":{"description":"Channel unique identifier in \u003ctype\u003e:\u003cid\u003e format","title":"Channel CID","type":"string","x-stream-index":"026"},"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":"string","x-stream-index":"028"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","x-stream-index":"030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"021"},"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":"041"},"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":"037"},"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":"040"},"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":"017"},"pin_expires":{"description":"Date when pinned message expires","format":"date-time","title":"Pin expiration date","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"048"},"pinned":{"description":"Whether message is pinned or not","title":"Pinned","type":"boolean","x-stream-docs-page-id":"pinned_messages","x-stream-index":"044"},"pinned_at":{"description":"Date when message got pinned","format":"date-time","title":"Pinned at","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"045"},"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":"047"},"quoted_message":{"$ref":"#/components/schemas/Message","description":"Contains quoted message","title":"Quoted message","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"023"},"quoted_message_id":{"title":"ID of quoted message","type":"string","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"022"},"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_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":"020"},"shadowed":{"description":"Whether the message was shadowed or not","title":"Shadowed","type":"boolean","x-stream-docs-page-id":"moderation#shadow-ban","x-stream-index":"033"},"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":"019"},"silent":{"description":"Whether message is silent or not","title":"Silent","type":"boolean","x-stream-index":"042"},"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":"025"},"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":"string","x-stream-index":"029"},"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","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"form_data":{"additionalProperties":{"type":"string"},"description":"ReadOnlyData to execute command with","title":"Form data","type":"object","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["form_data"],"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":"string","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":"string","x-stream-index":"013"},"created_at":{"format":"date-time","type":"string","x-stream-index":"009"},"created_by_automod":{"type":"boolean","x-stream-index":"001"},"custom":{"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":"string","x-stream-index":"014"},"reviewed_at":{"format":"date-time","type":"string","x-stream-index":"011"},"reviewed_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"012"},"updated_at":{"format":"date-time","type":"string","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":"string","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":"string","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":"string","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"},"MessagePaginationParamsRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"008"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"007"},"created_at_around":{"format":"date-time","type":"string","x-stream-index":"012"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"010"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"009"},"id_around":{"type":"string","x-stream-index":"011"},"id_gt":{"type":"string","x-stream-index":"004"},"id_gte":{"type":"string","x-stream-index":"003"},"id_lt":{"type":"string","x-stream-index":"006"},"id_lte":{"type":"string","x-stream-index":"005"},"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":"string","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/AttachmentRequest"},"maximum":30,"type":"array","x-stream-index":"004"},"custom":{"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"},"parent_id":{"type":"string","x-stream-index":"005"},"pin_expires":{"format":"date-time","type":"string","x-stream-index":"015"},"pinned":{"type":"boolean","x-stream-index":"013"},"pinned_at":{"format":"date-time","nullable":true,"type":"string","x-stream-index":"014"},"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"}},"required":["attachments"],"type":"object"},"MessageResponse":{"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/Message","x-stream-index":"001"}},"required":["duration"],"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":"string","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"},"MessageWithPendingMetadataResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"001.002.001"},"message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.001"},"pending_message_metadata":{"additionalProperties":{"type":"string"},"description":"Metadata attached to a message while it is pending","title":"Pending message metadata","type":"object","x-stream-index":"002"}},"required":["duration"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["channel_cids"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["target_ids"],"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"},"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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","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":"string","x-stream-index":"001.002"},"first_unread_message_id":{"type":"string","x-stream-index":"005"},"last_read_at":{"format":"date-time","type":"string","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":"string","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":"string","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":"string","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"},"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"},"NullBoolRequest":{"properties":{"HasValue":{"type":"boolean","writeOnly":true,"x-stream-index":"002"},"Value":{"type":"boolean","writeOnly":true,"x-stream-index":"001"}},"type":"object"},"NullTimeRequest":{"properties":{"HasValue":{"type":"boolean","writeOnly":true,"x-stream-index":"002"},"Value":{"format":"date-time","type":"string","writeOnly":true,"x-stream-index":"001"}},"type":"object"},"OnlyUserIDRequest":{"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","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"banned":{"type":"boolean","x-stream-index":"014"},"channel_mutes":{"items":{"$ref":"#/components/schemas/ChannelMute"},"type":"array","x-stream-index":"026"},"created_at":{"format":"date-time","type":"string","x-stream-index":"007"},"deactivated_at":{"format":"date-time","type":"string","x-stream-index":"012"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"011"},"devices":{"items":{"$ref":"#/components/schemas/Device"},"type":"array","x-stream-index":"024"},"id":{"type":"string","x-stream-index":"003"},"invisible":{"type":"boolean","x-stream-index":"021"},"language":{"type":"string","x-stream-index":"031"},"last_active":{"format":"date-time","type":"string","x-stream-index":"010"},"latest_hidden_channels":{"items":{"type":"string"},"type":"array","x-stream-index":"033"},"mutes":{"items":{"$ref":"#/components/schemas/UserMute"},"type":"array","x-stream-index":"025"},"online":{"type":"boolean","x-stream-index":"020"},"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":"032"},"total_unread_count":{"format":"int32","type":"integer","x-stream-index":"028"},"unread_channels":{"format":"int32","type":"integer","x-stream-index":"029"},"unread_count":{"format":"int32","type":"integer","x-stream-index":"027"},"unread_threads":{"format":"int32","type":"integer","x-stream-index":"030"},"updated_at":{"format":"date-time","type":"string","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":{"created_at":{"format":"date-time","type":"string","x-stream-index":"001.004"},"custom":{"type":"object","x-stream-index":"001.001.004"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.006"},"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"},"language":{"type":"string","x-stream-index":"001.001.005"},"name":{"type":"string","x-stream-index":"001.001.002"},"role":{"type":"string","x-stream-index":"001.002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"001.003"},"updated_at":{"format":"date-time","type":"string","x-stream-index":"001.005"}},"required":["id","custom","language","role","teams","created_at","updated_at","devices"],"type":"object"},"PaginationParamsRequest":{"properties":{"id_gt":{"format":"int32","type":"integer","x-stream-index":"004"},"id_gte":{"format":"int32","type":"integer","x-stream-index":"003"},"id_lt":{"format":"int32","type":"integer","x-stream-index":"006"},"id_lte":{"format":"int32","type":"integer","x-stream-index":"005"},"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":"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"},"Policy":{"properties":{"action":{"type":"integer","x-stream-index":"007"},"created_at":{"format":"date-time","type":"string","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":"string","x-stream-index":"011"}},"required":["name","resources","roles","action","owner","priority","created_at","updated_at"],"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":"string","x-stream-index":"002"}},"type":"object"},"PushNotificationSettingsRequest":{"properties":{"disabled":{"$ref":"#/components/schemas/NullBoolRequest","x-stream-index":"001"},"disabled_until":{"$ref":"#/components/schemas/NullTimeRequest","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":"string","x-stream-index":"008"},"description":{"maxLength":128,"type":"string","x-stream-index":"007"},"disabled_at":{"format":"date-time","type":"string","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":"integer","x-stream-index":"006"},"updated_at":{"format":"date-time","type":"string","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"},"QueryBannedUsersRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"003.006"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.005"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"003.008"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.007"},"exclude_expired_bans":{"type":"boolean","x-stream-index":"006"},"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"007.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryCallsRequest":{"nullable":true,"properties":{"filter_conditions":{"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"},"QueryChannelsRequest":{"nullable":true,"properties":{"connection_id":{"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"},"filter_conditions":{"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/SortParamRequest"},"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/UserObjectRequest","x-stream-index":"010.002"},"user_id":{"type":"string","x-stream-index":"010.001"},"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"},"QueryMembersRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"006.010"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.009"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"006.012"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.011"},"filter_conditions":{"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/UserObject","x-stream-index":"007.002"},"user_id":{"type":"string","x-stream-index":"007.001"},"user_id_gt":{"type":"string","x-stream-index":"006.006"},"user_id_gte":{"type":"string","x-stream-index":"006.005"},"user_id_lt":{"type":"string","x-stream-index":"006.008"},"user_id_lte":{"type":"string","x-stream-index":"006.007"}},"required":["type","filter_conditions"],"type":"object"},"QueryMembersRequest_1":{"nullable":true,"properties":{"filter_conditions":{"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"},"QueryMessageFlagsRequest":{"properties":{"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"004.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryThreadsRequest":{"nullable":true,"properties":{"connection_id":{"type":"string","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"},"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":"005.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"},"QueryUsersRequest":{"properties":{"connection_id":{"description":"Websocket connection ID to interact with. You can pass it as Body or URL parameter","title":"Connection ID","type":"string","x-stream-index":"006.003"},"filter_conditions":{"description":"User filters","title":"Filter conditions","type":"object","x-stream-docs-page-id":"query_users","x-stream-index":"001"},"id_gt":{"type":"string","x-stream-index":"004.006"},"id_gte":{"type":"string","x-stream-index":"004.005"},"id_lt":{"type":"string","x-stream-index":"004.008"},"id_lte":{"type":"string","x-stream-index":"004.007"},"limit":{"format":"int32","maximum":100,"minimum":0,"type":"integer","x-stream-index":"004.003"},"offset":{"format":"int32","maximum":1000,"type":"integer","x-stream-index":"004.004"},"presence":{"description":"Request user presence status","title":"Presence","type":"boolean","x-stream-index":"003"},"sort":{"description":"Array of sort parameters","items":{"$ref":"#/components/schemas/SortParam"},"maximum":5,"title":"Sort","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"005.002"},"user_id":{"type":"string","x-stream-index":"005.001"}},"required":["filter_conditions"],"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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"010"},"created_at":{"description":"Date/time of creation","format":"date-time","readOnly":true,"title":"Created at","type":"string","x-stream-index":"008"},"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":"string","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":"string","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"},"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":"string","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":{"description":"Represents user reaction to a message","properties":{"Custom":{"type":"object","writeOnly":true,"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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":["type"],"title":"Reaction","type":"object","x-stream-docs-page-id":"send_reaction"},"ReactionResponse":{"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"},"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":"string","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":"string","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"},"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"},"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"},"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":30000,"minimum":5000,"type":"integer","x-stream-index":"002"},"incoming_call_timeout_ms":{"format":"int32","maximum":180000,"minimum":5000,"type":"integer","x-stream-index":"001"}},"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"},"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"},"SearchRequest":{"properties":{"filter_conditions":{"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":{"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":{"nullable":true,"properties":{"message":{"$ref":"#/components/schemas/SearchResultMessage","description":"Found message","title":"Message","x-stream-index":"001"}},"type":"object"},"SearchResultMessage":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.031"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","x-stream-index":"001.011"},"before_message_send_failed":{"type":"boolean","x-stream-index":"001.043"},"channel":{"$ref":"#/components/schemas/ChannelResponse","description":"Channel object","title":"Channel","x-stream-index":"002"},"cid":{"type":"string","x-stream-index":"001.026"},"command":{"type":"string","x-stream-index":"001.006"},"created_at":{"format":"date-time","type":"string","x-stream-index":"001.028"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"001.021"},"html":{"type":"string","x-stream-index":"001.007"},"i18n":{"additionalProperties":{"type":"string"},"type":"object","x-stream-index":"001.041"},"id":{"type":"string","x-stream-index":"001.002"},"image_labels":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","x-stream-index":"001.037"},"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.040"},"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.017"},"pin_expires":{"format":"date-time","type":"string","x-stream-index":"001.048"},"pinned":{"type":"boolean","x-stream-index":"001.044"},"pinned_at":{"format":"date-time","type":"string","x-stream-index":"001.045"},"pinned_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.047"},"quoted_message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.023"},"quoted_message_id":{"type":"string","x-stream-index":"001.022"},"reaction_counts":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.014"},"reaction_scores":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.015"},"reply_count":{"format":"int32","type":"integer","x-stream-index":"001.020"},"shadowed":{"type":"boolean","x-stream-index":"001.033"},"show_in_channel":{"type":"boolean","x-stream-index":"001.019"},"silent":{"type":"boolean","x-stream-index":"001.042"},"text":{"type":"string","x-stream-index":"001.004"},"thread_participants":{"items":{"$ref":"#/components/schemas/UserObject"},"type":"array","x-stream-index":"001.025"},"type":{"type":"string","x-stream-index":"001.008"},"updated_at":{"format":"date-time","type":"string","x-stream-index":"001.029"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.010"}},"required":["id","text","html","type","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"},"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":{"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/Message","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"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":"002.001"},"reaction":{"$ref":"#/components/schemas/ReactionResponse","x-stream-index":"001"}},"required":["reaction","duration"],"type":"object"},"ShowChannelRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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,"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,"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"},"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"},"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"},"connection_id":{"type":"string","x-stream-index":"006.003"},"last_sync_at":{"description":"Date from which synchronization should happen","format":"date-time","title":"Last sync at","type":"string","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"005.002"},"user_id":{"type":"string","x-stream-index":"005.001"},"watch":{"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"},"with_inaccessible_cids":{"description":"If set to true this will add 'inaccessible_cids' to response type","title":"With inaccessible CIDs","type":"boolean","x-stream-index":"003"}},"required":["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","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"},"Thread":{"description":"Represents a conversation thread linked to a specific message in a channel.","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"009"},"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":"string","x-stream-index":"007"},"left_thread_at":{"description":"Left Thread At is the time when the user left the thread","format":"date-time","title":"Left Thread At","type":"string","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","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":"string","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":{"type":"object","x-stream-index":"015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","x-stream-index":"001.014"}},"required":["channel_cid","parent_message_id","created_at","updated_at","title","Custom","latest_replies"],"title":"Thread","type":"object"},"ThreadStateResponse":{"nullable":true,"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":"string","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":{"type":"object","x-stream-index":"001.015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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":"string","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"},"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"},"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":"string","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"},"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":"string","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":"string","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":"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"},"UnmuteChannelRequest":{"nullable":true,"properties":{"channel_cid":{"type":"string","x-stream-index":"001.001"},"channel_cids":{"items":{"type":"string"},"maximum":25,"type":"array","x-stream-index":"001.002"},"expiration":{"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["channel_cid","channel_cids"],"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_id":{"type":"string","x-stream-index":"001.001"},"target_ids":{"items":{"type":"string"},"maximum":1000,"type":"array","x-stream-index":"001.002"},"timeout":{"minimum":0,"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["target_id","target_ids"],"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":"string","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"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"006.001"},"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","duration"],"type":"object"},"UnreadCountsThread":{"properties":{"last_read":{"format":"date-time","type":"string","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":{"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"},"UpdateChannelPartialRequest":{"nullable":true,"properties":{"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["set","unset"],"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/ChannelMemberRequest"},"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/ChannelMemberRequest"},"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/ChannelRequest","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/ChannelMemberRequest"},"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"}},"required":["remove_members","add_moderators","demote_moderators"],"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":{"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"}},"required":["set","unset"],"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":["message","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"},"UpdateThreadPartialRequest":{"nullable":true,"properties":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"set":{"type":"object","x-stream-index":"004.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"004.002"}},"required":["set","unset"],"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":["duration"],"type":"object"},"UpdateUserPartialRequest":{"nullable":true,"properties":{"id":{"description":"User ID to update","title":"ID","type":"string","x-stream-index":"001"},"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"}},"required":["id","set","unset"],"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"},"UpdateUsersRequest":{"nullable":true,"properties":{"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObjectRequest"},"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":"002.001"},"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObject"},"description":"Object containing users","title":"Users","type":"object","x-stream-index":"001","x-stream-map":{"key":"user_id"}}},"required":["users","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":"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"},"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":"string","x-stream-index":"008.002"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001"},"expiration":{"format":"date-time","type":"string","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":"string","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":"string","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"},"UserMute":{"nullable":true,"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","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":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"007"},"deactivated_at":{"description":"Date of deactivation","format":"date-time","readOnly":true,"title":"Deactivated at","type":"string","x-stream-index":"012"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","readOnly":true,"title":"Deleted at","type":"string","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":"031"},"last_active":{"description":"Date of last activity","format":"date-time","readOnly":true,"title":"Last active","type":"string","x-stream-index":"010"},"online":{"description":"Whether a user online or not","readOnly":true,"title":"Online","type":"boolean","x-stream-index":"020"},"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":"string","x-stream-index":"038"},"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":"032"},"updated_at":{"description":"Date/time of the last update","format":"date-time","readOnly":true,"title":"Updated at","type":"string","x-stream-index":"008"}},"required":["id"],"title":"User object","type":"object"},"UserObjectRequest":{"description":"Represents chat user","nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"id":{"description":"Unique user identifier","title":"ID","type":"string","x-stream-index":"003"},"invisible":{"type":"boolean","x-stream-index":"016"},"language":{"description":"Preferred language of a user","title":"Language","type":"string","x-stream-index":"021"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettingsRequest","x-stream-index":"022"},"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":"019"}},"required":["id"],"title":"User object","type":"object"},"UserPresenceChangedEvent":{"properties":{"created_at":{"format":"date-time","type":"string","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":"string","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":{"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"},"language":{"type":"string","x-stream-index":"005"},"name":{"description":"Optional name of user","title":"Name","type":"string","x-stream-index":"002"}},"required":["id"],"type":"object"},"UserResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.005"},"ban_expires":{"format":"date-time","type":"string","x-stream-index":"001.015"},"banned":{"type":"boolean","x-stream-index":"001.014"},"created_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.007"},"deactivated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.012"},"deleted_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.011"},"id":{"type":"string","x-stream-index":"001.003"},"invisible":{"type":"boolean","x-stream-index":"001.021"},"language":{"type":"string","x-stream-index":"001.031"},"last_active":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.010"},"online":{"readOnly":true,"type":"boolean","x-stream-index":"001.020"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettings","x-stream-index":"001.023"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.038"},"role":{"type":"string","x-stream-index":"001.004"},"shadow_banned":{"description":"Whether user is shadow banned or not","title":"Shadow banned","type":"boolean","x-stream-index":"002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"001.032"},"updated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.008"}},"required":["id","role","Custom","banned","online","shadow_banned"],"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":"string","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":"string","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":"string","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":"string","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"},"UsersResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"002.001"},"users":{"description":"List of found users","items":{"$ref":"#/components/schemas/UserResponse"},"title":"Users","type":"array","x-stream-index":"001"}},"required":["users","duration"],"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/TargetResolutionRequest","x-stream-index":"003"}},"type":"object"},"WSEvent":{"description":"The discriminator object for all websocket events, it maps events' payload to the final type","discriminator":{"mapping":{"call.accepted":"#/components/schemas/CallAcceptedEvent","call.blocked_user":"#/components/schemas/BlockedUserEvent","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.unblocked_user":"#/components/schemas/UnblockedUserEvent","call.updated":"#/components/schemas/CallUpdatedEvent","call.user_muted":"#/components/schemas/CallUserMuted","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/AnyEvent","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.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","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/CallUpdatedEvent"},{"$ref":"#/components/schemas/CallUserMuted"},{"$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/ConnectedEvent"},{"$ref":"#/components/schemas/ConnectionErrorEvent"},{"$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/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/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"}]},"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"},"connectRequestQueryRequest":{"nullable":true,"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":"v98.0.2-message-blocked-event.1"},"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":["Settings"]}},"/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/ChannelsResponse"}}},"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":["Channels"]}},"/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":["Channels","GDPR"]}},"/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":["Channels","Messages"]}},"/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":"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":"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":["Channels"]}},"/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":["Channels"]},"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":["Channels"]},"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":["Channels"]}},"/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":["Events"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Channels"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Messages"]}},"/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","schema":{"description":"List of comma-separated IDs","items":{"type":"string"},"maximum":50,"minimum":1,"title":"IDs","type":"array","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":["Messages"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/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":{"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/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":["Channels"]}},"/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":["Channels"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/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":["Channels"]}},"/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/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":"Delete message","tags":["Messages"]},"get":{"description":"Returns message by ID\n\nRequired permissions:\n- ReadChannel\n","operationId":"GetMessage","parameters":[{"in":"path","name":"id","required":true,"schema":{"description":"Message ID","title":"ID","type":"string","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageWithPendingMetadataResponse"}}},"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":["Messages"]},"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":["Messages"]},"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":["Messages"]}},"/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":["Messages"]}},"/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/ReactionResponse"}}},"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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages"]}},"/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":{"description":"ID of a message which replies to return","title":"Parent ID","type":"string","writeOnly":true,"x-stream-index":"001"}},{"in":"query","name":"id_gte","schema":{"type":"string","x-stream-index":"002.001.003"}},{"in":"query","name":"id_gt","schema":{"type":"string","x-stream-index":"002.001.004"}},{"in":"query","name":"id_lte","schema":{"type":"string","x-stream-index":"002.001.005"}},{"in":"query","name":"id_lt","schema":{"type":"string","x-stream-index":"002.001.006"}},{"in":"query","name":"created_at_after_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.007"}},{"in":"query","name":"created_at_after","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.008"}},{"in":"query","name":"created_at_before_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.009"}},{"in":"query","name":"created_at_before","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.010"}},{"in":"query","name":"id_around","schema":{"type":"string","x-stream-index":"002.001.011"}},{"in":"query","name":"created_at_around","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.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":["Messages"]}},"/api/v2/chat/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","schema":{"type":"string","x-stream-index":"001"}},{"in":"query","name":"type","schema":{"type":"string","x-stream-index":"002"}},{"in":"query","name":"id","schema":{"type":"string","x-stream-index":"003"}},{"in":"query","name":"created_by","schema":{"type":"string","x-stream-index":"004"}}],"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":["Users","Moderation"]},"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":["Users","Moderation"]}},"/api/v2/chat/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":["Moderation","Messages","Users"]}},"/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":["Messages","Moderation"]}},"/api/v2/chat/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":["Users","Moderation"]}},"/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":["Channels"]}},"/api/v2/chat/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":["Users","Moderation"]}},"/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":["Channels"]}},"/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":["Users","Moderation"]}},"/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":["Channels","Messages"]}},"/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":["Channels","Events"]}},"/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":["Threads"]}},"/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"}}],"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":["Threads"]},"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":["Threads","Channels"]}},"/api/v2/chat/unread":{"get":{"description":"UnreadCount counts\n","operationId":"UnreadCounts","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnreadCountsResponse"}}},"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":"UnreadCount counts","tags":["Channels"]}},"/api/v2/connect":{"get":{"description":"Establishes WebSocket connection for user\n\nSends events:\n- user.updated\n","operationId":"Connect","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest","x-stream-index":"001"}}},"in":"query","name":"json"}],"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":"Connect (WebSocket)","tags":["Users"]}},"/api/v2/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"}},"summary":"Delete device","tags":["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"}},"summary":"List devices","tags":["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":{"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":["Devices","Push"]}},"/api/v2/guest":{"post":{"description":"Creates guest user\n","operationId":"CreateGuest","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestResponse"}}},"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":["Users"]}},"/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/ConnectRequest","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":["Users"]}},"/api/v2/og":{"get":{"description":"Get an OpenGraph attachment for a link\n","operationId":"GetOG","parameters":[{"in":"query","name":"url","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":["Messages"]}},"/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/QueryUsersRequest","x-stream-index":"001"}}},"in":"query","name":"payload"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersResponse"}}},"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":["Users"]},"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/UpdateUserPartialRequest"}}},"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":["Users"]},"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":["Users"]}},"/api/v2/video/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_1"}}},"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"}},"summary":"Query call members"}},"/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"},"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"},"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"}},"/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"}},"/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"}},"/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":"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"}},"summary":"Send custom event"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/api/v2/video/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"}}],"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"}},"/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"}}],"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"}},"/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"}},"/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"}},"/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"}},"/api/v2/video/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"}},"summary":"Stop transcription"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}}},"security":[{"JWT":[],"api_key":[],"stream-auth-type":[]},{"api_key":[],"stream-auth-type":[]}],"servers":[{"description":"Stream API","url":"https://stream-io-api.com"}]} \ No newline at end of file diff --git a/openapi/clientside-api.yaml b/openapi/clientside-api.yaml new file mode 100644 index 00000000..d30d1bf2 --- /dev/null +++ b/openapi/clientside-api.yaml @@ -0,0 +1,15541 @@ +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 + 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 + 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 + ActionRequest: + 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" + type: object + AnyEvent: + properties: + created_at: + format: date-time + type: string + x-stream-index: "001.002" + type: + default: custom + 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 + App: + properties: + agora_options: + $ref: '#/components/schemas/Config' + x-stream-index: "001.038" + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: "001.018" + async_url_enrich_enabled: + type: boolean + x-stream-index: "001.016" + auto_translation_enabled: + type: boolean + x-stream-index: "001.019" + before_message_send_hook_url: + type: string + x-stream-index: "001.020" + call_types: + additionalProperties: + $ref: '#/components/schemas/CallType' + type: object + x-stream-index: "001.006" + campaign_enabled: + type: boolean + x-stream-index: "001.033" + cdn_expiration_seconds: + format: int32 + type: integer + x-stream-index: "001.036" + channel_configs: + additionalProperties: + $ref: '#/components/schemas/ChannelConfig' + description: Object with channel configs + title: Channel configs + type: object + x-stream-index: "001.005" + x-stream-map: + key: channel_type + custom_action_handler_url: + type: string + x-stream-index: "001.021" + datadog_info: + $ref: '#/components/schemas/DataDogInfo' + x-stream-index: "001.041" + disable_auth_checks: + type: boolean + x-stream-index: "001.010" + disable_permissions_checks: + type: boolean + x-stream-index: "001.011" + enforce_unique_usernames: + type: string + x-stream-index: "001.022" + file_upload_config: + $ref: '#/components/schemas/FileUploadConfig' + x-stream-index: "001.029" + geofences: + items: + $ref: '#/components/schemas/GeofenceResponse' + type: array + x-stream-index: "001.040" + 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" + image_moderation_enabled: + type: boolean + x-stream-index: "001.015" + image_moderation_labels: + items: + type: string + type: array + x-stream-index: "001.017" + image_upload_config: + $ref: '#/components/schemas/FileUploadConfig' + x-stream-index: "001.030" + multi_tenant_enabled: + type: boolean + x-stream-index: "001.014" + name: + type: string + x-stream-index: "001.001" + organization: + type: string + x-stream-index: "001.002" + permission_version: + type: string + x-stream-index: "001.012" + policies: + additionalProperties: + items: + $ref: '#/components/schemas/Policy' + type: array + type: object + x-stream-index: "001.007" + push_notifications: + $ref: '#/components/schemas/PushNotificationFields' + x-stream-index: "001.003" + reminders_interval: + format: int32 + type: integer + x-stream-index: "001.035" + revoke_tokens_issued_before: + format: date-time + type: string + x-stream-index: "001.031" + sns_key: + type: string + x-stream-index: "001.027" + sns_secret: + type: string + x-stream-index: "001.028" + sns_topic_arn: + type: string + x-stream-index: "001.026" + sqs_key: + type: string + x-stream-index: "001.024" + sqs_secret: + type: string + x-stream-index: "001.025" + sqs_url: + type: string + x-stream-index: "001.023" + suspended: + type: boolean + x-stream-index: "001.008" + suspended_explanation: + type: string + x-stream-index: "001.009" + user_search_disallowed_roles: + items: + type: string + type: array + x-stream-index: "001.013" + video_provider: + type: string + x-stream-index: "001.037" + webhook_events: + items: + type: string + type: array + x-stream-index: "001.034" + webhook_url: + type: string + x-stream-index: "001.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 + - 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 + - webhook_events + - reminders_interval + - cdn_expiration_seconds + - video_provider + type: object + Attachment: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + 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" + 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) + title: Type + type: string + x-stream-index: "001" + required: + - Custom + title: Attachment + type: object + x-stream-docs-page-id: file_uploads + AttachmentRequest: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + actions: + items: + $ref: '#/components/schemas/ActionRequest' + 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" + fallback: + type: string + x-stream-index: "002" + fields: + items: + $ref: '#/components/schemas/FieldRequest' + 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/ImagesRequest' + 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) + title: Type + type: string + x-stream-index: "001" + 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" + 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 + 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 + BackstageSettings: + properties: + enabled: + type: boolean + x-stream-index: "001" + required: + - enabled + type: object + BackstageSettingsRequest: + properties: + enabled: + type: boolean + x-stream-index: "001" + type: object + BanRequest: + nullable: true + properties: + banned_by: + $ref: '#/components/schemas/UserRequest' + description: User who issued a ban + title: Banned by + x-stream-index: "009" + banned_by_id: + description: User ID who issued a ban + title: Banned by ID + type: string + x-stream-index: "008" + id: + description: Channel ID to ban user in + title: ID + type: string + x-stream-index: "005" + ip_ban: + description: Whether to perform IP ban or not + title: IP ban + type: boolean + x-stream-index: "007" + 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: "006" + 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" + type: + description: Channel type to ban user in + title: Type + type: string + x-stream-index: "004" + 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: string + x-stream-index: "007" + expires: + format: date-time + type: string + 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 + 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: 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 + 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 + 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" + 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 + 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: string + 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: 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. + 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 + 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 + 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 + 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 + 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 + 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 + 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: + custom: + 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: string + 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 (:) + 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: + 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 + 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 + 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/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 + CallType: + nullable: true + properties: + AppPK: + format: int32 + type: integer + writeOnly: true + x-stream-index: "003" + CreatedAt: + format: date-time + type: string + 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: string + writeOnly: true + x-stream-index: "006" + required: + - PK + - AppPK + - Name + - CreatedAt + - UpdatedAt + - ExternalStorage + 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." + 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 + Channel: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + 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: string + x-stream-index: "009" + created_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "008" + deleted_at: + format: date-time + type: string + 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: string + 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: string + 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.023" + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: "001.018" + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: "001.019" + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: "001.024" + blocklist: + type: string + x-stream-index: "001.020" + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: "001.021" + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: "001.022" + 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: string + 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.017" + message_retention: + type: string + x-stream-index: "001.016" + mutes: + type: boolean + x-stream-index: "001.009" + name: + type: string + x-stream-index: "001.001" + 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: string + 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 + - message_retention + - max_message_length + - automod + - automod_behavior + - created_at + - updated_at + - commands + type: object + ChannelConfigRequest: + description: Channel configuration overrides + properties: + blocklist: + type: string + x-stream-index: "008" + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: "009" + commands: + items: + type: string + type: array + x-stream-index: "011" + grants: + additionalProperties: + items: + type: string + type: array + title: Grants + type: object + x-stream-index: "010" + x-stream-map: + description: List of grants modifiers that apply to a role + key: role + title: Grants + max_message_length: + description: Overrides max message length + format: int32 + maximum: 20000 + title: Max Message Length + type: integer + x-stream-index: "007" + quotes: + description: Enables message quotes + title: Quotes + type: boolean + x-stream-index: "004" + reactions: + description: Enables or disables reactions + title: Reactions + type: boolean + x-stream-index: "002" + replies: + description: Enables message replies (threads) + title: Replies + type: boolean + x-stream-index: "003" + typing_events: + description: Enables or disables typing events + title: Typing events + type: boolean + x-stream-index: "001" + uploads: + description: Enables or disables file uploads + title: Uploads + type: boolean + x-stream-index: "005" + url_enrichment: + description: Enables or disables URL enrichment + title: URL Enrichment + type: boolean + x-stream-index: "006" + type: object + ChannelConfigWithInfo: + properties: + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: 001.002.023 + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: 001.002.018 + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.002.019 + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: 001.002.024 + blocklist: + type: string + x-stream-index: 001.002.020 + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.002.021 + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: 001.002.022 + 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: string + 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: + description: List of grants modifiers that apply to a role + key: role + title: Grants + 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.017 + message_retention: + type: string + x-stream-index: 001.002.016 + mutes: + type: boolean + x-stream-index: 001.002.009 + name: + type: string + x-stream-index: 001.002.001 + 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: string + 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 + - message_retention + - max_message_length + - automod + - automod_behavior + - commands + type: object + ChannelCreatedEvent: + properties: + created_at: + format: date-time + type: string + 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: string + 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: string + 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: + connection_id: + 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" + data: + $ref: '#/components/schemas/ChannelRequest' + 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/PaginationParamsRequest' + x-stream-index: "011" + messages: + $ref: '#/components/schemas/MessagePaginationParamsRequest' + 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/PaginationParamsRequest' + 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: string + 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 + 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: string + 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: string + 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: string + x-stream-index: "011" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + invite_accepted_at: + description: Date when invite was accepted + format: date-time + title: Invited accepted at + type: string + x-stream-index: "008" + invite_rejected_at: + description: Date when invite was rejected + format: date-time + title: Invited rejected at + type: string + 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" + role: + description: 'Permission level of the member in the channel (DEPRECATED: + use channel_role instead)' + enum: + - member + - moderator + - admin + - owner + title: Role + type: string + x-stream-index: "019" + 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: string + 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 + ChannelMemberRequest: + nullable: true + properties: + ban_expires: + description: Expiration date of the ban + format: date-time + title: Ban expires + type: string + 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: string + x-stream-index: "011" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + invite_accepted_at: + description: Date when invite was accepted + format: date-time + title: Invited accepted at + type: string + x-stream-index: "008" + invite_rejected_at: + description: Date when invite was rejected + format: date-time + title: Invited rejected at + type: string + 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" + role: + description: 'Permission level of the member in the channel (DEPRECATED: + use channel_role instead)' + enum: + - member + - moderator + - admin + - owner + title: Role + type: string + x-stream-index: "019" + 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: string + x-stream-index: "012" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "005" + user_id: + title: User ID + type: string + x-stream-index: "004" + 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: string + x-stream-index: "009" + expires: + description: Date/time of mute expiration + format: date-time + title: Expires + type: string + x-stream-index: "008" + updated_at: + description: Date/time of the last update + format: date-time + title: Updated at + type: string + 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 + ChannelRequest: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "017" + 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/ChannelConfigRequest' + x-stream-index: "026" + disabled: + type: boolean + x-stream-index: "016" + frozen: + description: Freeze or unfreeze the channel + title: Frozen + type: boolean + x-stream-index: "015" + members: + items: + $ref: '#/components/schemas/ChannelMemberRequest' + 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 + ChannelResponse: + description: Represents channel in chat + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "029" + 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 (:) + 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: string + x-stream-index: "008" + created_by: + $ref: '#/components/schemas/UserObject' + description: Creator of the channel + title: Created by + x-stream-index: "011" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + 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: string + 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: string + 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: string + x-stream-index: "009" + required: + - id + - type + - cid + - 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: string + 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/Message' + 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/Message' + type: array + x-stream-index: "001.003" + read: + items: + $ref: '#/components/schemas/Read' + 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/UserObject' + 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: string + 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/Message' + 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/Message' + 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/Read' + 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/UserObject' + title: Watchers + type: array + x-stream-index: "005" + required: + - messages + - pinned_messages + - members + - threads + type: object + ChannelStopWatchingRequest: + nullable: true + properties: + connection_id: + type: string + x-stream-index: "001.003" + 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: string + 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: string + 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: string + 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: string + 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 + ChannelsResponse: + 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 + 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: string + 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: string + x-stream-index: "002" + required: + - name + - description + - args + - set + title: Command + 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 + ConnectRequest: + properties: + device: + $ref: '#/components/schemas/DeviceFields' + x-stream-index: "001.002" + user_details: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.001" + required: + - user_details + 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: 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 + 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" + 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 + DataDogInfo: + properties: + api_key: + type: string + x-stream-index: "001" + site: + type: string + x-stream-index: "002" + required: + - api_key + - site + 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" + 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 + 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 + DeviceFields: + properties: + id: + description: Device ID + title: ID + type: string + x-stream-index: "004" + push_provider: + enum: + - firebase + - apn + - huawei + - xiaomi + title: Push provider + type: string + x-stream-index: "001" + push_provider_name: + description: Name of the push provider configuration + title: Push provider name + type: string + x-stream-index: "003" + voip: + type: boolean + x-stream-index: "005" + required: + - push_provider + - 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 + 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: + 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 + FieldRequest: + nullable: true + properties: + short: + type: boolean + x-stream-index: "003" + title: + type: string + x-stream-index: "001" + value: + type: string + x-stream-index: "002" + 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" + required: + - allowed_file_extensions + - blocked_file_extensions + - allowed_mime_types + - blocked_mime_types + type: object + FileUploadRequest: + nullable: true + properties: + file: + description: file field + title: File + type: string + x-stream-index: "002" + user: + $ref: '#/components/schemas/OnlyUserIDRequest' + 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 + 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: string + x-stream-index: "015" + created_at: + description: Date/time of creation + format: date-time + title: Created at + type: string + x-stream-index: "011" + created_by_automod: + type: boolean + x-stream-index: "004" + custom: + 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: string + x-stream-index: "016" + reviewed_at: + description: Date of the review + format: date-time + title: Reviewed at + type: string + x-stream-index: "013" + 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: string + 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: + 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: string + 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: + 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + GetApplicationResponse: + nullable: true + properties: + app: + $ref: '#/components/schemas/App' + 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 + - 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 + 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 + GetOGResponse: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.018" + 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" + 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 + - 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: + 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 + 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: + - 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: "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 + GuestRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "001" + required: + - user + type: object + GuestResponse: + nullable: true + properties: + access_token: + description: Authentication token to use for guest user + title: Access token + type: string + x-stream-index: "002" + duration: + type: string + x-stream-index: "003.001" + user: + $ref: '#/components/schemas/UserObject' + description: Created user object + title: User + x-stream-index: "001" + required: + - access_token + - 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" + 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" + 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" + created_at: + format: date-time + type: string + x-stream-index: "003.002" + me: + $ref: '#/components/schemas/OwnUser' + x-stream-index: "002" + type: + default: health.check + type: string + x-stream-index: "003.001" + required: + - cid + - 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + 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 + ImageDataRequest: + 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" + 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" + required: + - crop + - resize + - height + - width + title: Image size configuration + type: object + ImageSizeRequest: + 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/ImageSizeRequest' + title: Upload sizes + type: array + x-stream-index: "002" + user: + $ref: '#/components/schemas/OnlyUserIDRequest' + 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 + ImagesRequest: + properties: + fixed_height: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "002" + fixed_height_downsampled: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "004" + fixed_height_still: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "003" + fixed_width: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "005" + fixed_width_downsampled: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "007" + fixed_width_still: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "006" + original: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "001" + 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: "004.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 + - credentials + - duration + type: object + Label: + properties: + 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: + type: object + x-stream-index: "002" + required: + - name + - external_app_url + - external_css_url + 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 + MarkChannelsReadRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + 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/UserObjectRequest' + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - message_id + - thread_id + 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: string + 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: string + 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: + 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: + 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 + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "031" + 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: "043" + cid: + description: Channel unique identifier in : format + title: Channel CID + type: string + x-stream-index: "026" + 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: string + x-stream-index: "028" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + x-stream-index: "030" + deleted_reply_count: + format: int32 + type: integer + x-stream-index: "021" + 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: "041" + 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: "037" + 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: "040" + 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: "017" + pin_expires: + description: Date when pinned message expires + format: date-time + title: Pin expiration date + type: string + x-stream-docs-page-id: pinned_messages + x-stream-index: "048" + pinned: + description: Whether message is pinned or not + title: Pinned + type: boolean + x-stream-docs-page-id: pinned_messages + x-stream-index: "044" + pinned_at: + description: Date when message got pinned + format: date-time + title: Pinned at + type: string + x-stream-docs-page-id: pinned_messages + x-stream-index: "045" + 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: "047" + quoted_message: + $ref: '#/components/schemas/Message' + description: Contains quoted message + title: Quoted message + x-stream-docs-page-id: threads#quote-message + x-stream-index: "023" + quoted_message_id: + title: ID of quoted message + type: string + x-stream-docs-page-id: threads#quote-message + x-stream-index: "022" + 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_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: "020" + shadowed: + description: Whether the message was shadowed or not + title: Shadowed + type: boolean + x-stream-docs-page-id: moderation#shadow-ban + x-stream-index: "033" + 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: "019" + silent: + description: Whether message is silent or not + title: Silent + type: boolean + x-stream-index: "042" + 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: "025" + 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: string + x-stream-index: "029" + 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 + - 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: + ID: + type: string + writeOnly: true + x-stream-index: "001" + form_data: + additionalProperties: + type: string + description: ReadOnlyData to execute command with + title: Form data + type: object + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "003.002" + user_id: + type: string + x-stream-index: "003.001" + required: + - form_data + 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: string + 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: string + x-stream-index: "013" + created_at: + format: date-time + type: string + x-stream-index: "009" + created_by_automod: + type: boolean + x-stream-index: "001" + custom: + 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: string + x-stream-index: "014" + reviewed_at: + format: date-time + type: string + x-stream-index: "011" + reviewed_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "012" + updated_at: + format: date-time + type: string + 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: string + 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: string + 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: string + 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 + MessagePaginationParamsRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "008" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "007" + created_at_around: + format: date-time + type: string + x-stream-index: "012" + created_at_before: + format: date-time + type: string + x-stream-index: "010" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "009" + id_around: + type: string + x-stream-index: "011" + id_gt: + type: string + x-stream-index: "004" + id_gte: + type: string + x-stream-index: "003" + id_lt: + type: string + x-stream-index: "006" + id_lte: + type: string + x-stream-index: "005" + 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: string + 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/AttachmentRequest' + maximum: 30 + type: array + x-stream-index: "004" + custom: + 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" + parent_id: + type: string + x-stream-index: "005" + pin_expires: + format: date-time + type: string + x-stream-index: "015" + pinned: + type: boolean + x-stream-index: "013" + pinned_at: + format: date-time + nullable: true + type: string + x-stream-index: "014" + 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" + required: + - attachments + type: object + MessageResponse: + 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/Message' + x-stream-index: "001" + required: + - duration + 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: string + 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 + MessageWithPendingMetadataResponse: + nullable: true + properties: + duration: + type: string + x-stream-index: 001.002.001 + message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.001" + pending_message_metadata: + additionalProperties: + type: string + description: Metadata attached to a message while it is pending + title: Pending message metadata + type: object + x-stream-index: "002" + required: + - duration + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - channel_cids + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - target_ids + 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 + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + 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: string + x-stream-index: "001.002" + first_unread_message_id: + type: string + x-stream-index: "005" + last_read_at: + format: date-time + type: string + 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: string + 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: string + 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: string + 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 + 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 + NullBoolRequest: + properties: + HasValue: + type: boolean + writeOnly: true + x-stream-index: "002" + Value: + type: boolean + writeOnly: true + x-stream-index: "001" + type: object + NullTimeRequest: + properties: + HasValue: + type: boolean + writeOnly: true + x-stream-index: "002" + Value: + format: date-time + type: string + writeOnly: true + x-stream-index: "001" + type: object + OnlyUserIDRequest: + 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 + - 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: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + banned: + type: boolean + x-stream-index: "014" + channel_mutes: + items: + $ref: '#/components/schemas/ChannelMute' + type: array + x-stream-index: "026" + created_at: + format: date-time + type: string + x-stream-index: "007" + deactivated_at: + format: date-time + type: string + x-stream-index: "012" + deleted_at: + format: date-time + type: string + x-stream-index: "011" + devices: + items: + $ref: '#/components/schemas/Device' + type: array + x-stream-index: "024" + id: + type: string + x-stream-index: "003" + invisible: + type: boolean + x-stream-index: "021" + language: + type: string + x-stream-index: "031" + last_active: + format: date-time + type: string + x-stream-index: "010" + latest_hidden_channels: + items: + type: string + type: array + x-stream-index: "033" + mutes: + items: + $ref: '#/components/schemas/UserMute' + type: array + x-stream-index: "025" + online: + type: boolean + x-stream-index: "020" + 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: "032" + total_unread_count: + format: int32 + type: integer + x-stream-index: "028" + unread_channels: + format: int32 + type: integer + x-stream-index: "029" + unread_count: + format: int32 + type: integer + x-stream-index: "027" + unread_threads: + format: int32 + type: integer + x-stream-index: "030" + updated_at: + format: date-time + type: string + 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: + created_at: + format: date-time + type: string + x-stream-index: "001.004" + custom: + type: object + x-stream-index: 001.001.004 + deleted_at: + format: date-time + type: string + x-stream-index: "001.006" + 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 + language: + type: string + x-stream-index: 001.001.005 + name: + type: string + x-stream-index: 001.001.002 + role: + type: string + x-stream-index: "001.002" + teams: + items: + type: string + type: array + x-stream-index: "001.003" + updated_at: + format: date-time + type: string + x-stream-index: "001.005" + required: + - id + - custom + - language + - role + - teams + - created_at + - updated_at + - devices + type: object + PaginationParamsRequest: + properties: + id_gt: + format: int32 + type: integer + x-stream-index: "004" + id_gte: + format: int32 + type: integer + x-stream-index: "003" + id_lt: + format: int32 + type: integer + x-stream-index: "006" + id_lte: + format: int32 + type: integer + x-stream-index: "005" + 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, + clients 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 + Policy: + properties: + action: + type: integer + x-stream-index: "007" + created_at: + format: date-time + type: string + 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: string + x-stream-index: "011" + required: + - name + - resources + - roles + - action + - owner + - priority + - created_at + - updated_at + 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: string + x-stream-index: "002" + type: object + PushNotificationSettingsRequest: + properties: + disabled: + $ref: '#/components/schemas/NullBoolRequest' + x-stream-index: "001" + disabled_until: + $ref: '#/components/schemas/NullTimeRequest' + 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: string + x-stream-index: "008" + description: + maxLength: 128 + type: string + x-stream-index: "007" + disabled_at: + format: date-time + type: string + 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: integer + x-stream-index: "006" + updated_at: + format: date-time + type: string + 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 + QueryBannedUsersRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "003.006" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "003.005" + created_at_before: + format: date-time + type: string + x-stream-index: "003.008" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "003.007" + exclude_expired_bans: + type: boolean + x-stream-index: "006" + filter_conditions: + 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/UserObject' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "007.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: 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 + QueryCallsRequest: + nullable: true + properties: + filter_conditions: + 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 + QueryChannelsRequest: + nullable: true + properties: + connection_id: + 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" + filter_conditions: + 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/SortParamRequest' + 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/UserObjectRequest' + x-stream-index: "010.002" + user_id: + type: string + x-stream-index: "010.001" + 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 + QueryMembersRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "006.010" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "006.009" + created_at_before: + format: date-time + type: string + x-stream-index: "006.012" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "006.011" + filter_conditions: + 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/UserObject' + x-stream-index: "007.002" + user_id: + type: string + x-stream-index: "007.001" + user_id_gt: + type: string + x-stream-index: "006.006" + user_id_gte: + type: string + x-stream-index: "006.005" + user_id_lt: + type: string + x-stream-index: "006.008" + user_id_lte: + type: string + x-stream-index: "006.007" + required: + - type + - filter_conditions + type: object + QueryMembersRequest_1: + nullable: true + properties: + filter_conditions: + 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 + QueryMessageFlagsRequest: + properties: + filter_conditions: + 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/UserObject' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "004.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: 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 + QueryThreadsRequest: + nullable: true + properties: + connection_id: + type: string + 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" + 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: "005.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 + QueryUsersRequest: + properties: + connection_id: + description: Websocket connection ID to interact with. You can pass it as + Body or URL parameter + title: Connection ID + type: string + x-stream-index: "006.003" + filter_conditions: + description: User filters + title: Filter conditions + type: object + x-stream-docs-page-id: query_users + x-stream-index: "001" + id_gt: + type: string + x-stream-index: "004.006" + id_gte: + type: string + x-stream-index: "004.005" + id_lt: + type: string + x-stream-index: "004.008" + id_lte: + type: string + x-stream-index: "004.007" + limit: + format: int32 + maximum: 100 + minimum: 0 + type: integer + x-stream-index: "004.003" + offset: + format: int32 + maximum: 1000 + type: integer + x-stream-index: "004.004" + presence: + description: Request user presence status + title: Presence + type: boolean + x-stream-index: "003" + sort: + description: Array of sort parameters + items: + $ref: '#/components/schemas/SortParam' + maximum: 5 + title: Sort + type: array + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "005.002" + user_id: + type: string + x-stream-index: "005.001" + required: + - filter_conditions + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "010" + created_at: + description: Date/time of creation + format: date-time + readOnly: true + title: Created at + type: string + x-stream-index: "008" + 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: string + 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: string + 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 + 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: string + 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: + description: Represents user reaction to a message + properties: + Custom: + type: object + writeOnly: true + 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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: + - type + title: Reaction + type: object + x-stream-docs-page-id: send_reaction + ReactionResponse: + 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 + 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: string + 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: string + 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 + 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" + 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 + 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: 30000 + minimum: 5000 + type: integer + x-stream-index: "002" + incoming_call_timeout_ms: + format: int32 + maximum: 180000 + minimum: 5000 + type: integer + x-stream-index: "001" + 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 + 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 + SearchRequest: + properties: + filter_conditions: + 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: + 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: + nullable: true + properties: + message: + $ref: '#/components/schemas/SearchResultMessage' + description: Found message + title: Message + x-stream-index: "001" + type: object + SearchResultMessage: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.031" + attachments: + items: + $ref: '#/components/schemas/Attachment' + type: array + x-stream-index: "001.011" + before_message_send_failed: + type: boolean + x-stream-index: "001.043" + channel: + $ref: '#/components/schemas/ChannelResponse' + description: Channel object + title: Channel + x-stream-index: "002" + cid: + type: string + x-stream-index: "001.026" + command: + type: string + x-stream-index: "001.006" + created_at: + format: date-time + type: string + x-stream-index: "001.028" + deleted_at: + format: date-time + type: string + x-stream-index: "001.030" + deleted_reply_count: + format: int32 + type: integer + x-stream-index: "001.021" + html: + type: string + x-stream-index: "001.007" + i18n: + additionalProperties: + type: string + type: object + x-stream-index: "001.041" + id: + type: string + x-stream-index: "001.002" + image_labels: + additionalProperties: + items: + type: string + type: array + type: object + x-stream-index: "001.037" + 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.040" + 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.017" + pin_expires: + format: date-time + type: string + x-stream-index: "001.048" + pinned: + type: boolean + x-stream-index: "001.044" + pinned_at: + format: date-time + type: string + x-stream-index: "001.045" + pinned_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.047" + quoted_message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.023" + quoted_message_id: + type: string + x-stream-index: "001.022" + reaction_counts: + additionalProperties: + format: int32 + type: integer + type: object + x-stream-index: "001.014" + reaction_scores: + additionalProperties: + format: int32 + type: integer + type: object + x-stream-index: "001.015" + reply_count: + format: int32 + type: integer + x-stream-index: "001.020" + shadowed: + type: boolean + x-stream-index: "001.033" + show_in_channel: + type: boolean + x-stream-index: "001.019" + silent: + type: boolean + x-stream-index: "001.042" + text: + type: string + x-stream-index: "001.004" + thread_participants: + items: + $ref: '#/components/schemas/UserObject' + type: array + x-stream-index: "001.025" + type: + type: string + x-stream-index: "001.008" + updated_at: + format: date-time + type: string + x-stream-index: "001.029" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.010" + required: + - id + - text + - html + - type + - 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 + 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: + 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/Message' + 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: + ID: + type: string + writeOnly: true + x-stream-index: "001" + 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: "002.001" + reaction: + $ref: '#/components/schemas/ReactionResponse' + x-stream-index: "001" + required: + - reaction + - duration + type: object + ShowChannelRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + 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 + 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 + 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 + 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" + connection_id: + type: string + x-stream-index: "006.003" + last_sync_at: + description: Date from which synchronization should happen + format: date-time + title: Last sync at + type: string + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "005.002" + user_id: + type: string + x-stream-index: "005.001" + watch: + 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" + with_inaccessible_cids: + description: If set to true this will add 'inaccessible_cids' to response + type + title: With inaccessible CIDs + type: boolean + x-stream-index: "003" + required: + - 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 + - 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 + Thread: + description: Represents a conversation thread linked to a specific message in + a channel. + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "009" + 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: string + x-stream-index: "007" + left_thread_at: + description: Left Thread At is the time when the user left the thread + format: date-time + title: Left Thread At + type: string + 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 + - 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: string + 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: + type: object + x-stream-index: "015" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + last_message_at: + format: date-time + type: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "001.017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + x-stream-index: "001.014" + required: + - channel_cid + - parent_message_id + - created_at + - updated_at + - title + - Custom + - latest_replies + title: Thread + type: object + ThreadStateResponse: + nullable: true + 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: string + 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: + type: object + x-stream-index: "001.015" + deleted_at: + format: date-time + type: string + x-stream-index: "001.013" + last_message_at: + format: date-time + type: string + 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: string + 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: string + 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 + 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 + 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: string + 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 + 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: string + 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: string + 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: 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 + UnmuteChannelRequest: + nullable: true + properties: + channel_cid: + type: string + x-stream-index: "001.001" + channel_cids: + items: + type: string + maximum: 25 + type: array + x-stream-index: "001.002" + expiration: + type: integer + x-stream-index: "001.003" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "002.002" + user_id: + type: string + x-stream-index: "002.001" + required: + - channel_cid + - channel_cids + 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_id: + type: string + x-stream-index: "001.001" + target_ids: + items: + type: string + maximum: 1000 + type: array + x-stream-index: "001.002" + timeout: + minimum: 0 + type: integer + x-stream-index: "001.003" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "002.002" + user_id: + type: string + x-stream-index: "002.001" + required: + - target_id + - target_ids + 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: string + 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" + duration: + description: Duration of the request in human-readable format + title: Duration + type: string + x-stream-index: "006.001" + 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 + - duration + type: object + UnreadCountsThread: + properties: + last_read: + format: date-time + type: string + 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: + 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 + UpdateChannelPartialRequest: + nullable: true + properties: + set: + type: object + x-stream-index: "002.001" + unset: + items: + type: string + type: array + x-stream-index: "002.002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "003.002" + user_id: + type: string + x-stream-index: "003.001" + required: + - set + - unset + 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/ChannelMemberRequest' + 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/ChannelMemberRequest' + 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/ChannelRequest' + 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/ChannelMemberRequest' + 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" + required: + - remove_members + - add_moderators + - demote_moderators + 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: + description: Sets new field values + title: Set + type: object + x-stream-index: "002.001" + x-stream-map: + description: New value to set + key: field + title: Value + 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" + required: + - set + - unset + 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: + - message + - 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 + UpdateThreadPartialRequest: + nullable: true + properties: + ID: + type: string + writeOnly: true + x-stream-index: "001" + set: + type: object + x-stream-index: "004.001" + unset: + items: + type: string + type: array + x-stream-index: "004.002" + required: + - set + - unset + 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: + - duration + type: object + UpdateUserPartialRequest: + nullable: true + properties: + id: + description: User ID to update + title: ID + type: string + x-stream-index: "001" + set: + type: object + x-stream-index: "002.001" + unset: + items: + type: string + type: array + x-stream-index: "002.002" + required: + - id + - set + - unset + 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 + UpdateUsersRequest: + nullable: true + properties: + users: + additionalProperties: + $ref: '#/components/schemas/UserObjectRequest' + 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: "002.001" + users: + additionalProperties: + $ref: '#/components/schemas/UserObject' + description: Object containing users + title: Users + type: object + x-stream-index: "001" + x-stream-map: + key: user_id + required: + - users + - 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: 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 + 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: string + x-stream-index: "008.002" + created_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001" + expiration: + format: date-time + type: string + 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: string + 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: string + 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 + UserMute: + nullable: true + properties: + created_at: + description: Date/time of creation + format: date-time + title: Created at + type: string + x-stream-index: "009" + expires: + description: Date/time of mute expiration + format: date-time + title: Expires + type: string + 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: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + ban_expires: + description: Expiration date of the ban + format: date-time + title: Ban expires + type: string + 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: string + x-stream-index: "007" + deactivated_at: + description: Date of deactivation + format: date-time + readOnly: true + title: Deactivated at + type: string + x-stream-index: "012" + deleted_at: + description: Date/time of deletion + format: date-time + readOnly: true + title: Deleted at + type: string + 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: "031" + last_active: + description: Date of last activity + format: date-time + readOnly: true + title: Last active + type: string + x-stream-index: "010" + online: + description: Whether a user online or not + readOnly: true + title: Online + type: boolean + x-stream-index: "020" + 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: string + x-stream-index: "038" + 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: "032" + updated_at: + description: Date/time of the last update + format: date-time + readOnly: true + title: Updated at + type: string + x-stream-index: "008" + required: + - id + title: User object + type: object + UserObjectRequest: + description: Represents chat user + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + id: + description: Unique user identifier + title: ID + type: string + x-stream-index: "003" + invisible: + type: boolean + x-stream-index: "016" + language: + description: Preferred language of a user + title: Language + type: string + x-stream-index: "021" + push_notifications: + $ref: '#/components/schemas/PushNotificationSettingsRequest' + x-stream-index: "022" + 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: "019" + required: + - id + title: User object + type: object + UserPresenceChangedEvent: + properties: + created_at: + format: date-time + type: string + 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: string + 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: + 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" + language: + type: string + x-stream-index: "005" + name: + description: Optional name of user + title: Name + type: string + x-stream-index: "002" + required: + - id + type: object + UserResponse: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.005" + ban_expires: + format: date-time + type: string + x-stream-index: "001.015" + banned: + type: boolean + x-stream-index: "001.014" + created_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.007" + deactivated_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.012" + deleted_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.011" + id: + type: string + x-stream-index: "001.003" + invisible: + type: boolean + x-stream-index: "001.021" + language: + type: string + x-stream-index: "001.031" + last_active: + format: date-time + readOnly: true + type: string + x-stream-index: "001.010" + online: + readOnly: true + type: boolean + x-stream-index: "001.020" + push_notifications: + $ref: '#/components/schemas/PushNotificationSettings' + x-stream-index: "001.023" + revoke_tokens_issued_before: + format: date-time + type: string + x-stream-index: "001.038" + role: + type: string + x-stream-index: "001.004" + shadow_banned: + description: Whether user is shadow banned or not + title: Shadow banned + type: boolean + x-stream-index: "002" + teams: + items: + type: string + type: array + x-stream-index: "001.032" + updated_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.008" + required: + - id + - role + - Custom + - banned + - online + - shadow_banned + 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: string + 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: string + 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: string + 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: string + 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 + UsersResponse: + nullable: true + properties: + duration: + type: string + x-stream-index: "002.001" + users: + description: List of found users + items: + $ref: '#/components/schemas/UserResponse' + title: Users + type: array + x-stream-index: "001" + required: + - users + - duration + 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/TargetResolutionRequest' + x-stream-index: "003" + type: object + WSEvent: + description: The discriminator object for all websocket events, it maps events' + payload to the final type + discriminator: + mapping: + call.accepted: '#/components/schemas/CallAcceptedEvent' + call.blocked_user: '#/components/schemas/BlockedUserEvent' + 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.unblocked_user: '#/components/schemas/UnblockedUserEvent' + call.updated: '#/components/schemas/CallUpdatedEvent' + call.user_muted: '#/components/schemas/CallUserMuted' + 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/AnyEvent' + 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.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' + 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/CallUpdatedEvent' + - $ref: '#/components/schemas/CallUserMuted' + - $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/ConnectedEvent' + - $ref: '#/components/schemas/ConnectionErrorEvent' + - $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/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/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' + 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 + connectRequestQueryRequest: + nullable: true + type: object + securitySchemes: + JWT: + description: | + JWT should be always provided when stream-auth-type=jwt. + + Using JWT auth request could be authenticated as user or as server-side. + + When using user authentication permission checking is going to be applied to requests based on the user that is + performing a request. + + The `authorization` header should be a JWT string signed using the secret attached to the API key used to perform + requests. + + **WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not + shared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side. + If you wish, you can configure your application to ignore authentication (see `disable_auth_check`) + The JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well. + 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 + values: `jwt` or `anonymous`. + + `jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization + header. + + `anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available + to anonymous users. + in: header + name: Stream-Auth-Type + type: apiKey +info: + title: Stream API + version: v98.0.2-message-blocked-event.1 +openapi: 3.0.3 +paths: + /api/v2/app: + get: + description: | + This Method returns the application settings + 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: + - Settings + /api/v2/chat/channels: + post: + description: | + Query channels with filter query + + Required permissions: + - ReadChannel + 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/ChannelsResponse' + 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: + - Channels + /api/v2/chat/channels/{type}/{id}: + delete: + description: | + Deletes channel + + Sends events: + - channel.deleted + + Required permissions: + - DeleteChannel + 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: + - Channels + patch: + description: | + Updates certain fields of the channel + + Sends events: + - channel.updated + + Required permissions: + - UpdateChannel + - UpdateChannelCooldown + - UpdateChannelFrozen + 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: + - Channels + post: + description: | + Change channel data + + Sends events: + - channel.updated + - member.added + - member.removed + - member.updated + - message.new + + Required permissions: + - AddOwnChannelMembership + - RemoveOwnChannelMembership + - UpdateChannel + - UpdateChannelCooldown + - UpdateChannelFrozen + - UpdateChannelMembers + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/event: + post: + description: | + Sends event to the channel + + Required permissions: + - SendCustomEvent + 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: + - Events + /api/v2/chat/channels/{type}/{id}/file: + delete: + description: | + Deletes previously uploaded file + + Required permissions: + - DeleteAttachment + 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: + - Messages + - Files + post: + description: | + Uploads file + + Required permissions: + - UploadAttachment + 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: + - Messages + - Files + /api/v2/chat/channels/{type}/{id}/hide: + post: + description: | + Marks channel as hidden for current user + + Sends events: + - channel.hidden + + Required permissions: + - ReadChannel + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/image: + delete: + description: | + Deletes previously uploaded image + + Required permissions: + - DeleteAttachment + 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: + - Messages + - Files + post: + description: | + Uploads image + + Required permissions: + - UploadAttachment + 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: + - Messages + - Files + /api/v2/chat/channels/{type}/{id}/message: + post: + description: | + Sends new message to the specified channel + + Sends events: + - message.new + - message.updated + + Required permissions: + - AddLinks + - CreateMessage + - PinMessage + - SkipChannelCooldown + - SkipMessageModeration + - UseFrozenChannel + 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: + - Messages + /api/v2/chat/channels/{type}/{id}/messages: + get: + description: | + Returns list messages found by IDs + + Required permissions: + - ReadChannel + 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 + schema: + description: List of comma-separated IDs + items: + type: string + maximum: 50 + minimum: 1 + title: IDs + type: array + 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: + - Messages + /api/v2/chat/channels/{type}/{id}/query: + post: + description: | + This Method creates a channel or returns an existing one with matching attributes + + Sends events: + - channel.created + - member.added + - member.removed + - member.updated + - user.watching.start + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/read: + post: + description: | + Marks channel as read up to the specific message + + Sends events: + - message.read + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/channels/{type}/{id}/show: + post: + description: | + Shows previously hidden channel + + Sends events: + - channel.visible + operationId: ShowChannel + 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/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: + - Channels + /api/v2/chat/channels/{type}/{id}/stop-watching: + post: + description: | + Call this Method to stop receiving channel events + + Sends events: + - user.watching.stop + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/truncate: + post: + description: | + Truncates channel + + Sends events: + - channel.truncated + + Required permissions: + - DeleteChannel + - TruncateChannel + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/unread: + post: + description: | + Marks channel as unread from a specific message + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/channels/{type}/query: + post: + description: | + This Method creates a channel or returns an existing one with matching attributes + + Sends events: + - channel.created + - member.added + - member.removed + - member.updated + - user.watching.start + 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: 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: + - Channels + /api/v2/chat/channels/delete: + post: + description: | + Allows to delete several channels at once asynchronously + + Sends events: + - channel.deleted + + Required permissions: + - DeleteChannel + 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: + - Channels + - GDPR + /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 + + Sends events: + - message.read + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/members: + get: + description: | + Find and filter channel members + + Required permissions: + - ReadChannel + 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: + - Channels + /api/v2/chat/messages/{id}: + delete: + description: | + Deletes message + + Sends events: + - message.deleted + + Required permissions: + - DeleteMessage + 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/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: Delete message + tags: + - Messages + get: + description: | + Returns message by ID + + Required permissions: + - ReadChannel + operationId: GetMessage + parameters: + - in: path + name: id + required: true + schema: + description: Message ID + title: ID + type: string + writeOnly: true + x-stream-index: "001" + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/MessageWithPendingMetadataResponse' + 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: + - Messages + post: + description: | + Updates message with new data + + Sends events: + - message.updated + + Required permissions: + - AddLinks + - PinMessage + - SkipMessageModeration + - UpdateMessage + 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: + - Messages + put: + description: | + Updates certain fields of the message + + Sends events: + - message.updated + + Required permissions: + - AddLinks + - PinMessage + - SkipMessageModeration + - UpdateMessage + 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: + - Messages + /api/v2/chat/messages/{id}/action: + post: + description: | + Executes message command action with given parameters + + Sends events: + - message.new + + Required permissions: + - RunMessageAction + 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: + - Messages + /api/v2/chat/messages/{id}/reaction: + post: + description: | + Sends reaction to specified message + + Sends events: + - reaction.new + - reaction.updated + + Required permissions: + - CreateReaction + - UseFrozenChannel + 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/ReactionResponse' + 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: + - Messages + - Reactions + /api/v2/chat/messages/{id}/reaction/{type}: + delete: + description: | + Removes user reaction from the message + + Sends events: + - reaction.deleted + + Required permissions: + - DeleteReaction + 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: + - Messages + - Reactions + /api/v2/chat/messages/{id}/reactions: + get: + description: | + Returns list of reactions of specific message + + Required permissions: + - ReadChannel + 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: + - Messages + - Reactions + /api/v2/chat/messages/{id}/translate: + post: + description: | + Translates message to a given language using automated translation software + + Sends events: + - message.updated + + Required permissions: + - ReadChannel + 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: + - Messages + /api/v2/chat/messages/{parent_id}/replies: + get: + description: | + Returns replies (thread) of the message + + Required permissions: + - ReadChannel + operationId: GetReplies + parameters: + - in: path + name: parent_id + required: true + schema: + description: ID of a message which replies to return + title: Parent ID + type: string + writeOnly: true + x-stream-index: "001" + - in: query + name: id_gte + schema: + type: string + x-stream-index: 002.001.003 + - in: query + name: id_gt + schema: + type: string + x-stream-index: 002.001.004 + - in: query + name: id_lte + schema: + type: string + x-stream-index: 002.001.005 + - in: query + name: id_lt + schema: + type: string + x-stream-index: 002.001.006 + - in: query + name: created_at_after_or_equal + schema: + format: date-time + type: string + x-stream-index: 002.001.007 + - in: query + name: created_at_after + schema: + format: date-time + type: string + x-stream-index: 002.001.008 + - in: query + name: created_at_before_or_equal + schema: + format: date-time + type: string + x-stream-index: 002.001.009 + - in: query + name: created_at_before + schema: + format: date-time + type: string + x-stream-index: 002.001.010 + - in: query + name: id_around + schema: + type: string + x-stream-index: 002.001.011 + - in: query + name: created_at_around + schema: + format: date-time + type: string + x-stream-index: 002.001.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: + - Messages + /api/v2/chat/moderation/ban: + delete: + description: | + Removes previously applied ban + + Sends events: + - user.unbanned + + Required permissions: + - BanChannelMember + - BanUser + operationId: Unban + parameters: + - in: query + name: target_user_id + schema: + type: string + x-stream-index: "001" + - in: query + name: type + schema: + type: string + x-stream-index: "002" + - in: query + name: id + schema: + type: string + x-stream-index: "003" + - in: query + name: created_by + schema: + type: string + x-stream-index: "004" + 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: + - Users + - Moderation + post: + description: | + Restricts user activity either in specific channel or globally + + Sends events: + - user.banned + + Required permissions: + - BanChannelMember + - BanUser + 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: + - Users + - Moderation + /api/v2/chat/moderation/flag: + post: + description: | + Reports message or user for review by moderators + + Sends events: + - message.flagged + - user.flagged + + Required permissions: + - FlagMessage + - FlagUser + 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: + - Moderation + - Messages + - Users + /api/v2/chat/moderation/flags/message: + get: + description: | + Find and filter message flags + + Required permissions: + - ReadMessageFlags + 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: + - Messages + - Moderation + /api/v2/chat/moderation/mute: + post: + description: | + Mutes one or several users + + Sends events: + - user.muted + + Required permissions: + - MuteUser + 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: + - Users + - Moderation + /api/v2/chat/moderation/mute/channel: + post: + description: | + Mutes channel for user + + Sends events: + - channel.muted + + Required permissions: + - MuteChannel + 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: + - Channels + /api/v2/chat/moderation/unmute: + post: + description: | + Unmutes previously muted user + + Sends events: + - user.unmuted + + Required permissions: + - MuteUser + 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: + - Users + - Moderation + /api/v2/chat/moderation/unmute/channel: + post: + description: | + Unmutes channel for user + + Sends events: + - channel.unmuted + + Required permissions: + - MuteChannel + 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: + - Channels + /api/v2/chat/query_banned_users: + get: + description: | + Find and filter channel scoped or global user bans + + Required permissions: + - ReadChannel + 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: + - Users + - Moderation + /api/v2/chat/search: + get: + description: | + Search messages across channels + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/sync: + post: + description: | + Returns all events happened since client disconnect in specified channels + + Required permissions: + - ReadChannel + 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: + - Channels + - Events + /api/v2/chat/threads: + post: + description: | + Returns the list of threads for specific user + + Required permissions: + - ReadChannel + 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: + - Threads + /api/v2/chat/threads/{message_id}: + get: + description: | + Return a specific thread + + Required permissions: + - ReadChannel + 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" + 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: + - Threads + patch: + description: | + Updates certain fields of the thread + + Sends events: + - thread.updated + + Required permissions: + - ReadChannel + - UpdateThread + 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: + - Threads + - Channels + /api/v2/chat/unread: + get: + description: | + UnreadCount counts + operationId: UnreadCounts + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/UnreadCountsResponse' + 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: UnreadCount counts + tags: + - Channels + /api/v2/connect: + get: + description: | + Establishes WebSocket connection for user + + Sends events: + - user.updated + operationId: Connect + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/ConnectRequest' + x-stream-index: "001" + in: query + name: json + 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: Connect (WebSocket) + tags: + - Users + /api/v2/devices: + delete: + description: | + Deletes one device + 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 + summary: Delete device + tags: + - Devices + get: + description: | + Returns all available devices + 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: + - Devices + post: + description: | + Adds a new device to a user, if the same device already exists the call will have no effect + operationId: CreateDevice + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDeviceRequest' + 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 + summary: Create device + tags: + - Devices + - Push + /api/v2/guest: + post: + description: | + Creates guest user + operationId: CreateGuest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GuestRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/GuestResponse' + 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: + - Users + /api/v2/longpoll: + get: + description: | + WebSocket fallback transport endpoint + + Sends events: + - user.updated + operationId: LongPoll + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/ConnectRequest' + 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: + - Users + /api/v2/og: + get: + description: | + Get an OpenGraph attachment for a link + operationId: GetOG + parameters: + - in: query + name: url + 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: + - Messages + /api/v2/users: + get: + description: | + Find and filter users + + Required permissions: + - SearchUser + operationId: QueryUsers + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/QueryUsersRequest' + x-stream-index: "001" + in: query + name: payload + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/UsersResponse' + 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: + - Users + patch: + description: | + Updates certain fields of the user + + Sends events: + - user.presence.changed + - user.updated + operationId: UpdateUsersPartial + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateUserPartialRequest' + 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: + - Users + post: + description: | + Update or create users in bulk + + Sends events: + - user.updated + 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: + - Users + /api/v2/video/call/{type}/{id}: + get: + description: |2 + + + Required permissions: + - ReadCall + 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 + patch: + description: |2 + + + Sends events: + - call.updated + + Required permissions: + - UpdateCall + 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 + post: + description: | + Gets or creates a new call + + Sends events: + - call.created + - call.notification + - call.ring + + Required permissions: + - CreateCall + - ReadCall + - UpdateCallSettings + 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 + /api/v2/video/call/{type}/{id}/accept: + post: + description: |2 + + + Sends events: + - call.accepted + + Required permissions: + - JoinCall + 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 + /api/v2/video/call/{type}/{id}/block: + post: + description: | + Block a user, preventing them from joining the call until they are unblocked. + + Sends events: + - call.blocked_user + + Required permissions: + - BlockUser + 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 + /api/v2/video/call/{type}/{id}/event: + post: + description: | + Sends custom event to the call + + Sends events: + - custom + + Required permissions: + - SendEvent + 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 + summary: Send custom event + /api/v2/video/call/{type}/{id}/go_live: + post: + description: |2 + + + Sends events: + - call.live_started + + Required permissions: + - UpdateCall + 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 + /api/v2/video/call/{type}/{id}/join: + post: + description: | + Request to join a call + + Required permissions: + - CreateCall + - JoinCall + 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 + /api/v2/video/call/{type}/{id}/mark_ended: + post: + description: |2 + + + Sends events: + - call.ended + + Required permissions: + - EndCall + 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 + /api/v2/video/call/{type}/{id}/members: + post: + description: |2 + + + Sends events: + - call.member_added + - call.member_removed + - call.member_updated + + Required permissions: + - RemoveCallMember + - UpdateCallMember + - UpdateCallMemberRole + 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 + /api/v2/video/call/{type}/{id}/mute_users: + post: + description: | + Mutes users in a call + + Required permissions: + - MuteUsers + 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 + /api/v2/video/call/{type}/{id}/pin: + post: + description: | + Pins a track for all users in the call. + + Required permissions: + - PinCallTrack + 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 + /api/v2/video/call/{type}/{id}/reaction: + post: + description: | + Sends reaction to the call + + Sends events: + - call.reaction_new + + Required permissions: + - CreateCallReaction + 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 + /api/v2/video/call/{type}/{id}/recordings: + get: + description: | + Lists recordings + + Required permissions: + - ListRecordings + 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 + /api/v2/video/call/{type}/{id}/reject: + post: + description: |2 + + + Sends events: + - call.rejected + + Required permissions: + - JoinCall + 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 + /api/v2/video/call/{type}/{id}/request_permission: + post: + description: | + Request permission to perform an action + + Sends events: + - call.permission_request + 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 + /api/v2/video/call/{type}/{id}/start_broadcasting: + post: + description: | + Starts HLS broadcasting + + Required permissions: + - StartBroadcasting + 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 + /api/v2/video/call/{type}/{id}/start_recording: + post: + description: | + Starts recording + + Sends events: + - call.recording_started + + Required permissions: + - StopRecording + 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 + /api/v2/video/call/{type}/{id}/start_transcription: + post: + description: | + Starts transcription + + Required permissions: + - StartTranscription + 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 + summary: Start transcription + /api/v2/video/call/{type}/{id}/stop_broadcasting: + post: + description: | + Stops HLS broadcasting + + Required permissions: + - StopBroadcasting + 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 + /api/v2/video/call/{type}/{id}/stop_live: + post: + description: |2 + + + Sends events: + - call.updated + + Required permissions: + - UpdateCall + 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 + /api/v2/video/call/{type}/{id}/stop_recording: + post: + description: | + Stops recording + + Sends events: + - call.recording_stopped + + Required permissions: + - StopRecording + 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 + /api/v2/video/call/{type}/{id}/stop_transcription: + post: + description: | + Stops transcription + + Required permissions: + - StopTranscription + 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 + /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. + + Sends events: + - call.unblocked_user + + Required permissions: + - BlockUser + 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 + /api/v2/video/call/{type}/{id}/unpin: + post: + description: | + Unpins a track for all users in the call. + + Required permissions: + - PinCallTrack + 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 + /api/v2/video/call/{type}/{id}/user_permissions: + post: + description: | + Updates user permissions + + Sends events: + - call.permissions_updated + + Required permissions: + - UpdateCallPermissions + 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 + /api/v2/video/call/members: + post: + description: | + Query call members with filter query + + Required permissions: + - ReadCall + operationId: QueryMembers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/QueryMembersRequest_1' + 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 + summary: Query call members + /api/v2/video/calls: + post: + description: | + Query calls with filter query + + Required permissions: + - ReadCall + 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 + /api/v2/video/edges: + get: + description: | + Returns the list of all edges available for video calls. + 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 +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/openapi/serverside-api.json b/openapi/serverside-api.json new file mode 100644 index 00000000..6344d509 --- /dev/null +++ b/openapi/serverside-api.json @@ -0,0 +1 @@ +{"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"},"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"},"APNConfigRequest":{"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"},"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"},"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"},"ActionRequest":{"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"}},"type":"object"},"App":{"properties":{"agora_options":{"$ref":"#/components/schemas/Config","x-stream-index":"001.038"},"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.018"},"async_url_enrich_enabled":{"type":"boolean","x-stream-index":"001.016"},"auto_translation_enabled":{"type":"boolean","x-stream-index":"001.019"},"before_message_send_hook_url":{"type":"string","x-stream-index":"001.020"},"call_types":{"additionalProperties":{"$ref":"#/components/schemas/CallType"},"type":"object","x-stream-index":"001.006"},"campaign_enabled":{"type":"boolean","x-stream-index":"001.033"},"cdn_expiration_seconds":{"format":"int32","type":"integer","x-stream-index":"001.036"},"channel_configs":{"additionalProperties":{"$ref":"#/components/schemas/ChannelConfig"},"description":"Object with channel configs","title":"Channel configs","type":"object","x-stream-index":"001.005","x-stream-map":{"key":"channel_type"}},"custom_action_handler_url":{"type":"string","x-stream-index":"001.021"},"datadog_info":{"$ref":"#/components/schemas/DataDogInfo","x-stream-index":"001.041"},"disable_auth_checks":{"type":"boolean","x-stream-index":"001.010"},"disable_permissions_checks":{"type":"boolean","x-stream-index":"001.011"},"enforce_unique_usernames":{"type":"string","x-stream-index":"001.022"},"file_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.029"},"geofences":{"items":{"$ref":"#/components/schemas/GeofenceResponse"},"type":"array","x-stream-index":"001.040"},"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"},"image_moderation_enabled":{"type":"boolean","x-stream-index":"001.015"},"image_moderation_labels":{"items":{"type":"string"},"type":"array","x-stream-index":"001.017"},"image_upload_config":{"$ref":"#/components/schemas/FileUploadConfig","x-stream-index":"001.030"},"multi_tenant_enabled":{"type":"boolean","x-stream-index":"001.014"},"name":{"type":"string","x-stream-index":"001.001"},"organization":{"type":"string","x-stream-index":"001.002"},"permission_version":{"type":"string","x-stream-index":"001.012"},"policies":{"additionalProperties":{"items":{"$ref":"#/components/schemas/Policy"},"type":"array"},"type":"object","x-stream-index":"001.007"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationFields","x-stream-index":"001.003"},"reminders_interval":{"format":"int32","type":"integer","x-stream-index":"001.035"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.031"},"sns_key":{"type":"string","x-stream-index":"001.027"},"sns_secret":{"type":"string","x-stream-index":"001.028"},"sns_topic_arn":{"type":"string","x-stream-index":"001.026"},"sqs_key":{"type":"string","x-stream-index":"001.024"},"sqs_secret":{"type":"string","x-stream-index":"001.025"},"sqs_url":{"type":"string","x-stream-index":"001.023"},"suspended":{"type":"boolean","x-stream-index":"001.008"},"suspended_explanation":{"type":"string","x-stream-index":"001.009"},"user_search_disallowed_roles":{"items":{"type":"string"},"type":"array","x-stream-index":"001.013"},"video_provider":{"type":"string","x-stream-index":"001.037"},"webhook_events":{"items":{"type":"string"},"type":"array","x-stream-index":"001.034"},"webhook_url":{"type":"string","x-stream-index":"001.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","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","webhook_events","reminders_interval","cdn_expiration_seconds","video_provider"],"type":"object"},"AsyncModerationCallbackConfigRequest":{"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"},"AsyncModerationConfigurationRequest":{"properties":{"callback":{"$ref":"#/components/schemas/AsyncModerationCallbackConfigRequest","x-stream-index":"002"},"timeout_ms":{"format":"int32","type":"integer","x-stream-index":"001"}},"type":"object"},"Attachment":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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"},"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)","title":"Type","type":"string","x-stream-index":"001"}},"required":["Custom"],"title":"Attachment","type":"object","x-stream-docs-page-id":"file_uploads"},"AttachmentRequest":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"actions":{"items":{"$ref":"#/components/schemas/ActionRequest"},"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"},"fallback":{"type":"string","x-stream-index":"002"},"fields":{"items":{"$ref":"#/components/schemas/FieldRequest"},"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/ImagesRequest","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)","title":"Type","type":"string","x-stream-index":"001"}},"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"},"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"},"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"},"BanRequest":{"nullable":true,"properties":{"banned_by":{"$ref":"#/components/schemas/UserRequest","description":"User who issued a ban","title":"Banned by","x-stream-index":"009"},"banned_by_id":{"description":"User ID who issued a ban","title":"Banned by ID","type":"string","x-stream-index":"008"},"id":{"description":"Channel ID to ban user in","title":"ID","type":"string","x-stream-index":"005"},"ip_ban":{"description":"Whether to perform IP ban or not","title":"IP ban","type":"boolean","x-stream-index":"007"},"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":"006"},"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"},"type":{"description":"Channel type to ban user in","title":"Type","type":"string","x-stream-index":"004"},"user":{"$ref":"#/components/schemas/UserRequest","x-stream-index":"010.002"},"user_id":{"type":"string","x-stream-index":"010.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":"string","x-stream-index":"007"},"expires":{"format":"date-time","type":"string","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":"string","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":"string","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"],"type":"string","x-stream-index":"002"},"blocklist":{"type":"string","x-stream-index":"001"}},"required":["blocklist","behavior"],"type":"object"},"BlockListOptionsRequest":{"properties":{"behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"002"},"blocklist":{"type":"string","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"},"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"},"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":"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"},"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"},"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":{"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":"string","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":"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":{"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"},"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"},"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/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"},"CallType":{"nullable":true,"properties":{"AppPK":{"format":"int32","type":"integer","writeOnly":true,"x-stream-index":"003"},"CreatedAt":{"format":"date-time","type":"string","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":"string","writeOnly":true,"x-stream-index":"006"}},"required":["PK","AppPK","Name","CreatedAt","UpdatedAt","ExternalStorage"],"type":"object"},"CallTypeResponse":{"properties":{"created_at":{"format":"date-time","type":"string","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":"string","x-stream-index":"006"}},"required":["name","grants","settings","notification_settings","created_at","updated_at"],"type":"object"},"Channel":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"018"},"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":"string","x-stream-index":"009"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"008"},"deleted_at":{"format":"date-time","type":"string","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":"string","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":"string","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.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.024"},"blocklist":{"type":"string","x-stream-index":"001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.016"},"mutes":{"type":"boolean","x-stream-index":"001.009"},"name":{"type":"string","x-stream-index":"001.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","created_at","updated_at","commands"],"type":"object"},"ChannelConfigRequest":{"description":"Channel configuration overrides","properties":{"blocklist":{"type":"string","x-stream-index":"008"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"009"},"commands":{"items":{"type":"string"},"type":"array","x-stream-index":"011"},"grants":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"title":"Grants","type":"object","x-stream-index":"010","x-stream-map":{"key":"role","title":"Grants","description":"List of grants modifiers that apply to a role"}},"max_message_length":{"description":"Overrides max message length","format":"int32","maximum":20000,"title":"Max Message Length","type":"integer","x-stream-index":"007"},"quotes":{"description":"Enables message quotes","title":"Quotes","type":"boolean","x-stream-index":"004"},"reactions":{"description":"Enables or disables reactions","title":"Reactions","type":"boolean","x-stream-index":"002"},"replies":{"description":"Enables message replies (threads)","title":"Replies","type":"boolean","x-stream-index":"003"},"typing_events":{"description":"Enables or disables typing events","title":"Typing events","type":"boolean","x-stream-index":"001"},"uploads":{"description":"Enables or disables file uploads","title":"Uploads","type":"boolean","x-stream-index":"005"},"url_enrichment":{"description":"Enables or disables URL enrichment","title":"URL Enrichment","type":"boolean","x-stream-index":"006"}},"type":"object"},"ChannelConfigWithInfo":{"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.002.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.002.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.002.024"},"blocklist":{"type":"string","x-stream-index":"001.002.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.002.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.002.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.002.016"},"mutes":{"type":"boolean","x-stream-index":"001.002.009"},"name":{"type":"string","x-stream-index":"001.002.001"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","commands"],"type":"object"},"ChannelExportRequest":{"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":"string","x-stream-index":"004"},"messages_until":{"description":"Date to export messages until","format":"date-time","title":"Messages until","type":"string","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/ChannelRequest","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/PaginationParamsRequest","x-stream-index":"011"},"messages":{"$ref":"#/components/schemas/MessagePaginationParamsRequest","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/PaginationParamsRequest","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":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","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"},"ChannelMemberRequest":{"nullable":true,"properties":{"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"011"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"invite_accepted_at":{"description":"Date when invite was accepted","format":"date-time","title":"Invited accepted at","type":"string","x-stream-index":"008"},"invite_rejected_at":{"description":"Date when invite was rejected","format":"date-time","title":"Invited rejected at","type":"string","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"},"role":{"description":"Permission level of the member in the channel (DEPRECATED: use channel_role instead)","enum":["member","moderator","admin","owner"],"title":"Role","type":"string","x-stream-index":"019"},"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":"string","x-stream-index":"012"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"005"},"user_id":{"title":"User ID","type":"string","x-stream-index":"004"}},"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":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","x-stream-index":"008"},"updated_at":{"description":"Date/time of the last update","format":"date-time","title":"Updated at","type":"string","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"},"ChannelRequest":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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/ChannelConfigRequest","x-stream-index":"026"},"disabled":{"type":"boolean","x-stream-index":"016"},"frozen":{"description":"Freeze or unfreeze the channel","title":"Frozen","type":"boolean","x-stream-index":"015"},"members":{"items":{"$ref":"#/components/schemas/ChannelMemberRequest"},"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"},"ChannelResponse":{"description":"Represents channel in chat","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"029"},"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":"string","x-stream-index":"008"},"created_by":{"$ref":"#/components/schemas/UserObject","description":"Creator of the channel","title":"Created by","x-stream-index":"011"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":"string","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":"string","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":"string","x-stream-index":"009"}},"required":["id","type","cid","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":"string","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/Message"},"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/Message"},"type":"array","x-stream-index":"001.003"},"read":{"items":{"$ref":"#/components/schemas/Read"},"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/UserObject"},"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":"string","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/Message"},"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/Message"},"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/Read"},"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/UserObject"},"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.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"003.002.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.002.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"003.002.024"},"blocklist":{"type":"string","x-stream-index":"003.002.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.002.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"003.002.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"003.002.016"},"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"},"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":"string","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","message_retention","max_message_length","automod","automod_behavior","commands"],"type":"object"},"ChannelsResponse":{"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"},"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/UserObjectRequest","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":{"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":{"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"},"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":"string","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":"string","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"},"ConfigRequest":{"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"},"ConnectRequest":{"properties":{"device":{"$ref":"#/components/schemas/DeviceFields","x-stream-index":"001.002"},"user_details":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.001"}},"required":["user_details"],"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","regular","domains","emails"],"title":"Type","type":"string","x-stream-index":"003"},"words":{"description":"List of words to block","items":{"type":"string"},"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/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"},"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":"string","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":"016"},"automod_behavior":{"description":"Sets behavior of automatic moderation","enum":["flag","block"],"title":"Auto moderation behavior","type":"string","x-stream-index":"017"},"blocklist":{"description":"Name of the blocklist to use","title":"Blocklist","type":"string","x-stream-index":"021"},"blocklist_behavior":{"description":"Sets behavior of blocklist","enum":["flag","block"],"title":"Blocklist behavior","type":"string","x-stream-index":"022"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptionsRequest"},"type":"array","x-stream-index":"023"},"commands":{"description":"List of commands that channel supports","items":{"type":"string"},"title":"Commands","type":"array","x-stream-index":"018"},"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":"020"},"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":"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_1"},"title":"Permissions","type":"array","x-stream-index":"019"},"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","automod"],"type":"object"},"CreateChannelTypeResponse":{"nullable":true,"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"001.001.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"001.001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"001.001.024"},"blocklist":{"type":"string","x-stream-index":"001.001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"001.001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"001.001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"001.001.016"},"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"},"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":"string","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","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"}},"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"},"CreateImportRequest":{"nullable":true,"properties":{"mode":{"enum":["insert","upsert"],"type":"string","x-stream-index":"002"},"path":{"type":"string","x-stream-index":"001"}},"required":["path"],"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"},"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"},"site":{"type":"string","x-stream-index":"002"}},"required":["api_key","site"],"type":"object"},"DataDogInfoRequest":{"properties":{"api_key":{"type":"string","x-stream-index":"001"},"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"},"user_id":{"title":"User ID","type":"string","x-stream-index":"001"}},"required":["user_id"],"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_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"}},"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"},"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":{"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"},"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"},"DeviceFields":{"properties":{"id":{"description":"Device ID","title":"ID","type":"string","x-stream-index":"004"},"push_provider":{"enum":["firebase","apn","huawei","xiaomi"],"title":"Push provider","type":"string","x-stream-index":"001"},"push_provider_name":{"description":"Name of the push provider configuration","title":"Push provider name","type":"string","x-stream-index":"003"},"voip":{"type":"boolean","x-stream-index":"005"}},"required":["push_provider","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"},"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"},"EventNotificationSettingsRequest":{"properties":{"apns":{"$ref":"#/components/schemas/APNSRequest","x-stream-index":"002"},"enabled":{"type":"boolean","x-stream-index":"001"}},"type":"object"},"EventRequest":{"properties":{"custom":{"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/ChannelExportRequest"},"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.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"}},"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"},"FieldRequest":{"nullable":true,"properties":{"short":{"type":"boolean","x-stream-index":"003"},"title":{"type":"string","x-stream-index":"001"},"value":{"type":"string","x-stream-index":"002"}},"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"}},"required":["allowed_file_extensions","blocked_file_extensions","allowed_mime_types","blocked_mime_types"],"type":"object"},"FileUploadConfigRequest":{"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"}},"type":"object"},"FileUploadRequest":{"nullable":true,"properties":{"file":{"description":"file field","title":"File","type":"string","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"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"},"FirebaseConfigRequest":{"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"},"Flag":{"description":"Contains information about flagged user or message","properties":{"approved_at":{"description":"Date of the approval","format":"date-time","title":"Approved at","type":"string","x-stream-index":"015"},"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"011"},"created_by_automod":{"type":"boolean","x-stream-index":"004"},"custom":{"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":"string","x-stream-index":"016"},"reviewed_at":{"description":"Date of the review","format":"date-time","title":"Reviewed at","type":"string","x-stream-index":"013"},"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":"string","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":{"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":"string","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":{"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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"},"GetApplicationResponse":{"nullable":true,"properties":{"app":{"$ref":"#/components/schemas/App","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"},"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"},"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":"string","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":"string","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":"string","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":"string","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":"string","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"},"GetOGResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.018"},"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"},"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","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":{"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"},"GetTaskResponse":{"nullable":true,"properties":{"created_at":{"format":"date-time","type":"string","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":{"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":"string","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":["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":"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"},"GuestRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"001"}},"required":["user"],"type":"object"},"GuestResponse":{"nullable":true,"properties":{"access_token":{"description":"Authentication token to use for guest user","title":"Access token","type":"string","x-stream-index":"002"},"duration":{"type":"string","x-stream-index":"003.001"},"user":{"$ref":"#/components/schemas/UserObject","description":"Created user object","title":"User","x-stream-index":"001"}},"required":["access_token","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"}},"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-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/UserObjectRequest","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"},"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"},"HuaweiConfigRequest":{"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"},"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"},"ImageDataRequest":{"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"}},"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"}},"required":["crop","resize","height","width"],"title":"Image size configuration","type":"object"},"ImageSizeRequest":{"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/ImageSizeRequest"},"title":"Upload sizes","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/OnlyUserIDRequest","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"},"ImagesRequest":{"properties":{"fixed_height":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"002"},"fixed_height_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"004"},"fixed_height_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"003"},"fixed_width":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"005"},"fixed_width_downsampled":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"007"},"fixed_width_still":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"006"},"original":{"$ref":"#/components/schemas/ImageDataRequest","x-stream-index":"001"}},"type":"object"},"ImportTask":{"properties":{"created_at":{"format":"date-time","type":"string","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":"string","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":"string","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":{"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"},"LabelThresholdsRequest":{"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":{"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":{"type":"object","x-stream-index":"002"}},"required":["name"],"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"},"MarkChannelsReadRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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/UserObjectRequest","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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["message_id","thread_id"],"type":"object"},"MemberRequest":{"properties":{"custom":{"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":{"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"},"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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"031"},"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":"043"},"cid":{"description":"Channel unique identifier in \u003ctype\u003e:\u003cid\u003e format","title":"Channel CID","type":"string","x-stream-index":"026"},"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":"string","x-stream-index":"028"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","x-stream-index":"030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"021"},"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":"041"},"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":"037"},"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":"040"},"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":"017"},"pin_expires":{"description":"Date when pinned message expires","format":"date-time","title":"Pin expiration date","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"048"},"pinned":{"description":"Whether message is pinned or not","title":"Pinned","type":"boolean","x-stream-docs-page-id":"pinned_messages","x-stream-index":"044"},"pinned_at":{"description":"Date when message got pinned","format":"date-time","title":"Pinned at","type":"string","x-stream-docs-page-id":"pinned_messages","x-stream-index":"045"},"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":"047"},"quoted_message":{"$ref":"#/components/schemas/Message","description":"Contains quoted message","title":"Quoted message","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"023"},"quoted_message_id":{"title":"ID of quoted message","type":"string","x-stream-docs-page-id":"threads#quote-message","x-stream-index":"022"},"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_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":"020"},"shadowed":{"description":"Whether the message was shadowed or not","title":"Shadowed","type":"boolean","x-stream-docs-page-id":"moderation#shadow-ban","x-stream-index":"033"},"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":"019"},"silent":{"description":"Whether message is silent or not","title":"Silent","type":"boolean","x-stream-index":"042"},"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":"025"},"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":"string","x-stream-index":"029"},"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","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"form_data":{"additionalProperties":{"type":"string"},"description":"ReadOnlyData to execute command with","title":"Form data","type":"object","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["form_data"],"type":"object"},"MessageFlag":{"nullable":true,"properties":{"approved_at":{"format":"date-time","type":"string","x-stream-index":"013"},"created_at":{"format":"date-time","type":"string","x-stream-index":"009"},"created_by_automod":{"type":"boolean","x-stream-index":"001"},"custom":{"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":"string","x-stream-index":"014"},"reviewed_at":{"format":"date-time","type":"string","x-stream-index":"011"},"reviewed_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"012"},"updated_at":{"format":"date-time","type":"string","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":"string","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":"string","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"},"MessagePaginationParamsRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"008"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"007"},"created_at_around":{"format":"date-time","type":"string","x-stream-index":"012"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"010"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"009"},"id_around":{"type":"string","x-stream-index":"011"},"id_gt":{"type":"string","x-stream-index":"004"},"id_gte":{"type":"string","x-stream-index":"003"},"id_lt":{"type":"string","x-stream-index":"006"},"id_lte":{"type":"string","x-stream-index":"005"},"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":"string","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/AttachmentRequest"},"maximum":30,"type":"array","x-stream-index":"004"},"custom":{"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":"string","x-stream-index":"015"},"pinned":{"type":"boolean","x-stream-index":"013"},"pinned_at":{"format":"date-time","nullable":true,"type":"string","x-stream-index":"014"},"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"}},"required":["attachments"],"type":"object"},"MessageResponse":{"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/Message","x-stream-index":"001"}},"required":["duration"],"type":"object"},"MessageWithPendingMetadataResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"001.002.001"},"message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.001"},"pending_message_metadata":{"additionalProperties":{"type":"string"},"description":"Metadata attached to a message while it is pending","title":"Pending message metadata","type":"object","x-stream-index":"002"}},"required":["duration"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["channel_cids"],"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/UserObjectRequest","x-stream-index":"004.002"},"user_id":{"type":"string","x-stream-index":"004.001"}},"required":["target_ids"],"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"},"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"},"NullBoolRequest":{"properties":{"HasValue":{"type":"boolean","writeOnly":true,"x-stream-index":"002"},"Value":{"type":"boolean","writeOnly":true,"x-stream-index":"001"}},"type":"object"},"NullTimeRequest":{"properties":{"HasValue":{"type":"boolean","writeOnly":true,"x-stream-index":"002"},"Value":{"format":"date-time","type":"string","writeOnly":true,"x-stream-index":"001"}},"type":"object"},"OnlyUserIDRequest":{"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","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"banned":{"type":"boolean","x-stream-index":"014"},"channel_mutes":{"items":{"$ref":"#/components/schemas/ChannelMute"},"type":"array","x-stream-index":"026"},"created_at":{"format":"date-time","type":"string","x-stream-index":"007"},"deactivated_at":{"format":"date-time","type":"string","x-stream-index":"012"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"011"},"devices":{"items":{"$ref":"#/components/schemas/Device"},"type":"array","x-stream-index":"024"},"id":{"type":"string","x-stream-index":"003"},"invisible":{"type":"boolean","x-stream-index":"021"},"language":{"type":"string","x-stream-index":"031"},"last_active":{"format":"date-time","type":"string","x-stream-index":"010"},"latest_hidden_channels":{"items":{"type":"string"},"type":"array","x-stream-index":"033"},"mutes":{"items":{"$ref":"#/components/schemas/UserMute"},"type":"array","x-stream-index":"025"},"online":{"type":"boolean","x-stream-index":"020"},"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":"032"},"total_unread_count":{"format":"int32","type":"integer","x-stream-index":"028"},"unread_channels":{"format":"int32","type":"integer","x-stream-index":"029"},"unread_count":{"format":"int32","type":"integer","x-stream-index":"027"},"unread_threads":{"format":"int32","type":"integer","x-stream-index":"030"},"updated_at":{"format":"date-time","type":"string","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"},"PaginationParamsRequest":{"properties":{"id_gt":{"format":"int32","type":"integer","x-stream-index":"004"},"id_gte":{"format":"int32","type":"integer","x-stream-index":"003"},"id_lt":{"format":"int32","type":"integer","x-stream-index":"006"},"id_lte":{"format":"int32","type":"integer","x-stream-index":"005"},"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":{"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":"string","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":"string","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"},"PolicyRequest_1":{"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":["name","priority"],"type":"object"},"PushConfigRequest":{"properties":{"offline_only":{"type":"boolean","x-stream-index":"002"},"version":{"enum":["v1","v2"],"type":"string","x-stream-index":"001"}},"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":"string","x-stream-index":"002"}},"type":"object"},"PushNotificationSettingsRequest":{"properties":{"disabled":{"$ref":"#/components/schemas/NullBoolRequest","x-stream-index":"001"},"disabled_until":{"$ref":"#/components/schemas/NullTimeRequest","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":"string","x-stream-index":"008"},"description":{"maxLength":128,"type":"string","x-stream-index":"007"},"disabled_at":{"format":"date-time","type":"string","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":"integer","x-stream-index":"006"},"updated_at":{"format":"date-time","type":"string","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"},"PushProviderRequest":{"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":"string","x-stream-index":"008"},"description":{"maxLength":128,"type":"string","x-stream-index":"007"},"disabled_at":{"format":"date-time","type":"string","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":"integer","x-stream-index":"006"},"updated_at":{"format":"date-time","type":"string","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":"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":"string","x-stream-index":"004"},"description":{"type":"string","x-stream-index":"003"},"disabled_at":{"format":"date-time","type":"string","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":"string","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":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"003.006"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.005"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"003.008"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"003.007"},"exclude_expired_bans":{"type":"boolean","x-stream-index":"006"},"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"007.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryCallsRequest":{"nullable":true,"properties":{"filter_conditions":{"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"},"QueryChannelsRequest":{"nullable":true,"properties":{"filter_conditions":{"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/SortParamRequest"},"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/UserObjectRequest","x-stream-index":"010.002"},"user_id":{"type":"string","x-stream-index":"010.001"},"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"},"QueryMembersRequest":{"properties":{"created_at_after":{"format":"date-time","type":"string","x-stream-index":"006.010"},"created_at_after_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.009"},"created_at_before":{"format":"date-time","type":"string","x-stream-index":"006.012"},"created_at_before_or_equal":{"format":"date-time","type":"string","x-stream-index":"006.011"},"filter_conditions":{"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/UserObject","x-stream-index":"007.002"},"user_id":{"type":"string","x-stream-index":"007.001"},"user_id_gt":{"type":"string","x-stream-index":"006.006"},"user_id_gte":{"type":"string","x-stream-index":"006.005"},"user_id_lt":{"type":"string","x-stream-index":"006.008"},"user_id_lte":{"type":"string","x-stream-index":"006.007"}},"required":["type","filter_conditions"],"type":"object"},"QueryMembersRequest_1":{"nullable":true,"properties":{"filter_conditions":{"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"},"QueryMessageFlagsRequest":{"properties":{"filter_conditions":{"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/UserObject","description":"**Server-side only**. User object which server acts upon","title":"User","x-stream-index":"004.002"},"user_id":{"description":"**Server-side only**. User ID which server acts upon","title":"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"},"QueryThreadsRequest":{"nullable":true,"properties":{"connection_id":{"type":"string","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"},"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":"005.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":"007.002"},"user_id":{"type":"string","x-stream-index":"007.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"},"QueryUsersRequest":{"properties":{"filter_conditions":{"description":"User filters","title":"Filter conditions","type":"object","x-stream-docs-page-id":"query_users","x-stream-index":"001"},"id_gt":{"type":"string","x-stream-index":"004.006"},"id_gte":{"type":"string","x-stream-index":"004.005"},"id_lt":{"type":"string","x-stream-index":"004.008"},"id_lte":{"type":"string","x-stream-index":"004.007"},"limit":{"format":"int32","maximum":100,"minimum":0,"type":"integer","x-stream-index":"004.003"},"offset":{"format":"int32","maximum":1000,"type":"integer","x-stream-index":"004.004"},"presence":{"description":"Request user presence status","title":"Presence","type":"boolean","x-stream-index":"003"},"sort":{"description":"Array of sort parameters","items":{"$ref":"#/components/schemas/SortParam"},"maximum":5,"title":"Sort","type":"array","x-stream-index":"002"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"005.002"},"user_id":{"type":"string","x-stream-index":"005.001"}},"required":["filter_conditions"],"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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"010"},"created_at":{"description":"Date/time of creation","format":"date-time","readOnly":true,"title":"Created at","type":"string","x-stream-index":"008"},"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":"string","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"},"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":{"description":"Represents user reaction to a message","properties":{"Custom":{"type":"object","writeOnly":true,"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"},"user":{"$ref":"#/components/schemas/UserObjectRequest","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":["type"],"title":"Reaction","type":"object","x-stream-docs-page-id":"send_reaction"},"ReactionResponse":{"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"},"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"},"user_id":{"title":"User ID","type":"string","x-stream-index":"001"}},"required":["user_id"],"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_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":"string","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"},"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/LayoutSettings","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":30000,"minimum":5000,"type":"integer","x-stream-index":"002"},"incoming_call_timeout_ms":{"format":"int32","maximum":180000,"minimum":5000,"type":"integer","x-stream-index":"001"}},"type":"object"},"Role":{"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","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":"string","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"},"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"},"SearchRequest":{"properties":{"filter_conditions":{"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":{"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":{"nullable":true,"properties":{"message":{"$ref":"#/components/schemas/SearchResultMessage","description":"Found message","title":"Message","x-stream-index":"001"}},"type":"object"},"SearchResultMessage":{"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.031"},"attachments":{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","x-stream-index":"001.011"},"before_message_send_failed":{"type":"boolean","x-stream-index":"001.043"},"channel":{"$ref":"#/components/schemas/ChannelResponse","description":"Channel object","title":"Channel","x-stream-index":"002"},"cid":{"type":"string","x-stream-index":"001.026"},"command":{"type":"string","x-stream-index":"001.006"},"created_at":{"format":"date-time","type":"string","x-stream-index":"001.028"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.030"},"deleted_reply_count":{"format":"int32","type":"integer","x-stream-index":"001.021"},"html":{"type":"string","x-stream-index":"001.007"},"i18n":{"additionalProperties":{"type":"string"},"type":"object","x-stream-index":"001.041"},"id":{"type":"string","x-stream-index":"001.002"},"image_labels":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","x-stream-index":"001.037"},"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.040"},"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.017"},"pin_expires":{"format":"date-time","type":"string","x-stream-index":"001.048"},"pinned":{"type":"boolean","x-stream-index":"001.044"},"pinned_at":{"format":"date-time","type":"string","x-stream-index":"001.045"},"pinned_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.047"},"quoted_message":{"$ref":"#/components/schemas/Message","x-stream-index":"001.023"},"quoted_message_id":{"type":"string","x-stream-index":"001.022"},"reaction_counts":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.014"},"reaction_scores":{"additionalProperties":{"format":"int32","type":"integer"},"type":"object","x-stream-index":"001.015"},"reply_count":{"format":"int32","type":"integer","x-stream-index":"001.020"},"shadowed":{"type":"boolean","x-stream-index":"001.033"},"show_in_channel":{"type":"boolean","x-stream-index":"001.019"},"silent":{"type":"boolean","x-stream-index":"001.042"},"text":{"type":"string","x-stream-index":"001.004"},"thread_participants":{"items":{"$ref":"#/components/schemas/UserObject"},"type":"array","x-stream-index":"001.025"},"type":{"type":"string","x-stream-index":"001.008"},"updated_at":{"format":"date-time","type":"string","x-stream-index":"001.029"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"001.010"}},"required":["id","text","html","type","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"},"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/Message","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":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"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"},"SendUserCustomEventRequest":{"nullable":true,"properties":{"event":{"$ref":"#/components/schemas/UserCustomEventRequest","x-stream-index":"002"}},"required":["event"],"type":"object"},"ShowChannelRequest":{"nullable":true,"properties":{"user":{"$ref":"#/components/schemas/UserObjectRequest","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"},"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,"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,"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"},"Thread":{"description":"Represents a conversation thread linked to a specific message in a channel.","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"009"},"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":"string","x-stream-index":"007"},"left_thread_at":{"description":"Left Thread At is the time when the user left the thread","format":"date-time","title":"Left Thread At","type":"string","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","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":"string","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":{"type":"object","x-stream-index":"015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.017"},"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":"string","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"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","title":"Deleted at","type":"string","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":"string","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":"string","x-stream-index":"001.014"}},"required":["channel_cid","parent_message_id","created_at","updated_at","title","Custom","latest_replies"],"title":"Thread","type":"object"},"ThreadStateResponse":{"nullable":true,"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":"string","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":{"type":"object","x-stream-index":"001.015"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.013"},"last_message_at":{"format":"date-time","type":"string","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":"string","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"},"ThresholdsRequest":{"description":"Sets thresholds for AI moderation","properties":{"explicit":{"$ref":"#/components/schemas/LabelThresholdsRequest","description":"Thresholds for explicit messages","title":"Explicit","x-stream-index":"001"},"spam":{"$ref":"#/components/schemas/LabelThresholdsRequest","description":"Thresholds for spam","title":"Spam","x-stream-index":"002"},"toxic":{"$ref":"#/components/schemas/LabelThresholdsRequest","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"},"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"},"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":"string","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"},"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_cid":{"type":"string","x-stream-index":"001.001"},"channel_cids":{"items":{"type":"string"},"maximum":25,"type":"array","x-stream-index":"001.002"},"expiration":{"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["channel_cid","channel_cids"],"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_id":{"type":"string","x-stream-index":"001.001"},"target_ids":{"items":{"type":"string"},"maximum":1000,"type":"array","x-stream-index":"001.002"},"timeout":{"minimum":0,"type":"integer","x-stream-index":"001.003"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"002.002"},"user_id":{"type":"string","x-stream-index":"002.001"}},"required":["target_id","target_ids"],"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":"string","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"},"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"006.001"},"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","duration"],"type":"object"},"UnreadCountsThread":{"properties":{"last_read":{"format":"date-time","type":"string","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/ConfigRequest","x-stream-index":"001.038"},"apn_config":{"$ref":"#/components/schemas/APNConfigRequest","x-stream-index":"001.003"},"async_moderation_config":{"$ref":"#/components/schemas/AsyncModerationConfigurationRequest","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/DataDogInfoRequest","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/FileUploadConfigRequest","x-stream-index":"001.028"},"firebase_config":{"$ref":"#/components/schemas/FirebaseConfigRequest","x-stream-index":"001.004"},"grants":{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object","x-stream-index":"001.032"},"hms_options":{"$ref":"#/components/schemas/ConfigRequest","x-stream-index":"001.039"},"huawei_config":{"$ref":"#/components/schemas/HuaweiConfigRequest","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/FileUploadConfigRequest","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/PushConfigRequest","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":"string","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/XiaomiConfigRequest","x-stream-index":"001.006"}},"type":"object"},"UpdateBlockListRequest":{"nullable":true,"properties":{"Name":{"type":"string","writeOnly":true,"x-stream-index":"001"},"words":{"items":{"type":"string"},"type":"array","x-stream-index":"002"}},"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":{"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":{"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/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"},"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":"string","x-stream-index":"001.006"}},"required":["name","grants","settings","notification_settings","created_at","updated_at","duration"],"type":"object"},"UpdateChannelPartialRequest":{"nullable":true,"properties":{"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"},"user":{"$ref":"#/components/schemas/UserObjectRequest","x-stream-index":"003.002"},"user_id":{"type":"string","x-stream-index":"003.001"}},"required":["set","unset"],"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/ChannelMemberRequest"},"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/ChannelMemberRequest"},"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/ChannelRequest","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/ChannelMemberRequest"},"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"}},"required":["remove_members","add_moderators","demote_moderators"],"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":{"NameFromPath":{"type":"string","writeOnly":true,"x-stream-index":"001"},"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"007.001.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"007.001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"007.001.019"},"automod_thresholds":{"$ref":"#/components/schemas/ThresholdsRequest","x-stream-index":"007.001.024"},"blocklist":{"type":"string","x-stream-index":"007.001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"007.001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptionsRequest"},"type":"array","x-stream-index":"007.001.022"},"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.017"},"message_retention":{"type":"string","x-stream-index":"007.001.016"},"mutes":{"type":"boolean","x-stream-index":"007.001.009"},"permissions":{"items":{"$ref":"#/components/schemas/PolicyRequest_1"},"type":"array","x-stream-index":"003"},"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":["automod"],"type":"object"},"UpdateChannelTypeResponse":{"nullable":true,"properties":{"allowed_flag_reasons":{"items":{"type":"string"},"type":"array","x-stream-index":"003.001.023"},"automod":{"enum":["disabled","simple","AI"],"type":"string","x-stream-index":"003.001.018"},"automod_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.001.019"},"automod_thresholds":{"$ref":"#/components/schemas/Thresholds","x-stream-index":"003.001.024"},"blocklist":{"type":"string","x-stream-index":"003.001.020"},"blocklist_behavior":{"enum":["flag","block"],"type":"string","x-stream-index":"003.001.021"},"blocklists":{"items":{"$ref":"#/components/schemas/BlockListOptions"},"type":"array","x-stream-index":"003.001.022"},"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":"string","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.017"},"message_retention":{"type":"string","x-stream-index":"003.001.016"},"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"},"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":"string","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","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":{"Name":{"type":"string","writeOnly":true,"x-stream-index":"001"},"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":{"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"}},"required":["set","unset"],"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":["message","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"},"UpdateThreadPartialRequest":{"nullable":true,"properties":{"ID":{"type":"string","writeOnly":true,"x-stream-index":"001"},"set":{"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"}},"required":["set","unset"],"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":["duration"],"type":"object"},"UpdateUserPartialRequest":{"nullable":true,"properties":{"id":{"description":"User ID to update","title":"ID","type":"string","x-stream-index":"001"},"set":{"type":"object","x-stream-index":"002.001"},"unset":{"items":{"type":"string"},"type":"array","x-stream-index":"002.002"}},"required":["id","set","unset"],"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"},"UpdateUsersRequest":{"nullable":true,"properties":{"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObjectRequest"},"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":"002.001"},"users":{"additionalProperties":{"$ref":"#/components/schemas/UserObject"},"description":"Object containing users","title":"Users","type":"object","x-stream-index":"001","x-stream-map":{"key":"user_id"}}},"required":["users","duration"],"type":"object"},"UpsertPushProviderRequest":{"nullable":true,"properties":{"push_provider":{"$ref":"#/components/schemas/PushProviderRequest","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":{"type":"object","writeOnly":true,"x-stream-index":"004"},"created_at":{"format":"date-time","type":"string","x-stream-index":"005"},"type":{"type":"string","x-stream-index":"001"}},"required":["type"],"type":"object"},"UserMute":{"nullable":true,"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"009"},"expires":{"description":"Date/time of mute expiration","format":"date-time","title":"Expires","type":"string","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":"string","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":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"ban_expires":{"description":"Expiration date of the ban","format":"date-time","title":"Ban expires","type":"string","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":"string","x-stream-index":"007"},"deactivated_at":{"description":"Date of deactivation","format":"date-time","readOnly":true,"title":"Deactivated at","type":"string","x-stream-index":"012"},"deleted_at":{"description":"Date/time of deletion","format":"date-time","readOnly":true,"title":"Deleted at","type":"string","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":"031"},"last_active":{"description":"Date of last activity","format":"date-time","readOnly":true,"title":"Last active","type":"string","x-stream-index":"010"},"online":{"description":"Whether a user online or not","readOnly":true,"title":"Online","type":"boolean","x-stream-index":"020"},"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":"string","x-stream-index":"038"},"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":"032"},"updated_at":{"description":"Date/time of the last update","format":"date-time","readOnly":true,"title":"Updated at","type":"string","x-stream-index":"008"}},"required":["id"],"title":"User object","type":"object"},"UserObjectRequest":{"description":"Represents chat user","nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"005"},"id":{"description":"Unique user identifier","title":"ID","type":"string","x-stream-index":"003"},"invisible":{"type":"boolean","x-stream-index":"016"},"language":{"description":"Preferred language of a user","title":"Language","type":"string","x-stream-index":"021"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettingsRequest","x-stream-index":"022"},"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":"019"}},"required":["id"],"title":"User object","type":"object"},"UserRequest":{"properties":{"custom":{"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"},"language":{"type":"string","x-stream-index":"005"},"name":{"description":"Optional name of user","title":"Name","type":"string","x-stream-index":"002"},"role":{"title":"Role","type":"string","x-stream-index":"006"},"teams":{"items":{"type":"string"},"title":"Teams","type":"array","x-stream-index":"007"}},"required":["id"],"type":"object"},"UserResponse":{"nullable":true,"properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"001.005"},"ban_expires":{"format":"date-time","type":"string","x-stream-index":"001.015"},"banned":{"type":"boolean","x-stream-index":"001.014"},"created_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.007"},"deactivated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.012"},"deleted_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.011"},"id":{"type":"string","x-stream-index":"001.003"},"invisible":{"type":"boolean","x-stream-index":"001.021"},"language":{"type":"string","x-stream-index":"001.031"},"last_active":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.010"},"online":{"readOnly":true,"type":"boolean","x-stream-index":"001.020"},"push_notifications":{"$ref":"#/components/schemas/PushNotificationSettings","x-stream-index":"001.023"},"revoke_tokens_issued_before":{"format":"date-time","type":"string","x-stream-index":"001.038"},"role":{"type":"string","x-stream-index":"001.004"},"shadow_banned":{"description":"Whether user is shadow banned or not","title":"Shadow banned","type":"boolean","x-stream-index":"002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"001.032"},"updated_at":{"format":"date-time","readOnly":true,"type":"string","x-stream-index":"001.008"}},"required":["id","role","Custom","banned","online","shadow_banned"],"type":"object"},"UsersResponse":{"nullable":true,"properties":{"duration":{"type":"string","x-stream-index":"002.001"},"users":{"description":"List of found users","items":{"$ref":"#/components/schemas/UserResponse"},"title":"Users","type":"array","x-stream-index":"001"}},"required":["users","duration"],"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/TargetResolutionRequest","x-stream-index":"003"}},"type":"object"},"WSEvent":{"description":"Represents an BaseEvent that happened in Stream Chat","properties":{"Custom":{"type":"object","writeOnly":true,"x-stream-index":"021"},"automoderation":{"type":"boolean","x-stream-index":"017"},"automoderation_scores":{"$ref":"#/components/schemas/ModerationResponse","x-stream-index":"018"},"channel":{"$ref":"#/components/schemas/ChannelResponse","x-stream-index":"008"},"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":"string","x-stream-index":"022"},"created_by":{"$ref":"#/components/schemas/UserObject","x-stream-index":"016"},"me":{"$ref":"#/components/schemas/OwnUser","x-stream-index":"013"},"member":{"$ref":"#/components/schemas/ChannelMember","x-stream-index":"010"},"message":{"$ref":"#/components/schemas/Message","x-stream-index":"006"},"parent_id":{"type":"string","x-stream-index":"019"},"reaction":{"$ref":"#/components/schemas/Reaction","x-stream-index":"007"},"reason":{"type":"string","x-stream-index":"015"},"team":{"type":"string","x-stream-index":"020"},"thread":{"$ref":"#/components/schemas/Thread","x-stream-index":"009"},"type":{"type":"string","x-stream-index":"001"},"user":{"$ref":"#/components/schemas/UserObject","x-stream-index":"011"},"user_id":{"type":"string","x-stream-index":"012"},"watcher_count":{"format":"int32","type":"integer","x-stream-index":"014"}},"required":["type","Custom","created_at"],"title":"Event","type":"object","x-stream-docs-page-id":"event_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"},"XiaomiConfigRequest":{"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"},"connectRequestQueryRequest":{"nullable":true,"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":"v98.0.2-message-blocked-event.1"},"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":["Settings"]},"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":["Settings"]}},"/api/v2/chat/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":["Settings","Moderation"]},"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":["Settings","Moderation"]}},"/api/v2/chat/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":["Settings","Moderation"]},"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":["Settings","Moderation"]},"put":{"description":"Updates contents of the block list\n","operationId":"UpdateBlockList","parameters":[{"in":"path","name":"name","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateBlockListRequest"}}},"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":["Settings","Moderation"]}},"/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/ChannelsResponse"}}},"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":["Channels"]}},"/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":["Channels","GDPR"]}},"/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":["Channels","Messages"]}},"/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":"GetOrCreateChannel","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":["Channels"]}},"/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":["Channels"]},"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":["Channels"]},"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":["Channels"]}},"/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":["Events"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Channels"]}},"/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":["Messages","Files"]},"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":["Messages","Files"]}},"/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":["Messages"]}},"/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","schema":{"description":"List of comma-separated IDs","items":{"type":"string"},"maximum":50,"minimum":1,"title":"IDs","type":"array","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":["Messages"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/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":{"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/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":["Channels"]}},"/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":["Channels"]}},"/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":["Channels","Messages"]}},"/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":["Settings","Channel types"]},"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":["Settings","Channel types"]}},"/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"}}},"description":"Bad request"},"429":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}},"description":"Too many requests"}},"summary":"Delete channel type","tags":["Settings","Channel types"]},"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"}}},"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 channel type","tags":["Settings","Channel types"]},"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"}}},"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":["Settings","Channel types"]}},"/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":["Custom commands"]},"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":["Custom commands"]}},"/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":["Custom commands"]},"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"}}},"description":"Too many requests"}},"summary":"Get command","tags":["Custom commands"]},"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","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":["Custom commands"]}},"/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":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"}},"summary":"Export channels","tags":["Channels"]}},"/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","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":["Channels"]}},"/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":["Channels"]}},"/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/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":"Delete message","tags":["Messages"]},"get":{"description":"Returns message by ID\n\nRequired permissions:\n- ReadChannel\n","operationId":"GetMessage","parameters":[{"in":"path","name":"id","required":true,"schema":{"description":"Message ID","title":"ID","type":"string","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageWithPendingMetadataResponse"}}},"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":["Messages"]},"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":["Messages"]},"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":["Messages"]}},"/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":["Messages"]}},"/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"}}],"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":"Commit message"}},"/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/ReactionResponse"}}},"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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages","Reactions"]}},"/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":["Messages"]}},"/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":{"description":"ID of a message which replies to return","title":"Parent ID","type":"string","writeOnly":true,"x-stream-index":"001"}},{"in":"query","name":"id_gte","schema":{"type":"string","x-stream-index":"002.001.003"}},{"in":"query","name":"id_gt","schema":{"type":"string","x-stream-index":"002.001.004"}},{"in":"query","name":"id_lte","schema":{"type":"string","x-stream-index":"002.001.005"}},{"in":"query","name":"id_lt","schema":{"type":"string","x-stream-index":"002.001.006"}},{"in":"query","name":"created_at_after_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.007"}},{"in":"query","name":"created_at_after","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.008"}},{"in":"query","name":"created_at_before_or_equal","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.009"}},{"in":"query","name":"created_at_before","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.010"}},{"in":"query","name":"id_around","schema":{"type":"string","x-stream-index":"002.001.011"}},{"in":"query","name":"created_at_around","schema":{"format":"date-time","type":"string","x-stream-index":"002.001.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":["Messages"]}},"/api/v2/chat/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","schema":{"type":"string","x-stream-index":"001"}},{"in":"query","name":"type","schema":{"type":"string","x-stream-index":"002"}},{"in":"query","name":"id","schema":{"type":"string","x-stream-index":"003"}},{"in":"query","name":"created_by","schema":{"type":"string","x-stream-index":"004"}}],"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":["Users","Moderation"]},"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":["Users","Moderation"]}},"/api/v2/chat/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":["Moderation","Messages","Users"]}},"/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":["Messages","Moderation"]}},"/api/v2/chat/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":["Users","Moderation"]}},"/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":["Channels"]}},"/api/v2/chat/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":["Users","Moderation"]}},"/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":["Channels"]}},"/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":["Users","Moderation"]}},"/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":["Channels","Messages"]}},"/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":["Threads"]}},"/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"}}],"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":["Threads"]},"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":["Threads","Channels"]}},"/api/v2/chat/unread":{"get":{"description":"UnreadCount counts\n","operationId":"UnreadCounts","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnreadCountsResponse"}}},"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":"UnreadCount counts","tags":["Channels"]}},"/api/v2/chat/users/{user_id}/event":{"post":{"description":"Sends a custom event to a user\n\nSends events:\n- custom\n","operationId":"SendUserCustomEvent","parameters":[{"in":"path","name":"user_id","required":true,"schema":{"type":"string","writeOnly":true,"x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendUserCustomEventRequest"}}},"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":"Send user event","tags":["Events"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckPushResponse"}}},"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":"Check push","tags":["Settings","Testing"]}},"/api/v2/check_sns":{"post":{"description":"Validates Amazon SNS configuration\n","operationId":"CheckSNS","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSNSRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSNSResponse"}}},"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":"Check SNS","tags":["Settings","Testing"]}},"/api/v2/check_sqs":{"post":{"description":"Validates Amazon SQS credentials\n","operationId":"CheckSQS","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSQSRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckSQSResponse"}}},"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":"Check SQS","tags":["Settings","Testing"]}},"/api/v2/connect":{"get":{"description":"Establishes WebSocket connection for user\n\nSends events:\n- user.updated\n","operationId":"Connect","parameters":[{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectRequest","x-stream-index":"001"}}},"in":"query","name":"json"}],"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":"Connect (WebSocket)","tags":["Users"]}},"/api/v2/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"}},"summary":"Delete device","tags":["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"}},"summary":"List devices","tags":["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":{"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":["Devices","Push"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExportUsersResponse"}}},"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 users","tags":["Users"]}},"/api/v2/guest":{"post":{"description":"Creates guest user\n","operationId":"CreateGuest","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestResponse"}}},"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":["Users"]}},"/api/v2/import_urls":{"post":{"description":"Creates a new import URL\n","operationId":"CreateImportURL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportURLRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportURLResponse"}}},"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 import URL","tags":["Imports"]}},"/api/v2/imports":{"get":{"description":"Gets an import\n","operationId":"ListImports","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListImportsResponse"}}},"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 import","tags":["Imports"]},"post":{"description":"Creates a new import\n","operationId":"CreateImport","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateImportResponse"}}},"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 import","tags":["Imports"]}},"/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"}}},"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 import","tags":["Imports"]}},"/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/ConnectRequest","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":["Users"]}},"/api/v2/og":{"get":{"description":"Get an OpenGraph attachment for a link\n","operationId":"GetOG","parameters":[{"in":"query","name":"url","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":["Messages"]}},"/api/v2/permissions":{"get":{"description":"Lists all available permissions\n","operationId":"ListPermissions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListPermissionsResponse"}}},"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 permissions","tags":["Permissions V2"]}},"/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","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCustomPermissionResponse"}}},"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 permission","tags":["Permissions V2"]}},"/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"}}},"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 push providers","tags":["Push","Settings"]},"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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertPushProviderResponse"}}},"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 a push provider","tags":["Server-side"]}},"/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"}},{"in":"path","name":"name","required":true,"schema":{"maxLength":36,"minLength":1,"type":"string","writeOnly":true,"x-stream-index":"002"}}],"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 a push provider","tags":["Push","Settings"]}},"/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","writeOnly":true,"x-stream-index":"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"}},{"in":"query","name":"ios","schema":{"description":"Whether to include iOS platform limits or not","title":"iOS","type":"boolean","writeOnly":true,"x-stream-index":"003"}},{"in":"query","name":"web","schema":{"description":"Whether to include web platform limits or not","title":"Web","type":"boolean","writeOnly":true,"x-stream-index":"004"}},{"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"}}},"description":"Get Rate Limits 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 rate limits","tags":["Settings"]}},"/api/v2/roles":{"get":{"description":"Lists all available roles\n","operationId":"ListRoles","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListRolesResponse"}}},"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 roles","tags":["Permissions V2"]},"post":{"description":"Creates custom role\n","operationId":"CreateRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleResponse"}}},"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 role","tags":["Permissions V2"]}},"/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","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 role","tags":["Permissions V2"]}},"/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","writeOnly":true,"x-stream-index":"001"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTaskResponse"}}},"description":"Get Task 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 status of a task","tags":["Tasks"]}},"/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/QueryUsersRequest","x-stream-index":"001"}}},"in":"query","name":"payload"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersResponse"}}},"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":["Users"]},"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/UpdateUserPartialRequest"}}},"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":["Users"]},"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":["Users"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateUsersResponse"}}},"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":"Deactivate users","tags":["Users","GDPR","Moderation"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteUsersResponse"}}},"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 Users","tags":["Users","GDPR","Moderation"]}},"/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":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivateUsersResponse"}}},"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":"Reactivate users","tags":["Users","GDPR","Moderation"]}},"/api/v2/users/restore":{"post":{"description":"Restore soft deleted users\n","operationId":"RestoreUsers","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RestoreUsersRequest"}}},"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":"Restore users","tags":["Users"]}},"/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","x-stream-index":"001"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateUserRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeactivateUserResponse"}}},"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":"Deactivate user","tags":["Users","GDPR","Moderation"]}},"/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"}}},"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 user","tags":["Users"]}},"/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"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivateUserRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReactivateUserResponse"}}},"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":"Reactivate user","tags":["Users","GDPR","Moderation"]}},"/api/v2/video/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_1"}}},"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"}},"summary":"Query call members"}},"/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"},"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"},"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"}},"/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"}},"/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":"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"}},"summary":"Send custom event"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/api/v2/video/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"}}],"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"}},"/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"}}],"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"}},"/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"}},"/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"}},"/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"}},"/api/v2/video/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"}},"summary":"Stop transcription"}},"/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"}},"/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"}},"/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"}},"/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"}},"/api/v2/video/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"}},"summary":"List Call Type","tags":["Server-side"]},"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"}},"summary":"Create Call Type","tags":["Server-side"]}},"/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"}}],"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 Call Type","tags":["Server-side"]},"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"}},"summary":"Get Call Type","tags":["Server-side"]},"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"}},"summary":"Update Call Type","tags":["Server-side"]}},"/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"}},"/api/v2/video/external_storage":{"get":{"description":"Lists external storage\n","operationId":"ListExternalStorage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExternalStorageResponse"}}},"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 external storage","tags":["Settings"]},"post":{"description":"Creates new external storage\n","operationId":"CreateExternalStorage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExternalStorageRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExternalStorageResponse"}}},"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 external storage","tags":["Settings"]}},"/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"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteExternalStorageResponse"}}},"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 external storage","tags":["Settings"]},"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"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExternalStorageResponse"}}},"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 External Storage","tags":["Server-side"]}},"/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/CheckExternalStorageResponse"}}},"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":"Check External Storage","tags":["Server-side"]}}},"security":[{"JWT":[],"api_key":[],"stream-auth-type":[]},{"api_key":[],"stream-auth-type":[]}],"servers":[{"description":"Stream API","url":"https://stream-io-api.com"}]} \ No newline at end of file diff --git a/openapi/serverside-api.yaml b/openapi/serverside-api.yaml new file mode 100644 index 00000000..38f4102e --- /dev/null +++ b/openapi/serverside-api.yaml @@ -0,0 +1,17242 @@ +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 + 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 + APNConfigRequest: + 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 + 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 + 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 + ActionRequest: + 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" + type: object + App: + properties: + agora_options: + $ref: '#/components/schemas/Config' + x-stream-index: "001.038" + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: "001.018" + async_url_enrich_enabled: + type: boolean + x-stream-index: "001.016" + auto_translation_enabled: + type: boolean + x-stream-index: "001.019" + before_message_send_hook_url: + type: string + x-stream-index: "001.020" + call_types: + additionalProperties: + $ref: '#/components/schemas/CallType' + type: object + x-stream-index: "001.006" + campaign_enabled: + type: boolean + x-stream-index: "001.033" + cdn_expiration_seconds: + format: int32 + type: integer + x-stream-index: "001.036" + channel_configs: + additionalProperties: + $ref: '#/components/schemas/ChannelConfig' + description: Object with channel configs + title: Channel configs + type: object + x-stream-index: "001.005" + x-stream-map: + key: channel_type + custom_action_handler_url: + type: string + x-stream-index: "001.021" + datadog_info: + $ref: '#/components/schemas/DataDogInfo' + x-stream-index: "001.041" + disable_auth_checks: + type: boolean + x-stream-index: "001.010" + disable_permissions_checks: + type: boolean + x-stream-index: "001.011" + enforce_unique_usernames: + type: string + x-stream-index: "001.022" + file_upload_config: + $ref: '#/components/schemas/FileUploadConfig' + x-stream-index: "001.029" + geofences: + items: + $ref: '#/components/schemas/GeofenceResponse' + type: array + x-stream-index: "001.040" + 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" + image_moderation_enabled: + type: boolean + x-stream-index: "001.015" + image_moderation_labels: + items: + type: string + type: array + x-stream-index: "001.017" + image_upload_config: + $ref: '#/components/schemas/FileUploadConfig' + x-stream-index: "001.030" + multi_tenant_enabled: + type: boolean + x-stream-index: "001.014" + name: + type: string + x-stream-index: "001.001" + organization: + type: string + x-stream-index: "001.002" + permission_version: + type: string + x-stream-index: "001.012" + policies: + additionalProperties: + items: + $ref: '#/components/schemas/Policy' + type: array + type: object + x-stream-index: "001.007" + push_notifications: + $ref: '#/components/schemas/PushNotificationFields' + x-stream-index: "001.003" + reminders_interval: + format: int32 + type: integer + x-stream-index: "001.035" + revoke_tokens_issued_before: + format: date-time + type: string + x-stream-index: "001.031" + sns_key: + type: string + x-stream-index: "001.027" + sns_secret: + type: string + x-stream-index: "001.028" + sns_topic_arn: + type: string + x-stream-index: "001.026" + sqs_key: + type: string + x-stream-index: "001.024" + sqs_secret: + type: string + x-stream-index: "001.025" + sqs_url: + type: string + x-stream-index: "001.023" + suspended: + type: boolean + x-stream-index: "001.008" + suspended_explanation: + type: string + x-stream-index: "001.009" + user_search_disallowed_roles: + items: + type: string + type: array + x-stream-index: "001.013" + video_provider: + type: string + x-stream-index: "001.037" + webhook_events: + items: + type: string + type: array + x-stream-index: "001.034" + webhook_url: + type: string + x-stream-index: "001.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 + - 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 + - webhook_events + - reminders_interval + - cdn_expiration_seconds + - video_provider + type: object + AsyncModerationCallbackConfigRequest: + 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 + AsyncModerationConfigurationRequest: + properties: + callback: + $ref: '#/components/schemas/AsyncModerationCallbackConfigRequest' + x-stream-index: "002" + timeout_ms: + format: int32 + type: integer + x-stream-index: "001" + type: object + Attachment: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + 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" + 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) + title: Type + type: string + x-stream-index: "001" + required: + - Custom + title: Attachment + type: object + x-stream-docs-page-id: file_uploads + AttachmentRequest: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + actions: + items: + $ref: '#/components/schemas/ActionRequest' + 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" + fallback: + type: string + x-stream-index: "002" + fields: + items: + $ref: '#/components/schemas/FieldRequest' + 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/ImagesRequest' + 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) + title: Type + type: string + x-stream-index: "001" + 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" + 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 + 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 + BanRequest: + nullable: true + properties: + banned_by: + $ref: '#/components/schemas/UserRequest' + description: User who issued a ban + title: Banned by + x-stream-index: "009" + banned_by_id: + description: User ID who issued a ban + title: Banned by ID + type: string + x-stream-index: "008" + id: + description: Channel ID to ban user in + title: ID + type: string + x-stream-index: "005" + ip_ban: + description: Whether to perform IP ban or not + title: IP ban + type: boolean + x-stream-index: "007" + 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: "006" + 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" + type: + description: Channel type to ban user in + title: Type + type: string + x-stream-index: "004" + user: + $ref: '#/components/schemas/UserRequest' + x-stream-index: "010.002" + user_id: + type: string + x-stream-index: "010.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: string + x-stream-index: "007" + expires: + format: date-time + type: string + 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: string + 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: string + 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 + type: string + x-stream-index: "002" + blocklist: + type: string + x-stream-index: "001" + required: + - blocklist + - behavior + type: object + BlockListOptionsRequest: + properties: + behavior: + enum: + - flag + - block + type: string + x-stream-index: "002" + blocklist: + type: string + 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 + 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 + 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: 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 + 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 + 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: + 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: string + 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 (:) + 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: + 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 + 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 + 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/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 + CallType: + nullable: true + properties: + AppPK: + format: int32 + type: integer + writeOnly: true + x-stream-index: "003" + CreatedAt: + format: date-time + type: string + 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: string + writeOnly: true + x-stream-index: "006" + required: + - PK + - AppPK + - Name + - CreatedAt + - UpdatedAt + - ExternalStorage + type: object + CallTypeResponse: + properties: + created_at: + format: date-time + type: string + 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: string + x-stream-index: "006" + required: + - name + - grants + - settings + - notification_settings + - created_at + - updated_at + type: object + Channel: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "018" + 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: string + x-stream-index: "009" + created_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "008" + deleted_at: + format: date-time + type: string + 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: string + 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: string + 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.023" + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: "001.018" + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: "001.019" + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: "001.024" + blocklist: + type: string + x-stream-index: "001.020" + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: "001.021" + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: "001.022" + 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: string + 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.017" + message_retention: + type: string + x-stream-index: "001.016" + mutes: + type: boolean + x-stream-index: "001.009" + name: + type: string + x-stream-index: "001.001" + 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: string + 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 + - message_retention + - max_message_length + - automod + - automod_behavior + - created_at + - updated_at + - commands + type: object + ChannelConfigRequest: + description: Channel configuration overrides + properties: + blocklist: + type: string + x-stream-index: "008" + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: "009" + commands: + items: + type: string + type: array + x-stream-index: "011" + grants: + additionalProperties: + items: + type: string + type: array + title: Grants + type: object + x-stream-index: "010" + x-stream-map: + description: List of grants modifiers that apply to a role + key: role + title: Grants + max_message_length: + description: Overrides max message length + format: int32 + maximum: 20000 + title: Max Message Length + type: integer + x-stream-index: "007" + quotes: + description: Enables message quotes + title: Quotes + type: boolean + x-stream-index: "004" + reactions: + description: Enables or disables reactions + title: Reactions + type: boolean + x-stream-index: "002" + replies: + description: Enables message replies (threads) + title: Replies + type: boolean + x-stream-index: "003" + typing_events: + description: Enables or disables typing events + title: Typing events + type: boolean + x-stream-index: "001" + uploads: + description: Enables or disables file uploads + title: Uploads + type: boolean + x-stream-index: "005" + url_enrichment: + description: Enables or disables URL enrichment + title: URL Enrichment + type: boolean + x-stream-index: "006" + type: object + ChannelConfigWithInfo: + properties: + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: 001.002.023 + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: 001.002.018 + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.002.019 + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: 001.002.024 + blocklist: + type: string + x-stream-index: 001.002.020 + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.002.021 + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: 001.002.022 + 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: string + 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: + description: List of grants modifiers that apply to a role + key: role + title: Grants + 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.017 + message_retention: + type: string + x-stream-index: 001.002.016 + mutes: + type: boolean + x-stream-index: 001.002.009 + name: + type: string + x-stream-index: 001.002.001 + 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: string + 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 + - message_retention + - max_message_length + - automod + - automod_behavior + - commands + type: object + ChannelExportRequest: + 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: string + x-stream-index: "004" + messages_until: + description: Date to export messages until + format: date-time + title: Messages until + type: string + 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/ChannelRequest' + 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/PaginationParamsRequest' + x-stream-index: "011" + messages: + $ref: '#/components/schemas/MessagePaginationParamsRequest' + 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/PaginationParamsRequest' + 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: string + 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: string + x-stream-index: "011" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + invite_accepted_at: + description: Date when invite was accepted + format: date-time + title: Invited accepted at + type: string + x-stream-index: "008" + invite_rejected_at: + description: Date when invite was rejected + format: date-time + title: Invited rejected at + type: string + 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" + role: + description: 'Permission level of the member in the channel (DEPRECATED: + use channel_role instead)' + enum: + - member + - moderator + - admin + - owner + title: Role + type: string + x-stream-index: "019" + 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: string + 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 + ChannelMemberRequest: + nullable: true + properties: + ban_expires: + description: Expiration date of the ban + format: date-time + title: Ban expires + type: string + 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: string + x-stream-index: "011" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + invite_accepted_at: + description: Date when invite was accepted + format: date-time + title: Invited accepted at + type: string + x-stream-index: "008" + invite_rejected_at: + description: Date when invite was rejected + format: date-time + title: Invited rejected at + type: string + 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" + role: + description: 'Permission level of the member in the channel (DEPRECATED: + use channel_role instead)' + enum: + - member + - moderator + - admin + - owner + title: Role + type: string + x-stream-index: "019" + 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: string + x-stream-index: "012" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "005" + user_id: + title: User ID + type: string + x-stream-index: "004" + 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: string + x-stream-index: "009" + expires: + description: Date/time of mute expiration + format: date-time + title: Expires + type: string + x-stream-index: "008" + updated_at: + description: Date/time of the last update + format: date-time + title: Updated at + type: string + 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 + ChannelRequest: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "017" + 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/ChannelConfigRequest' + x-stream-index: "026" + disabled: + type: boolean + x-stream-index: "016" + frozen: + description: Freeze or unfreeze the channel + title: Frozen + type: boolean + x-stream-index: "015" + members: + items: + $ref: '#/components/schemas/ChannelMemberRequest' + 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 + ChannelResponse: + description: Represents channel in chat + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "029" + 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 (:) + 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: string + x-stream-index: "008" + created_by: + $ref: '#/components/schemas/UserObject' + description: Creator of the channel + title: Created by + x-stream-index: "011" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + 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: string + 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: string + 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: string + x-stream-index: "009" + required: + - id + - type + - cid + - 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: string + 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/Message' + 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/Message' + type: array + x-stream-index: "001.003" + read: + items: + $ref: '#/components/schemas/Read' + 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/UserObject' + 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: string + 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/Message' + 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/Message' + 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/Read' + 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/UserObject' + 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.023 + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: 003.002.018 + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: 003.002.019 + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: 003.002.024 + blocklist: + type: string + x-stream-index: 003.002.020 + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: 003.002.021 + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: 003.002.022 + 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: string + 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.017 + message_retention: + type: string + x-stream-index: 003.002.016 + 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" + 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: string + 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 + - message_retention + - max_message_length + - automod + - automod_behavior + - commands + type: object + ChannelsResponse: + 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 + 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/UserObjectRequest' + 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: + 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: + 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 + 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: string + 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: string + 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 + ConfigRequest: + 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 + ConnectRequest: + properties: + device: + $ref: '#/components/schemas/DeviceFields' + x-stream-index: "001.002" + user_details: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.001" + required: + - user_details + 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 + - regular + - domains + - emails + title: Type + type: string + x-stream-index: "003" + words: + description: List of words to block + items: + type: string + 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/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" + 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: string + 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: "016" + automod_behavior: + description: Sets behavior of automatic moderation + enum: + - flag + - block + title: Auto moderation behavior + type: string + x-stream-index: "017" + blocklist: + description: Name of the blocklist to use + title: Blocklist + type: string + x-stream-index: "021" + blocklist_behavior: + description: Sets behavior of blocklist + enum: + - flag + - block + title: Blocklist behavior + type: string + x-stream-index: "022" + blocklists: + items: + $ref: '#/components/schemas/BlockListOptionsRequest' + type: array + x-stream-index: "023" + commands: + description: List of commands that channel supports + items: + type: string + title: Commands + type: array + x-stream-index: "018" + 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: "020" + 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: "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_1' + title: Permissions + type: array + x-stream-index: "019" + 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 + - automod + type: object + CreateChannelTypeResponse: + nullable: true + properties: + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: 001.001.023 + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: 001.001.018 + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.001.019 + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: 001.001.024 + blocklist: + type: string + x-stream-index: 001.001.020 + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: 001.001.021 + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: 001.001.022 + 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: string + 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.017 + message_retention: + type: string + x-stream-index: 001.001.016 + 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" + 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: string + 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 + - 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" + 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 + CreateImportRequest: + nullable: true + properties: + mode: + enum: + - insert + - upsert + type: string + x-stream-index: "002" + path: + type: string + x-stream-index: "001" + required: + - path + 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 + 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" + site: + type: string + x-stream-index: "002" + required: + - api_key + - site + type: object + DataDogInfoRequest: + properties: + api_key: + type: string + x-stream-index: "001" + 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" + user_id: + title: User ID + type: string + x-stream-index: "001" + required: + - user_id + 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_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" + 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 + DeleteUsersRequest: + nullable: true + properties: + calls: + enum: + - soft + - hard + type: string + x-stream-index: 001.002.004 + conversations: + description: | + Conversation channels delete mode. + Conversation channel is any channel which only has two members one of which is the user being deleted. + + * null or empty string - doesn't delete any conversation channels + * soft - marks all conversation channels as deleted (same effect as Delete Channels with 'hard' option disabled) + * hard - deletes channel and all its data completely including messages (same effect as Delete Channels with 'hard' option enabled) + enum: + - soft + - hard + title: Delete Conversations + type: string + x-stream-index: 001.002.003 + messages: + description: | + Message delete mode. + + * null or empty string - doesn't delete user messages + * soft - marks all user messages as deleted without removing any related message data + * pruning - marks all user messages as deleted, nullifies message information and removes some message data such as reactions and flags + * hard - deletes messages completely with all related information + 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. + + * soft - marks user as deleted and retains all user data + * pruning - marks user as deleted and nullifies user information + * hard - deletes user completely. Requires 'hard' option for messages and conversations as well + 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: + 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 + 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 + DeviceFields: + properties: + id: + description: Device ID + title: ID + type: string + x-stream-index: "004" + push_provider: + enum: + - firebase + - apn + - huawei + - xiaomi + title: Push provider + type: string + x-stream-index: "001" + push_provider_name: + description: Name of the push provider configuration + title: Push provider name + type: string + x-stream-index: "003" + voip: + type: boolean + x-stream-index: "005" + required: + - push_provider + - 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 + 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 + EventNotificationSettingsRequest: + properties: + apns: + $ref: '#/components/schemas/APNSRequest' + x-stream-index: "002" + enabled: + type: boolean + x-stream-index: "001" + type: object + EventRequest: + properties: + custom: + 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/ChannelExportRequest' + 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.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" + 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 + FieldRequest: + nullable: true + properties: + short: + type: boolean + x-stream-index: "003" + title: + type: string + x-stream-index: "001" + value: + type: string + x-stream-index: "002" + 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" + required: + - allowed_file_extensions + - blocked_file_extensions + - allowed_mime_types + - blocked_mime_types + type: object + FileUploadConfigRequest: + 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" + type: object + FileUploadRequest: + nullable: true + properties: + file: + description: file field + title: File + type: string + x-stream-index: "002" + user: + $ref: '#/components/schemas/OnlyUserIDRequest' + 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 + 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 + FirebaseConfigRequest: + 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 + Flag: + description: Contains information about flagged user or message + properties: + approved_at: + description: Date of the approval + format: date-time + title: Approved at + type: string + x-stream-index: "015" + created_at: + description: Date/time of creation + format: date-time + title: Created at + type: string + x-stream-index: "011" + created_by_automod: + type: boolean + x-stream-index: "004" + custom: + 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: string + x-stream-index: "016" + reviewed_at: + description: Date of the review + format: date-time + title: Reviewed at + type: string + x-stream-index: "013" + 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: string + 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: + 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: string + 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: + 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + GetApplicationResponse: + nullable: true + properties: + app: + $ref: '#/components/schemas/App' + 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" + 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" + 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: string + 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: string + 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: string + 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: string + 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: string + 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 + GetOGResponse: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.018" + 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" + 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 + - 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: + description: The name of the endpoint for which the limits apply + key: endpoint + title: Endpoint name + 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: + description: The name of the endpoint for which the limits apply + key: endpoint + title: Endpoint name + 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: + description: The name of the endpoint for which the limits apply + key: endpoint + title: Endpoint name + 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: + description: The name of the endpoint for which the limits apply + key: endpoint + title: Endpoint name + 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: + 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 + GetTaskResponse: + nullable: true + properties: + created_at: + format: date-time + type: string + 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: + 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: string + 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: + - 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: "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 + GuestRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "001" + required: + - user + type: object + GuestResponse: + nullable: true + properties: + access_token: + description: Authentication token to use for guest user + title: Access token + type: string + x-stream-index: "002" + duration: + type: string + x-stream-index: "003.001" + user: + $ref: '#/components/schemas/UserObject' + description: Created user object + title: User + x-stream-index: "001" + required: + - access_token + - 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" + 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-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/UserObjectRequest' + 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 + 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 + HuaweiConfigRequest: + 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 + 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 + ImageDataRequest: + 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" + 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" + required: + - crop + - resize + - height + - width + title: Image size configuration + type: object + ImageSizeRequest: + 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/ImageSizeRequest' + title: Upload sizes + type: array + x-stream-index: "002" + user: + $ref: '#/components/schemas/OnlyUserIDRequest' + 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 + ImagesRequest: + properties: + fixed_height: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "002" + fixed_height_downsampled: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "004" + fixed_height_still: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "003" + fixed_width: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "005" + fixed_width_downsampled: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "007" + fixed_width_still: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "006" + original: + $ref: '#/components/schemas/ImageDataRequest' + x-stream-index: "001" + type: object + ImportTask: + properties: + created_at: + format: date-time + type: string + 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: string + 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: string + 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: + 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 + LabelThresholdsRequest: + 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: + 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: + type: object + x-stream-index: "002" + required: + - name + 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: + description: Channel type config object + key: channel_type + title: Channel type + 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 + MarkChannelsReadRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + 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/UserObjectRequest' + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - message_id + - thread_id + type: object + MemberRequest: + properties: + custom: + 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: + 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 + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "031" + 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: "043" + cid: + description: Channel unique identifier in : format + title: Channel CID + type: string + x-stream-index: "026" + 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: string + x-stream-index: "028" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + x-stream-index: "030" + deleted_reply_count: + format: int32 + type: integer + x-stream-index: "021" + 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: "041" + 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: "037" + 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: "040" + 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: "017" + pin_expires: + description: Date when pinned message expires + format: date-time + title: Pin expiration date + type: string + x-stream-docs-page-id: pinned_messages + x-stream-index: "048" + pinned: + description: Whether message is pinned or not + title: Pinned + type: boolean + x-stream-docs-page-id: pinned_messages + x-stream-index: "044" + pinned_at: + description: Date when message got pinned + format: date-time + title: Pinned at + type: string + x-stream-docs-page-id: pinned_messages + x-stream-index: "045" + 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: "047" + quoted_message: + $ref: '#/components/schemas/Message' + description: Contains quoted message + title: Quoted message + x-stream-docs-page-id: threads#quote-message + x-stream-index: "023" + quoted_message_id: + title: ID of quoted message + type: string + x-stream-docs-page-id: threads#quote-message + x-stream-index: "022" + 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_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: "020" + shadowed: + description: Whether the message was shadowed or not + title: Shadowed + type: boolean + x-stream-docs-page-id: moderation#shadow-ban + x-stream-index: "033" + 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: "019" + silent: + description: Whether message is silent or not + title: Silent + type: boolean + x-stream-index: "042" + 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: "025" + 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: string + x-stream-index: "029" + 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 + - 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: + ID: + type: string + writeOnly: true + x-stream-index: "001" + form_data: + additionalProperties: + type: string + description: ReadOnlyData to execute command with + title: Form data + type: object + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "003.002" + user_id: + type: string + x-stream-index: "003.001" + required: + - form_data + type: object + MessageFlag: + nullable: true + properties: + approved_at: + format: date-time + type: string + x-stream-index: "013" + created_at: + format: date-time + type: string + x-stream-index: "009" + created_by_automod: + type: boolean + x-stream-index: "001" + custom: + 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: string + x-stream-index: "014" + reviewed_at: + format: date-time + type: string + x-stream-index: "011" + reviewed_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "012" + updated_at: + format: date-time + type: string + 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: string + 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: string + 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 + MessagePaginationParamsRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "008" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "007" + created_at_around: + format: date-time + type: string + x-stream-index: "012" + created_at_before: + format: date-time + type: string + x-stream-index: "010" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "009" + id_around: + type: string + x-stream-index: "011" + id_gt: + type: string + x-stream-index: "004" + id_gte: + type: string + x-stream-index: "003" + id_lt: + type: string + x-stream-index: "006" + id_lte: + type: string + x-stream-index: "005" + 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: string + 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/AttachmentRequest' + maximum: 30 + type: array + x-stream-index: "004" + custom: + 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: string + x-stream-index: "015" + pinned: + type: boolean + x-stream-index: "013" + pinned_at: + format: date-time + nullable: true + type: string + x-stream-index: "014" + 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" + required: + - attachments + type: object + MessageResponse: + 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/Message' + x-stream-index: "001" + required: + - duration + type: object + MessageWithPendingMetadataResponse: + nullable: true + properties: + duration: + type: string + x-stream-index: 001.002.001 + message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.001" + pending_message_metadata: + additionalProperties: + type: string + description: Metadata attached to a message while it is pending + title: Pending message metadata + type: object + x-stream-index: "002" + required: + - duration + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - channel_cids + 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/UserObjectRequest' + x-stream-index: "004.002" + user_id: + type: string + x-stream-index: "004.001" + required: + - target_ids + 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 + 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 + NullBoolRequest: + properties: + HasValue: + type: boolean + writeOnly: true + x-stream-index: "002" + Value: + type: boolean + writeOnly: true + x-stream-index: "001" + type: object + NullTimeRequest: + properties: + HasValue: + type: boolean + writeOnly: true + x-stream-index: "002" + Value: + format: date-time + type: string + writeOnly: true + x-stream-index: "001" + type: object + OnlyUserIDRequest: + 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 + - 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: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + banned: + type: boolean + x-stream-index: "014" + channel_mutes: + items: + $ref: '#/components/schemas/ChannelMute' + type: array + x-stream-index: "026" + created_at: + format: date-time + type: string + x-stream-index: "007" + deactivated_at: + format: date-time + type: string + x-stream-index: "012" + deleted_at: + format: date-time + type: string + x-stream-index: "011" + devices: + items: + $ref: '#/components/schemas/Device' + type: array + x-stream-index: "024" + id: + type: string + x-stream-index: "003" + invisible: + type: boolean + x-stream-index: "021" + language: + type: string + x-stream-index: "031" + last_active: + format: date-time + type: string + x-stream-index: "010" + latest_hidden_channels: + items: + type: string + type: array + x-stream-index: "033" + mutes: + items: + $ref: '#/components/schemas/UserMute' + type: array + x-stream-index: "025" + online: + type: boolean + x-stream-index: "020" + 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: "032" + total_unread_count: + format: int32 + type: integer + x-stream-index: "028" + unread_channels: + format: int32 + type: integer + x-stream-index: "029" + unread_count: + format: int32 + type: integer + x-stream-index: "027" + unread_threads: + format: int32 + type: integer + x-stream-index: "030" + updated_at: + format: date-time + type: string + 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 + PaginationParamsRequest: + properties: + id_gt: + format: int32 + type: integer + x-stream-index: "004" + id_gte: + format: int32 + type: integer + x-stream-index: "003" + id_lt: + format: int32 + type: integer + x-stream-index: "006" + id_lte: + format: int32 + type: integer + x-stream-index: "005" + 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: + 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: string + 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: string + 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 + PolicyRequest_1: + 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: + - name + - priority + type: object + PushConfigRequest: + properties: + offline_only: + type: boolean + x-stream-index: "002" + version: + enum: + - v1 + - v2 + type: string + x-stream-index: "001" + 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: string + x-stream-index: "002" + type: object + PushNotificationSettingsRequest: + properties: + disabled: + $ref: '#/components/schemas/NullBoolRequest' + x-stream-index: "001" + disabled_until: + $ref: '#/components/schemas/NullTimeRequest' + 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: string + x-stream-index: "008" + description: + maxLength: 128 + type: string + x-stream-index: "007" + disabled_at: + format: date-time + type: string + 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: integer + x-stream-index: "006" + updated_at: + format: date-time + type: string + 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 + PushProviderRequest: + 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: string + x-stream-index: "008" + description: + maxLength: 128 + type: string + x-stream-index: "007" + disabled_at: + format: date-time + type: string + 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: integer + x-stream-index: "006" + updated_at: + format: date-time + type: string + 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: 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: string + x-stream-index: "004" + description: + type: string + x-stream-index: "003" + disabled_at: + format: date-time + type: string + 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: string + 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: + created_at_after: + format: date-time + type: string + x-stream-index: "003.006" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "003.005" + created_at_before: + format: date-time + type: string + x-stream-index: "003.008" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "003.007" + exclude_expired_bans: + type: boolean + x-stream-index: "006" + filter_conditions: + 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/UserObject' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "007.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: 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 + QueryCallsRequest: + nullable: true + properties: + filter_conditions: + 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 + QueryChannelsRequest: + nullable: true + properties: + filter_conditions: + 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/SortParamRequest' + 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/UserObjectRequest' + x-stream-index: "010.002" + user_id: + type: string + x-stream-index: "010.001" + 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 + QueryMembersRequest: + properties: + created_at_after: + format: date-time + type: string + x-stream-index: "006.010" + created_at_after_or_equal: + format: date-time + type: string + x-stream-index: "006.009" + created_at_before: + format: date-time + type: string + x-stream-index: "006.012" + created_at_before_or_equal: + format: date-time + type: string + x-stream-index: "006.011" + filter_conditions: + 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/UserObject' + x-stream-index: "007.002" + user_id: + type: string + x-stream-index: "007.001" + user_id_gt: + type: string + x-stream-index: "006.006" + user_id_gte: + type: string + x-stream-index: "006.005" + user_id_lt: + type: string + x-stream-index: "006.008" + user_id_lte: + type: string + x-stream-index: "006.007" + required: + - type + - filter_conditions + type: object + QueryMembersRequest_1: + nullable: true + properties: + filter_conditions: + 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 + QueryMessageFlagsRequest: + properties: + filter_conditions: + 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/UserObject' + description: '**Server-side only**. User object which server acts upon' + title: User + x-stream-index: "004.002" + user_id: + description: '**Server-side only**. User ID which server acts upon' + title: 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 + QueryThreadsRequest: + nullable: true + properties: + connection_id: + type: string + 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" + 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: "005.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: "007.002" + user_id: + type: string + x-stream-index: "007.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 + QueryUsersRequest: + properties: + filter_conditions: + description: User filters + title: Filter conditions + type: object + x-stream-docs-page-id: query_users + x-stream-index: "001" + id_gt: + type: string + x-stream-index: "004.006" + id_gte: + type: string + x-stream-index: "004.005" + id_lt: + type: string + x-stream-index: "004.008" + id_lte: + type: string + x-stream-index: "004.007" + limit: + format: int32 + maximum: 100 + minimum: 0 + type: integer + x-stream-index: "004.003" + offset: + format: int32 + maximum: 1000 + type: integer + x-stream-index: "004.004" + presence: + description: Request user presence status + title: Presence + type: boolean + x-stream-index: "003" + sort: + description: Array of sort parameters + items: + $ref: '#/components/schemas/SortParam' + maximum: 5 + title: Sort + type: array + x-stream-index: "002" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "005.002" + user_id: + type: string + x-stream-index: "005.001" + required: + - filter_conditions + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "010" + created_at: + description: Date/time of creation + format: date-time + readOnly: true + title: Created at + type: string + x-stream-index: "008" + 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: string + 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 + 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: + description: Represents user reaction to a message + properties: + Custom: + type: object + writeOnly: true + 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" + user: + $ref: '#/components/schemas/UserObjectRequest' + 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: + - type + title: Reaction + type: object + x-stream-docs-page-id: send_reaction + ReactionResponse: + 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 + 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" + user_id: + title: User ID + type: string + x-stream-index: "001" + required: + - user_id + 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_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: string + 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 + 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/LayoutSettings' + 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: 30000 + minimum: 5000 + type: integer + x-stream-index: "002" + incoming_call_timeout_ms: + format: int32 + maximum: 180000 + minimum: 5000 + type: integer + x-stream-index: "001" + type: object + Role: + properties: + created_at: + description: Date/time of creation + format: date-time + title: Created at + type: string + 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: string + 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 + 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 + SearchRequest: + properties: + filter_conditions: + 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: + 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: + nullable: true + properties: + message: + $ref: '#/components/schemas/SearchResultMessage' + description: Found message + title: Message + x-stream-index: "001" + type: object + SearchResultMessage: + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.031" + attachments: + items: + $ref: '#/components/schemas/Attachment' + type: array + x-stream-index: "001.011" + before_message_send_failed: + type: boolean + x-stream-index: "001.043" + channel: + $ref: '#/components/schemas/ChannelResponse' + description: Channel object + title: Channel + x-stream-index: "002" + cid: + type: string + x-stream-index: "001.026" + command: + type: string + x-stream-index: "001.006" + created_at: + format: date-time + type: string + x-stream-index: "001.028" + deleted_at: + format: date-time + type: string + x-stream-index: "001.030" + deleted_reply_count: + format: int32 + type: integer + x-stream-index: "001.021" + html: + type: string + x-stream-index: "001.007" + i18n: + additionalProperties: + type: string + type: object + x-stream-index: "001.041" + id: + type: string + x-stream-index: "001.002" + image_labels: + additionalProperties: + items: + type: string + type: array + type: object + x-stream-index: "001.037" + 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.040" + 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.017" + pin_expires: + format: date-time + type: string + x-stream-index: "001.048" + pinned: + type: boolean + x-stream-index: "001.044" + pinned_at: + format: date-time + type: string + x-stream-index: "001.045" + pinned_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.047" + quoted_message: + $ref: '#/components/schemas/Message' + x-stream-index: "001.023" + quoted_message_id: + type: string + x-stream-index: "001.022" + reaction_counts: + additionalProperties: + format: int32 + type: integer + type: object + x-stream-index: "001.014" + reaction_scores: + additionalProperties: + format: int32 + type: integer + type: object + x-stream-index: "001.015" + reply_count: + format: int32 + type: integer + x-stream-index: "001.020" + shadowed: + type: boolean + x-stream-index: "001.033" + show_in_channel: + type: boolean + x-stream-index: "001.019" + silent: + type: boolean + x-stream-index: "001.042" + text: + type: string + x-stream-index: "001.004" + thread_participants: + items: + $ref: '#/components/schemas/UserObject' + type: array + x-stream-index: "001.025" + type: + type: string + x-stream-index: "001.008" + updated_at: + format: date-time + type: string + x-stream-index: "001.029" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "001.010" + required: + - id + - text + - html + - type + - 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 + 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/Message' + 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: + ID: + type: string + writeOnly: true + x-stream-index: "001" + 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 + SendUserCustomEventRequest: + nullable: true + properties: + event: + $ref: '#/components/schemas/UserCustomEventRequest' + x-stream-index: "002" + required: + - event + type: object + ShowChannelRequest: + nullable: true + properties: + user: + $ref: '#/components/schemas/UserObjectRequest' + 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 + 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 + 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 + 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 + Thread: + description: Represents a conversation thread linked to a specific message in + a channel. + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "009" + 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: string + x-stream-index: "007" + left_thread_at: + description: Left Thread At is the time when the user left the thread + format: date-time + title: Left Thread At + type: string + 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 + - 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: string + 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: + type: object + x-stream-index: "015" + deleted_at: + format: date-time + type: string + x-stream-index: "013" + last_message_at: + format: date-time + type: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "001.017" + 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: string + 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" + deleted_at: + description: Date/time of deletion + format: date-time + title: Deleted at + type: string + 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: string + 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: string + x-stream-index: "001.014" + required: + - channel_cid + - parent_message_id + - created_at + - updated_at + - title + - Custom + - latest_replies + title: Thread + type: object + ThreadStateResponse: + nullable: true + 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: string + 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: + type: object + x-stream-index: "001.015" + deleted_at: + format: date-time + type: string + x-stream-index: "001.013" + last_message_at: + format: date-time + type: string + 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: string + 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 + ThresholdsRequest: + description: Sets thresholds for AI moderation + properties: + explicit: + $ref: '#/components/schemas/LabelThresholdsRequest' + description: Thresholds for explicit messages + title: Explicit + x-stream-index: "001" + spam: + $ref: '#/components/schemas/LabelThresholdsRequest' + description: Thresholds for spam + title: Spam + x-stream-index: "002" + toxic: + $ref: '#/components/schemas/LabelThresholdsRequest' + 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 + 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 + 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: string + 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 + 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_cid: + type: string + x-stream-index: "001.001" + channel_cids: + items: + type: string + maximum: 25 + type: array + x-stream-index: "001.002" + expiration: + type: integer + x-stream-index: "001.003" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "002.002" + user_id: + type: string + x-stream-index: "002.001" + required: + - channel_cid + - channel_cids + 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_id: + type: string + x-stream-index: "001.001" + target_ids: + items: + type: string + maximum: 1000 + type: array + x-stream-index: "001.002" + timeout: + minimum: 0 + type: integer + x-stream-index: "001.003" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "002.002" + user_id: + type: string + x-stream-index: "002.001" + required: + - target_id + - target_ids + 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: string + 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" + duration: + description: Duration of the request in human-readable format + title: Duration + type: string + x-stream-index: "006.001" + 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 + - duration + type: object + UnreadCountsThread: + properties: + last_read: + format: date-time + type: string + 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/ConfigRequest' + x-stream-index: "001.038" + apn_config: + $ref: '#/components/schemas/APNConfigRequest' + x-stream-index: "001.003" + async_moderation_config: + $ref: '#/components/schemas/AsyncModerationConfigurationRequest' + 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/DataDogInfoRequest' + 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/FileUploadConfigRequest' + x-stream-index: "001.028" + firebase_config: + $ref: '#/components/schemas/FirebaseConfigRequest' + x-stream-index: "001.004" + grants: + additionalProperties: + items: + type: string + type: array + type: object + x-stream-index: "001.032" + hms_options: + $ref: '#/components/schemas/ConfigRequest' + x-stream-index: "001.039" + huawei_config: + $ref: '#/components/schemas/HuaweiConfigRequest' + 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/FileUploadConfigRequest' + 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/PushConfigRequest' + 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: string + 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/XiaomiConfigRequest' + x-stream-index: "001.006" + type: object + UpdateBlockListRequest: + nullable: true + properties: + Name: + type: string + writeOnly: true + x-stream-index: "001" + words: + items: + type: string + type: array + x-stream-index: "002" + 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: + 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: + 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/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" + 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: string + x-stream-index: "001.006" + required: + - name + - grants + - settings + - notification_settings + - created_at + - updated_at + - duration + type: object + UpdateChannelPartialRequest: + nullable: true + properties: + set: + type: object + x-stream-index: "002.001" + unset: + items: + type: string + type: array + x-stream-index: "002.002" + user: + $ref: '#/components/schemas/UserObjectRequest' + x-stream-index: "003.002" + user_id: + type: string + x-stream-index: "003.001" + required: + - set + - unset + 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/ChannelMemberRequest' + 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/ChannelMemberRequest' + 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/ChannelRequest' + 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/ChannelMemberRequest' + 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" + required: + - remove_members + - add_moderators + - demote_moderators + 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: + NameFromPath: + type: string + writeOnly: true + x-stream-index: "001" + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: 007.001.023 + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: 007.001.018 + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: 007.001.019 + automod_thresholds: + $ref: '#/components/schemas/ThresholdsRequest' + x-stream-index: 007.001.024 + blocklist: + type: string + x-stream-index: 007.001.020 + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: 007.001.021 + blocklists: + items: + $ref: '#/components/schemas/BlockListOptionsRequest' + type: array + x-stream-index: 007.001.022 + 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.017 + message_retention: + type: string + x-stream-index: 007.001.016 + mutes: + type: boolean + x-stream-index: 007.001.009 + permissions: + items: + $ref: '#/components/schemas/PolicyRequest_1' + type: array + x-stream-index: "003" + 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: + - automod + type: object + UpdateChannelTypeResponse: + nullable: true + properties: + allowed_flag_reasons: + items: + type: string + type: array + x-stream-index: 003.001.023 + automod: + enum: + - disabled + - simple + - AI + type: string + x-stream-index: 003.001.018 + automod_behavior: + enum: + - flag + - block + type: string + x-stream-index: 003.001.019 + automod_thresholds: + $ref: '#/components/schemas/Thresholds' + x-stream-index: 003.001.024 + blocklist: + type: string + x-stream-index: 003.001.020 + blocklist_behavior: + enum: + - flag + - block + type: string + x-stream-index: 003.001.021 + blocklists: + items: + $ref: '#/components/schemas/BlockListOptions' + type: array + x-stream-index: 003.001.022 + 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: string + 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.017 + message_retention: + type: string + x-stream-index: 003.001.016 + 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" + 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: string + 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 + - 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: + Name: + type: string + writeOnly: true + x-stream-index: "001" + 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: + description: Sets new field values + title: Set + type: object + x-stream-index: "002.001" + x-stream-map: + description: New value to set + key: field + title: Value + 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" + required: + - set + - unset + 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: + - message + - 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 + UpdateThreadPartialRequest: + nullable: true + properties: + ID: + type: string + writeOnly: true + x-stream-index: "001" + set: + 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" + required: + - set + - unset + 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: + - duration + type: object + UpdateUserPartialRequest: + nullable: true + properties: + id: + description: User ID to update + title: ID + type: string + x-stream-index: "001" + set: + type: object + x-stream-index: "002.001" + unset: + items: + type: string + type: array + x-stream-index: "002.002" + required: + - id + - set + - unset + 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 + UpdateUsersRequest: + nullable: true + properties: + users: + additionalProperties: + $ref: '#/components/schemas/UserObjectRequest' + 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: "002.001" + users: + additionalProperties: + $ref: '#/components/schemas/UserObject' + description: Object containing users + title: Users + type: object + x-stream-index: "001" + x-stream-map: + key: user_id + required: + - users + - duration + type: object + UpsertPushProviderRequest: + nullable: true + properties: + push_provider: + $ref: '#/components/schemas/PushProviderRequest' + 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: + type: object + writeOnly: true + x-stream-index: "004" + created_at: + format: date-time + type: string + x-stream-index: "005" + type: + type: string + x-stream-index: "001" + required: + - type + type: object + UserMute: + nullable: true + properties: + created_at: + description: Date/time of creation + format: date-time + title: Created at + type: string + x-stream-index: "009" + expires: + description: Date/time of mute expiration + format: date-time + title: Expires + type: string + 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: string + 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: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + ban_expires: + description: Expiration date of the ban + format: date-time + title: Ban expires + type: string + 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: string + x-stream-index: "007" + deactivated_at: + description: Date of deactivation + format: date-time + readOnly: true + title: Deactivated at + type: string + x-stream-index: "012" + deleted_at: + description: Date/time of deletion + format: date-time + readOnly: true + title: Deleted at + type: string + 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: "031" + last_active: + description: Date of last activity + format: date-time + readOnly: true + title: Last active + type: string + x-stream-index: "010" + online: + description: Whether a user online or not + readOnly: true + title: Online + type: boolean + x-stream-index: "020" + 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: string + x-stream-index: "038" + 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: "032" + updated_at: + description: Date/time of the last update + format: date-time + readOnly: true + title: Updated at + type: string + x-stream-index: "008" + required: + - id + title: User object + type: object + UserObjectRequest: + description: Represents chat user + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "005" + id: + description: Unique user identifier + title: ID + type: string + x-stream-index: "003" + invisible: + type: boolean + x-stream-index: "016" + language: + description: Preferred language of a user + title: Language + type: string + x-stream-index: "021" + push_notifications: + $ref: '#/components/schemas/PushNotificationSettingsRequest' + x-stream-index: "022" + 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: "019" + required: + - id + title: User object + type: object + UserRequest: + properties: + custom: + 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" + language: + type: string + x-stream-index: "005" + name: + description: Optional name of user + title: Name + type: string + x-stream-index: "002" + role: + title: Role + type: string + x-stream-index: "006" + teams: + items: + type: string + title: Teams + type: array + x-stream-index: "007" + required: + - id + type: object + UserResponse: + nullable: true + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "001.005" + ban_expires: + format: date-time + type: string + x-stream-index: "001.015" + banned: + type: boolean + x-stream-index: "001.014" + created_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.007" + deactivated_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.012" + deleted_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.011" + id: + type: string + x-stream-index: "001.003" + invisible: + type: boolean + x-stream-index: "001.021" + language: + type: string + x-stream-index: "001.031" + last_active: + format: date-time + readOnly: true + type: string + x-stream-index: "001.010" + online: + readOnly: true + type: boolean + x-stream-index: "001.020" + push_notifications: + $ref: '#/components/schemas/PushNotificationSettings' + x-stream-index: "001.023" + revoke_tokens_issued_before: + format: date-time + type: string + x-stream-index: "001.038" + role: + type: string + x-stream-index: "001.004" + shadow_banned: + description: Whether user is shadow banned or not + title: Shadow banned + type: boolean + x-stream-index: "002" + teams: + items: + type: string + type: array + x-stream-index: "001.032" + updated_at: + format: date-time + readOnly: true + type: string + x-stream-index: "001.008" + required: + - id + - role + - Custom + - banned + - online + - shadow_banned + type: object + UsersResponse: + nullable: true + properties: + duration: + type: string + x-stream-index: "002.001" + users: + description: List of found users + items: + $ref: '#/components/schemas/UserResponse' + title: Users + type: array + x-stream-index: "001" + required: + - users + - duration + 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/TargetResolutionRequest' + x-stream-index: "003" + type: object + WSEvent: + description: Represents an BaseEvent that happened in Stream Chat + properties: + Custom: + type: object + writeOnly: true + x-stream-index: "021" + automoderation: + type: boolean + x-stream-index: "017" + automoderation_scores: + $ref: '#/components/schemas/ModerationResponse' + x-stream-index: "018" + channel: + $ref: '#/components/schemas/ChannelResponse' + x-stream-index: "008" + 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: string + x-stream-index: "022" + created_by: + $ref: '#/components/schemas/UserObject' + x-stream-index: "016" + me: + $ref: '#/components/schemas/OwnUser' + x-stream-index: "013" + member: + $ref: '#/components/schemas/ChannelMember' + x-stream-index: "010" + message: + $ref: '#/components/schemas/Message' + x-stream-index: "006" + parent_id: + type: string + x-stream-index: "019" + reaction: + $ref: '#/components/schemas/Reaction' + x-stream-index: "007" + reason: + type: string + x-stream-index: "015" + team: + type: string + x-stream-index: "020" + thread: + $ref: '#/components/schemas/Thread' + x-stream-index: "009" + type: + type: string + x-stream-index: "001" + user: + $ref: '#/components/schemas/UserObject' + x-stream-index: "011" + user_id: + type: string + x-stream-index: "012" + watcher_count: + format: int32 + type: integer + x-stream-index: "014" + required: + - type + - Custom + - created_at + title: Event + type: object + x-stream-docs-page-id: event_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 + XiaomiConfigRequest: + 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 + connectRequestQueryRequest: + nullable: true + type: object + securitySchemes: + JWT: + description: | + JWT should be always provided when stream-auth-type=jwt. + + Using JWT auth request could be authenticated as user or as server-side. + + When using user authentication permission checking is going to be applied to requests based on the user that is + performing a request. + + The `authorization` header should be a JWT string signed using the secret attached to the API key used to perform + requests. + + **WARNING** all client-side official SDK do not ship with token generation; this is to make sure that the API secret is not + shared with an untrusted party such as a browser or a iOS/Android application. Tokens **must** be generated server-side. + If you wish, you can configure your application to ignore authentication (see `disable_auth_check`) + The JWT string must include only the user_id claim and can include any built-in JWT claim such as iat, exp as well. + 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 + values: `jwt` or `anonymous`. + + `jwt` allows you to authenticate as a user. With this auth type you should also provide valid JWT in Authorization + header. + + `anonymous` allows you to authenticate as anonymous user. Please note that most advanced features are not available + to anonymous users. + in: header + name: Stream-Auth-Type + type: apiKey +info: + title: Stream API + version: v98.0.2-message-blocked-event.1 +openapi: 3.0.3 +paths: + /api/v2/app: + get: + description: | + This Method returns the application settings + 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: + - Settings + patch: + description: | + This Method updates one or more application settings + 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: + - Settings + /api/v2/chat/blocklists: + get: + description: | + Returns all available block lists + 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: + - Settings + - Moderation + post: + description: | + Creates a new application blocklist, once created the blocklist can be used by any channel type + 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: + - Settings + - Moderation + /api/v2/chat/blocklists/{name}: + delete: + description: | + Deletes previously created application blocklist + 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: + - Settings + - Moderation + get: + description: | + Returns block list by given name + 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: + - Settings + - Moderation + put: + description: | + Updates contents of the block list + operationId: UpdateBlockList + parameters: + - in: path + name: name + required: true + schema: + type: string + writeOnly: true + x-stream-index: "001" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateBlockListRequest' + 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: + - Settings + - Moderation + /api/v2/chat/channels: + post: + description: | + Query channels with filter query + + Required permissions: + - ReadChannel + 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/ChannelsResponse' + 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: + - Channels + /api/v2/chat/channels/{type}/{id}: + delete: + description: | + Deletes channel + + Sends events: + - channel.deleted + + Required permissions: + - DeleteChannel + 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: + - Channels + patch: + description: | + Updates certain fields of the channel + + Sends events: + - channel.updated + + Required permissions: + - UpdateChannel + - UpdateChannelCooldown + - UpdateChannelFrozen + 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: + - Channels + post: + description: | + Change channel data + + Sends events: + - channel.updated + - member.added + - member.removed + - member.updated + - message.new + + Required permissions: + - AddOwnChannelMembership + - RemoveOwnChannelMembership + - UpdateChannel + - UpdateChannelCooldown + - UpdateChannelFrozen + - UpdateChannelMembers + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/event: + post: + description: | + Sends event to the channel + + Required permissions: + - SendCustomEvent + 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: + - Events + /api/v2/chat/channels/{type}/{id}/file: + delete: + description: | + Deletes previously uploaded file + + Required permissions: + - DeleteAttachment + 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: + - Messages + - Files + post: + description: | + Uploads file + + Required permissions: + - UploadAttachment + 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: + - Messages + - Files + /api/v2/chat/channels/{type}/{id}/hide: + post: + description: | + Marks channel as hidden for current user + + Sends events: + - channel.hidden + + Required permissions: + - ReadChannel + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/image: + delete: + description: | + Deletes previously uploaded image + + Required permissions: + - DeleteAttachment + 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: + - Messages + - Files + post: + description: | + Uploads image + + Required permissions: + - UploadAttachment + 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: + - Messages + - Files + /api/v2/chat/channels/{type}/{id}/message: + post: + description: | + Sends new message to the specified channel + + Sends events: + - message.new + - message.updated + + Required permissions: + - AddLinks + - CreateMessage + - PinMessage + - SkipChannelCooldown + - SkipMessageModeration + - UseFrozenChannel + 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: + - Messages + /api/v2/chat/channels/{type}/{id}/messages: + get: + description: | + Returns list messages found by IDs + + Required permissions: + - ReadChannel + 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 + schema: + description: List of comma-separated IDs + items: + type: string + maximum: 50 + minimum: 1 + title: IDs + type: array + 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: + - Messages + /api/v2/chat/channels/{type}/{id}/query: + post: + description: | + This Method creates a channel or returns an existing one with matching attributes + + Sends events: + - channel.created + - member.added + - member.removed + - member.updated + - user.watching.start + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/read: + post: + description: | + Marks channel as read up to the specific message + + Sends events: + - message.read + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/channels/{type}/{id}/show: + post: + description: | + Shows previously hidden channel + + Sends events: + - channel.visible + operationId: ShowChannel + 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/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: + - Channels + /api/v2/chat/channels/{type}/{id}/truncate: + post: + description: | + Truncates channel + + Sends events: + - channel.truncated + + Required permissions: + - DeleteChannel + - TruncateChannel + 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: + - Channels + /api/v2/chat/channels/{type}/{id}/unread: + post: + description: | + Marks channel as unread from a specific message + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/channels/{type}/query: + post: + description: | + This Method creates a channel or returns an existing one with matching attributes + + Sends events: + - channel.created + - member.added + - member.removed + - member.updated + - user.watching.start + 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" + 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: + - Channels + /api/v2/chat/channels/delete: + post: + description: | + Allows to delete several channels at once asynchronously + + Sends events: + - channel.deleted + + Required permissions: + - DeleteChannel + 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: + - Channels + - GDPR + /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 + + Sends events: + - message.read + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/channeltypes: + get: + description: | + Lists all available channel types + 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: + - Settings + - Channel types + post: + description: | + Creates new channel type + 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: + - Settings + - Channel types + /api/v2/chat/channeltypes/{name}: + delete: + description: | + Deletes channel type + 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' + description: Bad request + "429": + content: + application/json: + schema: + $ref: '#/components/schemas/APIError' + description: Too many requests + summary: Delete channel type + tags: + - Settings + - Channel types + get: + description: | + Gets channel type + 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' + 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 channel type + tags: + - Settings + - Channel types + put: + description: | + Updates channel type + 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' + 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: + - Settings + - Channel types + /api/v2/chat/commands: + get: + description: | + Returns all custom commands + 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: + - Custom commands + post: + description: | + Creates custom chat command + 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: + - Custom commands + /api/v2/chat/commands/{name}: + delete: + description: | + Deletes custom chat command + 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: + - Custom commands + get: + description: | + Returns custom command by its name + 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' + description: Too many requests + summary: Get command + tags: + - Custom commands + put: + description: | + Updates custom chat command + operationId: UpdateCommand + parameters: + - in: path + name: name + required: true + schema: + description: Unique command name + title: Name + type: string + 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: + - Custom commands + /api/v2/chat/export_channels: + post: + description: | + Exports channel data to JSON file + operationId: ExportChannels + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExportChannelsRequest' + 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 + summary: Export channels + tags: + - Channels + /api/v2/chat/export_channels/{id}: + get: + description: |2+ + + operationId: GetExportChannelsStatus + parameters: + - in: path + name: id + required: true + schema: + description: Task ID + title: ID + type: string + 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: + - Channels + /api/v2/chat/members: + get: + description: | + Find and filter channel members + + Required permissions: + - ReadChannel + 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: + - Channels + /api/v2/chat/messages/{id}: + delete: + description: | + Deletes message + + Sends events: + - message.deleted + + Required permissions: + - DeleteMessage + 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/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: Delete message + tags: + - Messages + get: + description: | + Returns message by ID + + Required permissions: + - ReadChannel + operationId: GetMessage + parameters: + - in: path + name: id + required: true + schema: + description: Message ID + title: ID + type: string + writeOnly: true + x-stream-index: "001" + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/MessageWithPendingMetadataResponse' + 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: + - Messages + post: + description: | + Updates message with new data + + Sends events: + - message.updated + + Required permissions: + - AddLinks + - PinMessage + - SkipMessageModeration + - UpdateMessage + 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: + - Messages + put: + description: | + Updates certain fields of the message + + Sends events: + - message.updated + + Required permissions: + - AddLinks + - PinMessage + - SkipMessageModeration + - UpdateMessage + 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: + - Messages + /api/v2/chat/messages/{id}/action: + post: + description: | + Executes message command action with given parameters + + Sends events: + - message.new + + Required permissions: + - RunMessageAction + 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: + - Messages + /api/v2/chat/messages/{id}/commit: + post: + description: | + Commits a pending message, which will make it visible in the channel + + Sends events: + - message.new + - message.updated + operationId: CommitMessage + parameters: + - in: path + name: id + required: true + schema: + type: string + writeOnly: true + x-stream-index: "001" + 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: Commit message + /api/v2/chat/messages/{id}/reaction: + post: + description: | + Sends reaction to specified message + + Sends events: + - reaction.new + - reaction.updated + + Required permissions: + - CreateReaction + - UseFrozenChannel + 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/ReactionResponse' + 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: + - Messages + - Reactions + /api/v2/chat/messages/{id}/reaction/{type}: + delete: + description: | + Removes user reaction from the message + + Sends events: + - reaction.deleted + + Required permissions: + - DeleteReaction + 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: + - Messages + - Reactions + /api/v2/chat/messages/{id}/reactions: + get: + description: | + Returns list of reactions of specific message + + Required permissions: + - ReadChannel + 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: + - Messages + - Reactions + /api/v2/chat/messages/{id}/translate: + post: + description: | + Translates message to a given language using automated translation software + + Sends events: + - message.updated + + Required permissions: + - ReadChannel + 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: + - Messages + /api/v2/chat/messages/{parent_id}/replies: + get: + description: | + Returns replies (thread) of the message + + Required permissions: + - ReadChannel + operationId: GetReplies + parameters: + - in: path + name: parent_id + required: true + schema: + description: ID of a message which replies to return + title: Parent ID + type: string + writeOnly: true + x-stream-index: "001" + - in: query + name: id_gte + schema: + type: string + x-stream-index: 002.001.003 + - in: query + name: id_gt + schema: + type: string + x-stream-index: 002.001.004 + - in: query + name: id_lte + schema: + type: string + x-stream-index: 002.001.005 + - in: query + name: id_lt + schema: + type: string + x-stream-index: 002.001.006 + - in: query + name: created_at_after_or_equal + schema: + format: date-time + type: string + x-stream-index: 002.001.007 + - in: query + name: created_at_after + schema: + format: date-time + type: string + x-stream-index: 002.001.008 + - in: query + name: created_at_before_or_equal + schema: + format: date-time + type: string + x-stream-index: 002.001.009 + - in: query + name: created_at_before + schema: + format: date-time + type: string + x-stream-index: 002.001.010 + - in: query + name: id_around + schema: + type: string + x-stream-index: 002.001.011 + - in: query + name: created_at_around + schema: + format: date-time + type: string + x-stream-index: 002.001.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: + - Messages + /api/v2/chat/moderation/ban: + delete: + description: | + Removes previously applied ban + + Sends events: + - user.unbanned + + Required permissions: + - BanChannelMember + - BanUser + operationId: Unban + parameters: + - in: query + name: target_user_id + schema: + type: string + x-stream-index: "001" + - in: query + name: type + schema: + type: string + x-stream-index: "002" + - in: query + name: id + schema: + type: string + x-stream-index: "003" + - in: query + name: created_by + schema: + type: string + x-stream-index: "004" + 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: + - Users + - Moderation + post: + description: | + Restricts user activity either in specific channel or globally + + Sends events: + - user.banned + + Required permissions: + - BanChannelMember + - BanUser + 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: + - Users + - Moderation + /api/v2/chat/moderation/flag: + post: + description: | + Reports message or user for review by moderators + + Sends events: + - message.flagged + - user.flagged + + Required permissions: + - FlagMessage + - FlagUser + 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: + - Moderation + - Messages + - Users + /api/v2/chat/moderation/flags/message: + get: + description: | + Find and filter message flags + + Required permissions: + - ReadMessageFlags + 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: + - Messages + - Moderation + /api/v2/chat/moderation/mute: + post: + description: | + Mutes one or several users + + Sends events: + - user.muted + + Required permissions: + - MuteUser + 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: + - Users + - Moderation + /api/v2/chat/moderation/mute/channel: + post: + description: | + Mutes channel for user + + Sends events: + - channel.muted + + Required permissions: + - MuteChannel + 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: + - Channels + /api/v2/chat/moderation/unmute: + post: + description: | + Unmutes previously muted user + + Sends events: + - user.unmuted + + Required permissions: + - MuteUser + 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: + - Users + - Moderation + /api/v2/chat/moderation/unmute/channel: + post: + description: | + Unmutes channel for user + + Sends events: + - channel.unmuted + + Required permissions: + - MuteChannel + 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: + - Channels + /api/v2/chat/query_banned_users: + get: + description: | + Find and filter channel scoped or global user bans + + Required permissions: + - ReadChannel + 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: + - Users + - Moderation + /api/v2/chat/search: + get: + description: | + Search messages across channels + + Required permissions: + - ReadChannel + 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: + - Channels + - Messages + /api/v2/chat/threads: + post: + description: | + Returns the list of threads for specific user + + Required permissions: + - ReadChannel + 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: + - Threads + /api/v2/chat/threads/{message_id}: + get: + description: | + Return a specific thread + + Required permissions: + - ReadChannel + 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" + 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: + - Threads + patch: + description: | + Updates certain fields of the thread + + Sends events: + - thread.updated + + Required permissions: + - ReadChannel + - UpdateThread + 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: + - Threads + - Channels + /api/v2/chat/unread: + get: + description: | + UnreadCount counts + operationId: UnreadCounts + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/UnreadCountsResponse' + 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: UnreadCount counts + tags: + - Channels + /api/v2/chat/users/{user_id}/event: + post: + description: | + Sends a custom event to a user + + Sends events: + - custom + operationId: SendUserCustomEvent + parameters: + - in: path + name: user_id + required: true + schema: + type: string + writeOnly: true + x-stream-index: "001" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SendUserCustomEventRequest' + 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: Send user event + tags: + - Events + /api/v2/check_push: + post: + description: | + Sends a test message via push, this is a test endpoint to verify your push settings + operationId: CheckPush + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CheckPushRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CheckPushResponse' + 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: Check push + tags: + - Settings + - Testing + /api/v2/check_sns: + post: + description: | + Validates Amazon SNS configuration + operationId: CheckSNS + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CheckSNSRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CheckSNSResponse' + 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: Check SNS + tags: + - Settings + - Testing + /api/v2/check_sqs: + post: + description: | + Validates Amazon SQS credentials + operationId: CheckSQS + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CheckSQSRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CheckSQSResponse' + 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: Check SQS + tags: + - Settings + - Testing + /api/v2/connect: + get: + description: | + Establishes WebSocket connection for user + + Sends events: + - user.updated + operationId: Connect + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/ConnectRequest' + x-stream-index: "001" + in: query + name: json + 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: Connect (WebSocket) + tags: + - Users + /api/v2/devices: + delete: + description: | + Deletes one device + 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 + summary: Delete device + tags: + - Devices + get: + description: | + Returns all available devices + 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: + - Devices + post: + description: | + Adds a new device to a user, if the same device already exists the call will have no effect + operationId: CreateDevice + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateDeviceRequest' + 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 + summary: Create device + tags: + - Devices + - Push + /api/v2/export/users: + post: + description: | + Exports user profile, reactions and messages for list of given users + operationId: ExportUsers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ExportUsersRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/ExportUsersResponse' + 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 users + tags: + - Users + /api/v2/guest: + post: + description: | + Creates guest user + operationId: CreateGuest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GuestRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/GuestResponse' + 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: + - Users + /api/v2/import_urls: + post: + description: | + Creates a new import URL + operationId: CreateImportURL + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateImportURLRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateImportURLResponse' + 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 import URL + tags: + - Imports + /api/v2/imports: + get: + description: | + Gets an import + operationId: ListImports + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListImportsResponse' + 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 import + tags: + - Imports + post: + description: | + Creates a new import + operationId: CreateImport + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateImportRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateImportResponse' + 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 import + tags: + - Imports + /api/v2/imports/{id}: + get: + description: | + Gets an import + 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' + 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 import + tags: + - Imports + /api/v2/longpoll: + get: + description: | + WebSocket fallback transport endpoint + + Sends events: + - user.updated + operationId: LongPoll + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/ConnectRequest' + 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: + - Users + /api/v2/og: + get: + description: | + Get an OpenGraph attachment for a link + operationId: GetOG + parameters: + - in: query + name: url + 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: + - Messages + /api/v2/permissions: + get: + description: | + Lists all available permissions + operationId: ListPermissions + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListPermissionsResponse' + 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 permissions + tags: + - Permissions V2 + /api/v2/permissions/{id}: + get: + description: | + Gets custom permission + operationId: GetPermission + parameters: + - in: path + name: id + required: true + schema: + description: Permission ID + title: ID + type: string + writeOnly: true + x-stream-index: "001" + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetCustomPermissionResponse' + 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 permission + tags: + - Permissions V2 + /api/v2/push_providers: + get: + description: | + List details of all push providers. + operationId: ListPushProviders + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListPushProvidersResponse' + 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 push providers + tags: + - Push + - Settings + post: + description: | + Upsert a push provider for v2 with multi bundle/package support + operationId: UpsertPushProvider + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpsertPushProviderRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/UpsertPushProviderResponse' + 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 a push provider + tags: + - Server-side + /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 + operationId: DeletePushProvider + parameters: + - in: path + name: type + required: true + schema: + enum: + - apn + - firebase + - huawei + - xiaomi + type: string + writeOnly: true + x-stream-index: "001" + - in: path + name: name + required: true + schema: + maxLength: 36 + minLength: 1 + type: string + writeOnly: true + x-stream-index: "002" + 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 a push provider + tags: + - Push + - Settings + /api/v2/rate_limits: + get: + description: | + Get rate limits usage and quotas + operationId: GetRateLimits + parameters: + - in: query + name: server_side + schema: + description: Whether to include server-side platform limits or not + title: Server-side + type: boolean + writeOnly: true + x-stream-index: "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" + - in: query + name: ios + schema: + description: Whether to include iOS platform limits or not + title: iOS + type: boolean + writeOnly: true + x-stream-index: "003" + - in: query + name: web + schema: + description: Whether to include web platform limits or not + title: Web + type: boolean + writeOnly: true + x-stream-index: "004" + - 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' + description: Get Rate Limits 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 rate limits + tags: + - Settings + /api/v2/roles: + get: + description: | + Lists all available roles + operationId: ListRoles + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListRolesResponse' + 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 roles + tags: + - Permissions V2 + post: + description: | + Creates custom role + operationId: CreateRole + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateRoleResponse' + 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 role + tags: + - Permissions V2 + /api/v2/roles/{name}: + delete: + description: | + Deletes custom role + operationId: DeleteRole + parameters: + - in: path + name: name + required: true + schema: + description: Role 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 role + tags: + - Permissions V2 + /api/v2/tasks/{id}: + get: + description: | + Gets status of a task + operationId: GetTask + parameters: + - in: path + name: id + required: true + schema: + description: Task ID + title: ID + type: string + writeOnly: true + x-stream-index: "001" + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/GetTaskResponse' + description: Get Task 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 status of a task + tags: + - Tasks + /api/v2/users: + get: + description: | + Find and filter users + + Required permissions: + - SearchUser + operationId: QueryUsers + parameters: + - content: + application/json: + schema: + $ref: '#/components/schemas/QueryUsersRequest' + x-stream-index: "001" + in: query + name: payload + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/UsersResponse' + 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: + - Users + patch: + description: | + Updates certain fields of the user + + Sends events: + - user.presence.changed + - user.updated + operationId: UpdateUsersPartial + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateUserPartialRequest' + 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: + - Users + post: + description: | + Update or create users in bulk + + Sends events: + - user.updated + 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: + - Users + /api/v2/users/{user_id}/deactivate: + post: + description: | + Deactivates user with possibility to activate it back + + Sends events: + - user.deactivated + operationId: DeactivateUser + parameters: + - in: path + name: user_id + required: true + schema: + title: User ID + type: string + x-stream-index: "001" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeactivateUserRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/DeactivateUserResponse' + 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: Deactivate user + tags: + - Users + - GDPR + - Moderation + /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 + 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' + 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 user + tags: + - Users + /api/v2/users/{user_id}/reactivate: + post: + description: | + Activates user who's been deactivated previously + + Sends events: + - user.reactivated + operationId: ReactivateUser + parameters: + - in: path + name: user_id + required: true + schema: + title: User ID + type: string + x-stream-index: "001" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReactivateUserRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/ReactivateUserResponse' + 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: Reactivate user + tags: + - Users + - GDPR + - Moderation + /api/v2/users/deactivate: + post: + description: | + Deactivate users in batches + + Sends events: + - user.deactivated + operationId: DeactivateUsers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeactivateUsersRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/DeactivateUsersResponse' + 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: Deactivate users + tags: + - Users + - GDPR + - Moderation + /api/v2/users/delete: + post: + description: | + Deletes users and optionally all their belongings asynchronously. + + Sends events: + - channel.deleted + - user.deleted + operationId: DeleteUsers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteUsersRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteUsersResponse' + 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 Users + tags: + - Users + - GDPR + - Moderation + /api/v2/users/reactivate: + post: + description: | + Reactivate users in batches + + Sends events: + - user.reactivated + operationId: ReactivateUsers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ReactivateUsersRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/ReactivateUsersResponse' + 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: Reactivate users + tags: + - Users + - GDPR + - Moderation + /api/v2/users/restore: + post: + description: | + Restore soft deleted users + operationId: RestoreUsers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RestoreUsersRequest' + 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: Restore users + tags: + - Users + /api/v2/video/call/{type}/{id}: + get: + description: |2 + + + Required permissions: + - ReadCall + 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 + patch: + description: |2 + + + Sends events: + - call.updated + + Required permissions: + - UpdateCall + 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 + post: + description: | + Gets or creates a new call + + Sends events: + - call.created + - call.notification + - call.ring + + Required permissions: + - CreateCall + - ReadCall + - UpdateCallSettings + 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 + /api/v2/video/call/{type}/{id}/block: + post: + description: | + Block a user, preventing them from joining the call until they are unblocked. + + Sends events: + - call.blocked_user + + Required permissions: + - BlockUser + 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 + /api/v2/video/call/{type}/{id}/event: + post: + description: | + Sends custom event to the call + + Sends events: + - custom + + Required permissions: + - SendEvent + 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 + summary: Send custom event + /api/v2/video/call/{type}/{id}/go_live: + post: + description: |2 + + + Sends events: + - call.live_started + + Required permissions: + - UpdateCall + 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 + /api/v2/video/call/{type}/{id}/mark_ended: + post: + description: |2 + + + Sends events: + - call.ended + + Required permissions: + - EndCall + 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 + /api/v2/video/call/{type}/{id}/members: + post: + description: |2 + + + Sends events: + - call.member_added + - call.member_removed + - call.member_updated + + Required permissions: + - RemoveCallMember + - UpdateCallMember + - UpdateCallMemberRole + 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 + /api/v2/video/call/{type}/{id}/mute_users: + post: + description: | + Mutes users in a call + + Required permissions: + - MuteUsers + 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 + /api/v2/video/call/{type}/{id}/pin: + post: + description: | + Pins a track for all users in the call. + + Required permissions: + - PinCallTrack + 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 + /api/v2/video/call/{type}/{id}/recordings: + get: + description: | + Lists recordings + + Required permissions: + - ListRecordings + 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 + /api/v2/video/call/{type}/{id}/start_broadcasting: + post: + description: | + Starts HLS broadcasting + + Required permissions: + - StartBroadcasting + 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 + /api/v2/video/call/{type}/{id}/start_recording: + post: + description: | + Starts recording + + Sends events: + - call.recording_started + + Required permissions: + - StopRecording + 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 + /api/v2/video/call/{type}/{id}/start_transcription: + post: + description: | + Starts transcription + + Required permissions: + - StartTranscription + 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 + summary: Start transcription + /api/v2/video/call/{type}/{id}/stop_broadcasting: + post: + description: | + Stops HLS broadcasting + + Required permissions: + - StopBroadcasting + 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 + /api/v2/video/call/{type}/{id}/stop_live: + post: + description: |2 + + + Sends events: + - call.updated + + Required permissions: + - UpdateCall + 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 + /api/v2/video/call/{type}/{id}/stop_recording: + post: + description: | + Stops recording + + Sends events: + - call.recording_stopped + + Required permissions: + - StopRecording + 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 + /api/v2/video/call/{type}/{id}/stop_transcription: + post: + description: | + Stops transcription + + Required permissions: + - StopTranscription + 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 + /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. + + Sends events: + - call.unblocked_user + + Required permissions: + - BlockUser + 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 + /api/v2/video/call/{type}/{id}/unpin: + post: + description: | + Unpins a track for all users in the call. + + Required permissions: + - PinCallTrack + 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 + /api/v2/video/call/{type}/{id}/user_permissions: + post: + description: | + Updates user permissions + + Sends events: + - call.permissions_updated + + Required permissions: + - UpdateCallPermissions + 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 + /api/v2/video/call/members: + post: + description: | + Query call members with filter query + + Required permissions: + - ReadCall + operationId: QueryMembers + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/QueryMembersRequest_1' + 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 + summary: Query call members + /api/v2/video/calls: + post: + description: | + Query calls with filter query + + Required permissions: + - ReadCall + 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 + /api/v2/video/calltypes: + get: + description: |2+ + + 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 + summary: List Call Type + tags: + - Server-side + post: + description: |2+ + + 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 + summary: Create Call Type + tags: + - Server-side + /api/v2/video/calltypes/{name}: + delete: + description: |2+ + + 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 + summary: Delete Call Type + tags: + - Server-side + get: + description: |2+ + + 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 + summary: Get Call Type + tags: + - Server-side + put: + description: |2+ + + 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 + summary: Update Call Type + tags: + - Server-side + /api/v2/video/edges: + get: + description: | + Returns the list of all edges available for video calls. + 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 + /api/v2/video/external_storage: + get: + description: | + Lists external storage + operationId: ListExternalStorage + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/ListExternalStorageResponse' + 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 external storage + tags: + - Settings + post: + description: | + Creates new external storage + operationId: CreateExternalStorage + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateExternalStorageRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/CreateExternalStorageResponse' + 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 external storage + tags: + - Settings + /api/v2/video/external_storage/{name}: + delete: + description: | + Deletes external storage + operationId: DeleteExternalStorage + 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/DeleteExternalStorageResponse' + 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 external storage + tags: + - Settings + put: + description: |2+ + + 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' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateExternalStorageResponse' + 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 External Storage + tags: + - Server-side + /api/v2/video/external_storage/{name}/check: + get: + description: |2+ + + 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/CheckExternalStorageResponse' + 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: Check External Storage + tags: + - Server-side +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/openapi/video-openapi-clientside.json b/openapi/video-openapi-clientside.json new file mode 100644 index 00000000..5af8065c --- /dev/null +++ b/openapi/video-openapi-clientside.json @@ -0,0 +1 @@ +{"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"},"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","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","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"},"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":"string","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":"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.","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","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","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","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","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","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","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":{"custom":{"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":"string","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":"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":{"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","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"},"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":"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":{"type":"object","x-stream-index":"004"},"id":{"type":"string","x-stream-index":"001"},"image":{"type":"string","x-stream-index":"003"},"language":{"type":"string","x-stream-index":"005"},"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","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"},"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"}},"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"},"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"},"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"},"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"},"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":"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","created","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":"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"}},"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"},"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"},"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":"004.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","credentials","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":{"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":{"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"},"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.004"},"custom":{"type":"object","x-stream-index":"001.001.004"},"deleted_at":{"format":"date-time","type":"string","x-stream-index":"001.006"},"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"},"language":{"type":"string","x-stream-index":"001.001.005"},"name":{"type":"string","x-stream-index":"001.001.002"},"role":{"type":"string","x-stream-index":"001.002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"001.003"},"updated_at":{"format":"date-time","type":"string","x-stream-index":"001.005"}},"required":["id","custom","language","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":{"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":{"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":{"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"},"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"},"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":30000,"minimum":5000,"type":"integer","x-stream-index":"002"},"incoming_call_timeout_ms":{"format":"int32","maximum":180000,"minimum":5000,"type":"integer","x-stream-index":"001"}},"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"},"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":{"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"},"SendReactionRequest":{"nullable":true,"properties":{"custom":{"type":"object","x-stream-index":"003.003"},"emoji_code":{"type":"string","x-stream-index":"003.002"},"type":{"maxLength":64,"type":"string","x-stream-index":"003.001"}},"required":["type"],"type":"object"},"SendReactionResponse":{"nullable":true,"properties":{"duration":{"description":"Duration of the request in human-readable format","title":"Duration","type":"string","x-stream-index":"002.001"},"reaction":{"$ref":"#/components/schemas/ReactionResponse","x-stream-index":"001"}},"required":["reaction","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,"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,"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","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":{"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"},"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"},"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":"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":{"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"},"language":{"type":"string","x-stream-index":"005"},"name":{"description":"Optional name of user","title":"Name","type":"string","x-stream-index":"002"}},"required":["id"],"type":"object"},"UserResponse":{"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"004"},"custom":{"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":"006"},"id":{"type":"string","x-stream-index":"001.001"},"image":{"type":"string","x-stream-index":"001.003"},"language":{"type":"string","x-stream-index":"001.005"},"name":{"type":"string","x-stream-index":"001.002"},"role":{"type":"string","x-stream-index":"002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"003"},"updated_at":{"description":"Date/time of the last update","format":"date-time","title":"Updated at","type":"string","x-stream-index":"005"}},"required":["id","custom","language","role","teams","created_at","updated_at"],"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/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"},"WSEvent":{"description":"The discriminator object for all websocket events, it maps events' payload to the final type","discriminator":{"mapping":{"call.accepted":"#/components/schemas/CallAcceptedEvent","call.blocked_user":"#/components/schemas/BlockedUserEvent","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.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"},"propertyName":"type"},"oneOf":[{"$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/CallUpdatedEvent"},{"$ref":"#/components/schemas/CallUserMuted"},{"$ref":"#/components/schemas/ConnectedEvent"},{"$ref":"#/components/schemas/ConnectionErrorEvent"},{"$ref":"#/components/schemas/PermissionRequestEvent"},{"$ref":"#/components/schemas/UnblockedUserEvent"},{"$ref":"#/components/schemas/UpdatedCallPermissionsEvent"}]}},"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":"v98.0.2-message-blocked-event.1"},"openapi":"3.0.3","paths":{"/video/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"}},"summary":"Query call members"}},"/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"},"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"},"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"}},"/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"}},"/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"}},"/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":"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"}},"summary":"Send custom event"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/video/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"}}],"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"}},"/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"}}],"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"}},"/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"}},"/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"}},"/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"}},"/video/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"}},"summary":"Stop transcription"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"summary":"Video Connect (WebSocket)"}},"/video/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"}},"summary":"Delete device"},"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"},"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"}},"/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"}},"/video/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"}}},"security":[{"JWT":[],"api_key":[],"stream-auth-type":[]},{"api_key":[],"stream-auth-type":[]}],"servers":[{"description":"Stream API","url":"https://stream-io-api.com"}]} \ No newline at end of file diff --git a/openapi/video-openapi-clientside.yaml b/openapi/video-openapi-clientside.yaml index 6c755d0c..1b3c7e28 100644 --- a/openapi/video-openapi-clientside.yaml +++ b/openapi/video-openapi-clientside.yaml @@ -1,7 +1,6 @@ components: schemas: APIError: - nullable: true properties: StatusCode: description: Response HTTP status code @@ -162,7 +161,6 @@ components: 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' @@ -222,7 +220,6 @@ components: CallAcceptedEvent: description: This event is sent when a user accepts a notification to join a call. - nullable: true properties: call: $ref: '#/components/schemas/CallResponse' @@ -260,7 +257,6 @@ components: 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' @@ -333,7 +329,6 @@ components: 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' @@ -461,7 +456,6 @@ components: 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' @@ -493,7 +487,6 @@ components: 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' @@ -534,7 +527,6 @@ components: CallMemberRemovedEvent: description: This event is sent when one or more members are removed from a call - nullable: true properties: call: $ref: '#/components/schemas/CallResponse' @@ -574,7 +566,6 @@ components: 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' @@ -664,7 +655,6 @@ components: CallNotificationEvent: description: This event is sent to all call members to notify they are getting called - nullable: true properties: call: $ref: '#/components/schemas/CallResponse' @@ -738,7 +728,6 @@ components: 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 - nullable: true properties: call_cid: type: string @@ -853,7 +842,6 @@ components: 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 @@ -879,7 +867,6 @@ components: 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 @@ -906,7 +893,6 @@ components: CallRejectedEvent: description: This event is sent when a user rejects a notification to join a call. - nullable: true properties: call: $ref: '#/components/schemas/CallResponse' @@ -943,25 +929,24 @@ components: CallRequest: properties: custom: - additionalProperties: {} type: object - x-stream-index: "010" + x-stream-index: "004" members: items: $ref: '#/components/schemas/MemberRequest' maximum: 100 type: array - x-stream-index: "011" + x-stream-index: "005" settings_override: $ref: '#/components/schemas/CallSettingsRequest' - x-stream-index: "012" + x-stream-index: "006" starts_at: format: date-time type: string - x-stream-index: "013" + x-stream-index: "007" team: type: string - x-stream-index: "007" + x-stream-index: "001" type: object CallResponse: description: Represents a call @@ -994,7 +979,6 @@ components: type: string x-stream-index: "005" custom: - additionalProperties: {} description: Custom data for this object title: Custom data type: object @@ -1072,7 +1056,6 @@ components: CallRingEvent: description: This event is sent to all call members to notify they are getting called - nullable: true properties: call: $ref: '#/components/schemas/CallResponse' @@ -1431,7 +1414,6 @@ components: 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' @@ -1509,7 +1491,6 @@ components: ConnectUserDetailsRequest: properties: custom: - additionalProperties: {} type: object x-stream-index: "004" id: @@ -1518,6 +1499,9 @@ components: image: type: string x-stream-index: "003" + language: + type: string + x-stream-index: "005" name: type: string x-stream-index: "002" @@ -1527,7 +1511,6 @@ components: 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 @@ -1609,12 +1592,6 @@ components: 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" @@ -1666,44 +1643,6 @@ components: - token - ice_servers 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: @@ -1912,7 +1851,7 @@ components: properties: data: $ref: '#/components/schemas/CallRequest' - title: Data + title: ReadOnlyData x-stream-index: "003" members_limit: format: int32 @@ -1966,6 +1905,9 @@ components: GoLiveRequest: nullable: true properties: + recording_storage_name: + type: string + x-stream-index: "005" start_hls: type: boolean x-stream-index: "003" @@ -1974,7 +1916,7 @@ components: x-stream-index: "004" start_transcription: type: boolean - x-stream-index: "005" + x-stream-index: "006" type: object GoLiveResponse: nullable: true @@ -2024,34 +1966,8 @@ components: - 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 ICEServer: properties: password: @@ -2182,7 +2098,6 @@ components: MemberRequest: properties: custom: - additionalProperties: {} description: Custom data for this object title: Custom data type: object @@ -2208,7 +2123,6 @@ components: type: string x-stream-index: "005" custom: - additionalProperties: {} description: Custom member response data title: Custom type: object @@ -2316,15 +2230,14 @@ components: created_at: format: date-time type: string - x-stream-index: "001.002" + x-stream-index: "001.004" custom: - additionalProperties: {} type: object x-stream-index: 001.001.004 deleted_at: format: date-time type: string - x-stream-index: "001.004" + x-stream-index: "001.006" devices: items: $ref: '#/components/schemas/Device' @@ -2337,24 +2250,28 @@ components: image: type: string x-stream-index: 001.001.003 + language: + type: string + x-stream-index: 001.001.005 name: type: string x-stream-index: 001.001.002 role: type: string - x-stream-index: 001.001.005 + x-stream-index: "001.002" teams: items: type: string type: array - x-stream-index: 001.001.006 + x-stream-index: "001.003" updated_at: format: date-time type: string - x-stream-index: "001.003" + x-stream-index: "001.005" required: - id - custom + - language - role - teams - created_at @@ -2365,7 +2282,6 @@ components: description: |- This event is sent when a user requests access to a feature on a call, clients receiving this event should display a permission request to the user - nullable: true properties: call_cid: type: string @@ -2431,7 +2347,6 @@ components: nullable: true properties: filter_conditions: - additionalProperties: {} type: object x-stream-index: "003" limit: @@ -2482,7 +2397,6 @@ components: nullable: true properties: filter_conditions: - additionalProperties: {} type: object x-stream-index: "002" id: @@ -2551,7 +2465,6 @@ components: ReactionResponse: properties: custom: - additionalProperties: {} type: object x-stream-index: "004" emoji_code: @@ -2606,6 +2519,7 @@ components: - audio_only - mode - quality + - layout type: object RejectCallRequest: nullable: true @@ -2644,6 +2558,8 @@ components: nullable: true properties: duration: + description: Duration of the request in human-readable format + title: Duration type: string x-stream-index: "001" required: @@ -2667,10 +2583,14 @@ components: properties: auto_cancel_timeout_ms: format: int32 + maximum: 30000 + minimum: 5000 type: integer x-stream-index: "002" incoming_call_timeout_ms: format: int32 + maximum: 180000 + minimum: 5000 type: integer x-stream-index: "001" type: object @@ -2715,7 +2635,6 @@ components: nullable: true properties: custom: - additionalProperties: {} title: Custom type: object x-stream-index: "004" @@ -2733,7 +2652,6 @@ components: nullable: true properties: custom: - additionalProperties: {} type: object x-stream-index: "003.003" emoji_code: @@ -2796,6 +2714,10 @@ components: type: object StartRecordingRequest: nullable: true + properties: + recording_external_storage: + type: string + x-stream-index: "002" type: object StartRecordingResponse: nullable: true @@ -2998,7 +2920,6 @@ components: 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 @@ -3093,7 +3014,6 @@ components: nullable: true properties: custom: - additionalProperties: {} description: Custom data for this object title: Custom data type: object @@ -3147,15 +3067,15 @@ components: items: type: string type: array - x-stream-index: "004" + x-stream-index: "002" revoke_permissions: items: type: string type: array - x-stream-index: "005" + x-stream-index: "003" user_id: type: string - x-stream-index: "003" + x-stream-index: "001" required: - user_id type: object @@ -3173,7 +3093,6 @@ components: 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 @@ -3214,7 +3133,6 @@ components: UserRequest: properties: custom: - additionalProperties: {} title: Custom type: object x-stream-index: "004" @@ -3227,6 +3145,9 @@ components: title: Image type: string x-stream-index: "003" + language: + type: string + x-stream-index: "005" name: description: Optional name of user title: Name @@ -3242,9 +3163,8 @@ components: format: date-time title: Created at type: string - x-stream-index: "002" + x-stream-index: "004" custom: - additionalProperties: {} type: object x-stream-index: "001.004" deleted_at: @@ -3252,41 +3172,109 @@ components: format: date-time title: Deleted at type: string - x-stream-index: "004" + x-stream-index: "006" id: type: string x-stream-index: "001.001" image: type: string x-stream-index: "001.003" + language: + type: string + x-stream-index: "001.005" name: type: string x-stream-index: "001.002" role: type: string - x-stream-index: "001.005" + x-stream-index: "002" teams: items: type: string type: array - x-stream-index: "001.006" + x-stream-index: "003" updated_at: description: Date/time of the last update format: date-time title: Updated at type: string - x-stream-index: "003" + x-stream-index: "005" required: - id - custom + - language - 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 + 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 + WSEvent: + description: The discriminator object for all websocket events, it maps events' + payload to the final type discriminator: mapping: call.accepted: '#/components/schemas/CallAcceptedEvent' @@ -3321,8 +3309,6 @@ components: 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' @@ -3354,89 +3340,9 @@ components: - $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: | @@ -3476,15 +3382,12 @@ components: 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: v95.2.2 + title: Stream API + version: v98.0.2-message-blocked-event.1 openapi: 3.0.3 paths: - /call/{type}/{id}: + /video/call/{type}/{id}: get: description: |2 @@ -3559,22 +3462,7 @@ paths: 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: |2 @@ -3631,29 +3519,7 @@ paths: 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 @@ -3720,42 +3586,8 @@ paths: 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}/accept: + /video/call/{type}/{id}/accept: post: description: |2 @@ -3806,30 +3638,8 @@ paths: 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: Accept Call - x-stream-events: - call.accepted: "" - x-stream-events-v2: - call.accepted: - description: "" - schema: - ref: '#/components/schemas/CallAcceptedEvent' - x-stream-permissions: - JoinCall: "" - /call/{type}/{id}/block: + /video/call/{type}/{id}/block: post: description: | Block a user, preventing them from joining the call until they are unblocked. @@ -3886,30 +3696,8 @@ paths: 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: + /video/call/{type}/{id}/event: post: description: | Sends custom event to the call @@ -3964,31 +3752,8 @@ paths: 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: + /video/call/{type}/{id}/go_live: post: description: |2 @@ -4045,30 +3810,8 @@ paths: 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}/join: + /video/call/{type}/{id}/join: post: description: | Request to join a call @@ -4130,24 +3873,8 @@ paths: 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: Join call - x-stream-permissions: - CreateCall: To create a call - JoinCall: To join a call - /call/{type}/{id}/mark_ended: + /video/call/{type}/{id}/mark_ended: post: description: |2 @@ -4198,30 +3925,8 @@ paths: 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: + /video/call/{type}/{id}/members: post: description: |2 @@ -4282,42 +3987,8 @@ paths: 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: + /video/call/{type}/{id}/mute_users: post: description: | Mutes users in a call @@ -4371,23 +4042,8 @@ paths: 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: + /video/call/{type}/{id}/pin: post: description: | Pins a track for all users in the call. @@ -4437,23 +4093,8 @@ paths: 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}/reaction: + /video/call/{type}/{id}/reaction: post: description: | Sends reaction to the call @@ -4506,30 +4147,8 @@ paths: 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 reaction to the call - x-stream-events: - call.reaction_new: "" - x-stream-events-v2: - call.reaction_new: - description: "" - schema: - ref: '#/components/schemas/CallReactionEvent' - x-stream-permissions: - CreateCallReaction: To send reactions - /call/{type}/{id}/recordings: + /video/call/{type}/{id}/recordings: get: description: | Lists recordings @@ -4573,23 +4192,8 @@ paths: 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}/reject: + /video/call/{type}/{id}/reject: post: description: |2 @@ -4640,30 +4244,8 @@ paths: 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: Reject Call - x-stream-events: - call.rejected: "" - x-stream-events-v2: - call.rejected: - description: "" - schema: - ref: '#/components/schemas/CallRejectedEvent' - x-stream-permissions: - JoinCall: "" - /call/{type}/{id}/request_permission: + /video/call/{type}/{id}/request_permission: post: description: | Request permission to perform an action @@ -4717,28 +4299,8 @@ paths: 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: Request permission - x-stream-events: - call.permission_request: Permission request event - x-stream-events-v2: - call.permission_request: - description: Permission request event - schema: - ref: '#/components/schemas/PermissionRequestEvent' - /call/{type}/{id}/start_broadcasting: + /video/call/{type}/{id}/start_broadcasting: post: description: | Starts HLS broadcasting @@ -4786,23 +4348,8 @@ paths: 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: + /video/call/{type}/{id}/start_recording: post: description: | Starts recording @@ -4834,6 +4381,12 @@ paths: type: string writeOnly: true x-stream-index: "001.002" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StartRecordingRequest' + required: true responses: "201": content: @@ -4853,30 +4406,8 @@ paths: 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: + /video/call/{type}/{id}/start_transcription: post: description: | Starts transcription @@ -4924,23 +4455,8 @@ paths: 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: + /video/call/{type}/{id}/stop_broadcasting: post: description: | Stops HLS broadcasting @@ -4984,23 +4500,8 @@ paths: 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: + /video/call/{type}/{id}/stop_live: post: description: |2 @@ -5051,30 +4552,8 @@ paths: 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: + /video/call/{type}/{id}/stop_recording: post: description: | Stops recording @@ -5121,30 +4600,8 @@ paths: 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: + /video/call/{type}/{id}/stop_transcription: post: description: | Stops transcription @@ -5188,23 +4645,8 @@ paths: 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: + /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. @@ -5259,30 +4701,8 @@ paths: 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: + /video/call/{type}/{id}/unpin: post: description: | Unpins a track for all users in the call. @@ -5332,23 +4752,8 @@ paths: 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: + /video/call/{type}/{id}/user_permissions: post: description: | Updates user permissions @@ -5367,7 +4772,7 @@ paths: maxLength: 64 type: string writeOnly: true - x-stream-index: "002.001" + x-stream-index: "005.001" - in: path name: id required: true @@ -5375,7 +4780,7 @@ paths: maxLength: 64 type: string writeOnly: true - x-stream-index: "002.002" + x-stream-index: "005.002" requestBody: content: application/json: @@ -5401,31 +4806,8 @@ paths: 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: + /video/call/members: post: description: | Query call members with filter query @@ -5458,23 +4840,8 @@ paths: 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: + /video/calls: post: description: | Query calls with filter query @@ -5514,23 +4881,37 @@ paths: 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 + summary: Query call + /video/connect: + get: + description: | + Establishes WebSocket connection for user to video + + Sends events: + - connection.ok + - health.check + operationId: VideoConnect + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/WSAuthMessageRequest' + required: true + responses: + "400": + content: + application/json: schema: - type: integer - X-RateLimit-Reset: - description: Timestamp when number of requests will be reset + $ref: '#/components/schemas/APIError' + description: Bad request + "429": + content: + application/json: schema: - type: integer - summary: Query call - x-stream-permissions: - ReadCall: To retrieve a call - /devices: + $ref: '#/components/schemas/APIError' + description: Too many requests + summary: Video Connect (WebSocket) + /video/devices: delete: description: | Deletes one device @@ -5571,21 +4952,7 @@ paths: 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 @@ -5618,21 +4985,7 @@ paths: 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 @@ -5662,22 +5015,8 @@ paths: 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: + /video/edges: get: description: | Returns the list of all edges available for video calls. @@ -5701,21 +5040,8 @@ paths: 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: + /video/guest: post: description: |2+ @@ -5745,75 +5071,7 @@ paths: 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 - - Sends events: - - connection.ok - - health.check - 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: [] @@ -5821,5 +5079,5 @@ security: - api_key: [] stream-auth-type: [] servers: -- description: Video Production API - url: https://video.stream-io-api.com +- description: Stream API + url: https://stream-io-api.com diff --git a/openapi/video-openapi.json b/openapi/video-openapi.json new file mode 100644 index 00000000..405eccb1 --- /dev/null +++ b/openapi/video-openapi.json @@ -0,0 +1 @@ +{"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"},"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"},"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"},"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"},"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":"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"},"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"},"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":{"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":"string","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":"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":{"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"},"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"},"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"},"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":"string","x-stream-index":"006"}},"required":["name","grants","settings","notification_settings","created_at","updated_at"],"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"},"ConnectUserDetailsRequest":{"properties":{"custom":{"type":"object","x-stream-index":"004"},"id":{"type":"string","x-stream-index":"001"},"image":{"type":"string","x-stream-index":"003"},"language":{"type":"string","x-stream-index":"005"},"name":{"type":"string","x-stream-index":"002"}},"required":["id"],"type":"object"},"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/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"},"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":"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"},"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"},"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"},"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"},"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"},"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"},"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":"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":"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","created","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":"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"},"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"}},"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-stream-index":"004"},"quality_tracks":{"items":{"type":"string"},"type":"array","x-stream-index":"003"}},"required":["auto_on","enabled","quality_tracks","layout"],"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":{"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":{"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"},"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"},"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":{"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":{"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"},"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":{"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":{"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"},"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/LayoutSettings","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"},"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":30000,"minimum":5000,"type":"integer","x-stream-index":"002"},"incoming_call_timeout_ms":{"format":"int32","maximum":180000,"minimum":5000,"type":"integer","x-stream-index":"001"}},"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"},"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":{"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,"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,"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"},"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":{"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":{"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/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"},"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":"string","x-stream-index":"001.006"}},"required":["name","grants","settings","notification_settings","created_at","updated_at","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"},"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"},"UserRequest":{"properties":{"custom":{"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"},"language":{"type":"string","x-stream-index":"005"},"name":{"description":"Optional name of user","title":"Name","type":"string","x-stream-index":"002"},"role":{"title":"Role","type":"string","x-stream-index":"006"},"teams":{"items":{"type":"string"},"title":"Teams","type":"array","x-stream-index":"007"}},"required":["id"],"type":"object"},"UserResponse":{"properties":{"created_at":{"description":"Date/time of creation","format":"date-time","title":"Created at","type":"string","x-stream-index":"004"},"custom":{"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":"006"},"id":{"type":"string","x-stream-index":"001.001"},"image":{"type":"string","x-stream-index":"001.003"},"language":{"type":"string","x-stream-index":"001.005"},"name":{"type":"string","x-stream-index":"001.002"},"role":{"type":"string","x-stream-index":"002"},"teams":{"items":{"type":"string"},"type":"array","x-stream-index":"003"},"updated_at":{"description":"Date/time of the last update","format":"date-time","title":"Updated at","type":"string","x-stream-index":"005"}},"required":["id","custom","language","role","teams","created_at","updated_at"],"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/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"}},"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":"v98.0.2-message-blocked-event.1"},"openapi":"3.0.3","paths":{"/video/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"}},"summary":"Query call members"}},"/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"},"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"},"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"}},"/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"}},"/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":"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"}},"summary":"Send custom event"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/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"}},"/video/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"}}],"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"}},"/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"}}],"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"}},"/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"}},"/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"}},"/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"}},"/video/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"}},"summary":"Stop transcription"}},"/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"}},"/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"}},"/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"}},"/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"}},"/video/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"}},"summary":"List Call Type","tags":["Server-side"]},"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"}},"summary":"Create Call Type","tags":["Server-side"]}},"/video/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"}},"summary":"Delete Call Type","tags":["Server-side"]},"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"}},"summary":"Get Call Type","tags":["Server-side"]},"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"}},"summary":"Update Call Type","tags":["Server-side"]}},"/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"}},"summary":"Video Connect (WebSocket)"}},"/video/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"}},"summary":"Delete device"},"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"},"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"}},"/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"}},"/video/external_storage":{"get":{"description":"Lists external storage\n","operationId":"ListExternalStorage","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExternalStorageResponse"}}},"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 external storage","tags":["Settings"]},"post":{"description":"Creates new external storage\n","operationId":"CreateExternalStorage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExternalStorageRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateExternalStorageResponse"}}},"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 external storage","tags":["Settings"]}},"/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"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteExternalStorageResponse"}}},"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 external storage","tags":["Settings"]},"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"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateExternalStorageResponse"}}},"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 External Storage","tags":["Server-side"]}},"/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/CheckExternalStorageResponse"}}},"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":"Check External Storage","tags":["Server-side"]}},"/video/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"}}},"security":[{"JWT":[],"api_key":[],"stream-auth-type":[]},{"api_key":[],"stream-auth-type":[]}],"servers":[{"description":"Stream API","url":"https://stream-io-api.com"}]} \ No newline at end of file diff --git a/openapi/video-openapi.yaml b/openapi/video-openapi.yaml index b9807653..c59b80a9 100644 --- a/openapi/video-openapi.yaml +++ b/openapi/video-openapi.yaml @@ -131,6 +131,26 @@ components: required: - default_device 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: @@ -167,46 +187,6 @@ components: 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: @@ -228,235 +208,6 @@ components: - 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 - 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: string - 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 - 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: @@ -466,262 +217,6 @@ components: - 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: @@ -743,38 +238,6 @@ components: - 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: @@ -802,182 +265,35 @@ components: - 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" + x-stream-index: "002" created_by_id: title: The id of the user that create this call type: string - x-backend-only: true - x-stream-index: "009" + x-stream-index: "003" custom: - additionalProperties: {} type: object - x-stream-index: "010" + x-stream-index: "004" members: items: $ref: '#/components/schemas/MemberRequest' maximum: 100 type: array - x-stream-index: "011" + x-stream-index: "005" settings_override: $ref: '#/components/schemas/CallSettingsRequest' - x-stream-index: "012" + x-stream-index: "006" starts_at: format: date-time - type: string - x-stream-index: "013" - team: type: string x-stream-index: "007" + team: + type: string + x-stream-index: "001" type: object CallResponse: description: Represents a call @@ -1010,7 +326,6 @@ components: type: string x-stream-index: "005" custom: - additionalProperties: {} description: Custom data for this object title: Custom data type: object @@ -1085,172 +400,6 @@ components: - 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: @@ -1302,43 +451,6 @@ components: - 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: @@ -1449,6 +561,9 @@ components: format: date-time type: string x-stream-index: "005" + external_storage: + type: string + x-stream-index: "007" grants: additionalProperties: items: @@ -1477,89 +592,20 @@ components: - 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." + CheckExternalStorageResponse: 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 + duration: + description: Duration of the request in human-readable format + title: Duration type: string x-stream-index: "001.001" required: - - type - - created_at - - call_cid - - from_user_id - - muted_user_ids - title: CallUserMuted + - duration 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: @@ -1568,81 +614,21 @@ components: image: type: string x-stream-index: "003" + language: + type: string + x-stream-index: "005" 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: + external_storage: + type: string + x-stream-index: "002.004" grants: additionalProperties: items: @@ -1672,6 +658,9 @@ components: duration: type: string x-stream-index: "002.001" + external_storage: + type: string + x-stream-index: "001.007" grants: additionalProperties: items: @@ -1730,6 +719,46 @@ components: type: boolean x-stream-index: "004" 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: @@ -1759,44 +788,17 @@ components: - access_token - duration type: object - CustomVideoEvent: - description: A custom event, this event is used to send custom events to other - participants in the call. + DeleteExternalStorageResponse: 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 + duration: + description: Duration of the request in human-readable format + title: Duration 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 + - duration type: object - x-stream-event-call-type: true - x-stream-is-event: true - x-stream-ws-base-event-name: VideoEvent Device: properties: created_at: @@ -1958,6 +960,26 @@ components: type: boolean x-stream-index: "001" 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 GeofenceSettings: properties: names: @@ -2014,6 +1036,9 @@ components: duration: type: string x-stream-index: "002.001" + external_storage: + type: string + x-stream-index: "001.007" grants: additionalProperties: items: @@ -2065,7 +1090,7 @@ components: properties: data: $ref: '#/components/schemas/CallRequest' - title: Data + title: ReadOnlyData x-stream-index: "003" members_limit: format: int32 @@ -2119,6 +1144,9 @@ components: GoLiveRequest: nullable: true properties: + recording_storage_name: + type: string + x-stream-index: "005" start_hls: type: boolean x-stream-index: "003" @@ -2127,7 +1155,7 @@ components: x-stream-index: "004" start_transcription: type: boolean - x-stream-index: "005" + x-stream-index: "006" type: object GoLiveResponse: nullable: true @@ -2155,7 +1183,6 @@ components: layout: $ref: '#/components/schemas/LayoutSettingsRequest' title: LayoutSettings - x-backend-only: true x-stream-index: "004" quality_tracks: items: @@ -2176,7 +1203,6 @@ components: layout: $ref: '#/components/schemas/LayoutSettings' title: Layout - x-backend-only: true x-stream-index: "004" quality_tracks: items: @@ -2189,33 +1215,6 @@ components: - 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: @@ -2234,7 +1233,6 @@ components: type: string x-stream-index: "001" options: - additionalProperties: {} type: object x-stream-index: "002" required: @@ -2260,7 +1258,6 @@ components: type: string x-stream-index: "001" options: - additionalProperties: {} type: object x-stream-index: "002" required: @@ -2298,6 +1295,23 @@ components: - 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 ListRecordingsResponse: nullable: true properties: @@ -2316,7 +1330,6 @@ components: MemberRequest: properties: custom: - additionalProperties: {} description: Custom data for this object title: Custom data type: object @@ -2342,7 +1355,6 @@ components: type: string x-stream-index: "005" custom: - additionalProperties: {} description: Custom member response data title: Custom type: object @@ -2487,97 +1499,6 @@ components: - 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, - clients 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: @@ -2606,7 +1527,6 @@ components: nullable: true properties: filter_conditions: - additionalProperties: {} type: object x-stream-index: "003" limit: @@ -2657,7 +1577,6 @@ components: nullable: true properties: filter_conditions: - additionalProperties: {} type: object x-stream-index: "002" id: @@ -2723,25 +1642,6 @@ components: - 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: @@ -2750,7 +1650,6 @@ components: layout: $ref: '#/components/schemas/LayoutSettingsRequest' title: LayoutSettings - x-backend-only: true x-stream-index: "004" mode: enum: @@ -2779,7 +1678,6 @@ components: layout: $ref: '#/components/schemas/LayoutSettings' title: Layout - x-backend-only: true x-stream-index: "004" mode: type: string @@ -2822,13 +1720,31 @@ components: properties: auto_cancel_timeout_ms: format: int32 + maximum: 30000 + minimum: 5000 type: integer x-stream-index: "002" incoming_call_timeout_ms: format: int32 + maximum: 180000 + minimum: 5000 type: integer x-stream-index: "001" 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 ScreensharingSettings: properties: access_request_enabled: @@ -2854,7 +1770,6 @@ components: nullable: true properties: custom: - additionalProperties: {} title: Custom type: object x-stream-index: "004" @@ -2903,6 +1818,10 @@ components: type: object StartRecordingRequest: nullable: true + properties: + recording_external_storage: + type: string + x-stream-index: "002" type: object StartRecordingResponse: nullable: true @@ -3102,39 +2021,6 @@ components: 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: @@ -3200,7 +2086,6 @@ components: nullable: true properties: custom: - additionalProperties: {} description: Custom data for this object title: Custom data type: object @@ -3250,6 +2135,9 @@ components: UpdateCallTypeRequest: nullable: true properties: + external_storage: + type: string + x-stream-index: "002.004" grants: additionalProperties: items: @@ -3274,6 +2162,9 @@ components: duration: type: string x-stream-index: "002.001" + external_storage: + type: string + x-stream-index: "001.007" grants: additionalProperties: items: @@ -3303,6 +2194,58 @@ components: - updated_at - 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 UpdateUserPermissionsRequest: nullable: true properties: @@ -3310,15 +2253,15 @@ components: items: type: string type: array - x-stream-index: "004" + x-stream-index: "002" revoke_permissions: items: type: string type: array - x-stream-index: "005" + x-stream-index: "003" user_id: type: string - x-stream-index: "003" + x-stream-index: "001" required: - user_id type: object @@ -3333,51 +2276,9 @@ components: 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" @@ -3390,6 +2291,9 @@ components: title: Image type: string x-stream-index: "003" + language: + type: string + x-stream-index: "005" name: description: Optional name of user title: Name @@ -3398,15 +2302,13 @@ components: role: title: Role type: string - x-backend-only: true - x-stream-index: "005" + x-stream-index: "006" teams: items: type: string title: Teams type: array - x-backend-only: true - x-stream-index: "006" + x-stream-index: "007" required: - id type: object @@ -3417,9 +2319,8 @@ components: format: date-time title: Created at type: string - x-stream-index: "002" + x-stream-index: "004" custom: - additionalProperties: {} type: object x-stream-index: "001.004" deleted_at: @@ -3427,113 +2328,42 @@ components: format: date-time title: Deleted at type: string - x-stream-index: "004" + x-stream-index: "006" id: type: string x-stream-index: "001.001" image: type: string x-stream-index: "001.003" + language: + type: string + x-stream-index: "001.005" name: type: string x-stream-index: "001.002" role: type: string - x-stream-index: "001.005" + x-stream-index: "002" teams: items: type: string type: array - x-stream-index: "001.006" + x-stream-index: "003" updated_at: description: Date/time of the last update format: date-time title: Updated at type: string - x-stream-index: "003" + x-stream-index: "005" required: - id - custom + - language - 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.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.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/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/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: @@ -3598,20 +2428,6 @@ components: - 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: | @@ -3651,15 +2467,12 @@ components: 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: v95.2.2 + title: Stream API + version: v98.0.2-message-blocked-event.1 openapi: 3.0.3 paths: - /call/{type}/{id}: + /video/call/{type}/{id}: get: description: |2 @@ -3734,22 +2547,7 @@ paths: 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: |2 @@ -3806,29 +2604,7 @@ paths: 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 @@ -3895,42 +2671,8 @@ paths: 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: + /video/call/{type}/{id}/block: post: description: | Block a user, preventing them from joining the call until they are unblocked. @@ -3987,30 +2729,8 @@ paths: 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: + /video/call/{type}/{id}/event: post: description: | Sends custom event to the call @@ -4065,31 +2785,8 @@ paths: 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: + /video/call/{type}/{id}/go_live: post: description: |2 @@ -4146,30 +2843,8 @@ paths: 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: + /video/call/{type}/{id}/mark_ended: post: description: |2 @@ -4220,30 +2895,8 @@ paths: 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: + /video/call/{type}/{id}/members: post: description: |2 @@ -4304,42 +2957,8 @@ paths: 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: + /video/call/{type}/{id}/mute_users: post: description: | Mutes users in a call @@ -4393,23 +3012,8 @@ paths: 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: + /video/call/{type}/{id}/pin: post: description: | Pins a track for all users in the call. @@ -4459,23 +3063,8 @@ paths: 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: + /video/call/{type}/{id}/recordings: get: description: | Lists recordings @@ -4519,23 +3108,8 @@ paths: 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: + /video/call/{type}/{id}/start_broadcasting: post: description: | Starts HLS broadcasting @@ -4583,23 +3157,8 @@ paths: 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: + /video/call/{type}/{id}/start_recording: post: description: | Starts recording @@ -4631,6 +3190,12 @@ paths: type: string writeOnly: true x-stream-index: "001.002" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/StartRecordingRequest' + required: true responses: "201": content: @@ -4650,30 +3215,8 @@ paths: 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: + /video/call/{type}/{id}/start_transcription: post: description: | Starts transcription @@ -4721,23 +3264,8 @@ paths: 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: + /video/call/{type}/{id}/stop_broadcasting: post: description: | Stops HLS broadcasting @@ -4781,23 +3309,8 @@ paths: 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: + /video/call/{type}/{id}/stop_live: post: description: |2 @@ -4848,30 +3361,8 @@ paths: 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: + /video/call/{type}/{id}/stop_recording: post: description: | Stops recording @@ -4918,30 +3409,8 @@ paths: 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: + /video/call/{type}/{id}/stop_transcription: post: description: | Stops transcription @@ -4985,23 +3454,8 @@ paths: 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: + /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. @@ -5056,30 +3510,8 @@ paths: 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: + /video/call/{type}/{id}/unpin: post: description: | Unpins a track for all users in the call. @@ -5129,23 +3561,8 @@ paths: 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: + /video/call/{type}/{id}/user_permissions: post: description: | Updates user permissions @@ -5164,7 +3581,7 @@ paths: maxLength: 64 type: string writeOnly: true - x-stream-index: "002.001" + x-stream-index: "005.001" - in: path name: id required: true @@ -5172,7 +3589,7 @@ paths: maxLength: 64 type: string writeOnly: true - x-stream-index: "002.002" + x-stream-index: "005.002" requestBody: content: application/json: @@ -5198,31 +3615,8 @@ paths: 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: + /video/call/members: post: description: | Query call members with filter query @@ -5255,23 +3649,8 @@ paths: 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: + /video/calls: post: description: | Query calls with filter query @@ -5311,23 +3690,8 @@ paths: 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: + /video/calltypes: get: description: |2+ @@ -5351,23 +3715,9 @@ paths: 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: |2+ @@ -5397,24 +3747,10 @@ paths: 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}: + /video/calltypes/{name}: delete: description: |2+ @@ -5446,23 +3782,9 @@ paths: 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: |2+ @@ -5494,23 +3816,9 @@ paths: 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: |2+ @@ -5548,24 +3856,39 @@ paths: 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: + /video/connect: + get: + description: | + Establishes WebSocket connection for user to video + + Sends events: + - connection.ok + - health.check + 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 + summary: Video Connect (WebSocket) + /video/devices: delete: description: | Deletes one device @@ -5606,21 +3929,7 @@ paths: 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 @@ -5653,21 +3962,7 @@ paths: 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 @@ -5697,22 +3992,8 @@ paths: 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: + /video/edges: get: description: | Returns the list of all edges available for video calls. @@ -5736,37 +4017,50 @@ paths: schema: $ref: '#/components/schemas/APIError' description: Too many requests - headers: - X-RateLimit-Limit: - description: The number of allowed requests in the current period + summary: Get Edges + /video/external_storage: + get: + description: | + Lists external storage + operationId: ListExternalStorage + responses: + "200": + content: + application/json: schema: - type: integer - X-RateLimit-Remaining: - description: The number of remaining requests in the current period + $ref: '#/components/schemas/ListExternalStorageResponse' + description: Successful response + "400": + content: + application/json: schema: - type: integer - X-RateLimit-Reset: - description: Timestamp when number of requests will be reset + $ref: '#/components/schemas/APIError' + description: Bad request + "429": + content: + application/json: schema: - type: integer - summary: Get Edges - /guest: + $ref: '#/components/schemas/APIError' + description: Too many requests + summary: List external storage + tags: + - Settings post: - description: |2+ - - operationId: CreateGuest + description: | + Creates new external storage + operationId: CreateExternalStorage requestBody: content: application/json: schema: - $ref: '#/components/schemas/CreateGuestRequest' + $ref: '#/components/schemas/CreateExternalStorageRequest' required: true responses: "201": content: application/json: schema: - $ref: '#/components/schemas/CreateGuestResponse' + $ref: '#/components/schemas/CreateExternalStorageResponse' description: Successful response "400": content: @@ -5780,36 +4074,104 @@ paths: schema: $ref: '#/components/schemas/APIError' description: Too many requests - headers: - X-RateLimit-Limit: - description: The number of allowed requests in the current period + summary: Create external storage + tags: + - Settings + /video/external_storage/{name}: + delete: + description: | + Deletes external storage + operationId: DeleteExternalStorage + parameters: + - in: path + name: name + required: true + schema: + type: string + writeOnly: true + x-stream-index: "002" + responses: + "200": + content: + application/json: schema: - type: integer - X-RateLimit-Remaining: - description: The number of remaining requests in the current period + $ref: '#/components/schemas/DeleteExternalStorageResponse' + description: Successful response + "400": + content: + application/json: schema: - type: integer - X-RateLimit-Reset: - description: Timestamp when number of requests will be reset + $ref: '#/components/schemas/APIError' + description: Bad request + "429": + content: + application/json: schema: - type: integer - summary: Create Guest - /video/connect: - get: - description: | - Establishes WebSocket connection for user to video + $ref: '#/components/schemas/APIError' + description: Too many requests + summary: Delete external storage + tags: + - Settings + put: + description: |2+ - Sends events: - - connection.ok - - health.check - operationId: VideoConnect + 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/WSAuthMessageRequest' + $ref: '#/components/schemas/UpdateExternalStorageRequest' + required: true + responses: + "201": + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateExternalStorageResponse' + 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 External Storage + tags: + - Server-side + /video/external_storage/{name}/check: + get: + description: |2+ + + 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/CheckExternalStorageResponse' + description: Successful response "400": content: application/json: @@ -5822,33 +4184,40 @@ paths: schema: $ref: '#/components/schemas/APIError' description: Too many requests - headers: - X-RateLimit-Limit: - description: The number of allowed requests in the current period + summary: Check External Storage + tags: + - Server-side + /video/guest: + post: + description: |2+ + + operationId: CreateGuest + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CreateGuestRequest' + required: true + responses: + "201": + content: + application/json: schema: - type: integer - X-RateLimit-Remaining: - description: The number of remaining requests in the current period + $ref: '#/components/schemas/CreateGuestResponse' + description: Successful response + "400": + content: + application/json: schema: - type: integer - X-RateLimit-Reset: - description: Timestamp when number of requests will be reset + $ref: '#/components/schemas/APIError' + description: Bad request + "429": + content: + application/json: 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' + $ref: '#/components/schemas/APIError' + description: Too many requests + summary: Create Guest security: - JWT: [] api_key: [] @@ -5856,5 +4225,5 @@ security: - api_key: [] stream-auth-type: [] servers: -- description: Video Production API - url: https://video.stream-io-api.com +- description: Stream API + url: https://stream-io-api.com