Package-level declarations

Types

Link copied to clipboard
data class AcceptCallResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class APIError(@Json(name = "StatusCode") val statusCode: Int, @Json(name = "code") val code: Int, @Json(name = "details") val details: List<Int>, @Json(name = "duration") val duration: String, @Json(name = "message") val message: String, @Json(name = "more_info") val moreInfo: String, @Json(name = "exception_fields") val exceptionFields: Map<String, String>? = null)
Link copied to clipboard
data class AudioSettingsRequest(@Json(name = "default_device") val defaultDevice: AudioSettingsRequest.DefaultDevice, @Json(name = "access_request_enabled") val accessRequestEnabled: Boolean? = null, @Json(name = "mic_default_on") val micDefaultOn: Boolean? = null, @Json(name = "noise_cancellation") val noiseCancellation: NoiseCancellationSettings? = null, @Json(name = "opus_dtx_enabled") val opusDtxEnabled: Boolean? = null, @Json(name = "redundant_coding_enabled") val redundantCodingEnabled: Boolean? = null, @Json(name = "speaker_default_on") val speakerDefaultOn: Boolean? = null)
Link copied to clipboard
data class AudioSettingsResponse(@Json(name = "access_request_enabled") val accessRequestEnabled: Boolean, @Json(name = "default_device") val defaultDevice: AudioSettingsResponse.DefaultDevice, @Json(name = "mic_default_on") val micDefaultOn: Boolean, @Json(name = "opus_dtx_enabled") val opusDtxEnabled: Boolean, @Json(name = "redundant_coding_enabled") val redundantCodingEnabled: Boolean, @Json(name = "speaker_default_on") val speakerDefaultOn: Boolean, @Json(name = "noise_cancellation") val noiseCancellation: NoiseCancellationSettings? = null)
Link copied to clipboard
data class BackstageSettingsRequest(@Json(name = "enabled") val enabled: Boolean? = null)
Link copied to clipboard
data class BackstageSettingsResponse(@Json(name = "enabled") val enabled: Boolean)
Link copied to clipboard
data class BlockedUserEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.blocked_user", @Json(name = "user") val user: UserResponse, @Json(name = "blocked_by_user") val blockedByUser: UserResponse? = null) : VideoEvent, WSCallEvent

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. If the user is the current user, the client should leave the call screen as well

Link copied to clipboard
data class BlockListOptions(@Json(name = "behavior") val behavior: BlockListOptions.Behavior, @Json(name = "blocklist") val blocklist: String)
Link copied to clipboard
data class BlockUserRequest(@Json(name = "user_id") val userId: String)
Link copied to clipboard
data class BlockUserResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class BroadcastSettingsRequest(@Json(name = "enabled") val enabled: Boolean? = null, @Json(name = "hls") val hls: HLSSettingsRequest? = null)
Link copied to clipboard
data class BroadcastSettingsResponse(@Json(name = "enabled") val enabled: Boolean, @Json(name = "hls") val hls: HLSSettingsResponse)
Link copied to clipboard
data class CallAcceptedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.accepted", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

This event is sent when a user accepts a notification to join a call.

Link copied to clipboard
data class CallClosedCaption(@Json(name = "end_time") val endTime: OffsetDateTime, @Json(name = "speaker_id") val speakerId: String, @Json(name = "start_time") val startTime: OffsetDateTime, @Json(name = "text") val text: String)

CallClosedCaption represents a closed caption of a call.

Link copied to clipboard
data class CallCreatedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "type") val type: String = "call.created") : VideoEvent, WSCallEvent

This event is sent when a call is created. Clients receiving this event should check if the ringing field is set to true and if so, show the call screen

Link copied to clipboard
data class CallDeletedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.deleted") : VideoEvent, WSCallEvent

This event is sent when a call is deleted. Clients receiving this event should leave the call screen

Link copied to clipboard
data class CallEndedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.ended", @Json(name = "user") val user: UserResponse? = null) : VideoEvent, WSCallEvent

This event is sent when a call is mark as ended for all its participants. Clients receiving this event should leave the call screen

Link copied to clipboard
data class CallEvent(@Json(name = "description") val description: String, @Json(name = "end_timestamp") val endTimestamp: Int, @Json(name = "severity") val severity: Int, @Json(name = "timestamp") val timestamp: Int, @Json(name = "type") val type: String)
Link copied to clipboard
data class CallHLSBroadcastingFailedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.hls_broadcasting_failed") : VideoEvent, WSCallEvent

This event is sent when HLS broadcasting has failed

Link copied to clipboard
data class CallHLSBroadcastingStartedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "hls_playlist_url") val hlsPlaylistUrl: String, @Json(name = "type") val type: String = "call.hls_broadcasting_started") : VideoEvent, WSCallEvent

This event is sent when HLS broadcasting has started

Link copied to clipboard
data class CallHLSBroadcastingStoppedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.hls_broadcasting_stopped") : VideoEvent, WSCallEvent

This event is sent when HLS broadcasting has stopped

Link copied to clipboard
data class CallIngressResponse(@Json(name = "rtmp") val rtmp: RTMPIngress)
Link copied to clipboard
data class CallLiveStartedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.live_started") : VideoEvent, WSCallEvent

This event is sent when a call is started. Clients receiving this event should start the call.

Link copied to clipboard
data class CallMemberAddedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "type") val type: String = "call.member_added") : VideoEvent, WSCallEvent

This event is sent when one or more members are added to a call

Link copied to clipboard
data class CallMemberRemovedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<String>, @Json(name = "type") val type: String = "call.member_removed") : VideoEvent, WSCallEvent

This event is sent when one or more members are removed from a call

Link copied to clipboard
data class CallMemberUpdatedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "type") val type: String = "call.member_updated") : VideoEvent, WSCallEvent

This event is sent when one or more members are updated

Link copied to clipboard
data class CallMemberUpdatedPermissionEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "capabilities_by_role") val capabilitiesByRole: Map<String, List<String>>, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "type") val type: String = "call.member_updated_permission") : VideoEvent, WSCallEvent

This event is sent when one or more members get its role updated

Link copied to clipboard
data class CallMissedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.missed", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

This event is sent to call members who did not accept/reject/join the call to notify they missed the call

Link copied to clipboard
data class CallNotificationEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.notification", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

This event is sent to all call members to notify they are getting called

Link copied to clipboard
data class CallParticipantResponse(@Json(name = "joined_at") val joinedAt: OffsetDateTime, @Json(name = "role") val role: String, @Json(name = "user") val user: UserResponse, @Json(name = "user_session_id") val userSessionId: String)
Link copied to clipboard
data class CallReactionEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "reaction") val reaction: ReactionResponse, @Json(name = "type") val type: String = "call.reaction_new") : VideoEvent, WSCallEvent

This event is sent when a reaction is sent in a call, clients should use this to show the reaction in the call screen

Link copied to clipboard
data class CallRecording(@Json(name = "end_time") val endTime: OffsetDateTime, @Json(name = "filename") val filename: String, @Json(name = "start_time") val startTime: OffsetDateTime, @Json(name = "url") val url: String)

CallRecording represents a recording of a call.

Link copied to clipboard
data class CallRecordingFailedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.recording_failed") : VideoEvent, WSCallEvent

This event is sent when call recording has failed

Link copied to clipboard
data class CallRecordingReadyEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "call_recording") val callRecording: CallRecording, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.recording_ready") : VideoEvent, WSCallEvent

This event is sent when call recording is ready

Link copied to clipboard
data class CallRecordingStartedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.recording_started") : VideoEvent, WSCallEvent

This event is sent when call recording has started

Link copied to clipboard
data class CallRecordingStoppedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.recording_stopped") : VideoEvent, WSCallEvent

This event is sent when call recording has stopped

Link copied to clipboard
data class CallRejectedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.rejected", @Json(name = "user") val user: UserResponse, @Json(name = "reason") val reason: String? = null) : VideoEvent, WSCallEvent

This event is sent when a user rejects a notification to join a call.

Link copied to clipboard
data class CallRequest(@Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "members") val members: List<MemberRequest>? = null, @Json(name = "settings_override") val settingsOverride: CallSettingsRequest? = null, @Json(name = "starts_at") val startsAt: OffsetDateTime? = null, @Json(name = "team") val team: String? = null)
Link copied to clipboard
data class CallResponse(@Json(name = "backstage") val backstage: Boolean, @Json(name = "blocked_user_ids") val blockedUserIds: List<String>, @Json(name = "cid") val cid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "created_by") val createdBy: UserResponse, @Json(name = "current_session_id") val currentSessionId: String, @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(), @Json(name = "egress") val egress: EgressResponse, @Json(name = "id") val id: String, @Json(name = "ingress") val ingress: CallIngressResponse, @Json(name = "recording") val recording: Boolean, @Json(name = "settings") val settings: CallSettingsResponse, @Json(name = "transcribing") val transcribing: Boolean, @Json(name = "type") val type: String, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "ended_at") val endedAt: OffsetDateTime? = null, @Json(name = "session") val session: CallSessionResponse? = null, @Json(name = "starts_at") val startsAt: OffsetDateTime? = null, @Json(name = "team") val team: String? = null, @Json(name = "thumbnails") val thumbnails: ThumbnailResponse? = null)

Represents a call

Link copied to clipboard
data class CallRingEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.ring", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

This event is sent to all call members to notify they are getting called

Link copied to clipboard
data class CallSessionEndedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.session_ended") : VideoEvent, WSCallEvent

This event is sent when a call session ends

Link copied to clipboard
data class CallSessionParticipantCountsUpdatedEvent(@Json(name = "anonymous_participant_count") val anonymousParticipantCount: Int, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "participants_count_by_role") val participantsCountByRole: Map<String, Int>, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.session_participant_count_updated") : VideoEvent, WSCallEvent

This event is sent when the participant counts in a call session are updated

Link copied to clipboard
data class CallSessionParticipantJoinedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "participant") val participant: CallParticipantResponse, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.session_participant_joined") : VideoEvent, WSCallEvent

This event is sent when a participant joins a call session

Link copied to clipboard
data class CallSessionParticipantLeftEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "participant") val participant: CallParticipantResponse, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.session_participant_left") : VideoEvent, WSCallEvent

This event is sent when a participant leaves a call session

Link copied to clipboard
data class CallSessionResponse(@Json(name = "accepted_by") val acceptedBy: Map<String, OffsetDateTime>, @Json(name = "anonymous_participant_count") val anonymousParticipantCount: Int, @Json(name = "id") val id: String, @Json(name = "missed_by") val missedBy: Map<String, OffsetDateTime>, @Json(name = "participants") val participants: List<CallParticipantResponse>, @Json(name = "participants_count_by_role") val participantsCountByRole: Map<String, Int>, @Json(name = "rejected_by") val rejectedBy: Map<String, OffsetDateTime>, @Json(name = "ended_at") val endedAt: OffsetDateTime? = null, @Json(name = "live_ended_at") val liveEndedAt: OffsetDateTime? = null, @Json(name = "live_started_at") val liveStartedAt: OffsetDateTime? = null, @Json(name = "started_at") val startedAt: OffsetDateTime? = null, @Json(name = "timer_ends_at") val timerEndsAt: OffsetDateTime? = null)
Link copied to clipboard
data class CallSessionStartedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "session_id") val sessionId: String, @Json(name = "type") val type: String = "call.session_started") : VideoEvent, WSCallEvent

This event is sent when a call session starts

Link copied to clipboard
data class CallSettingsRequest(@Json(name = "audio") val audio: AudioSettingsRequest? = null, @Json(name = "backstage") val backstage: BackstageSettingsRequest? = null, @Json(name = "broadcasting") val broadcasting: BroadcastSettingsRequest? = null, @Json(name = "geofencing") val geofencing: GeofenceSettingsRequest? = null, @Json(name = "limits") val limits: LimitsSettingsRequest? = null, @Json(name = "recording") val recording: RecordSettingsRequest? = null, @Json(name = "ring") val ring: RingSettingsRequest? = null, @Json(name = "screensharing") val screensharing: ScreensharingSettingsRequest? = null, @Json(name = "thumbnails") val thumbnails: ThumbnailsSettingsRequest? = null, @Json(name = "transcription") val transcription: TranscriptionSettingsRequest? = null, @Json(name = "video") val video: VideoSettingsRequest? = null)
Link copied to clipboard
data class CallSettingsResponse(@Json(name = "audio") val audio: AudioSettingsResponse, @Json(name = "backstage") val backstage: BackstageSettingsResponse, @Json(name = "broadcasting") val broadcasting: BroadcastSettingsResponse, @Json(name = "geofencing") val geofencing: GeofenceSettingsResponse, @Json(name = "limits") val limits: LimitsSettingsResponse, @Json(name = "recording") val recording: RecordSettingsResponse, @Json(name = "ring") val ring: RingSettingsResponse, @Json(name = "screensharing") val screensharing: ScreensharingSettingsResponse, @Json(name = "thumbnails") val thumbnails: ThumbnailsSettingsResponse, @Json(name = "transcription") val transcription: TranscriptionSettingsResponse, @Json(name = "video") val video: VideoSettingsResponse)
Link copied to clipboard
data class CallStateResponseFields(@Json(name = "call") val call: CallResponse, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>, @Json(name = "membership") val membership: MemberResponse? = null)
Link copied to clipboard
data class CallStatsReportSummaryResponse(@Json(name = "call_cid") val callCid: String, @Json(name = "call_duration_seconds") val callDurationSeconds: Int, @Json(name = "call_session_id") val callSessionId: String, @Json(name = "call_status") val callStatus: String, @Json(name = "first_stats_time") val firstStatsTime: OffsetDateTime, @Json(name = "created_at") val createdAt: OffsetDateTime? = null, @Json(name = "quality_score") val qualityScore: Int? = null)
Link copied to clipboard
data class CallTimeline(@Json(name = "events") val events: List<CallEvent>)
Link copied to clipboard
data class CallTranscription(@Json(name = "end_time") val endTime: OffsetDateTime, @Json(name = "filename") val filename: String, @Json(name = "start_time") val startTime: OffsetDateTime, @Json(name = "url") val url: String)

CallTranscription represents a transcription of a call.

Link copied to clipboard
data class CallTranscriptionFailedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.transcription_failed") : VideoEvent, WSCallEvent

This event is sent when call transcription has failed

Link copied to clipboard
data class CallTranscriptionReadyEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "call_transcription") val callTranscription: CallTranscription, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.transcription_ready") : VideoEvent, WSCallEvent

This event is sent when call transcription is ready

Link copied to clipboard
data class CallTranscriptionStartedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.transcription_started") : VideoEvent, WSCallEvent

This event is sent when call transcription has started

Link copied to clipboard
data class CallTranscriptionStoppedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.transcription_stopped") : VideoEvent, WSCallEvent

This event is sent when call transcription has stopped

Link copied to clipboard
data class CallUpdatedEvent(@Json(name = "call") val call: CallResponse, @Json(name = "call_cid") val callCid: String, @Json(name = "capabilities_by_role") val capabilitiesByRole: Map<String, List<String>>, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.updated") : VideoEvent, WSCallEvent

This event is sent when a call is updated, clients should use this update the local state of the call. This event also contains the capabilities by role for the call, clients should update the own_capability for the current.

Link copied to clipboard
data class CallUserMutedEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "from_user_id") val fromUserId: String, @Json(name = "muted_user_ids") val mutedUserIds: List<String>, @Json(name = "type") val type: String = "call.user_muted") : VideoEvent, WSCallEvent

This event is sent when a call member is muted

Link copied to clipboard
data class ChannelConfigWithInfo(@Json(name = "automod") val automod: ChannelConfigWithInfo.Automod, @Json(name = "automod_behavior") val automodBehavior: ChannelConfigWithInfo.AutomodBehavior, @Json(name = "commands") val commands: List<Command>, @Json(name = "connect_events") val connectEvents: Boolean, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "custom_events") val customEvents: Boolean, @Json(name = "mark_messages_pending") val markMessagesPending: Boolean, @Json(name = "max_message_length") val maxMessageLength: Int, @Json(name = "mutes") val mutes: Boolean, @Json(name = "name") val name: String, @Json(name = "polls") val polls: Boolean, @Json(name = "push_notifications") val pushNotifications: Boolean, @Json(name = "quotes") val quotes: Boolean, @Json(name = "reactions") val reactions: Boolean, @Json(name = "read_events") val readEvents: Boolean, @Json(name = "reminders") val reminders: Boolean, @Json(name = "replies") val replies: Boolean, @Json(name = "search") val search: Boolean, @Json(name = "typing_events") val typingEvents: Boolean, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "uploads") val uploads: Boolean, @Json(name = "url_enrichment") val urlEnrichment: Boolean, @Json(name = "allowed_flag_reasons") val allowedFlagReasons: List<String>? = null, @Json(name = "automod_thresholds") val automodThresholds: Thresholds? = null, @Json(name = "blocklist") val blocklist: String? = null, @Json(name = "blocklist_behavior") val blocklistBehavior: ChannelConfigWithInfo.BlocklistBehavior? = null, @Json(name = "blocklists") val blocklists: List<BlockListOptions>? = null, @Json(name = "grants") val grants: Map<String, List<String>>? = null)
Link copied to clipboard
data class ChannelMember(@Json(name = "banned") val banned: Boolean, @Json(name = "channel_role") val channelRole: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "notifications_muted") val notificationsMuted: Boolean, @Json(name = "shadow_banned") val shadowBanned: Boolean, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "ban_expires") val banExpires: OffsetDateTime? = null, @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null, @Json(name = "invite_accepted_at") val inviteAcceptedAt: OffsetDateTime? = null, @Json(name = "invite_rejected_at") val inviteRejectedAt: OffsetDateTime? = null, @Json(name = "invited") val invited: Boolean? = null, @Json(name = "is_moderator") val isModerator: Boolean? = null, @Json(name = "status") val status: String? = null, @Json(name = "user") val user: UserObject? = null, @Json(name = "user_id") val userId: String? = null)
Link copied to clipboard
data class ChannelMute(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "channel") val channel: ChannelResponse? = null, @Json(name = "expires") val expires: OffsetDateTime? = null, @Json(name = "user") val user: UserObject? = null)
Link copied to clipboard
data class ChannelResponse(@Json(name = "cid") val cid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "custom") val custom: Map<String, Any?>, @Json(name = "disabled") val disabled: Boolean, @Json(name = "frozen") val frozen: Boolean, @Json(name = "id") val id: String, @Json(name = "type") val type: String, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "auto_translation_enabled") val autoTranslationEnabled: Boolean? = null, @Json(name = "auto_translation_language") val autoTranslationLanguage: String? = null, @Json(name = "blocked") val blocked: Boolean? = null, @Json(name = "config") val config: ChannelConfigWithInfo? = null, @Json(name = "cooldown") val cooldown: Int? = null, @Json(name = "created_by") val createdBy: UserObject? = null, @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null, @Json(name = "hidden") val hidden: Boolean? = null, @Json(name = "hide_messages_before") val hideMessagesBefore: OffsetDateTime? = null, @Json(name = "last_message_at") val lastMessageAt: OffsetDateTime? = null, @Json(name = "member_count") val memberCount: Int? = null, @Json(name = "members") val members: List<ChannelMember>? = null, @Json(name = "mute_expires_at") val muteExpiresAt: OffsetDateTime? = null, @Json(name = "muted") val muted: Boolean? = null, @Json(name = "own_capabilities") val ownCapabilities: List<String>? = null, @Json(name = "team") val team: String? = null, @Json(name = "truncated_at") val truncatedAt: OffsetDateTime? = null, @Json(name = "truncated_by") val truncatedBy: UserObject? = null)

Represents channel in chat

Link copied to clipboard
data class ClosedCaptionEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "closed_caption") val closedCaption: CallClosedCaption, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.closed_caption") : VideoEvent, WSCallEvent

This event is sent when closed captions are being sent in a call, clients should use this to show the closed captions in the call screen

Link copied to clipboard
data class CollectUserFeedbackRequest(@Json(name = "rating") val rating: Int, @Json(name = "sdk") val sdk: String, @Json(name = "sdk_version") val sdkVersion: String, @Json(name = "user_session_id") val userSessionId: String, @Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "reason") val reason: String? = null)
Link copied to clipboard
data class CollectUserFeedbackResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class Command(@Json(name = "args") val args: String, @Json(name = "description") val description: String, @Json(name = "name") val name: String, @Json(name = "set") val set: String, @Json(name = "created_at") val createdAt: OffsetDateTime? = null, @Json(name = "updated_at") val updatedAt: OffsetDateTime? = null)

Represents custom chat command

Link copied to clipboard
data class ConnectedEvent(@Json(name = "connection_id") val connectionId: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "me") val me: OwnUserResponse, @Json(name = "type") val type: String = "connection.ok") : VideoEvent, WSClientEvent

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

Link copied to clipboard
data class ConnectionErrorEvent(@Json(name = "connection_id") val connectionId: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "error") val error: APIError?, @Json(name = "type") val type: String = "connection.error") : VideoEvent, WSClientEvent

This event is sent when the WS connection fails

Link copied to clipboard
data class ConnectUserDetailsRequest(@Json(name = "id") val id: String, @Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "image") val image: String? = null, @Json(name = "invisible") val invisible: Boolean? = null, @Json(name = "language") val language: String? = null, @Json(name = "name") val name: String? = null, @Json(name = "privacy_settings") val privacySettings: PrivacySettings? = null, @Json(name = "push_notifications") val pushNotifications: PushNotificationSettingsInput? = null)
Link copied to clipboard
data class Coordinates(@Json(name = "latitude") val latitude: Float, @Json(name = "longitude") val longitude: Float)
Link copied to clipboard
data class CreateDeviceRequest(@Json(name = "id") val id: String? = null, @Json(name = "push_provider") val pushProvider: CreateDeviceRequest.PushProvider? = null, @Json(name = "push_provider_name") val pushProviderName: String? = null, @Json(name = "user") val user: UserRequest? = null, @Json(name = "user_id") val userId: String? = null, @Json(name = "voip_token") val voipToken: Boolean? = null)
Link copied to clipboard
data class CreateGuestRequest(@Json(name = "user") val user: UserRequest)
Link copied to clipboard
data class CreateGuestResponse(@Json(name = "access_token") val accessToken: String, @Json(name = "duration") val duration: String, @Json(name = "user") val user: UserResponse)
Link copied to clipboard
data class Credentials(@Json(name = "ice_servers") val iceServers: List<ICEServer>, @Json(name = "server") val server: SFUResponse, @Json(name = "token") val token: String)
Link copied to clipboard
data class CustomVideoEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "custom") val custom: Map<String, Any?>, @Json(name = "type") val type: String = "custom", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

A custom event, this event is used to send custom events to other participants in the call.

Link copied to clipboard
data class DeleteRecordingResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class DeleteTranscriptionResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class Device(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "id") val id: String, @Json(name = "push_provider") val pushProvider: String, @Json(name = "disabled") val disabled: Boolean? = null, @Json(name = "disabled_reason") val disabledReason: String? = null, @Json(name = "push_provider_name") val pushProviderName: String? = null, @Json(name = "voip") val voip: Boolean? = null)
Link copied to clipboard
data class EdgeResponse(@Json(name = "continent_code") val continentCode: String, @Json(name = "country_iso_code") val countryIsoCode: String, @Json(name = "green") val green: Int, @Json(name = "id") val id: String, @Json(name = "latency_test_url") val latencyTestUrl: String, @Json(name = "latitude") val latitude: Float, @Json(name = "longitude") val longitude: Float, @Json(name = "red") val red: Int, @Json(name = "subdivision_iso_code") val subdivisionIsoCode: String, @Json(name = "yellow") val yellow: Int)
Link copied to clipboard
data class EgressHLSResponse(@Json(name = "playlist_url") val playlistUrl: String)
Link copied to clipboard
data class EgressResponse(@Json(name = "broadcasting") val broadcasting: Boolean, @Json(name = "rtmps") val rtmps: List<EgressRTMPResponse>, @Json(name = "hls") val hls: EgressHLSResponse? = null)
Link copied to clipboard
data class EgressRTMPResponse(@Json(name = "name") val name: String, @Json(name = "stream_key") val streamKey: String, @Json(name = "url") val url: String)
Link copied to clipboard
data class EndCallResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class GeofenceSettingsRequest(@Json(name = "names") val names: List<String>? = null)
Link copied to clipboard
data class GeofenceSettingsResponse(@Json(name = "names") val names: List<String>)
Link copied to clipboard
data class GeolocationResult(@Json(name = "accuracy_radius") val accuracyRadius: Int, @Json(name = "city") val city: String, @Json(name = "continent") val continent: String, @Json(name = "continent_code") val continentCode: String, @Json(name = "country") val country: String, @Json(name = "country_iso_code") val countryIsoCode: String, @Json(name = "latitude") val latitude: Float, @Json(name = "longitude") val longitude: Float, @Json(name = "subdivision") val subdivision: String, @Json(name = "subdivision_iso_code") val subdivisionIsoCode: String)
Link copied to clipboard
data class GetCallResponse(@Json(name = "call") val call: CallResponse, @Json(name = "duration") val duration: String, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>, @Json(name = "membership") val membership: MemberResponse? = null)
Link copied to clipboard
data class GetCallStatsResponse(@Json(name = "call_duration_seconds") val callDurationSeconds: Int, @Json(name = "call_status") val callStatus: String, @Json(name = "duration") val duration: String, @Json(name = "max_freezes_duration_seconds") val maxFreezesDurationSeconds: Int, @Json(name = "max_participants") val maxParticipants: Int, @Json(name = "max_total_quality_limitation_duration_seconds") val maxTotalQualityLimitationDurationSeconds: Int, @Json(name = "participant_report") val participantReport: List<UserStats>, @Json(name = "publishing_participants") val publishingParticipants: Int, @Json(name = "quality_score") val qualityScore: Int, @Json(name = "sfu_count") val sfuCount: Int, @Json(name = "sfus") val sfus: List<SFULocationResponse>, @Json(name = "call_timeline") val callTimeline: CallTimeline? = null, @Json(name = "jitter") val jitter: Stats? = null, @Json(name = "latency") val latency: Stats? = null)
Link copied to clipboard
data class GetEdgesResponse(@Json(name = "duration") val duration: String, @Json(name = "edges") val edges: List<EdgeResponse>)
Link copied to clipboard
data class GetOrCreateCallRequest(@Json(name = "data") val data: CallRequest? = null, @Json(name = "members_limit") val membersLimit: Int? = null, @Json(name = "notify") val notify: Boolean? = null, @Json(name = "ring") val ring: Boolean? = null)
Link copied to clipboard
data class GetOrCreateCallResponse(@Json(name = "call") val call: CallResponse, @Json(name = "created") val created: Boolean, @Json(name = "duration") val duration: String, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>, @Json(name = "membership") val membership: MemberResponse? = null)
Link copied to clipboard
data class GoLiveRequest(@Json(name = "recording_storage_name") val recordingStorageName: String? = null, @Json(name = "start_hls") val startHls: Boolean? = null, @Json(name = "start_recording") val startRecording: Boolean? = null, @Json(name = "start_transcription") val startTranscription: Boolean? = null, @Json(name = "transcription_storage_name") val transcriptionStorageName: String? = null)
Link copied to clipboard
data class GoLiveResponse(@Json(name = "call") val call: CallResponse, @Json(name = "duration") val duration: String)
Link copied to clipboard
data class HealthCheckEvent(@Json(name = "connection_id") val connectionId: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "health.check") : VideoEvent, WSClientEvent
Link copied to clipboard
data class HLSSettingsRequest(@Json(name = "quality_tracks") val qualityTracks: List<String>, @Json(name = "auto_on") val autoOn: Boolean? = null, @Json(name = "enabled") val enabled: Boolean? = null)
Link copied to clipboard
data class HLSSettingsResponse(@Json(name = "auto_on") val autoOn: Boolean, @Json(name = "enabled") val enabled: Boolean, @Json(name = "quality_tracks") val qualityTracks: List<String>)
Link copied to clipboard
data class ICEServer(@Json(name = "password") val password: String, @Json(name = "urls") val urls: List<String>, @Json(name = "username") val username: String)
Link copied to clipboard
data class JoinCallRequest(@Json(name = "location") val location: String, @Json(name = "create") val create: Boolean? = null, @Json(name = "data") val data: CallRequest? = null, @Json(name = "members_limit") val membersLimit: Int? = null, @Json(name = "migrating_from") val migratingFrom: String? = null, @Json(name = "notify") val notify: Boolean? = null, @Json(name = "ring") val ring: Boolean? = null)
Link copied to clipboard
data class JoinCallResponse(@Json(name = "call") val call: CallResponse, @Json(name = "created") val created: Boolean, @Json(name = "credentials") val credentials: Credentials, @Json(name = "duration") val duration: String, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>, @Json(name = "stats_options") val statsOptions: StatsOptions, @Json(name = "membership") val membership: MemberResponse? = null)
Link copied to clipboard
data class LabelThresholds(@Json(name = "block") val block: Float? = null, @Json(name = "flag") val flag: Float? = null)
Link copied to clipboard
data class LimitsSettingsRequest(@Json(name = "max_duration_seconds") val maxDurationSeconds: Int? = null, @Json(name = "max_participants") val maxParticipants: Int? = null)
Link copied to clipboard
data class LimitsSettingsResponse(@Json(name = "max_duration_seconds") val maxDurationSeconds: Int? = null, @Json(name = "max_participants") val maxParticipants: Int? = null)
Link copied to clipboard
data class ListDevicesResponse(@Json(name = "devices") val devices: List<Device>, @Json(name = "duration") val duration: String)
Link copied to clipboard
data class ListRecordingsResponse(@Json(name = "duration") val duration: String, @Json(name = "recordings") val recordings: List<CallRecording>)
Link copied to clipboard
data class ListTranscriptionsResponse(@Json(name = "duration") val duration: String, @Json(name = "transcriptions") val transcriptions: List<CallTranscription>)
Link copied to clipboard
data class Location(@Json(name = "continent_code") val continentCode: String, @Json(name = "country_iso_code") val countryIsoCode: String, @Json(name = "subdivision_iso_code") val subdivisionIsoCode: String)
Link copied to clipboard
data class MediaPubSubHint(@Json(name = "audio_published") val audioPublished: Boolean, @Json(name = "audio_subscribed") val audioSubscribed: Boolean, @Json(name = "video_published") val videoPublished: Boolean, @Json(name = "video_subscribed") val videoSubscribed: Boolean)
Link copied to clipboard
data class MemberRequest(@Json(name = "user_id") val userId: String, @Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "role") val role: String? = null)
Link copied to clipboard
data class MemberResponse(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(), @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "user") val user: UserResponse, @Json(name = "user_id") val userId: String, @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null, @Json(name = "role") val role: String? = null)
Link copied to clipboard
data class MOSStats(@Json(name = "average_score") val averageScore: Float, @Json(name = "histogram_duration_seconds") val histogramDurationSeconds: List<Float>, @Json(name = "max_score") val maxScore: Float, @Json(name = "min_score") val minScore: Float)
Link copied to clipboard
data class MuteUsersRequest(@Json(name = "audio") val audio: Boolean? = null, @Json(name = "mute_all_users") val muteAllUsers: Boolean? = null, @Json(name = "screenshare") val screenshare: Boolean? = null, @Json(name = "screenshare_audio") val screenshareAudio: Boolean? = null, @Json(name = "user_ids") val userIds: List<String>? = null, @Json(name = "video") val video: Boolean? = null)
Link copied to clipboard
data class MuteUsersResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class NoiseCancellationSettings(@Json(name = "mode") val mode: NoiseCancellationSettings.Mode)
Link copied to clipboard
data class NullBool(@Json(name = "HasValue") val hasValue: Boolean? = null, @Json(name = "Value") val value: Boolean? = null)
Link copied to clipboard
data class NullTime(@Json(name = "HasValue") val hasValue: Boolean? = null, @Json(name = "Value") val value: OffsetDateTime? = null)
Link copied to clipboard
sealed class OwnCapability

All possibility of string to use

Link copied to clipboard
data class OwnUser(@Json(name = "banned") val banned: Boolean, @Json(name = "channel_mutes") val channelMutes: List<ChannelMute>, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "custom") val custom: Map<String, Any?>, @Json(name = "devices") val devices: List<Device>, @Json(name = "id") val id: String, @Json(name = "language") val language: String, @Json(name = "mutes") val mutes: List<UserMute>, @Json(name = "online") val online: Boolean, @Json(name = "role") val role: String, @Json(name = "total_unread_count") val totalUnreadCount: Int, @Json(name = "unread_channels") val unreadChannels: Int, @Json(name = "unread_count") val unreadCount: Int, @Json(name = "unread_threads") val unreadThreads: Int, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "blocked_user_ids") val blockedUserIds: List<String>? = null, @Json(name = "deactivated_at") val deactivatedAt: OffsetDateTime? = null, @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null, @Json(name = "invisible") val invisible: Boolean? = null, @Json(name = "last_active") val lastActive: OffsetDateTime? = null, @Json(name = "latest_hidden_channels") val latestHiddenChannels: List<String>? = null, @Json(name = "privacy_settings") val privacySettings: PrivacySettings? = null, @Json(name = "push_notifications") val pushNotifications: PushNotificationSettings? = null, @Json(name = "teams") val teams: List<String>? = null)
Link copied to clipboard
data class OwnUserResponse(@Json(name = "banned") val banned: Boolean, @Json(name = "channel_mutes") val channelMutes: List<ChannelMute>, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(), @Json(name = "devices") val devices: List<Device>, @Json(name = "id") val id: String, @Json(name = "invisible") val invisible: Boolean, @Json(name = "language") val language: String, @Json(name = "mutes") val mutes: List<UserMute>, @Json(name = "online") val online: Boolean, @Json(name = "role") val role: String, @Json(name = "teams") val teams: List<String>, @Json(name = "total_unread_count") val totalUnreadCount: Int, @Json(name = "unread_channels") val unreadChannels: Int, @Json(name = "unread_threads") val unreadThreads: Int, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "deactivated_at") val deactivatedAt: OffsetDateTime? = null, @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null, @Json(name = "image") val image: String? = null, @Json(name = "last_active") val lastActive: OffsetDateTime? = null, @Json(name = "latest_hidden_channels") val latestHiddenChannels: List<String>? = null, @Json(name = "name") val name: String? = null, @Json(name = "privacy_settings") val privacySettings: PrivacySettings? = null, @Json(name = "push_notifications") val pushNotifications: PushNotificationSettings? = null, @Json(name = "revoke_tokens_issued_before") val revokeTokensIssuedBefore: OffsetDateTime? = null)
Link copied to clipboard
data class PermissionRequestEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "permissions") val permissions: List<String>, @Json(name = "type") val type: String = "call.permission_request", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

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

Link copied to clipboard
data class PinRequest(@Json(name = "session_id") val sessionId: String, @Json(name = "user_id") val userId: String)
Link copied to clipboard
data class PinResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class PrivacySettings(@Json(name = "read_receipts") val readReceipts: ReadReceipts? = null, @Json(name = "typing_indicators") val typingIndicators: TypingIndicators? = null)
Link copied to clipboard
data class PublishedTrackInfo(@Json(name = "codec_mime_type") val codecMimeType: String? = null, @Json(name = "duration_seconds") val durationSeconds: Int? = null, @Json(name = "track_type") val trackType: String? = null)
Link copied to clipboard
data class PushNotificationSettings(@Json(name = "disabled") val disabled: Boolean? = null, @Json(name = "disabled_until") val disabledUntil: OffsetDateTime? = null)
Link copied to clipboard
data class PushNotificationSettingsInput(@Json(name = "disabled") val disabled: NullBool? = null, @Json(name = "disabled_until") val disabledUntil: NullTime? = null)
Link copied to clipboard
data class QueryCallMembersRequest(@Json(name = "id") val id: String, @Json(name = "type") val type: String, @Json(name = "filter_conditions") val filterConditions: Map<String, Any?>? = null, @Json(name = "limit") val limit: Int? = null, @Json(name = "next") val next: String? = null, @Json(name = "prev") val prev: String? = null, @Json(name = "sort") val sort: List<SortParam>? = null)
Link copied to clipboard
data class QueryCallMembersResponse(@Json(name = "duration") val duration: String, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "next") val next: String? = null, @Json(name = "prev") val prev: String? = null)
Link copied to clipboard
data class QueryCallsRequest(@Json(name = "filter_conditions") val filterConditions: Map<String, Any?>? = null, @Json(name = "limit") val limit: Int? = null, @Json(name = "next") val next: String? = null, @Json(name = "prev") val prev: String? = null, @Json(name = "sort") val sort: List<SortParam>? = null, @Json(name = "watch") val watch: Boolean? = null)
Link copied to clipboard
data class QueryCallsResponse(@Json(name = "calls") val calls: List<CallStateResponseFields>, @Json(name = "duration") val duration: String, @Json(name = "next") val next: String? = null, @Json(name = "prev") val prev: String? = null)
Link copied to clipboard
data class QueryCallStatsRequest(@Json(name = "filter_conditions") val filterConditions: Map<String, Any?>? = null, @Json(name = "limit") val limit: Int? = null, @Json(name = "next") val next: String? = null, @Json(name = "prev") val prev: String? = null, @Json(name = "sort") val sort: List<SortParam>? = null)
Link copied to clipboard
data class QueryCallStatsResponse(@Json(name = "duration") val duration: String, @Json(name = "reports") val reports: List<CallStatsReportSummaryResponse>, @Json(name = "next") val next: String? = null, @Json(name = "prev") val prev: String? = null)
Link copied to clipboard
data class ReactionResponse(@Json(name = "type") val type: String, @Json(name = "user") val user: UserResponse, @Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "emoji_code") val emojiCode: String? = null)
Link copied to clipboard
data class ReadReceipts(@Json(name = "enabled") val enabled: Boolean? = null)
Link copied to clipboard
data class RecordSettingsRequest(@Json(name = "mode") val mode: RecordSettingsRequest.Mode, @Json(name = "audio_only") val audioOnly: Boolean? = null, @Json(name = "quality") val quality: RecordSettingsRequest.Quality? = null)
Link copied to clipboard
data class RecordSettingsResponse(@Json(name = "audio_only") val audioOnly: Boolean, @Json(name = "mode") val mode: String, @Json(name = "quality") val quality: String)
Link copied to clipboard
data class RejectCallRequest(@Json(name = "reason") val reason: String? = null)
Link copied to clipboard
data class RejectCallResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class RequestPermissionRequest(@Json(name = "permissions") val permissions: List<String>)
Link copied to clipboard
data class RequestPermissionResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class Response(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class RingSettingsRequest(@Json(name = "auto_cancel_timeout_ms") val autoCancelTimeoutMs: Int, @Json(name = "incoming_call_timeout_ms") val incomingCallTimeoutMs: Int, @Json(name = "missed_call_timeout_ms") val missedCallTimeoutMs: Int? = null)
Link copied to clipboard
data class RingSettingsResponse(@Json(name = "auto_cancel_timeout_ms") val autoCancelTimeoutMs: Int, @Json(name = "incoming_call_timeout_ms") val incomingCallTimeoutMs: Int, @Json(name = "missed_call_timeout_ms") val missedCallTimeoutMs: Int)
Link copied to clipboard
data class RTMPIngress(@Json(name = "address") val address: String)

RTMP input settings

Link copied to clipboard
data class ScreensharingSettingsRequest(@Json(name = "access_request_enabled") val accessRequestEnabled: Boolean? = null, @Json(name = "enabled") val enabled: Boolean? = null, @Json(name = "target_resolution") val targetResolution: TargetResolution? = null)
Link copied to clipboard
data class ScreensharingSettingsResponse(@Json(name = "access_request_enabled") val accessRequestEnabled: Boolean, @Json(name = "enabled") val enabled: Boolean, @Json(name = "target_resolution") val targetResolution: TargetResolution? = null)
Link copied to clipboard
data class SendCallEventRequest(@Json(name = "custom") val custom: Map<String, Any?>? = null)
Link copied to clipboard
data class SendCallEventResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class SendReactionRequest(@Json(name = "type") val type: String, @Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "emoji_code") val emojiCode: String? = null)
Link copied to clipboard
data class SendReactionResponse(@Json(name = "duration") val duration: String, @Json(name = "reaction") val reaction: ReactionResponse)
Link copied to clipboard
data class SFULocationResponse(@Json(name = "coordinates") val coordinates: Coordinates, @Json(name = "datacenter") val datacenter: String, @Json(name = "id") val id: String, @Json(name = "location") val location: Location)
Link copied to clipboard
data class SFUResponse(@Json(name = "edge_name") val edgeName: String, @Json(name = "url") val url: String, @Json(name = "ws_endpoint") val wsEndpoint: String)
Link copied to clipboard
data class SortParam(@Json(name = "direction") val direction: Int? = null, @Json(name = "field") val field: String? = null)
Link copied to clipboard
data class StartHLSBroadcastingResponse(@Json(name = "duration") val duration: String, @Json(name = "playlist_url") val playlistUrl: String)
Link copied to clipboard
data class StartRecordingRequest(@Json(name = "recording_external_storage") val recordingExternalStorage: String? = null)
Link copied to clipboard
data class StartRecordingResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class StartTranscriptionRequest(@Json(name = "transcription_external_storage") val transcriptionExternalStorage: String? = null)
Link copied to clipboard
data class StartTranscriptionResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class Stats(@Json(name = "average_seconds") val averageSeconds: Float, @Json(name = "max_seconds") val maxSeconds: Float)
Link copied to clipboard
data class StatsOptions(@Json(name = "reporting_interval_ms") val reportingIntervalMs: Int)
Link copied to clipboard
data class StopHLSBroadcastingResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class StopLiveResponse(@Json(name = "call") val call: CallResponse, @Json(name = "duration") val duration: String)
Link copied to clipboard
data class StopRecordingResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class StopTranscriptionResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class Subsession(@Json(name = "ended_at") val endedAt: Int, @Json(name = "joined_at") val joinedAt: Int, @Json(name = "sfu_id") val sfuId: String, @Json(name = "pub_sub_hint") val pubSubHint: MediaPubSubHint? = null)
Link copied to clipboard
data class TargetResolution(@Json(name = "height") val height: Int, @Json(name = "width") val width: Int, @Json(name = "bitrate") val bitrate: Int? = null)
Link copied to clipboard
data class Thresholds(@Json(name = "explicit") val explicit: LabelThresholds? = null, @Json(name = "spam") val spam: LabelThresholds? = null, @Json(name = "toxic") val toxic: LabelThresholds? = null)

Sets thresholds for AI moderation

Link copied to clipboard
data class ThumbnailResponse(@Json(name = "image_url") val imageUrl: String)
Link copied to clipboard
data class ThumbnailsSettingsRequest(@Json(name = "enabled") val enabled: Boolean? = null)
Link copied to clipboard
data class ThumbnailsSettingsResponse(@Json(name = "enabled") val enabled: Boolean)
Link copied to clipboard
data class TranscriptionSettingsRequest(@Json(name = "mode") val mode: TranscriptionSettingsRequest.Mode, @Json(name = "closed_caption_mode") val closedCaptionMode: String? = null, @Json(name = "languages") val languages: List<String>? = null)
Link copied to clipboard
data class TranscriptionSettingsResponse(@Json(name = "closed_caption_mode") val closedCaptionMode: String, @Json(name = "languages") val languages: List<String>, @Json(name = "mode") val mode: TranscriptionSettingsResponse.Mode)
Link copied to clipboard
data class TypingIndicators(@Json(name = "enabled") val enabled: Boolean? = null)
Link copied to clipboard
data class UnblockedUserEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "call.unblocked_user", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

This event is sent when a user is unblocked on a call, this can be useful to notify the user that they can now join the call again

Link copied to clipboard
data class UnblockUserRequest(@Json(name = "user_id") val userId: String)
Link copied to clipboard
data class UnblockUserResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class UnpinRequest(@Json(name = "session_id") val sessionId: String, @Json(name = "user_id") val userId: String)
Link copied to clipboard
data class UnpinResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
Link copied to clipboard
data class UpdateCallMembersRequest(@Json(name = "remove_members") val removeMembers: List<String>? = null, @Json(name = "update_members") val updateMembers: List<MemberRequest>? = null)
Link copied to clipboard
data class UpdateCallMembersResponse(@Json(name = "duration") val duration: String, @Json(name = "members") val members: List<MemberResponse>)
Link copied to clipboard
data class UpdateCallRequest(@Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "settings_override") val settingsOverride: CallSettingsRequest? = null, @Json(name = "starts_at") val startsAt: OffsetDateTime? = null)
Link copied to clipboard
data class UpdateCallResponse(@Json(name = "call") val call: CallResponse, @Json(name = "duration") val duration: String, @Json(name = "members") val members: List<MemberResponse>, @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>, @Json(name = "membership") val membership: MemberResponse? = null)

Represents a call

Link copied to clipboard
data class UpdatedCallPermissionsEvent(@Json(name = "call_cid") val callCid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "own_capabilities") val ownCapabilities: List<OwnCapability>, @Json(name = "type") val type: String = "call.permissions_updated", @Json(name = "user") val user: UserResponse) : VideoEvent, WSCallEvent

This event is sent to notify about permission changes for a user, clients receiving this event should update their UI accordingly

Link copied to clipboard
data class UpdateUserPermissionsRequest(@Json(name = "user_id") val userId: String, @Json(name = "grant_permissions") val grantPermissions: List<String>? = null, @Json(name = "revoke_permissions") val revokePermissions: List<String>? = null)
Link copied to clipboard
data class UpdateUserPermissionsResponse(@Json(name = "duration") val duration: String)
Link copied to clipboard
data class UserBannedEvent(@Json(name = "channel_id") val channelId: String, @Json(name = "channel_type") val channelType: String, @Json(name = "cid") val cid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "created_by") val createdBy: UserObject, @Json(name = "shadow") val shadow: Boolean, @Json(name = "type") val type: String = "user.banned", @Json(name = "expiration") val expiration: OffsetDateTime? = null, @Json(name = "reason") val reason: String? = null, @Json(name = "team") val team: String? = null, @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
data class UserDeactivatedEvent(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "created_by") val createdBy: UserObject, @Json(name = "type") val type: String = "user.deactivated", @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
data class UserDeletedEvent(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "delete_conversation_channels") val deleteConversationChannels: Boolean, @Json(name = "hard_delete") val hardDelete: Boolean, @Json(name = "mark_messages_deleted") val markMessagesDeleted: Boolean, @Json(name = "type") val type: String = "user.deleted", @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
data class UserInfoResponse(@Json(name = "custom") val custom: Map<String, Any?>, @Json(name = "image") val image: String, @Json(name = "name") val name: String, @Json(name = "roles") val roles: List<String>)
Link copied to clipboard
data class UserMute(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "expires") val expires: OffsetDateTime? = null, @Json(name = "target") val target: UserObject? = null, @Json(name = "user") val user: UserObject? = null)
Link copied to clipboard
data class UserMutedEvent(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "user.muted", @Json(name = "target_user") val targetUser: String? = null, @Json(name = "target_users") val targetUsers: List<String>? = null, @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
data class UserObject(@Json(name = "banned") val banned: Boolean, @Json(name = "custom") val custom: Map<String, Any?>, @Json(name = "id") val id: String, @Json(name = "online") val online: Boolean, @Json(name = "role") val role: String, @Json(name = "ban_expires") val banExpires: OffsetDateTime? = null, @Json(name = "created_at") val createdAt: OffsetDateTime? = null, @Json(name = "deactivated_at") val deactivatedAt: OffsetDateTime? = null, @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null, @Json(name = "invisible") val invisible: Boolean? = null, @Json(name = "language") val language: String? = null, @Json(name = "last_active") val lastActive: OffsetDateTime? = null, @Json(name = "privacy_settings") val privacySettings: PrivacySettings? = null, @Json(name = "push_notifications") val pushNotifications: PushNotificationSettings? = null, @Json(name = "revoke_tokens_issued_before") val revokeTokensIssuedBefore: OffsetDateTime? = null, @Json(name = "teams") val teams: List<String>? = null, @Json(name = "updated_at") val updatedAt: OffsetDateTime? = null)

Represents chat user

Link copied to clipboard
data class UserPresenceChangedEvent(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "user.presence.changed", @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
data class UserReactivatedEvent(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "user.reactivated", @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
data class UserRequest(@Json(name = "id") val id: String, @Json(name = "custom") val custom: Map<String, Any?>? = null, @Json(name = "image") val image: String? = null, @Json(name = "invisible") val invisible: Boolean? = null, @Json(name = "language") val language: String? = null, @Json(name = "name") val name: String? = null, @Json(name = "privacy_settings") val privacySettings: PrivacySettings? = null, @Json(name = "push_notifications") val pushNotifications: PushNotificationSettingsInput? = null)
Link copied to clipboard
data class UserResponse(@Json(name = "banned") val banned: Boolean = false, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "custom") val custom: Map<String, Any?> = emptyMap(), @Json(name = "id") val id: String, @Json(name = "language") val language: String, @Json(name = "online") val online: Boolean, @Json(name = "role") val role: String, @Json(name = "teams") val teams: List<String>, @Json(name = "updated_at") val updatedAt: OffsetDateTime, @Json(name = "deactivated_at") val deactivatedAt: OffsetDateTime? = null, @Json(name = "deleted_at") val deletedAt: OffsetDateTime? = null, @Json(name = "image") val image: String? = null, @Json(name = "last_active") val lastActive: OffsetDateTime? = null, @Json(name = "name") val name: String? = null, @Json(name = "revoke_tokens_issued_before") val revokeTokensIssuedBefore: OffsetDateTime? = null)
Link copied to clipboard
data class UserSessionStats(@Json(name = "freeze_duration_seconds") val freezeDurationSeconds: Int, @Json(name = "max_freeze_fraction") val maxFreezeFraction: Float, @Json(name = "max_freezes_duration_seconds") val maxFreezesDurationSeconds: Int, @Json(name = "packet_loss_fraction") val packetLossFraction: Float, @Json(name = "publisher_packet_loss_fraction") val publisherPacketLossFraction: Float, @Json(name = "publishing_duration_seconds") val publishingDurationSeconds: Int, @Json(name = "quality_score") val qualityScore: Float, @Json(name = "receiving_duration_seconds") val receivingDurationSeconds: Int, @Json(name = "session_id") val sessionId: String, @Json(name = "total_pixels_in") val totalPixelsIn: Int, @Json(name = "total_pixels_out") val totalPixelsOut: Int, @Json(name = "browser") val browser: String? = null, @Json(name = "browser_version") val browserVersion: String? = null, @Json(name = "current_ip") val currentIp: String? = null, @Json(name = "current_sfu") val currentSfu: String? = null, @Json(name = "device_model") val deviceModel: String? = null, @Json(name = "device_version") val deviceVersion: String? = null, @Json(name = "distance_to_sfu_kilometers") val distanceToSfuKilometers: Float? = null, @Json(name = "geolocation") val geolocation: GeolocationResult? = null, @Json(name = "jitter") val jitter: Stats? = null, @Json(name = "latency") val latency: Stats? = null, @Json(name = "max_fir_per_second") val maxFirPerSecond: Float? = null, @Json(name = "max_freezes_per_second") val maxFreezesPerSecond: Float? = null, @Json(name = "max_nack_per_second") val maxNackPerSecond: Float? = null, @Json(name = "max_pli_per_second") val maxPliPerSecond: Float? = null, @Json(name = "max_publishing_video_quality") val maxPublishingVideoQuality: VideoQuality? = null, @Json(name = "max_receiving_video_quality") val maxReceivingVideoQuality: VideoQuality? = null, @Json(name = "os") val os: String? = null, @Json(name = "os_version") val osVersion: String? = null, @Json(name = "pub_sub_hints") val pubSubHints: MediaPubSubHint? = null, @Json(name = "published_tracks") val publishedTracks: List<PublishedTrackInfo>? = null, @Json(name = "publisher_audio_mos") val publisherAudioMos: MOSStats? = null, @Json(name = "publisher_jitter") val publisherJitter: Stats? = null, @Json(name = "publisher_latency") val publisherLatency: Stats? = null, @Json(name = "publisher_noise_cancellation_seconds") val publisherNoiseCancellationSeconds: Float? = null, @Json(name = "publisher_quality_limitation_fraction") val publisherQualityLimitationFraction: Float? = null, @Json(name = "publisher_video_quality_limitation_duration_seconds") val publisherVideoQualityLimitationDurationSeconds: Map<String, Float>? = null, @Json(name = "publishing_audio_codec") val publishingAudioCodec: String? = null, @Json(name = "publishing_video_codec") val publishingVideoCodec: String? = null, @Json(name = "receiving_audio_codec") val receivingAudioCodec: String? = null, @Json(name = "receiving_video_codec") val receivingVideoCodec: String? = null, @Json(name = "sdk") val sdk: String? = null, @Json(name = "sdk_version") val sdkVersion: String? = null, @Json(name = "subscriber_audio_mos") val subscriberAudioMos: MOSStats? = null, @Json(name = "subscriber_jitter") val subscriberJitter: Stats? = null, @Json(name = "subscriber_latency") val subscriberLatency: Stats? = null, @Json(name = "subscriber_video_quality_throttled_duration_seconds") val subscriberVideoQualityThrottledDurationSeconds: Float? = null, @Json(name = "subsessions") val subsessions: List<Subsession>? = null, @Json(name = "timeline") val timeline: CallTimeline? = null, @Json(name = "webrtc_version") val webrtcVersion: String? = null)
Link copied to clipboard
data class UserStats(@Json(name = "info") val info: UserInfoResponse, @Json(name = "min_event_ts") val minEventTs: Int, @Json(name = "session_stats") val sessionStats: List<UserSessionStats>, @Json(name = "rating") val rating: Int? = null)
Link copied to clipboard
data class UserUnbannedEvent(@Json(name = "channel_id") val channelId: String, @Json(name = "channel_type") val channelType: String, @Json(name = "cid") val cid: String, @Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "shadow") val shadow: Boolean, @Json(name = "type") val type: String = "user.unbanned", @Json(name = "team") val team: String? = null, @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
data class UserUpdatedEvent(@Json(name = "created_at") val createdAt: OffsetDateTime, @Json(name = "type") val type: String = "user.updated", @Json(name = "user") val user: UserObject? = null) : VideoEvent, WSClientEvent
Link copied to clipboard
abstract class VideoEvent

The discriminator object for all websocket events, you should use this to map event payloads to their own type

Link copied to clipboard
class VideoEventAdapter : JsonAdapter<VideoEvent>
Link copied to clipboard
data class VideoQuality(@Json(name = "resolution") val resolution: VideoResolution? = null, @Json(name = "usage_type") val usageType: String? = null)
Link copied to clipboard
data class VideoResolution(@Json(name = "height") val height: Int, @Json(name = "width") val width: Int)
Link copied to clipboard
data class VideoSettingsRequest(@Json(name = "access_request_enabled") val accessRequestEnabled: Boolean? = null, @Json(name = "camera_default_on") val cameraDefaultOn: Boolean? = null, @Json(name = "camera_facing") val cameraFacing: VideoSettingsRequest.CameraFacing? = null, @Json(name = "enabled") val enabled: Boolean? = null, @Json(name = "target_resolution") val targetResolution: TargetResolution? = null)
Link copied to clipboard
data class VideoSettingsResponse(@Json(name = "access_request_enabled") val accessRequestEnabled: Boolean, @Json(name = "camera_default_on") val cameraDefaultOn: Boolean, @Json(name = "camera_facing") val cameraFacing: VideoSettingsResponse.CameraFacing, @Json(name = "enabled") val enabled: Boolean, @Json(name = "target_resolution") val targetResolution: TargetResolution)
Link copied to clipboard
data class WSAuthMessage(@Json(name = "token") val token: String, @Json(name = "user_details") val userDetails: ConnectUserDetailsRequest, @Json(name = "products") val products: List<String>? = null)
Link copied to clipboard
data class WSAuthMessageRequest(@Json(name = "token") val token: String, @Json(name = "user_details") val userDetails: ConnectUserDetailsRequest) : VideoEvent
Link copied to clipboard
sealed interface WSCallEvent
Link copied to clipboard
sealed interface WSClientEvent