From 979967d88df12cb53ecdaa9e8f546f2f39974c3e Mon Sep 17 00:00:00 2001 From: Liviu Timar <65943217+liviu-timar@users.noreply.github.com> Date: Wed, 5 Jun 2024 10:51:37 +0300 Subject: [PATCH 1/7] [PBE-3935] Fix RtcSession.connect() indefinite suspend bug (#1103) * Replace Flow with Mutex in code that determines if join event has been received * Increase replay cache for socket events flow --- .../video/android/core/call/RtcSession.kt | 25 +++++++++++++------ .../android/core/socket/PersistentSocket.kt | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/call/RtcSession.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/call/RtcSession.kt index 6387e6c4ff..210b903166 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/call/RtcSession.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/call/RtcSession.kt @@ -66,6 +66,7 @@ import io.getstream.video.android.core.utils.stringify import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.SupervisorJob +import kotlinx.coroutines.TimeoutCancellationException import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.cancel @@ -77,13 +78,15 @@ import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.debounce -import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.retry import kotlinx.coroutines.flow.retryWhen import kotlinx.coroutines.launch +import kotlinx.coroutines.sync.Mutex +import kotlinx.coroutines.sync.withLock import kotlinx.coroutines.withContext +import kotlinx.coroutines.withTimeout import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import okio.IOException @@ -221,7 +224,7 @@ public class RtcSession internal constructor( /** * We can't publish tracks till we've received the join event response */ - private val joinEventResponse: MutableStateFlow = MutableStateFlow(null) + private val joinEventReceivedMutex = Mutex(locked = true) // participants by session id -> participant state private val trackPrefixToSessionIdMap = @@ -424,8 +427,16 @@ public class RtcSession internal constructor( timer.finish() // ensure that the join event has been handled before starting RTC - joinEventResponse.first { it != null } - connectRtc() + try { + withTimeout(2000L) { + joinEventReceivedMutex.withLock { connectRtc() } + } + } catch (e: TimeoutCancellationException) { + throw RtcException( + message = "RtcSession.connect() timed out. JoinCallResponseEvent not received in time.", + cause = e, + ) + } } private fun initializeVideoTransceiver() { @@ -1058,9 +1069,9 @@ public class RtcSession internal constructor( fun handleEvent(event: VideoEvent) { logger.i { "[rtc handleEvent] #sfu; event: $event" } if (event is JoinCallResponseEvent) { - logger.i { "[rtc handleEvent] joinEventResponse.value: $event" } + logger.i { "[rtc handleEvent] unlocking joinEventReceivedMutex" } - joinEventResponse.value = event + joinEventReceivedMutex.unlock() } if (event is SfuDataEvent) { coroutineScope.launch { @@ -1309,7 +1320,7 @@ public class RtcSession internal constructor( } // the Sfu WS needs to be connected before calling SetPublisherRequest - if (joinEventResponse.value == null) { + if (joinEventReceivedMutex.isLocked) { logger.e { "[negotiate] #$id; #sfu; #${peerType.stringify()}; SFU WS isn't connected" } return@launch } diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/socket/PersistentSocket.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/socket/PersistentSocket.kt index 1bf541ceee..b53499bdcd 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/socket/PersistentSocket.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/socket/PersistentSocket.kt @@ -75,7 +75,7 @@ public open class PersistentSocket( var reconnectTimeout: Long = 500 /** flow with all the events, listen to this */ - val events = MutableSharedFlow() + val events = MutableSharedFlow(replay = 3) /** flow with temporary and permanent errors */ val errors = MutableSharedFlow() From da49f5ee63c916739c9ca76e4125c30630104647 Mon Sep 17 00:00:00 2001 From: Jaewoong Eum Date: Wed, 5 Jun 2024 16:58:24 +0900 Subject: [PATCH 2/7] Migrate to Kotlin 2.0.0 and Compose Compiler plugin (#1104) * Upgrate gradle to 8.8 * Migrate to Kotlin 2.0.0 and Compose Compiler plugin * Bump Compose bom verions * Add kotlin generated classes to the gitignore --------- Co-authored-by: Aleksandar Apostolov --- .gitignore | 3 + build-logic/convention/build.gradle.kts | 1 + .../io/getstream/video/AndroidCompose.kt | 79 +++++----------- .../io/getstream/video/KotlinAndroid.kt | 4 +- build.gradle.kts | 85 +++++++++--------- .../video/android/ui/join/CallJoinScreen.kt | 6 +- gradle/libs.versions.toml | 12 +-- gradle/wrapper/gradle-wrapper.jar | Bin 63721 -> 43462 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 14 +-- gradlew.bat | 20 ++--- .../api/stream-video-android-core.api | 84 ++++++++--------- .../ui/components/base/StreamButton.kt | 16 ++-- .../actions/ToggleSpeakerphoneAction.kt | 3 +- .../PortraitScreenSharingVideoRenderer.kt | 13 +-- 15 files changed, 156 insertions(+), 186 deletions(-) diff --git a/.gitignore b/.gitignore index 0870db811f..6c1ff439fc 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,9 @@ library/.env # Java class files *.class +# Kotlin class files +.kotlin + # Generated files bin/ gen/ diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index 49ae08aa4c..6608567697 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -13,6 +13,7 @@ java { dependencies { compileOnly(libs.android.gradlePlugin) compileOnly(libs.kotlin.gradlePlugin) + compileOnly(libs.compose.compiler.gradlePlugin) compileOnly(libs.spotless.gradlePlugin) } diff --git a/build-logic/convention/src/main/kotlin/io/getstream/video/AndroidCompose.kt b/build-logic/convention/src/main/kotlin/io/getstream/video/AndroidCompose.kt index 0b4e21aa7f..92a1839c25 100644 --- a/build-logic/convention/src/main/kotlin/io/getstream/video/AndroidCompose.kt +++ b/build-logic/convention/src/main/kotlin/io/getstream/video/AndroidCompose.kt @@ -3,72 +3,35 @@ package io.getstream.video import com.android.build.api.dsl.CommonExtension import org.gradle.api.Project import org.gradle.api.artifacts.VersionCatalogsExtension +import org.gradle.kotlin.dsl.assign +import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.dependencies import org.gradle.kotlin.dsl.getByType -import java.io.File +import org.jetbrains.kotlin.compose.compiler.gradle.ComposeCompilerGradlePluginExtension /** * Configure Compose-specific options */ internal fun Project.configureAndroidCompose( - commonExtension: CommonExtension<*, *, *, *, *>, + commonExtension: CommonExtension<*, *, *, *, *, *>, ) { - val libs = extensions.getByType().named("libs") + pluginManager.apply("org.jetbrains.kotlin.plugin.compose") + val libs = extensions.getByType().named("libs") - commonExtension.apply { - buildFeatures { - compose = true - } - - composeOptions { - kotlinCompilerExtensionVersion = - libs.findVersion("androidxComposeCompiler").get().toString() - } - - kotlinOptions { - freeCompilerArgs += buildComposeMetricsParameters() + configureComposeStabilityPath() - } + commonExtension.apply { + buildFeatures { + compose = true } - - dependencies { - val bom = libs.findLibrary("androidx-compose-bom").get() - add("implementation", platform(bom)) - add("androidTestImplementation", platform(bom)) - } -} - -private fun Project.buildComposeMetricsParameters(): List { - val metricParameters = mutableListOf() - val enableMetricsProvider = project.providers.gradleProperty("enableComposeCompilerMetrics") - val relativePath = projectDir.relativeTo(rootDir) - val buildDir = layout.buildDirectory.get().asFile - val enableMetrics = (enableMetricsProvider.orNull == "true") - if (enableMetrics) { - val metricsFolder = buildDir.resolve("compose-metrics").resolve(relativePath) - metricParameters.add("-P") - metricParameters.add( - "plugin:androidx.compose.compiler.plugins.kotlin:metricsDestination=" + metricsFolder.absolutePath - ) - } - - val enableReportsProvider = project.providers.gradleProperty("enableComposeCompilerReports") - val enableReports = (enableReportsProvider.orNull == "true") - if (enableReports) { - val reportsFolder = buildDir.resolve("compose-reports").resolve(relativePath) - metricParameters.add("-P") - metricParameters.add( - "plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=" + reportsFolder.absolutePath - ) - } - return metricParameters.toList() -} - -private fun Project.configureComposeStabilityPath(): List { - val metricParameters = mutableListOf() - val stabilityConfigurationFile = rootDir.resolve("compose_compiler_config.conf") - metricParameters.add("-P") - metricParameters.add( - "plugin:androidx.compose.compiler.plugins.kotlin:stabilityConfigurationPath=" + stabilityConfigurationFile.absolutePath - ) - return metricParameters.toList() + } + + dependencies { + val bom = libs.findLibrary("androidx-compose-bom").get() + add("implementation", platform(bom)) + add("androidTestImplementation", platform(bom)) + } + + extensions.configure { + enableStrongSkippingMode = true + reportsDestination = layout.buildDirectory.dir("compose_compiler") + } } \ No newline at end of file diff --git a/build-logic/convention/src/main/kotlin/io/getstream/video/KotlinAndroid.kt b/build-logic/convention/src/main/kotlin/io/getstream/video/KotlinAndroid.kt index b9701cd717..88ba52687a 100644 --- a/build-logic/convention/src/main/kotlin/io/getstream/video/KotlinAndroid.kt +++ b/build-logic/convention/src/main/kotlin/io/getstream/video/KotlinAndroid.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions * Configure base Kotlin with Android options */ internal fun Project.configureKotlinAndroid( - commonExtension: CommonExtension<*, *, *, *, *>, + commonExtension: CommonExtension<*, *, *, *, *, *>, ) { val libs = extensions.getByType().named("libs") @@ -44,6 +44,6 @@ internal fun Project.configureKotlinAndroid( } } -fun CommonExtension<*, *, *, *, *>.kotlinOptions(block: KotlinJvmOptions.() -> Unit) { +fun CommonExtension<*, *, *, *, *, *>.kotlinOptions(block: KotlinJvmOptions.() -> Unit) { (this as ExtensionAware).extensions.configure("kotlinOptions", block) } diff --git a/build.gradle.kts b/build.gradle.kts index 465074a6dd..08f5ebcf6c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,56 +2,57 @@ apply(plugin = "io.github.gradle-nexus.publish-plugin") apply(plugin = "org.jetbrains.dokka") buildscript { - repositories { - google() - mavenCentral() - maven("https://plugins.gradle.org/m2/") - } + repositories { + google() + mavenCentral() + maven("https://plugins.gradle.org/m2/") + } } @Suppress("DSL_SCOPE_VIOLATION") plugins { - alias(libs.plugins.android.application) apply false - alias(libs.plugins.kotlin.android) apply false - alias(libs.plugins.kotlin.serialization) apply false - alias(libs.plugins.kotlin.compatibility.validator) apply false - alias(libs.plugins.ksp) apply false - alias(libs.plugins.wire) apply false - alias(libs.plugins.nexus) apply false - alias(libs.plugins.google.gms) apply false - alias(libs.plugins.dokka) apply false - alias(libs.plugins.spotless) apply false - alias(libs.plugins.paparazzi) apply false - alias(libs.plugins.firebase.crashlytics) apply false - alias(libs.plugins.hilt) apply false - alias(libs.plugins.play.publisher) apply false - alias(libs.plugins.baseline.profile) apply false + alias(libs.plugins.android.application) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.compose.compiler) apply false + alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.kotlin.compatibility.validator) apply false + alias(libs.plugins.ksp) apply false + alias(libs.plugins.wire) apply false + alias(libs.plugins.nexus) apply false + alias(libs.plugins.google.gms) apply false + alias(libs.plugins.dokka) apply false + alias(libs.plugins.spotless) apply false + alias(libs.plugins.paparazzi) apply false + alias(libs.plugins.firebase.crashlytics) apply false + alias(libs.plugins.hilt) apply false + alias(libs.plugins.play.publisher) apply false + alias(libs.plugins.baseline.profile) apply false } subprojects { - if (name.startsWith("stream-video-android")) { - tasks.withType { - kotlinOptions.freeCompilerArgs += listOf( - "-Xjvm-default=enable", - "-opt-in=io.getstream.video.android.core.internal.InternalStreamVideoApi" - ) - } + if (name.startsWith("stream-video-android")) { + tasks.withType { + kotlinOptions.freeCompilerArgs += listOf( + "-Xjvm-default=enable", + "-opt-in=io.getstream.video.android.core.internal.InternalStreamVideoApi" + ) } + } - // TODO - re-enable the core module once coordinator is stable - if (name.startsWith("stream-video-android") && !name.startsWith("stream-video-android-core")) { - tasks.withType { - kotlinOptions.freeCompilerArgs += listOf( - "-Xexplicit-api=strict" - ) - } + // TODO - re-enable the core module once coordinator is stable + if (name.startsWith("stream-video-android") && !name.startsWith("stream-video-android-core")) { + tasks.withType { + kotlinOptions.freeCompilerArgs += listOf( + "-Xexplicit-api=strict" + ) } + } } tasks.register("clean") - .configure { - delete(rootProject.buildDir) - } + .configure { + delete(rootProject.buildDir) + } apply(from = "${rootDir}/scripts/publish-root.gradle") //apply(from = teamPropsFile("git-hooks.gradle.kts")) @@ -62,9 +63,9 @@ apply(from = "${rootDir}/scripts/publish-root.gradle") //} afterEvaluate { - println("Running Add Pre Commit Git Hook Script on Build") - exec { - commandLine("cp", "./scripts/git-hooks/pre-push", "./.git/hooks") - } - println("Added pre-push Git Hook Script.") + println("Running Add Pre Commit Git Hook Script on Build") + exec { + commandLine("cp", "./scripts/git-hooks/pre-push", "./.git/hooks") + } + println("Added pre-push Git Hook Script.") } \ No newline at end of file diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt b/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt index 0e5e84998c..749701d242 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt @@ -43,6 +43,8 @@ import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll import androidx.compose.material.Text import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.Login +import androidx.compose.material.icons.automirrored.filled.Logout import androidx.compose.material.icons.filled.Call import androidx.compose.material.icons.filled.Login import androidx.compose.material.icons.filled.Logout @@ -299,7 +301,7 @@ private fun CallJoinHeader( if (!isProduction) { StreamButton( modifier = Modifier.fillMaxWidth(), - icon = Icons.Default.Logout, + icon = Icons.AutoMirrored.Filled.Logout, style = VideoTheme.styles.buttonStyles.tertiaryButtonStyle(), text = stringResource(id = R.string.sign_out), onClick = { @@ -489,7 +491,7 @@ private fun JoinCallForm( ) StreamButton( - icon = Icons.Default.Login, + icon = Icons.AutoMirrored.Filled.Login, style = VideoTheme.styles.buttonStyles.secondaryButtonStyle(), modifier = Modifier .padding(start = 16.dp) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f39413f0ac..5df49e82af 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,10 +1,10 @@ [versions] -androidGradlePlugin = "8.2.2" +androidGradlePlugin = "8.4.1" cameraCamera2 = "1.3.0" spotless = "6.21.0" nexusPlugin = "1.3.0" -kotlin = "1.9.23" -ksp = "1.9.23-1.0.19" +kotlin = "2.0.0" +ksp = "2.0.0-1.0.21" kotlinSerialization = "1.6.3" kotlinSerializationConverter = "1.0.0" kotlinxCoroutines = "1.8.0" @@ -22,7 +22,7 @@ androidxActivity = "1.8.2" androidxDataStore = "1.0.0" googleService = "4.3.14" -androidxComposeBom = "2024.03.00" +androidxComposeBom = "2024.05.00" androidxComposeCompiler = "1.5.11" androidxComposeTracing = "1.0.0-beta01" androidxHiltNavigation = "1.2.0" @@ -30,7 +30,7 @@ androidxComposeNavigation = "2.7.7" composeStableMarker = "1.0.2" coil = "2.6.0" -landscapist = "2.3.2" +landscapist = "2.3.3" accompanist = "0.32.0" telephoto = "0.3.0" audioswitch = "1.1.8" @@ -199,6 +199,7 @@ google-mlkit-selfie-segmentation = { group = "com.google.mlkit", name = "segment # Dependencies of the included build-logic android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" } kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" } +compose-compiler-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" } spotless-gradlePlugin = { group = "com.diffplug.spotless", name = "spotless-plugin-gradle", version.ref = "spotless" } androidx-camera-core = { group = "androidx.camera", name = "camera-core", version = "1.3.0" } play-services-mlkit-barcode-scanning = { group = "com.google.android.gms", name = "play-services-mlkit-barcode-scanning", version = "18.3.0" } @@ -214,6 +215,7 @@ kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } kotlin-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binaryCompatabilityValidator" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } spotless = { id = "com.diffplug.spotless", version.ref = "spotless" } dokka = { id = "org.jetbrains.dokka", version.ref = "kotlinDokka" } nexus = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexusPlugin" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7f93135c49b765f8051ef9d0a6055ff8e46073d8..d64cd4917707c1f8861d8cb53dd15194d4248596 100644 GIT binary patch literal 43462 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 literal 63721 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鯊%1Et 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⁢ zv5o9#E7!G0XmdzfsS{efPNi`1b44~SZ4Z8fuX!I}#8g+(wxzQwUT#Xb2(tbY1+EUhGKoT@KEU9Ktl>_0 z%bjDJg;#*gtJZv!-Zs`?^}v5eKmnbjqlvnSzE@_SP|LG_PJ6CYU+6zY6>92%E+ z=j@TZf-iW4(%U{lnYxQA;7Q!b;^brF8n0D>)`q5>|WDDXLrqYU_tKN2>=#@~OE7grMnNh?UOz-O~6 z6%rHy{#h9K0AT+lDC7q4{hw^|q6*Ry;;L%Q@)Ga}$60_q%D)rv(CtS$CQbpq9|y1e zRSrN4;$Jyl{m5bZw`$8TGvb}(LpY{-cQ)fcyJv7l3S52TLXVDsphtv&aPuDk1OzCA z4A^QtC(!11`IsNx_HnSy?>EKpHJWT^wmS~hc^p^zIIh@9f6U@I2 zC=Mve{j2^)mS#U$e{@Q?SO6%LDsXz@SY+=cK_QMmXBIU)j!$ajc-zLx3V60EXJ!qC zi<%2x8Q24YN+&8U@CIlN zrZkcT9yh%LrlGS9`G)KdP(@9Eo-AQz@8GEFWcb7U=a0H^ZVbLmz{+&M7W(nXJ4sN8 zJLR7eeK(K8`2-}j(T7JsO`L!+CvbueT%izanm-^A1Dn{`1Nw`9P?cq;7no+XfC`K(GO9?O^5zNIt4M+M8LM0=7Gz8UA@Z0N+lg+cX)NfazRu z5D)~HA^(u%w^cz+@2@_#S|u>GpB+j4KzQ^&Wcl9f z&hG#bCA(Yk0D&t&aJE^xME^&E-&xGHhXn%}psEIj641H+Nl-}boj;)Zt*t(4wZ5DN z@GXF$bL=&pBq-#vkTkh>7hl%K5|3 z{`Vn9b$iR-SoGENp}bn4;fR3>9sA%X2@1L3aE9yTra;Wb#_`xWwLSLdfu+PAu+o3| zGVnpzPr=ch{uuoHjtw7+_!L_2;knQ!DuDl0R`|%jr+}jFzXtrHIKc323?JO{l&;VF z*L1+}JU7%QJOg|5|Tc|D8fN zJORAg=_vsy{ak|o);@)Yh8Lkcg@$FG3k@ep36BRa^>~UmnRPziS>Z=`Jb2x*Q#`%A zU*i3&Vg?TluO@X0O;r2Jl6LKLUOVhSqg1*qOt^|8*c7 zo(298@+r$k_wQNGHv{|$tW(T8L+4_`FQ{kEW5Jgg{yf7ey4ss_(SNKfz(N9lx&a;< je(UuV8hP?p&}TPdm1I$XmG#(RzlD&B2izSj9sl%y5~4qc diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e6aba2515d..6f7a6eb33e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 0adc8e1a53..1aa94a4269 100755 --- a/gradlew +++ b/gradlew @@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -202,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/gradlew.bat b/gradlew.bat index 6689b85bee..7101f8e467 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/stream-video-android-core/api/stream-video-android-core.api b/stream-video-android-core/api/stream-video-android-core.api index d8e250225f..2cc58a02a7 100644 --- a/stream-video-android-core/api/stream-video-android-core.api +++ b/stream-video-android-core/api/stream-video-android-core.api @@ -3710,13 +3710,13 @@ public final class io/getstream/video/android/core/model/IceCandidate { public fun toString ()Ljava/lang/String; } -public final class io/getstream/video/android/core/model/IceCandidate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/core/model/IceCandidate$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/core/model/IceCandidate$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/core/model/IceCandidate; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/core/model/IceCandidate; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/core/model/IceCandidate;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/core/model/IceCandidate;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } @@ -4228,13 +4228,13 @@ public final class io/getstream/video/android/core/socket/ErrorResponse : java/l public fun toString ()Ljava/lang/String; } -public final class io/getstream/video/android/core/socket/ErrorResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/core/socket/ErrorResponse$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/core/socket/ErrorResponse$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/core/socket/ErrorResponse; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/core/socket/ErrorResponse; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/core/socket/ErrorResponse;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/core/socket/ErrorResponse;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } @@ -4316,13 +4316,13 @@ public final class io/getstream/video/android/core/socket/SocketError { public fun toString ()Ljava/lang/String; } -public final class io/getstream/video/android/core/socket/SocketError$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/core/socket/SocketError$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/core/socket/SocketError$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/core/socket/SocketError; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/core/socket/SocketError; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/core/socket/SocketError;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/core/socket/SocketError;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } @@ -5755,13 +5755,13 @@ public final class io/getstream/video/android/datastore/model/StreamUserPreferen public fun toString ()Ljava/lang/String; } -public final class io/getstream/video/android/datastore/model/StreamUserPreferences$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/datastore/model/StreamUserPreferences$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/datastore/model/StreamUserPreferences$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/datastore/model/StreamUserPreferences; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/datastore/model/StreamUserPreferences; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/datastore/model/StreamUserPreferences;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/datastore/model/StreamUserPreferences;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } @@ -5786,13 +5786,13 @@ public final class io/getstream/video/android/model/Device { public fun toString ()Ljava/lang/String; } -public final class io/getstream/video/android/model/Device$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/model/Device$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/model/Device$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/Device; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/Device; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/Device;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/Device;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } @@ -5821,7 +5821,7 @@ public final class io/getstream/video/android/model/StreamCallId : android/os/Pa public final fun component4 ()Z public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lio/getstream/video/android/model/StreamCallId; public static synthetic fun copy$default (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Lio/getstream/video/android/model/StreamCallId; - public fun describeContents ()I + public final fun describeContents ()I public fun equals (Ljava/lang/Object;)Z public final fun getCid ()Ljava/lang/String; public final fun getId ()Ljava/lang/String; @@ -5829,16 +5829,16 @@ public final class io/getstream/video/android/model/StreamCallId : android/os/Pa public fun hashCode ()I public final fun isValid ()Z public fun toString ()Ljava/lang/String; - public fun writeToParcel (Landroid/os/Parcel;I)V + public final fun writeToParcel (Landroid/os/Parcel;I)V } -public final class io/getstream/video/android/model/StreamCallId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/model/StreamCallId$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/model/StreamCallId$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/StreamCallId; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/StreamCallId; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/StreamCallId;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/StreamCallId;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } @@ -5896,13 +5896,13 @@ public final class io/getstream/video/android/model/User { public fun toString ()Ljava/lang/String; } -public final class io/getstream/video/android/model/User$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/model/User$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/model/User$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/User; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/User; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/User;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/User;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } @@ -5941,13 +5941,13 @@ public final class io/getstream/video/android/model/UserDevices { public fun toString ()Ljava/lang/String; } -public final class io/getstream/video/android/model/UserDevices$$serializer : kotlinx/serialization/internal/GeneratedSerializer { +public synthetic class io/getstream/video/android/model/UserDevices$$serializer : kotlinx/serialization/internal/GeneratedSerializer { public static final field INSTANCE Lio/getstream/video/android/model/UserDevices$$serializer; - public fun childSerializers ()[Lkotlinx/serialization/KSerializer; - public fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/UserDevices; + public final fun childSerializers ()[Lkotlinx/serialization/KSerializer; + public final fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Lio/getstream/video/android/model/UserDevices; public synthetic fun deserialize (Lkotlinx/serialization/encoding/Decoder;)Ljava/lang/Object; - public fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; - public fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/UserDevices;)V + public final fun getDescriptor ()Lkotlinx/serialization/descriptors/SerialDescriptor; + public final fun serialize (Lkotlinx/serialization/encoding/Encoder;Lio/getstream/video/android/model/UserDevices;)V public synthetic fun serialize (Lkotlinx/serialization/encoding/Encoder;Ljava/lang/Object;)V public fun typeParametersSerializers ()[Lkotlinx/serialization/KSerializer; } diff --git a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/StreamButton.kt b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/StreamButton.kt index 7b9300b731..45744ce819 100644 --- a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/StreamButton.kt +++ b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/StreamButton.kt @@ -38,6 +38,8 @@ import androidx.compose.material.CircularProgressIndicator import androidx.compose.material.Icon import androidx.compose.material.Text import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.ExitToApp +import androidx.compose.material.icons.automirrored.filled.PhoneMissed import androidx.compose.material.icons.filled.AccessAlarm import androidx.compose.material.icons.filled.Camera import androidx.compose.material.icons.filled.ExitToApp @@ -389,7 +391,7 @@ private fun StreamIconButtonPreview() { ) Spacer(modifier = Modifier.size(16.dp)) StreamIconButton( - icon = Icons.Default.ExitToApp, + icon = Icons.AutoMirrored.Filled.ExitToApp, style = ButtonStyles.secondaryIconButtonStyle(), ) Spacer(modifier = Modifier.size(16.dp)) @@ -399,7 +401,7 @@ private fun StreamIconButtonPreview() { ) Spacer(modifier = Modifier.size(16.dp)) StreamIconButton( - icon = Icons.Default.PhoneMissed, + icon = Icons.AutoMirrored.Filled.PhoneMissed, style = ButtonStyles.alertIconButtonStyle(), ) } @@ -414,7 +416,7 @@ private fun StreamIconButtonPreview() { Spacer(modifier = Modifier.size(16.dp)) StreamIconButton( enabled = false, - icon = Icons.Default.ExitToApp, + icon = Icons.AutoMirrored.Filled.ExitToApp, style = ButtonStyles.secondaryIconButtonStyle(), ) Spacer(modifier = Modifier.size(16.dp)) @@ -426,7 +428,7 @@ private fun StreamIconButtonPreview() { Spacer(modifier = Modifier.size(16.dp)) StreamIconButton( enabled = false, - icon = Icons.Default.PhoneMissed, + icon = Icons.AutoMirrored.Filled.PhoneMissed, style = ButtonStyles.alertIconButtonStyle(), ) } @@ -435,17 +437,17 @@ private fun StreamIconButtonPreview() { Row { Spacer(modifier = Modifier.size(16.dp)) StreamIconButton( - icon = Icons.Default.PhoneMissed, + icon = Icons.AutoMirrored.Filled.PhoneMissed, style = ButtonStyles.alertIconButtonStyle(size = StyleSize.L), ) Spacer(modifier = Modifier.size(16.dp)) StreamIconButton( - icon = Icons.Default.PhoneMissed, + icon = Icons.AutoMirrored.Filled.PhoneMissed, style = ButtonStyles.alertIconButtonStyle(size = StyleSize.M), ) Spacer(modifier = Modifier.size(16.dp)) StreamIconButton( - icon = Icons.Default.PhoneMissed, + icon = Icons.AutoMirrored.Filled.PhoneMissed, style = ButtonStyles.alertIconButtonStyle(size = StyleSize.S), ) } diff --git a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/controls/actions/ToggleSpeakerphoneAction.kt b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/controls/actions/ToggleSpeakerphoneAction.kt index 94d58bed79..a304c0b1c9 100644 --- a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/controls/actions/ToggleSpeakerphoneAction.kt +++ b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/controls/actions/ToggleSpeakerphoneAction.kt @@ -19,6 +19,7 @@ package io.getstream.video.android.compose.ui.components.call.controls.actions import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.VolumeUp import androidx.compose.material.icons.filled.VolumeOff import androidx.compose.material.icons.filled.VolumeUp import androidx.compose.runtime.Composable @@ -58,7 +59,7 @@ public fun ToggleSpeakerphoneAction( enabledIconTint = enabledIconTint, disabledIconTint = disabledIconTint, isActionActive = isSpeakerphoneEnabled, - iconOnOff = Pair(Icons.Default.VolumeUp, Icons.Default.VolumeOff), + iconOnOff = Pair(Icons.AutoMirrored.Filled.VolumeUp, Icons.Default.VolumeOff), ) { onCallAction(ToggleSpeakerphone(isSpeakerphoneEnabled.not())) } diff --git a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/renderer/internal/PortraitScreenSharingVideoRenderer.kt b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/renderer/internal/PortraitScreenSharingVideoRenderer.kt index ae4fb51467..e8e7e3af41 100644 --- a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/renderer/internal/PortraitScreenSharingVideoRenderer.kt +++ b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/call/renderer/internal/PortraitScreenSharingVideoRenderer.kt @@ -32,16 +32,12 @@ import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import io.getstream.video.android.compose.theme.VideoTheme @@ -91,7 +87,6 @@ internal fun PortraitScreenSharingVideoRenderer( ) { val sharingParticipant = session.participant val me by call.state.me.collectAsStateWithLifecycle() - var parentSize: IntSize by remember { mutableStateOf(IntSize(0, 0)) } val paddedModifier = modifier.padding(VideoTheme.dimens.spacingXXs) BoxWithConstraints(modifier = Modifier.fillMaxWidth()) { @@ -118,10 +113,10 @@ internal fun PortraitScreenSharingVideoRenderer( } val participant = participants[key] videoRenderer.invoke( - modifier = paddedModifier.height(itemHeight), - call = call, - participant = participant, - style = style.copy( + paddedModifier.height(itemHeight), + call, + participant, + style.copy( isFocused = dominantSpeaker?.sessionId == participant.sessionId, ), ) From a15ec4de9b81bd7298f2dd16cac6013c7b7a1e9e Mon Sep 17 00:00:00 2001 From: Kanat Kiialbaev Date: Fri, 7 Jun 2024 03:55:00 -0400 Subject: [PATCH 3/7] [PBE-3907] Update SDK to handle missed call notifications (#1105) --- .../video/android/models/GoogleAccount.kt | 14 + .../getstream/video/android/models/Users.kt | 48 + .../video/android/ui/join/CallJoinScreen.kt | 1 + .../android/ui/join/CallJoinViewModel.kt | 4 +- .../video/android/ui/login/LoginScreen.kt | 111 +- .../video/android/ui/login/LoginViewModel.kt | 34 +- .../ui/outgoing/DirectCallJoinScreen.kt | 29 +- .../ui/outgoing/DirectCallJoinViewModel.kt | 32 +- .../video/android/util/config/AppConfig.kt | 6 + demo-app/src/main/res/values/strings.xml | 2 + demo-app/src/staging/res/values/strings.xml | 19 + .../api/stream-video-android-core.api | 3351 +++++++++++++---- .../io/getstream/video/android/core/Call.kt | 28 +- .../getstream/video/android/core/CallState.kt | 8 +- .../video/android/core/MediaManager.kt | 4 +- .../video/android/core/StreamVideoImpl.kt | 57 +- .../core/internal/module/ConnectionModule.kt | 8 +- .../video/android/core/model/RejectReason.kt | 36 + .../video/android/core/model/SortData.kt | 10 +- .../DefaultNotificationHandler.kt | 30 +- .../core/notifications/NotificationHandler.kt | 1 + .../internal/NoOpNotificationHandler.kt | 1 + .../internal/StreamNotificationManager.kt | 6 +- .../internal/VideoPushDelegate.kt | 20 +- .../GenericCallActionBroadcastReceiver.kt | 6 +- .../receivers/LeaveCallBroadcastReceiver.kt | 4 +- .../receivers/RejectCallBroadcastReceiver.kt | 8 +- .../video/android/core/utils/DomainUtils.kt | 4 +- .../video/android/core/utils/UserUtils.kt | 4 + .../model/mapper/StreamCallCidMapper.kt | 2 +- .../org/openapitools/client/.api_version | 1 + .../{DefaultApi.kt => ProductvideoApi.kt} | 234 +- .../client/infrastructure/Serializer.kt | 13 +- .../client/models/AudioSettingsRequest.kt | 5 + ...ioSettings.kt => AudioSettingsResponse.kt} | 11 +- ...ttings.kt => BackstageSettingsResponse.kt} | 2 +- .../client/models/BlockListOptions.kt | 97 + ...ttings.kt => BroadcastSettingsResponse.kt} | 6 +- .../client/models/CallClosedCaption.kt | 62 + .../client/models/CallDeletedEvent.kt | 73 + .../openapitools/client/models/CallEvent.kt | 66 + .../models/CallHLSBroadcastingFailedEvent.kt | 68 + ....kt => CallHLSBroadcastingStartedEvent.kt} | 10 +- .../models/CallHLSBroadcastingStoppedEvent.kt | 68 + .../client/models/CallMissedEvent.kt | 89 + .../client/models/CallResponse.kt | 7 +- .../client/models/CallSessionResponse.kt | 10 +- .../client/models/CallSettingsRequest.kt | 10 + .../client/models/CallSettingsResponse.kt | 46 +- .../models/CallStatsReportSummaryResponse.kt | 74 + .../client/models/CallTimeline.kt | 51 + .../client/models/CallTranscription.kt | 62 + ...ent.kt => CallTranscriptionFailedEvent.kt} | 10 +- .../models/CallTranscriptionReadyEvent.kt | 73 + .../models/CallTranscriptionStartedEvent.kt | 68 + .../models/CallTranscriptionStoppedEvent.kt | 68 + ...CallUserMuted.kt => CallUserMutedEvent.kt} | 2 +- .../client/models/ChannelConfigWithInfo.kt | 280 ++ .../client/models/ChannelMember.kt | 117 + .../openapitools/client/models/ChannelMute.kt | 71 + .../client/models/ChannelResponse.kt | 174 + .../client/models/ClosedCaptionEvent.kt | 73 + .../models/CollectUserFeedbackRequest.kt | 70 + ...onse.kt => CollectUserFeedbackResponse.kt} | 2 +- .../org/openapitools/client/models/Command.kt | 76 + .../models/ConnectUserDetailsRequest.kt | 20 +- .../openapitools/client/models/Coordinates.kt | 54 + .../client/models/DeleteRecordingResponse.kt | 50 + .../models/DeleteTranscriptionResponse.kt | 50 + ...ettings.kt => GeofenceSettingsResponse.kt} | 2 +- .../client/models/GeolocationResult.kt | 86 + .../client/models/GetCallStatsResponse.kt | 107 + .../client/models/GoLiveRequest.kt | 10 +- .../client/models/HLSSettingsRequest.kt | 10 +- ...{HLSSettings.kt => HLSSettingsResponse.kt} | 2 +- .../client/models/HealthCheckEvent.kt | 17 +- .../client/models/LabelThresholds.kt | 56 + .../client/models/LimitsSettingsRequest.kt | 54 + .../client/models/LimitsSettingsResponse.kt | 54 + .../models/ListTranscriptionsResponse.kt | 55 + ...TargetResolutionRequest.kt => Location.kt} | 20 +- .../openapitools/client/models/MOSStats.kt | 62 + .../client/models/MediaPubSubHint.kt | 62 + .../client/models/MuteUsersRequest.kt | 4 + ...ttings.kt => NoiseCancellationSettings.kt} | 8 +- .../openapitools/client/models/NullBool.kt | 54 + .../openapitools/client/models/NullTime.kt | 54 + .../client/models/OwnCapability.kt | 6 +- .../org/openapitools/client/models/OwnUser.kt | 147 + .../client/models/OwnUserResponse.kt | 66 +- .../client/models/PrivacySettings.kt | 56 + .../client/models/PublishedTrackInfo.kt | 58 + .../client/models/PushNotificationSettings.kt | 54 + .../models/PushNotificationSettingsInput.kt | 56 + ...sRequest.kt => QueryCallMembersRequest.kt} | 6 +- ...esponse.kt => QueryCallMembersResponse.kt} | 2 +- .../client/models/QueryCallStatsRequest.kt | 67 + .../client/models/QueryCallStatsResponse.kt | 64 + .../client/models/QueryCallsRequest.kt | 4 +- .../client/models/ReadReceipts.kt | 50 + .../client/models/RecordSettingsRequest.kt | 12 +- .../client/models/RecordSettingsResponse.kt | 58 + .../client/models/RejectCallRequest.kt | 51 + .../openapitools/client/models/Response.kt | 3 +- .../client/models/RingSettingsRequest.kt | 8 +- ...ingSettings.kt => RingSettingsResponse.kt} | 8 +- .../client/models/SFULocationResponse.kt | 64 + .../models/ScreensharingSettingsRequest.kt | 7 +- .../models/ScreensharingSettingsResponse.kt | 59 + ...ventRequest.kt => SendCallEventRequest.kt} | 2 +- ...ntResponse.kt => SendCallEventResponse.kt} | 2 +- .../{SortParamRequest.kt => SortParam.kt} | 2 +- ...nse.kt => StartHLSBroadcastingResponse.kt} | 2 +- .../client/models/StartRecordingRequest.kt | 50 + .../models/StartTranscriptionRequest.kt | 50 + .../org/openapitools/client/models/Stats.kt | 54 + .../models/StopHLSBroadcastingResponse.kt | 51 + .../openapitools/client/models/Subsession.kt | 63 + .../client/models/TargetResolution.kt | 10 +- .../openapitools/client/models/Thresholds.kt | 59 + .../client/models/ThumbnailResponse.kt | 50 + .../models/ThumbnailsSettingsRequest.kt | 50 + ...tings.kt => ThumbnailsSettingsResponse.kt} | 6 +- .../models/TranscriptionSettingsRequest.kt | 10 +- ...gs.kt => TranscriptionSettingsResponse.kt} | 62 +- .../client/models/TypingIndicators.kt | 50 + .../client/models/UserBannedEvent.kt | 96 + .../client/models/UserDeactivatedEvent.kt | 68 + .../client/models/UserDeletedEvent.kt | 76 + .../client/models/UserInfoResponse.kt | 62 + .../openapitools/client/models/UserMute.kt | 70 + .../client/models/UserMutedEvent.kt | 72 + .../openapitools/client/models/UserObject.kt | 129 + .../client/models/UserPresenceChangedEvent.kt | 64 + .../client/models/UserReactivatedEvent.kt | 64 + .../openapitools/client/models/UserRequest.kt | 20 +- .../client/models/UserResponse.kt | 26 +- .../client/models/UserSessionStats.kt | 254 ++ .../openapitools/client/models/UserStats.kt | 64 + .../client/models/UserUnbannedEvent.kt | 84 + .../client/models/UserUpdatedEvent.kt | 64 + .../openapitools/client/models/VideoEvent.kt | 26 +- .../client/models/VideoQuality.kt | 55 + .../client/models/VideoResolution.kt | 54 + .../client/models/VideoSettingsRequest.kt | 4 +- ...eoSettings.kt => VideoSettingsResponse.kt} | 4 +- .../client/models/WSAuthMessage.kt | 59 + .../main/proto/video/sfu/event/events.pb.go | 983 +++-- .../main/proto/video/sfu/event/events.proto | 19 + .../video/sfu/event/events_vtproto.pb.go | 513 +++ .../main/proto/video/sfu/models/models.pb.go | 261 +- .../main/proto/video/sfu/models/models.proto | 31 +- .../proto/video/sfu/signal_rpc/signal.pb.go | 863 +++-- .../proto/video/sfu/signal_rpc/signal.proto | 22 +- .../video/sfu/signal_rpc/signal.twirp.go | 683 +++- .../video/sfu/signal_rpc/signal_vtproto.pb.go | 622 +++ .../getstream/video/android/core/EventTest.kt | 4 + .../android/core/base/IntegrationTestBase.kt | 66 +- .../compose/ui/components/base/Dialogs.kt | 16 +- .../api/stream-video-android-ui-core.api | 4 +- .../android/ui/common/StreamCallActivity.kt | 28 +- .../video/android/xml/font/VideoFontsImpl.kt | 4 +- 162 files changed, 12028 insertions(+), 1913 deletions(-) create mode 100644 demo-app/src/main/kotlin/io/getstream/video/android/models/Users.kt create mode 100644 demo-app/src/staging/res/values/strings.xml create mode 100644 stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/RejectReason.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/.api_version rename stream-video-android-core/src/main/kotlin/org/openapitools/client/apis/{DefaultApi.kt => ProductvideoApi.kt} (78%) rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{AudioSettings.kt => AudioSettingsResponse.kt} (89%) rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{BackstageSettings.kt => BackstageSettingsResponse.kt} (96%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BlockListOptions.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{BroadcastSettings.kt => BroadcastSettingsResponse.kt} (90%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallClosedCaption.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallDeletedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingFailedEvent.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{CallBroadcastingStartedEvent.kt => CallHLSBroadcastingStartedEvent.kt} (82%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingStoppedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallMissedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallStatsReportSummaryResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTimeline.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscription.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{CallBroadcastingStoppedEvent.kt => CallTranscriptionFailedEvent.kt} (83%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionReadyEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStartedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStoppedEvent.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{CallUserMuted.kt => CallUserMutedEvent.kt} (98%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelConfigWithInfo.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMember.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMute.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ClosedCaptionEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CollectUserFeedbackRequest.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{StopBroadcastingResponse.kt => CollectUserFeedbackResponse.kt} (96%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Command.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Coordinates.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteRecordingResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteTranscriptionResponse.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{GeofenceSettings.kt => GeofenceSettingsResponse.kt} (96%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeolocationResult.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GetCallStatsResponse.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{HLSSettings.kt => HLSSettingsResponse.kt} (97%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LabelThresholds.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsRequest.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ListTranscriptionsResponse.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{TargetResolutionRequest.kt => Location.kt} (76%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MOSStats.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MediaPubSubHint.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{TranscriptionSettings.kt => NoiseCancellationSettings.kt} (92%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullBool.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullTime.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUser.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PrivacySettings.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PublishedTrackInfo.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettings.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettingsInput.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{QueryMembersRequest.kt => QueryCallMembersRequest.kt} (91%) rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{QueryMembersResponse.kt => QueryCallMembersResponse.kt} (97%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsRequest.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ReadReceipts.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RejectCallRequest.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{RingSettings.kt => RingSettingsResponse.kt} (86%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SFULocationResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsResponse.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{SendEventRequest.kt => SendCallEventRequest.kt} (97%) rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{SendEventResponse.kt => SendCallEventResponse.kt} (97%) rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{SortParamRequest.kt => SortParam.kt} (97%) rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{StartBroadcastingResponse.kt => StartHLSBroadcastingResponse.kt} (96%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartRecordingRequest.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartTranscriptionRequest.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Stats.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StopHLSBroadcastingResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Subsession.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Thresholds.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailsSettingsRequest.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{ScreensharingSettings.kt => ThumbnailsSettingsResponse.kt} (88%) rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{RecordSettings.kt => TranscriptionSettingsResponse.kt} (58%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TypingIndicators.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserBannedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeactivatedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeletedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserInfoResponse.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMute.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMutedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserObject.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserPresenceChangedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserReactivatedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserSessionStats.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserStats.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUnbannedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUpdatedEvent.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoQuality.kt create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoResolution.kt rename stream-video-android-core/src/main/kotlin/org/openapitools/client/models/{VideoSettings.kt => VideoSettingsResponse.kt} (96%) create mode 100644 stream-video-android-core/src/main/kotlin/org/openapitools/client/models/WSAuthMessage.kt diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/models/GoogleAccount.kt b/demo-app/src/main/kotlin/io/getstream/video/android/models/GoogleAccount.kt index af0a717110..69b525e3d8 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/models/GoogleAccount.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/models/GoogleAccount.kt @@ -16,6 +16,8 @@ package io.getstream.video.android.models +import io.getstream.video.android.model.User + data class GoogleAccount( val email: String?, val id: String?, @@ -23,3 +25,15 @@ data class GoogleAccount( val photoUrl: String?, val isFavorite: Boolean = false, ) + +fun GoogleAccount.toUser(): User { + return User( + id = id ?: error("GoogleAccount id can not be null"), + name = name.orEmpty(), + image = photoUrl.orEmpty(), + ) +} + +fun List.toUsers(): List { + return map { it.toUser() } +} diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/models/Users.kt b/demo-app/src/main/kotlin/io/getstream/video/android/models/Users.kt new file mode 100644 index 0000000000..7c137607fe --- /dev/null +++ b/demo-app/src/main/kotlin/io/getstream/video/android/models/Users.kt @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.getstream.video.android.models + +import io.getstream.video.android.model.User + +public fun User.Companion.builtInUsers(): List { + return listOf( + User( + id = "alex", + name = "Alex", + role = "user", + image = "https://ca.slack-edge.com/T02RM6X6B-U05UD37MA1G-f062f8b7afc2-512", + ), + User( + id = "kanat", + name = "Kanat", + role = "user", + image = "https://ca.slack-edge.com/T02RM6X6B-U034NG4FPNG-9a37493e25e0-512", + ), + User( + id = "valia", + name = "Bernard Windler", + role = "user", + image = "https://getstream.io/chat/docs/sdk/avatars/jpg/Bernard%20Windler.jpg", + ), + User( + id = "vasil", + name = "Willard Hesser", + role = "user", + image = "https://getstream.io/chat/docs/sdk/avatars/jpg/Willard%20Hessel.jpg", + ), + ) +} diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt b/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt index 749701d242..7efa5907b2 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinScreen.kt @@ -137,6 +137,7 @@ fun CallJoinScreen( ) { CallJoinHeader( user = user, + showDirectCall = BuildConfig.FLAVOR == StreamFlavors.development, onAvatarLongClick = { if (isNetworkAvailable) isSignOutDialogVisible = true }, onDirectCallClick = navigateToDirectCallJoin, onSignOutClick = { diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinViewModel.kt b/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinViewModel.kt index b7832937d9..da83874d44 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinViewModel.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/ui/join/CallJoinViewModel.kt @@ -25,7 +25,7 @@ import io.getstream.video.android.core.Call import io.getstream.video.android.core.StreamVideo import io.getstream.video.android.datastore.delegate.StreamUserDataStore import io.getstream.video.android.model.User -import io.getstream.video.android.model.mapper.isValidCallId +import io.getstream.video.android.model.mapper.isValidCallCid import io.getstream.video.android.model.mapper.toTypeAndId import io.getstream.video.android.util.NetworkMonitor import io.getstream.video.android.util.StreamVideoInitHelper @@ -91,7 +91,7 @@ class CallJoinViewModel @Inject constructor( private fun joinCall(callId: String? = null): Call { val streamVideo = StreamVideo.instance() val newCallId = callId ?: "default:${UUID.randomUUID()}" - val (type, id) = if (newCallId.isValidCallId()) { + val (type, id) = if (newCallId.isValidCallCid()) { newCallId.toTypeAndId() } else { "default" to newCallId diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginScreen.kt b/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginScreen.kt index 803bbdfa72..c20a849498 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginScreen.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginScreen.kt @@ -22,6 +22,8 @@ import android.content.res.Configuration import android.widget.Toast import androidx.compose.foundation.Image import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column @@ -35,6 +37,8 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.CircularProgressIndicator @@ -42,7 +46,9 @@ import androidx.compose.material.Text import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Email import androidx.compose.material.icons.filled.Settings +import androidx.compose.material.icons.outlined.Adb import androidx.compose.material.icons.outlined.GroupAdd +import androidx.compose.material.ripple.rememberRipple import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -81,6 +87,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import io.getstream.video.android.BuildConfig import io.getstream.video.android.R import io.getstream.video.android.compose.theme.VideoTheme +import io.getstream.video.android.compose.ui.components.avatar.UserAvatar import io.getstream.video.android.compose.ui.components.base.StreamButton import io.getstream.video.android.compose.ui.components.base.StreamDialogPositiveNegative import io.getstream.video.android.compose.ui.components.base.StreamIconToggleButton @@ -88,7 +95,10 @@ import io.getstream.video.android.compose.ui.components.base.StreamTextField import io.getstream.video.android.compose.ui.components.base.styling.ButtonStyles import io.getstream.video.android.compose.ui.components.base.styling.IconStyles import io.getstream.video.android.compose.ui.components.base.styling.StreamDialogStyles +import io.getstream.video.android.model.User +import io.getstream.video.android.models.builtInUsers import io.getstream.video.android.tooling.extensions.toPx +import io.getstream.video.android.tooling.util.StreamFlavors import io.getstream.video.android.util.LockScreenOrientation import io.getstream.video.android.util.UserHelper import io.getstream.video.android.util.config.AppConfig @@ -116,9 +126,13 @@ fun LoginScreen( } val selectedEnv by AppConfig.currentEnvironment.collectAsStateWithLifecycle() val availableEnvs by remember { mutableStateOf(AppConfig.availableEnvironments) } - val availableLogins = listOf("google", "email", "guest") + val availableLogins = when (BuildConfig.FLAVOR == StreamFlavors.development) { + true -> listOf("built-in", "google", "email", "guest") + else -> listOf("google", "email", "guest") + } var isShowingEmailLoginDialog by remember { mutableStateOf(false) } + var isShowingBuiltInUsersDialog by remember { mutableStateOf(false) } HandleLoginUiStates( autoLogIn = autoLogIn, @@ -133,6 +147,7 @@ fun LoginScreen( autoLogIn = autoLogIn, isLoading = isLoading, showEmailLoginDialog = { isShowingEmailLoginDialog = true }, + showBuiltInUserDialog = { isShowingBuiltInUsersDialog = true }, reloadSdk = { loginViewModel.reloadSdk() }, @@ -161,6 +176,19 @@ fun LoginScreen( onDismissRequest = { isShowingEmailLoginDialog = false }, ) } + if (isShowingBuiltInUsersDialog) { + BuiltInUsersLoginDialog( + login = { autoLoginBoolean, event -> + autoLoginBoolean?.let { + loginViewModel.autoLogIn = it + } + event?.let { + loginViewModel.handleUiEvent(event) + } + }, + onDismissRequest = { isShowingBuiltInUsersDialog = false }, + ) + } } } @@ -170,6 +198,7 @@ private fun LoginContent( autoLogIn: Boolean, isLoading: Boolean, showEmailLoginDialog: () -> Unit = {}, + showBuiltInUserDialog: () -> Unit = {}, reloadSdk: () -> Unit = {}, login: (Boolean?, LoginEvent?) -> Unit = { _, _ -> }, availableEnvs: List, @@ -241,6 +270,17 @@ private fun LoginContent( if (!isLoading) { availableLogins.forEach { when (it) { + "built-in" -> { + StreamButton( + modifier = Modifier.fillMaxWidth(), + icon = Icons.Outlined.Adb, + enabled = !isLoading, + text = stringResource(id = R.string.builtin_user_sign_in), + style = ButtonStyles.secondaryButtonStyle(), + onClick = showBuiltInUserDialog, + ) + } + "google" -> { StreamButton( icon = ImageVector.vectorResource(R.drawable.google_button_logo), @@ -344,6 +384,61 @@ private fun EmailLoginDialog( ) } +@Composable +private fun BuiltInUsersLoginDialog( + onDismissRequest: () -> Unit = {}, + login: (Boolean?, LoginEvent?) -> Unit = { _, _ -> }, +) { + val users = User.builtInUsers() + StreamDialogPositiveNegative( + style = StreamDialogStyles.defaultDialogStyle(), + onDismiss = onDismissRequest, + icon = Icons.Default.Email, + title = stringResource(R.string.select_user), + content = { + LazyColumn( + modifier = Modifier + .fillMaxWidth() + .padding(top = 16.dp), + ) { + items(users) { user -> + Row( + modifier = Modifier + .height(64.dp) + .fillMaxWidth() + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = rememberRipple(bounded = true), + onClick = { + login(true, LoginEvent.SignIn(user)) + onDismissRequest() + }, + ), + ) { + Spacer(modifier = Modifier.width(16.dp)) + UserAvatar( + modifier = Modifier + .size(40.dp) + .align(Alignment.CenterVertically), + userImage = user.image, + userName = user.userNameOrId, + ) + Spacer(modifier = Modifier.width(16.dp)) + Text( + modifier = Modifier.align(Alignment.CenterVertically), + text = user.name, + color = VideoTheme.colors.basePrimary, + style = VideoTheme.typography.subtitleS, + ) + Spacer(modifier = Modifier.width(16.dp)) + } + } + } + }, + negativeButton = Triple("Cancel", ButtonStyles.secondaryButtonStyle(), onDismissRequest), + ) +} + @OptIn(ExperimentalLayoutApi::class) @Composable fun SelectableDialog( @@ -381,10 +476,12 @@ fun SelectableDialog( ), ) { Column( - Modifier.background( - color = VideoTheme.colors.baseSheetTertiary, - shape = VideoTheme.shapes.dialog, - ).width(180.dp), + Modifier + .background( + color = VideoTheme.colors.baseSheetTertiary, + shape = VideoTheme.shapes.dialog, + ) + .width(180.dp), ) { items.forEach { item -> StreamButton( @@ -395,7 +492,9 @@ fun SelectableDialog( showDialog = !showDialog }, style = ButtonStyles.tertiaryButtonStyle(), - modifier = Modifier.padding(horizontal = 8.dp).fillMaxWidth(), + modifier = Modifier + .padding(horizontal = 8.dp) + .fillMaxWidth(), ) } } diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginViewModel.kt b/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginViewModel.kt index bfc8f3da12..c66b2a9649 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginViewModel.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/ui/login/LoginViewModel.kt @@ -68,7 +68,7 @@ class LoginViewModel @Inject constructor( is LoginEvent.SignInFailure -> flowOf( LoginUiState.SignInFailure(event.errorMessage), ) - + is LoginEvent.SignIn -> signIn(event.user) else -> flowOf(LoginUiState.Nothing) } }.shareIn(viewModelScope, SharingStarted.Lazily, 0) @@ -119,6 +119,32 @@ class LoginViewModel @Inject constructor( } } + private fun signIn(user: User): Flow = AppConfig.currentEnvironment.flatMapLatest { + if (it != null) { + if (StreamVideo.isInstalled) { + flowOf(LoginUiState.AlreadyLoggedIn) + } else { + try { + val authData = StreamService.instance.getAuthData( + environment = it.env, + userId = user.id, + ) + // Store the data in the demo app + dataStore.updateUser(user) + // Init the Video SDK with the data + StreamVideoInitHelper.loadSdk(dataStore) + flowOf(LoginUiState.SignInComplete(authData)) + } catch (exception: Throwable) { + val message = "Sign in failed: ${exception.message ?: "Generic error"}" + streamLog { "Failed to fetch token - cause: $exception" } + flowOf(LoginUiState.SignInFailure(message)) + } + } + } else { + flowOf(LoginUiState.Loading) + } + } + fun signInIfValidUserExist() { viewModelScope.launch { val user = dataStore.user.firstOrNull() @@ -160,13 +186,15 @@ sealed interface LoginUiState { } sealed interface LoginEvent { - object Nothing : LoginEvent + data object Nothing : LoginEvent - object Loading : LoginEvent + data object Loading : LoginEvent data class GoogleSignIn(val id: String = UUID.randomUUID().toString()) : LoginEvent data class SignInSuccess(val userId: String) : LoginEvent data class SignInFailure(val errorMessage: String) : LoginEvent + + data class SignIn(val user: User) : LoginEvent } diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinScreen.kt b/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinScreen.kt index a3d67e3935..d4b8b795e2 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinScreen.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinScreen.kt @@ -56,7 +56,6 @@ import io.getstream.video.android.compose.ui.components.base.StreamButton import io.getstream.video.android.mock.previewUsers import io.getstream.video.android.model.StreamCallId import io.getstream.video.android.model.User -import io.getstream.video.android.models.GoogleAccount import java.util.UUID @Composable @@ -143,7 +142,7 @@ private fun Body( color = VideoTheme.colors.brandPrimary, ) } else { - uiState.googleAccounts?.let { users -> + uiState.otherUsers?.let { users -> UserList( entries = users, onUserClick = { clickedIndex -> toggleUserSelection(clickedIndex) }, @@ -167,10 +166,11 @@ private fun Body( style = VideoTheme.styles.buttonStyles.secondaryButtonStyle(), onClick = { onStartCallClick( - StreamCallId("audio_call", UUID.randomUUID().toString()), + // StreamCallId("audio_call", UUID.randomUUID().toString()), + StreamCallId("default", UUID.randomUUID().toString()), users .filter { it.isSelected } - .joinToString(separator = ",") { it.account.id ?: "" }, + .joinToString(separator = ",") { it.user.id ?: "" }, ) }, ) @@ -189,7 +189,7 @@ private fun Body( StreamCallId("default", UUID.randomUUID().toString()), users .filter { it.isSelected } - .joinToString(separator = ",") { it.account.id ?: "" }, + .joinToString(separator = ",") { it.user.id ?: "" }, ) }, ) @@ -209,14 +209,14 @@ private fun Body( } @Composable -private fun UserList(entries: List, onUserClick: (Int) -> Unit) { +private fun UserList(entries: List, onUserClick: (Int) -> Unit) { LazyColumn { items(entries.size) { index -> with(entries[index]) { UserRow( index = index, - name = account.name ?: "", - avatarUrl = account.photoUrl, + name = user.name, + avatarUrl = user.image, isSelected = isSelected, onClick = { onUserClick(index) }, ) @@ -273,16 +273,13 @@ private fun HeaderPreview() { Header(user = User(name = "Very very very long user name here")) Body( uiState = DirectCallUiState( - googleAccounts = + otherUsers = previewUsers.map { - GoogleAccountUiState( + UserUiState( isSelected = false, - account = GoogleAccount( - it.id, - it.id, - it.name, - null, - false, + user = User( + id = it.id, + name = it.name, ), ) }, diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinViewModel.kt b/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinViewModel.kt index a964e3be05..627e9f7f17 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinViewModel.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/ui/outgoing/DirectCallJoinViewModel.kt @@ -19,10 +19,13 @@ package io.getstream.video.android.ui.outgoing import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel +import io.getstream.video.android.BuildConfig import io.getstream.video.android.data.repositories.GoogleAccountRepository import io.getstream.video.android.datastore.delegate.StreamUserDataStore import io.getstream.video.android.model.User -import io.getstream.video.android.models.GoogleAccount +import io.getstream.video.android.models.builtInUsers +import io.getstream.video.android.models.toUsers +import io.getstream.video.android.tooling.util.StreamFlavors import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.firstOrNull @@ -44,6 +47,15 @@ class DirectCallJoinViewModel @Inject constructor( } } + private suspend fun getCombinedUsers(): List { + val currentUser = userDataStore.user.firstOrNull() + val googleUsers = suspend { googleAccountRepository.getAllAccounts().orEmpty().toUsers() } + return when (BuildConfig.FLAVOR == StreamFlavors.development) { + true -> User.builtInUsers().filterNot { it.id == currentUser?.id } + googleUsers() + else -> googleUsers() + } + } + fun getGoogleAccounts() { _uiState.update { it.copy(isLoading = true) } @@ -51,10 +63,10 @@ class DirectCallJoinViewModel @Inject constructor( _uiState.update { it.copy( isLoading = false, - googleAccounts = googleAccountRepository.getAllAccounts()?.map { user -> - GoogleAccountUiState( + otherUsers = getCombinedUsers().map { user -> + UserUiState( isSelected = false, - account = user, + user = user, ) }, ) @@ -65,11 +77,11 @@ class DirectCallJoinViewModel @Inject constructor( fun toggleGoogleAccountSelection(selectedIndex: Int) { _uiState.update { it.copy( - googleAccounts = it.googleAccounts?.mapIndexed { index, accountUiState -> + otherUsers = it.otherUsers?.mapIndexed { index, accountUiState -> if (index == selectedIndex) { - GoogleAccountUiState( + UserUiState( isSelected = !accountUiState.isSelected, - account = accountUiState.account, + user = accountUiState.user, ) } else { accountUiState @@ -83,10 +95,10 @@ class DirectCallJoinViewModel @Inject constructor( data class DirectCallUiState( val isLoading: Boolean = false, val currentUser: User? = null, - val googleAccounts: List? = emptyList(), + val otherUsers: List? = emptyList(), ) -data class GoogleAccountUiState( +data class UserUiState( val isSelected: Boolean = false, - val account: GoogleAccount, + val user: User, ) diff --git a/demo-app/src/main/kotlin/io/getstream/video/android/util/config/AppConfig.kt b/demo-app/src/main/kotlin/io/getstream/video/android/util/config/AppConfig.kt index 274c23db1a..a18d37bc11 100644 --- a/demo-app/src/main/kotlin/io/getstream/video/android/util/config/AppConfig.kt +++ b/demo-app/src/main/kotlin/io/getstream/video/android/util/config/AppConfig.kt @@ -68,6 +68,12 @@ object AppConfig { displayName = "Staging", sharelink = "https://staging.getstream.io/join/", ), + StreamEnvironment( + env = "pronto-staging", + aliases = emptyList(), + displayName = "Pronto Staging", + sharelink = "https://pronto-staging.getstream.io/join/", + ), ) // Utilities diff --git a/demo-app/src/main/res/values/strings.xml b/demo-app/src/main/res/values/strings.xml index 0102424944..eb8dd6e050 100644 --- a/demo-app/src/main/res/values/strings.xml +++ b/demo-app/src/main/res/values/strings.xml @@ -24,6 +24,7 @@ Google Sign In Sign In with Email Random User Sign In + Built-in User Sign In Having problems logging in?  Contact us Sign out @@ -42,6 +43,7 @@ Direct Call Select users and tap the call button below Enter your e-mail address + Select a user to login with Google sign in not finalized, please try again Are you sure you want to sign out? Cancel diff --git a/demo-app/src/staging/res/values/strings.xml b/demo-app/src/staging/res/values/strings.xml new file mode 100644 index 0000000000..af38a2f471 --- /dev/null +++ b/demo-app/src/staging/res/values/strings.xml @@ -0,0 +1,19 @@ + + + + Stream Video Calls (Staging) + \ No newline at end of file diff --git a/stream-video-android-core/api/stream-video-android-core.api b/stream-video-android-core/api/stream-video-android-core.api index 2cc58a02a7..44c9a8505a 100644 --- a/stream-video-android-core/api/stream-video-android-core.api +++ b/stream-video-android-core/api/stream-video-android-core.api @@ -51,7 +51,8 @@ public final class io/getstream/video/android/core/Call { public final fun queryMembers (Ljava/util/Map;Ljava/util/List;ILjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public static synthetic fun queryMembers$default (Lio/getstream/video/android/core/Call;Ljava/util/Map;Ljava/util/List;ILjava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun reconnect (ZLkotlin/coroutines/Continuation;)Ljava/lang/Object; - public final fun reject (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public final fun reject (Lio/getstream/video/android/core/model/RejectReason;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun reject$default (Lio/getstream/video/android/core/Call;Lio/getstream/video/android/core/model/RejectReason;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public final fun removeMembers (Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun requestPermissions ([Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public final fun revokePermissions (Ljava/lang/String;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -169,8 +170,8 @@ public final class io/getstream/video/android/core/CallState { public final fun updateFromResponse (Lorg/openapitools/client/models/GetOrCreateCallResponse;)V public final fun updateFromResponse (Lorg/openapitools/client/models/GoLiveResponse;)V public final fun updateFromResponse (Lorg/openapitools/client/models/JoinCallResponse;)V - public final fun updateFromResponse (Lorg/openapitools/client/models/QueryMembersResponse;)V - public final fun updateFromResponse (Lorg/openapitools/client/models/StartBroadcastingResponse;)V + public final fun updateFromResponse (Lorg/openapitools/client/models/QueryCallMembersResponse;)V + public final fun updateFromResponse (Lorg/openapitools/client/models/StartHLSBroadcastingResponse;)V public final fun updateFromResponse (Lorg/openapitools/client/models/StopLiveResponse;)V public final fun updateFromResponse (Lorg/openapitools/client/models/UpdateCallResponse;)V public final fun updateParticipant (Lio/getstream/video/android/core/ParticipantState;)V @@ -848,6 +849,8 @@ public abstract interface class io/getstream/video/android/core/api/SignalServer public abstract fun sendAnswer (Lstream/video/sfu/signal/SendAnswerRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun sendStats (Lstream/video/sfu/signal/SendStatsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun setPublisher (Lstream/video/sfu/signal/SetPublisherRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun startNoiseCancellation (Lstream/video/sfu/signal/StartNoiseCancellationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun stopNoiseCancellation (Lstream/video/sfu/signal/StopNoiseCancellationRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun updateMuteStates (Lstream/video/sfu/signal/UpdateMuteStatesRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun updateSubscriptions (Lstream/video/sfu/signal/UpdateSubscriptionsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } @@ -3970,6 +3973,45 @@ public final class io/getstream/video/android/core/model/ReactionState$Running : public fun toString ()Ljava/lang/String; } +public abstract class io/getstream/video/android/core/model/RejectReason { + public abstract fun getAlias ()Ljava/lang/String; +} + +public final class io/getstream/video/android/core/model/RejectReason$Busy : io/getstream/video/android/core/model/RejectReason { + public static final field INSTANCE Lio/getstream/video/android/core/model/RejectReason$Busy; + public fun equals (Ljava/lang/Object;)Z + public fun getAlias ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class io/getstream/video/android/core/model/RejectReason$Cancel : io/getstream/video/android/core/model/RejectReason { + public static final field INSTANCE Lio/getstream/video/android/core/model/RejectReason$Cancel; + public fun equals (Ljava/lang/Object;)Z + public fun getAlias ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class io/getstream/video/android/core/model/RejectReason$Custom : io/getstream/video/android/core/model/RejectReason { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lio/getstream/video/android/core/model/RejectReason$Custom; + public static synthetic fun copy$default (Lio/getstream/video/android/core/model/RejectReason$Custom;Ljava/lang/String;ILjava/lang/Object;)Lio/getstream/video/android/core/model/RejectReason$Custom; + public fun equals (Ljava/lang/Object;)Z + public fun getAlias ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class io/getstream/video/android/core/model/RejectReason$Decline : io/getstream/video/android/core/model/RejectReason { + public static final field INSTANCE Lio/getstream/video/android/core/model/RejectReason$Decline; + public fun equals (Ljava/lang/Object;)Z + public fun getAlias ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class io/getstream/video/android/core/model/ScreenSharingSession { public fun (Lio/getstream/video/android/core/ParticipantState;)V public final fun component1 ()Lio/getstream/video/android/core/ParticipantState; @@ -3996,8 +4038,8 @@ public final class io/getstream/video/android/core/model/SortData { } public final class io/getstream/video/android/core/model/SortDataKt { - public static final fun toRequest (Lio/getstream/video/android/core/model/SortData;)Lorg/openapitools/client/models/SortParamRequest; - public static final fun toRequest (Lio/getstream/video/android/core/model/SortField;)Lorg/openapitools/client/models/SortParamRequest; + public static final fun toRequest (Lio/getstream/video/android/core/model/SortData;)Lorg/openapitools/client/models/SortParam; + public static final fun toRequest (Lio/getstream/video/android/core/model/SortField;)Lorg/openapitools/client/models/SortParam; } public abstract class io/getstream/video/android/core/model/SortField { @@ -4088,6 +4130,7 @@ public class io/getstream/video/android/core/notifications/DefaultNotificationHa public fun getOngoingCallNotification (Ljava/lang/String;Lio/getstream/video/android/model/StreamCallId;)Landroid/app/Notification; public fun getRingingCallNotification (Lio/getstream/video/android/core/RingingState;Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;Z)Landroid/app/Notification; public fun onLiveCall (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;)V + public fun onMissedCall (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;)V public fun onNotification (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;)V public fun onPermissionDenied ()V public fun onPermissionGranted ()V @@ -4136,6 +4179,7 @@ public abstract interface class io/getstream/video/android/core/notifications/No public abstract fun getRingingCallNotification (Lio/getstream/video/android/core/RingingState;Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;Z)Landroid/app/Notification; public static synthetic fun getRingingCallNotification$default (Lio/getstream/video/android/core/notifications/NotificationHandler;Lio/getstream/video/android/core/RingingState;Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;ZILjava/lang/Object;)Landroid/app/Notification; public abstract fun onLiveCall (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;)V + public abstract fun onMissedCall (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;)V public abstract fun onNotification (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;)V public abstract fun onRingingCall (Lio/getstream/video/android/model/StreamCallId;Ljava/lang/String;)V } @@ -5991,42 +6035,47 @@ public final class io/getstream/video/android/model/UserType$Guest : io/getstrea } public final class io/getstream/video/android/model/mapper/StreamCallCidMapperKt { - public static final fun isValidCallId (Ljava/lang/String;)Z + public static final fun isValidCallCid (Ljava/lang/String;)Z public static final fun toTypeAndId (Ljava/lang/String;)Lkotlin/Pair; } -public abstract interface class org/openapitools/client/apis/DefaultApi { +public abstract interface class org/openapitools/client/apis/ProductvideoApi { public abstract fun acceptCall (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun blockUser (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/BlockUserRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun collectUserFeedback (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/CollectUserFeedbackRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun createDevice (Lorg/openapitools/client/models/CreateDeviceRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun createGuest (Lorg/openapitools/client/models/CreateGuestRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun deleteDevice (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun deleteDevice$default (Lorg/openapitools/client/apis/DefaultApi;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun deleteDevice$default (Lorg/openapitools/client/apis/ProductvideoApi;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public abstract fun deleteRecording (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun deleteTranscription (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun endCall (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getCall (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun getCall$default (Lorg/openapitools/client/apis/DefaultApi;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun getCall$default (Lorg/openapitools/client/apis/ProductvideoApi;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/Boolean;Ljava/lang/Boolean;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public abstract fun getCallStats (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getEdges (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun getOrCreateCall (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/GetOrCreateCallRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun getOrCreateCall$default (Lorg/openapitools/client/apis/DefaultApi;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/GetOrCreateCallRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun getOrCreateCall$default (Lorg/openapitools/client/apis/ProductvideoApi;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/GetOrCreateCallRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public abstract fun goLive (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/GoLiveRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun joinCall (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/JoinCallRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun joinCall$default (Lorg/openapitools/client/apis/DefaultApi;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/JoinCallRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public static synthetic fun joinCall$default (Lorg/openapitools/client/apis/ProductvideoApi;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/JoinCallRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; public abstract fun listDevices (Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun listDevices$default (Lorg/openapitools/client/apis/DefaultApi;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public abstract fun listRecordingsTypeId0 (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun listRecordingsTypeIdSession1 (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun listDevices$default (Lorg/openapitools/client/apis/ProductvideoApi;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public abstract fun listRecordings (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun listTranscriptions (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun muteUsers (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MuteUsersRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun queryCallMembers (Lorg/openapitools/client/models/QueryCallMembersRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun queryCallStats (Lorg/openapitools/client/models/QueryCallStatsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun queryCalls (Lorg/openapitools/client/models/QueryCallsRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public static synthetic fun queryCalls$default (Lorg/openapitools/client/apis/DefaultApi;Lorg/openapitools/client/models/QueryCallsRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; - public abstract fun queryMembers (Lorg/openapitools/client/models/QueryMembersRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun rejectCall (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public static synthetic fun queryCalls$default (Lorg/openapitools/client/apis/ProductvideoApi;Lorg/openapitools/client/models/QueryCallsRequest;Ljava/lang/String;Lkotlin/coroutines/Continuation;ILjava/lang/Object;)Ljava/lang/Object; + public abstract fun rejectCall (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/RejectCallRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun requestPermission (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/RequestPermissionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun sendEvent (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/SendEventRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun sendCallEvent (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/SendCallEventRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun sendVideoReaction (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/SendReactionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun startBroadcasting (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun startRecording (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun startTranscription (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun stopBroadcasting (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun startHLSBroadcasting (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun startRecording (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/StartRecordingRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun startTranscription (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/StartTranscriptionRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun stopHLSBroadcasting (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun stopLive (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun stopRecording (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun stopTranscription (Ljava/lang/String;Ljava/lang/String;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; @@ -6034,7 +6083,7 @@ public abstract interface class org/openapitools/client/apis/DefaultApi { public abstract fun updateCall (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UpdateCallRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun updateCallMembers (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UpdateCallMembersRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun updateUserPermissions (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UpdateUserPermissionsRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; - public abstract fun videoConnect (Lorg/openapitools/client/models/WSAuthMessageRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; + public abstract fun videoConnect (Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun videoPin (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PinRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; public abstract fun videoUnpin (Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UnpinRequest;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; } @@ -6162,80 +6211,23 @@ public final class org/openapitools/client/models/AcceptCallResponse { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/AudioSettings { - public fun (ZLorg/openapitools/client/models/AudioSettings$DefaultDevice;ZZZZ)V - public final fun component1 ()Z - public final fun component2 ()Lorg/openapitools/client/models/AudioSettings$DefaultDevice; - public final fun component3 ()Z - public final fun component4 ()Z - public final fun component5 ()Z - public final fun component6 ()Z - public final fun copy (ZLorg/openapitools/client/models/AudioSettings$DefaultDevice;ZZZZ)Lorg/openapitools/client/models/AudioSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/AudioSettings;ZLorg/openapitools/client/models/AudioSettings$DefaultDevice;ZZZZILjava/lang/Object;)Lorg/openapitools/client/models/AudioSettings; - public fun equals (Ljava/lang/Object;)Z - public final fun getAccessRequestEnabled ()Z - public final fun getDefaultDevice ()Lorg/openapitools/client/models/AudioSettings$DefaultDevice; - public final fun getMicDefaultOn ()Z - public final fun getOpusDtxEnabled ()Z - public final fun getRedundantCodingEnabled ()Z - public final fun getSpeakerDefaultOn ()Z - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public abstract class org/openapitools/client/models/AudioSettings$DefaultDevice { - public static final field Companion Lorg/openapitools/client/models/AudioSettings$DefaultDevice$Companion; - public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getValue ()Ljava/lang/String; - public fun toString ()Ljava/lang/String; -} - -public final class org/openapitools/client/models/AudioSettings$DefaultDevice$Companion { - public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/AudioSettings$DefaultDevice; -} - -public final class org/openapitools/client/models/AudioSettings$DefaultDevice$DefaultDeviceAdapter : com/squareup/moshi/JsonAdapter { - public fun ()V - public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; - public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/AudioSettings$DefaultDevice; - public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V - public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/AudioSettings$DefaultDevice;)V -} - -public final class org/openapitools/client/models/AudioSettings$DefaultDevice$Earpiece : org/openapitools/client/models/AudioSettings$DefaultDevice { - public static final field INSTANCE Lorg/openapitools/client/models/AudioSettings$DefaultDevice$Earpiece; -} - -public final class org/openapitools/client/models/AudioSettings$DefaultDevice$Speaker : org/openapitools/client/models/AudioSettings$DefaultDevice { - public static final field INSTANCE Lorg/openapitools/client/models/AudioSettings$DefaultDevice$Speaker; -} - -public final class org/openapitools/client/models/AudioSettings$DefaultDevice$Unknown : org/openapitools/client/models/AudioSettings$DefaultDevice { - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/AudioSettings$DefaultDevice$Unknown; - public static synthetic fun copy$default (Lorg/openapitools/client/models/AudioSettings$DefaultDevice$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/AudioSettings$DefaultDevice$Unknown; - public fun equals (Ljava/lang/Object;)Z - public final fun getUnknownValue ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - public final class org/openapitools/client/models/AudioSettingsRequest { - public fun (Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V - public synthetic fun (Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/NoiseCancellationSettings;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/NoiseCancellationSettings;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice; public final fun component2 ()Ljava/lang/Boolean; public final fun component3 ()Ljava/lang/Boolean; - public final fun component4 ()Ljava/lang/Boolean; + public final fun component4 ()Lorg/openapitools/client/models/NoiseCancellationSettings; public final fun component5 ()Ljava/lang/Boolean; public final fun component6 ()Ljava/lang/Boolean; - public final fun copy (Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/openapitools/client/models/AudioSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/AudioSettingsRequest; + public final fun component7 ()Ljava/lang/Boolean; + public final fun copy (Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/NoiseCancellationSettings;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/openapitools/client/models/AudioSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice;Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/NoiseCancellationSettings;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/AudioSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAccessRequestEnabled ()Ljava/lang/Boolean; public final fun getDefaultDevice ()Lorg/openapitools/client/models/AudioSettingsRequest$DefaultDevice; public final fun getMicDefaultOn ()Ljava/lang/Boolean; + public final fun getNoiseCancellation ()Lorg/openapitools/client/models/NoiseCancellationSettings; public final fun getOpusDtxEnabled ()Ljava/lang/Boolean; public final fun getRedundantCodingEnabled ()Ljava/lang/Boolean; public final fun getSpeakerDefaultOn ()Ljava/lang/Boolean; @@ -6281,13 +6273,64 @@ public final class org/openapitools/client/models/AudioSettingsRequest$DefaultDe public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/BackstageSettings { - public fun (Z)V +public final class org/openapitools/client/models/AudioSettingsResponse { + public fun (ZLorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice;ZZZZLorg/openapitools/client/models/NoiseCancellationSettings;)V + public synthetic fun (ZLorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice;ZZZZLorg/openapitools/client/models/NoiseCancellationSettings;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Z - public final fun copy (Z)Lorg/openapitools/client/models/BackstageSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/BackstageSettings;ZILjava/lang/Object;)Lorg/openapitools/client/models/BackstageSettings; + public final fun component2 ()Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice; + public final fun component3 ()Z + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Z + public final fun component7 ()Lorg/openapitools/client/models/NoiseCancellationSettings; + public final fun copy (ZLorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice;ZZZZLorg/openapitools/client/models/NoiseCancellationSettings;)Lorg/openapitools/client/models/AudioSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/AudioSettingsResponse;ZLorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice;ZZZZLorg/openapitools/client/models/NoiseCancellationSettings;ILjava/lang/Object;)Lorg/openapitools/client/models/AudioSettingsResponse; public fun equals (Ljava/lang/Object;)Z - public final fun getEnabled ()Z + public final fun getAccessRequestEnabled ()Z + public final fun getDefaultDevice ()Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice; + public final fun getMicDefaultOn ()Z + public final fun getNoiseCancellation ()Lorg/openapitools/client/models/NoiseCancellationSettings; + public final fun getOpusDtxEnabled ()Z + public final fun getRedundantCodingEnabled ()Z + public final fun getSpeakerDefaultOn ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/AudioSettingsResponse$DefaultDevice { + public static final field Companion Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice; +} + +public final class org/openapitools/client/models/AudioSettingsResponse$DefaultDevice$DefaultDeviceAdapter : com/squareup/moshi/JsonAdapter { + public fun ()V + public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice; + public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice;)V +} + +public final class org/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Earpiece : org/openapitools/client/models/AudioSettingsResponse$DefaultDevice { + public static final field INSTANCE Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Earpiece; +} + +public final class org/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Speaker : org/openapitools/client/models/AudioSettingsResponse$DefaultDevice { + public static final field INSTANCE Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Speaker; +} + +public final class org/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Unknown : org/openapitools/client/models/AudioSettingsResponse$DefaultDevice { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/AudioSettingsResponse$DefaultDevice$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getUnknownValue ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -6305,6 +6348,72 @@ public final class org/openapitools/client/models/BackstageSettingsRequest { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/BackstageSettingsResponse { + public fun (Z)V + public final fun component1 ()Z + public final fun copy (Z)Lorg/openapitools/client/models/BackstageSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/BackstageSettingsResponse;ZILjava/lang/Object;)Lorg/openapitools/client/models/BackstageSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getEnabled ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/BlockListOptions { + public fun (Lorg/openapitools/client/models/BlockListOptions$Behavior;Ljava/lang/String;)V + public final fun component1 ()Lorg/openapitools/client/models/BlockListOptions$Behavior; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lorg/openapitools/client/models/BlockListOptions$Behavior;Ljava/lang/String;)Lorg/openapitools/client/models/BlockListOptions; + public static synthetic fun copy$default (Lorg/openapitools/client/models/BlockListOptions;Lorg/openapitools/client/models/BlockListOptions$Behavior;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/BlockListOptions; + public fun equals (Ljava/lang/Object;)Z + public final fun getBehavior ()Lorg/openapitools/client/models/BlockListOptions$Behavior; + public final fun getBlocklist ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/BlockListOptions$Behavior { + public static final field Companion Lorg/openapitools/client/models/BlockListOptions$Behavior$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/BlockListOptions$Behavior$BehaviorAdapter : com/squareup/moshi/JsonAdapter { + public fun ()V + public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/BlockListOptions$Behavior; + public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/BlockListOptions$Behavior;)V +} + +public final class org/openapitools/client/models/BlockListOptions$Behavior$Block : org/openapitools/client/models/BlockListOptions$Behavior { + public static final field INSTANCE Lorg/openapitools/client/models/BlockListOptions$Behavior$Block; +} + +public final class org/openapitools/client/models/BlockListOptions$Behavior$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/BlockListOptions$Behavior; +} + +public final class org/openapitools/client/models/BlockListOptions$Behavior$Flag : org/openapitools/client/models/BlockListOptions$Behavior { + public static final field INSTANCE Lorg/openapitools/client/models/BlockListOptions$Behavior$Flag; +} + +public final class org/openapitools/client/models/BlockListOptions$Behavior$ShadowBlock : org/openapitools/client/models/BlockListOptions$Behavior { + public static final field INSTANCE Lorg/openapitools/client/models/BlockListOptions$Behavior$ShadowBlock; +} + +public final class org/openapitools/client/models/BlockListOptions$Behavior$Unknown : org/openapitools/client/models/BlockListOptions$Behavior { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/BlockListOptions$Behavior$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/BlockListOptions$Behavior$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/BlockListOptions$Behavior$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getUnknownValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/BlockUserRequest { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; @@ -6349,19 +6458,6 @@ public final class org/openapitools/client/models/BlockedUserEvent : org/openapi public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/BroadcastSettings { - public fun (ZLorg/openapitools/client/models/HLSSettings;)V - public final fun component1 ()Z - public final fun component2 ()Lorg/openapitools/client/models/HLSSettings; - public final fun copy (ZLorg/openapitools/client/models/HLSSettings;)Lorg/openapitools/client/models/BroadcastSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/BroadcastSettings;ZLorg/openapitools/client/models/HLSSettings;ILjava/lang/Object;)Lorg/openapitools/client/models/BroadcastSettings; - public fun equals (Ljava/lang/Object;)Z - public final fun getEnabled ()Z - public final fun getHls ()Lorg/openapitools/client/models/HLSSettings; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - public final class org/openapitools/client/models/BroadcastSettingsRequest { public fun ()V public fun (Ljava/lang/Boolean;Lorg/openapitools/client/models/HLSSettingsRequest;)V @@ -6377,6 +6473,19 @@ public final class org/openapitools/client/models/BroadcastSettingsRequest { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/BroadcastSettingsResponse { + public fun (ZLorg/openapitools/client/models/HLSSettingsResponse;)V + public final fun component1 ()Z + public final fun component2 ()Lorg/openapitools/client/models/HLSSettingsResponse; + public final fun copy (ZLorg/openapitools/client/models/HLSSettingsResponse;)Lorg/openapitools/client/models/BroadcastSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/BroadcastSettingsResponse;ZLorg/openapitools/client/models/HLSSettingsResponse;ILjava/lang/Object;)Lorg/openapitools/client/models/BroadcastSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getEnabled ()Z + public final fun getHls ()Lorg/openapitools/client/models/HLSSettingsResponse; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/CallAcceptedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)V public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6399,61 +6508,60 @@ public final class org/openapitools/client/models/CallAcceptedEvent : org/openap public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallBroadcastingStartedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component3 ()Ljava/lang/String; +public final class org/openapitools/client/models/CallClosedCaption { + public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/CallBroadcastingStartedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallBroadcastingStartedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallBroadcastingStartedEvent; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallClosedCaption; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallClosedCaption;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallClosedCaption; public fun equals (Ljava/lang/Object;)Z - public fun getCallCID ()Ljava/lang/String; - public final fun getCallCid ()Ljava/lang/String; - public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; - public fun getEventType ()Ljava/lang/String; - public final fun getHlsPlaylistUrl ()Ljava/lang/String; - public final fun getType ()Ljava/lang/String; + public final fun getEndTime ()Lorg/threeten/bp/OffsetDateTime; + public final fun getSpeakerId ()Ljava/lang/String; + public final fun getStartTime ()Lorg/threeten/bp/OffsetDateTime; + public final fun getText ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallBroadcastingStoppedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component3 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallBroadcastingStoppedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallBroadcastingStoppedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallBroadcastingStoppedEvent; +public final class org/openapitools/client/models/CallCreatedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/CallResponse; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallCreatedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallCreatedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallCreatedEvent; public fun equals (Ljava/lang/Object;)Z + public final fun getCall ()Lorg/openapitools/client/models/CallResponse; public fun getCallCID ()Ljava/lang/String; public final fun getCallCid ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; public fun getEventType ()Ljava/lang/String; + public final fun getMembers ()Ljava/util/List; public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallCreatedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/CallDeletedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lorg/openapitools/client/models/CallResponse; public final fun component2 ()Ljava/lang/String; public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallCreatedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallCreatedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallCreatedEvent; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallDeletedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallDeletedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallDeletedEvent; public fun equals (Ljava/lang/Object;)Z public final fun getCall ()Lorg/openapitools/client/models/CallResponse; public fun getCallCID ()Ljava/lang/String; public final fun getCallCid ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; public fun getEventType ()Ljava/lang/String; - public final fun getMembers ()Ljava/util/List; public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; @@ -6481,28 +6589,34 @@ public final class org/openapitools/client/models/CallEndedEvent : org/openapito public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallIngressResponse { - public fun (Lorg/openapitools/client/models/RTMPIngress;)V - public final fun component1 ()Lorg/openapitools/client/models/RTMPIngress; - public final fun copy (Lorg/openapitools/client/models/RTMPIngress;)Lorg/openapitools/client/models/CallIngressResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallIngressResponse;Lorg/openapitools/client/models/RTMPIngress;ILjava/lang/Object;)Lorg/openapitools/client/models/CallIngressResponse; +public final class org/openapitools/client/models/CallEvent { + public fun (Ljava/lang/String;IIILjava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()I + public final fun component3 ()I + public final fun component4 ()I + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;IIILjava/lang/String;)Lorg/openapitools/client/models/CallEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallEvent;Ljava/lang/String;IIILjava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getRtmp ()Lorg/openapitools/client/models/RTMPIngress; + public final fun getDescription ()Ljava/lang/String; + public final fun getEndTimestamp ()I + public final fun getSeverity ()I + public final fun getTimestamp ()I + public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallLiveStartedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V - public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lorg/openapitools/client/models/CallResponse; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component4 ()Ljava/lang/String; - public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallLiveStartedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallLiveStartedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallLiveStartedEvent; +public final class org/openapitools/client/models/CallHLSBroadcastingFailedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallHLSBroadcastingFailedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallHLSBroadcastingFailedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallHLSBroadcastingFailedEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getCall ()Lorg/openapitools/client/models/CallResponse; public fun getCallCID ()Ljava/lang/String; public final fun getCallCid ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; @@ -6512,38 +6626,107 @@ public final class org/openapitools/client/models/CallLiveStartedEvent : org/ope public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallMemberAddedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lorg/openapitools/client/models/CallResponse; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallMemberAddedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallMemberAddedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallMemberAddedEvent; +public final class org/openapitools/client/models/CallHLSBroadcastingStartedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/CallHLSBroadcastingStartedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallHLSBroadcastingStartedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallHLSBroadcastingStartedEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getCall ()Lorg/openapitools/client/models/CallResponse; public fun getCallCID ()Ljava/lang/String; public final fun getCallCid ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; public fun getEventType ()Ljava/lang/String; - public final fun getMembers ()Ljava/util/List; + public final fun getHlsPlaylistUrl ()Ljava/lang/String; public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallMemberRemovedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lorg/openapitools/client/models/CallResponse; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallMemberRemovedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallMemberRemovedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallMemberRemovedEvent; +public final class org/openapitools/client/models/CallHLSBroadcastingStoppedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallHLSBroadcastingStoppedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallHLSBroadcastingStoppedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallHLSBroadcastingStoppedEvent; + public fun equals (Ljava/lang/Object;)Z + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CallIngressResponse { + public fun (Lorg/openapitools/client/models/RTMPIngress;)V + public final fun component1 ()Lorg/openapitools/client/models/RTMPIngress; + public final fun copy (Lorg/openapitools/client/models/RTMPIngress;)Lorg/openapitools/client/models/CallIngressResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallIngressResponse;Lorg/openapitools/client/models/RTMPIngress;ILjava/lang/Object;)Lorg/openapitools/client/models/CallIngressResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getRtmp ()Lorg/openapitools/client/models/RTMPIngress; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CallLiveStartedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/CallResponse; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallLiveStartedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallLiveStartedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallLiveStartedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCall ()Lorg/openapitools/client/models/CallResponse; + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CallMemberAddedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/CallResponse; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallMemberAddedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallMemberAddedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallMemberAddedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCall ()Lorg/openapitools/client/models/CallResponse; + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getMembers ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CallMemberRemovedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/CallResponse; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallMemberRemovedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallMemberRemovedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallMemberRemovedEvent; public fun equals (Ljava/lang/Object;)Z public final fun getCall ()Lorg/openapitools/client/models/CallResponse; public fun getCallCID ()Ljava/lang/String; @@ -6602,6 +6785,32 @@ public final class org/openapitools/client/models/CallMemberUpdatedPermissionEve public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/CallMissedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)V + public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/CallResponse; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lorg/openapitools/client/models/UserResponse; + public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)Lorg/openapitools/client/models/CallMissedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallMissedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILjava/lang/Object;)Lorg/openapitools/client/models/CallMissedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCall ()Lorg/openapitools/client/models/CallResponse; + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getMembers ()Ljava/util/List; + public final fun getSessionId ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserResponse; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/CallNotificationEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)V public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -6800,8 +7009,8 @@ public final class org/openapitools/client/models/CallRequest { } public final class org/openapitools/client/models/CallResponse { - public fun (ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V - public synthetic fun (ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/ThumbnailResponse;)V + public synthetic fun (ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/ThumbnailResponse;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Z public final fun component10 ()Lorg/openapitools/client/models/CallIngressResponse; public final fun component11 ()Z @@ -6814,6 +7023,7 @@ public final class org/openapitools/client/models/CallResponse { public final fun component18 ()Lorg/threeten/bp/OffsetDateTime; public final fun component19 ()Ljava/lang/String; public final fun component2 ()Ljava/util/List; + public final fun component20 ()Lorg/openapitools/client/models/ThumbnailResponse; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Lorg/threeten/bp/OffsetDateTime; public final fun component5 ()Lorg/openapitools/client/models/UserResponse; @@ -6821,8 +7031,8 @@ public final class org/openapitools/client/models/CallResponse { public final fun component7 ()Ljava/util/Map; public final fun component8 ()Lorg/openapitools/client/models/EgressResponse; public final fun component9 ()Ljava/lang/String; - public final fun copy (ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallResponse;ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallResponse; + public final fun copy (ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/ThumbnailResponse;)Lorg/openapitools/client/models/CallResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallResponse;ZLjava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserResponse;Ljava/lang/String;Ljava/util/Map;Lorg/openapitools/client/models/EgressResponse;Ljava/lang/String;Lorg/openapitools/client/models/CallIngressResponse;ZLorg/openapitools/client/models/CallSettingsResponse;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/CallSessionResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/ThumbnailResponse;ILjava/lang/Object;)Lorg/openapitools/client/models/CallResponse; public fun equals (Ljava/lang/Object;)Z public final fun getBackstage ()Z public final fun getBlockedUserIds ()Ljava/util/List; @@ -6840,6 +7050,7 @@ public final class org/openapitools/client/models/CallResponse { public final fun getSettings ()Lorg/openapitools/client/models/CallSettingsResponse; public final fun getStartsAt ()Lorg/threeten/bp/OffsetDateTime; public final fun getTeam ()Ljava/lang/String; + public final fun getThumbnails ()Lorg/openapitools/client/models/ThumbnailResponse; public final fun getTranscribing ()Z public final fun getType ()Ljava/lang/String; public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; @@ -6940,29 +7151,33 @@ public final class org/openapitools/client/models/CallSessionParticipantLeftEven } public final class org/openapitools/client/models/CallSessionResponse { - public fun (Ljava/util/Map;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;)V - public synthetic fun (Ljava/util/Map;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;)V + public synthetic fun (Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/util/Map; + public final fun component10 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component11 ()Lorg/threeten/bp/OffsetDateTime; public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/util/List; - public final fun component4 ()Ljava/util/Map; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Ljava/util/List; public final fun component5 ()Ljava/util/Map; - public final fun component6 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component6 ()Ljava/util/Map; public final fun component7 ()Lorg/threeten/bp/OffsetDateTime; public final fun component8 ()Lorg/threeten/bp/OffsetDateTime; public final fun component9 ()Lorg/threeten/bp/OffsetDateTime; - public final fun copy (Ljava/util/Map;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/CallSessionResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallSessionResponse;Ljava/util/Map;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/CallSessionResponse; + public final fun copy (Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/CallSessionResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallSessionResponse;Ljava/util/Map;Ljava/lang/String;Ljava/util/Map;Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/CallSessionResponse; public fun equals (Ljava/lang/Object;)Z public final fun getAcceptedBy ()Ljava/util/Map; public final fun getEndedAt ()Lorg/threeten/bp/OffsetDateTime; public final fun getId ()Ljava/lang/String; public final fun getLiveEndedAt ()Lorg/threeten/bp/OffsetDateTime; public final fun getLiveStartedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getMissedBy ()Ljava/util/Map; public final fun getParticipants ()Ljava/util/List; public final fun getParticipantsCountByRole ()Ljava/util/Map; public final fun getRejectedBy ()Ljava/util/Map; public final fun getStartedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getTimerEndsAt ()Lorg/threeten/bp/OffsetDateTime; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -6991,27 +7206,31 @@ public final class org/openapitools/client/models/CallSessionStartedEvent : org/ public final class org/openapitools/client/models/CallSettingsRequest { public fun ()V - public fun (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;)V - public synthetic fun (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/LimitsSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/ThumbnailsSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;)V + public synthetic fun (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/LimitsSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/ThumbnailsSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lorg/openapitools/client/models/AudioSettingsRequest; + public final fun component10 ()Lorg/openapitools/client/models/TranscriptionSettingsRequest; + public final fun component11 ()Lorg/openapitools/client/models/VideoSettingsRequest; public final fun component2 ()Lorg/openapitools/client/models/BackstageSettingsRequest; public final fun component3 ()Lorg/openapitools/client/models/BroadcastSettingsRequest; public final fun component4 ()Lorg/openapitools/client/models/GeofenceSettingsRequest; - public final fun component5 ()Lorg/openapitools/client/models/RecordSettingsRequest; - public final fun component6 ()Lorg/openapitools/client/models/RingSettingsRequest; - public final fun component7 ()Lorg/openapitools/client/models/ScreensharingSettingsRequest; - public final fun component8 ()Lorg/openapitools/client/models/TranscriptionSettingsRequest; - public final fun component9 ()Lorg/openapitools/client/models/VideoSettingsRequest; - public final fun copy (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;)Lorg/openapitools/client/models/CallSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallSettingsRequest;Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;ILjava/lang/Object;)Lorg/openapitools/client/models/CallSettingsRequest; + public final fun component5 ()Lorg/openapitools/client/models/LimitsSettingsRequest; + public final fun component6 ()Lorg/openapitools/client/models/RecordSettingsRequest; + public final fun component7 ()Lorg/openapitools/client/models/RingSettingsRequest; + public final fun component8 ()Lorg/openapitools/client/models/ScreensharingSettingsRequest; + public final fun component9 ()Lorg/openapitools/client/models/ThumbnailsSettingsRequest; + public final fun copy (Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/LimitsSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/ThumbnailsSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;)Lorg/openapitools/client/models/CallSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallSettingsRequest;Lorg/openapitools/client/models/AudioSettingsRequest;Lorg/openapitools/client/models/BackstageSettingsRequest;Lorg/openapitools/client/models/BroadcastSettingsRequest;Lorg/openapitools/client/models/GeofenceSettingsRequest;Lorg/openapitools/client/models/LimitsSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RingSettingsRequest;Lorg/openapitools/client/models/ScreensharingSettingsRequest;Lorg/openapitools/client/models/ThumbnailsSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/VideoSettingsRequest;ILjava/lang/Object;)Lorg/openapitools/client/models/CallSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAudio ()Lorg/openapitools/client/models/AudioSettingsRequest; public final fun getBackstage ()Lorg/openapitools/client/models/BackstageSettingsRequest; public final fun getBroadcasting ()Lorg/openapitools/client/models/BroadcastSettingsRequest; public final fun getGeofencing ()Lorg/openapitools/client/models/GeofenceSettingsRequest; + public final fun getLimits ()Lorg/openapitools/client/models/LimitsSettingsRequest; public final fun getRecording ()Lorg/openapitools/client/models/RecordSettingsRequest; public final fun getRing ()Lorg/openapitools/client/models/RingSettingsRequest; public final fun getScreensharing ()Lorg/openapitools/client/models/ScreensharingSettingsRequest; + public final fun getThumbnails ()Lorg/openapitools/client/models/ThumbnailsSettingsRequest; public final fun getTranscription ()Lorg/openapitools/client/models/TranscriptionSettingsRequest; public final fun getVideo ()Lorg/openapitools/client/models/VideoSettingsRequest; public fun hashCode ()I @@ -7019,28 +7238,32 @@ public final class org/openapitools/client/models/CallSettingsRequest { } public final class org/openapitools/client/models/CallSettingsResponse { - public fun (Lorg/openapitools/client/models/AudioSettings;Lorg/openapitools/client/models/BackstageSettings;Lorg/openapitools/client/models/BroadcastSettings;Lorg/openapitools/client/models/GeofenceSettings;Lorg/openapitools/client/models/RecordSettings;Lorg/openapitools/client/models/RingSettings;Lorg/openapitools/client/models/ScreensharingSettings;Lorg/openapitools/client/models/TranscriptionSettings;Lorg/openapitools/client/models/VideoSettings;)V - public final fun component1 ()Lorg/openapitools/client/models/AudioSettings; - public final fun component2 ()Lorg/openapitools/client/models/BackstageSettings; - public final fun component3 ()Lorg/openapitools/client/models/BroadcastSettings; - public final fun component4 ()Lorg/openapitools/client/models/GeofenceSettings; - public final fun component5 ()Lorg/openapitools/client/models/RecordSettings; - public final fun component6 ()Lorg/openapitools/client/models/RingSettings; - public final fun component7 ()Lorg/openapitools/client/models/ScreensharingSettings; - public final fun component8 ()Lorg/openapitools/client/models/TranscriptionSettings; - public final fun component9 ()Lorg/openapitools/client/models/VideoSettings; - public final fun copy (Lorg/openapitools/client/models/AudioSettings;Lorg/openapitools/client/models/BackstageSettings;Lorg/openapitools/client/models/BroadcastSettings;Lorg/openapitools/client/models/GeofenceSettings;Lorg/openapitools/client/models/RecordSettings;Lorg/openapitools/client/models/RingSettings;Lorg/openapitools/client/models/ScreensharingSettings;Lorg/openapitools/client/models/TranscriptionSettings;Lorg/openapitools/client/models/VideoSettings;)Lorg/openapitools/client/models/CallSettingsResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallSettingsResponse;Lorg/openapitools/client/models/AudioSettings;Lorg/openapitools/client/models/BackstageSettings;Lorg/openapitools/client/models/BroadcastSettings;Lorg/openapitools/client/models/GeofenceSettings;Lorg/openapitools/client/models/RecordSettings;Lorg/openapitools/client/models/RingSettings;Lorg/openapitools/client/models/ScreensharingSettings;Lorg/openapitools/client/models/TranscriptionSettings;Lorg/openapitools/client/models/VideoSettings;ILjava/lang/Object;)Lorg/openapitools/client/models/CallSettingsResponse; - public fun equals (Ljava/lang/Object;)Z - public final fun getAudio ()Lorg/openapitools/client/models/AudioSettings; - public final fun getBackstage ()Lorg/openapitools/client/models/BackstageSettings; - public final fun getBroadcasting ()Lorg/openapitools/client/models/BroadcastSettings; - public final fun getGeofencing ()Lorg/openapitools/client/models/GeofenceSettings; - public final fun getRecording ()Lorg/openapitools/client/models/RecordSettings; - public final fun getRing ()Lorg/openapitools/client/models/RingSettings; - public final fun getScreensharing ()Lorg/openapitools/client/models/ScreensharingSettings; - public final fun getTranscription ()Lorg/openapitools/client/models/TranscriptionSettings; - public final fun getVideo ()Lorg/openapitools/client/models/VideoSettings; + public fun (Lorg/openapitools/client/models/AudioSettingsResponse;Lorg/openapitools/client/models/BackstageSettingsResponse;Lorg/openapitools/client/models/BroadcastSettingsResponse;Lorg/openapitools/client/models/GeofenceSettingsResponse;Lorg/openapitools/client/models/LimitsSettingsResponse;Lorg/openapitools/client/models/RecordSettingsResponse;Lorg/openapitools/client/models/RingSettingsResponse;Lorg/openapitools/client/models/ScreensharingSettingsResponse;Lorg/openapitools/client/models/ThumbnailsSettingsResponse;Lorg/openapitools/client/models/TranscriptionSettingsResponse;Lorg/openapitools/client/models/VideoSettingsResponse;)V + public final fun component1 ()Lorg/openapitools/client/models/AudioSettingsResponse; + public final fun component10 ()Lorg/openapitools/client/models/TranscriptionSettingsResponse; + public final fun component11 ()Lorg/openapitools/client/models/VideoSettingsResponse; + public final fun component2 ()Lorg/openapitools/client/models/BackstageSettingsResponse; + public final fun component3 ()Lorg/openapitools/client/models/BroadcastSettingsResponse; + public final fun component4 ()Lorg/openapitools/client/models/GeofenceSettingsResponse; + public final fun component5 ()Lorg/openapitools/client/models/LimitsSettingsResponse; + public final fun component6 ()Lorg/openapitools/client/models/RecordSettingsResponse; + public final fun component7 ()Lorg/openapitools/client/models/RingSettingsResponse; + public final fun component8 ()Lorg/openapitools/client/models/ScreensharingSettingsResponse; + public final fun component9 ()Lorg/openapitools/client/models/ThumbnailsSettingsResponse; + public final fun copy (Lorg/openapitools/client/models/AudioSettingsResponse;Lorg/openapitools/client/models/BackstageSettingsResponse;Lorg/openapitools/client/models/BroadcastSettingsResponse;Lorg/openapitools/client/models/GeofenceSettingsResponse;Lorg/openapitools/client/models/LimitsSettingsResponse;Lorg/openapitools/client/models/RecordSettingsResponse;Lorg/openapitools/client/models/RingSettingsResponse;Lorg/openapitools/client/models/ScreensharingSettingsResponse;Lorg/openapitools/client/models/ThumbnailsSettingsResponse;Lorg/openapitools/client/models/TranscriptionSettingsResponse;Lorg/openapitools/client/models/VideoSettingsResponse;)Lorg/openapitools/client/models/CallSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallSettingsResponse;Lorg/openapitools/client/models/AudioSettingsResponse;Lorg/openapitools/client/models/BackstageSettingsResponse;Lorg/openapitools/client/models/BroadcastSettingsResponse;Lorg/openapitools/client/models/GeofenceSettingsResponse;Lorg/openapitools/client/models/LimitsSettingsResponse;Lorg/openapitools/client/models/RecordSettingsResponse;Lorg/openapitools/client/models/RingSettingsResponse;Lorg/openapitools/client/models/ScreensharingSettingsResponse;Lorg/openapitools/client/models/ThumbnailsSettingsResponse;Lorg/openapitools/client/models/TranscriptionSettingsResponse;Lorg/openapitools/client/models/VideoSettingsResponse;ILjava/lang/Object;)Lorg/openapitools/client/models/CallSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getAudio ()Lorg/openapitools/client/models/AudioSettingsResponse; + public final fun getBackstage ()Lorg/openapitools/client/models/BackstageSettingsResponse; + public final fun getBroadcasting ()Lorg/openapitools/client/models/BroadcastSettingsResponse; + public final fun getGeofencing ()Lorg/openapitools/client/models/GeofenceSettingsResponse; + public final fun getLimits ()Lorg/openapitools/client/models/LimitsSettingsResponse; + public final fun getRecording ()Lorg/openapitools/client/models/RecordSettingsResponse; + public final fun getRing ()Lorg/openapitools/client/models/RingSettingsResponse; + public final fun getScreensharing ()Lorg/openapitools/client/models/ScreensharingSettingsResponse; + public final fun getThumbnails ()Lorg/openapitools/client/models/ThumbnailsSettingsResponse; + public final fun getTranscription ()Lorg/openapitools/client/models/TranscriptionSettingsResponse; + public final fun getVideo ()Lorg/openapitools/client/models/VideoSettingsResponse; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -7063,141 +7286,677 @@ public final class org/openapitools/client/models/CallStateResponseFields { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallUpdatedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V - public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lorg/openapitools/client/models/CallResponse; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/util/Map; - public final fun component4 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallUpdatedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallUpdatedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallUpdatedEvent; +public final class org/openapitools/client/models/CallStatsReportSummaryResponse { + public fun (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;)V + public synthetic fun (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()I + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component6 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component7 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;)Lorg/openapitools/client/models/CallStatsReportSummaryResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallStatsReportSummaryResponse;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/CallStatsReportSummaryResponse; public fun equals (Ljava/lang/Object;)Z - public final fun getCall ()Lorg/openapitools/client/models/CallResponse; - public fun getCallCID ()Ljava/lang/String; public final fun getCallCid ()Ljava/lang/String; - public final fun getCapabilitiesByRole ()Ljava/util/Map; + public final fun getCallDurationSeconds ()I + public final fun getCallSessionId ()Ljava/lang/String; + public final fun getCallStatus ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; - public fun getEventType ()Ljava/lang/String; - public final fun getType ()Ljava/lang/String; + public final fun getFirstStatsTime ()Lorg/threeten/bp/OffsetDateTime; + public final fun getQualityScore ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CallUserMuted : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/CallTimeline { + public fun (Ljava/util/List;)V + public final fun component1 ()Ljava/util/List; + public final fun copy (Ljava/util/List;)Lorg/openapitools/client/models/CallTimeline; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallTimeline;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/CallTimeline; + public fun equals (Ljava/lang/Object;)Z + public final fun getEvents ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CallTranscription { + public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallTranscription; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallTranscription;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallTranscription; + public fun equals (Ljava/lang/Object;)Z + public final fun getEndTime ()Lorg/threeten/bp/OffsetDateTime; + public final fun getFilename ()Ljava/lang/String; + public final fun getStartTime ()Lorg/threeten/bp/OffsetDateTime; + public final fun getUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CallTranscriptionFailedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallUserMuted; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CallUserMuted;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallUserMuted; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallTranscriptionFailedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallTranscriptionFailedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallTranscriptionFailedEvent; public fun equals (Ljava/lang/Object;)Z public fun getCallCID ()Ljava/lang/String; public final fun getCallCid ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; public fun getEventType ()Ljava/lang/String; - public final fun getFromUserId ()Ljava/lang/String; - public final fun getMutedUserIds ()Ljava/util/List; public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/ConnectUserDetailsRequest { - public fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/CallTranscriptionReadyEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/openapitools/client/models/CallTranscription;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/openapitools/client/models/CallTranscription;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/util/Map; - public final fun component3 ()Ljava/lang/String; + public final fun component2 ()Lorg/openapitools/client/models/CallTranscription; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/ConnectUserDetailsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/ConnectUserDetailsRequest;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ConnectUserDetailsRequest; + public final fun copy (Ljava/lang/String;Lorg/openapitools/client/models/CallTranscription;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallTranscriptionReadyEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallTranscriptionReadyEvent;Ljava/lang/String;Lorg/openapitools/client/models/CallTranscription;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallTranscriptionReadyEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getCustom ()Ljava/util/Map; - public final fun getId ()Ljava/lang/String; - public final fun getImage ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCallTranscription ()Lorg/openapitools/client/models/CallTranscription; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/ConnectedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { - public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/CallTranscriptionStartedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component3 ()Lorg/openapitools/client/models/OwnUserResponse; - public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;)Lorg/openapitools/client/models/ConnectedEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/ConnectedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ConnectedEvent; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallTranscriptionStartedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallTranscriptionStartedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallTranscriptionStartedEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getConnectionId ()Ljava/lang/String; + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; public fun getEventType ()Ljava/lang/String; - public final fun getMe ()Lorg/openapitools/client/models/OwnUserResponse; public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/ConnectionErrorEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { - public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/CallTranscriptionStoppedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component3 ()Lorg/openapitools/client/models/APIError; - public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;)Lorg/openapitools/client/models/ConnectionErrorEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/ConnectionErrorEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ConnectionErrorEvent; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallTranscriptionStoppedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallTranscriptionStoppedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallTranscriptionStoppedEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getConnectionId ()Ljava/lang/String; + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; - public final fun getError ()Lorg/openapitools/client/models/APIError; public fun getEventType ()Ljava/lang/String; public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CreateDeviceRequest { - public fun ()V - public fun (Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;)V - public synthetic fun (Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Lorg/openapitools/client/models/UserRequest; +public final class org/openapitools/client/models/CallUpdatedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/CallResponse; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Lorg/threeten/bp/OffsetDateTime; public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/Boolean; - public final fun copy (Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;)Lorg/openapitools/client/models/CreateDeviceRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/CreateDeviceRequest;Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/CreateDeviceRequest; + public final fun copy (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/CallUpdatedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallUpdatedEvent;Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/Map;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallUpdatedEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getId ()Ljava/lang/String; - public final fun getPushProvider ()Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider; - public final fun getPushProviderName ()Ljava/lang/String; - public final fun getUser ()Lorg/openapitools/client/models/UserRequest; - public final fun getUserId ()Ljava/lang/String; - public final fun getVoipToken ()Ljava/lang/Boolean; + public final fun getCall ()Lorg/openapitools/client/models/CallResponse; + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCapabilitiesByRole ()Ljava/util/Map; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public abstract class org/openapitools/client/models/CreateDeviceRequest$PushProvider { - public static final field Companion Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider$Companion; - public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getValue ()Ljava/lang/String; +public final class org/openapitools/client/models/CallUserMutedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;)Lorg/openapitools/client/models/CallUserMutedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CallUserMutedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CallUserMutedEvent; + public fun equals (Ljava/lang/Object;)Z + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getFromUserId ()Ljava/lang/String; + public final fun getMutedUserIds ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/CreateDeviceRequest$PushProvider$Apn : org/openapitools/client/models/CreateDeviceRequest$PushProvider { - public static final field INSTANCE Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider$Apn; -} - -public final class org/openapitools/client/models/CreateDeviceRequest$PushProvider$Companion { +public final class org/openapitools/client/models/ChannelConfigWithInfo { + public fun (Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod;Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior;Ljava/util/List;ZLorg/threeten/bp/OffsetDateTime;ZZIZLjava/lang/String;ZZZZZZZZZLorg/threeten/bp/OffsetDateTime;ZZLjava/util/List;Lorg/openapitools/client/models/Thresholds;Ljava/lang/String;Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior;Ljava/util/List;Ljava/util/Map;)V + public synthetic fun (Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod;Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior;Ljava/util/List;ZLorg/threeten/bp/OffsetDateTime;ZZIZLjava/lang/String;ZZZZZZZZZLorg/threeten/bp/OffsetDateTime;ZZLjava/util/List;Lorg/openapitools/client/models/Thresholds;Ljava/lang/String;Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior;Ljava/util/List;Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Z + public final fun component12 ()Z + public final fun component13 ()Z + public final fun component14 ()Z + public final fun component15 ()Z + public final fun component16 ()Z + public final fun component17 ()Z + public final fun component18 ()Z + public final fun component19 ()Z + public final fun component2 ()Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior; + public final fun component20 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component21 ()Z + public final fun component22 ()Z + public final fun component23 ()Ljava/util/List; + public final fun component24 ()Lorg/openapitools/client/models/Thresholds; + public final fun component25 ()Ljava/lang/String; + public final fun component26 ()Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior; + public final fun component27 ()Ljava/util/List; + public final fun component28 ()Ljava/util/Map; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Z + public final fun component5 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component6 ()Z + public final fun component7 ()Z + public final fun component8 ()I + public final fun component9 ()Z + public final fun copy (Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod;Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior;Ljava/util/List;ZLorg/threeten/bp/OffsetDateTime;ZZIZLjava/lang/String;ZZZZZZZZZLorg/threeten/bp/OffsetDateTime;ZZLjava/util/List;Lorg/openapitools/client/models/Thresholds;Ljava/lang/String;Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior;Ljava/util/List;Ljava/util/Map;)Lorg/openapitools/client/models/ChannelConfigWithInfo; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ChannelConfigWithInfo;Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod;Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior;Ljava/util/List;ZLorg/threeten/bp/OffsetDateTime;ZZIZLjava/lang/String;ZZZZZZZZZLorg/threeten/bp/OffsetDateTime;ZZLjava/util/List;Lorg/openapitools/client/models/Thresholds;Ljava/lang/String;Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior;Ljava/util/List;Ljava/util/Map;ILjava/lang/Object;)Lorg/openapitools/client/models/ChannelConfigWithInfo; + public fun equals (Ljava/lang/Object;)Z + public final fun getAllowedFlagReasons ()Ljava/util/List; + public final fun getAutomod ()Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod; + public final fun getAutomodBehavior ()Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior; + public final fun getAutomodThresholds ()Lorg/openapitools/client/models/Thresholds; + public final fun getBlocklist ()Ljava/lang/String; + public final fun getBlocklistBehavior ()Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior; + public final fun getBlocklists ()Ljava/util/List; + public final fun getCommands ()Ljava/util/List; + public final fun getConnectEvents ()Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getCustomEvents ()Z + public final fun getGrants ()Ljava/util/Map; + public final fun getMarkMessagesPending ()Z + public final fun getMaxMessageLength ()I + public final fun getMutes ()Z + public final fun getName ()Ljava/lang/String; + public final fun getPolls ()Z + public final fun getPushNotifications ()Z + public final fun getQuotes ()Z + public final fun getReactions ()Z + public final fun getReadEvents ()Z + public final fun getReminders ()Z + public final fun getReplies ()Z + public final fun getSearch ()Z + public final fun getTypingEvents ()Z + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getUploads ()Z + public final fun getUrlEnrichment ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/ChannelConfigWithInfo$Automod { + public static final field Companion Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$Automod$AI : org/openapitools/client/models/ChannelConfigWithInfo$Automod { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod$AI; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$Automod$AutomodAdapter : com/squareup/moshi/JsonAdapter { + public fun ()V + public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod; + public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod;)V +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$Automod$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$Automod$Disabled : org/openapitools/client/models/ChannelConfigWithInfo$Automod { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod$Disabled; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$Automod$Simple : org/openapitools/client/models/ChannelConfigWithInfo$Automod { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod$Simple; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$Automod$Unknown : org/openapitools/client/models/ChannelConfigWithInfo$Automod { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ChannelConfigWithInfo$Automod$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getUnknownValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior { + public static final field Companion Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$AutomodBehaviorAdapter : com/squareup/moshi/JsonAdapter { + public fun ()V + public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior; + public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior;)V +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Block : org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Block; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Flag : org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Flag; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$ShadowBlock : org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$ShadowBlock; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Unknown : org/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ChannelConfigWithInfo$AutomodBehavior$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getUnknownValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior { + public static final field Companion Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Block : org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Block; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$BlocklistBehaviorAdapter : com/squareup/moshi/JsonAdapter { + public fun ()V + public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior; + public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior;)V +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Flag : org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Flag; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$ShadowBlock : org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior { + public static final field INSTANCE Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$ShadowBlock; +} + +public final class org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Unknown : org/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ChannelConfigWithInfo$BlocklistBehavior$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getUnknownValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ChannelMember { + public fun (ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZZLorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;)V + public synthetic fun (ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZZLorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component10 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Ljava/lang/Boolean; + public final fun component13 ()Ljava/lang/String; + public final fun component14 ()Lorg/openapitools/client/models/UserObject; + public final fun component15 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component7 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component8 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component9 ()Lorg/threeten/bp/OffsetDateTime; + public final fun copy (ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZZLorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;)Lorg/openapitools/client/models/ChannelMember; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ChannelMember;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZZLorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ChannelMember; + public fun equals (Ljava/lang/Object;)Z + public final fun getBanExpires ()Lorg/threeten/bp/OffsetDateTime; + public final fun getBanned ()Z + public final fun getChannelRole ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDeletedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getInviteAcceptedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getInviteRejectedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getInvited ()Ljava/lang/Boolean; + public final fun getNotificationsMuted ()Z + public final fun getShadowBanned ()Z + public final fun getStatus ()Ljava/lang/String; + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public final fun getUserId ()Ljava/lang/String; + public fun hashCode ()I + public final fun isModerator ()Ljava/lang/Boolean; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ChannelMute { + public fun (Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/ChannelResponse;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/ChannelResponse;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Lorg/openapitools/client/models/ChannelResponse; + public final fun component4 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component5 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/ChannelResponse;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/ChannelMute; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ChannelMute;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/ChannelResponse;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/ChannelMute; + public fun equals (Ljava/lang/Object;)Z + public final fun getChannel ()Lorg/openapitools/client/models/ChannelResponse; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getExpires ()Lorg/threeten/bp/OffsetDateTime; + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ChannelResponse { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;ZZLjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lorg/openapitools/client/models/ChannelConfigWithInfo;Ljava/lang/Integer;Lorg/openapitools/client/models/UserObject;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;ZZLjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lorg/openapitools/client/models/ChannelConfigWithInfo;Ljava/lang/Integer;Lorg/openapitools/client/models/UserObject;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Ljava/lang/Boolean; + public final fun component12 ()Lorg/openapitools/client/models/ChannelConfigWithInfo; + public final fun component13 ()Ljava/lang/Integer; + public final fun component14 ()Lorg/openapitools/client/models/UserObject; + public final fun component15 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component16 ()Ljava/lang/Boolean; + public final fun component17 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component18 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component19 ()Ljava/lang/Integer; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component20 ()Ljava/util/List; + public final fun component21 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component22 ()Ljava/lang/Boolean; + public final fun component23 ()Ljava/util/List; + public final fun component24 ()Ljava/lang/String; + public final fun component25 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component26 ()Lorg/openapitools/client/models/UserObject; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Z + public final fun component5 ()Z + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component9 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;ZZLjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lorg/openapitools/client/models/ChannelConfigWithInfo;Ljava/lang/Integer;Lorg/openapitools/client/models/UserObject;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/ChannelResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ChannelResponse;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;ZZLjava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/Boolean;Lorg/openapitools/client/models/ChannelConfigWithInfo;Ljava/lang/Integer;Lorg/openapitools/client/models/UserObject;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Integer;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/ChannelResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getAutoTranslationEnabled ()Ljava/lang/Boolean; + public final fun getAutoTranslationLanguage ()Ljava/lang/String; + public final fun getBlocked ()Ljava/lang/Boolean; + public final fun getCid ()Ljava/lang/String; + public final fun getConfig ()Lorg/openapitools/client/models/ChannelConfigWithInfo; + public final fun getCooldown ()Ljava/lang/Integer; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getCreatedBy ()Lorg/openapitools/client/models/UserObject; + public final fun getCustom ()Ljava/util/Map; + public final fun getDeletedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDisabled ()Z + public final fun getFrozen ()Z + public final fun getHidden ()Ljava/lang/Boolean; + public final fun getHideMessagesBefore ()Lorg/threeten/bp/OffsetDateTime; + public final fun getId ()Ljava/lang/String; + public final fun getLastMessageAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getMemberCount ()Ljava/lang/Integer; + public final fun getMembers ()Ljava/util/List; + public final fun getMuteExpiresAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getMuted ()Ljava/lang/Boolean; + public final fun getOwnCapabilities ()Ljava/util/List; + public final fun getTeam ()Ljava/lang/String; + public final fun getTruncatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getTruncatedBy ()Lorg/openapitools/client/models/UserObject; + public final fun getType ()Ljava/lang/String; + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ClosedCaptionEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/openapitools/client/models/CallClosedCaption;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/openapitools/client/models/CallClosedCaption;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/openapitools/client/models/CallClosedCaption; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/openapitools/client/models/CallClosedCaption;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;)Lorg/openapitools/client/models/ClosedCaptionEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ClosedCaptionEvent;Ljava/lang/String;Lorg/openapitools/client/models/CallClosedCaption;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ClosedCaptionEvent; + public fun equals (Ljava/lang/Object;)Z + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getClosedCaption ()Lorg/openapitools/client/models/CallClosedCaption; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CollectUserFeedbackRequest { + public fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V + public synthetic fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()I + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/util/Map; + public final fun component6 ()Ljava/lang/String; + public final fun copy (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lorg/openapitools/client/models/CollectUserFeedbackRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CollectUserFeedbackRequest;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CollectUserFeedbackRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustom ()Ljava/util/Map; + public final fun getRating ()I + public final fun getReason ()Ljava/lang/String; + public final fun getSdk ()Ljava/lang/String; + public final fun getSdkVersion ()Ljava/lang/String; + public final fun getUserSessionId ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CollectUserFeedbackResponse { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/CollectUserFeedbackResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CollectUserFeedbackResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/CollectUserFeedbackResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/Command { + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component6 ()Lorg/threeten/bp/OffsetDateTime; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/Command; + public static synthetic fun copy$default (Lorg/openapitools/client/models/Command;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/Command; + public fun equals (Ljava/lang/Object;)Z + public final fun getArgs ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDescription ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getSet ()Ljava/lang/String; + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ConnectUserDetailsRequest { + public fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;)V + public synthetic fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lorg/openapitools/client/models/PrivacySettings; + public final fun component8 ()Lorg/openapitools/client/models/PushNotificationSettingsInput; + public final fun copy (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;)Lorg/openapitools/client/models/ConnectUserDetailsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ConnectUserDetailsRequest;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;ILjava/lang/Object;)Lorg/openapitools/client/models/ConnectUserDetailsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustom ()Ljava/util/Map; + public final fun getId ()Ljava/lang/String; + public final fun getImage ()Ljava/lang/String; + public final fun getInvisible ()Ljava/lang/Boolean; + public final fun getLanguage ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getPrivacySettings ()Lorg/openapitools/client/models/PrivacySettings; + public final fun getPushNotifications ()Lorg/openapitools/client/models/PushNotificationSettingsInput; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ConnectedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Lorg/openapitools/client/models/OwnUserResponse; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;)Lorg/openapitools/client/models/ConnectedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ConnectedEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/OwnUserResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ConnectedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getConnectionId ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getMe ()Lorg/openapitools/client/models/OwnUserResponse; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ConnectionErrorEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Lorg/openapitools/client/models/APIError; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;)Lorg/openapitools/client/models/ConnectionErrorEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ConnectionErrorEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/APIError;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ConnectionErrorEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getConnectionId ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getError ()Lorg/openapitools/client/models/APIError; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/Coordinates { + public fun (FF)V + public final fun component1 ()F + public final fun component2 ()F + public final fun copy (FF)Lorg/openapitools/client/models/Coordinates; + public static synthetic fun copy$default (Lorg/openapitools/client/models/Coordinates;FFILjava/lang/Object;)Lorg/openapitools/client/models/Coordinates; + public fun equals (Ljava/lang/Object;)Z + public final fun getLatitude ()F + public final fun getLongitude ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CreateDeviceRequest { + public fun ()V + public fun (Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/openapitools/client/models/UserRequest; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;)Lorg/openapitools/client/models/CreateDeviceRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/CreateDeviceRequest;Ljava/lang/String;Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider;Ljava/lang/String;Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/CreateDeviceRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getPushProvider ()Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider; + public final fun getPushProviderName ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserRequest; + public final fun getUserId ()Ljava/lang/String; + public final fun getVoipToken ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/CreateDeviceRequest$PushProvider { + public static final field Companion Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/CreateDeviceRequest$PushProvider$Apn : org/openapitools/client/models/CreateDeviceRequest$PushProvider { + public static final field INSTANCE Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider$Apn; +} + +public final class org/openapitools/client/models/CreateDeviceRequest$PushProvider$Companion { public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/CreateDeviceRequest$PushProvider; } @@ -7295,6 +8054,28 @@ public final class org/openapitools/client/models/CustomVideoEvent : org/openapi public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/DeleteRecordingResponse { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/DeleteRecordingResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/DeleteRecordingResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/DeleteRecordingResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/DeleteTranscriptionResponse { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/DeleteTranscriptionResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/DeleteTranscriptionResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/DeleteTranscriptionResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/Device { public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;)V public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -7401,30 +8182,59 @@ public final class org/openapitools/client/models/EndCallResponse { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/GeofenceSettings { +public final class org/openapitools/client/models/GeofenceSettingsRequest { + public fun ()V public fun (Ljava/util/List;)V + public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/util/List; - public final fun copy (Ljava/util/List;)Lorg/openapitools/client/models/GeofenceSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/GeofenceSettings;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/GeofenceSettings; + public final fun copy (Ljava/util/List;)Lorg/openapitools/client/models/GeofenceSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/GeofenceSettingsRequest;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/GeofenceSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getNames ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/GeofenceSettingsRequest { - public fun ()V +public final class org/openapitools/client/models/GeofenceSettingsResponse { public fun (Ljava/util/List;)V - public synthetic fun (Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/util/List; - public final fun copy (Ljava/util/List;)Lorg/openapitools/client/models/GeofenceSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/GeofenceSettingsRequest;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/GeofenceSettingsRequest; + public final fun copy (Ljava/util/List;)Lorg/openapitools/client/models/GeofenceSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/GeofenceSettingsResponse;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/GeofenceSettingsResponse; public fun equals (Ljava/lang/Object;)Z public final fun getNames ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/GeolocationResult { + public fun (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;FFLjava/lang/String;Ljava/lang/String;)V + public final fun component1 ()I + public final fun component10 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()F + public final fun component8 ()F + public final fun component9 ()Ljava/lang/String; + public final fun copy (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;FFLjava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/GeolocationResult; + public static synthetic fun copy$default (Lorg/openapitools/client/models/GeolocationResult;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;FFLjava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/GeolocationResult; + public fun equals (Ljava/lang/Object;)Z + public final fun getAccuracyRadius ()I + public final fun getCity ()Ljava/lang/String; + public final fun getContinent ()Ljava/lang/String; + public final fun getContinentCode ()Ljava/lang/String; + public final fun getCountry ()Ljava/lang/String; + public final fun getCountryIsoCode ()Ljava/lang/String; + public final fun getLatitude ()F + public final fun getLongitude ()F + public final fun getSubdivision ()Ljava/lang/String; + public final fun getSubdivisionIsoCode ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/GetCallResponse { public fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lorg/openapitools/client/models/MemberResponse;)V public synthetic fun (Lorg/openapitools/client/models/CallResponse;Ljava/lang/String;Ljava/util/List;Ljava/util/List;Lorg/openapitools/client/models/MemberResponse;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -7445,6 +8255,44 @@ public final class org/openapitools/client/models/GetCallResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/GetCallStatsResponse { + public fun (ILjava/lang/String;Ljava/lang/String;IIILjava/util/List;IIILjava/util/List;Lorg/openapitools/client/models/CallTimeline;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;)V + public synthetic fun (ILjava/lang/String;Ljava/lang/String;IIILjava/util/List;IIILjava/util/List;Lorg/openapitools/client/models/CallTimeline;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()I + public final fun component10 ()I + public final fun component11 ()Ljava/util/List; + public final fun component12 ()Lorg/openapitools/client/models/CallTimeline; + public final fun component13 ()Lorg/openapitools/client/models/Stats; + public final fun component14 ()Lorg/openapitools/client/models/Stats; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()I + public final fun component5 ()I + public final fun component6 ()I + public final fun component7 ()Ljava/util/List; + public final fun component8 ()I + public final fun component9 ()I + public final fun copy (ILjava/lang/String;Ljava/lang/String;IIILjava/util/List;IIILjava/util/List;Lorg/openapitools/client/models/CallTimeline;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;)Lorg/openapitools/client/models/GetCallStatsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/GetCallStatsResponse;ILjava/lang/String;Ljava/lang/String;IIILjava/util/List;IIILjava/util/List;Lorg/openapitools/client/models/CallTimeline;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;ILjava/lang/Object;)Lorg/openapitools/client/models/GetCallStatsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getCallDurationSeconds ()I + public final fun getCallStatus ()Ljava/lang/String; + public final fun getCallTimeline ()Lorg/openapitools/client/models/CallTimeline; + public final fun getDuration ()Ljava/lang/String; + public final fun getJitter ()Lorg/openapitools/client/models/Stats; + public final fun getLatency ()Lorg/openapitools/client/models/Stats; + public final fun getMaxFreezesDurationSeconds ()I + public final fun getMaxParticipants ()I + public final fun getMaxTotalQualityLimitationDurationSeconds ()I + public final fun getParticipantReport ()Ljava/util/List; + public final fun getPublishingParticipants ()I + public final fun getQualityScore ()I + public final fun getSfuCount ()I + public final fun getSfus ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/GetEdgesResponse { public fun (Ljava/lang/String;Ljava/util/List;)V public final fun component1 ()Ljava/lang/String; @@ -7501,17 +8349,21 @@ public final class org/openapitools/client/models/GetOrCreateCallResponse { public final class org/openapitools/client/models/GoLiveRequest { public fun ()V - public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)V - public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/Boolean; + public fun (Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/Boolean; public final fun component3 ()Ljava/lang/Boolean; - public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/openapitools/client/models/GoLiveRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/GoLiveRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/GoLiveRequest; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;)Lorg/openapitools/client/models/GoLiveRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/GoLiveRequest;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/GoLiveRequest; public fun equals (Ljava/lang/Object;)Z + public final fun getRecordingStorageName ()Ljava/lang/String; public final fun getStartHls ()Ljava/lang/Boolean; public final fun getStartRecording ()Ljava/lang/Boolean; public final fun getStartTranscription ()Ljava/lang/Boolean; + public final fun getTranscriptionStorageName ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -7529,33 +8381,32 @@ public final class org/openapitools/client/models/GoLiveResponse { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/HLSSettings { - public fun (ZZLjava/util/List;)V - public final fun component1 ()Z - public final fun component2 ()Z - public final fun component3 ()Ljava/util/List; - public final fun copy (ZZLjava/util/List;)Lorg/openapitools/client/models/HLSSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/HLSSettings;ZZLjava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/HLSSettings; +public final class org/openapitools/client/models/HLSSettingsRequest { + public fun (Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/Boolean; + public final fun component3 ()Ljava/lang/Boolean; + public final fun copy (Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/openapitools/client/models/HLSSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/HLSSettingsRequest;Ljava/util/List;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/HLSSettingsRequest; public fun equals (Ljava/lang/Object;)Z - public final fun getAutoOn ()Z - public final fun getEnabled ()Z + public final fun getAutoOn ()Ljava/lang/Boolean; + public final fun getEnabled ()Ljava/lang/Boolean; public final fun getQualityTracks ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/HLSSettingsRequest { - public fun ()V - public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;)V - public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/Boolean; - public final fun component2 ()Ljava/lang/Boolean; +public final class org/openapitools/client/models/HLSSettingsResponse { + public fun (ZZLjava/util/List;)V + public final fun component1 ()Z + public final fun component2 ()Z public final fun component3 ()Ljava/util/List; - public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;)Lorg/openapitools/client/models/HLSSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/HLSSettingsRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/HLSSettingsRequest; + public final fun copy (ZZLjava/util/List;)Lorg/openapitools/client/models/HLSSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/HLSSettingsResponse;ZZLjava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/HLSSettingsResponse; public fun equals (Ljava/lang/Object;)Z - public final fun getAutoOn ()Ljava/lang/Boolean; - public final fun getEnabled ()Ljava/lang/Boolean; + public final fun getAutoOn ()Z + public final fun getEnabled ()Z public final fun getQualityTracks ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; @@ -7643,6 +8494,51 @@ public final class org/openapitools/client/models/JoinCallResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/LabelThresholds { + public fun ()V + public fun (Ljava/lang/Float;Ljava/lang/Float;)V + public synthetic fun (Ljava/lang/Float;Ljava/lang/Float;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Float; + public final fun component2 ()Ljava/lang/Float; + public final fun copy (Ljava/lang/Float;Ljava/lang/Float;)Lorg/openapitools/client/models/LabelThresholds; + public static synthetic fun copy$default (Lorg/openapitools/client/models/LabelThresholds;Ljava/lang/Float;Ljava/lang/Float;ILjava/lang/Object;)Lorg/openapitools/client/models/LabelThresholds; + public fun equals (Ljava/lang/Object;)Z + public final fun getBlock ()Ljava/lang/Float; + public final fun getFlag ()Ljava/lang/Float; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/LimitsSettingsRequest { + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/Integer;Ljava/lang/Integer;)Lorg/openapitools/client/models/LimitsSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/LimitsSettingsRequest;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/LimitsSettingsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getMaxDurationSeconds ()Ljava/lang/Integer; + public final fun getMaxParticipants ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/LimitsSettingsResponse { + public fun ()V + public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V + public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Integer; + public final fun component2 ()Ljava/lang/Integer; + public final fun copy (Ljava/lang/Integer;Ljava/lang/Integer;)Lorg/openapitools/client/models/LimitsSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/LimitsSettingsResponse;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/LimitsSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getMaxDurationSeconds ()Ljava/lang/Integer; + public final fun getMaxParticipants ()Ljava/lang/Integer; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/ListDevicesResponse { public fun (Ljava/util/List;Ljava/lang/String;)V public final fun component1 ()Ljava/util/List; @@ -7669,6 +8565,68 @@ public final class org/openapitools/client/models/ListRecordingsResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/ListTranscriptionsResponse { + public fun (Ljava/lang/String;Ljava/util/List;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/util/List;)Lorg/openapitools/client/models/ListTranscriptionsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ListTranscriptionsResponse;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/ListTranscriptionsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration ()Ljava/lang/String; + public final fun getTranscriptions ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/Location { + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/Location; + public static synthetic fun copy$default (Lorg/openapitools/client/models/Location;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/Location; + public fun equals (Ljava/lang/Object;)Z + public final fun getContinentCode ()Ljava/lang/String; + public final fun getCountryIsoCode ()Ljava/lang/String; + public final fun getSubdivisionIsoCode ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/MOSStats { + public fun (FLjava/util/List;FF)V + public final fun component1 ()F + public final fun component2 ()Ljava/util/List; + public final fun component3 ()F + public final fun component4 ()F + public final fun copy (FLjava/util/List;FF)Lorg/openapitools/client/models/MOSStats; + public static synthetic fun copy$default (Lorg/openapitools/client/models/MOSStats;FLjava/util/List;FFILjava/lang/Object;)Lorg/openapitools/client/models/MOSStats; + public fun equals (Ljava/lang/Object;)Z + public final fun getAverageScore ()F + public final fun getHistogramDurationSeconds ()Ljava/util/List; + public final fun getMaxScore ()F + public final fun getMinScore ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/MediaPubSubHint { + public fun (ZZZZ)V + public final fun component1 ()Z + public final fun component2 ()Z + public final fun component3 ()Z + public final fun component4 ()Z + public final fun copy (ZZZZ)Lorg/openapitools/client/models/MediaPubSubHint; + public static synthetic fun copy$default (Lorg/openapitools/client/models/MediaPubSubHint;ZZZZILjava/lang/Object;)Lorg/openapitools/client/models/MediaPubSubHint; + public fun equals (Ljava/lang/Object;)Z + public final fun getAudioPublished ()Z + public final fun getAudioSubscribed ()Z + public final fun getVideoPublished ()Z + public final fun getVideoSubscribed ()Z + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/MemberRequest { public fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)V public synthetic fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -7711,19 +8669,21 @@ public final class org/openapitools/client/models/MemberResponse { public final class org/openapitools/client/models/MuteUsersRequest { public fun ()V - public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;)V - public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/Boolean; public final fun component3 ()Ljava/lang/Boolean; - public final fun component4 ()Ljava/util/List; - public final fun component5 ()Ljava/lang/Boolean; - public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;)Lorg/openapitools/client/models/MuteUsersRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/MuteUsersRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/MuteUsersRequest; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;)Lorg/openapitools/client/models/MuteUsersRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/MuteUsersRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/MuteUsersRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAudio ()Ljava/lang/Boolean; public final fun getMuteAllUsers ()Ljava/lang/Boolean; public final fun getScreenshare ()Ljava/lang/Boolean; + public final fun getScreenshareAudio ()Ljava/lang/Boolean; public final fun getUserIds ()Ljava/util/List; public final fun getVideo ()Ljava/lang/Boolean; public fun hashCode ()I @@ -7741,6 +8701,89 @@ public final class org/openapitools/client/models/MuteUsersResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/NoiseCancellationSettings { + public fun (Lorg/openapitools/client/models/NoiseCancellationSettings$Mode;)V + public final fun component1 ()Lorg/openapitools/client/models/NoiseCancellationSettings$Mode; + public final fun copy (Lorg/openapitools/client/models/NoiseCancellationSettings$Mode;)Lorg/openapitools/client/models/NoiseCancellationSettings; + public static synthetic fun copy$default (Lorg/openapitools/client/models/NoiseCancellationSettings;Lorg/openapitools/client/models/NoiseCancellationSettings$Mode;ILjava/lang/Object;)Lorg/openapitools/client/models/NoiseCancellationSettings; + public fun equals (Ljava/lang/Object;)Z + public final fun getMode ()Lorg/openapitools/client/models/NoiseCancellationSettings$Mode; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/NoiseCancellationSettings$Mode { + public static final field Companion Lorg/openapitools/client/models/NoiseCancellationSettings$Mode$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/NoiseCancellationSettings$Mode$AutoOn : org/openapitools/client/models/NoiseCancellationSettings$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/NoiseCancellationSettings$Mode$AutoOn; +} + +public final class org/openapitools/client/models/NoiseCancellationSettings$Mode$Available : org/openapitools/client/models/NoiseCancellationSettings$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/NoiseCancellationSettings$Mode$Available; +} + +public final class org/openapitools/client/models/NoiseCancellationSettings$Mode$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/NoiseCancellationSettings$Mode; +} + +public final class org/openapitools/client/models/NoiseCancellationSettings$Mode$Disabled : org/openapitools/client/models/NoiseCancellationSettings$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/NoiseCancellationSettings$Mode$Disabled; +} + +public final class org/openapitools/client/models/NoiseCancellationSettings$Mode$ModeAdapter : com/squareup/moshi/JsonAdapter { + public fun ()V + public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/NoiseCancellationSettings$Mode; + public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/NoiseCancellationSettings$Mode;)V +} + +public final class org/openapitools/client/models/NoiseCancellationSettings$Mode$Unknown : org/openapitools/client/models/NoiseCancellationSettings$Mode { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/NoiseCancellationSettings$Mode$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/NoiseCancellationSettings$Mode$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/NoiseCancellationSettings$Mode$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getUnknownValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/NullBool { + public fun ()V + public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/openapitools/client/models/NullBool; + public static synthetic fun copy$default (Lorg/openapitools/client/models/NullBool;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/NullBool; + public fun equals (Ljava/lang/Object;)Z + public final fun getHasValue ()Ljava/lang/Boolean; + public final fun getValue ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/NullTime { + public fun ()V + public fun (Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;)V + public synthetic fun (Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun copy (Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/NullTime; + public static synthetic fun copy$default (Lorg/openapitools/client/models/NullTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/NullTime; + public fun equals (Ljava/lang/Object;)Z + public final fun getHasValue ()Ljava/lang/Boolean; + public final fun getValue ()Lorg/threeten/bp/OffsetDateTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public abstract class org/openapitools/client/models/OwnCapability { public static final field Companion Lorg/openapitools/client/models/OwnCapability$Companion; public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V @@ -7752,6 +8795,10 @@ public final class org/openapitools/client/models/OwnCapability$BlockUsers : org public static final field INSTANCE Lorg/openapitools/client/models/OwnCapability$BlockUsers; } +public final class org/openapitools/client/models/OwnCapability$ChangeMaxDuration : org/openapitools/client/models/OwnCapability { + public static final field INSTANCE Lorg/openapitools/client/models/OwnCapability$ChangeMaxDuration; +} + public final class org/openapitools/client/models/OwnCapability$Companion { public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/OwnCapability; } @@ -7764,6 +8811,10 @@ public final class org/openapitools/client/models/OwnCapability$CreateReaction : public static final field INSTANCE Lorg/openapitools/client/models/OwnCapability$CreateReaction; } +public final class org/openapitools/client/models/OwnCapability$EnableNoiseCancellation : org/openapitools/client/models/OwnCapability { + public static final field INSTANCE Lorg/openapitools/client/models/OwnCapability$EnableNoiseCancellation; +} + public final class org/openapitools/client/models/OwnCapability$EndCall : org/openapitools/client/models/OwnCapability { public static final field INSTANCE Lorg/openapitools/client/models/OwnCapability$EndCall; } @@ -7867,31 +8918,119 @@ public final class org/openapitools/client/models/OwnCapability$UpdateCallSettin public static final field INSTANCE Lorg/openapitools/client/models/OwnCapability$UpdateCallSettings; } -public final class org/openapitools/client/models/OwnUserResponse { - public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; +public final class org/openapitools/client/models/OwnUser { + public fun (ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;IIIILorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Ljava/util/List;)V + public synthetic fun (ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;IIIILorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z public final fun component10 ()Ljava/lang/String; - public final fun component2 ()Ljava/util/Map; - public final fun component3 ()Ljava/util/List; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/util/List; - public final fun component7 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component8 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component9 ()Ljava/lang/String; - public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/OwnUserResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/OwnUserResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/OwnUserResponse; + public final fun component11 ()I + public final fun component12 ()I + public final fun component13 ()I + public final fun component14 ()I + public final fun component15 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component16 ()Ljava/util/List; + public final fun component17 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component18 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component19 ()Ljava/lang/Boolean; + public final fun component2 ()Ljava/util/List; + public final fun component20 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component21 ()Ljava/util/List; + public final fun component22 ()Lorg/openapitools/client/models/PrivacySettings; + public final fun component23 ()Lorg/openapitools/client/models/PushNotificationSettings; + public final fun component24 ()Ljava/util/List; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/util/Map; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Z + public final fun copy (ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;IIIILorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Ljava/util/List;)Lorg/openapitools/client/models/OwnUser; + public static synthetic fun copy$default (Lorg/openapitools/client/models/OwnUser;ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ZLjava/lang/String;IIIILorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/OwnUser; + public fun equals (Ljava/lang/Object;)Z + public final fun getBanned ()Z + public final fun getBlockedUserIds ()Ljava/util/List; + public final fun getChannelMutes ()Ljava/util/List; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getCustom ()Ljava/util/Map; + public final fun getDeactivatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDeletedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDevices ()Ljava/util/List; + public final fun getId ()Ljava/lang/String; + public final fun getInvisible ()Ljava/lang/Boolean; + public final fun getLanguage ()Ljava/lang/String; + public final fun getLastActive ()Lorg/threeten/bp/OffsetDateTime; + public final fun getLatestHiddenChannels ()Ljava/util/List; + public final fun getMutes ()Ljava/util/List; + public final fun getOnline ()Z + public final fun getPrivacySettings ()Lorg/openapitools/client/models/PrivacySettings; + public final fun getPushNotifications ()Lorg/openapitools/client/models/PushNotificationSettings; + public final fun getRole ()Ljava/lang/String; + public final fun getTeams ()Ljava/util/List; + public final fun getTotalUnreadCount ()I + public final fun getUnreadChannels ()I + public final fun getUnreadCount ()I + public final fun getUnreadThreads ()I + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/OwnUserResponse { + public fun (ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;ZLjava/lang/String;Ljava/util/List;IIILorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;)V + public synthetic fun (ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;ZLjava/lang/String;Ljava/util/List;IIILorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component10 ()Z + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Ljava/util/List; + public final fun component13 ()I + public final fun component14 ()I + public final fun component15 ()I + public final fun component16 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component17 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component18 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component19 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component20 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component21 ()Ljava/util/List; + public final fun component22 ()Ljava/lang/String; + public final fun component23 ()Lorg/openapitools/client/models/PrivacySettings; + public final fun component24 ()Lorg/openapitools/client/models/PushNotificationSettings; + public final fun component25 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Ljava/util/Map; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Z + public final fun component8 ()Ljava/lang/String; + public final fun component9 ()Ljava/util/List; + public final fun copy (ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;ZLjava/lang/String;Ljava/util/List;IIILorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/OwnUserResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/OwnUserResponse;ZLjava/util/List;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/util/List;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;ZLjava/lang/String;Ljava/util/List;IIILorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/OwnUserResponse; public fun equals (Ljava/lang/Object;)Z + public final fun getBanned ()Z + public final fun getChannelMutes ()Ljava/util/List; public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; public final fun getCustom ()Ljava/util/Map; + public final fun getDeactivatedAt ()Lorg/threeten/bp/OffsetDateTime; public final fun getDeletedAt ()Lorg/threeten/bp/OffsetDateTime; public final fun getDevices ()Ljava/util/List; public final fun getId ()Ljava/lang/String; public final fun getImage ()Ljava/lang/String; + public final fun getInvisible ()Z + public final fun getLanguage ()Ljava/lang/String; + public final fun getLastActive ()Lorg/threeten/bp/OffsetDateTime; + public final fun getLatestHiddenChannels ()Ljava/util/List; + public final fun getMutes ()Ljava/util/List; public final fun getName ()Ljava/lang/String; + public final fun getOnline ()Z + public final fun getPrivacySettings ()Lorg/openapitools/client/models/PrivacySettings; + public final fun getPushNotifications ()Lorg/openapitools/client/models/PushNotificationSettings; + public final fun getRevokeTokensIssuedBefore ()Lorg/threeten/bp/OffsetDateTime; public final fun getRole ()Ljava/lang/String; public final fun getTeams ()Ljava/util/List; + public final fun getTotalUnreadCount ()I + public final fun getUnreadChannels ()I + public final fun getUnreadThreads ()I public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; public fun hashCode ()I public fun toString ()Ljava/lang/String; @@ -7935,91 +9074,192 @@ public final class org/openapitools/client/models/PinRequest { public final class org/openapitools/client/models/PinResponse { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/PinResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/PinResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/PinResponse; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/PinResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/PinResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/PinResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getDuration ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/PrivacySettings { + public fun ()V + public fun (Lorg/openapitools/client/models/ReadReceipts;Lorg/openapitools/client/models/TypingIndicators;)V + public synthetic fun (Lorg/openapitools/client/models/ReadReceipts;Lorg/openapitools/client/models/TypingIndicators;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/ReadReceipts; + public final fun component2 ()Lorg/openapitools/client/models/TypingIndicators; + public final fun copy (Lorg/openapitools/client/models/ReadReceipts;Lorg/openapitools/client/models/TypingIndicators;)Lorg/openapitools/client/models/PrivacySettings; + public static synthetic fun copy$default (Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/ReadReceipts;Lorg/openapitools/client/models/TypingIndicators;ILjava/lang/Object;)Lorg/openapitools/client/models/PrivacySettings; + public fun equals (Ljava/lang/Object;)Z + public final fun getReadReceipts ()Lorg/openapitools/client/models/ReadReceipts; + public final fun getTypingIndicators ()Lorg/openapitools/client/models/TypingIndicators; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/PublishedTrackInfo { + public fun ()V + public fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/Integer; + public final fun component3 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;)Lorg/openapitools/client/models/PublishedTrackInfo; + public static synthetic fun copy$default (Lorg/openapitools/client/models/PublishedTrackInfo;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/PublishedTrackInfo; + public fun equals (Ljava/lang/Object;)Z + public final fun getCodecMimeType ()Ljava/lang/String; + public final fun getDurationSeconds ()Ljava/lang/Integer; + public final fun getTrackType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/PushNotificationSettings { + public fun ()V + public fun (Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;)V + public synthetic fun (Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun copy (Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/PushNotificationSettings; + public static synthetic fun copy$default (Lorg/openapitools/client/models/PushNotificationSettings;Ljava/lang/Boolean;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/PushNotificationSettings; + public fun equals (Ljava/lang/Object;)Z + public final fun getDisabled ()Ljava/lang/Boolean; + public final fun getDisabledUntil ()Lorg/threeten/bp/OffsetDateTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/PushNotificationSettingsInput { + public fun ()V + public fun (Lorg/openapitools/client/models/NullBool;Lorg/openapitools/client/models/NullTime;)V + public synthetic fun (Lorg/openapitools/client/models/NullBool;Lorg/openapitools/client/models/NullTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/NullBool; + public final fun component2 ()Lorg/openapitools/client/models/NullTime; + public final fun copy (Lorg/openapitools/client/models/NullBool;Lorg/openapitools/client/models/NullTime;)Lorg/openapitools/client/models/PushNotificationSettingsInput; + public static synthetic fun copy$default (Lorg/openapitools/client/models/PushNotificationSettingsInput;Lorg/openapitools/client/models/NullBool;Lorg/openapitools/client/models/NullTime;ILjava/lang/Object;)Lorg/openapitools/client/models/PushNotificationSettingsInput; + public fun equals (Ljava/lang/Object;)Z + public final fun getDisabled ()Lorg/openapitools/client/models/NullBool; + public final fun getDisabledUntil ()Lorg/openapitools/client/models/NullTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/QueryCallMembersRequest { + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Ljava/lang/Integer; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/openapitools/client/models/QueryCallMembersRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallMembersRequest;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallMembersRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getFilterConditions ()Ljava/util/Map; + public final fun getId ()Ljava/lang/String; + public final fun getLimit ()Ljava/lang/Integer; + public final fun getNext ()Ljava/lang/String; + public final fun getPrev ()Ljava/lang/String; + public final fun getSort ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/QueryCallMembersResponse { + public fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/QueryCallMembersResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallMembersResponse;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallMembersResponse; public fun equals (Ljava/lang/Object;)Z public final fun getDuration ()Ljava/lang/String; + public final fun getMembers ()Ljava/util/List; + public final fun getNext ()Ljava/lang/String; + public final fun getPrev ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/QueryCallsRequest { +public final class org/openapitools/client/models/QueryCallStatsRequest { public fun ()V - public fun (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;)V - public synthetic fun (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/util/Map; public final fun component2 ()Ljava/lang/Integer; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; public final fun component5 ()Ljava/util/List; - public final fun component6 ()Ljava/lang/Boolean; - public final fun copy (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;)Lorg/openapitools/client/models/QueryCallsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallsRequest;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallsRequest; + public final fun copy (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/openapitools/client/models/QueryCallStatsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallStatsRequest;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallStatsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getFilterConditions ()Ljava/util/Map; public final fun getLimit ()Ljava/lang/Integer; public final fun getNext ()Ljava/lang/String; public final fun getPrev ()Ljava/lang/String; public final fun getSort ()Ljava/util/List; - public final fun getWatch ()Ljava/lang/Boolean; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/QueryCallsResponse { - public fun (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/util/List; - public final fun component2 ()Ljava/lang/String; +public final class org/openapitools/client/models/QueryCallStatsResponse { + public fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/List; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/QueryCallsResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallsResponse;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallsResponse; + public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/QueryCallStatsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallStatsResponse;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallStatsResponse; public fun equals (Ljava/lang/Object;)Z - public final fun getCalls ()Ljava/util/List; public final fun getDuration ()Ljava/lang/String; public final fun getNext ()Ljava/lang/String; public final fun getPrev ()Ljava/lang/String; + public final fun getReports ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/QueryMembersRequest { - public fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V - public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/lang/String; - public final fun component3 ()Ljava/util/Map; - public final fun component4 ()Ljava/lang/Integer; - public final fun component5 ()Ljava/lang/String; - public final fun component6 ()Ljava/lang/String; - public final fun component7 ()Ljava/util/List; - public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/openapitools/client/models/QueryMembersRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryMembersRequest;Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryMembersRequest; +public final class org/openapitools/client/models/QueryCallsRequest { + public fun ()V + public fun (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;)V + public synthetic fun (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/Map; + public final fun component2 ()Ljava/lang/Integer; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/util/List; + public final fun component6 ()Ljava/lang/Boolean; + public final fun copy (Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;)Lorg/openapitools/client/models/QueryCallsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallsRequest;Ljava/util/Map;Ljava/lang/Integer;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getFilterConditions ()Ljava/util/Map; - public final fun getId ()Ljava/lang/String; public final fun getLimit ()Ljava/lang/Integer; public final fun getNext ()Ljava/lang/String; public final fun getPrev ()Ljava/lang/String; public final fun getSort ()Ljava/util/List; - public final fun getType ()Ljava/lang/String; + public final fun getWatch ()Ljava/lang/Boolean; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/QueryMembersResponse { - public fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/util/List; +public final class org/openapitools/client/models/QueryCallsResponse { + public fun (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V + public synthetic fun (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/util/List; + public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/QueryMembersResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryMembersResponse;Ljava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryMembersResponse; + public final fun copy (Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/QueryCallsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/QueryCallsResponse;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/QueryCallsResponse; public fun equals (Ljava/lang/Object;)Z + public final fun getCalls ()Ljava/util/List; public final fun getDuration ()Ljava/lang/String; - public final fun getMembers ()Ljava/util/List; public final fun getNext ()Ljava/lang/String; public final fun getPrev ()Ljava/lang/String; public fun hashCode ()I @@ -8055,126 +9295,27 @@ public final class org/openapitools/client/models/ReactionResponse { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/RecordSettings { - public fun (ZLorg/openapitools/client/models/RecordSettings$Mode;Lorg/openapitools/client/models/RecordSettings$Quality;)V - public final fun component1 ()Z - public final fun component2 ()Lorg/openapitools/client/models/RecordSettings$Mode; - public final fun component3 ()Lorg/openapitools/client/models/RecordSettings$Quality; - public final fun copy (ZLorg/openapitools/client/models/RecordSettings$Mode;Lorg/openapitools/client/models/RecordSettings$Quality;)Lorg/openapitools/client/models/RecordSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/RecordSettings;ZLorg/openapitools/client/models/RecordSettings$Mode;Lorg/openapitools/client/models/RecordSettings$Quality;ILjava/lang/Object;)Lorg/openapitools/client/models/RecordSettings; - public fun equals (Ljava/lang/Object;)Z - public final fun getAudioOnly ()Z - public final fun getMode ()Lorg/openapitools/client/models/RecordSettings$Mode; - public final fun getQuality ()Lorg/openapitools/client/models/RecordSettings$Quality; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public abstract class org/openapitools/client/models/RecordSettings$Mode { - public static final field Companion Lorg/openapitools/client/models/RecordSettings$Mode$Companion; - public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getValue ()Ljava/lang/String; - public fun toString ()Ljava/lang/String; -} - -public final class org/openapitools/client/models/RecordSettings$Mode$AutoOn : org/openapitools/client/models/RecordSettings$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Mode$AutoOn; -} - -public final class org/openapitools/client/models/RecordSettings$Mode$Available : org/openapitools/client/models/RecordSettings$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Mode$Available; -} - -public final class org/openapitools/client/models/RecordSettings$Mode$Companion { - public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/RecordSettings$Mode; -} - -public final class org/openapitools/client/models/RecordSettings$Mode$Disabled : org/openapitools/client/models/RecordSettings$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Mode$Disabled; -} - -public final class org/openapitools/client/models/RecordSettings$Mode$ModeAdapter : com/squareup/moshi/JsonAdapter { - public fun ()V - public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; - public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/RecordSettings$Mode; - public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V - public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/RecordSettings$Mode;)V -} - -public final class org/openapitools/client/models/RecordSettings$Mode$Unknown : org/openapitools/client/models/RecordSettings$Mode { - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/RecordSettings$Mode$Unknown; - public static synthetic fun copy$default (Lorg/openapitools/client/models/RecordSettings$Mode$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/RecordSettings$Mode$Unknown; - public fun equals (Ljava/lang/Object;)Z - public final fun getUnknownValue ()Ljava/lang/String; - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - -public abstract class org/openapitools/client/models/RecordSettings$Quality { - public static final field Companion Lorg/openapitools/client/models/RecordSettings$Quality$Companion; - public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getValue ()Ljava/lang/String; - public fun toString ()Ljava/lang/String; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$1080p : org/openapitools/client/models/RecordSettings$Quality { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Quality$1080p; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$1440p : org/openapitools/client/models/RecordSettings$Quality { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Quality$1440p; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$360p : org/openapitools/client/models/RecordSettings$Quality { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Quality$360p; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$480p : org/openapitools/client/models/RecordSettings$Quality { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Quality$480p; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$720p : org/openapitools/client/models/RecordSettings$Quality { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Quality$720p; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$AudioOnly : org/openapitools/client/models/RecordSettings$Quality { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettings$Quality$AudioOnly; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$Companion { - public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/RecordSettings$Quality; -} - -public final class org/openapitools/client/models/RecordSettings$Quality$QualityAdapter : com/squareup/moshi/JsonAdapter { +public final class org/openapitools/client/models/ReadReceipts { public fun ()V - public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; - public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/RecordSettings$Quality; - public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V - public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/RecordSettings$Quality;)V -} - -public final class org/openapitools/client/models/RecordSettings$Quality$Unknown : org/openapitools/client/models/RecordSettings$Quality { - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/RecordSettings$Quality$Unknown; - public static synthetic fun copy$default (Lorg/openapitools/client/models/RecordSettings$Quality$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/RecordSettings$Quality$Unknown; + public fun (Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;)Lorg/openapitools/client/models/ReadReceipts; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ReadReceipts;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/ReadReceipts; public fun equals (Ljava/lang/Object;)Z - public final fun getUnknownValue ()Ljava/lang/String; + public final fun getEnabled ()Ljava/lang/Boolean; public fun hashCode ()I public fun toString ()Ljava/lang/String; } public final class org/openapitools/client/models/RecordSettingsRequest { - public fun ()V - public fun (Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;)V - public synthetic fun (Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/Boolean; - public final fun component2 ()Lorg/openapitools/client/models/RecordSettingsRequest$Mode; + public fun (Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;)V + public synthetic fun (Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/RecordSettingsRequest$Mode; + public final fun component2 ()Ljava/lang/Boolean; public final fun component3 ()Lorg/openapitools/client/models/RecordSettingsRequest$Quality; - public final fun copy (Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;)Lorg/openapitools/client/models/RecordSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/RecordSettingsRequest;Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;ILjava/lang/Object;)Lorg/openapitools/client/models/RecordSettingsRequest; + public final fun copy (Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;)Lorg/openapitools/client/models/RecordSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/RecordSettingsRequest;Lorg/openapitools/client/models/RecordSettingsRequest$Mode;Ljava/lang/Boolean;Lorg/openapitools/client/models/RecordSettingsRequest$Quality;ILjava/lang/Object;)Lorg/openapitools/client/models/RecordSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAudioOnly ()Ljava/lang/Boolean; public final fun getMode ()Lorg/openapitools/client/models/RecordSettingsRequest$Mode; @@ -8252,10 +9393,6 @@ public final class org/openapitools/client/models/RecordSettingsRequest$Quality$ public static final field INSTANCE Lorg/openapitools/client/models/RecordSettingsRequest$Quality$720p; } -public final class org/openapitools/client/models/RecordSettingsRequest$Quality$AudioOnly : org/openapitools/client/models/RecordSettingsRequest$Quality { - public static final field INSTANCE Lorg/openapitools/client/models/RecordSettingsRequest$Quality$AudioOnly; -} - public final class org/openapitools/client/models/RecordSettingsRequest$Quality$Companion { public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/RecordSettingsRequest$Quality; } @@ -8279,6 +9416,34 @@ public final class org/openapitools/client/models/RecordSettingsRequest$Quality$ public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/RecordSettingsResponse { + public fun (ZLjava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Z + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun copy (ZLjava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/RecordSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/RecordSettingsResponse;ZLjava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/RecordSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getAudioOnly ()Z + public final fun getMode ()Ljava/lang/String; + public final fun getQuality ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/RejectCallRequest { + public fun ()V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/RejectCallRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/RejectCallRequest;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/RejectCallRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getReason ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/RejectCallResponse { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; @@ -8323,30 +9488,50 @@ public final class org/openapitools/client/models/Response { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/RingSettings { - public fun (II)V +public final class org/openapitools/client/models/RingSettingsRequest { + public fun (IILjava/lang/Integer;)V + public synthetic fun (IILjava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()I public final fun component2 ()I - public final fun copy (II)Lorg/openapitools/client/models/RingSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/RingSettings;IIILjava/lang/Object;)Lorg/openapitools/client/models/RingSettings; + public final fun component3 ()Ljava/lang/Integer; + public final fun copy (IILjava/lang/Integer;)Lorg/openapitools/client/models/RingSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/RingSettingsRequest;IILjava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/RingSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAutoCancelTimeoutMs ()I public final fun getIncomingCallTimeoutMs ()I + public final fun getMissedCallTimeoutMs ()Ljava/lang/Integer; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/RingSettingsRequest { - public fun ()V - public fun (Ljava/lang/Integer;Ljava/lang/Integer;)V - public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/Integer; - public final fun component2 ()Ljava/lang/Integer; - public final fun copy (Ljava/lang/Integer;Ljava/lang/Integer;)Lorg/openapitools/client/models/RingSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/RingSettingsRequest;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/RingSettingsRequest; +public final class org/openapitools/client/models/RingSettingsResponse { + public fun (III)V + public final fun component1 ()I + public final fun component2 ()I + public final fun component3 ()I + public final fun copy (III)Lorg/openapitools/client/models/RingSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/RingSettingsResponse;IIIILjava/lang/Object;)Lorg/openapitools/client/models/RingSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getAutoCancelTimeoutMs ()I + public final fun getIncomingCallTimeoutMs ()I + public final fun getMissedCallTimeoutMs ()I + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/SFULocationResponse { + public fun (Lorg/openapitools/client/models/Coordinates;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/Location;)V + public final fun component1 ()Lorg/openapitools/client/models/Coordinates; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/openapitools/client/models/Location; + public final fun copy (Lorg/openapitools/client/models/Coordinates;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/Location;)Lorg/openapitools/client/models/SFULocationResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/SFULocationResponse;Lorg/openapitools/client/models/Coordinates;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/Location;ILjava/lang/Object;)Lorg/openapitools/client/models/SFULocationResponse; public fun equals (Ljava/lang/Object;)Z - public final fun getAutoCancelTimeoutMs ()Ljava/lang/Integer; - public final fun getIncomingCallTimeoutMs ()Ljava/lang/Integer; + public final fun getCoordinates ()Lorg/openapitools/client/models/Coordinates; + public final fun getDatacenter ()Ljava/lang/String; + public final fun getId ()Ljava/lang/String; + public final fun getLocation ()Lorg/openapitools/client/models/Location; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -8366,52 +9551,57 @@ public final class org/openapitools/client/models/SFUResponse { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/ScreensharingSettings { - public fun (ZZ)V - public final fun component1 ()Z - public final fun component2 ()Z - public final fun copy (ZZ)Lorg/openapitools/client/models/ScreensharingSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/ScreensharingSettings;ZZILjava/lang/Object;)Lorg/openapitools/client/models/ScreensharingSettings; - public fun equals (Ljava/lang/Object;)Z - public final fun getAccessRequestEnabled ()Z - public final fun getEnabled ()Z - public fun hashCode ()I - public fun toString ()Ljava/lang/String; -} - public final class org/openapitools/client/models/ScreensharingSettingsRequest { public fun ()V - public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;)V - public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;)V + public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/Boolean; - public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;)Lorg/openapitools/client/models/ScreensharingSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/ScreensharingSettingsRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/ScreensharingSettingsRequest; + public final fun component3 ()Lorg/openapitools/client/models/TargetResolution; + public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;)Lorg/openapitools/client/models/ScreensharingSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ScreensharingSettingsRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;ILjava/lang/Object;)Lorg/openapitools/client/models/ScreensharingSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAccessRequestEnabled ()Ljava/lang/Boolean; public final fun getEnabled ()Ljava/lang/Boolean; + public final fun getTargetResolution ()Lorg/openapitools/client/models/TargetResolution; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ScreensharingSettingsResponse { + public fun (ZZLorg/openapitools/client/models/TargetResolution;)V + public synthetic fun (ZZLorg/openapitools/client/models/TargetResolution;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component2 ()Z + public final fun component3 ()Lorg/openapitools/client/models/TargetResolution; + public final fun copy (ZZLorg/openapitools/client/models/TargetResolution;)Lorg/openapitools/client/models/ScreensharingSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ScreensharingSettingsResponse;ZZLorg/openapitools/client/models/TargetResolution;ILjava/lang/Object;)Lorg/openapitools/client/models/ScreensharingSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getAccessRequestEnabled ()Z + public final fun getEnabled ()Z + public final fun getTargetResolution ()Lorg/openapitools/client/models/TargetResolution; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/SendEventRequest { +public final class org/openapitools/client/models/SendCallEventRequest { public fun ()V public fun (Ljava/util/Map;)V public synthetic fun (Ljava/util/Map;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/util/Map; - public final fun copy (Ljava/util/Map;)Lorg/openapitools/client/models/SendEventRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/SendEventRequest;Ljava/util/Map;ILjava/lang/Object;)Lorg/openapitools/client/models/SendEventRequest; + public final fun copy (Ljava/util/Map;)Lorg/openapitools/client/models/SendCallEventRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/SendCallEventRequest;Ljava/util/Map;ILjava/lang/Object;)Lorg/openapitools/client/models/SendCallEventRequest; public fun equals (Ljava/lang/Object;)Z public final fun getCustom ()Ljava/util/Map; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/SendEventResponse { +public final class org/openapitools/client/models/SendCallEventResponse { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/SendEventResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/SendEventResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/SendEventResponse; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/SendCallEventResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/SendCallEventResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/SendCallEventResponse; public fun equals (Ljava/lang/Object;)Z public final fun getDuration ()Ljava/lang/String; public fun hashCode ()I @@ -8447,14 +9637,14 @@ public final class org/openapitools/client/models/SendReactionResponse { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/SortParamRequest { +public final class org/openapitools/client/models/SortParam { public fun ()V public fun (Ljava/lang/Integer;Ljava/lang/String;)V public synthetic fun (Ljava/lang/Integer;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/Integer; public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/lang/Integer;Ljava/lang/String;)Lorg/openapitools/client/models/SortParamRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/SortParamRequest;Ljava/lang/Integer;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/SortParamRequest; + public final fun copy (Ljava/lang/Integer;Ljava/lang/String;)Lorg/openapitools/client/models/SortParam; + public static synthetic fun copy$default (Lorg/openapitools/client/models/SortParam;Ljava/lang/Integer;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/SortParam; public fun equals (Ljava/lang/Object;)Z public final fun getDirection ()Ljava/lang/Integer; public final fun getField ()Ljava/lang/String; @@ -8462,12 +9652,12 @@ public final class org/openapitools/client/models/SortParamRequest { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/StartBroadcastingResponse { +public final class org/openapitools/client/models/StartHLSBroadcastingResponse { public fun (Ljava/lang/String;Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; public final fun component2 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/StartBroadcastingResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/StartBroadcastingResponse;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/StartBroadcastingResponse; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/StartHLSBroadcastingResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/StartHLSBroadcastingResponse;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/StartHLSBroadcastingResponse; public fun equals (Ljava/lang/Object;)Z public final fun getDuration ()Ljava/lang/String; public final fun getPlaylistUrl ()Ljava/lang/String; @@ -8475,6 +9665,19 @@ public final class org/openapitools/client/models/StartBroadcastingResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/StartRecordingRequest { + public fun ()V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/StartRecordingRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/StartRecordingRequest;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/StartRecordingRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getRecordingExternalStorage ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/StartRecordingResponse { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; @@ -8486,6 +9689,19 @@ public final class org/openapitools/client/models/StartRecordingResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/StartTranscriptionRequest { + public fun ()V + public fun (Ljava/lang/String;)V + public synthetic fun (Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/StartTranscriptionRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/StartTranscriptionRequest;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/StartTranscriptionRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getTranscriptionExternalStorage ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/StartTranscriptionResponse { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; @@ -8497,6 +9713,19 @@ public final class org/openapitools/client/models/StartTranscriptionResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/Stats { + public fun (FF)V + public final fun component1 ()F + public final fun component2 ()F + public final fun copy (FF)Lorg/openapitools/client/models/Stats; + public static synthetic fun copy$default (Lorg/openapitools/client/models/Stats;FFILjava/lang/Object;)Lorg/openapitools/client/models/Stats; + public fun equals (Ljava/lang/Object;)Z + public final fun getAverageSeconds ()F + public final fun getMaxSeconds ()F + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/StatsOptions { public fun (I)V public final fun component1 ()I @@ -8508,11 +9737,11 @@ public final class org/openapitools/client/models/StatsOptions { public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/StopBroadcastingResponse { +public final class org/openapitools/client/models/StopHLSBroadcastingResponse { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/StopBroadcastingResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/StopBroadcastingResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/StopBroadcastingResponse; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/StopHLSBroadcastingResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/StopHLSBroadcastingResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/StopHLSBroadcastingResponse; public fun equals (Ljava/lang/Object;)Z public final fun getDuration ()Ljava/lang/String; public fun hashCode ()I @@ -8554,150 +9783,220 @@ public final class org/openapitools/client/models/StopTranscriptionResponse { public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/Subsession { + public fun (IILjava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;)V + public synthetic fun (IILjava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()I + public final fun component2 ()I + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/openapitools/client/models/MediaPubSubHint; + public final fun copy (IILjava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;)Lorg/openapitools/client/models/Subsession; + public static synthetic fun copy$default (Lorg/openapitools/client/models/Subsession;IILjava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;ILjava/lang/Object;)Lorg/openapitools/client/models/Subsession; + public fun equals (Ljava/lang/Object;)Z + public final fun getEndedAt ()I + public final fun getJoinedAt ()I + public final fun getPubSubHint ()Lorg/openapitools/client/models/MediaPubSubHint; + public final fun getSfuId ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/TargetResolution { - public fun (III)V + public fun (IILjava/lang/Integer;)V + public synthetic fun (IILjava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()I public final fun component2 ()I - public final fun component3 ()I - public final fun copy (III)Lorg/openapitools/client/models/TargetResolution; - public static synthetic fun copy$default (Lorg/openapitools/client/models/TargetResolution;IIIILjava/lang/Object;)Lorg/openapitools/client/models/TargetResolution; + public final fun component3 ()Ljava/lang/Integer; + public final fun copy (IILjava/lang/Integer;)Lorg/openapitools/client/models/TargetResolution; + public static synthetic fun copy$default (Lorg/openapitools/client/models/TargetResolution;IILjava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/TargetResolution; public fun equals (Ljava/lang/Object;)Z - public final fun getBitrate ()I + public final fun getBitrate ()Ljava/lang/Integer; public final fun getHeight ()I public final fun getWidth ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/TargetResolutionRequest { +public final class org/openapitools/client/models/Thresholds { public fun ()V - public fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V - public synthetic fun (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/Integer; - public final fun component2 ()Ljava/lang/Integer; - public final fun component3 ()Ljava/lang/Integer; - public final fun copy (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)Lorg/openapitools/client/models/TargetResolutionRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/TargetResolutionRequest;Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/TargetResolutionRequest; + public fun (Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;)V + public synthetic fun (Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/LabelThresholds; + public final fun component2 ()Lorg/openapitools/client/models/LabelThresholds; + public final fun component3 ()Lorg/openapitools/client/models/LabelThresholds; + public final fun copy (Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;)Lorg/openapitools/client/models/Thresholds; + public static synthetic fun copy$default (Lorg/openapitools/client/models/Thresholds;Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;Lorg/openapitools/client/models/LabelThresholds;ILjava/lang/Object;)Lorg/openapitools/client/models/Thresholds; + public fun equals (Ljava/lang/Object;)Z + public final fun getExplicit ()Lorg/openapitools/client/models/LabelThresholds; + public final fun getSpam ()Lorg/openapitools/client/models/LabelThresholds; + public final fun getToxic ()Lorg/openapitools/client/models/LabelThresholds; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ThumbnailResponse { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/ThumbnailResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ThumbnailResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/ThumbnailResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getImageUrl ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ThumbnailsSettingsRequest { + public fun ()V + public fun (Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;)Lorg/openapitools/client/models/ThumbnailsSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ThumbnailsSettingsRequest;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/ThumbnailsSettingsRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getEnabled ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/ThumbnailsSettingsResponse { + public fun (Z)V + public final fun component1 ()Z + public final fun copy (Z)Lorg/openapitools/client/models/ThumbnailsSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/ThumbnailsSettingsResponse;ZILjava/lang/Object;)Lorg/openapitools/client/models/ThumbnailsSettingsResponse; public fun equals (Ljava/lang/Object;)Z - public final fun getBitrate ()Ljava/lang/Integer; - public final fun getHeight ()Ljava/lang/Integer; - public final fun getWidth ()Ljava/lang/Integer; + public final fun getEnabled ()Z public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/TranscriptionSettings { - public fun (Ljava/lang/String;Lorg/openapitools/client/models/TranscriptionSettings$Mode;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/openapitools/client/models/TranscriptionSettings$Mode; - public final fun copy (Ljava/lang/String;Lorg/openapitools/client/models/TranscriptionSettings$Mode;)Lorg/openapitools/client/models/TranscriptionSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettings;Ljava/lang/String;Lorg/openapitools/client/models/TranscriptionSettings$Mode;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettings; +public final class org/openapitools/client/models/TranscriptionSettingsRequest { + public fun (Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;Ljava/lang/String;Ljava/util/List;)V + public synthetic fun (Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;Ljava/lang/String;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/util/List; + public final fun copy (Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;Ljava/lang/String;Ljava/util/List;)Lorg/openapitools/client/models/TranscriptionSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettingsRequest;Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getClosedCaptionMode ()Ljava/lang/String; - public final fun getMode ()Lorg/openapitools/client/models/TranscriptionSettings$Mode; + public final fun getLanguages ()Ljava/util/List; + public final fun getMode ()Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public abstract class org/openapitools/client/models/TranscriptionSettings$Mode { - public static final field Companion Lorg/openapitools/client/models/TranscriptionSettings$Mode$Companion; +public abstract class org/openapitools/client/models/TranscriptionSettingsRequest$Mode { + public static final field Companion Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Companion; public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun getValue ()Ljava/lang/String; public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/TranscriptionSettings$Mode$AutoOn : org/openapitools/client/models/TranscriptionSettings$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettings$Mode$AutoOn; +public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$AutoOn : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$AutoOn; } -public final class org/openapitools/client/models/TranscriptionSettings$Mode$Available : org/openapitools/client/models/TranscriptionSettings$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettings$Mode$Available; +public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Available : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Available; } -public final class org/openapitools/client/models/TranscriptionSettings$Mode$Companion { - public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettings$Mode; +public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; } -public final class org/openapitools/client/models/TranscriptionSettings$Mode$Disabled : org/openapitools/client/models/TranscriptionSettings$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettings$Mode$Disabled; +public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Disabled : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Disabled; } -public final class org/openapitools/client/models/TranscriptionSettings$Mode$ModeAdapter : com/squareup/moshi/JsonAdapter { +public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$ModeAdapter : com/squareup/moshi/JsonAdapter { public fun ()V public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; - public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/TranscriptionSettings$Mode; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V - public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/TranscriptionSettings$Mode;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;)V } -public final class org/openapitools/client/models/TranscriptionSettings$Mode$Unknown : org/openapitools/client/models/TranscriptionSettings$Mode { +public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettings$Mode$Unknown; - public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettings$Mode$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettings$Mode$Unknown; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown; public fun equals (Ljava/lang/Object;)Z public final fun getUnknownValue ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/TranscriptionSettingsRequest { - public fun ()V - public fun (Ljava/lang/String;Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;)V - public synthetic fun (Ljava/lang/String;Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/TranscriptionSettingsResponse { + public fun (Ljava/lang/String;Ljava/util/List;Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode;)V public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; - public final fun copy (Ljava/lang/String;Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;)Lorg/openapitools/client/models/TranscriptionSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettingsRequest;Ljava/lang/String;Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettingsRequest; + public final fun component2 ()Ljava/util/List; + public final fun component3 ()Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode; + public final fun copy (Ljava/lang/String;Ljava/util/List;Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode;)Lorg/openapitools/client/models/TranscriptionSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettingsResponse;Ljava/lang/String;Ljava/util/List;Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettingsResponse; public fun equals (Ljava/lang/Object;)Z public final fun getClosedCaptionMode ()Ljava/lang/String; - public final fun getMode ()Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; + public final fun getLanguages ()Ljava/util/List; + public final fun getMode ()Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public abstract class org/openapitools/client/models/TranscriptionSettingsRequest$Mode { - public static final field Companion Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Companion; +public abstract class org/openapitools/client/models/TranscriptionSettingsResponse$Mode { + public static final field Companion Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode$Companion; public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun getValue ()Ljava/lang/String; public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$AutoOn : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$AutoOn; +public final class org/openapitools/client/models/TranscriptionSettingsResponse$Mode$AutoOn : org/openapitools/client/models/TranscriptionSettingsResponse$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode$AutoOn; } -public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Available : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Available; +public final class org/openapitools/client/models/TranscriptionSettingsResponse$Mode$Available : org/openapitools/client/models/TranscriptionSettingsResponse$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode$Available; } -public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Companion { - public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; +public final class org/openapitools/client/models/TranscriptionSettingsResponse$Mode$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode; } -public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Disabled : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { - public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Disabled; +public final class org/openapitools/client/models/TranscriptionSettingsResponse$Mode$Disabled : org/openapitools/client/models/TranscriptionSettingsResponse$Mode { + public static final field INSTANCE Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode$Disabled; } -public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$ModeAdapter : com/squareup/moshi/JsonAdapter { +public final class org/openapitools/client/models/TranscriptionSettingsResponse$Mode$ModeAdapter : com/squareup/moshi/JsonAdapter { public fun ()V public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; - public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode; public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V - public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode;)V } -public final class org/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown : org/openapitools/client/models/TranscriptionSettingsRequest$Mode { +public final class org/openapitools/client/models/TranscriptionSettingsResponse$Mode$Unknown : org/openapitools/client/models/TranscriptionSettingsResponse$Mode { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown; - public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettingsRequest$Mode$Unknown; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/TranscriptionSettingsResponse$Mode$Unknown; public fun equals (Ljava/lang/Object;)Z public final fun getUnknownValue ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/TypingIndicators { + public fun ()V + public fun (Ljava/lang/Boolean;)V + public synthetic fun (Ljava/lang/Boolean;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/Boolean; + public final fun copy (Ljava/lang/Boolean;)Lorg/openapitools/client/models/TypingIndicators; + public static synthetic fun copy$default (Lorg/openapitools/client/models/TypingIndicators;Ljava/lang/Boolean;ILjava/lang/Object;)Lorg/openapitools/client/models/TypingIndicators; + public fun equals (Ljava/lang/Object;)Z + public final fun getEnabled ()Ljava/lang/Boolean; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/UnblockUserRequest { public fun (Ljava/lang/String;)V public final fun component1 ()Ljava/lang/String; @@ -8851,75 +10150,478 @@ public final class org/openapitools/client/models/UpdateUserPermissionsResponse public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/UpdateUserPermissionsResponse; public static synthetic fun copy$default (Lorg/openapitools/client/models/UpdateUserPermissionsResponse;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/UpdateUserPermissionsResponse; public fun equals (Ljava/lang/Object;)Z - public final fun getDuration ()Ljava/lang/String; + public final fun getDuration ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UpdatedCallPermissionsEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { + public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)V + public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Ljava/util/List; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Lorg/openapitools/client/models/UserResponse; + public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)Lorg/openapitools/client/models/UpdatedCallPermissionsEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UpdatedCallPermissionsEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILjava/lang/Object;)Lorg/openapitools/client/models/UpdatedCallPermissionsEvent; + public fun equals (Ljava/lang/Object;)Z + public fun getCallCID ()Ljava/lang/String; + public final fun getCallCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getOwnCapabilities ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserResponse; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserBannedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component10 ()Ljava/lang/String; + public final fun component11 ()Lorg/openapitools/client/models/UserObject; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component5 ()Lorg/openapitools/client/models/UserObject; + public final fun component6 ()Z + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component9 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserBannedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserBannedEvent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserBannedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getChannelId ()Ljava/lang/String; + public final fun getChannelType ()Ljava/lang/String; + public final fun getCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getCreatedBy ()Lorg/openapitools/client/models/UserObject; + public fun getEventType ()Ljava/lang/String; + public final fun getExpiration ()Lorg/threeten/bp/OffsetDateTime; + public final fun getReason ()Ljava/lang/String; + public final fun getShadow ()Z + public final fun getTeam ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserDeactivatedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Lorg/openapitools/client/models/UserObject; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserDeactivatedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserDeactivatedEvent;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserDeactivatedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getCreatedBy ()Lorg/openapitools/client/models/UserObject; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserDeletedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Lorg/threeten/bp/OffsetDateTime;ZZZLjava/lang/String;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;ZZZLjava/lang/String;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Z + public final fun component3 ()Z + public final fun component4 ()Z + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;ZZZLjava/lang/String;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserDeletedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserDeletedEvent;Lorg/threeten/bp/OffsetDateTime;ZZZLjava/lang/String;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserDeletedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDeleteConversationChannels ()Z + public fun getEventType ()Ljava/lang/String; + public final fun getHardDelete ()Z + public final fun getMarkMessagesDeleted ()Z + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserInfoResponse { + public fun (Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)V + public final fun component1 ()Ljava/util/Map; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun copy (Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;)Lorg/openapitools/client/models/UserInfoResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserInfoResponse;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/UserInfoResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustom ()Ljava/util/Map; + public final fun getImage ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getRoles ()Ljava/util/List; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserMute { + public fun (Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component4 ()Lorg/openapitools/client/models/UserObject; + public final fun component5 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserMute; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserMute;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/UserObject;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserMute; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getExpires ()Lorg/threeten/bp/OffsetDateTime; + public final fun getTarget ()Lorg/openapitools/client/models/UserObject; + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserMutedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/util/List; + public final fun component5 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserMutedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserMutedEvent;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserMutedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getTargetUser ()Ljava/lang/String; + public final fun getTargetUsers ()Ljava/util/List; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserObject { + public fun (ZLjava/util/Map;Ljava/lang/String;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;)V + public synthetic fun (ZLjava/util/Map;Ljava/lang/String;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component10 ()Ljava/lang/Boolean; + public final fun component11 ()Ljava/lang/String; + public final fun component12 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component13 ()Lorg/openapitools/client/models/PrivacySettings; + public final fun component14 ()Lorg/openapitools/client/models/PushNotificationSettings; + public final fun component15 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component16 ()Ljava/util/List; + public final fun component17 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Z + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component7 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component8 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component9 ()Lorg/threeten/bp/OffsetDateTime; + public final fun copy (ZLjava/util/Map;Ljava/lang/String;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/UserObject; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserObject;ZLjava/util/Map;Ljava/lang/String;ZLjava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/Boolean;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettings;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/UserObject; + public fun equals (Ljava/lang/Object;)Z + public final fun getBanExpires ()Lorg/threeten/bp/OffsetDateTime; + public final fun getBanned ()Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getCustom ()Ljava/util/Map; + public final fun getDeactivatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDeletedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getId ()Ljava/lang/String; + public final fun getInvisible ()Ljava/lang/Boolean; + public final fun getLanguage ()Ljava/lang/String; + public final fun getLastActive ()Lorg/threeten/bp/OffsetDateTime; + public final fun getOnline ()Z + public final fun getPrivacySettings ()Lorg/openapitools/client/models/PrivacySettings; + public final fun getPushNotifications ()Lorg/openapitools/client/models/PushNotificationSettings; + public final fun getRevokeTokensIssuedBefore ()Lorg/threeten/bp/OffsetDateTime; + public final fun getRole ()Ljava/lang/String; + public final fun getTeams ()Ljava/util/List; + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserPresenceChangedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserPresenceChangedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserPresenceChangedEvent;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserPresenceChangedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserReactivatedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserReactivatedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserReactivatedEvent;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserReactivatedEvent; + public fun equals (Ljava/lang/Object;)Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserRequest { + public fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;)V + public synthetic fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/util/Map; + public final fun component3 ()Ljava/lang/String; + public final fun component4 ()Ljava/lang/Boolean; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Lorg/openapitools/client/models/PrivacySettings; + public final fun component8 ()Lorg/openapitools/client/models/PushNotificationSettingsInput; + public final fun copy (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;)Lorg/openapitools/client/models/UserRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Boolean;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/PrivacySettings;Lorg/openapitools/client/models/PushNotificationSettingsInput;ILjava/lang/Object;)Lorg/openapitools/client/models/UserRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getCustom ()Ljava/util/Map; + public final fun getId ()Ljava/lang/String; + public final fun getImage ()Ljava/lang/String; + public final fun getInvisible ()Ljava/lang/Boolean; + public final fun getLanguage ()Ljava/lang/String; + public final fun getName ()Ljava/lang/String; + public final fun getPrivacySettings ()Lorg/openapitools/client/models/PrivacySettings; + public final fun getPushNotifications ()Lorg/openapitools/client/models/PushNotificationSettingsInput; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserResponse { + public fun (ZLorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;)V + public synthetic fun (ZLorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Z + public final fun component10 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component11 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component12 ()Ljava/lang/String; + public final fun component13 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component14 ()Ljava/lang/String; + public final fun component15 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component3 ()Ljava/util/Map; + public final fun component4 ()Ljava/lang/String; + public final fun component5 ()Ljava/lang/String; + public final fun component6 ()Z + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Ljava/util/List; + public final fun component9 ()Lorg/threeten/bp/OffsetDateTime; + public final fun copy (ZLorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;)Lorg/openapitools/client/models/UserResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserResponse;ZLorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;ILjava/lang/Object;)Lorg/openapitools/client/models/UserResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getBanned ()Z + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getCustom ()Ljava/util/Map; + public final fun getDeactivatedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getDeletedAt ()Lorg/threeten/bp/OffsetDateTime; + public final fun getId ()Ljava/lang/String; + public final fun getImage ()Ljava/lang/String; + public final fun getLanguage ()Ljava/lang/String; + public final fun getLastActive ()Lorg/threeten/bp/OffsetDateTime; + public final fun getName ()Ljava/lang/String; + public final fun getOnline ()Z + public final fun getRevokeTokensIssuedBefore ()Lorg/threeten/bp/OffsetDateTime; + public final fun getRole ()Ljava/lang/String; + public final fun getTeams ()Ljava/util/List; + public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/UserSessionStats { + public fun (IFIFFIFILjava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Float;Lorg/openapitools/client/models/GeolocationResult;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Lorg/openapitools/client/models/VideoQuality;Lorg/openapitools/client/models/VideoQuality;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;Ljava/util/List;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/util/List;Lorg/openapitools/client/models/CallTimeline;Ljava/lang/String;)V + public synthetic fun (IFIFFIFILjava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Float;Lorg/openapitools/client/models/GeolocationResult;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Lorg/openapitools/client/models/VideoQuality;Lorg/openapitools/client/models/VideoQuality;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;Ljava/util/List;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/util/List;Lorg/openapitools/client/models/CallTimeline;Ljava/lang/String;IILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()I + public final fun component10 ()I + public final fun component11 ()I + public final fun component12 ()Ljava/lang/String; + public final fun component13 ()Ljava/lang/String; + public final fun component14 ()Ljava/lang/String; + public final fun component15 ()Ljava/lang/String; + public final fun component16 ()Ljava/lang/String; + public final fun component17 ()Ljava/lang/String; + public final fun component18 ()Ljava/lang/Float; + public final fun component19 ()Lorg/openapitools/client/models/GeolocationResult; + public final fun component2 ()F + public final fun component20 ()Lorg/openapitools/client/models/Stats; + public final fun component21 ()Lorg/openapitools/client/models/Stats; + public final fun component22 ()Ljava/lang/Float; + public final fun component23 ()Ljava/lang/Float; + public final fun component24 ()Ljava/lang/Float; + public final fun component25 ()Ljava/lang/Float; + public final fun component26 ()Lorg/openapitools/client/models/VideoQuality; + public final fun component27 ()Lorg/openapitools/client/models/VideoQuality; + public final fun component28 ()Ljava/lang/String; + public final fun component29 ()Ljava/lang/String; + public final fun component3 ()I + public final fun component30 ()Lorg/openapitools/client/models/MediaPubSubHint; + public final fun component31 ()Ljava/util/List; + public final fun component32 ()Lorg/openapitools/client/models/MOSStats; + public final fun component33 ()Lorg/openapitools/client/models/Stats; + public final fun component34 ()Lorg/openapitools/client/models/Stats; + public final fun component35 ()Ljava/lang/Float; + public final fun component36 ()Ljava/lang/Float; + public final fun component37 ()Ljava/util/Map; + public final fun component38 ()Ljava/lang/String; + public final fun component39 ()Ljava/lang/String; + public final fun component4 ()F + public final fun component40 ()Ljava/lang/String; + public final fun component41 ()Ljava/lang/String; + public final fun component42 ()Ljava/lang/String; + public final fun component43 ()Ljava/lang/String; + public final fun component44 ()Lorg/openapitools/client/models/MOSStats; + public final fun component45 ()Lorg/openapitools/client/models/Stats; + public final fun component46 ()Lorg/openapitools/client/models/Stats; + public final fun component47 ()Ljava/lang/Float; + public final fun component48 ()Ljava/util/List; + public final fun component49 ()Lorg/openapitools/client/models/CallTimeline; + public final fun component5 ()F + public final fun component50 ()Ljava/lang/String; + public final fun component6 ()I + public final fun component7 ()F + public final fun component8 ()I + public final fun component9 ()Ljava/lang/String; + public final fun copy (IFIFFIFILjava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Float;Lorg/openapitools/client/models/GeolocationResult;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Lorg/openapitools/client/models/VideoQuality;Lorg/openapitools/client/models/VideoQuality;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;Ljava/util/List;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/util/List;Lorg/openapitools/client/models/CallTimeline;Ljava/lang/String;)Lorg/openapitools/client/models/UserSessionStats; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserSessionStats;IFIFFIFILjava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Float;Lorg/openapitools/client/models/GeolocationResult;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Ljava/lang/Float;Lorg/openapitools/client/models/VideoQuality;Lorg/openapitools/client/models/VideoQuality;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MediaPubSubHint;Ljava/util/List;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/lang/Float;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/MOSStats;Lorg/openapitools/client/models/Stats;Lorg/openapitools/client/models/Stats;Ljava/lang/Float;Ljava/util/List;Lorg/openapitools/client/models/CallTimeline;Ljava/lang/String;IILjava/lang/Object;)Lorg/openapitools/client/models/UserSessionStats; + public fun equals (Ljava/lang/Object;)Z + public final fun getBrowser ()Ljava/lang/String; + public final fun getBrowserVersion ()Ljava/lang/String; + public final fun getCurrentIp ()Ljava/lang/String; + public final fun getCurrentSfu ()Ljava/lang/String; + public final fun getDeviceModel ()Ljava/lang/String; + public final fun getDeviceVersion ()Ljava/lang/String; + public final fun getDistanceToSfuKilometers ()Ljava/lang/Float; + public final fun getFreezeDurationSeconds ()I + public final fun getGeolocation ()Lorg/openapitools/client/models/GeolocationResult; + public final fun getJitter ()Lorg/openapitools/client/models/Stats; + public final fun getLatency ()Lorg/openapitools/client/models/Stats; + public final fun getMaxFirPerSecond ()Ljava/lang/Float; + public final fun getMaxFreezeFraction ()F + public final fun getMaxFreezesDurationSeconds ()I + public final fun getMaxFreezesPerSecond ()Ljava/lang/Float; + public final fun getMaxNackPerSecond ()Ljava/lang/Float; + public final fun getMaxPliPerSecond ()Ljava/lang/Float; + public final fun getMaxPublishingVideoQuality ()Lorg/openapitools/client/models/VideoQuality; + public final fun getMaxReceivingVideoQuality ()Lorg/openapitools/client/models/VideoQuality; + public final fun getOs ()Ljava/lang/String; + public final fun getOsVersion ()Ljava/lang/String; + public final fun getPacketLossFraction ()F + public final fun getPubSubHints ()Lorg/openapitools/client/models/MediaPubSubHint; + public final fun getPublishedTracks ()Ljava/util/List; + public final fun getPublisherAudioMos ()Lorg/openapitools/client/models/MOSStats; + public final fun getPublisherJitter ()Lorg/openapitools/client/models/Stats; + public final fun getPublisherLatency ()Lorg/openapitools/client/models/Stats; + public final fun getPublisherNoiseCancellationSeconds ()Ljava/lang/Float; + public final fun getPublisherPacketLossFraction ()F + public final fun getPublisherQualityLimitationFraction ()Ljava/lang/Float; + public final fun getPublisherVideoQualityLimitationDurationSeconds ()Ljava/util/Map; + public final fun getPublishingAudioCodec ()Ljava/lang/String; + public final fun getPublishingDurationSeconds ()I + public final fun getPublishingVideoCodec ()Ljava/lang/String; + public final fun getQualityScore ()F + public final fun getReceivingAudioCodec ()Ljava/lang/String; + public final fun getReceivingDurationSeconds ()I + public final fun getReceivingVideoCodec ()Ljava/lang/String; + public final fun getSdk ()Ljava/lang/String; + public final fun getSdkVersion ()Ljava/lang/String; + public final fun getSessionId ()Ljava/lang/String; + public final fun getSubscriberAudioMos ()Lorg/openapitools/client/models/MOSStats; + public final fun getSubscriberJitter ()Lorg/openapitools/client/models/Stats; + public final fun getSubscriberLatency ()Lorg/openapitools/client/models/Stats; + public final fun getSubscriberVideoQualityThrottledDurationSeconds ()Ljava/lang/Float; + public final fun getSubsessions ()Ljava/util/List; + public final fun getTimeline ()Lorg/openapitools/client/models/CallTimeline; + public final fun getTotalPixelsIn ()I + public final fun getTotalPixelsOut ()I + public final fun getWebrtcVersion ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/UpdatedCallPermissionsEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSCallEvent { - public fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)V - public synthetic fun (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Lorg/threeten/bp/OffsetDateTime; +public final class org/openapitools/client/models/UserStats { + public fun (Lorg/openapitools/client/models/UserInfoResponse;ILjava/util/List;Ljava/lang/Integer;)V + public synthetic fun (Lorg/openapitools/client/models/UserInfoResponse;ILjava/util/List;Ljava/lang/Integer;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/UserInfoResponse; + public final fun component2 ()I public final fun component3 ()Ljava/util/List; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Lorg/openapitools/client/models/UserResponse; - public final fun copy (Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;)Lorg/openapitools/client/models/UpdatedCallPermissionsEvent; - public static synthetic fun copy$default (Lorg/openapitools/client/models/UpdatedCallPermissionsEvent;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;Ljava/util/List;Ljava/lang/String;Lorg/openapitools/client/models/UserResponse;ILjava/lang/Object;)Lorg/openapitools/client/models/UpdatedCallPermissionsEvent; + public final fun component4 ()Ljava/lang/Integer; + public final fun copy (Lorg/openapitools/client/models/UserInfoResponse;ILjava/util/List;Ljava/lang/Integer;)Lorg/openapitools/client/models/UserStats; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserStats;Lorg/openapitools/client/models/UserInfoResponse;ILjava/util/List;Ljava/lang/Integer;ILjava/lang/Object;)Lorg/openapitools/client/models/UserStats; public fun equals (Ljava/lang/Object;)Z - public fun getCallCID ()Ljava/lang/String; - public final fun getCallCid ()Ljava/lang/String; - public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; - public fun getEventType ()Ljava/lang/String; - public final fun getOwnCapabilities ()Ljava/util/List; - public final fun getType ()Ljava/lang/String; - public final fun getUser ()Lorg/openapitools/client/models/UserResponse; + public final fun getInfo ()Lorg/openapitools/client/models/UserInfoResponse; + public final fun getMinEventTs ()I + public final fun getRating ()Ljava/lang/Integer; + public final fun getSessionStats ()Ljava/util/List; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/UserRequest { - public fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/UserUnbannedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZLjava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZLjava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/String; - public final fun component2 ()Ljava/util/Map; + public final fun component2 ()Ljava/lang/String; public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/UserRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/UserRequest;Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/UserRequest; + public final fun component4 ()Lorg/threeten/bp/OffsetDateTime; + public final fun component5 ()Z + public final fun component6 ()Ljava/lang/String; + public final fun component7 ()Ljava/lang/String; + public final fun component8 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZLjava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserUnbannedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserUnbannedEvent;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/threeten/bp/OffsetDateTime;ZLjava/lang/String;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserUnbannedEvent; public fun equals (Ljava/lang/Object;)Z - public final fun getCustom ()Ljava/util/Map; - public final fun getId ()Ljava/lang/String; - public final fun getImage ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; + public final fun getChannelId ()Ljava/lang/String; + public final fun getChannelType ()Ljava/lang/String; + public final fun getCid ()Ljava/lang/String; + public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getShadow ()Z + public final fun getTeam ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public final class org/openapitools/client/models/UserResponse { - public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)V - public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V +public final class org/openapitools/client/models/UserUpdatedEvent : org/openapitools/client/models/VideoEvent, org/openapitools/client/models/WSClientEvent { + public fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)V + public synthetic fun (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component2 ()Ljava/util/Map; - public final fun component3 ()Ljava/lang/String; - public final fun component4 ()Ljava/lang/String; - public final fun component5 ()Ljava/util/List; - public final fun component6 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component7 ()Lorg/threeten/bp/OffsetDateTime; - public final fun component8 ()Ljava/lang/String; - public final fun component9 ()Ljava/lang/String; - public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;)Lorg/openapitools/client/models/UserResponse; - public static synthetic fun copy$default (Lorg/openapitools/client/models/UserResponse;Lorg/threeten/bp/OffsetDateTime;Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Lorg/threeten/bp/OffsetDateTime;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/UserResponse; + public final fun component2 ()Ljava/lang/String; + public final fun component3 ()Lorg/openapitools/client/models/UserObject; + public final fun copy (Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;)Lorg/openapitools/client/models/UserUpdatedEvent; + public static synthetic fun copy$default (Lorg/openapitools/client/models/UserUpdatedEvent;Lorg/threeten/bp/OffsetDateTime;Ljava/lang/String;Lorg/openapitools/client/models/UserObject;ILjava/lang/Object;)Lorg/openapitools/client/models/UserUpdatedEvent; public fun equals (Ljava/lang/Object;)Z public final fun getCreatedAt ()Lorg/threeten/bp/OffsetDateTime; - public final fun getCustom ()Ljava/util/Map; - public final fun getDeletedAt ()Lorg/threeten/bp/OffsetDateTime; - public final fun getId ()Ljava/lang/String; - public final fun getImage ()Ljava/lang/String; - public final fun getName ()Ljava/lang/String; - public final fun getRole ()Ljava/lang/String; - public final fun getTeams ()Ljava/util/List; - public final fun getUpdatedAt ()Lorg/threeten/bp/OffsetDateTime; + public fun getEventType ()Ljava/lang/String; + public final fun getType ()Ljava/lang/String; + public final fun getUser ()Lorg/openapitools/client/models/UserObject; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -8937,84 +10639,51 @@ public final class org/openapitools/client/models/VideoEventAdapter : com/square public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/VideoEvent;)V } -public final class org/openapitools/client/models/VideoSettings { - public fun (ZZLorg/openapitools/client/models/VideoSettings$CameraFacing;ZLorg/openapitools/client/models/TargetResolution;)V - public final fun component1 ()Z - public final fun component2 ()Z - public final fun component3 ()Lorg/openapitools/client/models/VideoSettings$CameraFacing; - public final fun component4 ()Z - public final fun component5 ()Lorg/openapitools/client/models/TargetResolution; - public final fun copy (ZZLorg/openapitools/client/models/VideoSettings$CameraFacing;ZLorg/openapitools/client/models/TargetResolution;)Lorg/openapitools/client/models/VideoSettings; - public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoSettings;ZZLorg/openapitools/client/models/VideoSettings$CameraFacing;ZLorg/openapitools/client/models/TargetResolution;ILjava/lang/Object;)Lorg/openapitools/client/models/VideoSettings; +public final class org/openapitools/client/models/VideoQuality { + public fun ()V + public fun (Lorg/openapitools/client/models/VideoResolution;Ljava/lang/String;)V + public synthetic fun (Lorg/openapitools/client/models/VideoResolution;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Lorg/openapitools/client/models/VideoResolution; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Lorg/openapitools/client/models/VideoResolution;Ljava/lang/String;)Lorg/openapitools/client/models/VideoQuality; + public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoQuality;Lorg/openapitools/client/models/VideoResolution;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/VideoQuality; public fun equals (Ljava/lang/Object;)Z - public final fun getAccessRequestEnabled ()Z - public final fun getCameraDefaultOn ()Z - public final fun getCameraFacing ()Lorg/openapitools/client/models/VideoSettings$CameraFacing; - public final fun getEnabled ()Z - public final fun getTargetResolution ()Lorg/openapitools/client/models/TargetResolution; + public final fun getResolution ()Lorg/openapitools/client/models/VideoResolution; + public final fun getUsageType ()Ljava/lang/String; public fun hashCode ()I public fun toString ()Ljava/lang/String; } -public abstract class org/openapitools/client/models/VideoSettings$CameraFacing { - public static final field Companion Lorg/openapitools/client/models/VideoSettings$CameraFacing$Companion; - public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun getValue ()Ljava/lang/String; - public fun toString ()Ljava/lang/String; -} - -public final class org/openapitools/client/models/VideoSettings$CameraFacing$Back : org/openapitools/client/models/VideoSettings$CameraFacing { - public static final field INSTANCE Lorg/openapitools/client/models/VideoSettings$CameraFacing$Back; -} - -public final class org/openapitools/client/models/VideoSettings$CameraFacing$CameraFacingAdapter : com/squareup/moshi/JsonAdapter { - public fun ()V - public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; - public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/VideoSettings$CameraFacing; - public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V - public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/VideoSettings$CameraFacing;)V -} - -public final class org/openapitools/client/models/VideoSettings$CameraFacing$Companion { - public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/VideoSettings$CameraFacing; -} - -public final class org/openapitools/client/models/VideoSettings$CameraFacing$External : org/openapitools/client/models/VideoSettings$CameraFacing { - public static final field INSTANCE Lorg/openapitools/client/models/VideoSettings$CameraFacing$External; -} - -public final class org/openapitools/client/models/VideoSettings$CameraFacing$Front : org/openapitools/client/models/VideoSettings$CameraFacing { - public static final field INSTANCE Lorg/openapitools/client/models/VideoSettings$CameraFacing$Front; -} - -public final class org/openapitools/client/models/VideoSettings$CameraFacing$Unknown : org/openapitools/client/models/VideoSettings$CameraFacing { - public fun (Ljava/lang/String;)V - public final fun component1 ()Ljava/lang/String; - public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/VideoSettings$CameraFacing$Unknown; - public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoSettings$CameraFacing$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/VideoSettings$CameraFacing$Unknown; +public final class org/openapitools/client/models/VideoResolution { + public fun (II)V + public final fun component1 ()I + public final fun component2 ()I + public final fun copy (II)Lorg/openapitools/client/models/VideoResolution; + public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoResolution;IIILjava/lang/Object;)Lorg/openapitools/client/models/VideoResolution; public fun equals (Ljava/lang/Object;)Z - public final fun getUnknownValue ()Ljava/lang/String; + public final fun getHeight ()I + public final fun getWidth ()I public fun hashCode ()I public fun toString ()Ljava/lang/String; } public final class org/openapitools/client/models/VideoSettingsRequest { public fun ()V - public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolutionRequest;)V - public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolutionRequest;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;)V + public synthetic fun (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;ILkotlin/jvm/internal/DefaultConstructorMarker;)V public final fun component1 ()Ljava/lang/Boolean; public final fun component2 ()Ljava/lang/Boolean; public final fun component3 ()Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing; public final fun component4 ()Ljava/lang/Boolean; - public final fun component5 ()Lorg/openapitools/client/models/TargetResolutionRequest; - public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolutionRequest;)Lorg/openapitools/client/models/VideoSettingsRequest; - public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoSettingsRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolutionRequest;ILjava/lang/Object;)Lorg/openapitools/client/models/VideoSettingsRequest; + public final fun component5 ()Lorg/openapitools/client/models/TargetResolution; + public final fun copy (Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;)Lorg/openapitools/client/models/VideoSettingsRequest; + public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoSettingsRequest;Ljava/lang/Boolean;Ljava/lang/Boolean;Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing;Ljava/lang/Boolean;Lorg/openapitools/client/models/TargetResolution;ILjava/lang/Object;)Lorg/openapitools/client/models/VideoSettingsRequest; public fun equals (Ljava/lang/Object;)Z public final fun getAccessRequestEnabled ()Ljava/lang/Boolean; public final fun getCameraDefaultOn ()Ljava/lang/Boolean; public final fun getCameraFacing ()Lorg/openapitools/client/models/VideoSettingsRequest$CameraFacing; public final fun getEnabled ()Ljava/lang/Boolean; - public final fun getTargetResolution ()Lorg/openapitools/client/models/TargetResolutionRequest; + public final fun getTargetResolution ()Lorg/openapitools/client/models/TargetResolution; public fun hashCode ()I public fun toString ()Ljava/lang/String; } @@ -9061,6 +10730,83 @@ public final class org/openapitools/client/models/VideoSettingsRequest$CameraFac public fun toString ()Ljava/lang/String; } +public final class org/openapitools/client/models/VideoSettingsResponse { + public fun (ZZLorg/openapitools/client/models/VideoSettingsResponse$CameraFacing;ZLorg/openapitools/client/models/TargetResolution;)V + public final fun component1 ()Z + public final fun component2 ()Z + public final fun component3 ()Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing; + public final fun component4 ()Z + public final fun component5 ()Lorg/openapitools/client/models/TargetResolution; + public final fun copy (ZZLorg/openapitools/client/models/VideoSettingsResponse$CameraFacing;ZLorg/openapitools/client/models/TargetResolution;)Lorg/openapitools/client/models/VideoSettingsResponse; + public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoSettingsResponse;ZZLorg/openapitools/client/models/VideoSettingsResponse$CameraFacing;ZLorg/openapitools/client/models/TargetResolution;ILjava/lang/Object;)Lorg/openapitools/client/models/VideoSettingsResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getAccessRequestEnabled ()Z + public final fun getCameraDefaultOn ()Z + public final fun getCameraFacing ()Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing; + public final fun getEnabled ()Z + public final fun getTargetResolution ()Lorg/openapitools/client/models/TargetResolution; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public abstract class org/openapitools/client/models/VideoSettingsResponse$CameraFacing { + public static final field Companion Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing$Companion; + public synthetic fun (Ljava/lang/String;Lkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun getValue ()Ljava/lang/String; + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/VideoSettingsResponse$CameraFacing$Back : org/openapitools/client/models/VideoSettingsResponse$CameraFacing { + public static final field INSTANCE Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing$Back; +} + +public final class org/openapitools/client/models/VideoSettingsResponse$CameraFacing$CameraFacingAdapter : com/squareup/moshi/JsonAdapter { + public fun ()V + public synthetic fun fromJson (Lcom/squareup/moshi/JsonReader;)Ljava/lang/Object; + public fun fromJson (Lcom/squareup/moshi/JsonReader;)Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing; + public synthetic fun toJson (Lcom/squareup/moshi/JsonWriter;Ljava/lang/Object;)V + public fun toJson (Lcom/squareup/moshi/JsonWriter;Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing;)V +} + +public final class org/openapitools/client/models/VideoSettingsResponse$CameraFacing$Companion { + public final fun fromString (Ljava/lang/String;)Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing; +} + +public final class org/openapitools/client/models/VideoSettingsResponse$CameraFacing$External : org/openapitools/client/models/VideoSettingsResponse$CameraFacing { + public static final field INSTANCE Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing$External; +} + +public final class org/openapitools/client/models/VideoSettingsResponse$CameraFacing$Front : org/openapitools/client/models/VideoSettingsResponse$CameraFacing { + public static final field INSTANCE Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing$Front; +} + +public final class org/openapitools/client/models/VideoSettingsResponse$CameraFacing$Unknown : org/openapitools/client/models/VideoSettingsResponse$CameraFacing { + public fun (Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;)Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing$Unknown; + public static synthetic fun copy$default (Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing$Unknown;Ljava/lang/String;ILjava/lang/Object;)Lorg/openapitools/client/models/VideoSettingsResponse$CameraFacing$Unknown; + public fun equals (Ljava/lang/Object;)Z + public final fun getUnknownValue ()Ljava/lang/String; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + +public final class org/openapitools/client/models/WSAuthMessage { + public fun (Ljava/lang/String;Lorg/openapitools/client/models/ConnectUserDetailsRequest;Ljava/util/List;)V + public synthetic fun (Ljava/lang/String;Lorg/openapitools/client/models/ConnectUserDetailsRequest;Ljava/util/List;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Lorg/openapitools/client/models/ConnectUserDetailsRequest; + public final fun component3 ()Ljava/util/List; + public final fun copy (Ljava/lang/String;Lorg/openapitools/client/models/ConnectUserDetailsRequest;Ljava/util/List;)Lorg/openapitools/client/models/WSAuthMessage; + public static synthetic fun copy$default (Lorg/openapitools/client/models/WSAuthMessage;Ljava/lang/String;Lorg/openapitools/client/models/ConnectUserDetailsRequest;Ljava/util/List;ILjava/lang/Object;)Lorg/openapitools/client/models/WSAuthMessage; + public fun equals (Ljava/lang/Object;)Z + public final fun getProducts ()Ljava/util/List; + public final fun getToken ()Ljava/lang/String; + public final fun getUserDetails ()Lorg/openapitools/client/models/ConnectUserDetailsRequest; + public fun hashCode ()I + public fun toString ()Ljava/lang/String; +} + public final class org/openapitools/client/models/WSAuthMessageRequest { public fun (Ljava/lang/String;Lorg/openapitools/client/models/ConnectUserDetailsRequest;)V public final fun component1 ()Ljava/lang/String; @@ -9161,6 +10907,25 @@ public final class stream/video/sfu/event/AudioSender : com/squareup/wire/Messag public final class stream/video/sfu/event/AudioSender$Companion { } +public final class stream/video/sfu/event/CallEnded : com/squareup/wire/Message { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field Companion Lstream/video/sfu/event/CallEnded$Companion; + public fun ()V + public fun (Lstream/video/sfu/models/CallEndedReason;Lokio/ByteString;)V + public synthetic fun (Lstream/video/sfu/models/CallEndedReason;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Lstream/video/sfu/models/CallEndedReason;Lokio/ByteString;)Lstream/video/sfu/event/CallEnded; + public static synthetic fun copy$default (Lstream/video/sfu/event/CallEnded;Lstream/video/sfu/models/CallEndedReason;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/event/CallEnded; + public fun equals (Ljava/lang/Object;)Z + public final fun getReason ()Lstream/video/sfu/models/CallEndedReason; + public fun hashCode ()I + public synthetic fun newBuilder ()Lcom/squareup/wire/Message$Builder; + public synthetic fun newBuilder ()Ljava/lang/Void; + public fun toString ()Ljava/lang/String; +} + +public final class stream/video/sfu/event/CallEnded$Companion { +} + public final class stream/video/sfu/event/CallGrantsUpdated : com/squareup/wire/Message { public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; public static final field Companion Lstream/video/sfu/event/CallGrantsUpdated$Companion; @@ -9265,12 +11030,13 @@ public final class stream/video/sfu/event/Error : com/squareup/wire/Message { public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; public static final field Companion Lstream/video/sfu/event/Error$Companion; public fun ()V - public fun (Lstream/video/sfu/models/Error;Lokio/ByteString;)V - public synthetic fun (Lstream/video/sfu/models/Error;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun copy (Lstream/video/sfu/models/Error;Lokio/ByteString;)Lstream/video/sfu/event/Error; - public static synthetic fun copy$default (Lstream/video/sfu/event/Error;Lstream/video/sfu/models/Error;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/event/Error; + public fun (Lstream/video/sfu/models/Error;Lstream/video/sfu/models/WebsocketReconnectStrategy;Lokio/ByteString;)V + public synthetic fun (Lstream/video/sfu/models/Error;Lstream/video/sfu/models/WebsocketReconnectStrategy;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Lstream/video/sfu/models/Error;Lstream/video/sfu/models/WebsocketReconnectStrategy;Lokio/ByteString;)Lstream/video/sfu/event/Error; + public static synthetic fun copy$default (Lstream/video/sfu/event/Error;Lstream/video/sfu/models/Error;Lstream/video/sfu/models/WebsocketReconnectStrategy;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/event/Error; public fun equals (Ljava/lang/Object;)Z public final fun getError ()Lstream/video/sfu/models/Error; + public final fun getReconnect_strategy ()Lstream/video/sfu/models/WebsocketReconnectStrategy; public fun hashCode ()I public synthetic fun newBuilder ()Lcom/squareup/wire/Message$Builder; public synthetic fun newBuilder ()Ljava/lang/Void; @@ -9480,6 +11246,26 @@ public final class stream/video/sfu/event/ParticipantLeft : com/squareup/wire/Me public final class stream/video/sfu/event/ParticipantLeft$Companion { } +public final class stream/video/sfu/event/ParticipantUpdated : com/squareup/wire/Message { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field Companion Lstream/video/sfu/event/ParticipantUpdated$Companion; + public fun ()V + public fun (Ljava/lang/String;Lstream/video/sfu/models/Participant;Lokio/ByteString;)V + public synthetic fun (Ljava/lang/String;Lstream/video/sfu/models/Participant;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Ljava/lang/String;Lstream/video/sfu/models/Participant;Lokio/ByteString;)Lstream/video/sfu/event/ParticipantUpdated; + public static synthetic fun copy$default (Lstream/video/sfu/event/ParticipantUpdated;Ljava/lang/String;Lstream/video/sfu/models/Participant;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/event/ParticipantUpdated; + public fun equals (Ljava/lang/Object;)Z + public final fun getCall_cid ()Ljava/lang/String; + public final fun getParticipant ()Lstream/video/sfu/models/Participant; + public fun hashCode ()I + public synthetic fun newBuilder ()Lcom/squareup/wire/Message$Builder; + public synthetic fun newBuilder ()Ljava/lang/Void; + public fun toString ()Ljava/lang/String; +} + +public final class stream/video/sfu/event/ParticipantUpdated$Companion { +} + public final class stream/video/sfu/event/PinsChanged : com/squareup/wire/Message { public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; public static final field Companion Lstream/video/sfu/event/PinsChanged$Companion; @@ -9522,12 +11308,13 @@ public final class stream/video/sfu/event/SfuEvent : com/squareup/wire/Message { public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; public static final field Companion Lstream/video/sfu/event/SfuEvent$Companion; public fun ()V - public fun (Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lokio/ByteString;)V - public synthetic fun (Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V - public final fun copy (Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lokio/ByteString;)Lstream/video/sfu/event/SfuEvent; - public static synthetic fun copy$default (Lstream/video/sfu/event/SfuEvent;Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/event/SfuEvent; + public fun (Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lstream/video/sfu/event/CallEnded;Lstream/video/sfu/event/ParticipantUpdated;Lokio/ByteString;)V + public synthetic fun (Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lstream/video/sfu/event/CallEnded;Lstream/video/sfu/event/ParticipantUpdated;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lstream/video/sfu/event/CallEnded;Lstream/video/sfu/event/ParticipantUpdated;Lokio/ByteString;)Lstream/video/sfu/event/SfuEvent; + public static synthetic fun copy$default (Lstream/video/sfu/event/SfuEvent;Lstream/video/sfu/event/SubscriberOffer;Lstream/video/sfu/event/PublisherAnswer;Lstream/video/sfu/event/ConnectionQualityChanged;Lstream/video/sfu/event/AudioLevelChanged;Lstream/video/sfu/models/ICETrickle;Lstream/video/sfu/event/ChangePublishQuality;Lstream/video/sfu/event/ParticipantJoined;Lstream/video/sfu/event/ParticipantLeft;Lstream/video/sfu/event/DominantSpeakerChanged;Lstream/video/sfu/event/JoinResponse;Lstream/video/sfu/event/HealthCheckResponse;Lstream/video/sfu/event/TrackPublished;Lstream/video/sfu/event/TrackUnpublished;Lstream/video/sfu/event/Error;Lstream/video/sfu/event/CallGrantsUpdated;Lstream/video/sfu/event/GoAway;Lstream/video/sfu/event/ICERestart;Lstream/video/sfu/event/PinsChanged;Lstream/video/sfu/event/CallEnded;Lstream/video/sfu/event/ParticipantUpdated;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/event/SfuEvent; public fun equals (Ljava/lang/Object;)Z public final fun getAudio_level_changed ()Lstream/video/sfu/event/AudioLevelChanged; + public final fun getCall_ended ()Lstream/video/sfu/event/CallEnded; public final fun getCall_grants_updated ()Lstream/video/sfu/event/CallGrantsUpdated; public final fun getChange_publish_quality ()Lstream/video/sfu/event/ChangePublishQuality; public final fun getConnection_quality_changed ()Lstream/video/sfu/event/ConnectionQualityChanged; @@ -9540,6 +11327,7 @@ public final class stream/video/sfu/event/SfuEvent : com/squareup/wire/Message { public final fun getJoin_response ()Lstream/video/sfu/event/JoinResponse; public final fun getParticipant_joined ()Lstream/video/sfu/event/ParticipantJoined; public final fun getParticipant_left ()Lstream/video/sfu/event/ParticipantLeft; + public final fun getParticipant_updated ()Lstream/video/sfu/event/ParticipantUpdated; public final fun getPins_updated ()Lstream/video/sfu/event/PinsChanged; public final fun getPublisher_answer ()Lstream/video/sfu/event/PublisherAnswer; public final fun getSubscriber_offer ()Lstream/video/sfu/event/SubscriberOffer; @@ -9769,6 +11557,25 @@ public final class stream/video/sfu/models/Call : com/squareup/wire/Message { public final class stream/video/sfu/models/Call$Companion { } +public final class stream/video/sfu/models/CallEndedReason : java/lang/Enum, com/squareup/wire/WireEnum { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field CALL_ENDED_REASON_ENDED Lstream/video/sfu/models/CallEndedReason; + public static final field CALL_ENDED_REASON_KICKED Lstream/video/sfu/models/CallEndedReason; + public static final field CALL_ENDED_REASON_LIVE_ENDED Lstream/video/sfu/models/CallEndedReason; + public static final field CALL_ENDED_REASON_SESSION_ENDED Lstream/video/sfu/models/CallEndedReason; + public static final field CALL_ENDED_REASON_UNSPECIFIED Lstream/video/sfu/models/CallEndedReason; + public static final field Companion Lstream/video/sfu/models/CallEndedReason$Companion; + public static final fun fromValue (I)Lstream/video/sfu/models/CallEndedReason; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public fun getValue ()I + public static fun valueOf (Ljava/lang/String;)Lstream/video/sfu/models/CallEndedReason; + public static fun values ()[Lstream/video/sfu/models/CallEndedReason; +} + +public final class stream/video/sfu/models/CallEndedReason$Companion { + public final fun fromValue (I)Lstream/video/sfu/models/CallEndedReason; +} + public final class stream/video/sfu/models/CallGrants : com/squareup/wire/Message { public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; public static final field Companion Lstream/video/sfu/models/CallGrants$Companion; @@ -10284,6 +12091,26 @@ public final class stream/video/sfu/models/VideoQuality$Companion { public final fun fromValue (I)Lstream/video/sfu/models/VideoQuality; } +public final class stream/video/sfu/models/WebsocketReconnectStrategy : java/lang/Enum, com/squareup/wire/WireEnum { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field Companion Lstream/video/sfu/models/WebsocketReconnectStrategy$Companion; + public static final field WEBSOCKET_RECONNECT_STRATEGY_CLEAN Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static final field WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static final field WEBSOCKET_RECONNECT_STRATEGY_FAST Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static final field WEBSOCKET_RECONNECT_STRATEGY_FULL Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static final field WEBSOCKET_RECONNECT_STRATEGY_MIGRATE Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static final field WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static final fun fromValue (I)Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static fun getEntries ()Lkotlin/enums/EnumEntries; + public fun getValue ()I + public static fun valueOf (Ljava/lang/String;)Lstream/video/sfu/models/WebsocketReconnectStrategy; + public static fun values ()[Lstream/video/sfu/models/WebsocketReconnectStrategy; +} + +public final class stream/video/sfu/models/WebsocketReconnectStrategy$Companion { + public final fun fromValue (I)Lstream/video/sfu/models/WebsocketReconnectStrategy; +} + public final class stream/video/sfu/signal/AudioMuteChanged : com/squareup/wire/Message { public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; public static final field Companion Lstream/video/sfu/signal/AudioMuteChanged$Companion; @@ -10487,6 +12314,82 @@ public final class stream/video/sfu/signal/SetPublisherResponse : com/squareup/w public final class stream/video/sfu/signal/SetPublisherResponse$Companion { } +public final class stream/video/sfu/signal/StartNoiseCancellationRequest : com/squareup/wire/Message { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field Companion Lstream/video/sfu/signal/StartNoiseCancellationRequest$Companion; + public fun ()V + public fun (Ljava/lang/String;Lokio/ByteString;)V + public synthetic fun (Ljava/lang/String;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Ljava/lang/String;Lokio/ByteString;)Lstream/video/sfu/signal/StartNoiseCancellationRequest; + public static synthetic fun copy$default (Lstream/video/sfu/signal/StartNoiseCancellationRequest;Ljava/lang/String;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/signal/StartNoiseCancellationRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getSession_id ()Ljava/lang/String; + public fun hashCode ()I + public synthetic fun newBuilder ()Lcom/squareup/wire/Message$Builder; + public synthetic fun newBuilder ()Ljava/lang/Void; + public fun toString ()Ljava/lang/String; +} + +public final class stream/video/sfu/signal/StartNoiseCancellationRequest$Companion { +} + +public final class stream/video/sfu/signal/StartNoiseCancellationResponse : com/squareup/wire/Message { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field Companion Lstream/video/sfu/signal/StartNoiseCancellationResponse$Companion; + public fun ()V + public fun (Lstream/video/sfu/models/Error;Lokio/ByteString;)V + public synthetic fun (Lstream/video/sfu/models/Error;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Lstream/video/sfu/models/Error;Lokio/ByteString;)Lstream/video/sfu/signal/StartNoiseCancellationResponse; + public static synthetic fun copy$default (Lstream/video/sfu/signal/StartNoiseCancellationResponse;Lstream/video/sfu/models/Error;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/signal/StartNoiseCancellationResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getError ()Lstream/video/sfu/models/Error; + public fun hashCode ()I + public synthetic fun newBuilder ()Lcom/squareup/wire/Message$Builder; + public synthetic fun newBuilder ()Ljava/lang/Void; + public fun toString ()Ljava/lang/String; +} + +public final class stream/video/sfu/signal/StartNoiseCancellationResponse$Companion { +} + +public final class stream/video/sfu/signal/StopNoiseCancellationRequest : com/squareup/wire/Message { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field Companion Lstream/video/sfu/signal/StopNoiseCancellationRequest$Companion; + public fun ()V + public fun (Ljava/lang/String;Lokio/ByteString;)V + public synthetic fun (Ljava/lang/String;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Ljava/lang/String;Lokio/ByteString;)Lstream/video/sfu/signal/StopNoiseCancellationRequest; + public static synthetic fun copy$default (Lstream/video/sfu/signal/StopNoiseCancellationRequest;Ljava/lang/String;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/signal/StopNoiseCancellationRequest; + public fun equals (Ljava/lang/Object;)Z + public final fun getSession_id ()Ljava/lang/String; + public fun hashCode ()I + public synthetic fun newBuilder ()Lcom/squareup/wire/Message$Builder; + public synthetic fun newBuilder ()Ljava/lang/Void; + public fun toString ()Ljava/lang/String; +} + +public final class stream/video/sfu/signal/StopNoiseCancellationRequest$Companion { +} + +public final class stream/video/sfu/signal/StopNoiseCancellationResponse : com/squareup/wire/Message { + public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; + public static final field Companion Lstream/video/sfu/signal/StopNoiseCancellationResponse$Companion; + public fun ()V + public fun (Lstream/video/sfu/models/Error;Lokio/ByteString;)V + public synthetic fun (Lstream/video/sfu/models/Error;Lokio/ByteString;ILkotlin/jvm/internal/DefaultConstructorMarker;)V + public final fun copy (Lstream/video/sfu/models/Error;Lokio/ByteString;)Lstream/video/sfu/signal/StopNoiseCancellationResponse; + public static synthetic fun copy$default (Lstream/video/sfu/signal/StopNoiseCancellationResponse;Lstream/video/sfu/models/Error;Lokio/ByteString;ILjava/lang/Object;)Lstream/video/sfu/signal/StopNoiseCancellationResponse; + public fun equals (Ljava/lang/Object;)Z + public final fun getError ()Lstream/video/sfu/models/Error; + public fun hashCode ()I + public synthetic fun newBuilder ()Lcom/squareup/wire/Message$Builder; + public synthetic fun newBuilder ()Ljava/lang/Void; + public fun toString ()Ljava/lang/String; +} + +public final class stream/video/sfu/signal/StopNoiseCancellationResponse$Companion { +} + public final class stream/video/sfu/signal/TrackMuteState : com/squareup/wire/Message { public static final field ADAPTER Lcom/squareup/wire/ProtoAdapter; public static final field Companion Lstream/video/sfu/signal/TrackMuteState$Companion; diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/Call.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/Call.kt index ffaa2d20e6..96ff91ab5f 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/Call.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/Call.kt @@ -35,6 +35,7 @@ import io.getstream.video.android.core.events.VideoEventListener import io.getstream.video.android.core.internal.InternalStreamVideoApi import io.getstream.video.android.core.model.MuteUsersData import io.getstream.video.android.core.model.QueriedMembers +import io.getstream.video.android.core.model.RejectReason import io.getstream.video.android.core.model.SortField import io.getstream.video.android.core.model.UpdateUserPermissionsData import io.getstream.video.android.core.model.VideoTrack @@ -56,7 +57,7 @@ import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import kotlinx.coroutines.suspendCancellableCoroutine import org.openapitools.client.models.AcceptCallResponse -import org.openapitools.client.models.AudioSettings +import org.openapitools.client.models.AudioSettingsResponse import org.openapitools.client.models.BlockUserResponse import org.openapitools.client.models.CallSettingsRequest import org.openapitools.client.models.CallSettingsResponse @@ -70,7 +71,7 @@ import org.openapitools.client.models.MuteUsersResponse import org.openapitools.client.models.OwnCapability import org.openapitools.client.models.PinResponse import org.openapitools.client.models.RejectCallResponse -import org.openapitools.client.models.SendEventResponse +import org.openapitools.client.models.SendCallEventResponse import org.openapitools.client.models.SendReactionResponse import org.openapitools.client.models.StopLiveResponse import org.openapitools.client.models.UnpinResponse @@ -80,7 +81,7 @@ import org.openapitools.client.models.UpdateCallRequest import org.openapitools.client.models.UpdateCallResponse import org.openapitools.client.models.UpdateUserPermissionsResponse import org.openapitools.client.models.VideoEvent -import org.openapitools.client.models.VideoSettings +import org.openapitools.client.models.VideoSettingsResponse import org.threeten.bp.OffsetDateTime import org.webrtc.RendererCommon import org.webrtc.VideoSink @@ -118,7 +119,7 @@ public class Call( internal val clientImpl = client as StreamVideoImpl - private val logger by taggedLogger("Call") + private val logger by taggedLogger("Call:$type:$id") private val supervisorJob = SupervisorJob() private var callStatsReportingJob: Job? = null @@ -304,6 +305,7 @@ public class Call( ring: Boolean = false, notify: Boolean = false, ): Result { + logger.d { "[join] #ringing; create: $create, ring: $ring, notify: $notify" } val permissionPass = clientImpl.permissionCheck.checkAndroidPermissions(clientImpl.context, this) // Check android permissions and log a warning to make sure developers requested adequate permissions prior to using the call. @@ -590,12 +592,14 @@ public class Call( /** Leave the call, but don't end it for other users */ fun leave() { + logger.d { "[leave] #ringing; no args" } leave(disconnectionReason = null) } private fun leave(disconnectionReason: Throwable?) { + logger.v { "[leave] #ringing; disconnectionReason: $disconnectionReason" } if (isDestroyed) { - logger.w { "[leave] Call already destroyed, ignoring" } + logger.w { "[leave] #ringing; Call already destroyed, ignoring" } return } isDestroyed = true @@ -770,7 +774,7 @@ public class Call( return result } - suspend fun sendCustomEvent(data: Map): Result { + suspend fun sendCustomEvent(data: Map): Result { return clientImpl.sendCustomEvent(this.type, this.id, data) } @@ -905,7 +909,7 @@ public class Call( // be a new audio.defaultDevice setting returned from backend true } else { - callSettings.audio.defaultDevice == AudioSettings.DefaultDevice.Speaker + callSettings.audio.defaultDevice == AudioSettingsResponse.DefaultDevice.Speaker } speaker.setEnabled(enableSpeaker) } @@ -913,7 +917,7 @@ public class Call( // Camera if (camera.status.value is DeviceStatus.NotSelected) { val defaultDirection = - if (callSettings.video.cameraFacing == VideoSettings.CameraFacing.Front) { + if (callSettings.video.cameraFacing == VideoSettingsResponse.CameraFacing.Front) { CameraDirection.Front } else { CameraDirection.Back @@ -1007,14 +1011,17 @@ public class Call( } suspend fun ring(): Result { + logger.d { "[ring] #ringing; no args" } return clientImpl.ring(type, id) } suspend fun notify(): Result { + logger.d { "[notify] #ringing; no args" } return clientImpl.notify(type, id) } suspend fun accept(): Result { + logger.d { "[accept] #ringing; no args" } state.acceptedOnThisDevice = true clientImpl.state.removeRingingCall() @@ -1022,8 +1029,9 @@ public class Call( return clientImpl.accept(type, id) } - suspend fun reject(): Result { - return clientImpl.reject(type, id) + suspend fun reject(reason: RejectReason? = null): Result { + logger.d { "[reject] #ringing; rejectReason: $reason" } + return clientImpl.reject(type, id, reason) } fun processAudioSample(audioSample: AudioSamples) { diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/CallState.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/CallState.kt index 2e875eb0be..3c7f3bf70a 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/CallState.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/CallState.kt @@ -105,9 +105,9 @@ import org.openapitools.client.models.JoinCallResponse import org.openapitools.client.models.MemberResponse import org.openapitools.client.models.OwnCapability import org.openapitools.client.models.PermissionRequestEvent -import org.openapitools.client.models.QueryMembersResponse +import org.openapitools.client.models.QueryCallMembersResponse import org.openapitools.client.models.ReactionResponse -import org.openapitools.client.models.StartBroadcastingResponse +import org.openapitools.client.models.StartHLSBroadcastingResponse import org.openapitools.client.models.StopLiveResponse import org.openapitools.client.models.UnblockedUserEvent import org.openapitools.client.models.UpdateCallResponse @@ -1166,7 +1166,7 @@ public class CallState( updateFromResponse(callData.members) } - fun updateFromResponse(it: QueryMembersResponse) { + fun updateFromResponse(it: QueryCallMembersResponse) { updateFromResponse(it.members) } @@ -1194,7 +1194,7 @@ public class CallState( updateFromResponse(result.call) } - fun updateFromResponse(response: StartBroadcastingResponse) { + fun updateFromResponse(response: StartHLSBroadcastingResponse) { val curEgress = _egress.value logger.d { "[updateFromResponse] response: $response, curEgress: $curEgress" } val newEgress = curEgress?.copy( diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/MediaManager.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/MediaManager.kt index 8a25860a38..066aa90d6c 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/MediaManager.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/MediaManager.kt @@ -43,7 +43,7 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking -import org.openapitools.client.models.VideoSettings +import org.openapitools.client.models.VideoSettingsResponse import org.webrtc.Camera2Capturer import org.webrtc.Camera2Enumerator import org.webrtc.CameraEnumerationAndroid @@ -728,7 +728,7 @@ public class CameraManager( */ internal fun selectDesiredResolution( supportedFormats: MutableList?, - videoSettings: VideoSettings?, + videoSettings: VideoSettingsResponse?, ): CameraEnumerationAndroid.CaptureFormat? { // needs the settings that we're going for // sort and get the one closest to 960 diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/StreamVideoImpl.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/StreamVideoImpl.kt index cc31db7c04..b3becacb6b 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/StreamVideoImpl.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/StreamVideoImpl.kt @@ -38,6 +38,7 @@ import io.getstream.video.android.core.model.EdgeData import io.getstream.video.android.core.model.MuteUsersData import io.getstream.video.android.core.model.QueriedCalls import io.getstream.video.android.core.model.QueriedMembers +import io.getstream.video.android.core.model.RejectReason import io.getstream.video.android.core.model.SortField import io.getstream.video.android.core.model.UpdateUserPermissionsData import io.getstream.video.android.core.model.toRequest @@ -95,16 +96,18 @@ import org.openapitools.client.models.ListRecordingsResponse import org.openapitools.client.models.MemberRequest import org.openapitools.client.models.MuteUsersResponse import org.openapitools.client.models.PinRequest +import org.openapitools.client.models.QueryCallMembersRequest +import org.openapitools.client.models.QueryCallMembersResponse import org.openapitools.client.models.QueryCallsRequest -import org.openapitools.client.models.QueryMembersRequest -import org.openapitools.client.models.QueryMembersResponse +import org.openapitools.client.models.RejectCallRequest import org.openapitools.client.models.RejectCallResponse import org.openapitools.client.models.RequestPermissionRequest -import org.openapitools.client.models.SendEventRequest -import org.openapitools.client.models.SendEventResponse +import org.openapitools.client.models.SendCallEventRequest +import org.openapitools.client.models.SendCallEventResponse import org.openapitools.client.models.SendReactionRequest import org.openapitools.client.models.SendReactionResponse -import org.openapitools.client.models.StartBroadcastingResponse +import org.openapitools.client.models.StartHLSBroadcastingResponse +import org.openapitools.client.models.StartRecordingRequest import org.openapitools.client.models.StopLiveResponse import org.openapitools.client.models.UnblockUserRequest import org.openapitools.client.models.UnpinRequest @@ -711,14 +714,14 @@ internal class StreamVideoImpl internal constructor( type: String, id: String, dataJson: Map, - ): Result { + ): Result { logger.d { "[sendCustomEvent] callCid: $type:$id, dataJson: $dataJson" } return wrapAPICall { - connectionModule.api.sendEvent( + connectionModule.api.sendCallEvent( type, id, - SendEventRequest(custom = dataJson), + SendCallEventRequest(custom = dataJson), ) } } @@ -731,10 +734,10 @@ internal class StreamVideoImpl internal constructor( prev: String?, next: String?, limit: Int, - ): Result { + ): Result { return wrapAPICall { - connectionModule.api.queryMembers( - QueryMembersRequest( + connectionModule.api.queryCallMembers( + QueryCallMembersRequest( type = type, id = id, filterConditions = filter, @@ -908,18 +911,25 @@ internal class StreamVideoImpl internal constructor( } } - suspend fun startBroadcasting(type: String, id: String): Result { + suspend fun startBroadcasting(type: String, id: String): Result { logger.d { "[startBroadcasting] callCid: $type $id" } - return wrapAPICall { connectionModule.api.startBroadcasting(type, id) } + return wrapAPICall { connectionModule.api.startHLSBroadcasting(type, id) } } suspend fun stopBroadcasting(type: String, id: String): Result { - return wrapAPICall { connectionModule.api.stopBroadcasting(type, id) } + return wrapAPICall { connectionModule.api.stopHLSBroadcasting(type, id) } } - suspend fun startRecording(type: String, id: String): Result { - return wrapAPICall { connectionModule.api.startRecording(type, id) } + suspend fun startRecording( + type: String, + id: String, + externalStorage: String? = null, + ): Result { + return wrapAPICall { + val req = StartRecordingRequest(externalStorage) + connectionModule.api.startRecording(type, id, req) + } } suspend fun stopRecording(type: String, id: String): Result { @@ -948,12 +958,7 @@ internal class StreamVideoImpl internal constructor( sessionId: String?, ): Result { return wrapAPICall { - val result = if (sessionId == null) { - connectionModule.api.listRecordingsTypeId0(type, id) - } else { - connectionModule.api.listRecordingsTypeIdSession1(type, id, sessionId) - } - result + connectionModule.api.listRecordings(type, id) } } @@ -1039,9 +1044,13 @@ internal class StreamVideoImpl internal constructor( } } - internal suspend fun reject(type: String, id: String): Result { + internal suspend fun reject( + type: String, + id: String, + reason: RejectReason? = null, + ): Result { return wrapAPICall { - connectionModule.api.rejectCall(type, id) + connectionModule.api.rejectCall(type, id, RejectCallRequest(reason?.alias)) } } diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/internal/module/ConnectionModule.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/internal/module/ConnectionModule.kt index 49f75ece69..d7ee523639 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/internal/module/ConnectionModule.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/internal/module/ConnectionModule.kt @@ -33,7 +33,7 @@ import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.Response import okhttp3.logging.HttpLoggingInterceptor -import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.apis.ProductvideoApi import org.openapitools.client.infrastructure.Serializer import retrofit2.Retrofit import retrofit2.converter.moshi.MoshiConverterFactory @@ -83,16 +83,16 @@ internal class ConnectionModule( .client(okHttpClient) .build() } - val api: DefaultApi by lazy { retrofit.create(DefaultApi::class.java) } + val api: ProductvideoApi by lazy { retrofit.create(ProductvideoApi::class.java) } val coordinatorSocket: CoordinatorSocket by lazy { createCoordinatorSocket() } - val localApi: DefaultApi by lazy { + val localApi: ProductvideoApi by lazy { Retrofit.Builder() .baseUrl("https://c187-2a02-a46d-1c8b-1-b5c3-c938-b354-c7b0.ngrok-free.app") .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(MoshiConverterFactory.create(Serializer.moshi)) .client(okHttpClient) - .build().create(DefaultApi::class.java) + .build().create(ProductvideoApi::class.java) } /** diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/RejectReason.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/RejectReason.kt new file mode 100644 index 0000000000..225f8d3cf1 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/RejectReason.kt @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.getstream.video.android.core.model + +public sealed class RejectReason { + + public abstract val alias: String + + public data object Busy : RejectReason() { + public override val alias: String = "busy" + } + + public data object Cancel : RejectReason() { + public override val alias: String = "cancel" + } + + public data object Decline : RejectReason() { + public override val alias: String = "decline" + } + + public data class Custom(public override val alias: String) : RejectReason() +} diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/SortData.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/SortData.kt index 9cf599c4a8..31873a7fd0 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/SortData.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/model/SortData.kt @@ -17,7 +17,7 @@ package io.getstream.video.android.core.model import androidx.compose.runtime.Stable -import org.openapitools.client.models.SortParamRequest +import org.openapitools.client.models.SortParam /** * Represents the data required to apply a sorting method to queries. @@ -42,9 +42,9 @@ public sealed class SortField(public val field: String, public val ascending: Bo public class Desc(field: String) : SortField(field, false) } -public fun SortField.toRequest(): SortParamRequest { +public fun SortField.toRequest(): SortParam { val direction = if (ascending) 1 else -1 - return SortParamRequest( + return SortParam( direction = direction, field = field, ) @@ -53,8 +53,8 @@ public fun SortField.toRequest(): SortParamRequest { /** * Maps the data to the request for the BE. */ -public fun SortData.toRequest(): SortParamRequest { - return SortParamRequest( +public fun SortData.toRequest(): SortParam { + return SortParam( direction = direction, field = sortField, ) diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/DefaultNotificationHandler.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/DefaultNotificationHandler.kt index 4dbb29d861..86a77491f7 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/DefaultNotificationHandler.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/DefaultNotificationHandler.kt @@ -26,7 +26,6 @@ import android.app.PendingIntent import android.content.Context import android.content.Intent import android.os.Build -import android.util.Log import androidx.annotation.DrawableRes import androidx.core.app.NotificationChannelCompat import androidx.core.app.NotificationCompat @@ -35,7 +34,6 @@ import androidx.core.app.NotificationManagerCompat import androidx.core.app.Person import io.getstream.android.push.permissions.DefaultNotificationPermissionHandler import io.getstream.android.push.permissions.NotificationPermissionHandler -import io.getstream.log.TaggedLogger import io.getstream.log.taggedLogger import io.getstream.video.android.core.R import io.getstream.video.android.core.RingingState @@ -66,7 +64,7 @@ public open class DefaultNotificationHandler( ) : NotificationHandler, NotificationPermissionHandler by notificationPermissionHandler { - private val logger: TaggedLogger by taggedLogger("Video:DefaultNotificationHandler") + private val logger by taggedLogger("Call:NotificationHandler") private val intentResolver = DefaultStreamIntentResolver(application) private val notificationManager: NotificationManagerCompat by lazy { NotificationManagerCompat.from(application).also { @@ -86,10 +84,23 @@ public open class DefaultNotificationHandler( } override fun onRingingCall(callId: StreamCallId, callDisplayName: String) { - Log.d("ServiceDebug", "[onRingingCall] callId: ${callId.id}") + logger.d { "[onRingingCall] #ringing; callId: ${callId.id}" } CallService.showIncomingCall(application, callId, callDisplayName) } + override fun onMissedCall(callId: StreamCallId, callDisplayName: String) { + logger.d { "[onMissedCall] #ringing; callId: ${callId.id}" } + val notificationId = callId.hashCode() + intentResolver.searchNotificationCallPendingIntent(callId, notificationId) + ?.let { notificationPendingIntent -> + showMissedCallNotification( + notificationPendingIntent, + callDisplayName, + notificationId, + ) + } ?: logger.e { "Couldn't find any activity for $ACTION_NOTIFICATION" } + } + override fun getRingingCallNotification( ringingState: RingingState, callId: StreamCallId, @@ -347,6 +358,17 @@ public open class DefaultNotificationHandler( } } + private fun showMissedCallNotification( + notificationPendingIntent: PendingIntent, + callDisplayName: String, + notificationId: Int, + ) { + showNotification(notificationId) { + setContentTitle("Missed call from $callDisplayName") + setContentIntent(notificationPendingIntent) + } + } + private fun showLiveCallNotification( liveCallPendingIntent: PendingIntent, callDisplayName: String, diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/NotificationHandler.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/NotificationHandler.kt index 5cccb30448..590deff590 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/NotificationHandler.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/NotificationHandler.kt @@ -23,6 +23,7 @@ import io.getstream.video.android.model.StreamCallId public interface NotificationHandler : NotificationPermissionHandler { fun onRingingCall(callId: StreamCallId, callDisplayName: String) + fun onMissedCall(callId: StreamCallId, callDisplayName: String) fun onNotification(callId: StreamCallId, callDisplayName: String) fun onLiveCall(callId: StreamCallId, callDisplayName: String) fun getOngoingCallNotification(callDisplayName: String?, callId: StreamCallId): Notification? diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/NoOpNotificationHandler.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/NoOpNotificationHandler.kt index 6dcade9b55..35006536e2 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/NoOpNotificationHandler.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/NoOpNotificationHandler.kt @@ -23,6 +23,7 @@ import io.getstream.video.android.model.StreamCallId internal object NoOpNotificationHandler : NotificationHandler { override fun onRingingCall(callId: StreamCallId, callDisplayName: String) { /* NoOp */ } + override fun onMissedCall(callId: StreamCallId, callDisplayName: String) { /* NoOp */ } override fun onNotification(callId: StreamCallId, callDisplayName: String) { /* NoOp */ } override fun onLiveCall(callId: StreamCallId, callDisplayName: String) { /* NoOp */ } override fun getOngoingCallNotification( diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/StreamNotificationManager.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/StreamNotificationManager.kt index e0d7984ea9..896bfc07a4 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/StreamNotificationManager.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/StreamNotificationManager.kt @@ -41,14 +41,14 @@ import io.getstream.video.android.model.Device import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.launch -import org.openapitools.client.apis.DefaultApi +import org.openapitools.client.apis.ProductvideoApi import org.openapitools.client.models.CreateDeviceRequest internal class StreamNotificationManager private constructor( private val context: Context, private val scope: CoroutineScope, private val notificationConfig: NotificationConfig, - private val api: DefaultApi, + private val api: ProductvideoApi, internal val deviceTokenStorage: DeviceTokenStorage, private val notificationPermissionManager: NotificationPermissionManager?, ) : NotificationHandler by notificationConfig.notificationHandler { @@ -144,7 +144,7 @@ internal class StreamNotificationManager private constructor( context: Context, scope: CoroutineScope, notificationConfig: NotificationConfig, - api: DefaultApi, + api: ProductvideoApi, deviceTokenStorage: DeviceTokenStorage, ): StreamNotificationManager { synchronized(this) { diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/VideoPushDelegate.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/VideoPushDelegate.kt index 4b266c2b10..ef1fe6c4f9 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/VideoPushDelegate.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/VideoPushDelegate.kt @@ -20,7 +20,7 @@ import android.content.Context import io.getstream.android.push.PushDevice import io.getstream.android.push.delegate.PushDelegate import io.getstream.android.push.delegate.PushDelegateProvider -import io.getstream.log.StreamLog +import io.getstream.log.taggedLogger import io.getstream.video.android.core.StreamVideo import io.getstream.video.android.core.dispatchers.DispatcherProvider import io.getstream.video.android.model.StreamCallId @@ -36,7 +36,7 @@ import kotlinx.coroutines.launch internal class VideoPushDelegate( context: Context, ) : PushDelegate(context) { - private val logger = StreamLog.getLogger("VideoPushDelegate") + private val logger by taggedLogger("Call:PushDelegate") private val DEFAULT_CALL_TEXT = "Unknown caller" /** @@ -57,6 +57,7 @@ internal class VideoPushDelegate( CoroutineScope(DispatcherProvider.IO).launch { when (payload[KEY_TYPE]) { KEY_TYPE_RING -> handleRingType(callId, payload) + KEY_TYPE_MISSED -> handleMissedType(callId, payload) KEY_TYPE_NOTIFICATION -> handleNotificationType(callId, payload) KEY_TYPE_LIVE_STARTED -> handleLiveStartedType(callId, payload) } @@ -69,6 +70,11 @@ internal class VideoPushDelegate( getStreamVideo("ring-type-notification")?.onRingingCall(callId, callDisplayName) } + private suspend fun handleMissedType(callId: StreamCallId, payload: Map) { + val callDisplayName = (payload[KEY_CREATED_BY_DISPLAY_NAME] as String).ifEmpty { DEFAULT_CALL_TEXT } + getStreamVideo("missed-type-notification")?.onMissedCall(callId, callDisplayName) + } + private suspend fun handleNotificationType(callId: StreamCallId, payload: Map) { val callDisplayName = (payload[KEY_CREATED_BY_DISPLAY_NAME] as String).ifEmpty { DEFAULT_CALL_TEXT } getStreamVideo("generic-notification")?.onNotification(callId, callDisplayName) @@ -133,6 +139,7 @@ internal class VideoPushDelegate( */ private fun Map.containsKnownType(): Boolean = when (this[KEY_TYPE]) { KEY_TYPE_RING -> isValidRingType() + KEY_TYPE_MISSED -> isValidMissedType() KEY_TYPE_NOTIFICATION -> isValidNotificationType() KEY_TYPE_LIVE_STARTED -> isValidLiveStarted() else -> false @@ -146,6 +153,14 @@ internal class VideoPushDelegate( // !(this[KEY_CALL_DISPLAY_NAME] as? String).isNullOrBlank() true + /** + * Verify if the map contains all keys/values for a Missed Type. + */ + private fun Map.isValidMissedType(): Boolean = + // TODO: KEY_CALL_DISPLAY_NAME can be empty. Are there any other important key/values? + // !(this[KEY_CALL_DISPLAY_NAME] as? String).isNullOrBlank() + true + /** * Verify if the map contains all keys/values for a Notification Type. */ @@ -178,6 +193,7 @@ internal class VideoPushDelegate( private const val KEY_SENDER = "sender" private const val KEY_TYPE = "type" private const val KEY_TYPE_RING = "call.ring" + private const val KEY_TYPE_MISSED = "call.missed" private const val KEY_TYPE_NOTIFICATION = "call.notification" private const val KEY_TYPE_LIVE_STARTED = "call.live_started" private const val KEY_CALL_CID = "call_cid" diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/GenericCallActionBroadcastReceiver.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/GenericCallActionBroadcastReceiver.kt index 85f0c09660..a378700962 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/GenericCallActionBroadcastReceiver.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/GenericCallActionBroadcastReceiver.kt @@ -30,7 +30,7 @@ import kotlinx.coroutines.launch internal abstract class GenericCallActionBroadcastReceiver : BroadcastReceiver() { - private val logger by taggedLogger("ActionableStreamReceiver") + private val logger by taggedLogger("Call:ActionableReceiver") private val scope = CoroutineScope(Dispatchers.IO) /** @@ -39,7 +39,7 @@ internal abstract class GenericCallActionBroadcastReceiver : BroadcastReceiver() internal abstract val action: String override fun onReceive(context: Context?, intent: Intent?) { - logger.v { "[onReceive] context: $context, intent: $intent" } + logger.v { "[onReceive] #ringing; context: $context, intent: $intent" } if (context != null && intent != null && intent.action != null) { val intentAction = intent.action!! if (action != intentAction) { @@ -85,7 +85,7 @@ internal abstract class GenericCallActionBroadcastReceiver : BroadcastReceiver() logger.w(createMessage(intentAction, "Stream call ID is not provided.")) } } else { - logger.w { "Context or Intent or Action is null." } + logger.w { "[onReceive] #ringing; Context or Intent or Action is null." } } } diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/LeaveCallBroadcastReceiver.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/LeaveCallBroadcastReceiver.kt index f7a86fcbc7..daa2a8eb30 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/LeaveCallBroadcastReceiver.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/LeaveCallBroadcastReceiver.kt @@ -31,10 +31,12 @@ import io.getstream.video.android.core.notifications.NotificationHandler.Compani */ internal class LeaveCallBroadcastReceiver : GenericCallActionBroadcastReceiver() { - val logger by taggedLogger("LeaveCallBroadcastReceiver") + val logger by taggedLogger("Call:LeaveReceiver") override val action = ACTION_LEAVE_CALL override suspend fun onReceive(call: Call, context: Context, intent: Intent) { + logger.d { "[onReceive] #ringing; callId: ${call.id}, action: ${intent.action}" } + call.leave() val notificationId = intent.getIntExtra(INTENT_EXTRA_NOTIFICATION_ID, 0) NotificationManagerCompat.from(context).cancel(notificationId) diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/RejectCallBroadcastReceiver.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/RejectCallBroadcastReceiver.kt index 8ec1427e3a..6364500c51 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/RejectCallBroadcastReceiver.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/notifications/internal/receivers/RejectCallBroadcastReceiver.kt @@ -18,10 +18,10 @@ package io.getstream.video.android.core.notifications.internal.receivers import android.content.Context import android.content.Intent -import android.util.Log import io.getstream.log.taggedLogger import io.getstream.result.Result import io.getstream.video.android.core.Call +import io.getstream.video.android.core.model.RejectReason import io.getstream.video.android.core.notifications.NotificationHandler.Companion.ACTION_REJECT_CALL import io.getstream.video.android.core.notifications.internal.service.CallService import io.getstream.video.android.model.StreamCallId @@ -33,15 +33,15 @@ import io.getstream.video.android.model.StreamCallId */ internal class RejectCallBroadcastReceiver : GenericCallActionBroadcastReceiver() { - val logger by taggedLogger("RejectCallBroadcastReceiver") + val logger by taggedLogger("Call:RejectReceiver") override val action = ACTION_REJECT_CALL override suspend fun onReceive(call: Call, context: Context, intent: Intent) { - when (val rejectResult = call.reject()) { + when (val rejectResult = call.reject(RejectReason.Decline)) { is Result.Success -> logger.d { "[onReceive] rejectCall, Success: $rejectResult" } is Result.Failure -> logger.d { "[onReceive] rejectCall, Failure: $rejectResult" } } - Log.d("ServiceDebug", "[reject onReceive] callId: ${call.id}") + logger.d { "[onReceive] #ringing; callId: ${call.id}, action: ${intent.action}" } CallService.removeIncomingCall(context, StreamCallId.fromCallCid(call.cid)) } } diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/DomainUtils.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/DomainUtils.kt index 7297de3c1a..8e230c2181 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/DomainUtils.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/DomainUtils.kt @@ -33,8 +33,8 @@ import org.openapitools.client.models.CallRecording import org.openapitools.client.models.CallStateResponseFields import org.openapitools.client.models.EdgeResponse import org.openapitools.client.models.MemberResponse +import org.openapitools.client.models.QueryCallMembersResponse import org.openapitools.client.models.QueryCallsResponse -import org.openapitools.client.models.QueryMembersResponse import org.openapitools.client.models.ReactionResponse import org.openapitools.client.models.UserResponse import stream.video.sfu.models.Participant @@ -111,7 +111,7 @@ internal fun QueryCallsResponse.toQueriedCalls(): QueriedCalls { } @JvmSynthetic -internal fun QueryMembersResponse.toQueriedMembers(): QueriedMembers { +internal fun QueryCallMembersResponse.toQueriedMembers(): QueriedMembers { return QueriedMembers( members = members.map { it.toMember() }, next = next, diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/UserUtils.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/UserUtils.kt index c6732382be..a225ffd09f 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/UserUtils.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/core/utils/UserUtils.kt @@ -31,5 +31,9 @@ internal fun User.toResponse(): UserResponse { createdAt = createdAt ?: OffsetDateTime.now(), updatedAt = updatedAt ?: OffsetDateTime.now(), deletedAt = deletedAt, + // TODO: Implement these fields + banned = false, + language = "", + online = false, ) } diff --git a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/model/mapper/StreamCallCidMapper.kt b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/model/mapper/StreamCallCidMapper.kt index 94624d709a..ec5a486e0d 100644 --- a/stream-video-android-core/src/main/kotlin/io/getstream/video/android/model/mapper/StreamCallCidMapper.kt +++ b/stream-video-android-core/src/main/kotlin/io/getstream/video/android/model/mapper/StreamCallCidMapper.kt @@ -34,6 +34,6 @@ public fun String.toTypeAndId(): Pair { ?: error("unexpected StreamCallCid format: $this") } -public fun String.isValidCallId(): Boolean { +public fun String.isValidCallCid(): Boolean { return this.contains(":") } diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/.api_version b/stream-video-android-core/src/main/kotlin/org/openapitools/client/.api_version new file mode 100644 index 0000000000..5da05ef74e --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/.api_version @@ -0,0 +1 @@ +v116.0.2 diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/apis/ProductvideoApi.kt similarity index 78% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/apis/ProductvideoApi.kt index afe3aa60b5..ed49d0218b 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/apis/ProductvideoApi.kt @@ -33,11 +33,16 @@ import retrofit2.http.Query import org.openapitools.client.models.AcceptCallResponse import org.openapitools.client.models.BlockUserRequest import org.openapitools.client.models.BlockUserResponse +import org.openapitools.client.models.CollectUserFeedbackRequest +import org.openapitools.client.models.CollectUserFeedbackResponse import org.openapitools.client.models.CreateDeviceRequest import org.openapitools.client.models.CreateGuestRequest import org.openapitools.client.models.CreateGuestResponse +import org.openapitools.client.models.DeleteRecordingResponse +import org.openapitools.client.models.DeleteTranscriptionResponse import org.openapitools.client.models.EndCallResponse import org.openapitools.client.models.GetCallResponse +import org.openapitools.client.models.GetCallStatsResponse import org.openapitools.client.models.GetEdgesResponse import org.openapitools.client.models.GetOrCreateCallRequest import org.openapitools.client.models.GetOrCreateCallResponse @@ -47,26 +52,32 @@ import org.openapitools.client.models.JoinCallRequest import org.openapitools.client.models.JoinCallResponse import org.openapitools.client.models.ListDevicesResponse import org.openapitools.client.models.ListRecordingsResponse +import org.openapitools.client.models.ListTranscriptionsResponse import org.openapitools.client.models.MuteUsersRequest import org.openapitools.client.models.MuteUsersResponse import org.openapitools.client.models.PinRequest import org.openapitools.client.models.PinResponse +import org.openapitools.client.models.QueryCallMembersRequest +import org.openapitools.client.models.QueryCallMembersResponse +import org.openapitools.client.models.QueryCallStatsRequest +import org.openapitools.client.models.QueryCallStatsResponse import org.openapitools.client.models.QueryCallsRequest import org.openapitools.client.models.QueryCallsResponse -import org.openapitools.client.models.QueryMembersRequest -import org.openapitools.client.models.QueryMembersResponse +import org.openapitools.client.models.RejectCallRequest import org.openapitools.client.models.RejectCallResponse import org.openapitools.client.models.RequestPermissionRequest import org.openapitools.client.models.RequestPermissionResponse import org.openapitools.client.models.Response -import org.openapitools.client.models.SendEventRequest -import org.openapitools.client.models.SendEventResponse +import org.openapitools.client.models.SendCallEventRequest +import org.openapitools.client.models.SendCallEventResponse import org.openapitools.client.models.SendReactionRequest import org.openapitools.client.models.SendReactionResponse -import org.openapitools.client.models.StartBroadcastingResponse +import org.openapitools.client.models.StartHLSBroadcastingResponse +import org.openapitools.client.models.StartRecordingRequest import org.openapitools.client.models.StartRecordingResponse +import org.openapitools.client.models.StartTranscriptionRequest import org.openapitools.client.models.StartTranscriptionResponse -import org.openapitools.client.models.StopBroadcastingResponse +import org.openapitools.client.models.StopHLSBroadcastingResponse import org.openapitools.client.models.StopLiveResponse import org.openapitools.client.models.StopRecordingResponse import org.openapitools.client.models.StopTranscriptionResponse @@ -80,9 +91,8 @@ import org.openapitools.client.models.UpdateCallRequest import org.openapitools.client.models.UpdateCallResponse import org.openapitools.client.models.UpdateUserPermissionsRequest import org.openapitools.client.models.UpdateUserPermissionsResponse -import org.openapitools.client.models.WSAuthMessageRequest -interface DefaultApi { +interface ProductvideoApi { /** * Accept Call * Sends events: - call.accepted Required permissions: - JoinCall @@ -121,6 +131,28 @@ interface DefaultApi { @Body blockUserRequest: BlockUserRequest ): BlockUserResponse + /** + * Collect user feedback + * Required permissions: - JoinCall + * Responses: + * - 201: Successful response + * - 400: Bad request + * - 429: Too many requests + * + * @param type + * @param id + * @param session + * @param collectUserFeedbackRequest + * @return [CollectUserFeedbackResponse] + */ + @POST("/video/call/{type}/{id}/feedback/{session}") + suspend fun collectUserFeedback( + @Path("type") type: String, + @Path("id") id: String, + @Path("session") session: String, + @Body collectUserFeedbackRequest: CollectUserFeedbackRequest + ): CollectUserFeedbackResponse + /** * Create device * Adds a new device to a user, if the same device already exists the call will have no effect @@ -161,16 +193,60 @@ interface DefaultApi { * - 400: Bad request * - 429: Too many requests * - * @param id (optional) + * @param id * @param userId (optional) * @return [Response] */ @DELETE("/video/devices") suspend fun deleteDevice( - @Query("id") id: String? = null, + @Query("id") id: String, @Query("user_id") userId: String? = null ): Response + /** + * Delete recording + * Deletes recording Required permissions: - DeleteRecording + * Responses: + * - 200: Successful response + * - 400: Bad request + * - 429: Too many requests + * + * @param type + * @param id + * @param session + * @param filename + * @return [DeleteRecordingResponse] + */ + @DELETE("/video/call/{type}/{id}/{session}/recordings/{filename}") + suspend fun deleteRecording( + @Path("type") type: String, + @Path("id") id: String, + @Path("session") session: String, + @Path("filename") filename: String + ): DeleteRecordingResponse + + /** + * Delete transcription + * Deletes transcription Required permissions: - DeleteTranscription + * Responses: + * - 200: Successful response + * - 400: Bad request + * - 429: Too many requests + * + * @param type + * @param id + * @param session + * @param filename + * @return [DeleteTranscriptionResponse] + */ + @DELETE("/video/call/{type}/{id}/{session}/transcriptions/{filename}") + suspend fun deleteTranscription( + @Path("type") type: String, + @Path("id") id: String, + @Path("session") session: String, + @Path("filename") filename: String + ): DeleteTranscriptionResponse + /** * End call * Sends events: - call.ended Required permissions: - EndCall @@ -215,6 +291,26 @@ interface DefaultApi { @Query("notify") notify: Boolean? = null ): GetCallResponse + /** + * Get Call Stats + * Required permissions: - ReadCallStats + * Responses: + * - 200: Successful response + * - 400: Bad request + * - 429: Too many requests + * + * @param type + * @param id + * @param session + * @return [GetCallStatsResponse] + */ + @GET("/video/call/{type}/{id}/stats/{session}") + suspend fun getCallStats( + @Path("type") type: String, + @Path("id") id: String, + @Path("session") session: String + ): GetCallStatsResponse + /** * Get Edges * Returns the list of all edges available for video calls. @@ -310,7 +406,7 @@ interface DefaultApi { ): ListDevicesResponse /** - * List recordings (type, id) + * List recordings * Lists recordings Required permissions: - ListRecordings * Responses: * - 200: Successful response @@ -322,14 +418,14 @@ interface DefaultApi { * @return [ListRecordingsResponse] */ @GET("/video/call/{type}/{id}/recordings") - suspend fun listRecordingsTypeId0( + suspend fun listRecordings( @Path("type") type: String, @Path("id") id: String ): ListRecordingsResponse /** - * List recordings (type, id, session) - * Lists recordings Required permissions: - ListRecordings + * List transcriptions + * Lists transcriptions Required permissions: - ListTranscriptions * Responses: * - 200: Successful response * - 400: Bad request @@ -337,15 +433,13 @@ interface DefaultApi { * * @param type * @param id - * @param session - * @return [ListRecordingsResponse] + * @return [ListTranscriptionsResponse] */ - @GET("/video/call/{type}/{id}/{session}/recordings") - suspend fun listRecordingsTypeIdSession1( + @GET("/video/call/{type}/{id}/transcriptions") + suspend fun listTranscriptions( @Path("type") type: String, - @Path("id") id: String, - @Path("session") session: String - ): ListRecordingsResponse + @Path("id") id: String + ): ListTranscriptionsResponse /** * Mute users @@ -367,6 +461,38 @@ interface DefaultApi { @Body muteUsersRequest: MuteUsersRequest ): MuteUsersResponse + /** + * Query call members + * Query call members with filter query Required permissions: - ReadCall + * Responses: + * - 201: Successful response + * - 400: Bad request + * - 429: Too many requests + * + * @param queryCallMembersRequest + * @return [QueryCallMembersResponse] + */ + @POST("/video/call/members") + suspend fun queryCallMembers( + @Body queryCallMembersRequest: QueryCallMembersRequest + ): QueryCallMembersResponse + + /** + * Query Call Stats + * Required permissions: - ReadCallStats + * Responses: + * - 201: Successful response + * - 400: Bad request + * - 429: Too many requests + * + * @param queryCallStatsRequest + * @return [QueryCallStatsResponse] + */ + @POST("/video/call/stats") + suspend fun queryCallStats( + @Body queryCallStatsRequest: QueryCallStatsRequest + ): QueryCallStatsResponse + /** * Query call * Query calls with filter query Required permissions: - ReadCall @@ -385,22 +511,6 @@ interface DefaultApi { @Query("connection_id") connectionId: String? = null ): QueryCallsResponse - /** - * Query call members - * Query call members with filter query Required permissions: - ReadCall - * Responses: - * - 201: Successful response - * - 400: Bad request - * - 429: Too many requests - * - * @param queryMembersRequest - * @return [QueryMembersResponse] - */ - @POST("/video/call/members") - suspend fun queryMembers( - @Body queryMembersRequest: QueryMembersRequest - ): QueryMembersResponse - /** * Reject Call * Sends events: - call.rejected Required permissions: - JoinCall @@ -411,12 +521,14 @@ interface DefaultApi { * * @param type * @param id + * @param rejectCallRequest * @return [RejectCallResponse] */ @POST("/video/call/{type}/{id}/reject") suspend fun rejectCall( @Path("type") type: String, - @Path("id") id: String + @Path("id") id: String, + @Body rejectCallRequest: RejectCallRequest ): RejectCallResponse /** @@ -449,15 +561,15 @@ interface DefaultApi { * * @param type * @param id - * @param sendEventRequest - * @return [SendEventResponse] + * @param sendCallEventRequest + * @return [SendCallEventResponse] */ @POST("/video/call/{type}/{id}/event") - suspend fun sendEvent( + suspend fun sendCallEvent( @Path("type") type: String, @Path("id") id: String, - @Body sendEventRequest: SendEventRequest - ): SendEventResponse + @Body sendCallEventRequest: SendCallEventRequest + ): SendCallEventResponse /** * Send reaction to the call @@ -480,8 +592,8 @@ interface DefaultApi { ): SendReactionResponse /** - * Start broadcasting - * Starts broadcasting Required permissions: - StartBroadcasting + * Start HLS broadcasting + * Starts HLS broadcasting Required permissions: - StartBroadcasting * Responses: * - 201: Successful response * - 400: Bad request @@ -489,17 +601,17 @@ interface DefaultApi { * * @param type * @param id - * @return [StartBroadcastingResponse] + * @return [StartHLSBroadcastingResponse] */ @POST("/video/call/{type}/{id}/start_broadcasting") - suspend fun startBroadcasting( + suspend fun startHLSBroadcasting( @Path("type") type: String, @Path("id") id: String - ): StartBroadcastingResponse + ): StartHLSBroadcastingResponse /** * Start recording - * Starts recording Sends events: - call.recording_started Required permissions: - StopRecording + * Starts recording Sends events: - call.recording_started Required permissions: - StartRecording * Responses: * - 201: Successful response * - 400: Bad request @@ -507,12 +619,14 @@ interface DefaultApi { * * @param type * @param id + * @param startRecordingRequest * @return [StartRecordingResponse] */ @POST("/video/call/{type}/{id}/start_recording") suspend fun startRecording( @Path("type") type: String, - @Path("id") id: String + @Path("id") id: String, + @Body startRecordingRequest: StartRecordingRequest ): StartRecordingResponse /** @@ -525,17 +639,19 @@ interface DefaultApi { * * @param type * @param id + * @param startTranscriptionRequest * @return [StartTranscriptionResponse] */ @POST("/video/call/{type}/{id}/start_transcription") suspend fun startTranscription( @Path("type") type: String, - @Path("id") id: String + @Path("id") id: String, + @Body startTranscriptionRequest: StartTranscriptionRequest ): StartTranscriptionResponse /** - * Stop broadcasting - * Stops broadcasting Required permissions: - StopBroadcasting + * Stop HLS broadcasting + * Stops HLS broadcasting Required permissions: - StopBroadcasting * Responses: * - 201: Successful response * - 400: Bad request @@ -543,13 +659,13 @@ interface DefaultApi { * * @param type * @param id - * @return [StopBroadcastingResponse] + * @return [StopHLSBroadcastingResponse] */ @POST("/video/call/{type}/{id}/stop_broadcasting") - suspend fun stopBroadcasting( + suspend fun stopHLSBroadcasting( @Path("type") type: String, @Path("id") id: String - ): StopBroadcastingResponse + ): StopHLSBroadcastingResponse /** * Set call as not live @@ -589,7 +705,7 @@ interface DefaultApi { /** * Stop transcription - * Stops transcription Required permissions: - StopTranscription + * Stops transcription Sends events: - call.transcription_stopped Required permissions: - StopTranscription * Responses: * - 201: Successful response * - 400: Bad request @@ -692,12 +808,10 @@ interface DefaultApi { * - 400: Bad request * - 429: Too many requests * - * @param wsAuthMessageRequest * @return [Unit] */ - @GET("/video/video/connect") + @GET("/video/longpoll") suspend fun videoConnect( - @Body wsAuthMessageRequest: WSAuthMessageRequest ): Unit /** diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt index db5b2f2efa..6cd2888d28 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt @@ -31,18 +31,21 @@ object Serializer { .add(URIAdapter()) .addLast(KotlinJsonAdapterFactory()) .add(VideoEventAdapter()) - .add(org.openapitools.client.models.AudioSettings.DefaultDevice.DefaultDeviceAdapter()) .add(org.openapitools.client.models.AudioSettingsRequest.DefaultDevice.DefaultDeviceAdapter()) + .add(org.openapitools.client.models.AudioSettingsResponse.DefaultDevice.DefaultDeviceAdapter()) + .add(org.openapitools.client.models.BlockListOptions.Behavior.BehaviorAdapter()) + .add(org.openapitools.client.models.ChannelConfigWithInfo.Automod.AutomodAdapter()) + .add(org.openapitools.client.models.ChannelConfigWithInfo.AutomodBehavior.AutomodBehaviorAdapter()) + .add(org.openapitools.client.models.ChannelConfigWithInfo.BlocklistBehavior.BlocklistBehaviorAdapter()) .add(org.openapitools.client.models.CreateDeviceRequest.PushProvider.PushProviderAdapter()) + .add(org.openapitools.client.models.NoiseCancellationSettings.Mode.ModeAdapter()) .add(org.openapitools.client.models.OwnCapability.OwnCapabilityAdapter()) - .add(org.openapitools.client.models.RecordSettings.Mode.ModeAdapter()) - .add(org.openapitools.client.models.RecordSettings.Quality.QualityAdapter()) .add(org.openapitools.client.models.RecordSettingsRequest.Mode.ModeAdapter()) .add(org.openapitools.client.models.RecordSettingsRequest.Quality.QualityAdapter()) - .add(org.openapitools.client.models.TranscriptionSettings.Mode.ModeAdapter()) .add(org.openapitools.client.models.TranscriptionSettingsRequest.Mode.ModeAdapter()) - .add(org.openapitools.client.models.VideoSettings.CameraFacing.CameraFacingAdapter()) + .add(org.openapitools.client.models.TranscriptionSettingsResponse.Mode.ModeAdapter()) .add(org.openapitools.client.models.VideoSettingsRequest.CameraFacing.CameraFacingAdapter()) + .add(org.openapitools.client.models.VideoSettingsResponse.CameraFacing.CameraFacingAdapter()) .add(BigDecimalAdapter()) .add(BigIntegerAdapter()) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettingsRequest.kt index 296d2f368b..1536e9b278 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettingsRequest.kt @@ -23,6 +23,7 @@ package org.openapitools.client.models +import org.openapitools.client.models.NoiseCancellationSettings @@ -41,6 +42,7 @@ import org.openapitools.client.infrastructure.Serializer * @param defaultDevice * @param accessRequestEnabled * @param micDefaultOn + * @param noiseCancellation * @param opusDtxEnabled * @param redundantCodingEnabled * @param speakerDefaultOn @@ -58,6 +60,9 @@ data class AudioSettingsRequest ( @Json(name = "mic_default_on") val micDefaultOn: kotlin.Boolean? = null, + @Json(name = "noise_cancellation") + val noiseCancellation: NoiseCancellationSettings? = null, + @Json(name = "opus_dtx_enabled") val opusDtxEnabled: kotlin.Boolean? = null, diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettingsResponse.kt similarity index 89% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettingsResponse.kt index fa274720af..2cbebd1dee 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/AudioSettingsResponse.kt @@ -23,6 +23,7 @@ package org.openapitools.client.models +import org.openapitools.client.models.NoiseCancellationSettings @@ -44,16 +45,17 @@ import org.openapitools.client.infrastructure.Serializer * @param opusDtxEnabled * @param redundantCodingEnabled * @param speakerDefaultOn + * @param noiseCancellation */ -data class AudioSettings ( +data class AudioSettingsResponse ( @Json(name = "access_request_enabled") val accessRequestEnabled: kotlin.Boolean, @Json(name = "default_device") - val defaultDevice: AudioSettings.DefaultDevice, + val defaultDevice: AudioSettingsResponse.DefaultDevice, @Json(name = "mic_default_on") val micDefaultOn: kotlin.Boolean, @@ -65,7 +67,10 @@ data class AudioSettings ( val redundantCodingEnabled: kotlin.Boolean, @Json(name = "speaker_default_on") - val speakerDefaultOn: kotlin.Boolean + val speakerDefaultOn: kotlin.Boolean, + + @Json(name = "noise_cancellation") + val noiseCancellation: NoiseCancellationSettings? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BackstageSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BackstageSettingsResponse.kt similarity index 96% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BackstageSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BackstageSettingsResponse.kt index 8e2de539d1..2e3910f639 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BackstageSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BackstageSettingsResponse.kt @@ -42,7 +42,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class BackstageSettings ( +data class BackstageSettingsResponse ( @Json(name = "enabled") val enabled: kotlin.Boolean diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BlockListOptions.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BlockListOptions.kt new file mode 100644 index 0000000000..b965be5673 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BlockListOptions.kt @@ -0,0 +1,97 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param behavior + * @param blocklist + */ + + +data class BlockListOptions ( + + @Json(name = "behavior") + val behavior: BlockListOptions.Behavior, + + @Json(name = "blocklist") + val blocklist: kotlin.String + +) + +{ + + /** + * + * + * Values: flag,block,shadowBlock + */ + + sealed class Behavior(val value: kotlin.String) { + override fun toString(): String = value + + companion object { + fun fromString(s: kotlin.String): Behavior = when (s) { + "flag" -> Flag + "block" -> Block + "shadow_block" -> ShadowBlock + else -> Unknown(s) + } + } + + object Flag : Behavior("flag") + object Block : Behavior("block") + object ShadowBlock : Behavior("shadow_block") + data class Unknown(val unknownValue: kotlin.String) : Behavior(unknownValue) + + class BehaviorAdapter : JsonAdapter() { + @FromJson + override fun fromJson(reader: JsonReader): Behavior? { + val s = reader.nextString() ?: return null + return fromString(s) + } + + @ToJson + override fun toJson(writer: JsonWriter, value: Behavior?) { + writer.value(value?.value) + } + } + } + + + +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BroadcastSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BroadcastSettingsResponse.kt similarity index 90% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BroadcastSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BroadcastSettingsResponse.kt index 4a256be2a5..92de99e204 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BroadcastSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/BroadcastSettingsResponse.kt @@ -23,7 +23,7 @@ package org.openapitools.client.models -import org.openapitools.client.models.HLSSettings +import org.openapitools.client.models.HLSSettingsResponse @@ -44,12 +44,12 @@ import org.openapitools.client.infrastructure.Serializer */ -data class BroadcastSettings ( +data class BroadcastSettingsResponse ( @Json(name = "enabled") val enabled: kotlin.Boolean, @Json(name = "hls") - val hls: HLSSettings + val hls: HLSSettingsResponse ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallClosedCaption.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallClosedCaption.kt new file mode 100644 index 0000000000..ef8a898988 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallClosedCaption.kt @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * CallClosedCaption represents a closed caption of a call. + * + * @param endTime + * @param speakerId + * @param startTime + * @param text + */ + + +data class CallClosedCaption ( + + @Json(name = "end_time") + val endTime: org.threeten.bp.OffsetDateTime, + + @Json(name = "speaker_id") + val speakerId: kotlin.String, + + @Json(name = "start_time") + val startTime: org.threeten.bp.OffsetDateTime, + + @Json(name = "text") + val text: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallDeletedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallDeletedEvent.kt new file mode 100644 index 0000000000..6d2b2590e3 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallDeletedEvent.kt @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallResponse + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * This event is sent when a call is deleted. Clients receiving this event should leave the call screen + * + * @param call + * @param callCid + * @param createdAt + * @param type The type of event: \"call.deleted\" in this case + */ + + +data class CallDeletedEvent ( + + @Json(name = "call") + val call: CallResponse, + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* The type of event: \"call.deleted\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.deleted" + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallEvent.kt new file mode 100644 index 0000000000..dbe6c9b511 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallEvent.kt @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param description + * @param endTimestamp + * @param severity + * @param timestamp + * @param type + */ + + +data class CallEvent ( + + @Json(name = "description") + val description: kotlin.String, + + @Json(name = "end_timestamp") + val endTimestamp: kotlin.Int, + + @Json(name = "severity") + val severity: kotlin.Int, + + @Json(name = "timestamp") + val timestamp: kotlin.Int, + + @Json(name = "type") + val type: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingFailedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingFailedEvent.kt new file mode 100644 index 0000000000..6d9016aafc --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingFailedEvent.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * This event is sent when HLS broadcasting has failed + * + * @param callCid + * @param createdAt + * @param type The type of event: \"call.hls_broadcasting_failed\" in this case + */ + + +data class CallHLSBroadcastingFailedEvent ( + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* The type of event: \"call.hls_broadcasting_failed\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.hls_broadcasting_failed" + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallBroadcastingStartedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingStartedEvent.kt similarity index 82% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallBroadcastingStartedEvent.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingStartedEvent.kt index d1e89bc4ca..51f7d85b30 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallBroadcastingStartedEvent.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingStartedEvent.kt @@ -36,16 +36,16 @@ import com.squareup.moshi.ToJson import org.openapitools.client.infrastructure.Serializer /** - * This event is sent when call broadcasting has started + * This event is sent when HLS broadcasting has started * * @param callCid * @param createdAt * @param hlsPlaylistUrl - * @param type The type of event: \"call.broadcasting_started\" in this case + * @param type The type of event: \"call.hls_broadcasting_started\" in this case */ -data class CallBroadcastingStartedEvent ( +data class CallHLSBroadcastingStartedEvent ( @Json(name = "call_cid") val callCid: kotlin.String, @@ -56,9 +56,9 @@ data class CallBroadcastingStartedEvent ( @Json(name = "hls_playlist_url") val hlsPlaylistUrl: kotlin.String, - /* The type of event: \"call.broadcasting_started\" in this case */ + /* The type of event: \"call.hls_broadcasting_started\" in this case */ @Json(name = "type") - val type: kotlin.String = "call.broadcasting_started" + val type: kotlin.String = "call.hls_broadcasting_started" ) : VideoEvent(), WSCallEvent { diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingStoppedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingStoppedEvent.kt new file mode 100644 index 0000000000..225742a159 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallHLSBroadcastingStoppedEvent.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * This event is sent when HLS broadcasting has stopped + * + * @param callCid + * @param createdAt + * @param type The type of event: \"call.hls_broadcasting_stopped\" in this case + */ + + +data class CallHLSBroadcastingStoppedEvent ( + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* The type of event: \"call.hls_broadcasting_stopped\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.hls_broadcasting_stopped" + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallMissedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallMissedEvent.kt new file mode 100644 index 0000000000..6a04d536b3 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallMissedEvent.kt @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallResponse +import org.openapitools.client.models.MemberResponse +import org.openapitools.client.models.UserResponse + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * This event is sent to call members who did not accept/reject/join the call to notify they missed the call + * + * @param call + * @param callCid + * @param createdAt + * @param members List of members who missed the call + * @param sessionId Call session ID + * @param type The type of event: \"call.notification\" in this case + * @param user + */ + + +data class CallMissedEvent ( + + @Json(name = "call") + val call: CallResponse, + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* List of members who missed the call */ + @Json(name = "members") + val members: kotlin.collections.List, + + /* Call session ID */ + @Json(name = "session_id") + val sessionId: kotlin.String, + + /* The type of event: \"call.notification\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.missed", + + @Json(name = "user") + val user: UserResponse + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallResponse.kt index a3a391cf0a..20f35d3a4e 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallResponse.kt @@ -27,6 +27,7 @@ import org.openapitools.client.models.CallIngressResponse import org.openapitools.client.models.CallSessionResponse import org.openapitools.client.models.CallSettingsResponse import org.openapitools.client.models.EgressResponse +import org.openapitools.client.models.ThumbnailResponse import org.openapitools.client.models.UserResponse @@ -62,6 +63,7 @@ import org.openapitools.client.infrastructure.Serializer * @param session * @param startsAt Date/time when the call will start * @param team + * @param thumbnails */ @@ -130,6 +132,9 @@ data class CallResponse ( val startsAt: org.threeten.bp.OffsetDateTime? = null, @Json(name = "team") - val team: kotlin.String? = null + val team: kotlin.String? = null, + + @Json(name = "thumbnails") + val thumbnails: ThumbnailResponse? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSessionResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSessionResponse.kt index 23a4fe2590..f238f0c453 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSessionResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSessionResponse.kt @@ -41,6 +41,7 @@ import org.openapitools.client.infrastructure.Serializer * * @param acceptedBy * @param id + * @param missedBy * @param participants * @param participantsCountByRole * @param rejectedBy @@ -48,6 +49,7 @@ import org.openapitools.client.infrastructure.Serializer * @param liveEndedAt * @param liveStartedAt * @param startedAt + * @param timerEndsAt */ @@ -59,6 +61,9 @@ data class CallSessionResponse ( @Json(name = "id") val id: kotlin.String, + @Json(name = "missed_by") + val missedBy: kotlin.collections.Map, + @Json(name = "participants") val participants: kotlin.collections.List, @@ -78,6 +83,9 @@ data class CallSessionResponse ( val liveStartedAt: org.threeten.bp.OffsetDateTime? = null, @Json(name = "started_at") - val startedAt: org.threeten.bp.OffsetDateTime? = null + val startedAt: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "timer_ends_at") + val timerEndsAt: org.threeten.bp.OffsetDateTime? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsRequest.kt index 3b34ab0b01..0bee7ec2c8 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsRequest.kt @@ -27,9 +27,11 @@ import org.openapitools.client.models.AudioSettingsRequest import org.openapitools.client.models.BackstageSettingsRequest import org.openapitools.client.models.BroadcastSettingsRequest import org.openapitools.client.models.GeofenceSettingsRequest +import org.openapitools.client.models.LimitsSettingsRequest import org.openapitools.client.models.RecordSettingsRequest import org.openapitools.client.models.RingSettingsRequest import org.openapitools.client.models.ScreensharingSettingsRequest +import org.openapitools.client.models.ThumbnailsSettingsRequest import org.openapitools.client.models.TranscriptionSettingsRequest import org.openapitools.client.models.VideoSettingsRequest @@ -51,9 +53,11 @@ import org.openapitools.client.infrastructure.Serializer * @param backstage * @param broadcasting * @param geofencing + * @param limits * @param recording * @param ring * @param screensharing + * @param thumbnails * @param transcription * @param video */ @@ -73,6 +77,9 @@ data class CallSettingsRequest ( @Json(name = "geofencing") val geofencing: GeofenceSettingsRequest? = null, + @Json(name = "limits") + val limits: LimitsSettingsRequest? = null, + @Json(name = "recording") val recording: RecordSettingsRequest? = null, @@ -82,6 +89,9 @@ data class CallSettingsRequest ( @Json(name = "screensharing") val screensharing: ScreensharingSettingsRequest? = null, + @Json(name = "thumbnails") + val thumbnails: ThumbnailsSettingsRequest? = null, + @Json(name = "transcription") val transcription: TranscriptionSettingsRequest? = null, diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsResponse.kt index daa36c6e96..934bf2b446 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallSettingsResponse.kt @@ -23,15 +23,17 @@ package org.openapitools.client.models -import org.openapitools.client.models.AudioSettings -import org.openapitools.client.models.BackstageSettings -import org.openapitools.client.models.BroadcastSettings -import org.openapitools.client.models.GeofenceSettings -import org.openapitools.client.models.RecordSettings -import org.openapitools.client.models.RingSettings -import org.openapitools.client.models.ScreensharingSettings -import org.openapitools.client.models.TranscriptionSettings -import org.openapitools.client.models.VideoSettings +import org.openapitools.client.models.AudioSettingsResponse +import org.openapitools.client.models.BackstageSettingsResponse +import org.openapitools.client.models.BroadcastSettingsResponse +import org.openapitools.client.models.GeofenceSettingsResponse +import org.openapitools.client.models.LimitsSettingsResponse +import org.openapitools.client.models.RecordSettingsResponse +import org.openapitools.client.models.RingSettingsResponse +import org.openapitools.client.models.ScreensharingSettingsResponse +import org.openapitools.client.models.ThumbnailsSettingsResponse +import org.openapitools.client.models.TranscriptionSettingsResponse +import org.openapitools.client.models.VideoSettingsResponse @@ -51,9 +53,11 @@ import org.openapitools.client.infrastructure.Serializer * @param backstage * @param broadcasting * @param geofencing + * @param limits * @param recording * @param ring * @param screensharing + * @param thumbnails * @param transcription * @param video */ @@ -62,30 +66,36 @@ import org.openapitools.client.infrastructure.Serializer data class CallSettingsResponse ( @Json(name = "audio") - val audio: AudioSettings, + val audio: AudioSettingsResponse, @Json(name = "backstage") - val backstage: BackstageSettings, + val backstage: BackstageSettingsResponse, @Json(name = "broadcasting") - val broadcasting: BroadcastSettings, + val broadcasting: BroadcastSettingsResponse, @Json(name = "geofencing") - val geofencing: GeofenceSettings, + val geofencing: GeofenceSettingsResponse, + + @Json(name = "limits") + val limits: LimitsSettingsResponse, @Json(name = "recording") - val recording: RecordSettings, + val recording: RecordSettingsResponse, @Json(name = "ring") - val ring: RingSettings, + val ring: RingSettingsResponse, @Json(name = "screensharing") - val screensharing: ScreensharingSettings, + val screensharing: ScreensharingSettingsResponse, + + @Json(name = "thumbnails") + val thumbnails: ThumbnailsSettingsResponse, @Json(name = "transcription") - val transcription: TranscriptionSettings, + val transcription: TranscriptionSettingsResponse, @Json(name = "video") - val video: VideoSettings + val video: VideoSettingsResponse ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallStatsReportSummaryResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallStatsReportSummaryResponse.kt new file mode 100644 index 0000000000..14155d1f16 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallStatsReportSummaryResponse.kt @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param callCid + * @param callDurationSeconds + * @param callSessionId + * @param callStatus + * @param firstStatsTime + * @param createdAt + * @param qualityScore + */ + + +data class CallStatsReportSummaryResponse ( + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "call_duration_seconds") + val callDurationSeconds: kotlin.Int, + + @Json(name = "call_session_id") + val callSessionId: kotlin.String, + + @Json(name = "call_status") + val callStatus: kotlin.String, + + @Json(name = "first_stats_time") + val firstStatsTime: org.threeten.bp.OffsetDateTime, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "quality_score") + val qualityScore: kotlin.Int? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTimeline.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTimeline.kt new file mode 100644 index 0000000000..0dcefe9e08 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTimeline.kt @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallEvent + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param events + */ + + +data class CallTimeline ( + + @Json(name = "events") + val events: kotlin.collections.List + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscription.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscription.kt new file mode 100644 index 0000000000..9c256a8595 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscription.kt @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * CallTranscription represents a transcription of a call. + * + * @param endTime + * @param filename + * @param startTime + * @param url + */ + + +data class CallTranscription ( + + @Json(name = "end_time") + val endTime: org.threeten.bp.OffsetDateTime, + + @Json(name = "filename") + val filename: kotlin.String, + + @Json(name = "start_time") + val startTime: org.threeten.bp.OffsetDateTime, + + @Json(name = "url") + val url: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallBroadcastingStoppedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionFailedEvent.kt similarity index 83% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallBroadcastingStoppedEvent.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionFailedEvent.kt index f40a585a7b..a91f994250 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallBroadcastingStoppedEvent.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionFailedEvent.kt @@ -36,15 +36,15 @@ import com.squareup.moshi.ToJson import org.openapitools.client.infrastructure.Serializer /** - * This event is sent when call broadcasting has stopped + * This event is sent when call transcription has failed * * @param callCid * @param createdAt - * @param type The type of event: \"call.broadcasting_stopped\" in this case + * @param type The type of event: \"call.transcription_failed\" in this case */ -data class CallBroadcastingStoppedEvent ( +data class CallTranscriptionFailedEvent ( @Json(name = "call_cid") val callCid: kotlin.String, @@ -52,9 +52,9 @@ data class CallBroadcastingStoppedEvent ( @Json(name = "created_at") val createdAt: org.threeten.bp.OffsetDateTime, - /* The type of event: \"call.broadcasting_stopped\" in this case */ + /* The type of event: \"call.transcription_failed\" in this case */ @Json(name = "type") - val type: kotlin.String = "call.broadcasting_stopped" + val type: kotlin.String = "call.transcription_failed" ) : VideoEvent(), WSCallEvent { diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionReadyEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionReadyEvent.kt new file mode 100644 index 0000000000..fba86315ce --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionReadyEvent.kt @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallTranscription + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * This event is sent when call transcription is ready + * + * @param callCid + * @param callTranscription + * @param createdAt + * @param type The type of event: \"call.transcription_ready\" in this case + */ + + +data class CallTranscriptionReadyEvent ( + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "call_transcription") + val callTranscription: CallTranscription, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* The type of event: \"call.transcription_ready\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.transcription_ready" + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStartedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStartedEvent.kt new file mode 100644 index 0000000000..9f05d9bf1a --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStartedEvent.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * This event is sent when call transcription has started + * + * @param callCid + * @param createdAt + * @param type The type of event: \"call.transcription_started\" in this case + */ + + +data class CallTranscriptionStartedEvent ( + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* The type of event: \"call.transcription_started\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.transcription_started" + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStoppedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStoppedEvent.kt new file mode 100644 index 0000000000..42988ed2bc --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallTranscriptionStoppedEvent.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * This event is sent when call transcription has stopped + * + * @param callCid + * @param createdAt + * @param type The type of event: \"call.transcription_stopped\" in this case + */ + + +data class CallTranscriptionStoppedEvent ( + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* The type of event: \"call.transcription_stopped\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.transcription_stopped" + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallUserMuted.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallUserMutedEvent.kt similarity index 98% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallUserMuted.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallUserMutedEvent.kt index 10b8ca8a6c..bce8481f2f 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallUserMuted.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CallUserMutedEvent.kt @@ -46,7 +46,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class CallUserMuted ( +data class CallUserMutedEvent ( @Json(name = "call_cid") val callCid: kotlin.String, diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelConfigWithInfo.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelConfigWithInfo.kt new file mode 100644 index 0000000000..223b588eb9 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelConfigWithInfo.kt @@ -0,0 +1,280 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.BlockListOptions +import org.openapitools.client.models.Command +import org.openapitools.client.models.Thresholds + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param automod + * @param automodBehavior + * @param commands + * @param connectEvents + * @param createdAt + * @param customEvents + * @param markMessagesPending + * @param maxMessageLength + * @param mutes + * @param name + * @param polls + * @param pushNotifications + * @param quotes + * @param reactions + * @param readEvents + * @param reminders + * @param replies + * @param search + * @param typingEvents + * @param updatedAt + * @param uploads + * @param urlEnrichment + * @param allowedFlagReasons + * @param automodThresholds + * @param blocklist + * @param blocklistBehavior + * @param blocklists + * @param grants + */ + + +data class ChannelConfigWithInfo ( + + @Json(name = "automod") + val automod: ChannelConfigWithInfo.Automod, + + @Json(name = "automod_behavior") + val automodBehavior: ChannelConfigWithInfo.AutomodBehavior, + + @Json(name = "commands") + val commands: kotlin.collections.List, + + @Json(name = "connect_events") + val connectEvents: kotlin.Boolean, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "custom_events") + val customEvents: kotlin.Boolean, + + @Json(name = "mark_messages_pending") + val markMessagesPending: kotlin.Boolean, + + @Json(name = "max_message_length") + val maxMessageLength: kotlin.Int, + + @Json(name = "mutes") + val mutes: kotlin.Boolean, + + @Json(name = "name") + val name: kotlin.String, + + @Json(name = "polls") + val polls: kotlin.Boolean, + + @Json(name = "push_notifications") + val pushNotifications: kotlin.Boolean, + + @Json(name = "quotes") + val quotes: kotlin.Boolean, + + @Json(name = "reactions") + val reactions: kotlin.Boolean, + + @Json(name = "read_events") + val readEvents: kotlin.Boolean, + + @Json(name = "reminders") + val reminders: kotlin.Boolean, + + @Json(name = "replies") + val replies: kotlin.Boolean, + + @Json(name = "search") + val search: kotlin.Boolean, + + @Json(name = "typing_events") + val typingEvents: kotlin.Boolean, + + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "uploads") + val uploads: kotlin.Boolean, + + @Json(name = "url_enrichment") + val urlEnrichment: kotlin.Boolean, + + @Json(name = "allowed_flag_reasons") + val allowedFlagReasons: kotlin.collections.List? = null, + + @Json(name = "automod_thresholds") + val automodThresholds: Thresholds? = null, + + @Json(name = "blocklist") + val blocklist: kotlin.String? = null, + + @Json(name = "blocklist_behavior") + val blocklistBehavior: ChannelConfigWithInfo.BlocklistBehavior? = null, + + @Json(name = "blocklists") + val blocklists: kotlin.collections.List? = null, + + @Json(name = "grants") + val grants: kotlin.collections.Map>? = null + +) + +{ + + /** + * + * + * Values: disabled,simple,aI + */ + + sealed class Automod(val value: kotlin.String) { + override fun toString(): String = value + + companion object { + fun fromString(s: kotlin.String): Automod = when (s) { + "disabled" -> Disabled + "simple" -> Simple + "AI" -> AI + else -> Unknown(s) + } + } + + object Disabled : Automod("disabled") + object Simple : Automod("simple") + object AI : Automod("AI") + data class Unknown(val unknownValue: kotlin.String) : Automod(unknownValue) + + class AutomodAdapter : JsonAdapter() { + @FromJson + override fun fromJson(reader: JsonReader): Automod? { + val s = reader.nextString() ?: return null + return fromString(s) + } + + @ToJson + override fun toJson(writer: JsonWriter, value: Automod?) { + writer.value(value?.value) + } + } + } + + + /** + * + * + * Values: flag,block,shadowBlock + */ + + sealed class AutomodBehavior(val value: kotlin.String) { + override fun toString(): String = value + + companion object { + fun fromString(s: kotlin.String): AutomodBehavior = when (s) { + "flag" -> Flag + "block" -> Block + "shadow_block" -> ShadowBlock + else -> Unknown(s) + } + } + + object Flag : AutomodBehavior("flag") + object Block : AutomodBehavior("block") + object ShadowBlock : AutomodBehavior("shadow_block") + data class Unknown(val unknownValue: kotlin.String) : AutomodBehavior(unknownValue) + + class AutomodBehaviorAdapter : JsonAdapter() { + @FromJson + override fun fromJson(reader: JsonReader): AutomodBehavior? { + val s = reader.nextString() ?: return null + return fromString(s) + } + + @ToJson + override fun toJson(writer: JsonWriter, value: AutomodBehavior?) { + writer.value(value?.value) + } + } + } + + + /** + * + * + * Values: flag,block,shadowBlock + */ + + sealed class BlocklistBehavior(val value: kotlin.String) { + override fun toString(): String = value + + companion object { + fun fromString(s: kotlin.String): BlocklistBehavior = when (s) { + "flag" -> Flag + "block" -> Block + "shadow_block" -> ShadowBlock + else -> Unknown(s) + } + } + + object Flag : BlocklistBehavior("flag") + object Block : BlocklistBehavior("block") + object ShadowBlock : BlocklistBehavior("shadow_block") + data class Unknown(val unknownValue: kotlin.String) : BlocklistBehavior(unknownValue) + + class BlocklistBehaviorAdapter : JsonAdapter() { + @FromJson + override fun fromJson(reader: JsonReader): BlocklistBehavior? { + val s = reader.nextString() ?: return null + return fromString(s) + } + + @ToJson + override fun toJson(writer: JsonWriter, value: BlocklistBehavior?) { + writer.value(value?.value) + } + } + } + + + +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMember.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMember.kt new file mode 100644 index 0000000000..cf911913f7 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMember.kt @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param banned Whether member is banned this channel or not + * @param channelRole Role of the member in the channel + * @param createdAt Date/time of creation + * @param notificationsMuted + * @param shadowBanned Whether member is shadow banned in this channel or not + * @param updatedAt Date/time of the last update + * @param banExpires Expiration date of the ban + * @param deletedAt + * @param inviteAcceptedAt Date when invite was accepted + * @param inviteRejectedAt Date when invite was rejected + * @param invited Whether member was invited or not + * @param isModerator Whether member is channel moderator or not + * @param status + * @param user + * @param userId + */ + + +data class ChannelMember ( + + /* Whether member is banned this channel or not */ + @Json(name = "banned") + val banned: kotlin.Boolean, + + /* Role of the member in the channel */ + @Json(name = "channel_role") + val channelRole: kotlin.String, + + /* Date/time of creation */ + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "notifications_muted") + val notificationsMuted: kotlin.Boolean, + + /* Whether member is shadow banned in this channel or not */ + @Json(name = "shadow_banned") + val shadowBanned: kotlin.Boolean, + + /* Date/time of the last update */ + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime, + + /* Expiration date of the ban */ + @Json(name = "ban_expires") + val banExpires: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "deleted_at") + val deletedAt: org.threeten.bp.OffsetDateTime? = null, + + /* Date when invite was accepted */ + @Json(name = "invite_accepted_at") + val inviteAcceptedAt: org.threeten.bp.OffsetDateTime? = null, + + /* Date when invite was rejected */ + @Json(name = "invite_rejected_at") + val inviteRejectedAt: org.threeten.bp.OffsetDateTime? = null, + + /* Whether member was invited or not */ + @Json(name = "invited") + val invited: kotlin.Boolean? = null, + + /* Whether member is channel moderator or not */ + @Json(name = "is_moderator") + val isModerator: kotlin.Boolean? = null, + + @Json(name = "status") + val status: kotlin.String? = null, + + @Json(name = "user") + val user: UserObject? = null, + + @Json(name = "user_id") + val userId: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMute.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMute.kt new file mode 100644 index 0000000000..4ca6752450 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelMute.kt @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ChannelResponse +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt Date/time of creation + * @param updatedAt Date/time of the last update + * @param channel + * @param expires Date/time of mute expiration + * @param user + */ + + +data class ChannelMute ( + + /* Date/time of creation */ + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* Date/time of the last update */ + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "channel") + val channel: ChannelResponse? = null, + + /* Date/time of mute expiration */ + @Json(name = "expires") + val expires: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "user") + val user: UserObject? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelResponse.kt new file mode 100644 index 0000000000..7ccafba445 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ChannelResponse.kt @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ChannelConfigWithInfo +import org.openapitools.client.models.ChannelMember +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * Represents channel in chat + * + * @param cid Channel CID (:) + * @param createdAt Date/time of creation + * @param custom + * @param disabled + * @param frozen Whether channel is frozen or not + * @param id Channel unique ID + * @param type Type of the channel + * @param updatedAt Date/time of the last update + * @param autoTranslationEnabled Whether auto translation is enabled or not + * @param autoTranslationLanguage Language to translate to when auto translation is active + * @param blocked Whether this channel is blocked by current user or not + * @param config + * @param cooldown Cooldown period after sending each message + * @param createdBy + * @param deletedAt Date/time of deletion + * @param hidden Whether this channel is hidden by current user or not + * @param hideMessagesBefore Date since when the message history is accessible + * @param lastMessageAt Date of the last message sent + * @param memberCount Number of members in the channel + * @param members List of channel members (max 100) + * @param muteExpiresAt Date of mute expiration + * @param muted Whether this channel is muted or not + * @param ownCapabilities List of channel capabilities of authenticated user + * @param team Team the channel belongs to (multi-tenant only) + * @param truncatedAt Date of the latest truncation of the channel + * @param truncatedBy + */ + + +data class ChannelResponse ( + + /* Channel CID (:) */ + @Json(name = "cid") + val cid: kotlin.String, + + /* Date/time of creation */ + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "custom") + val custom: kotlin.collections.Map, + + @Json(name = "disabled") + val disabled: kotlin.Boolean, + + /* Whether channel is frozen or not */ + @Json(name = "frozen") + val frozen: kotlin.Boolean, + + /* Channel unique ID */ + @Json(name = "id") + val id: kotlin.String, + + /* Type of the channel */ + @Json(name = "type") + val type: kotlin.String, + + /* Date/time of the last update */ + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime, + + /* Whether auto translation is enabled or not */ + @Json(name = "auto_translation_enabled") + val autoTranslationEnabled: kotlin.Boolean? = null, + + /* Language to translate to when auto translation is active */ + @Json(name = "auto_translation_language") + val autoTranslationLanguage: kotlin.String? = null, + + /* Whether this channel is blocked by current user or not */ + @Json(name = "blocked") + val blocked: kotlin.Boolean? = null, + + @Json(name = "config") + val config: ChannelConfigWithInfo? = null, + + /* Cooldown period after sending each message */ + @Json(name = "cooldown") + val cooldown: kotlin.Int? = null, + + @Json(name = "created_by") + val createdBy: UserObject? = null, + + /* Date/time of deletion */ + @Json(name = "deleted_at") + val deletedAt: org.threeten.bp.OffsetDateTime? = null, + + /* Whether this channel is hidden by current user or not */ + @Json(name = "hidden") + val hidden: kotlin.Boolean? = null, + + /* Date since when the message history is accessible */ + @Json(name = "hide_messages_before") + val hideMessagesBefore: org.threeten.bp.OffsetDateTime? = null, + + /* Date of the last message sent */ + @Json(name = "last_message_at") + val lastMessageAt: org.threeten.bp.OffsetDateTime? = null, + + /* Number of members in the channel */ + @Json(name = "member_count") + val memberCount: kotlin.Int? = null, + + /* List of channel members (max 100) */ + @Json(name = "members") + val members: kotlin.collections.List? = null, + + /* Date of mute expiration */ + @Json(name = "mute_expires_at") + val muteExpiresAt: org.threeten.bp.OffsetDateTime? = null, + + /* Whether this channel is muted or not */ + @Json(name = "muted") + val muted: kotlin.Boolean? = null, + + /* List of channel capabilities of authenticated user */ + @Json(name = "own_capabilities") + val ownCapabilities: kotlin.collections.List? = null, + + /* Team the channel belongs to (multi-tenant only) */ + @Json(name = "team") + val team: kotlin.String? = null, + + /* Date of the latest truncation of the channel */ + @Json(name = "truncated_at") + val truncatedAt: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "truncated_by") + val truncatedBy: UserObject? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ClosedCaptionEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ClosedCaptionEvent.kt new file mode 100644 index 0000000000..15d76f429d --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ClosedCaptionEvent.kt @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallClosedCaption + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * 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 + * + * @param callCid + * @param closedCaption + * @param createdAt + * @param type The type of event: \"call.closed_caption\" in this case + */ + + +data class ClosedCaptionEvent ( + + @Json(name = "call_cid") + val callCid: kotlin.String, + + @Json(name = "closed_caption") + val closedCaption: CallClosedCaption, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* The type of event: \"call.closed_caption\" in this case */ + @Json(name = "type") + val type: kotlin.String = "call.closed_caption" + +) : VideoEvent(), WSCallEvent { + + override fun getCallCID(): String { + return callCid + } + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CollectUserFeedbackRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CollectUserFeedbackRequest.kt new file mode 100644 index 0000000000..7b280eb02e --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CollectUserFeedbackRequest.kt @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param rating + * @param sdk + * @param sdkVersion + * @param userSessionId + * @param custom + * @param reason + */ + + +data class CollectUserFeedbackRequest ( + + @Json(name = "rating") + val rating: kotlin.Int, + + @Json(name = "sdk") + val sdk: kotlin.String, + + @Json(name = "sdk_version") + val sdkVersion: kotlin.String, + + @Json(name = "user_session_id") + val userSessionId: kotlin.String, + + @Json(name = "custom") + val custom: kotlin.collections.Map? = null, + + @Json(name = "reason") + val reason: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StopBroadcastingResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CollectUserFeedbackResponse.kt similarity index 96% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StopBroadcastingResponse.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CollectUserFeedbackResponse.kt index 34f5d4278a..aad663c75d 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StopBroadcastingResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/CollectUserFeedbackResponse.kt @@ -42,7 +42,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class StopBroadcastingResponse ( +data class CollectUserFeedbackResponse ( /* Duration of the request in human-readable format */ @Json(name = "duration") diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Command.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Command.kt new file mode 100644 index 0000000000..95e2d9e4e5 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Command.kt @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * Represents custom chat command + * + * @param args Arguments help text, shown in commands auto-completion + * @param description Description, shown in commands auto-completion + * @param name Unique command name + * @param set Set name used for grouping commands + * @param createdAt Date/time of creation + * @param updatedAt Date/time of the last update + */ + + +data class Command ( + + /* Arguments help text, shown in commands auto-completion */ + @Json(name = "args") + val args: kotlin.String, + + /* Description, shown in commands auto-completion */ + @Json(name = "description") + val description: kotlin.String, + + /* Unique command name */ + @Json(name = "name") + val name: kotlin.String, + + /* Set name used for grouping commands */ + @Json(name = "set") + val set: kotlin.String, + + /* Date/time of creation */ + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime? = null, + + /* Date/time of the last update */ + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ConnectUserDetailsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ConnectUserDetailsRequest.kt index cc9417c728..6c7800814f 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ConnectUserDetailsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ConnectUserDetailsRequest.kt @@ -23,6 +23,8 @@ package org.openapitools.client.models +import org.openapitools.client.models.PrivacySettings +import org.openapitools.client.models.PushNotificationSettingsInput @@ -41,7 +43,11 @@ import org.openapitools.client.infrastructure.Serializer * @param id * @param custom * @param image + * @param invisible + * @param language * @param name + * @param privacySettings + * @param pushNotifications */ @@ -56,7 +62,19 @@ data class ConnectUserDetailsRequest ( @Json(name = "image") val image: kotlin.String? = null, + @Json(name = "invisible") + val invisible: kotlin.Boolean? = null, + + @Json(name = "language") + val language: kotlin.String? = null, + @Json(name = "name") - val name: kotlin.String? = null + val name: kotlin.String? = null, + + @Json(name = "privacy_settings") + val privacySettings: PrivacySettings? = null, + + @Json(name = "push_notifications") + val pushNotifications: PushNotificationSettingsInput? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Coordinates.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Coordinates.kt new file mode 100644 index 0000000000..eadb1f1238 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Coordinates.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param latitude + * @param longitude + */ + + +data class Coordinates ( + + @Json(name = "latitude") + val latitude: kotlin.Float, + + @Json(name = "longitude") + val longitude: kotlin.Float + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteRecordingResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteRecordingResponse.kt new file mode 100644 index 0000000000..36041278d0 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteRecordingResponse.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param duration + */ + + +data class DeleteRecordingResponse ( + + @Json(name = "duration") + val duration: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteTranscriptionResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteTranscriptionResponse.kt new file mode 100644 index 0000000000..41bba9c8a9 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/DeleteTranscriptionResponse.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param duration + */ + + +data class DeleteTranscriptionResponse ( + + @Json(name = "duration") + val duration: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeofenceSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeofenceSettingsResponse.kt similarity index 96% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeofenceSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeofenceSettingsResponse.kt index 466c9664f1..fdfa7ab944 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeofenceSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeofenceSettingsResponse.kt @@ -42,7 +42,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class GeofenceSettings ( +data class GeofenceSettingsResponse ( @Json(name = "names") val names: kotlin.collections.List diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeolocationResult.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeolocationResult.kt new file mode 100644 index 0000000000..fa61cc5e66 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GeolocationResult.kt @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param accuracyRadius + * @param city + * @param continent + * @param continentCode + * @param country + * @param countryIsoCode + * @param latitude + * @param longitude + * @param subdivision + * @param subdivisionIsoCode + */ + + +data class GeolocationResult ( + + @Json(name = "accuracy_radius") + val accuracyRadius: kotlin.Int, + + @Json(name = "city") + val city: kotlin.String, + + @Json(name = "continent") + val continent: kotlin.String, + + @Json(name = "continent_code") + val continentCode: kotlin.String, + + @Json(name = "country") + val country: kotlin.String, + + @Json(name = "country_iso_code") + val countryIsoCode: kotlin.String, + + @Json(name = "latitude") + val latitude: kotlin.Float, + + @Json(name = "longitude") + val longitude: kotlin.Float, + + @Json(name = "subdivision") + val subdivision: kotlin.String, + + @Json(name = "subdivision_iso_code") + val subdivisionIsoCode: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GetCallStatsResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GetCallStatsResponse.kt new file mode 100644 index 0000000000..3638b21c56 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GetCallStatsResponse.kt @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallTimeline +import org.openapitools.client.models.SFULocationResponse +import org.openapitools.client.models.Stats +import org.openapitools.client.models.UserStats + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param callDurationSeconds + * @param callStatus + * @param duration Duration of the request in human-readable format + * @param maxFreezesDurationSeconds + * @param maxParticipants + * @param maxTotalQualityLimitationDurationSeconds + * @param participantReport + * @param publishingParticipants + * @param qualityScore + * @param sfuCount + * @param sfus + * @param callTimeline + * @param jitter + * @param latency + */ + + +data class GetCallStatsResponse ( + + @Json(name = "call_duration_seconds") + val callDurationSeconds: kotlin.Int, + + @Json(name = "call_status") + val callStatus: kotlin.String, + + /* Duration of the request in human-readable format */ + @Json(name = "duration") + val duration: kotlin.String, + + @Json(name = "max_freezes_duration_seconds") + val maxFreezesDurationSeconds: kotlin.Int, + + @Json(name = "max_participants") + val maxParticipants: kotlin.Int, + + @Json(name = "max_total_quality_limitation_duration_seconds") + val maxTotalQualityLimitationDurationSeconds: kotlin.Int, + + @Json(name = "participant_report") + val participantReport: kotlin.collections.List, + + @Json(name = "publishing_participants") + val publishingParticipants: kotlin.Int, + + @Json(name = "quality_score") + val qualityScore: kotlin.Int, + + @Json(name = "sfu_count") + val sfuCount: kotlin.Int, + + @Json(name = "sfus") + val sfus: kotlin.collections.List, + + @Json(name = "call_timeline") + val callTimeline: CallTimeline? = null, + + @Json(name = "jitter") + val jitter: Stats? = null, + + @Json(name = "latency") + val latency: Stats? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GoLiveRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GoLiveRequest.kt index 5742d434c9..6bd1d717cc 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GoLiveRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/GoLiveRequest.kt @@ -38,14 +38,19 @@ import org.openapitools.client.infrastructure.Serializer /** * * + * @param recordingStorageName * @param startHls * @param startRecording * @param startTranscription + * @param transcriptionStorageName */ data class GoLiveRequest ( + @Json(name = "recording_storage_name") + val recordingStorageName: kotlin.String? = null, + @Json(name = "start_hls") val startHls: kotlin.Boolean? = null, @@ -53,6 +58,9 @@ data class GoLiveRequest ( val startRecording: kotlin.Boolean? = null, @Json(name = "start_transcription") - val startTranscription: kotlin.Boolean? = null + val startTranscription: kotlin.Boolean? = null, + + @Json(name = "transcription_storage_name") + val transcriptionStorageName: kotlin.String? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettingsRequest.kt index 860f445431..67885b36c3 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettingsRequest.kt @@ -38,21 +38,21 @@ import org.openapitools.client.infrastructure.Serializer /** * * + * @param qualityTracks * @param autoOn * @param enabled - * @param qualityTracks */ data class HLSSettingsRequest ( + @Json(name = "quality_tracks") + val qualityTracks: kotlin.collections.List, + @Json(name = "auto_on") val autoOn: kotlin.Boolean? = null, @Json(name = "enabled") - val enabled: kotlin.Boolean? = null, - - @Json(name = "quality_tracks") - val qualityTracks: kotlin.collections.List? = null + val enabled: kotlin.Boolean? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettingsResponse.kt similarity index 97% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettingsResponse.kt index 68107caf80..bd211e7aa6 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HLSSettingsResponse.kt @@ -44,7 +44,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class HLSSettings ( +data class HLSSettingsResponse ( @Json(name = "auto_on") val autoOn: kotlin.Boolean, diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HealthCheckEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HealthCheckEvent.kt index 6a7ac7995d..9102dbdf71 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HealthCheckEvent.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/HealthCheckEvent.kt @@ -24,38 +24,27 @@ package org.openapitools.client.models - - - -import com.squareup.moshi.FromJson import com.squareup.moshi.Json -import com.squareup.moshi.JsonAdapter -import com.squareup.moshi.JsonReader -import com.squareup.moshi.JsonWriter -import com.squareup.moshi.ToJson -import org.openapitools.client.infrastructure.Serializer /** * * - * @param connectionId The connection_id for this client + * @param connectionId * @param createdAt - * @param type The type of event: \"health.check\" in this case + * @param type */ data class HealthCheckEvent ( - /* The connection_id for this client */ @Json(name = "connection_id") val connectionId: kotlin.String, @Json(name = "created_at") val createdAt: org.threeten.bp.OffsetDateTime, - /* The type of event: \"health.check\" in this case */ @Json(name = "type") - val type: kotlin.String = "health.check" + val type: kotlin.String = "health.check", ) : VideoEvent(), WSClientEvent { diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LabelThresholds.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LabelThresholds.kt new file mode 100644 index 0000000000..4c5d64eafa --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LabelThresholds.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param block Threshold for automatic message block + * @param flag Threshold for automatic message flag + */ + + +data class LabelThresholds ( + + /* Threshold for automatic message block */ + @Json(name = "block") + val block: kotlin.Float? = null, + + /* Threshold for automatic message flag */ + @Json(name = "flag") + val flag: kotlin.Float? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsRequest.kt new file mode 100644 index 0000000000..6e41d2d907 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsRequest.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param maxDurationSeconds + * @param maxParticipants + */ + + +data class LimitsSettingsRequest ( + + @Json(name = "max_duration_seconds") + val maxDurationSeconds: kotlin.Int? = null, + + @Json(name = "max_participants") + val maxParticipants: kotlin.Int? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsResponse.kt new file mode 100644 index 0000000000..648b879a8c --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/LimitsSettingsResponse.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param maxDurationSeconds + * @param maxParticipants + */ + + +data class LimitsSettingsResponse ( + + @Json(name = "max_duration_seconds") + val maxDurationSeconds: kotlin.Int? = null, + + @Json(name = "max_participants") + val maxParticipants: kotlin.Int? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ListTranscriptionsResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ListTranscriptionsResponse.kt new file mode 100644 index 0000000000..8a889832ac --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ListTranscriptionsResponse.kt @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallTranscription + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param duration + * @param transcriptions + */ + + +data class ListTranscriptionsResponse ( + + @Json(name = "duration") + val duration: kotlin.String, + + @Json(name = "transcriptions") + val transcriptions: kotlin.collections.List + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TargetResolutionRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Location.kt similarity index 76% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TargetResolutionRequest.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Location.kt index a7b8773953..371519232d 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TargetResolutionRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Location.kt @@ -38,21 +38,21 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param bitrate - * @param height - * @param width + * @param continentCode + * @param countryIsoCode + * @param subdivisionIsoCode */ -data class TargetResolutionRequest ( +data class Location ( - @Json(name = "bitrate") - val bitrate: kotlin.Int? = null, + @Json(name = "continent_code") + val continentCode: kotlin.String, - @Json(name = "height") - val height: kotlin.Int? = null, + @Json(name = "country_iso_code") + val countryIsoCode: kotlin.String, - @Json(name = "width") - val width: kotlin.Int? = null + @Json(name = "subdivision_iso_code") + val subdivisionIsoCode: kotlin.String ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MOSStats.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MOSStats.kt new file mode 100644 index 0000000000..fdd879e843 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MOSStats.kt @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param averageScore + * @param histogramDurationSeconds + * @param maxScore + * @param minScore + */ + + +data class MOSStats ( + + @Json(name = "average_score") + val averageScore: kotlin.Float, + + @Json(name = "histogram_duration_seconds") + val histogramDurationSeconds: kotlin.collections.List, + + @Json(name = "max_score") + val maxScore: kotlin.Float, + + @Json(name = "min_score") + val minScore: kotlin.Float + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MediaPubSubHint.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MediaPubSubHint.kt new file mode 100644 index 0000000000..c403ad42a8 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MediaPubSubHint.kt @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param audioPublished + * @param audioSubscribed + * @param videoPublished + * @param videoSubscribed + */ + + +data class MediaPubSubHint ( + + @Json(name = "audio_published") + val audioPublished: kotlin.Boolean, + + @Json(name = "audio_subscribed") + val audioSubscribed: kotlin.Boolean, + + @Json(name = "video_published") + val videoPublished: kotlin.Boolean, + + @Json(name = "video_subscribed") + val videoSubscribed: kotlin.Boolean + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MuteUsersRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MuteUsersRequest.kt index 5e5f1c1025..d0174a8450 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MuteUsersRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/MuteUsersRequest.kt @@ -41,6 +41,7 @@ import org.openapitools.client.infrastructure.Serializer * @param audio * @param muteAllUsers * @param screenshare + * @param screenshareAudio * @param userIds * @param video */ @@ -57,6 +58,9 @@ data class MuteUsersRequest ( @Json(name = "screenshare") val screenshare: kotlin.Boolean? = null, + @Json(name = "screenshare_audio") + val screenshareAudio: kotlin.Boolean? = null, + @Json(name = "user_ids") val userIds: kotlin.collections.List? = null, diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NoiseCancellationSettings.kt similarity index 92% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NoiseCancellationSettings.kt index f5317dcd7a..9177e9902c 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NoiseCancellationSettings.kt @@ -38,18 +38,14 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param closedCaptionMode * @param mode */ -data class TranscriptionSettings ( - - @Json(name = "closed_caption_mode") - val closedCaptionMode: kotlin.String, +data class NoiseCancellationSettings ( @Json(name = "mode") - val mode: TranscriptionSettings.Mode + val mode: NoiseCancellationSettings.Mode ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullBool.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullBool.kt new file mode 100644 index 0000000000..10b0cd9320 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullBool.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param hasValue + * @param `value` + */ + + +data class NullBool ( + + @Json(name = "HasValue") + val hasValue: kotlin.Boolean? = null, + + @Json(name = "Value") + val `value`: kotlin.Boolean? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullTime.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullTime.kt new file mode 100644 index 0000000000..e026ef11e2 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/NullTime.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param hasValue + * @param `value` + */ + + +data class NullTime ( + + @Json(name = "HasValue") + val hasValue: kotlin.Boolean? = null, + + @Json(name = "Value") + val `value`: org.threeten.bp.OffsetDateTime? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnCapability.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnCapability.kt index d725477bf8..6164d844d2 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnCapability.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnCapability.kt @@ -37,7 +37,7 @@ import com.squareup.moshi.ToJson /** * All possibility of string to use * - * Values: blockUsers,createCall,createReaction,endCall,joinBackstage,joinCall,joinEndedCall,muteUsers,pinForEveryone,readCall,removeCallMember,screenshare,sendAudio,sendVideo,startBroadcastCall,startRecordCall,startTranscriptionCall,stopBroadcastCall,stopRecordCall,stopTranscriptionCall,updateCall,updateCallMember,updateCallPermissions,updateCallSettings + * Values: blockUsers,changeMaxDuration,createCall,createReaction,enableNoiseCancellation,endCall,joinBackstage,joinCall,joinEndedCall,muteUsers,pinForEveryone,readCall,removeCallMember,screenshare,sendAudio,sendVideo,startBroadcastCall,startRecordCall,startTranscriptionCall,stopBroadcastCall,stopRecordCall,stopTranscriptionCall,updateCall,updateCallMember,updateCallPermissions,updateCallSettings */ sealed class OwnCapability(val value: kotlin.String) { @@ -46,8 +46,10 @@ sealed class OwnCapability(val value: kotlin.String) { companion object { fun fromString(s: kotlin.String): OwnCapability = when (s) { "block-users" -> BlockUsers + "change-max-duration" -> ChangeMaxDuration "create-call" -> CreateCall "create-reaction" -> CreateReaction + "enable-noise-cancellation" -> EnableNoiseCancellation "end-call" -> EndCall "join-backstage" -> JoinBackstage "join-call" -> JoinCall @@ -74,8 +76,10 @@ sealed class OwnCapability(val value: kotlin.String) { } object BlockUsers : OwnCapability("block-users") + object ChangeMaxDuration : OwnCapability("change-max-duration") object CreateCall : OwnCapability("create-call") object CreateReaction : OwnCapability("create-reaction") + object EnableNoiseCancellation : OwnCapability("enable-noise-cancellation") object EndCall : OwnCapability("end-call") object JoinBackstage : OwnCapability("join-backstage") object JoinCall : OwnCapability("join-call") diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUser.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUser.kt new file mode 100644 index 0000000000..96c0eab89f --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUser.kt @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ChannelMute +import org.openapitools.client.models.Device +import org.openapitools.client.models.PrivacySettings +import org.openapitools.client.models.PushNotificationSettings +import org.openapitools.client.models.UserMute + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param banned + * @param channelMutes + * @param createdAt + * @param custom + * @param devices + * @param id + * @param language + * @param mutes + * @param online + * @param role + * @param totalUnreadCount + * @param unreadChannels + * @param unreadCount + * @param unreadThreads + * @param updatedAt + * @param blockedUserIds + * @param deactivatedAt + * @param deletedAt + * @param invisible + * @param lastActive + * @param latestHiddenChannels + * @param privacySettings + * @param pushNotifications + * @param teams + */ + + +data class OwnUser ( + + @Json(name = "banned") + val banned: kotlin.Boolean, + + @Json(name = "channel_mutes") + val channelMutes: kotlin.collections.List, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "custom") + val custom: kotlin.collections.Map, + + @Json(name = "devices") + val devices: kotlin.collections.List, + + @Json(name = "id") + val id: kotlin.String, + + @Json(name = "language") + val language: kotlin.String, + + @Json(name = "mutes") + val mutes: kotlin.collections.List, + + @Json(name = "online") + val online: kotlin.Boolean, + + @Json(name = "role") + val role: kotlin.String, + + @Json(name = "total_unread_count") + val totalUnreadCount: kotlin.Int, + + @Json(name = "unread_channels") + val unreadChannels: kotlin.Int, + + @Json(name = "unread_count") + val unreadCount: kotlin.Int, + + @Json(name = "unread_threads") + val unreadThreads: kotlin.Int, + + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "blocked_user_ids") + val blockedUserIds: kotlin.collections.List? = null, + + @Json(name = "deactivated_at") + val deactivatedAt: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "deleted_at") + val deletedAt: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "invisible") + val invisible: kotlin.Boolean? = null, + + @Json(name = "last_active") + val lastActive: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "latest_hidden_channels") + val latestHiddenChannels: kotlin.collections.List? = null, + + @Json(name = "privacy_settings") + val privacySettings: PrivacySettings? = null, + + @Json(name = "push_notifications") + val pushNotifications: PushNotificationSettings? = null, + + @Json(name = "teams") + val teams: kotlin.collections.List? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUserResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUserResponse.kt index 0995dfe6bd..78beadf705 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUserResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/OwnUserResponse.kt @@ -23,7 +23,11 @@ package org.openapitools.client.models +import org.openapitools.client.models.ChannelMute import org.openapitools.client.models.Device +import org.openapitools.client.models.PrivacySettings +import org.openapitools.client.models.PushNotificationSettings +import org.openapitools.client.models.UserMute @@ -39,21 +43,42 @@ import org.openapitools.client.infrastructure.Serializer /** * * + * @param banned + * @param channelMutes * @param createdAt * @param custom * @param devices * @param id + * @param invisible + * @param language + * @param mutes + * @param online * @param role * @param teams + * @param totalUnreadCount + * @param unreadChannels + * @param unreadThreads * @param updatedAt + * @param deactivatedAt * @param deletedAt * @param image + * @param lastActive + * @param latestHiddenChannels * @param name + * @param privacySettings + * @param pushNotifications + * @param revokeTokensIssuedBefore */ data class OwnUserResponse ( + @Json(name = "banned") + val banned: kotlin.Boolean, + + @Json(name = "channel_mutes") + val channelMutes: kotlin.collections.List, + @Json(name = "created_at") val createdAt: org.threeten.bp.OffsetDateTime, @@ -66,22 +91,61 @@ data class OwnUserResponse ( @Json(name = "id") val id: kotlin.String, + @Json(name = "invisible") + val invisible: kotlin.Boolean, + + @Json(name = "language") + val language: kotlin.String, + + @Json(name = "mutes") + val mutes: kotlin.collections.List, + + @Json(name = "online") + val online: kotlin.Boolean, + @Json(name = "role") val role: kotlin.String, @Json(name = "teams") val teams: kotlin.collections.List, + @Json(name = "total_unread_count") + val totalUnreadCount: kotlin.Int, + + @Json(name = "unread_channels") + val unreadChannels: kotlin.Int, + + @Json(name = "unread_threads") + val unreadThreads: kotlin.Int, + @Json(name = "updated_at") val updatedAt: org.threeten.bp.OffsetDateTime, + @Json(name = "deactivated_at") + val deactivatedAt: org.threeten.bp.OffsetDateTime? = null, + @Json(name = "deleted_at") val deletedAt: org.threeten.bp.OffsetDateTime? = null, @Json(name = "image") val image: kotlin.String? = null, + @Json(name = "last_active") + val lastActive: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "latest_hidden_channels") + val latestHiddenChannels: kotlin.collections.List? = null, + @Json(name = "name") - val name: kotlin.String? = null + val name: kotlin.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: org.threeten.bp.OffsetDateTime? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PrivacySettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PrivacySettings.kt new file mode 100644 index 0000000000..8b3f2a6753 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PrivacySettings.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ReadReceipts +import org.openapitools.client.models.TypingIndicators + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param readReceipts + * @param typingIndicators + */ + + +data class PrivacySettings ( + + @Json(name = "read_receipts") + val readReceipts: ReadReceipts? = null, + + @Json(name = "typing_indicators") + val typingIndicators: TypingIndicators? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PublishedTrackInfo.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PublishedTrackInfo.kt new file mode 100644 index 0000000000..c5168ab64e --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PublishedTrackInfo.kt @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param codecMimeType + * @param durationSeconds + * @param trackType + */ + + +data class PublishedTrackInfo ( + + @Json(name = "codec_mime_type") + val codecMimeType: kotlin.String? = null, + + @Json(name = "duration_seconds") + val durationSeconds: kotlin.Int? = null, + + @Json(name = "track_type") + val trackType: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettings.kt new file mode 100644 index 0000000000..14a8e06d09 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettings.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param disabled + * @param disabledUntil + */ + + +data class PushNotificationSettings ( + + @Json(name = "disabled") + val disabled: kotlin.Boolean? = null, + + @Json(name = "disabled_until") + val disabledUntil: org.threeten.bp.OffsetDateTime? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettingsInput.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettingsInput.kt new file mode 100644 index 0000000000..cda5f89858 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/PushNotificationSettingsInput.kt @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.NullBool +import org.openapitools.client.models.NullTime + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param disabled + * @param disabledUntil + */ + + +data class PushNotificationSettingsInput ( + + @Json(name = "disabled") + val disabled: NullBool? = null, + + @Json(name = "disabled_until") + val disabledUntil: NullTime? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryMembersRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallMembersRequest.kt similarity index 91% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryMembersRequest.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallMembersRequest.kt index 8eba3de138..83d558717c 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryMembersRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallMembersRequest.kt @@ -23,7 +23,7 @@ package org.openapitools.client.models -import org.openapitools.client.models.SortParamRequest +import org.openapitools.client.models.SortParam @@ -49,7 +49,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class QueryMembersRequest ( +data class QueryCallMembersRequest ( @Json(name = "id") val id: kotlin.String, @@ -70,6 +70,6 @@ data class QueryMembersRequest ( val prev: kotlin.String? = null, @Json(name = "sort") - val sort: kotlin.collections.List? = null + val sort: kotlin.collections.List? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryMembersResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallMembersResponse.kt similarity index 97% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryMembersResponse.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallMembersResponse.kt index c945aa9e1f..c64e78deea 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryMembersResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallMembersResponse.kt @@ -46,7 +46,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class QueryMembersResponse ( +data class QueryCallMembersResponse ( /* Duration of the request in human-readable format */ @Json(name = "duration") diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsRequest.kt new file mode 100644 index 0000000000..c5e27ee6a0 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsRequest.kt @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.SortParam + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param filterConditions + * @param limit + * @param next + * @param prev + * @param sort + */ + + +data class QueryCallStatsRequest ( + + @Json(name = "filter_conditions") + val filterConditions: kotlin.collections.Map? = null, + + @Json(name = "limit") + val limit: kotlin.Int? = null, + + @Json(name = "next") + val next: kotlin.String? = null, + + @Json(name = "prev") + val prev: kotlin.String? = null, + + @Json(name = "sort") + val sort: kotlin.collections.List? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsResponse.kt new file mode 100644 index 0000000000..efe3a7fe8e --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallStatsResponse.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallStatsReportSummaryResponse + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param duration Duration of the request in human-readable format + * @param reports + * @param next + * @param prev + */ + + +data class QueryCallStatsResponse ( + + /* Duration of the request in human-readable format */ + @Json(name = "duration") + val duration: kotlin.String, + + @Json(name = "reports") + val reports: kotlin.collections.List, + + @Json(name = "next") + val next: kotlin.String? = null, + + @Json(name = "prev") + val prev: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallsRequest.kt index 7984663d9f..3a97d88743 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/QueryCallsRequest.kt @@ -23,7 +23,7 @@ package org.openapitools.client.models -import org.openapitools.client.models.SortParamRequest +import org.openapitools.client.models.SortParam @@ -63,7 +63,7 @@ data class QueryCallsRequest ( val prev: kotlin.String? = null, @Json(name = "sort") - val sort: kotlin.collections.List? = null, + val sort: kotlin.collections.List? = null, @Json(name = "watch") val watch: kotlin.Boolean? = null diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ReadReceipts.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ReadReceipts.kt new file mode 100644 index 0000000000..25eb1f9b7f --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ReadReceipts.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param enabled + */ + + +data class ReadReceipts ( + + @Json(name = "enabled") + val enabled: kotlin.Boolean? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsRequest.kt index a1ca44daaf..6a5cc6844b 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsRequest.kt @@ -38,20 +38,20 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param audioOnly * @param mode + * @param audioOnly * @param quality */ data class RecordSettingsRequest ( + @Json(name = "mode") + val mode: RecordSettingsRequest.Mode, + @Json(name = "audio_only") val audioOnly: kotlin.Boolean? = null, - @Json(name = "mode") - val mode: RecordSettingsRequest.Mode? = null, - @Json(name = "quality") val quality: RecordSettingsRequest.Quality? = null @@ -100,7 +100,7 @@ data class RecordSettingsRequest ( /** * * - * Values: audioOnly,_360p,_480p,_720p,_1080p,_1440p + * Values: _360p,_480p,_720p,_1080p,_1440p */ sealed class Quality(val value: kotlin.String) { @@ -108,7 +108,6 @@ data class RecordSettingsRequest ( companion object { fun fromString(s: kotlin.String): Quality = when (s) { - "audio-only" -> AudioOnly "360p" -> `360p` "480p" -> `480p` "720p" -> `720p` @@ -118,7 +117,6 @@ data class RecordSettingsRequest ( } } - object AudioOnly : Quality("audio-only") object `360p` : Quality("360p") object `480p` : Quality("480p") object `720p` : Quality("720p") diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsResponse.kt new file mode 100644 index 0000000000..2c50c966b6 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettingsResponse.kt @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param audioOnly + * @param mode + * @param quality + */ + + +data class RecordSettingsResponse ( + + @Json(name = "audio_only") + val audioOnly: kotlin.Boolean, + + @Json(name = "mode") + val mode: kotlin.String, + + @Json(name = "quality") + val quality: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RejectCallRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RejectCallRequest.kt new file mode 100644 index 0000000000..fe6fd26217 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RejectCallRequest.kt @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param reason Reason for rejecting the call + */ + + +data class RejectCallRequest ( + + /* Reason for rejecting the call */ + @Json(name = "reason") + val reason: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Response.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Response.kt index 29c9e07ed8..473eef7124 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Response.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Response.kt @@ -38,12 +38,13 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param duration + * @param duration Duration of the request in human-readable format */ data class Response ( + /* Duration of the request in human-readable format */ @Json(name = "duration") val duration: kotlin.String diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettingsRequest.kt index a8cfce3f94..2763bf05ae 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettingsRequest.kt @@ -40,15 +40,19 @@ import org.openapitools.client.infrastructure.Serializer * * @param autoCancelTimeoutMs * @param incomingCallTimeoutMs + * @param missedCallTimeoutMs */ data class RingSettingsRequest ( @Json(name = "auto_cancel_timeout_ms") - val autoCancelTimeoutMs: kotlin.Int? = null, + val autoCancelTimeoutMs: kotlin.Int, @Json(name = "incoming_call_timeout_ms") - val incomingCallTimeoutMs: kotlin.Int? = null + val incomingCallTimeoutMs: kotlin.Int, + + @Json(name = "missed_call_timeout_ms") + val missedCallTimeoutMs: kotlin.Int? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettingsResponse.kt similarity index 86% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettingsResponse.kt index ac33c62937..19c4580eaf 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RingSettingsResponse.kt @@ -40,15 +40,19 @@ import org.openapitools.client.infrastructure.Serializer * * @param autoCancelTimeoutMs * @param incomingCallTimeoutMs + * @param missedCallTimeoutMs */ -data class RingSettings ( +data class RingSettingsResponse ( @Json(name = "auto_cancel_timeout_ms") val autoCancelTimeoutMs: kotlin.Int, @Json(name = "incoming_call_timeout_ms") - val incomingCallTimeoutMs: kotlin.Int + val incomingCallTimeoutMs: kotlin.Int, + + @Json(name = "missed_call_timeout_ms") + val missedCallTimeoutMs: kotlin.Int ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SFULocationResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SFULocationResponse.kt new file mode 100644 index 0000000000..d3e3bf4a93 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SFULocationResponse.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.Coordinates +import org.openapitools.client.models.Location + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param coordinates + * @param datacenter + * @param id + * @param location + */ + + +data class SFULocationResponse ( + + @Json(name = "coordinates") + val coordinates: Coordinates, + + @Json(name = "datacenter") + val datacenter: kotlin.String, + + @Json(name = "id") + val id: kotlin.String, + + @Json(name = "location") + val location: Location + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsRequest.kt index 4596a53c3c..f8320d0d4e 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsRequest.kt @@ -23,6 +23,7 @@ package org.openapitools.client.models +import org.openapitools.client.models.TargetResolution @@ -40,6 +41,7 @@ import org.openapitools.client.infrastructure.Serializer * * @param accessRequestEnabled * @param enabled + * @param targetResolution */ @@ -49,6 +51,9 @@ data class ScreensharingSettingsRequest ( val accessRequestEnabled: kotlin.Boolean? = null, @Json(name = "enabled") - val enabled: kotlin.Boolean? = null + val enabled: kotlin.Boolean? = null, + + @Json(name = "target_resolution") + val targetResolution: TargetResolution? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsResponse.kt new file mode 100644 index 0000000000..667cf92aef --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettingsResponse.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.TargetResolution + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param accessRequestEnabled + * @param enabled + * @param targetResolution + */ + + +data class ScreensharingSettingsResponse ( + + @Json(name = "access_request_enabled") + val accessRequestEnabled: kotlin.Boolean, + + @Json(name = "enabled") + val enabled: kotlin.Boolean, + + @Json(name = "target_resolution") + val targetResolution: TargetResolution? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendEventRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendCallEventRequest.kt similarity index 97% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendEventRequest.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendCallEventRequest.kt index d3d97df3ce..c0e57d62ce 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendEventRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendCallEventRequest.kt @@ -42,7 +42,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class SendEventRequest ( +data class SendCallEventRequest ( @Json(name = "custom") val custom: kotlin.collections.Map? = null diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendEventResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendCallEventResponse.kt similarity index 97% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendEventResponse.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendCallEventResponse.kt index f1c0b6dcd4..2f9a33883c 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendEventResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SendCallEventResponse.kt @@ -42,7 +42,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class SendEventResponse ( +data class SendCallEventResponse ( @Json(name = "duration") val duration: kotlin.String diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SortParamRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SortParam.kt similarity index 97% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SortParamRequest.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SortParam.kt index c6015e526d..f4d48ce38b 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SortParamRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/SortParam.kt @@ -43,7 +43,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class SortParamRequest ( +data class SortParam ( /* Direction of sorting, -1 for descending, 1 for ascending */ @Json(name = "direction") diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartBroadcastingResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartHLSBroadcastingResponse.kt similarity index 96% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartBroadcastingResponse.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartHLSBroadcastingResponse.kt index 7fbc99f916..1614e5daa2 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartBroadcastingResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartHLSBroadcastingResponse.kt @@ -43,7 +43,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class StartBroadcastingResponse ( +data class StartHLSBroadcastingResponse ( /* Duration of the request in human-readable format */ @Json(name = "duration") diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartRecordingRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartRecordingRequest.kt new file mode 100644 index 0000000000..c225b6ae1e --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartRecordingRequest.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param recordingExternalStorage + */ + + +data class StartRecordingRequest ( + + @Json(name = "recording_external_storage") + val recordingExternalStorage: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartTranscriptionRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartTranscriptionRequest.kt new file mode 100644 index 0000000000..b8fadd7b49 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StartTranscriptionRequest.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param transcriptionExternalStorage + */ + + +data class StartTranscriptionRequest ( + + @Json(name = "transcription_external_storage") + val transcriptionExternalStorage: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Stats.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Stats.kt new file mode 100644 index 0000000000..92e8802f4c --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Stats.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param averageSeconds + * @param maxSeconds + */ + + +data class Stats ( + + @Json(name = "average_seconds") + val averageSeconds: kotlin.Float, + + @Json(name = "max_seconds") + val maxSeconds: kotlin.Float + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StopHLSBroadcastingResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StopHLSBroadcastingResponse.kt new file mode 100644 index 0000000000..45ae868e67 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/StopHLSBroadcastingResponse.kt @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param duration Duration of the request in human-readable format + */ + + +data class StopHLSBroadcastingResponse ( + + /* Duration of the request in human-readable format */ + @Json(name = "duration") + val duration: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Subsession.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Subsession.kt new file mode 100644 index 0000000000..0aedbff7f2 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Subsession.kt @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.MediaPubSubHint + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param endedAt + * @param joinedAt + * @param sfuId + * @param pubSubHint + */ + + +data class Subsession ( + + @Json(name = "ended_at") + val endedAt: kotlin.Int, + + @Json(name = "joined_at") + val joinedAt: kotlin.Int, + + @Json(name = "sfu_id") + val sfuId: kotlin.String, + + @Json(name = "pub_sub_hint") + val pubSubHint: MediaPubSubHint? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TargetResolution.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TargetResolution.kt index c8730c8380..abb187f5ce 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TargetResolution.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TargetResolution.kt @@ -38,21 +38,21 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param bitrate * @param height * @param width + * @param bitrate */ data class TargetResolution ( - @Json(name = "bitrate") - val bitrate: kotlin.Int, - @Json(name = "height") val height: kotlin.Int, @Json(name = "width") - val width: kotlin.Int + val width: kotlin.Int, + + @Json(name = "bitrate") + val bitrate: kotlin.Int? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Thresholds.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Thresholds.kt new file mode 100644 index 0000000000..f35d51ae7c --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/Thresholds.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.LabelThresholds + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * Sets thresholds for AI moderation + * + * @param explicit + * @param spam + * @param toxic + */ + + +data class Thresholds ( + + @Json(name = "explicit") + val explicit: LabelThresholds? = null, + + @Json(name = "spam") + val spam: LabelThresholds? = null, + + @Json(name = "toxic") + val toxic: LabelThresholds? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailResponse.kt new file mode 100644 index 0000000000..69de597c62 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailResponse.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param imageUrl + */ + + +data class ThumbnailResponse ( + + @Json(name = "image_url") + val imageUrl: kotlin.String + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailsSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailsSettingsRequest.kt new file mode 100644 index 0000000000..92cb0c28d1 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailsSettingsRequest.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param enabled + */ + + +data class ThumbnailsSettingsRequest ( + + @Json(name = "enabled") + val enabled: kotlin.Boolean? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailsSettingsResponse.kt similarity index 88% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailsSettingsResponse.kt index 63b4262a12..551c7d2d2c 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ScreensharingSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/ThumbnailsSettingsResponse.kt @@ -38,15 +38,11 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param accessRequestEnabled * @param enabled */ -data class ScreensharingSettings ( - - @Json(name = "access_request_enabled") - val accessRequestEnabled: kotlin.Boolean, +data class ThumbnailsSettingsResponse ( @Json(name = "enabled") val enabled: kotlin.Boolean diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettingsRequest.kt index 1ce5c07df2..1bbf1451e6 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettingsRequest.kt @@ -38,18 +38,22 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param closedCaptionMode * @param mode + * @param closedCaptionMode + * @param languages */ data class TranscriptionSettingsRequest ( + @Json(name = "mode") + val mode: TranscriptionSettingsRequest.Mode, + @Json(name = "closed_caption_mode") val closedCaptionMode: kotlin.String? = null, - @Json(name = "mode") - val mode: TranscriptionSettingsRequest.Mode? = null + @Json(name = "languages") + val languages: kotlin.collections.List? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettingsResponse.kt similarity index 58% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettingsResponse.kt index a74a8df911..bb6cd009e8 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/RecordSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TranscriptionSettingsResponse.kt @@ -38,22 +38,22 @@ import org.openapitools.client.infrastructure.Serializer /** * * - * @param audioOnly + * @param closedCaptionMode + * @param languages * @param mode - * @param quality */ -data class RecordSettings ( +data class TranscriptionSettingsResponse ( - @Json(name = "audio_only") - val audioOnly: kotlin.Boolean, + @Json(name = "closed_caption_mode") + val closedCaptionMode: kotlin.String, - @Json(name = "mode") - val mode: RecordSettings.Mode, + @Json(name = "languages") + val languages: kotlin.collections.List, - @Json(name = "quality") - val quality: RecordSettings.Quality + @Json(name = "mode") + val mode: TranscriptionSettingsResponse.Mode ) @@ -97,49 +97,5 @@ data class RecordSettings ( } - /** - * - * - * Values: audioOnly,_360p,_480p,_720p,_1080p,_1440p - */ - - sealed class Quality(val value: kotlin.String) { - override fun toString(): String = value - - companion object { - fun fromString(s: kotlin.String): Quality = when (s) { - "audio-only" -> AudioOnly - "360p" -> `360p` - "480p" -> `480p` - "720p" -> `720p` - "1080p" -> `1080p` - "1440p" -> `1440p` - else -> Unknown(s) - } - } - - object AudioOnly : Quality("audio-only") - object `360p` : Quality("360p") - object `480p` : Quality("480p") - object `720p` : Quality("720p") - object `1080p` : Quality("1080p") - object `1440p` : Quality("1440p") - data class Unknown(val unknownValue: kotlin.String) : Quality(unknownValue) - - class QualityAdapter : JsonAdapter() { - @FromJson - override fun fromJson(reader: JsonReader): Quality? { - val s = reader.nextString() ?: return null - return fromString(s) - } - - @ToJson - override fun toJson(writer: JsonWriter, value: Quality?) { - writer.value(value?.value) - } - } - } - - } diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TypingIndicators.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TypingIndicators.kt new file mode 100644 index 0000000000..91430e3a0c --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/TypingIndicators.kt @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param enabled + */ + + +data class TypingIndicators ( + + @Json(name = "enabled") + val enabled: kotlin.Boolean? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserBannedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserBannedEvent.kt new file mode 100644 index 0000000000..ed9623f06b --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserBannedEvent.kt @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param channelId + * @param channelType + * @param cid + * @param createdAt + * @param createdBy + * @param shadow + * @param type + * @param expiration + * @param reason + * @param team + * @param user + */ + + +data class UserBannedEvent ( + + @Json(name = "channel_id") + val channelId: kotlin.String, + + @Json(name = "channel_type") + val channelType: kotlin.String, + + @Json(name = "cid") + val cid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "created_by") + val createdBy: UserObject, + + @Json(name = "shadow") + val shadow: kotlin.Boolean, + + @Json(name = "type") + val type: kotlin.String = "user.banned", + + @Json(name = "expiration") + val expiration: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "reason") + val reason: kotlin.String? = null, + + @Json(name = "team") + val team: kotlin.String? = null, + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeactivatedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeactivatedEvent.kt new file mode 100644 index 0000000000..482851845f --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeactivatedEvent.kt @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt + * @param createdBy + * @param type + * @param user + */ + + +data class UserDeactivatedEvent ( + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "created_by") + val createdBy: UserObject, + + @Json(name = "type") + val type: kotlin.String = "user.deactivated", + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeletedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeletedEvent.kt new file mode 100644 index 0000000000..211d072764 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserDeletedEvent.kt @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt + * @param deleteConversationChannels + * @param hardDelete + * @param markMessagesDeleted + * @param type + * @param user + */ + + +data class UserDeletedEvent ( + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "delete_conversation_channels") + val deleteConversationChannels: kotlin.Boolean, + + @Json(name = "hard_delete") + val hardDelete: kotlin.Boolean, + + @Json(name = "mark_messages_deleted") + val markMessagesDeleted: kotlin.Boolean, + + @Json(name = "type") + val type: kotlin.String = "user.deleted", + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserInfoResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserInfoResponse.kt new file mode 100644 index 0000000000..1934352c2b --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserInfoResponse.kt @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param custom + * @param image + * @param name + * @param roles + */ + + +data class UserInfoResponse ( + + @Json(name = "custom") + val custom: kotlin.collections.Map, + + @Json(name = "image") + val image: kotlin.String, + + @Json(name = "name") + val name: kotlin.String, + + @Json(name = "roles") + val roles: kotlin.collections.List + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMute.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMute.kt new file mode 100644 index 0000000000..96411f7ad3 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMute.kt @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt Date/time of creation + * @param updatedAt Date/time of the last update + * @param expires Date/time of mute expiration + * @param target + * @param user + */ + + +data class UserMute ( + + /* Date/time of creation */ + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + /* Date/time of the last update */ + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime, + + /* Date/time of mute expiration */ + @Json(name = "expires") + val expires: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "target") + val target: UserObject? = null, + + @Json(name = "user") + val user: UserObject? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMutedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMutedEvent.kt new file mode 100644 index 0000000000..b5c542dbd8 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserMutedEvent.kt @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt + * @param type + * @param targetUser + * @param targetUsers + * @param user + */ + + +data class UserMutedEvent ( + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "type") + val type: kotlin.String = "user.muted", + + @Json(name = "target_user") + val targetUser: kotlin.String? = null, + + @Json(name = "target_users") + val targetUsers: kotlin.collections.List? = null, + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserObject.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserObject.kt new file mode 100644 index 0000000000..f25afb4b7d --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserObject.kt @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.PrivacySettings +import org.openapitools.client.models.PushNotificationSettings + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * Represents chat user + * + * @param banned Whether a user is banned or not + * @param custom + * @param id Unique user identifier + * @param online Whether a user online or not + * @param role Determines the set of user permissions + * @param banExpires Expiration date of the ban + * @param createdAt Date/time of creation + * @param deactivatedAt Date of deactivation + * @param deletedAt Date/time of deletion + * @param invisible + * @param language Preferred language of a user + * @param lastActive Date of last activity + * @param privacySettings + * @param pushNotifications + * @param revokeTokensIssuedBefore Revocation date for tokens + * @param teams List of teams user is a part of + * @param updatedAt Date/time of the last update + */ + + +data class UserObject ( + + /* Whether a user is banned or not */ + @Json(name = "banned") + val banned: kotlin.Boolean, + + @Json(name = "custom") + val custom: kotlin.collections.Map, + + /* Unique user identifier */ + @Json(name = "id") + val id: kotlin.String, + + /* Whether a user online or not */ + @Json(name = "online") + val online: kotlin.Boolean, + + /* Determines the set of user permissions */ + @Json(name = "role") + val role: kotlin.String, + + /* Expiration date of the ban */ + @Json(name = "ban_expires") + val banExpires: org.threeten.bp.OffsetDateTime? = null, + + /* Date/time of creation */ + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime? = null, + + /* Date of deactivation */ + @Json(name = "deactivated_at") + val deactivatedAt: org.threeten.bp.OffsetDateTime? = null, + + /* Date/time of deletion */ + @Json(name = "deleted_at") + val deletedAt: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "invisible") + val invisible: kotlin.Boolean? = null, + + /* Preferred language of a user */ + @Json(name = "language") + val language: kotlin.String? = null, + + /* Date of last activity */ + @Json(name = "last_active") + val lastActive: org.threeten.bp.OffsetDateTime? = null, + + @Json(name = "privacy_settings") + val privacySettings: PrivacySettings? = null, + + @Json(name = "push_notifications") + val pushNotifications: PushNotificationSettings? = null, + + /* Revocation date for tokens */ + @Json(name = "revoke_tokens_issued_before") + val revokeTokensIssuedBefore: org.threeten.bp.OffsetDateTime? = null, + + /* List of teams user is a part of */ + @Json(name = "teams") + val teams: kotlin.collections.List? = null, + + /* Date/time of the last update */ + @Json(name = "updated_at") + val updatedAt: org.threeten.bp.OffsetDateTime? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserPresenceChangedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserPresenceChangedEvent.kt new file mode 100644 index 0000000000..a2c62b4ce2 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserPresenceChangedEvent.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt + * @param type + * @param user + */ + + +data class UserPresenceChangedEvent ( + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "type") + val type: kotlin.String = "user.presence.changed", + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserReactivatedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserReactivatedEvent.kt new file mode 100644 index 0000000000..00964cfcab --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserReactivatedEvent.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt + * @param type + * @param user + */ + + +data class UserReactivatedEvent ( + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "type") + val type: kotlin.String = "user.reactivated", + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserRequest.kt index e8453ba35d..1a77843d7b 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserRequest.kt @@ -23,6 +23,8 @@ package org.openapitools.client.models +import org.openapitools.client.models.PrivacySettings +import org.openapitools.client.models.PushNotificationSettingsInput @@ -41,7 +43,11 @@ import org.openapitools.client.infrastructure.Serializer * @param id User ID * @param custom * @param image + * @param invisible + * @param language * @param name Optional name of user + * @param privacySettings + * @param pushNotifications */ @@ -57,8 +63,20 @@ data class UserRequest ( @Json(name = "image") val image: kotlin.String? = null, + @Json(name = "invisible") + val invisible: kotlin.Boolean? = null, + + @Json(name = "language") + val language: kotlin.String? = null, + /* Optional name of user */ @Json(name = "name") - val name: kotlin.String? = null + val name: kotlin.String? = null, + + @Json(name = "privacy_settings") + val privacySettings: PrivacySettings? = null, + + @Json(name = "push_notifications") + val pushNotifications: PushNotificationSettingsInput? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserResponse.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserResponse.kt index dff2d00b1d..315887a767 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserResponse.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserResponse.kt @@ -38,20 +38,29 @@ import org.openapitools.client.infrastructure.Serializer /** * * + * @param banned * @param createdAt Date/time of creation * @param custom * @param id + * @param language + * @param online * @param role * @param teams * @param updatedAt Date/time of the last update + * @param deactivatedAt * @param deletedAt Date/time of deletion * @param image + * @param lastActive * @param name + * @param revokeTokensIssuedBefore */ data class UserResponse ( + @Json(name = "banned") + val banned: kotlin.Boolean, + /* Date/time of creation */ @Json(name = "created_at") val createdAt: org.threeten.bp.OffsetDateTime, @@ -62,6 +71,12 @@ data class UserResponse ( @Json(name = "id") val id: kotlin.String, + @Json(name = "language") + val language: kotlin.String, + + @Json(name = "online") + val online: kotlin.Boolean, + @Json(name = "role") val role: kotlin.String, @@ -72,6 +87,9 @@ data class UserResponse ( @Json(name = "updated_at") val updatedAt: org.threeten.bp.OffsetDateTime, + @Json(name = "deactivated_at") + val deactivatedAt: org.threeten.bp.OffsetDateTime? = null, + /* Date/time of deletion */ @Json(name = "deleted_at") val deletedAt: org.threeten.bp.OffsetDateTime? = null, @@ -79,7 +97,13 @@ data class UserResponse ( @Json(name = "image") val image: kotlin.String? = null, + @Json(name = "last_active") + val lastActive: org.threeten.bp.OffsetDateTime? = null, + @Json(name = "name") - val name: kotlin.String? = null + val name: kotlin.String? = null, + + @Json(name = "revoke_tokens_issued_before") + val revokeTokensIssuedBefore: org.threeten.bp.OffsetDateTime? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserSessionStats.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserSessionStats.kt new file mode 100644 index 0000000000..e633a0d313 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserSessionStats.kt @@ -0,0 +1,254 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.CallTimeline +import org.openapitools.client.models.GeolocationResult +import org.openapitools.client.models.MOSStats +import org.openapitools.client.models.MediaPubSubHint +import org.openapitools.client.models.PublishedTrackInfo +import org.openapitools.client.models.Stats +import org.openapitools.client.models.Subsession +import org.openapitools.client.models.VideoQuality + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param freezeDurationSeconds + * @param maxFreezeFraction + * @param maxFreezesDurationSeconds + * @param packetLossFraction + * @param publisherPacketLossFraction + * @param publishingDurationSeconds + * @param qualityScore + * @param receivingDurationSeconds + * @param sessionId + * @param totalPixelsIn + * @param totalPixelsOut + * @param browser + * @param browserVersion + * @param currentIp + * @param currentSfu + * @param deviceModel + * @param deviceVersion + * @param distanceToSfuKilometers + * @param geolocation + * @param jitter + * @param latency + * @param maxFirPerSecond + * @param maxFreezesPerSecond + * @param maxNackPerSecond + * @param maxPliPerSecond + * @param maxPublishingVideoQuality + * @param maxReceivingVideoQuality + * @param os + * @param osVersion + * @param pubSubHints + * @param publishedTracks + * @param publisherAudioMos + * @param publisherJitter + * @param publisherLatency + * @param publisherNoiseCancellationSeconds + * @param publisherQualityLimitationFraction + * @param publisherVideoQualityLimitationDurationSeconds + * @param publishingAudioCodec + * @param publishingVideoCodec + * @param receivingAudioCodec + * @param receivingVideoCodec + * @param sdk + * @param sdkVersion + * @param subscriberAudioMos + * @param subscriberJitter + * @param subscriberLatency + * @param subscriberVideoQualityThrottledDurationSeconds + * @param subsessions + * @param timeline + * @param webrtcVersion + */ + + +data class UserSessionStats ( + + @Json(name = "freeze_duration_seconds") + val freezeDurationSeconds: kotlin.Int, + + @Json(name = "max_freeze_fraction") + val maxFreezeFraction: kotlin.Float, + + @Json(name = "max_freezes_duration_seconds") + val maxFreezesDurationSeconds: kotlin.Int, + + @Json(name = "packet_loss_fraction") + val packetLossFraction: kotlin.Float, + + @Json(name = "publisher_packet_loss_fraction") + val publisherPacketLossFraction: kotlin.Float, + + @Json(name = "publishing_duration_seconds") + val publishingDurationSeconds: kotlin.Int, + + @Json(name = "quality_score") + val qualityScore: kotlin.Float, + + @Json(name = "receiving_duration_seconds") + val receivingDurationSeconds: kotlin.Int, + + @Json(name = "session_id") + val sessionId: kotlin.String, + + @Json(name = "total_pixels_in") + val totalPixelsIn: kotlin.Int, + + @Json(name = "total_pixels_out") + val totalPixelsOut: kotlin.Int, + + @Json(name = "browser") + val browser: kotlin.String? = null, + + @Json(name = "browser_version") + val browserVersion: kotlin.String? = null, + + @Json(name = "current_ip") + val currentIp: kotlin.String? = null, + + @Json(name = "current_sfu") + val currentSfu: kotlin.String? = null, + + @Json(name = "device_model") + val deviceModel: kotlin.String? = null, + + @Json(name = "device_version") + val deviceVersion: kotlin.String? = null, + + @Json(name = "distance_to_sfu_kilometers") + val distanceToSfuKilometers: kotlin.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: kotlin.Float? = null, + + @Json(name = "max_freezes_per_second") + val maxFreezesPerSecond: kotlin.Float? = null, + + @Json(name = "max_nack_per_second") + val maxNackPerSecond: kotlin.Float? = null, + + @Json(name = "max_pli_per_second") + val maxPliPerSecond: kotlin.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: kotlin.String? = null, + + @Json(name = "os_version") + val osVersion: kotlin.String? = null, + + @Json(name = "pub_sub_hints") + val pubSubHints: MediaPubSubHint? = null, + + @Json(name = "published_tracks") + val publishedTracks: kotlin.collections.List? = 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: kotlin.Float? = null, + + @Json(name = "publisher_quality_limitation_fraction") + val publisherQualityLimitationFraction: kotlin.Float? = null, + + @Json(name = "publisher_video_quality_limitation_duration_seconds") + val publisherVideoQualityLimitationDurationSeconds: kotlin.collections.Map? = null, + + @Json(name = "publishing_audio_codec") + val publishingAudioCodec: kotlin.String? = null, + + @Json(name = "publishing_video_codec") + val publishingVideoCodec: kotlin.String? = null, + + @Json(name = "receiving_audio_codec") + val receivingAudioCodec: kotlin.String? = null, + + @Json(name = "receiving_video_codec") + val receivingVideoCodec: kotlin.String? = null, + + @Json(name = "sdk") + val sdk: kotlin.String? = null, + + @Json(name = "sdk_version") + val sdkVersion: kotlin.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: kotlin.Float? = null, + + @Json(name = "subsessions") + val subsessions: kotlin.collections.List? = null, + + @Json(name = "timeline") + val timeline: CallTimeline? = null, + + @Json(name = "webrtc_version") + val webrtcVersion: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserStats.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserStats.kt new file mode 100644 index 0000000000..2fb9df5d97 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserStats.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserInfoResponse +import org.openapitools.client.models.UserSessionStats + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param info + * @param minEventTs + * @param sessionStats + * @param rating + */ + + +data class UserStats ( + + @Json(name = "info") + val info: UserInfoResponse, + + @Json(name = "min_event_ts") + val minEventTs: kotlin.Int, + + @Json(name = "session_stats") + val sessionStats: kotlin.collections.List, + + @Json(name = "rating") + val rating: kotlin.Int? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUnbannedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUnbannedEvent.kt new file mode 100644 index 0000000000..08a2916f68 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUnbannedEvent.kt @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param channelId + * @param channelType + * @param cid + * @param createdAt + * @param shadow + * @param type + * @param team + * @param user + */ + + +data class UserUnbannedEvent ( + + @Json(name = "channel_id") + val channelId: kotlin.String, + + @Json(name = "channel_type") + val channelType: kotlin.String, + + @Json(name = "cid") + val cid: kotlin.String, + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "shadow") + val shadow: kotlin.Boolean, + + @Json(name = "type") + val type: kotlin.String = "user.unbanned", + + @Json(name = "team") + val team: kotlin.String? = null, + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUpdatedEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUpdatedEvent.kt new file mode 100644 index 0000000000..458612fea1 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/UserUpdatedEvent.kt @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.UserObject + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param createdAt + * @param type + * @param user + */ + + +data class UserUpdatedEvent ( + + @Json(name = "created_at") + val createdAt: org.threeten.bp.OffsetDateTime, + + @Json(name = "type") + val type: kotlin.String = "user.updated", + + @Json(name = "user") + val user: UserObject? = null + +) : VideoEvent(), WSClientEvent { + + override fun getEventType(): String { + return type + } +} diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoEvent.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoEvent.kt index 2bd1da289c..b5d40b00ba 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoEvent.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoEvent.kt @@ -26,8 +26,6 @@ package org.openapitools.client.models import org.openapitools.client.models.APIError import org.openapitools.client.models.BlockedUserEvent import org.openapitools.client.models.CallAcceptedEvent -import org.openapitools.client.models.CallBroadcastingStartedEvent -import org.openapitools.client.models.CallBroadcastingStoppedEvent import org.openapitools.client.models.CallCreatedEvent import org.openapitools.client.models.CallEndedEvent import org.openapitools.client.models.CallLiveStartedEvent @@ -51,7 +49,7 @@ import org.openapitools.client.models.CallSessionParticipantJoinedEvent import org.openapitools.client.models.CallSessionParticipantLeftEvent import org.openapitools.client.models.CallSessionStartedEvent import org.openapitools.client.models.CallUpdatedEvent -import org.openapitools.client.models.CallUserMuted +import org.openapitools.client.models.CallUserMutedEvent import org.openapitools.client.models.ConnectedEvent import org.openapitools.client.models.ConnectionErrorEvent import org.openapitools.client.models.CustomVideoEvent @@ -119,15 +117,19 @@ class VideoEventAdapter : JsonAdapter() { return when (type) { "call.accepted" -> CallAcceptedEvent::class.java "call.blocked_user" -> BlockedUserEvent::class.java - "call.broadcasting_started" -> CallBroadcastingStartedEvent::class.java - "call.broadcasting_stopped" -> CallBroadcastingStoppedEvent::class.java + "call.closed_caption" -> ClosedCaptionEvent::class.java "call.created" -> CallCreatedEvent::class.java + "call.deleted" -> CallDeletedEvent::class.java "call.ended" -> CallEndedEvent::class.java + "call.hls_broadcasting_failed" -> CallHLSBroadcastingFailedEvent::class.java + "call.hls_broadcasting_started" -> CallHLSBroadcastingStartedEvent::class.java + "call.hls_broadcasting_stopped" -> CallHLSBroadcastingStoppedEvent::class.java "call.live_started" -> CallLiveStartedEvent::class.java "call.member_added" -> CallMemberAddedEvent::class.java "call.member_removed" -> CallMemberRemovedEvent::class.java "call.member_updated" -> CallMemberUpdatedEvent::class.java "call.member_updated_permission" -> CallMemberUpdatedPermissionEvent::class.java + "call.missed" -> CallMissedEvent::class.java "call.notification" -> CallNotificationEvent::class.java "call.permission_request" -> PermissionRequestEvent::class.java "call.permissions_updated" -> UpdatedCallPermissionsEvent::class.java @@ -142,13 +144,25 @@ class VideoEventAdapter : JsonAdapter() { "call.session_participant_joined" -> CallSessionParticipantJoinedEvent::class.java "call.session_participant_left" -> CallSessionParticipantLeftEvent::class.java "call.session_started" -> CallSessionStartedEvent::class.java + "call.transcription_failed" -> CallTranscriptionFailedEvent::class.java + "call.transcription_ready" -> CallTranscriptionReadyEvent::class.java + "call.transcription_started" -> CallTranscriptionStartedEvent::class.java + "call.transcription_stopped" -> CallTranscriptionStoppedEvent::class.java "call.unblocked_user" -> UnblockedUserEvent::class.java "call.updated" -> CallUpdatedEvent::class.java - "call.user_muted" -> CallUserMuted::class.java + "call.user_muted" -> CallUserMutedEvent::class.java "connection.error" -> ConnectionErrorEvent::class.java "connection.ok" -> ConnectedEvent::class.java "custom" -> CustomVideoEvent::class.java "health.check" -> HealthCheckEvent::class.java + "user.banned" -> UserBannedEvent::class.java + "user.deactivated" -> UserDeactivatedEvent::class.java + "user.deleted" -> UserDeletedEvent::class.java + "user.muted" -> UserMutedEvent::class.java + "user.presence.changed" -> UserPresenceChangedEvent::class.java + "user.reactivated" -> UserReactivatedEvent::class.java + "user.unbanned" -> UserUnbannedEvent::class.java + "user.updated" -> UserUpdatedEvent::class.java else -> throw IllegalArgumentException("Unknown type: $type") } } diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoQuality.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoQuality.kt new file mode 100644 index 0000000000..548d3c4ec0 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoQuality.kt @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.VideoResolution + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param resolution + * @param usageType + */ + + +data class VideoQuality ( + + @Json(name = "resolution") + val resolution: VideoResolution? = null, + + @Json(name = "usage_type") + val usageType: kotlin.String? = null + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoResolution.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoResolution.kt new file mode 100644 index 0000000000..c10ec33169 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoResolution.kt @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param height + * @param width + */ + + +data class VideoResolution ( + + @Json(name = "height") + val height: kotlin.Int, + + @Json(name = "width") + val width: kotlin.Int + +) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettingsRequest.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettingsRequest.kt index c8c891fe8a..017f324b54 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettingsRequest.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettingsRequest.kt @@ -23,7 +23,7 @@ package org.openapitools.client.models -import org.openapitools.client.models.TargetResolutionRequest +import org.openapitools.client.models.TargetResolution @@ -62,7 +62,7 @@ data class VideoSettingsRequest ( val enabled: kotlin.Boolean? = null, @Json(name = "target_resolution") - val targetResolution: TargetResolutionRequest? = null + val targetResolution: TargetResolution? = null ) diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettings.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettingsResponse.kt similarity index 96% rename from stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettings.kt rename to stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettingsResponse.kt index cca77f347a..9c7a81768f 100644 --- a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettings.kt +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/VideoSettingsResponse.kt @@ -47,7 +47,7 @@ import org.openapitools.client.infrastructure.Serializer */ -data class VideoSettings ( +data class VideoSettingsResponse ( @Json(name = "access_request_enabled") val accessRequestEnabled: kotlin.Boolean, @@ -56,7 +56,7 @@ data class VideoSettings ( val cameraDefaultOn: kotlin.Boolean, @Json(name = "camera_facing") - val cameraFacing: VideoSettings.CameraFacing, + val cameraFacing: VideoSettingsResponse.CameraFacing, @Json(name = "enabled") val enabled: kotlin.Boolean, diff --git a/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/WSAuthMessage.kt b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/WSAuthMessage.kt new file mode 100644 index 0000000000..8b5bcdc1a5 --- /dev/null +++ b/stream-video-android-core/src/main/kotlin/org/openapitools/client/models/WSAuthMessage.kt @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2014-2024 Stream.io Inc. All rights reserved. + * + * Licensed under the Stream License; + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://github.com/GetStream/stream-video-android/blob/main/LICENSE + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@file:Suppress( + "ArrayInDataClass", + "EnumEntryName", + "RemoveRedundantQualifierName", + "UnusedImport" +) + +package org.openapitools.client.models + +import org.openapitools.client.models.ConnectUserDetailsRequest + + + + +import com.squareup.moshi.FromJson +import com.squareup.moshi.Json +import com.squareup.moshi.JsonAdapter +import com.squareup.moshi.JsonReader +import com.squareup.moshi.JsonWriter +import com.squareup.moshi.ToJson +import org.openapitools.client.infrastructure.Serializer + +/** + * + * + * @param token + * @param userDetails + * @param products + */ + + +data class WSAuthMessage ( + + @Json(name = "token") + val token: kotlin.String, + + @Json(name = "user_details") + val userDetails: ConnectUserDetailsRequest, + + @Json(name = "products") + val products: kotlin.collections.List? = null + +) diff --git a/stream-video-android-core/src/main/proto/video/sfu/event/events.pb.go b/stream-video-android-core/src/main/proto/video/sfu/event/events.pb.go index 72eb95ac09..1f5182959e 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/event/events.pb.go +++ b/stream-video-android-core/src/main/proto/video/sfu/event/events.pb.go @@ -71,7 +71,7 @@ func (x VideoLayerSetting_Priority) Number() protoreflect.EnumNumber { // Deprecated: Use VideoLayerSetting_Priority.Descriptor instead. func (VideoLayerSetting_Priority) EnumDescriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{25, 0} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{26, 0} } // SFUEvent is a message that is sent from the SFU to the client. @@ -100,6 +100,8 @@ type SfuEvent struct { // *SfuEvent_GoAway // *SfuEvent_IceRestart // *SfuEvent_PinsUpdated + // *SfuEvent_CallEnded + // *SfuEvent_ParticipantUpdated EventPayload isSfuEvent_EventPayload `protobuf_oneof:"event_payload"` } @@ -268,6 +270,20 @@ func (x *SfuEvent) GetPinsUpdated() *PinsChanged { return nil } +func (x *SfuEvent) GetCallEnded() *CallEnded { + if x, ok := x.GetEventPayload().(*SfuEvent_CallEnded); ok { + return x.CallEnded + } + return nil +} + +func (x *SfuEvent) GetParticipantUpdated() *ParticipantUpdated { + if x, ok := x.GetEventPayload().(*SfuEvent_ParticipantUpdated); ok { + return x.ParticipantUpdated + } + return nil +} + type isSfuEvent_EventPayload interface { isSfuEvent_EventPayload() } @@ -383,6 +399,17 @@ type SfuEvent_PinsUpdated struct { PinsUpdated *PinsChanged `protobuf:"bytes,22,opt,name=pins_updated,json=pinsUpdated,proto3,oneof"` } +type SfuEvent_CallEnded struct { + // CallEnded is sent by the SFU to the client to signal that the call has ended. + // The reason may specify why the call has ended. + CallEnded *CallEnded `protobuf:"bytes,23,opt,name=call_ended,json=callEnded,proto3,oneof"` +} + +type SfuEvent_ParticipantUpdated struct { + // ParticipantUpdated is sent when user data is updated + ParticipantUpdated *ParticipantUpdated `protobuf:"bytes,24,opt,name=participant_updated,json=participantUpdated,proto3,oneof"` +} + func (*SfuEvent_SubscriberOffer) isSfuEvent_EventPayload() {} func (*SfuEvent_PublisherAnswer) isSfuEvent_EventPayload() {} @@ -419,6 +446,10 @@ func (*SfuEvent_IceRestart) isSfuEvent_EventPayload() {} func (*SfuEvent_PinsUpdated) isSfuEvent_EventPayload() {} +func (*SfuEvent_CallEnded) isSfuEvent_EventPayload() {} + +func (*SfuEvent_ParticipantUpdated) isSfuEvent_EventPayload() {} + type PinsChanged struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -474,6 +505,8 @@ type Error struct { unknownFields protoimpl.UnknownFields Error *models.Error `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` + // returns the reconnect strategy to be used by the client + ReconnectStrategy models.WebsocketReconnectStrategy `protobuf:"varint,5,opt,name=reconnect_strategy,json=reconnectStrategy,proto3,enum=stream.video.sfu.models.WebsocketReconnectStrategy" json:"reconnect_strategy,omitempty"` } func (x *Error) Reset() { @@ -515,6 +548,13 @@ func (x *Error) GetError() *models.Error { return nil } +func (x *Error) GetReconnectStrategy() models.WebsocketReconnectStrategy { + if x != nil { + return x.ReconnectStrategy + } + return models.WebsocketReconnectStrategy(0) +} + type ICETrickle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1273,6 +1313,62 @@ func (x *ParticipantLeft) GetParticipant() *models.Participant { return nil } +// ParticipantUpdated is fired when user data is updated +type ParticipantUpdated struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CallCid string `protobuf:"bytes,1,opt,name=call_cid,json=callCid,proto3" json:"call_cid,omitempty"` + Participant *models.Participant `protobuf:"bytes,2,opt,name=participant,proto3" json:"participant,omitempty"` +} + +func (x *ParticipantUpdated) Reset() { + *x = ParticipantUpdated{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_event_events_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParticipantUpdated) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParticipantUpdated) ProtoMessage() {} + +func (x *ParticipantUpdated) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_event_events_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParticipantUpdated.ProtoReflect.Descriptor instead. +func (*ParticipantUpdated) Descriptor() ([]byte, []int) { + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{15} +} + +func (x *ParticipantUpdated) GetCallCid() string { + if x != nil { + return x.CallCid + } + return "" +} + +func (x *ParticipantUpdated) GetParticipant() *models.Participant { + if x != nil { + return x.Participant + } + return nil +} + // SubscriberOffer is sent when the SFU adds tracks to a subscription type SubscriberOffer struct { state protoimpl.MessageState @@ -1286,7 +1382,7 @@ type SubscriberOffer struct { func (x *SubscriberOffer) Reset() { *x = SubscriberOffer{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[15] + mi := &file_video_sfu_event_events_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1299,7 +1395,7 @@ func (x *SubscriberOffer) String() string { func (*SubscriberOffer) ProtoMessage() {} func (x *SubscriberOffer) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[15] + mi := &file_video_sfu_event_events_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1312,7 +1408,7 @@ func (x *SubscriberOffer) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscriberOffer.ProtoReflect.Descriptor instead. func (*SubscriberOffer) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{15} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{16} } func (x *SubscriberOffer) GetIceRestart() bool { @@ -1340,7 +1436,7 @@ type PublisherAnswer struct { func (x *PublisherAnswer) Reset() { *x = PublisherAnswer{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[16] + mi := &file_video_sfu_event_events_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1353,7 +1449,7 @@ func (x *PublisherAnswer) String() string { func (*PublisherAnswer) ProtoMessage() {} func (x *PublisherAnswer) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[16] + mi := &file_video_sfu_event_events_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1366,7 +1462,7 @@ func (x *PublisherAnswer) ProtoReflect() protoreflect.Message { // Deprecated: Use PublisherAnswer.ProtoReflect.Descriptor instead. func (*PublisherAnswer) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{16} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{17} } func (x *PublisherAnswer) GetSdp() string { @@ -1389,7 +1485,7 @@ type ConnectionQualityChanged struct { func (x *ConnectionQualityChanged) Reset() { *x = ConnectionQualityChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[17] + mi := &file_video_sfu_event_events_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1402,7 +1498,7 @@ func (x *ConnectionQualityChanged) String() string { func (*ConnectionQualityChanged) ProtoMessage() {} func (x *ConnectionQualityChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[17] + mi := &file_video_sfu_event_events_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1415,7 +1511,7 @@ func (x *ConnectionQualityChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectionQualityChanged.ProtoReflect.Descriptor instead. func (*ConnectionQualityChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{17} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{18} } func (x *ConnectionQualityChanged) GetConnectionQualityUpdates() []*ConnectionQualityInfo { @@ -1438,7 +1534,7 @@ type ConnectionQualityInfo struct { func (x *ConnectionQualityInfo) Reset() { *x = ConnectionQualityInfo{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[18] + mi := &file_video_sfu_event_events_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1451,7 +1547,7 @@ func (x *ConnectionQualityInfo) String() string { func (*ConnectionQualityInfo) ProtoMessage() {} func (x *ConnectionQualityInfo) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[18] + mi := &file_video_sfu_event_events_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1464,7 +1560,7 @@ func (x *ConnectionQualityInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectionQualityInfo.ProtoReflect.Descriptor instead. func (*ConnectionQualityInfo) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{18} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{19} } func (x *ConnectionQualityInfo) GetUserId() string { @@ -1501,7 +1597,7 @@ type DominantSpeakerChanged struct { func (x *DominantSpeakerChanged) Reset() { *x = DominantSpeakerChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[19] + mi := &file_video_sfu_event_events_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1514,7 +1610,7 @@ func (x *DominantSpeakerChanged) String() string { func (*DominantSpeakerChanged) ProtoMessage() {} func (x *DominantSpeakerChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[19] + mi := &file_video_sfu_event_events_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1527,7 +1623,7 @@ func (x *DominantSpeakerChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use DominantSpeakerChanged.ProtoReflect.Descriptor instead. func (*DominantSpeakerChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{19} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{20} } func (x *DominantSpeakerChanged) GetUserId() string { @@ -1559,7 +1655,7 @@ type AudioLevel struct { func (x *AudioLevel) Reset() { *x = AudioLevel{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[20] + mi := &file_video_sfu_event_events_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1572,7 +1668,7 @@ func (x *AudioLevel) String() string { func (*AudioLevel) ProtoMessage() {} func (x *AudioLevel) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[20] + mi := &file_video_sfu_event_events_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1585,7 +1681,7 @@ func (x *AudioLevel) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioLevel.ProtoReflect.Descriptor instead. func (*AudioLevel) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{20} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{21} } func (x *AudioLevel) GetUserId() string { @@ -1628,7 +1724,7 @@ type AudioLevelChanged struct { func (x *AudioLevelChanged) Reset() { *x = AudioLevelChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[21] + mi := &file_video_sfu_event_events_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1641,7 +1737,7 @@ func (x *AudioLevelChanged) String() string { func (*AudioLevelChanged) ProtoMessage() {} func (x *AudioLevelChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[21] + mi := &file_video_sfu_event_events_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1654,7 +1750,7 @@ func (x *AudioLevelChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioLevelChanged.ProtoReflect.Descriptor instead. func (*AudioLevelChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{21} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{22} } func (x *AudioLevelChanged) GetAudioLevels() []*AudioLevel { @@ -1675,7 +1771,7 @@ type AudioMediaRequest struct { func (x *AudioMediaRequest) Reset() { *x = AudioMediaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[22] + mi := &file_video_sfu_event_events_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1688,7 +1784,7 @@ func (x *AudioMediaRequest) String() string { func (*AudioMediaRequest) ProtoMessage() {} func (x *AudioMediaRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[22] + mi := &file_video_sfu_event_events_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1701,7 +1797,7 @@ func (x *AudioMediaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioMediaRequest.ProtoReflect.Descriptor instead. func (*AudioMediaRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{22} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{23} } func (x *AudioMediaRequest) GetChannelCount() int32 { @@ -1723,7 +1819,7 @@ type AudioSender struct { func (x *AudioSender) Reset() { *x = AudioSender{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[23] + mi := &file_video_sfu_event_events_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1736,7 +1832,7 @@ func (x *AudioSender) String() string { func (*AudioSender) ProtoMessage() {} func (x *AudioSender) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[23] + mi := &file_video_sfu_event_events_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1749,7 +1845,7 @@ func (x *AudioSender) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSender.ProtoReflect.Descriptor instead. func (*AudioSender) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{23} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{24} } func (x *AudioSender) GetMediaRequest() *AudioMediaRequest { @@ -1779,7 +1875,7 @@ type VideoMediaRequest struct { func (x *VideoMediaRequest) Reset() { *x = VideoMediaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[24] + mi := &file_video_sfu_event_events_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1792,7 +1888,7 @@ func (x *VideoMediaRequest) String() string { func (*VideoMediaRequest) ProtoMessage() {} func (x *VideoMediaRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[24] + mi := &file_video_sfu_event_events_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1805,7 +1901,7 @@ func (x *VideoMediaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoMediaRequest.ProtoReflect.Descriptor instead. func (*VideoMediaRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{24} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{25} } func (x *VideoMediaRequest) GetIdealHeight() int32 { @@ -1849,7 +1945,7 @@ type VideoLayerSetting struct { func (x *VideoLayerSetting) Reset() { *x = VideoLayerSetting{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[25] + mi := &file_video_sfu_event_events_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1862,7 +1958,7 @@ func (x *VideoLayerSetting) String() string { func (*VideoLayerSetting) ProtoMessage() {} func (x *VideoLayerSetting) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[25] + mi := &file_video_sfu_event_events_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1875,7 +1971,7 @@ func (x *VideoLayerSetting) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoLayerSetting.ProtoReflect.Descriptor instead. func (*VideoLayerSetting) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{25} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{26} } func (x *VideoLayerSetting) GetName() string { @@ -1940,7 +2036,7 @@ type VideoSender struct { func (x *VideoSender) Reset() { *x = VideoSender{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[26] + mi := &file_video_sfu_event_events_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1953,7 +2049,7 @@ func (x *VideoSender) String() string { func (*VideoSender) ProtoMessage() {} func (x *VideoSender) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[26] + mi := &file_video_sfu_event_events_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1966,7 +2062,7 @@ func (x *VideoSender) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoSender.ProtoReflect.Descriptor instead. func (*VideoSender) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{26} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{27} } func (x *VideoSender) GetMediaRequest() *VideoMediaRequest { @@ -2003,7 +2099,7 @@ type ChangePublishQuality struct { func (x *ChangePublishQuality) Reset() { *x = ChangePublishQuality{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[27] + mi := &file_video_sfu_event_events_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2016,7 +2112,7 @@ func (x *ChangePublishQuality) String() string { func (*ChangePublishQuality) ProtoMessage() {} func (x *ChangePublishQuality) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[27] + mi := &file_video_sfu_event_events_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2029,7 +2125,7 @@ func (x *ChangePublishQuality) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangePublishQuality.ProtoReflect.Descriptor instead. func (*ChangePublishQuality) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{27} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{28} } func (x *ChangePublishQuality) GetAudioSenders() []*AudioSender { @@ -2074,7 +2170,7 @@ type CallGrantsUpdated struct { func (x *CallGrantsUpdated) Reset() { *x = CallGrantsUpdated{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[28] + mi := &file_video_sfu_event_events_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2087,7 +2183,7 @@ func (x *CallGrantsUpdated) String() string { func (*CallGrantsUpdated) ProtoMessage() {} func (x *CallGrantsUpdated) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[28] + mi := &file_video_sfu_event_events_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2100,7 +2196,7 @@ func (x *CallGrantsUpdated) ProtoReflect() protoreflect.Message { // Deprecated: Use CallGrantsUpdated.ProtoReflect.Descriptor instead. func (*CallGrantsUpdated) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{28} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{29} } func (x *CallGrantsUpdated) GetCurrentGrants() *models.CallGrants { @@ -2130,7 +2226,7 @@ type GoAway struct { func (x *GoAway) Reset() { *x = GoAway{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_event_events_proto_msgTypes[29] + mi := &file_video_sfu_event_events_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2143,7 +2239,7 @@ func (x *GoAway) String() string { func (*GoAway) ProtoMessage() {} func (x *GoAway) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_event_events_proto_msgTypes[29] + mi := &file_video_sfu_event_events_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2156,7 +2252,7 @@ func (x *GoAway) ProtoReflect() protoreflect.Message { // Deprecated: Use GoAway.ProtoReflect.Descriptor instead. func (*GoAway) Descriptor() ([]byte, []int) { - return file_video_sfu_event_events_proto_rawDescGZIP(), []int{29} + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{30} } func (x *GoAway) GetReason() models.GoAwayReason { @@ -2166,6 +2262,55 @@ func (x *GoAway) GetReason() models.GoAwayReason { return models.GoAwayReason(0) } +// CallEnded is sent by the SFU to the client to signal that the call has ended. +// The reason may specify why the call has ended. +type CallEnded struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Reason models.CallEndedReason `protobuf:"varint,1,opt,name=reason,proto3,enum=stream.video.sfu.models.CallEndedReason" json:"reason,omitempty"` +} + +func (x *CallEnded) Reset() { + *x = CallEnded{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_event_events_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CallEnded) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CallEnded) ProtoMessage() {} + +func (x *CallEnded) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_event_events_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CallEnded.ProtoReflect.Descriptor instead. +func (*CallEnded) Descriptor() ([]byte, []int) { + return file_video_sfu_event_events_proto_rawDescGZIP(), []int{31} +} + +func (x *CallEnded) GetReason() models.CallEndedReason { + if x != nil { + return x.Reason + } + return models.CallEndedReason(0) +} + var File_video_sfu_event_events_proto protoreflect.FileDescriptor var file_video_sfu_event_events_proto_rawDesc = []byte{ @@ -2176,7 +2321,7 @@ var file_video_sfu_event_events_proto_rawDesc = []byte{ 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x0c, 0x0a, 0x08, 0x53, 0x66, 0x75, + 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc1, 0x0d, 0x0a, 0x08, 0x53, 0x66, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x54, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, @@ -2273,262 +2418,291 @@ var file_video_sfu_event_events_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x50, 0x69, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x69, 0x6e, - 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x3f, 0x0a, 0x0b, 0x50, 0x69, 0x6e, - 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x48, + 0x00, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x5d, 0x0a, 0x13, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x12, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x3f, 0x0a, 0x0b, + 0x50, 0x69, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x04, 0x70, + 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x69, 0x6e, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x73, 0x22, 0xa1, 0x01, + 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, - 0x2e, 0x50, 0x69, 0x6e, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x73, 0x22, 0x3d, 0x0a, 0x05, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x71, 0x0a, 0x0a, 0x49, 0x43, 0x45, - 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, - 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x65, 0x5f, 0x63, - 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x69, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x22, 0x4c, 0x0a, 0x0a, - 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, - 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0a, 0x53, - 0x66, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x6a, 0x6f, 0x69, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x14, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, - 0x65, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, - 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x13, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, - 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc8, 0x01, 0x0a, 0x0e, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x17, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, - 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, - 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x63, 0x6b, - 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, - 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x63, - 0x61, 0x75, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, - 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x62, 0x0a, + 0x12, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x11, + 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x22, 0x71, 0x0a, 0x0a, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x12, + 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x63, 0x65, 0x43, 0x61, 0x6e, 0x64, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x22, 0x4c, 0x0a, 0x0a, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0xa0, 0x02, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, - 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, - 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x64, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x72, 0x53, 0x64, 0x70, 0x12, 0x4d, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, + 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0a, 0x53, 0x66, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x48, 0x0a, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, + 0x6a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x14, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x14, + 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x11, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xc8, 0x01, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x50, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, - 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6d, 0x69, 0x67, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x61, - 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x09, - 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x72, 0x6f, - 0x6d, 0x5f, 0x73, 0x66, 0x75, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x66, 0x75, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x6e, 0x6e, - 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, - 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x57, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x73, 0x0a, 0x0c, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x76, 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, - 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, - 0x61, 0x6c, 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x74, - 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4c, 0x65, 0x66, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0b, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x63, 0x65, 0x5f, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x22, 0x23, 0x0a, 0x0f, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x22, - 0x87, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, - 0x61, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x6b, 0x0a, 0x1a, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, - 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x18, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, - 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x15, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x8f, + 0x02, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x12, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, - 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, - 0x69, 0x74, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, - 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x50, 0x0a, 0x16, 0x44, 0x6f, 0x6d, 0x69, 0x6e, 0x61, - 0x6e, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, - 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x0a, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x70, 0x65, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x5a, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0c, 0x61, 0x75, - 0x64, 0x69, 0x6f, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, - 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x73, 0x22, 0x38, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x0b, - 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x63, - 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, - 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, - 0x63, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x61, 0x6c, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, - 0x64, 0x65, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x64, - 0x65, 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x69, - 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x46, 0x72, 0x61, 0x6d, - 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x62, - 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x61, - 0x78, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, - 0x6e, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x73, 0x63, 0x61, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x42, - 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, - 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, - 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0x67, 0x0a, 0x08, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x49, 0x4f, - 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x49, 0x4f, 0x52, - 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, 0x49, - 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x59, 0x5f, - 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x22, 0xd6, 0x01, 0x0a, 0x0b, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, + 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, + 0x63, 0x6b, 0x55, 0x6e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x22, 0xa0, 0x02, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x72, 0x5f, 0x73, 0x64, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x53, 0x64, 0x70, 0x12, 0x4d, 0x0a, 0x0e, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, - 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x06, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0xaa, - 0x01, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0d, 0x61, 0x75, 0x64, 0x69, 0x6f, - 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x3f, 0x0a, 0x09, 0x6d, + 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, - 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, 0x43, - 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x09, 0x6d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, + 0x66, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x22, 0xd3, 0x01, 0x0a, 0x09, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1e, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x73, 0x66, 0x75, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x53, 0x66, 0x75, 0x49, + 0x64, 0x12, 0x4d, 0x0a, 0x10, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x74, + 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x64, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, + 0x12, 0x57, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x73, 0x0a, 0x0c, 0x4a, 0x6f, 0x69, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x63, 0x61, 0x6c, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x09, 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x76, + 0x0a, 0x11, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, + 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x74, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, + 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, + 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x12, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x43, 0x69, 0x64, 0x12, 0x46, 0x0a, + 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x44, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x63, 0x65, 0x5f, + 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x22, 0x23, 0x0a, 0x0f, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, + 0x22, 0x87, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, + 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x6b, 0x0a, + 0x1a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, + 0x69, 0x74, 0x79, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x15, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x12, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x0d, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x06, 0x47, 0x6f, 0x41, 0x77, 0x61, 0x79, - 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, - 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x47, 0x6f, 0x41, 0x77, 0x61, - 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, + 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x61, + 0x6c, 0x69, 0x74, 0x79, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x22, 0x50, 0x0a, 0x16, 0x44, 0x6f, 0x6d, 0x69, 0x6e, + 0x61, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x0a, 0x41, 0x75, 0x64, + 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x73, 0x70, 0x65, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x70, + 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x22, 0x5a, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x0c, 0x61, + 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x73, 0x22, 0x38, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, + 0x0b, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0d, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, + 0x69, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, + 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, + 0x65, 0x63, 0x22, 0x81, 0x01, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x64, 0x65, 0x61, + 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x69, 0x64, 0x65, 0x61, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, + 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, + 0x69, 0x64, 0x65, 0x61, 0x6c, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x61, 0x6c, 0x46, 0x72, 0x61, + 0x6d, 0x65, 0x52, 0x61, 0x74, 0x65, 0x22, 0xad, 0x03, 0x0a, 0x11, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, + 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, + 0x61, 0x78, 0x42, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, + 0x77, 0x6e, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x77, 0x6e, + 0x42, 0x79, 0x12, 0x4e, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, + 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, + 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x6d, 0x61, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x74, 0x65, 0x22, 0x67, 0x0a, + 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x49, + 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x49, 0x4f, + 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x52, + 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, + 0x15, 0x0a, 0x11, 0x50, 0x52, 0x49, 0x4f, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x59, + 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x22, 0xd6, 0x01, 0x0a, 0x0b, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, + 0x43, 0x6f, 0x64, 0x65, 0x63, 0x52, 0x05, 0x63, 0x6f, 0x64, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x06, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, + 0xaa, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, + 0x68, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x0d, 0x61, 0x75, 0x64, 0x69, + 0x6f, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, + 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x52, 0x0c, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x73, 0x22, 0x79, 0x0a, 0x11, + 0x43, 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x0d, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47, 0x0a, 0x06, 0x47, 0x6f, 0x41, 0x77, 0x61, + 0x79, 0x12, 0x3d, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x47, 0x6f, 0x41, 0x77, + 0x61, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x22, 0x4d, 0x0a, 0x09, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x40, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x64, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, @@ -2551,7 +2725,7 @@ func file_video_sfu_event_events_proto_rawDescGZIP() []byte { } var file_video_sfu_event_events_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_video_sfu_event_events_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_video_sfu_event_events_proto_msgTypes = make([]protoimpl.MessageInfo, 32) var file_video_sfu_event_events_proto_goTypes = []interface{}{ (VideoLayerSetting_Priority)(0), // 0: stream.video.sfu.event.VideoLayerSetting.Priority (*SfuEvent)(nil), // 1: stream.video.sfu.event.SfuEvent @@ -2569,95 +2743,104 @@ var file_video_sfu_event_events_proto_goTypes = []interface{}{ (*JoinResponse)(nil), // 13: stream.video.sfu.event.JoinResponse (*ParticipantJoined)(nil), // 14: stream.video.sfu.event.ParticipantJoined (*ParticipantLeft)(nil), // 15: stream.video.sfu.event.ParticipantLeft - (*SubscriberOffer)(nil), // 16: stream.video.sfu.event.SubscriberOffer - (*PublisherAnswer)(nil), // 17: stream.video.sfu.event.PublisherAnswer - (*ConnectionQualityChanged)(nil), // 18: stream.video.sfu.event.ConnectionQualityChanged - (*ConnectionQualityInfo)(nil), // 19: stream.video.sfu.event.ConnectionQualityInfo - (*DominantSpeakerChanged)(nil), // 20: stream.video.sfu.event.DominantSpeakerChanged - (*AudioLevel)(nil), // 21: stream.video.sfu.event.AudioLevel - (*AudioLevelChanged)(nil), // 22: stream.video.sfu.event.AudioLevelChanged - (*AudioMediaRequest)(nil), // 23: stream.video.sfu.event.AudioMediaRequest - (*AudioSender)(nil), // 24: stream.video.sfu.event.AudioSender - (*VideoMediaRequest)(nil), // 25: stream.video.sfu.event.VideoMediaRequest - (*VideoLayerSetting)(nil), // 26: stream.video.sfu.event.VideoLayerSetting - (*VideoSender)(nil), // 27: stream.video.sfu.event.VideoSender - (*ChangePublishQuality)(nil), // 28: stream.video.sfu.event.ChangePublishQuality - (*CallGrantsUpdated)(nil), // 29: stream.video.sfu.event.CallGrantsUpdated - (*GoAway)(nil), // 30: stream.video.sfu.event.GoAway - (*models.ICETrickle)(nil), // 31: stream.video.sfu.models.ICETrickle - (*models.Pin)(nil), // 32: stream.video.sfu.models.Pin - (*models.Error)(nil), // 33: stream.video.sfu.models.Error - (models.PeerType)(0), // 34: stream.video.sfu.models.PeerType - (*models.ParticipantCount)(nil), // 35: stream.video.sfu.models.ParticipantCount - (models.TrackType)(0), // 36: stream.video.sfu.models.TrackType - (*models.Participant)(nil), // 37: stream.video.sfu.models.Participant - (models.TrackUnpublishReason)(0), // 38: stream.video.sfu.models.TrackUnpublishReason - (*models.ClientDetails)(nil), // 39: stream.video.sfu.models.ClientDetails - (*models.TrackInfo)(nil), // 40: stream.video.sfu.models.TrackInfo - (*signal_rpc.TrackSubscriptionDetails)(nil), // 41: stream.video.sfu.signal.TrackSubscriptionDetails - (*models.CallState)(nil), // 42: stream.video.sfu.models.CallState - (models.ConnectionQuality)(0), // 43: stream.video.sfu.models.ConnectionQuality - (*models.Codec)(nil), // 44: stream.video.sfu.models.Codec - (*models.CallGrants)(nil), // 45: stream.video.sfu.models.CallGrants - (models.GoAwayReason)(0), // 46: stream.video.sfu.models.GoAwayReason + (*ParticipantUpdated)(nil), // 16: stream.video.sfu.event.ParticipantUpdated + (*SubscriberOffer)(nil), // 17: stream.video.sfu.event.SubscriberOffer + (*PublisherAnswer)(nil), // 18: stream.video.sfu.event.PublisherAnswer + (*ConnectionQualityChanged)(nil), // 19: stream.video.sfu.event.ConnectionQualityChanged + (*ConnectionQualityInfo)(nil), // 20: stream.video.sfu.event.ConnectionQualityInfo + (*DominantSpeakerChanged)(nil), // 21: stream.video.sfu.event.DominantSpeakerChanged + (*AudioLevel)(nil), // 22: stream.video.sfu.event.AudioLevel + (*AudioLevelChanged)(nil), // 23: stream.video.sfu.event.AudioLevelChanged + (*AudioMediaRequest)(nil), // 24: stream.video.sfu.event.AudioMediaRequest + (*AudioSender)(nil), // 25: stream.video.sfu.event.AudioSender + (*VideoMediaRequest)(nil), // 26: stream.video.sfu.event.VideoMediaRequest + (*VideoLayerSetting)(nil), // 27: stream.video.sfu.event.VideoLayerSetting + (*VideoSender)(nil), // 28: stream.video.sfu.event.VideoSender + (*ChangePublishQuality)(nil), // 29: stream.video.sfu.event.ChangePublishQuality + (*CallGrantsUpdated)(nil), // 30: stream.video.sfu.event.CallGrantsUpdated + (*GoAway)(nil), // 31: stream.video.sfu.event.GoAway + (*CallEnded)(nil), // 32: stream.video.sfu.event.CallEnded + (*models.ICETrickle)(nil), // 33: stream.video.sfu.models.ICETrickle + (*models.Pin)(nil), // 34: stream.video.sfu.models.Pin + (*models.Error)(nil), // 35: stream.video.sfu.models.Error + (models.WebsocketReconnectStrategy)(0), // 36: stream.video.sfu.models.WebsocketReconnectStrategy + (models.PeerType)(0), // 37: stream.video.sfu.models.PeerType + (*models.ParticipantCount)(nil), // 38: stream.video.sfu.models.ParticipantCount + (models.TrackType)(0), // 39: stream.video.sfu.models.TrackType + (*models.Participant)(nil), // 40: stream.video.sfu.models.Participant + (models.TrackUnpublishReason)(0), // 41: stream.video.sfu.models.TrackUnpublishReason + (*models.ClientDetails)(nil), // 42: stream.video.sfu.models.ClientDetails + (*models.TrackInfo)(nil), // 43: stream.video.sfu.models.TrackInfo + (*signal_rpc.TrackSubscriptionDetails)(nil), // 44: stream.video.sfu.signal.TrackSubscriptionDetails + (*models.CallState)(nil), // 45: stream.video.sfu.models.CallState + (models.ConnectionQuality)(0), // 46: stream.video.sfu.models.ConnectionQuality + (*models.Codec)(nil), // 47: stream.video.sfu.models.Codec + (*models.CallGrants)(nil), // 48: stream.video.sfu.models.CallGrants + (models.GoAwayReason)(0), // 49: stream.video.sfu.models.GoAwayReason + (models.CallEndedReason)(0), // 50: stream.video.sfu.models.CallEndedReason } var file_video_sfu_event_events_proto_depIdxs = []int32{ - 16, // 0: stream.video.sfu.event.SfuEvent.subscriber_offer:type_name -> stream.video.sfu.event.SubscriberOffer - 17, // 1: stream.video.sfu.event.SfuEvent.publisher_answer:type_name -> stream.video.sfu.event.PublisherAnswer - 18, // 2: stream.video.sfu.event.SfuEvent.connection_quality_changed:type_name -> stream.video.sfu.event.ConnectionQualityChanged - 22, // 3: stream.video.sfu.event.SfuEvent.audio_level_changed:type_name -> stream.video.sfu.event.AudioLevelChanged - 31, // 4: stream.video.sfu.event.SfuEvent.ice_trickle:type_name -> stream.video.sfu.models.ICETrickle - 28, // 5: stream.video.sfu.event.SfuEvent.change_publish_quality:type_name -> stream.video.sfu.event.ChangePublishQuality + 17, // 0: stream.video.sfu.event.SfuEvent.subscriber_offer:type_name -> stream.video.sfu.event.SubscriberOffer + 18, // 1: stream.video.sfu.event.SfuEvent.publisher_answer:type_name -> stream.video.sfu.event.PublisherAnswer + 19, // 2: stream.video.sfu.event.SfuEvent.connection_quality_changed:type_name -> stream.video.sfu.event.ConnectionQualityChanged + 23, // 3: stream.video.sfu.event.SfuEvent.audio_level_changed:type_name -> stream.video.sfu.event.AudioLevelChanged + 33, // 4: stream.video.sfu.event.SfuEvent.ice_trickle:type_name -> stream.video.sfu.models.ICETrickle + 29, // 5: stream.video.sfu.event.SfuEvent.change_publish_quality:type_name -> stream.video.sfu.event.ChangePublishQuality 14, // 6: stream.video.sfu.event.SfuEvent.participant_joined:type_name -> stream.video.sfu.event.ParticipantJoined 15, // 7: stream.video.sfu.event.SfuEvent.participant_left:type_name -> stream.video.sfu.event.ParticipantLeft - 20, // 8: stream.video.sfu.event.SfuEvent.dominant_speaker_changed:type_name -> stream.video.sfu.event.DominantSpeakerChanged + 21, // 8: stream.video.sfu.event.SfuEvent.dominant_speaker_changed:type_name -> stream.video.sfu.event.DominantSpeakerChanged 13, // 9: stream.video.sfu.event.SfuEvent.join_response:type_name -> stream.video.sfu.event.JoinResponse 8, // 10: stream.video.sfu.event.SfuEvent.health_check_response:type_name -> stream.video.sfu.event.HealthCheckResponse 9, // 11: stream.video.sfu.event.SfuEvent.track_published:type_name -> stream.video.sfu.event.TrackPublished 10, // 12: stream.video.sfu.event.SfuEvent.track_unpublished:type_name -> stream.video.sfu.event.TrackUnpublished 3, // 13: stream.video.sfu.event.SfuEvent.error:type_name -> stream.video.sfu.event.Error - 29, // 14: stream.video.sfu.event.SfuEvent.call_grants_updated:type_name -> stream.video.sfu.event.CallGrantsUpdated - 30, // 15: stream.video.sfu.event.SfuEvent.go_away:type_name -> stream.video.sfu.event.GoAway + 30, // 14: stream.video.sfu.event.SfuEvent.call_grants_updated:type_name -> stream.video.sfu.event.CallGrantsUpdated + 31, // 15: stream.video.sfu.event.SfuEvent.go_away:type_name -> stream.video.sfu.event.GoAway 5, // 16: stream.video.sfu.event.SfuEvent.ice_restart:type_name -> stream.video.sfu.event.ICERestart 2, // 17: stream.video.sfu.event.SfuEvent.pins_updated:type_name -> stream.video.sfu.event.PinsChanged - 32, // 18: stream.video.sfu.event.PinsChanged.pins:type_name -> stream.video.sfu.models.Pin - 33, // 19: stream.video.sfu.event.Error.error:type_name -> stream.video.sfu.models.Error - 34, // 20: stream.video.sfu.event.ICETrickle.peer_type:type_name -> stream.video.sfu.models.PeerType - 34, // 21: stream.video.sfu.event.ICERestart.peer_type:type_name -> stream.video.sfu.models.PeerType - 11, // 22: stream.video.sfu.event.SfuRequest.join_request:type_name -> stream.video.sfu.event.JoinRequest - 7, // 23: stream.video.sfu.event.SfuRequest.health_check_request:type_name -> stream.video.sfu.event.HealthCheckRequest - 35, // 24: stream.video.sfu.event.HealthCheckResponse.participant_count:type_name -> stream.video.sfu.models.ParticipantCount - 36, // 25: stream.video.sfu.event.TrackPublished.type:type_name -> stream.video.sfu.models.TrackType - 37, // 26: stream.video.sfu.event.TrackPublished.participant:type_name -> stream.video.sfu.models.Participant - 36, // 27: stream.video.sfu.event.TrackUnpublished.type:type_name -> stream.video.sfu.models.TrackType - 38, // 28: stream.video.sfu.event.TrackUnpublished.cause:type_name -> stream.video.sfu.models.TrackUnpublishReason - 37, // 29: stream.video.sfu.event.TrackUnpublished.participant:type_name -> stream.video.sfu.models.Participant - 39, // 30: stream.video.sfu.event.JoinRequest.client_details:type_name -> stream.video.sfu.models.ClientDetails - 12, // 31: stream.video.sfu.event.JoinRequest.migration:type_name -> stream.video.sfu.event.Migration - 40, // 32: stream.video.sfu.event.Migration.announced_tracks:type_name -> stream.video.sfu.models.TrackInfo - 41, // 33: stream.video.sfu.event.Migration.subscriptions:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails - 42, // 34: stream.video.sfu.event.JoinResponse.call_state:type_name -> stream.video.sfu.models.CallState - 37, // 35: stream.video.sfu.event.ParticipantJoined.participant:type_name -> stream.video.sfu.models.Participant - 37, // 36: stream.video.sfu.event.ParticipantLeft.participant:type_name -> stream.video.sfu.models.Participant - 19, // 37: stream.video.sfu.event.ConnectionQualityChanged.connection_quality_updates:type_name -> stream.video.sfu.event.ConnectionQualityInfo - 43, // 38: stream.video.sfu.event.ConnectionQualityInfo.connection_quality:type_name -> stream.video.sfu.models.ConnectionQuality - 21, // 39: stream.video.sfu.event.AudioLevelChanged.audio_levels:type_name -> stream.video.sfu.event.AudioLevel - 23, // 40: stream.video.sfu.event.AudioSender.media_request:type_name -> stream.video.sfu.event.AudioMediaRequest - 44, // 41: stream.video.sfu.event.AudioSender.codec:type_name -> stream.video.sfu.models.Codec - 0, // 42: stream.video.sfu.event.VideoLayerSetting.priority:type_name -> stream.video.sfu.event.VideoLayerSetting.Priority - 44, // 43: stream.video.sfu.event.VideoLayerSetting.codec:type_name -> stream.video.sfu.models.Codec - 25, // 44: stream.video.sfu.event.VideoSender.media_request:type_name -> stream.video.sfu.event.VideoMediaRequest - 44, // 45: stream.video.sfu.event.VideoSender.codec:type_name -> stream.video.sfu.models.Codec - 26, // 46: stream.video.sfu.event.VideoSender.layers:type_name -> stream.video.sfu.event.VideoLayerSetting - 24, // 47: stream.video.sfu.event.ChangePublishQuality.audio_senders:type_name -> stream.video.sfu.event.AudioSender - 27, // 48: stream.video.sfu.event.ChangePublishQuality.video_senders:type_name -> stream.video.sfu.event.VideoSender - 45, // 49: stream.video.sfu.event.CallGrantsUpdated.current_grants:type_name -> stream.video.sfu.models.CallGrants - 46, // 50: stream.video.sfu.event.GoAway.reason:type_name -> stream.video.sfu.models.GoAwayReason - 51, // [51:51] is the sub-list for method output_type - 51, // [51:51] is the sub-list for method input_type - 51, // [51:51] is the sub-list for extension type_name - 51, // [51:51] is the sub-list for extension extendee - 0, // [0:51] is the sub-list for field type_name + 32, // 18: stream.video.sfu.event.SfuEvent.call_ended:type_name -> stream.video.sfu.event.CallEnded + 16, // 19: stream.video.sfu.event.SfuEvent.participant_updated:type_name -> stream.video.sfu.event.ParticipantUpdated + 34, // 20: stream.video.sfu.event.PinsChanged.pins:type_name -> stream.video.sfu.models.Pin + 35, // 21: stream.video.sfu.event.Error.error:type_name -> stream.video.sfu.models.Error + 36, // 22: stream.video.sfu.event.Error.reconnect_strategy:type_name -> stream.video.sfu.models.WebsocketReconnectStrategy + 37, // 23: stream.video.sfu.event.ICETrickle.peer_type:type_name -> stream.video.sfu.models.PeerType + 37, // 24: stream.video.sfu.event.ICERestart.peer_type:type_name -> stream.video.sfu.models.PeerType + 11, // 25: stream.video.sfu.event.SfuRequest.join_request:type_name -> stream.video.sfu.event.JoinRequest + 7, // 26: stream.video.sfu.event.SfuRequest.health_check_request:type_name -> stream.video.sfu.event.HealthCheckRequest + 38, // 27: stream.video.sfu.event.HealthCheckResponse.participant_count:type_name -> stream.video.sfu.models.ParticipantCount + 39, // 28: stream.video.sfu.event.TrackPublished.type:type_name -> stream.video.sfu.models.TrackType + 40, // 29: stream.video.sfu.event.TrackPublished.participant:type_name -> stream.video.sfu.models.Participant + 39, // 30: stream.video.sfu.event.TrackUnpublished.type:type_name -> stream.video.sfu.models.TrackType + 41, // 31: stream.video.sfu.event.TrackUnpublished.cause:type_name -> stream.video.sfu.models.TrackUnpublishReason + 40, // 32: stream.video.sfu.event.TrackUnpublished.participant:type_name -> stream.video.sfu.models.Participant + 42, // 33: stream.video.sfu.event.JoinRequest.client_details:type_name -> stream.video.sfu.models.ClientDetails + 12, // 34: stream.video.sfu.event.JoinRequest.migration:type_name -> stream.video.sfu.event.Migration + 43, // 35: stream.video.sfu.event.Migration.announced_tracks:type_name -> stream.video.sfu.models.TrackInfo + 44, // 36: stream.video.sfu.event.Migration.subscriptions:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails + 45, // 37: stream.video.sfu.event.JoinResponse.call_state:type_name -> stream.video.sfu.models.CallState + 40, // 38: stream.video.sfu.event.ParticipantJoined.participant:type_name -> stream.video.sfu.models.Participant + 40, // 39: stream.video.sfu.event.ParticipantLeft.participant:type_name -> stream.video.sfu.models.Participant + 40, // 40: stream.video.sfu.event.ParticipantUpdated.participant:type_name -> stream.video.sfu.models.Participant + 20, // 41: stream.video.sfu.event.ConnectionQualityChanged.connection_quality_updates:type_name -> stream.video.sfu.event.ConnectionQualityInfo + 46, // 42: stream.video.sfu.event.ConnectionQualityInfo.connection_quality:type_name -> stream.video.sfu.models.ConnectionQuality + 22, // 43: stream.video.sfu.event.AudioLevelChanged.audio_levels:type_name -> stream.video.sfu.event.AudioLevel + 24, // 44: stream.video.sfu.event.AudioSender.media_request:type_name -> stream.video.sfu.event.AudioMediaRequest + 47, // 45: stream.video.sfu.event.AudioSender.codec:type_name -> stream.video.sfu.models.Codec + 0, // 46: stream.video.sfu.event.VideoLayerSetting.priority:type_name -> stream.video.sfu.event.VideoLayerSetting.Priority + 47, // 47: stream.video.sfu.event.VideoLayerSetting.codec:type_name -> stream.video.sfu.models.Codec + 26, // 48: stream.video.sfu.event.VideoSender.media_request:type_name -> stream.video.sfu.event.VideoMediaRequest + 47, // 49: stream.video.sfu.event.VideoSender.codec:type_name -> stream.video.sfu.models.Codec + 27, // 50: stream.video.sfu.event.VideoSender.layers:type_name -> stream.video.sfu.event.VideoLayerSetting + 25, // 51: stream.video.sfu.event.ChangePublishQuality.audio_senders:type_name -> stream.video.sfu.event.AudioSender + 28, // 52: stream.video.sfu.event.ChangePublishQuality.video_senders:type_name -> stream.video.sfu.event.VideoSender + 48, // 53: stream.video.sfu.event.CallGrantsUpdated.current_grants:type_name -> stream.video.sfu.models.CallGrants + 49, // 54: stream.video.sfu.event.GoAway.reason:type_name -> stream.video.sfu.models.GoAwayReason + 50, // 55: stream.video.sfu.event.CallEnded.reason:type_name -> stream.video.sfu.models.CallEndedReason + 56, // [56:56] is the sub-list for method output_type + 56, // [56:56] is the sub-list for method input_type + 56, // [56:56] is the sub-list for extension type_name + 56, // [56:56] is the sub-list for extension extendee + 0, // [0:56] is the sub-list for field type_name } func init() { file_video_sfu_event_events_proto_init() } @@ -2847,7 +3030,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscriberOffer); i { + switch v := v.(*ParticipantUpdated); i { case 0: return &v.state case 1: @@ -2859,7 +3042,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublisherAnswer); i { + switch v := v.(*SubscriberOffer); i { case 0: return &v.state case 1: @@ -2871,7 +3054,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConnectionQualityChanged); i { + switch v := v.(*PublisherAnswer); i { case 0: return &v.state case 1: @@ -2883,7 +3066,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConnectionQualityInfo); i { + switch v := v.(*ConnectionQualityChanged); i { case 0: return &v.state case 1: @@ -2895,7 +3078,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DominantSpeakerChanged); i { + switch v := v.(*ConnectionQualityInfo); i { case 0: return &v.state case 1: @@ -2907,7 +3090,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioLevel); i { + switch v := v.(*DominantSpeakerChanged); i { case 0: return &v.state case 1: @@ -2919,7 +3102,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioLevelChanged); i { + switch v := v.(*AudioLevel); i { case 0: return &v.state case 1: @@ -2931,7 +3114,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioMediaRequest); i { + switch v := v.(*AudioLevelChanged); i { case 0: return &v.state case 1: @@ -2943,7 +3126,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSender); i { + switch v := v.(*AudioMediaRequest); i { case 0: return &v.state case 1: @@ -2955,7 +3138,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoMediaRequest); i { + switch v := v.(*AudioSender); i { case 0: return &v.state case 1: @@ -2967,7 +3150,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoLayerSetting); i { + switch v := v.(*VideoMediaRequest); i { case 0: return &v.state case 1: @@ -2979,7 +3162,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoSender); i { + switch v := v.(*VideoLayerSetting); i { case 0: return &v.state case 1: @@ -2991,7 +3174,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePublishQuality); i { + switch v := v.(*VideoSender); i { case 0: return &v.state case 1: @@ -3003,7 +3186,7 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CallGrantsUpdated); i { + switch v := v.(*ChangePublishQuality); i { case 0: return &v.state case 1: @@ -3015,6 +3198,18 @@ func file_video_sfu_event_events_proto_init() { } } file_video_sfu_event_events_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CallGrantsUpdated); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_event_events_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GoAway); i { case 0: return &v.state @@ -3026,6 +3221,18 @@ func file_video_sfu_event_events_proto_init() { return nil } } + file_video_sfu_event_events_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CallEnded); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_video_sfu_event_events_proto_msgTypes[0].OneofWrappers = []interface{}{ (*SfuEvent_SubscriberOffer)(nil), @@ -3046,6 +3253,8 @@ func file_video_sfu_event_events_proto_init() { (*SfuEvent_GoAway)(nil), (*SfuEvent_IceRestart)(nil), (*SfuEvent_PinsUpdated)(nil), + (*SfuEvent_CallEnded)(nil), + (*SfuEvent_ParticipantUpdated)(nil), } file_video_sfu_event_events_proto_msgTypes[5].OneofWrappers = []interface{}{ (*SfuRequest_JoinRequest)(nil), @@ -3057,7 +3266,7 @@ func file_video_sfu_event_events_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_video_sfu_event_events_proto_rawDesc, NumEnums: 1, - NumMessages: 30, + NumMessages: 32, NumExtensions: 0, NumServices: 0, }, diff --git a/stream-video-android-core/src/main/proto/video/sfu/event/events.proto b/stream-video-android-core/src/main/proto/video/sfu/event/events.proto index 728983f7dc..8542b562f9 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/event/events.proto +++ b/stream-video-android-core/src/main/proto/video/sfu/event/events.proto @@ -70,6 +70,11 @@ message SfuEvent { ICERestart ice_restart = 21; // PinsChanged is sent the list of pins in the call changes. This event contains the entire list of pins. PinsChanged pins_updated = 22; + // CallEnded is sent by the SFU to the client to signal that the call has ended. + // The reason may specify why the call has ended. + CallEnded call_ended = 23; + // ParticipantUpdated is sent when user data is updated + ParticipantUpdated participant_updated = 24; } } @@ -81,6 +86,8 @@ message PinsChanged { message Error { models.Error error = 4; + // returns the reconnect strategy to be used by the client + models.WebsocketReconnectStrategy reconnect_strategy = 5; } message ICETrickle { @@ -178,6 +185,12 @@ message ParticipantLeft { models.Participant participant = 2; } +// ParticipantUpdated is fired when user data is updated +message ParticipantUpdated { + string call_cid = 1; + models.Participant participant = 2; +} + // SubscriberOffer is sent when the SFU adds tracks to a subscription message SubscriberOffer { bool ice_restart = 1; @@ -291,4 +304,10 @@ message CallGrantsUpdated { // The evict reason may specify why the user is being evicted. message GoAway { models.GoAwayReason reason = 1; +} + +// CallEnded is sent by the SFU to the client to signal that the call has ended. +// The reason may specify why the call has ended. +message CallEnded { + models.CallEndedReason reason = 1; } \ No newline at end of file diff --git a/stream-video-android-core/src/main/proto/video/sfu/event/events_vtproto.pb.go b/stream-video-android-core/src/main/proto/video/sfu/event/events_vtproto.pb.go index cd3c3263ff..387f0fd358 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/event/events_vtproto.pb.go +++ b/stream-video-android-core/src/main/proto/video/sfu/event/events_vtproto.pb.go @@ -436,6 +436,48 @@ func (m *SfuEvent_PinsUpdated) MarshalToSizedBufferVT(dAtA []byte) (int, error) } return len(dAtA) - i, nil } +func (m *SfuEvent_CallEnded) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SfuEvent_CallEnded) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.CallEnded != nil { + size, err := m.CallEnded.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + return len(dAtA) - i, nil +} +func (m *SfuEvent_ParticipantUpdated) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *SfuEvent_ParticipantUpdated) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + i := len(dAtA) + if m.ParticipantUpdated != nil { + size, err := m.ParticipantUpdated.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + return len(dAtA) - i, nil +} func (m *PinsChanged) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -523,6 +565,11 @@ func (m *Error) MarshalToSizedBufferVT(dAtA []byte) (int, error) { i -= len(m.unknownFields) copy(dAtA[i:], m.unknownFields) } + if m.ReconnectStrategy != 0 { + i = encodeVarint(dAtA, i, uint64(m.ReconnectStrategy)) + i-- + dAtA[i] = 0x28 + } if m.Error != nil { if marshalto, ok := interface{}(m.Error).(interface { MarshalToSizedBufferVT([]byte) (int, error) @@ -1328,6 +1375,68 @@ func (m *ParticipantLeft) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *ParticipantUpdated) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ParticipantUpdated) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *ParticipantUpdated) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Participant != nil { + if marshalto, ok := interface{}(m.Participant).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Participant) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0x12 + } + if len(m.CallCid) > 0 { + i -= len(m.CallCid) + copy(dAtA[i:], m.CallCid) + i = encodeVarint(dAtA, i, uint64(len(m.CallCid))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *SubscriberOffer) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -2148,6 +2257,44 @@ func (m *GoAway) MarshalToSizedBufferVT(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *CallEnded) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CallEnded) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *CallEnded) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Reason != 0 { + i = encodeVarint(dAtA, i, uint64(m.Reason)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + func encodeVarint(dAtA []byte, offset int, v uint64) int { offset -= sov(v) base := offset @@ -2396,6 +2543,30 @@ func (m *SfuEvent_PinsUpdated) SizeVT() (n int) { } return n } +func (m *SfuEvent_CallEnded) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CallEnded != nil { + l = m.CallEnded.SizeVT() + n += 2 + l + sov(uint64(l)) + } + return n +} +func (m *SfuEvent_ParticipantUpdated) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ParticipantUpdated != nil { + l = m.ParticipantUpdated.SizeVT() + n += 2 + l + sov(uint64(l)) + } + return n +} func (m *PinsChanged) SizeVT() (n int) { if m == nil { return 0 @@ -2436,6 +2607,9 @@ func (m *Error) SizeVT() (n int) { } n += 1 + l + sov(uint64(l)) } + if m.ReconnectStrategy != 0 { + n += 1 + sov(uint64(m.ReconnectStrategy)) + } if m.unknownFields != nil { n += len(m.unknownFields) } @@ -2776,6 +2950,32 @@ func (m *ParticipantLeft) SizeVT() (n int) { return n } +func (m *ParticipantUpdated) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.CallCid) + if l > 0 { + n += 1 + l + sov(uint64(l)) + } + if m.Participant != nil { + if size, ok := interface{}(m.Participant).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Participant) + } + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + func (m *SubscriberOffer) SizeVT() (n int) { if m == nil { return 0 @@ -3116,6 +3316,21 @@ func (m *GoAway) SizeVT() (n int) { return n } +func (m *CallEnded) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Reason != 0 { + n += 1 + sov(uint64(m.Reason)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + func sov(x uint64) (n int) { return (bits.Len64(x|1) + 6) / 7 } @@ -3905,6 +4120,88 @@ func (m *SfuEvent) UnmarshalVT(dAtA []byte) error { m.EventPayload = &SfuEvent_PinsUpdated{v} } iNdEx = postIndex + case 23: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CallEnded", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.EventPayload.(*SfuEvent_CallEnded); ok { + if err := oneof.CallEnded.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &CallEnded{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.EventPayload = &SfuEvent_CallEnded{v} + } + iNdEx = postIndex + case 24: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ParticipantUpdated", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if oneof, ok := m.EventPayload.(*SfuEvent_ParticipantUpdated); ok { + if err := oneof.ParticipantUpdated.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + v := &ParticipantUpdated{} + if err := v.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + m.EventPayload = &SfuEvent_ParticipantUpdated{v} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skip(dAtA[iNdEx:]) @@ -4093,6 +4390,25 @@ func (m *Error) UnmarshalVT(dAtA []byte) error { } } iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReconnectStrategy", wireType) + } + m.ReconnectStrategy = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReconnectStrategy |= models.WebsocketReconnectStrategy(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skip(dAtA[iNdEx:]) @@ -5724,6 +6040,133 @@ func (m *ParticipantLeft) UnmarshalVT(dAtA []byte) error { } return nil } +func (m *ParticipantUpdated) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ParticipantUpdated: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ParticipantUpdated: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CallCid", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CallCid = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Participant", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Participant == nil { + m.Participant = &models.Participant{} + } + if unmarshal, ok := interface{}(m.Participant).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Participant); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *SubscriberOffer) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -7480,6 +7923,76 @@ func (m *GoAway) UnmarshalVT(dAtA []byte) error { } return nil } +func (m *CallEnded) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CallEnded: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CallEnded: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + m.Reason = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Reason |= models.CallEndedReason(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skip(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/stream-video-android-core/src/main/proto/video/sfu/models/models.pb.go b/stream-video-android-core/src/main/proto/video/sfu/models/models.pb.go index aea18c77f3..9c35234d67 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/models/models.pb.go +++ b/stream-video-android-core/src/main/proto/video/sfu/models/models.pb.go @@ -454,6 +454,8 @@ func (TrackUnpublishReason) EnumDescriptor() ([]byte, []int) { return file_video_sfu_models_models_proto_rawDescGZIP(), []int{6} } +// GoAwayReason represents the reason for the SFU to +// disconnect the client. type GoAwayReason int32 const ( @@ -503,6 +505,129 @@ func (GoAwayReason) EnumDescriptor() ([]byte, []int) { return file_video_sfu_models_models_proto_rawDescGZIP(), []int{7} } +// CallEndedReason represents the reason for the call to end. +type CallEndedReason int32 + +const ( + CallEndedReason_CALL_ENDED_REASON_UNSPECIFIED CallEndedReason = 0 + CallEndedReason_CALL_ENDED_REASON_ENDED CallEndedReason = 1 + CallEndedReason_CALL_ENDED_REASON_LIVE_ENDED CallEndedReason = 2 + CallEndedReason_CALL_ENDED_REASON_KICKED CallEndedReason = 3 + CallEndedReason_CALL_ENDED_REASON_SESSION_ENDED CallEndedReason = 4 +) + +// Enum value maps for CallEndedReason. +var ( + CallEndedReason_name = map[int32]string{ + 0: "CALL_ENDED_REASON_UNSPECIFIED", + 1: "CALL_ENDED_REASON_ENDED", + 2: "CALL_ENDED_REASON_LIVE_ENDED", + 3: "CALL_ENDED_REASON_KICKED", + 4: "CALL_ENDED_REASON_SESSION_ENDED", + } + CallEndedReason_value = map[string]int32{ + "CALL_ENDED_REASON_UNSPECIFIED": 0, + "CALL_ENDED_REASON_ENDED": 1, + "CALL_ENDED_REASON_LIVE_ENDED": 2, + "CALL_ENDED_REASON_KICKED": 3, + "CALL_ENDED_REASON_SESSION_ENDED": 4, + } +) + +func (x CallEndedReason) Enum() *CallEndedReason { + p := new(CallEndedReason) + *p = x + return p +} + +func (x CallEndedReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CallEndedReason) Descriptor() protoreflect.EnumDescriptor { + return file_video_sfu_models_models_proto_enumTypes[8].Descriptor() +} + +func (CallEndedReason) Type() protoreflect.EnumType { + return &file_video_sfu_models_models_proto_enumTypes[8] +} + +func (x CallEndedReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CallEndedReason.Descriptor instead. +func (CallEndedReason) EnumDescriptor() ([]byte, []int) { + return file_video_sfu_models_models_proto_rawDescGZIP(), []int{8} +} + +// WebsocketReconnectStrategy defines the ws strategies available for handling reconnections. +type WebsocketReconnectStrategy int32 + +const ( + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED WebsocketReconnectStrategy = 0 + // Sent after reaching the maximum reconnection attempts, leading to permanent disconnect. + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT WebsocketReconnectStrategy = 1 + // SDK should maintaining existing publisher/subscriber pc instances + // and establish a new WebSocket connection. + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_FAST WebsocketReconnectStrategy = 2 + // SDK should drop existing pc instances and creates a fresh WebSocket connection, + // ensuring a clean state for the reconnection. + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_CLEAN WebsocketReconnectStrategy = 3 + // SDK should obtain new credentials from the coordinator, drops existing pc instances, and initializes + // a completely new WebSocket connection, ensuring a comprehensive reset. + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_FULL WebsocketReconnectStrategy = 4 + // SDK should migrate to a new SFU instance + WebsocketReconnectStrategy_WEBSOCKET_RECONNECT_STRATEGY_MIGRATE WebsocketReconnectStrategy = 5 +) + +// Enum value maps for WebsocketReconnectStrategy. +var ( + WebsocketReconnectStrategy_name = map[int32]string{ + 0: "WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED", + 1: "WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT", + 2: "WEBSOCKET_RECONNECT_STRATEGY_FAST", + 3: "WEBSOCKET_RECONNECT_STRATEGY_CLEAN", + 4: "WEBSOCKET_RECONNECT_STRATEGY_FULL", + 5: "WEBSOCKET_RECONNECT_STRATEGY_MIGRATE", + } + WebsocketReconnectStrategy_value = map[string]int32{ + "WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED": 0, + "WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT": 1, + "WEBSOCKET_RECONNECT_STRATEGY_FAST": 2, + "WEBSOCKET_RECONNECT_STRATEGY_CLEAN": 3, + "WEBSOCKET_RECONNECT_STRATEGY_FULL": 4, + "WEBSOCKET_RECONNECT_STRATEGY_MIGRATE": 5, + } +) + +func (x WebsocketReconnectStrategy) Enum() *WebsocketReconnectStrategy { + p := new(WebsocketReconnectStrategy) + *p = x + return p +} + +func (x WebsocketReconnectStrategy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WebsocketReconnectStrategy) Descriptor() protoreflect.EnumDescriptor { + return file_video_sfu_models_models_proto_enumTypes[9].Descriptor() +} + +func (WebsocketReconnectStrategy) Type() protoreflect.EnumType { + return &file_video_sfu_models_models_proto_enumTypes[9] +} + +func (x WebsocketReconnectStrategy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WebsocketReconnectStrategy.Descriptor instead. +func (WebsocketReconnectStrategy) EnumDescriptor() ([]byte, []int) { + return file_video_sfu_models_models_proto_rawDescGZIP(), []int{9} +} + // CallState is the current state of the call // as seen by an SFU. type CallState struct { @@ -2141,13 +2266,43 @@ var file_video_sfu_models_models_proto_rawDesc = []byte{ 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x4f, 0x5f, 0x41, 0x57, 0x41, 0x59, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x10, - 0x02, 0x42, 0x65, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x56, 0x31, - 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0xaa, 0x02, 0x1a, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x66, - 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x02, 0x2a, 0xb6, 0x01, 0x0a, 0x0f, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, + 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x4c, + 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, + 0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, + 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x56, 0x45, 0x5f, + 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x41, 0x4c, 0x4c, 0x5f, + 0x45, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x49, 0x43, + 0x4b, 0x45, 0x44, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4e, + 0x44, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, + 0x4f, 0x4e, 0x5f, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x04, 0x2a, 0x97, 0x02, 0x0a, 0x1a, 0x57, + 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x2c, 0x0a, 0x28, 0x57, 0x45, 0x42, + 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x2b, 0x0a, 0x27, 0x57, 0x45, 0x42, 0x53, 0x4f, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, + 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x10, 0x01, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, + 0x54, 0x45, 0x47, 0x59, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x57, + 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x43, 0x4c, 0x45, 0x41, + 0x4e, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x57, 0x45, 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, + 0x45, 0x47, 0x59, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x57, 0x45, + 0x42, 0x53, 0x4f, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, + 0x54, 0x45, 0x10, 0x05, 0x42, 0x65, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0xaa, 0x02, + 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x66, 0x75, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -2162,61 +2317,63 @@ func file_video_sfu_models_models_proto_rawDescGZIP() []byte { return file_video_sfu_models_models_proto_rawDescData } -var file_video_sfu_models_models_proto_enumTypes = make([]protoimpl.EnumInfo, 8) +var file_video_sfu_models_models_proto_enumTypes = make([]protoimpl.EnumInfo, 10) var file_video_sfu_models_models_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_video_sfu_models_models_proto_goTypes = []interface{}{ - (PeerType)(0), // 0: stream.video.sfu.models.PeerType - (ConnectionQuality)(0), // 1: stream.video.sfu.models.ConnectionQuality - (VideoQuality)(0), // 2: stream.video.sfu.models.VideoQuality - (TrackType)(0), // 3: stream.video.sfu.models.TrackType - (ErrorCode)(0), // 4: stream.video.sfu.models.ErrorCode - (SdkType)(0), // 5: stream.video.sfu.models.SdkType - (TrackUnpublishReason)(0), // 6: stream.video.sfu.models.TrackUnpublishReason - (GoAwayReason)(0), // 7: stream.video.sfu.models.GoAwayReason - (*CallState)(nil), // 8: stream.video.sfu.models.CallState - (*ParticipantCount)(nil), // 9: stream.video.sfu.models.ParticipantCount - (*Pin)(nil), // 10: stream.video.sfu.models.Pin - (*Participant)(nil), // 11: stream.video.sfu.models.Participant - (*StreamQuality)(nil), // 12: stream.video.sfu.models.StreamQuality - (*VideoDimension)(nil), // 13: stream.video.sfu.models.VideoDimension - (*VideoLayer)(nil), // 14: stream.video.sfu.models.VideoLayer - (*Codec)(nil), // 15: stream.video.sfu.models.Codec - (*ICETrickle)(nil), // 16: stream.video.sfu.models.ICETrickle - (*TrackInfo)(nil), // 17: stream.video.sfu.models.TrackInfo - (*Call)(nil), // 18: stream.video.sfu.models.Call - (*Error)(nil), // 19: stream.video.sfu.models.Error - (*ClientDetails)(nil), // 20: stream.video.sfu.models.ClientDetails - (*Sdk)(nil), // 21: stream.video.sfu.models.Sdk - (*OS)(nil), // 22: stream.video.sfu.models.OS - (*Browser)(nil), // 23: stream.video.sfu.models.Browser - (*Device)(nil), // 24: stream.video.sfu.models.Device - (*CallGrants)(nil), // 25: stream.video.sfu.models.CallGrants - (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 27: google.protobuf.Struct + (PeerType)(0), // 0: stream.video.sfu.models.PeerType + (ConnectionQuality)(0), // 1: stream.video.sfu.models.ConnectionQuality + (VideoQuality)(0), // 2: stream.video.sfu.models.VideoQuality + (TrackType)(0), // 3: stream.video.sfu.models.TrackType + (ErrorCode)(0), // 4: stream.video.sfu.models.ErrorCode + (SdkType)(0), // 5: stream.video.sfu.models.SdkType + (TrackUnpublishReason)(0), // 6: stream.video.sfu.models.TrackUnpublishReason + (GoAwayReason)(0), // 7: stream.video.sfu.models.GoAwayReason + (CallEndedReason)(0), // 8: stream.video.sfu.models.CallEndedReason + (WebsocketReconnectStrategy)(0), // 9: stream.video.sfu.models.WebsocketReconnectStrategy + (*CallState)(nil), // 10: stream.video.sfu.models.CallState + (*ParticipantCount)(nil), // 11: stream.video.sfu.models.ParticipantCount + (*Pin)(nil), // 12: stream.video.sfu.models.Pin + (*Participant)(nil), // 13: stream.video.sfu.models.Participant + (*StreamQuality)(nil), // 14: stream.video.sfu.models.StreamQuality + (*VideoDimension)(nil), // 15: stream.video.sfu.models.VideoDimension + (*VideoLayer)(nil), // 16: stream.video.sfu.models.VideoLayer + (*Codec)(nil), // 17: stream.video.sfu.models.Codec + (*ICETrickle)(nil), // 18: stream.video.sfu.models.ICETrickle + (*TrackInfo)(nil), // 19: stream.video.sfu.models.TrackInfo + (*Call)(nil), // 20: stream.video.sfu.models.Call + (*Error)(nil), // 21: stream.video.sfu.models.Error + (*ClientDetails)(nil), // 22: stream.video.sfu.models.ClientDetails + (*Sdk)(nil), // 23: stream.video.sfu.models.Sdk + (*OS)(nil), // 24: stream.video.sfu.models.OS + (*Browser)(nil), // 25: stream.video.sfu.models.Browser + (*Device)(nil), // 26: stream.video.sfu.models.Device + (*CallGrants)(nil), // 27: stream.video.sfu.models.CallGrants + (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 29: google.protobuf.Struct } var file_video_sfu_models_models_proto_depIdxs = []int32{ - 11, // 0: stream.video.sfu.models.CallState.participants:type_name -> stream.video.sfu.models.Participant - 26, // 1: stream.video.sfu.models.CallState.started_at:type_name -> google.protobuf.Timestamp - 9, // 2: stream.video.sfu.models.CallState.participant_count:type_name -> stream.video.sfu.models.ParticipantCount - 10, // 3: stream.video.sfu.models.CallState.pins:type_name -> stream.video.sfu.models.Pin + 13, // 0: stream.video.sfu.models.CallState.participants:type_name -> stream.video.sfu.models.Participant + 28, // 1: stream.video.sfu.models.CallState.started_at:type_name -> google.protobuf.Timestamp + 11, // 2: stream.video.sfu.models.CallState.participant_count:type_name -> stream.video.sfu.models.ParticipantCount + 12, // 3: stream.video.sfu.models.CallState.pins:type_name -> stream.video.sfu.models.Pin 3, // 4: stream.video.sfu.models.Participant.published_tracks:type_name -> stream.video.sfu.models.TrackType - 26, // 5: stream.video.sfu.models.Participant.joined_at:type_name -> google.protobuf.Timestamp + 28, // 5: stream.video.sfu.models.Participant.joined_at:type_name -> google.protobuf.Timestamp 1, // 6: stream.video.sfu.models.Participant.connection_quality:type_name -> stream.video.sfu.models.ConnectionQuality - 27, // 7: stream.video.sfu.models.Participant.custom:type_name -> google.protobuf.Struct + 29, // 7: stream.video.sfu.models.Participant.custom:type_name -> google.protobuf.Struct 2, // 8: stream.video.sfu.models.StreamQuality.video_quality:type_name -> stream.video.sfu.models.VideoQuality - 13, // 9: stream.video.sfu.models.VideoLayer.video_dimension:type_name -> stream.video.sfu.models.VideoDimension + 15, // 9: stream.video.sfu.models.VideoLayer.video_dimension:type_name -> stream.video.sfu.models.VideoDimension 2, // 10: stream.video.sfu.models.VideoLayer.quality:type_name -> stream.video.sfu.models.VideoQuality 0, // 11: stream.video.sfu.models.ICETrickle.peer_type:type_name -> stream.video.sfu.models.PeerType 3, // 12: stream.video.sfu.models.TrackInfo.track_type:type_name -> stream.video.sfu.models.TrackType - 14, // 13: stream.video.sfu.models.TrackInfo.layers:type_name -> stream.video.sfu.models.VideoLayer - 27, // 14: stream.video.sfu.models.Call.custom:type_name -> google.protobuf.Struct - 26, // 15: stream.video.sfu.models.Call.created_at:type_name -> google.protobuf.Timestamp - 26, // 16: stream.video.sfu.models.Call.updated_at:type_name -> google.protobuf.Timestamp + 16, // 13: stream.video.sfu.models.TrackInfo.layers:type_name -> stream.video.sfu.models.VideoLayer + 29, // 14: stream.video.sfu.models.Call.custom:type_name -> google.protobuf.Struct + 28, // 15: stream.video.sfu.models.Call.created_at:type_name -> google.protobuf.Timestamp + 28, // 16: stream.video.sfu.models.Call.updated_at:type_name -> google.protobuf.Timestamp 4, // 17: stream.video.sfu.models.Error.code:type_name -> stream.video.sfu.models.ErrorCode - 21, // 18: stream.video.sfu.models.ClientDetails.sdk:type_name -> stream.video.sfu.models.Sdk - 22, // 19: stream.video.sfu.models.ClientDetails.os:type_name -> stream.video.sfu.models.OS - 23, // 20: stream.video.sfu.models.ClientDetails.browser:type_name -> stream.video.sfu.models.Browser - 24, // 21: stream.video.sfu.models.ClientDetails.device:type_name -> stream.video.sfu.models.Device + 23, // 18: stream.video.sfu.models.ClientDetails.sdk:type_name -> stream.video.sfu.models.Sdk + 24, // 19: stream.video.sfu.models.ClientDetails.os:type_name -> stream.video.sfu.models.OS + 25, // 20: stream.video.sfu.models.ClientDetails.browser:type_name -> stream.video.sfu.models.Browser + 26, // 21: stream.video.sfu.models.ClientDetails.device:type_name -> stream.video.sfu.models.Device 5, // 22: stream.video.sfu.models.Sdk.type:type_name -> stream.video.sfu.models.SdkType 23, // [23:23] is the sub-list for method output_type 23, // [23:23] is the sub-list for method input_type @@ -2453,7 +2610,7 @@ func file_video_sfu_models_models_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_video_sfu_models_models_proto_rawDesc, - NumEnums: 8, + NumEnums: 10, NumMessages: 18, NumExtensions: 0, NumServices: 0, diff --git a/stream-video-android-core/src/main/proto/video/sfu/models/models.proto b/stream-video-android-core/src/main/proto/video/sfu/models/models.proto index 9374f865e2..a772402cde 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/models/models.proto +++ b/stream-video-android-core/src/main/proto/video/sfu/models/models.proto @@ -253,8 +253,37 @@ message CallGrants { bool can_screenshare = 3; } +// GoAwayReason represents the reason for the SFU to +// disconnect the client. enum GoAwayReason { GO_AWAY_REASON_UNSPECIFIED = 0; GO_AWAY_REASON_SHUTTING_DOWN = 1; GO_AWAY_REASON_REBALANCE = 2; -} \ No newline at end of file +} + +// CallEndedReason represents the reason for the call to end. +enum CallEndedReason { + CALL_ENDED_REASON_UNSPECIFIED = 0; + CALL_ENDED_REASON_ENDED = 1; + CALL_ENDED_REASON_LIVE_ENDED = 2; + CALL_ENDED_REASON_KICKED = 3; + CALL_ENDED_REASON_SESSION_ENDED = 4; +} + +// WebsocketReconnectStrategy defines the ws strategies available for handling reconnections. +enum WebsocketReconnectStrategy { + WEBSOCKET_RECONNECT_STRATEGY_UNSPECIFIED = 0; + // Sent after reaching the maximum reconnection attempts, leading to permanent disconnect. + WEBSOCKET_RECONNECT_STRATEGY_DISCONNECT = 1; + // SDK should maintaining existing publisher/subscriber pc instances + // and establish a new WebSocket connection. + WEBSOCKET_RECONNECT_STRATEGY_FAST = 2; + // SDK should drop existing pc instances and creates a fresh WebSocket connection, + // ensuring a clean state for the reconnection. + WEBSOCKET_RECONNECT_STRATEGY_CLEAN = 3; + // SDK should obtain new credentials from the coordinator, drops existing pc instances, and initializes + // a completely new WebSocket connection, ensuring a comprehensive reset. + WEBSOCKET_RECONNECT_STRATEGY_FULL = 4; + // SDK should migrate to a new SFU instance + WEBSOCKET_RECONNECT_STRATEGY_MIGRATE = 5; +}; \ No newline at end of file diff --git a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.pb.go b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.pb.go index 72b928f491..b8da7f154a 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.pb.go +++ b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.pb.go @@ -21,6 +21,194 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type StartNoiseCancellationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` +} + +func (x *StartNoiseCancellationRequest) Reset() { + *x = StartNoiseCancellationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartNoiseCancellationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartNoiseCancellationRequest) ProtoMessage() {} + +func (x *StartNoiseCancellationRequest) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartNoiseCancellationRequest.ProtoReflect.Descriptor instead. +func (*StartNoiseCancellationRequest) Descriptor() ([]byte, []int) { + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{0} +} + +func (x *StartNoiseCancellationRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +type StartNoiseCancellationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error *models.Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *StartNoiseCancellationResponse) Reset() { + *x = StartNoiseCancellationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartNoiseCancellationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartNoiseCancellationResponse) ProtoMessage() {} + +func (x *StartNoiseCancellationResponse) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartNoiseCancellationResponse.ProtoReflect.Descriptor instead. +func (*StartNoiseCancellationResponse) Descriptor() ([]byte, []int) { + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{1} +} + +func (x *StartNoiseCancellationResponse) GetError() *models.Error { + if x != nil { + return x.Error + } + return nil +} + +type StopNoiseCancellationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` +} + +func (x *StopNoiseCancellationRequest) Reset() { + *x = StopNoiseCancellationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopNoiseCancellationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopNoiseCancellationRequest) ProtoMessage() {} + +func (x *StopNoiseCancellationRequest) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopNoiseCancellationRequest.ProtoReflect.Descriptor instead. +func (*StopNoiseCancellationRequest) Descriptor() ([]byte, []int) { + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{2} +} + +func (x *StopNoiseCancellationRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +type StopNoiseCancellationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error *models.Error `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *StopNoiseCancellationResponse) Reset() { + *x = StopNoiseCancellationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StopNoiseCancellationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StopNoiseCancellationResponse) ProtoMessage() {} + +func (x *StopNoiseCancellationResponse) ProtoReflect() protoreflect.Message { + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StopNoiseCancellationResponse.ProtoReflect.Descriptor instead. +func (*StopNoiseCancellationResponse) Descriptor() ([]byte, []int) { + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{3} +} + +func (x *StopNoiseCancellationResponse) GetError() *models.Error { + if x != nil { + return x.Error + } + return nil +} + type SendStatsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -37,7 +225,7 @@ type SendStatsRequest struct { func (x *SendStatsRequest) Reset() { *x = SendStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[0] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50,7 +238,7 @@ func (x *SendStatsRequest) String() string { func (*SendStatsRequest) ProtoMessage() {} func (x *SendStatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[0] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63,7 +251,7 @@ func (x *SendStatsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendStatsRequest.ProtoReflect.Descriptor instead. func (*SendStatsRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{0} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{4} } func (x *SendStatsRequest) GetSessionId() string { @@ -119,7 +307,7 @@ type SendStatsResponse struct { func (x *SendStatsResponse) Reset() { *x = SendStatsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[1] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -132,7 +320,7 @@ func (x *SendStatsResponse) String() string { func (*SendStatsResponse) ProtoMessage() {} func (x *SendStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[1] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -145,7 +333,7 @@ func (x *SendStatsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendStatsResponse.ProtoReflect.Descriptor instead. func (*SendStatsResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{1} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{5} } func (x *SendStatsResponse) GetError() *models.Error { @@ -167,7 +355,7 @@ type ICERestartRequest struct { func (x *ICERestartRequest) Reset() { *x = ICERestartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[2] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -180,7 +368,7 @@ func (x *ICERestartRequest) String() string { func (*ICERestartRequest) ProtoMessage() {} func (x *ICERestartRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[2] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -193,7 +381,7 @@ func (x *ICERestartRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ICERestartRequest.ProtoReflect.Descriptor instead. func (*ICERestartRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{2} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{6} } func (x *ICERestartRequest) GetSessionId() string { @@ -221,7 +409,7 @@ type ICERestartResponse struct { func (x *ICERestartResponse) Reset() { *x = ICERestartResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[3] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -234,7 +422,7 @@ func (x *ICERestartResponse) String() string { func (*ICERestartResponse) ProtoMessage() {} func (x *ICERestartResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[3] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -247,7 +435,7 @@ func (x *ICERestartResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ICERestartResponse.ProtoReflect.Descriptor instead. func (*ICERestartResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{3} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{7} } func (x *ICERestartResponse) GetError() *models.Error { @@ -269,7 +457,7 @@ type UpdateMuteStatesRequest struct { func (x *UpdateMuteStatesRequest) Reset() { *x = UpdateMuteStatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[4] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -282,7 +470,7 @@ func (x *UpdateMuteStatesRequest) String() string { func (*UpdateMuteStatesRequest) ProtoMessage() {} func (x *UpdateMuteStatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[4] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -295,7 +483,7 @@ func (x *UpdateMuteStatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMuteStatesRequest.ProtoReflect.Descriptor instead. func (*UpdateMuteStatesRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{4} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{8} } func (x *UpdateMuteStatesRequest) GetSessionId() string { @@ -323,7 +511,7 @@ type UpdateMuteStatesResponse struct { func (x *UpdateMuteStatesResponse) Reset() { *x = UpdateMuteStatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[5] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -336,7 +524,7 @@ func (x *UpdateMuteStatesResponse) String() string { func (*UpdateMuteStatesResponse) ProtoMessage() {} func (x *UpdateMuteStatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[5] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -349,7 +537,7 @@ func (x *UpdateMuteStatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMuteStatesResponse.ProtoReflect.Descriptor instead. func (*UpdateMuteStatesResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{5} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{9} } func (x *UpdateMuteStatesResponse) GetError() *models.Error { @@ -371,7 +559,7 @@ type TrackMuteState struct { func (x *TrackMuteState) Reset() { *x = TrackMuteState{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[6] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -384,7 +572,7 @@ func (x *TrackMuteState) String() string { func (*TrackMuteState) ProtoMessage() {} func (x *TrackMuteState) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[6] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -397,7 +585,7 @@ func (x *TrackMuteState) ProtoReflect() protoreflect.Message { // Deprecated: Use TrackMuteState.ProtoReflect.Descriptor instead. func (*TrackMuteState) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{6} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{10} } func (x *TrackMuteState) GetTrackType() models.TrackType { @@ -425,7 +613,7 @@ type AudioMuteChanged struct { func (x *AudioMuteChanged) Reset() { *x = AudioMuteChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[7] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -438,7 +626,7 @@ func (x *AudioMuteChanged) String() string { func (*AudioMuteChanged) ProtoMessage() {} func (x *AudioMuteChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[7] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -451,7 +639,7 @@ func (x *AudioMuteChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioMuteChanged.ProtoReflect.Descriptor instead. func (*AudioMuteChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{7} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{11} } func (x *AudioMuteChanged) GetMuted() bool { @@ -472,7 +660,7 @@ type VideoMuteChanged struct { func (x *VideoMuteChanged) Reset() { *x = VideoMuteChanged{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[8] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -485,7 +673,7 @@ func (x *VideoMuteChanged) String() string { func (*VideoMuteChanged) ProtoMessage() {} func (x *VideoMuteChanged) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[8] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -498,7 +686,7 @@ func (x *VideoMuteChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoMuteChanged.ProtoReflect.Descriptor instead. func (*VideoMuteChanged) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{8} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{12} } func (x *VideoMuteChanged) GetMuted() bool { @@ -520,7 +708,7 @@ type UpdateSubscriptionsRequest struct { func (x *UpdateSubscriptionsRequest) Reset() { *x = UpdateSubscriptionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[9] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -533,7 +721,7 @@ func (x *UpdateSubscriptionsRequest) String() string { func (*UpdateSubscriptionsRequest) ProtoMessage() {} func (x *UpdateSubscriptionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[9] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -546,7 +734,7 @@ func (x *UpdateSubscriptionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSubscriptionsRequest.ProtoReflect.Descriptor instead. func (*UpdateSubscriptionsRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{9} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{13} } func (x *UpdateSubscriptionsRequest) GetSessionId() string { @@ -574,7 +762,7 @@ type UpdateSubscriptionsResponse struct { func (x *UpdateSubscriptionsResponse) Reset() { *x = UpdateSubscriptionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[10] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -587,7 +775,7 @@ func (x *UpdateSubscriptionsResponse) String() string { func (*UpdateSubscriptionsResponse) ProtoMessage() {} func (x *UpdateSubscriptionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[10] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -600,7 +788,7 @@ func (x *UpdateSubscriptionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSubscriptionsResponse.ProtoReflect.Descriptor instead. func (*UpdateSubscriptionsResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{10} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{14} } func (x *UpdateSubscriptionsResponse) GetError() *models.Error { @@ -624,7 +812,7 @@ type TrackSubscriptionDetails struct { func (x *TrackSubscriptionDetails) Reset() { *x = TrackSubscriptionDetails{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[11] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -637,7 +825,7 @@ func (x *TrackSubscriptionDetails) String() string { func (*TrackSubscriptionDetails) ProtoMessage() {} func (x *TrackSubscriptionDetails) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[11] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -650,7 +838,7 @@ func (x *TrackSubscriptionDetails) ProtoReflect() protoreflect.Message { // Deprecated: Use TrackSubscriptionDetails.ProtoReflect.Descriptor instead. func (*TrackSubscriptionDetails) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{11} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{15} } func (x *TrackSubscriptionDetails) GetUserId() string { @@ -694,7 +882,7 @@ type SendAnswerRequest struct { func (x *SendAnswerRequest) Reset() { *x = SendAnswerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[12] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -707,7 +895,7 @@ func (x *SendAnswerRequest) String() string { func (*SendAnswerRequest) ProtoMessage() {} func (x *SendAnswerRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[12] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -720,7 +908,7 @@ func (x *SendAnswerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendAnswerRequest.ProtoReflect.Descriptor instead. func (*SendAnswerRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{12} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{16} } func (x *SendAnswerRequest) GetPeerType() models.PeerType { @@ -755,7 +943,7 @@ type SendAnswerResponse struct { func (x *SendAnswerResponse) Reset() { *x = SendAnswerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[13] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -768,7 +956,7 @@ func (x *SendAnswerResponse) String() string { func (*SendAnswerResponse) ProtoMessage() {} func (x *SendAnswerResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[13] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -781,7 +969,7 @@ func (x *SendAnswerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendAnswerResponse.ProtoReflect.Descriptor instead. func (*SendAnswerResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{13} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{17} } func (x *SendAnswerResponse) GetError() *models.Error { @@ -802,7 +990,7 @@ type ICETrickleResponse struct { func (x *ICETrickleResponse) Reset() { *x = ICETrickleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[14] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -815,7 +1003,7 @@ func (x *ICETrickleResponse) String() string { func (*ICETrickleResponse) ProtoMessage() {} func (x *ICETrickleResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[14] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -828,7 +1016,7 @@ func (x *ICETrickleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ICETrickleResponse.ProtoReflect.Descriptor instead. func (*ICETrickleResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{14} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{18} } func (x *ICETrickleResponse) GetError() *models.Error { @@ -852,7 +1040,7 @@ type SetPublisherRequest struct { func (x *SetPublisherRequest) Reset() { *x = SetPublisherRequest{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[15] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -865,7 +1053,7 @@ func (x *SetPublisherRequest) String() string { func (*SetPublisherRequest) ProtoMessage() {} func (x *SetPublisherRequest) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[15] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -878,7 +1066,7 @@ func (x *SetPublisherRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPublisherRequest.ProtoReflect.Descriptor instead. func (*SetPublisherRequest) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{15} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{19} } func (x *SetPublisherRequest) GetSdp() string { @@ -917,7 +1105,7 @@ type SetPublisherResponse struct { func (x *SetPublisherResponse) Reset() { *x = SetPublisherResponse{} if protoimpl.UnsafeEnabled { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[16] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -930,7 +1118,7 @@ func (x *SetPublisherResponse) String() string { func (*SetPublisherResponse) ProtoMessage() {} func (x *SetPublisherResponse) ProtoReflect() protoreflect.Message { - mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[16] + mi := &file_video_sfu_signal_rpc_signal_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -943,7 +1131,7 @@ func (x *SetPublisherResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetPublisherResponse.ProtoReflect.Descriptor instead. func (*SetPublisherResponse) Descriptor() ([]byte, []int) { - return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{16} + return file_video_sfu_signal_rpc_signal_proto_rawDescGZIP(), []int{20} } func (x *SetPublisherResponse) GetSdp() string { @@ -982,183 +1170,220 @@ var file_video_sfu_signal_rpc_signal_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x1a, 0x1d, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, - 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x01, 0x0a, 0x10, - 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x1d, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x1e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x22, 0x3d, 0x0a, 0x1c, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x69, 0x73, 0x65, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x22, 0x55, 0x0a, 0x1d, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdf, 0x01, 0x0a, 0x10, 0x53, 0x65, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x29, 0x0a, + 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x72, 0x74, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x65, 0x62, 0x72, 0x74, + 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x6b, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x64, + 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x11, 0x53, + 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, + 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x72, 0x0a, 0x11, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, + 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x12, 0x49, 0x43, + 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, + 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x0a, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x50, 0x0a, 0x18, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x69, 0x0a, + 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x4d, 0x75, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, + 0x65, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x75, 0x74, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x86, 0x01, 0x0a, + 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x06, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x06, 0x74, + 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x53, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdc, 0x01, 0x0a, 0x18, 0x54, + 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, - 0x29, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x72, 0x74, 0x63, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x65, 0x62, - 0x72, 0x74, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, - 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x6b, 0x12, 0x1f, 0x0a, 0x0b, - 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, - 0x11, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x72, 0x0a, 0x11, 0x49, 0x43, 0x45, 0x52, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x09, - 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x12, - 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x0a, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x22, 0x50, 0x0a, - 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, - 0x69, 0x0a, 0x0e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, + 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x4d, 0x75, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, - 0x75, 0x74, 0x65, 0x64, 0x22, 0x28, 0x0a, 0x10, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x75, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x22, 0x86, - 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x06, - 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, - 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x53, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x09, + 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x11, 0x53, 0x65, + 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, + 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, 0x65, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, + 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, + 0x22, 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdc, 0x01, 0x0a, - 0x18, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x4a, 0x0a, 0x12, + 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x64, 0x12, 0x41, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x09, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x11, - 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x3e, 0x0a, 0x09, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, - 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x50, - 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x70, 0x65, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x73, 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, 0x9e, 0x01, + 0x0a, 0x14, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x63, 0x65, 0x5f, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, - 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x4a, - 0x0a, 0x12, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x13, 0x53, - 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x73, 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x54, 0x72, - 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x22, - 0x9e, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x64, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x64, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x63, 0x65, - 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x32, 0x89, 0x06, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x12, 0x6b, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x12, 0x2c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, - 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, + 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x32, 0x9e, + 0x08, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, + 0x6b, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, + 0x2c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, - 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x0a, 0x49, 0x63, 0x65, 0x54, 0x72, 0x69, 0x63, - 0x6b, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, - 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x49, 0x43, - 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, - 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, + 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0a, + 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x2a, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x0a, 0x49, 0x63, 0x65, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, + 0x65, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x49, 0x43, 0x45, 0x54, + 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x2e, 0x49, 0x43, 0x45, 0x54, 0x72, 0x69, 0x63, 0x6b, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, + 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x65, 0x0a, 0x0a, 0x49, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, - 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x65, 0x0a, 0x0a, 0x49, 0x63, 0x65, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, - 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x49, 0x43, 0x45, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x09, 0x53, 0x65, 0x6e, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, - 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, - 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x69, 0x42, 0x0b, - 0x53, 0x66, 0x75, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x56, 0x31, 0x50, 0x01, 0x5a, 0x3b, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, 0x66, 0x75, 0x2f, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x70, 0x63, 0xaa, 0x02, 0x1a, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x66, 0x75, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, + 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x69, + 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x4e, + 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x35, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, + 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, + 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x73, 0x66, 0x75, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x69, 0x42, 0x0b, 0x53, 0x66, 0x75, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x56, 0x31, 0x50, 0x01, + 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x2f, 0x73, + 0x66, 0x75, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x70, 0x63, 0xaa, 0x02, 0x1a, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x66, 0x75, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1173,67 +1398,77 @@ func file_video_sfu_signal_rpc_signal_proto_rawDescGZIP() []byte { return file_video_sfu_signal_rpc_signal_proto_rawDescData } -var file_video_sfu_signal_rpc_signal_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_video_sfu_signal_rpc_signal_proto_msgTypes = make([]protoimpl.MessageInfo, 21) var file_video_sfu_signal_rpc_signal_proto_goTypes = []interface{}{ - (*SendStatsRequest)(nil), // 0: stream.video.sfu.signal.SendStatsRequest - (*SendStatsResponse)(nil), // 1: stream.video.sfu.signal.SendStatsResponse - (*ICERestartRequest)(nil), // 2: stream.video.sfu.signal.ICERestartRequest - (*ICERestartResponse)(nil), // 3: stream.video.sfu.signal.ICERestartResponse - (*UpdateMuteStatesRequest)(nil), // 4: stream.video.sfu.signal.UpdateMuteStatesRequest - (*UpdateMuteStatesResponse)(nil), // 5: stream.video.sfu.signal.UpdateMuteStatesResponse - (*TrackMuteState)(nil), // 6: stream.video.sfu.signal.TrackMuteState - (*AudioMuteChanged)(nil), // 7: stream.video.sfu.signal.AudioMuteChanged - (*VideoMuteChanged)(nil), // 8: stream.video.sfu.signal.VideoMuteChanged - (*UpdateSubscriptionsRequest)(nil), // 9: stream.video.sfu.signal.UpdateSubscriptionsRequest - (*UpdateSubscriptionsResponse)(nil), // 10: stream.video.sfu.signal.UpdateSubscriptionsResponse - (*TrackSubscriptionDetails)(nil), // 11: stream.video.sfu.signal.TrackSubscriptionDetails - (*SendAnswerRequest)(nil), // 12: stream.video.sfu.signal.SendAnswerRequest - (*SendAnswerResponse)(nil), // 13: stream.video.sfu.signal.SendAnswerResponse - (*ICETrickleResponse)(nil), // 14: stream.video.sfu.signal.ICETrickleResponse - (*SetPublisherRequest)(nil), // 15: stream.video.sfu.signal.SetPublisherRequest - (*SetPublisherResponse)(nil), // 16: stream.video.sfu.signal.SetPublisherResponse - (*models.Error)(nil), // 17: stream.video.sfu.models.Error - (models.PeerType)(0), // 18: stream.video.sfu.models.PeerType - (models.TrackType)(0), // 19: stream.video.sfu.models.TrackType - (*models.VideoDimension)(nil), // 20: stream.video.sfu.models.VideoDimension - (*models.TrackInfo)(nil), // 21: stream.video.sfu.models.TrackInfo - (*models.ICETrickle)(nil), // 22: stream.video.sfu.models.ICETrickle + (*StartNoiseCancellationRequest)(nil), // 0: stream.video.sfu.signal.StartNoiseCancellationRequest + (*StartNoiseCancellationResponse)(nil), // 1: stream.video.sfu.signal.StartNoiseCancellationResponse + (*StopNoiseCancellationRequest)(nil), // 2: stream.video.sfu.signal.StopNoiseCancellationRequest + (*StopNoiseCancellationResponse)(nil), // 3: stream.video.sfu.signal.StopNoiseCancellationResponse + (*SendStatsRequest)(nil), // 4: stream.video.sfu.signal.SendStatsRequest + (*SendStatsResponse)(nil), // 5: stream.video.sfu.signal.SendStatsResponse + (*ICERestartRequest)(nil), // 6: stream.video.sfu.signal.ICERestartRequest + (*ICERestartResponse)(nil), // 7: stream.video.sfu.signal.ICERestartResponse + (*UpdateMuteStatesRequest)(nil), // 8: stream.video.sfu.signal.UpdateMuteStatesRequest + (*UpdateMuteStatesResponse)(nil), // 9: stream.video.sfu.signal.UpdateMuteStatesResponse + (*TrackMuteState)(nil), // 10: stream.video.sfu.signal.TrackMuteState + (*AudioMuteChanged)(nil), // 11: stream.video.sfu.signal.AudioMuteChanged + (*VideoMuteChanged)(nil), // 12: stream.video.sfu.signal.VideoMuteChanged + (*UpdateSubscriptionsRequest)(nil), // 13: stream.video.sfu.signal.UpdateSubscriptionsRequest + (*UpdateSubscriptionsResponse)(nil), // 14: stream.video.sfu.signal.UpdateSubscriptionsResponse + (*TrackSubscriptionDetails)(nil), // 15: stream.video.sfu.signal.TrackSubscriptionDetails + (*SendAnswerRequest)(nil), // 16: stream.video.sfu.signal.SendAnswerRequest + (*SendAnswerResponse)(nil), // 17: stream.video.sfu.signal.SendAnswerResponse + (*ICETrickleResponse)(nil), // 18: stream.video.sfu.signal.ICETrickleResponse + (*SetPublisherRequest)(nil), // 19: stream.video.sfu.signal.SetPublisherRequest + (*SetPublisherResponse)(nil), // 20: stream.video.sfu.signal.SetPublisherResponse + (*models.Error)(nil), // 21: stream.video.sfu.models.Error + (models.PeerType)(0), // 22: stream.video.sfu.models.PeerType + (models.TrackType)(0), // 23: stream.video.sfu.models.TrackType + (*models.VideoDimension)(nil), // 24: stream.video.sfu.models.VideoDimension + (*models.TrackInfo)(nil), // 25: stream.video.sfu.models.TrackInfo + (*models.ICETrickle)(nil), // 26: stream.video.sfu.models.ICETrickle } var file_video_sfu_signal_rpc_signal_proto_depIdxs = []int32{ - 17, // 0: stream.video.sfu.signal.SendStatsResponse.error:type_name -> stream.video.sfu.models.Error - 18, // 1: stream.video.sfu.signal.ICERestartRequest.peer_type:type_name -> stream.video.sfu.models.PeerType - 17, // 2: stream.video.sfu.signal.ICERestartResponse.error:type_name -> stream.video.sfu.models.Error - 6, // 3: stream.video.sfu.signal.UpdateMuteStatesRequest.mute_states:type_name -> stream.video.sfu.signal.TrackMuteState - 17, // 4: stream.video.sfu.signal.UpdateMuteStatesResponse.error:type_name -> stream.video.sfu.models.Error - 19, // 5: stream.video.sfu.signal.TrackMuteState.track_type:type_name -> stream.video.sfu.models.TrackType - 11, // 6: stream.video.sfu.signal.UpdateSubscriptionsRequest.tracks:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails - 17, // 7: stream.video.sfu.signal.UpdateSubscriptionsResponse.error:type_name -> stream.video.sfu.models.Error - 19, // 8: stream.video.sfu.signal.TrackSubscriptionDetails.track_type:type_name -> stream.video.sfu.models.TrackType - 20, // 9: stream.video.sfu.signal.TrackSubscriptionDetails.dimension:type_name -> stream.video.sfu.models.VideoDimension - 18, // 10: stream.video.sfu.signal.SendAnswerRequest.peer_type:type_name -> stream.video.sfu.models.PeerType - 17, // 11: stream.video.sfu.signal.SendAnswerResponse.error:type_name -> stream.video.sfu.models.Error - 17, // 12: stream.video.sfu.signal.ICETrickleResponse.error:type_name -> stream.video.sfu.models.Error - 21, // 13: stream.video.sfu.signal.SetPublisherRequest.tracks:type_name -> stream.video.sfu.models.TrackInfo - 17, // 14: stream.video.sfu.signal.SetPublisherResponse.error:type_name -> stream.video.sfu.models.Error - 15, // 15: stream.video.sfu.signal.SignalServer.SetPublisher:input_type -> stream.video.sfu.signal.SetPublisherRequest - 12, // 16: stream.video.sfu.signal.SignalServer.SendAnswer:input_type -> stream.video.sfu.signal.SendAnswerRequest - 22, // 17: stream.video.sfu.signal.SignalServer.IceTrickle:input_type -> stream.video.sfu.models.ICETrickle - 9, // 18: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:input_type -> stream.video.sfu.signal.UpdateSubscriptionsRequest - 4, // 19: stream.video.sfu.signal.SignalServer.UpdateMuteStates:input_type -> stream.video.sfu.signal.UpdateMuteStatesRequest - 2, // 20: stream.video.sfu.signal.SignalServer.IceRestart:input_type -> stream.video.sfu.signal.ICERestartRequest - 0, // 21: stream.video.sfu.signal.SignalServer.SendStats:input_type -> stream.video.sfu.signal.SendStatsRequest - 16, // 22: stream.video.sfu.signal.SignalServer.SetPublisher:output_type -> stream.video.sfu.signal.SetPublisherResponse - 13, // 23: stream.video.sfu.signal.SignalServer.SendAnswer:output_type -> stream.video.sfu.signal.SendAnswerResponse - 14, // 24: stream.video.sfu.signal.SignalServer.IceTrickle:output_type -> stream.video.sfu.signal.ICETrickleResponse - 10, // 25: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:output_type -> stream.video.sfu.signal.UpdateSubscriptionsResponse - 5, // 26: stream.video.sfu.signal.SignalServer.UpdateMuteStates:output_type -> stream.video.sfu.signal.UpdateMuteStatesResponse - 3, // 27: stream.video.sfu.signal.SignalServer.IceRestart:output_type -> stream.video.sfu.signal.ICERestartResponse - 1, // 28: stream.video.sfu.signal.SignalServer.SendStats:output_type -> stream.video.sfu.signal.SendStatsResponse - 22, // [22:29] is the sub-list for method output_type - 15, // [15:22] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 21, // 0: stream.video.sfu.signal.StartNoiseCancellationResponse.error:type_name -> stream.video.sfu.models.Error + 21, // 1: stream.video.sfu.signal.StopNoiseCancellationResponse.error:type_name -> stream.video.sfu.models.Error + 21, // 2: stream.video.sfu.signal.SendStatsResponse.error:type_name -> stream.video.sfu.models.Error + 22, // 3: stream.video.sfu.signal.ICERestartRequest.peer_type:type_name -> stream.video.sfu.models.PeerType + 21, // 4: stream.video.sfu.signal.ICERestartResponse.error:type_name -> stream.video.sfu.models.Error + 10, // 5: stream.video.sfu.signal.UpdateMuteStatesRequest.mute_states:type_name -> stream.video.sfu.signal.TrackMuteState + 21, // 6: stream.video.sfu.signal.UpdateMuteStatesResponse.error:type_name -> stream.video.sfu.models.Error + 23, // 7: stream.video.sfu.signal.TrackMuteState.track_type:type_name -> stream.video.sfu.models.TrackType + 15, // 8: stream.video.sfu.signal.UpdateSubscriptionsRequest.tracks:type_name -> stream.video.sfu.signal.TrackSubscriptionDetails + 21, // 9: stream.video.sfu.signal.UpdateSubscriptionsResponse.error:type_name -> stream.video.sfu.models.Error + 23, // 10: stream.video.sfu.signal.TrackSubscriptionDetails.track_type:type_name -> stream.video.sfu.models.TrackType + 24, // 11: stream.video.sfu.signal.TrackSubscriptionDetails.dimension:type_name -> stream.video.sfu.models.VideoDimension + 22, // 12: stream.video.sfu.signal.SendAnswerRequest.peer_type:type_name -> stream.video.sfu.models.PeerType + 21, // 13: stream.video.sfu.signal.SendAnswerResponse.error:type_name -> stream.video.sfu.models.Error + 21, // 14: stream.video.sfu.signal.ICETrickleResponse.error:type_name -> stream.video.sfu.models.Error + 25, // 15: stream.video.sfu.signal.SetPublisherRequest.tracks:type_name -> stream.video.sfu.models.TrackInfo + 21, // 16: stream.video.sfu.signal.SetPublisherResponse.error:type_name -> stream.video.sfu.models.Error + 19, // 17: stream.video.sfu.signal.SignalServer.SetPublisher:input_type -> stream.video.sfu.signal.SetPublisherRequest + 16, // 18: stream.video.sfu.signal.SignalServer.SendAnswer:input_type -> stream.video.sfu.signal.SendAnswerRequest + 26, // 19: stream.video.sfu.signal.SignalServer.IceTrickle:input_type -> stream.video.sfu.models.ICETrickle + 13, // 20: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:input_type -> stream.video.sfu.signal.UpdateSubscriptionsRequest + 8, // 21: stream.video.sfu.signal.SignalServer.UpdateMuteStates:input_type -> stream.video.sfu.signal.UpdateMuteStatesRequest + 6, // 22: stream.video.sfu.signal.SignalServer.IceRestart:input_type -> stream.video.sfu.signal.ICERestartRequest + 4, // 23: stream.video.sfu.signal.SignalServer.SendStats:input_type -> stream.video.sfu.signal.SendStatsRequest + 0, // 24: stream.video.sfu.signal.SignalServer.StartNoiseCancellation:input_type -> stream.video.sfu.signal.StartNoiseCancellationRequest + 2, // 25: stream.video.sfu.signal.SignalServer.StopNoiseCancellation:input_type -> stream.video.sfu.signal.StopNoiseCancellationRequest + 20, // 26: stream.video.sfu.signal.SignalServer.SetPublisher:output_type -> stream.video.sfu.signal.SetPublisherResponse + 17, // 27: stream.video.sfu.signal.SignalServer.SendAnswer:output_type -> stream.video.sfu.signal.SendAnswerResponse + 18, // 28: stream.video.sfu.signal.SignalServer.IceTrickle:output_type -> stream.video.sfu.signal.ICETrickleResponse + 14, // 29: stream.video.sfu.signal.SignalServer.UpdateSubscriptions:output_type -> stream.video.sfu.signal.UpdateSubscriptionsResponse + 9, // 30: stream.video.sfu.signal.SignalServer.UpdateMuteStates:output_type -> stream.video.sfu.signal.UpdateMuteStatesResponse + 7, // 31: stream.video.sfu.signal.SignalServer.IceRestart:output_type -> stream.video.sfu.signal.ICERestartResponse + 5, // 32: stream.video.sfu.signal.SignalServer.SendStats:output_type -> stream.video.sfu.signal.SendStatsResponse + 1, // 33: stream.video.sfu.signal.SignalServer.StartNoiseCancellation:output_type -> stream.video.sfu.signal.StartNoiseCancellationResponse + 3, // 34: stream.video.sfu.signal.SignalServer.StopNoiseCancellation:output_type -> stream.video.sfu.signal.StopNoiseCancellationResponse + 26, // [26:35] is the sub-list for method output_type + 17, // [17:26] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_video_sfu_signal_rpc_signal_proto_init() } @@ -1243,7 +1478,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } if !protoimpl.UnsafeEnabled { file_video_sfu_signal_rpc_signal_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendStatsRequest); i { + switch v := v.(*StartNoiseCancellationRequest); i { case 0: return &v.state case 1: @@ -1255,7 +1490,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendStatsResponse); i { + switch v := v.(*StartNoiseCancellationResponse); i { case 0: return &v.state case 1: @@ -1267,7 +1502,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ICERestartRequest); i { + switch v := v.(*StopNoiseCancellationRequest); i { case 0: return &v.state case 1: @@ -1279,7 +1514,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ICERestartResponse); i { + switch v := v.(*StopNoiseCancellationResponse); i { case 0: return &v.state case 1: @@ -1291,7 +1526,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateMuteStatesRequest); i { + switch v := v.(*SendStatsRequest); i { case 0: return &v.state case 1: @@ -1303,7 +1538,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateMuteStatesResponse); i { + switch v := v.(*SendStatsResponse); i { case 0: return &v.state case 1: @@ -1315,7 +1550,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrackMuteState); i { + switch v := v.(*ICERestartRequest); i { case 0: return &v.state case 1: @@ -1327,7 +1562,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioMuteChanged); i { + switch v := v.(*ICERestartResponse); i { case 0: return &v.state case 1: @@ -1339,7 +1574,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VideoMuteChanged); i { + switch v := v.(*UpdateMuteStatesRequest); i { case 0: return &v.state case 1: @@ -1351,7 +1586,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateSubscriptionsRequest); i { + switch v := v.(*UpdateMuteStatesResponse); i { case 0: return &v.state case 1: @@ -1363,7 +1598,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateSubscriptionsResponse); i { + switch v := v.(*TrackMuteState); i { case 0: return &v.state case 1: @@ -1375,7 +1610,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrackSubscriptionDetails); i { + switch v := v.(*AudioMuteChanged); i { case 0: return &v.state case 1: @@ -1387,7 +1622,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendAnswerRequest); i { + switch v := v.(*VideoMuteChanged); i { case 0: return &v.state case 1: @@ -1399,7 +1634,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendAnswerResponse); i { + switch v := v.(*UpdateSubscriptionsRequest); i { case 0: return &v.state case 1: @@ -1411,7 +1646,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ICETrickleResponse); i { + switch v := v.(*UpdateSubscriptionsResponse); i { case 0: return &v.state case 1: @@ -1423,7 +1658,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetPublisherRequest); i { + switch v := v.(*TrackSubscriptionDetails); i { case 0: return &v.state case 1: @@ -1435,6 +1670,54 @@ func file_video_sfu_signal_rpc_signal_proto_init() { } } file_video_sfu_signal_rpc_signal_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendAnswerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_signal_rpc_signal_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendAnswerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_signal_rpc_signal_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ICETrickleResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_signal_rpc_signal_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetPublisherRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_video_sfu_signal_rpc_signal_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetPublisherResponse); i { case 0: return &v.state @@ -1453,7 +1736,7 @@ func file_video_sfu_signal_rpc_signal_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_video_sfu_signal_rpc_signal_proto_rawDesc, NumEnums: 0, - NumMessages: 17, + NumMessages: 21, NumExtensions: 0, NumServices: 1, }, @@ -1465,4 +1748,4 @@ func file_video_sfu_signal_rpc_signal_proto_init() { file_video_sfu_signal_rpc_signal_proto_rawDesc = nil file_video_sfu_signal_rpc_signal_proto_goTypes = nil file_video_sfu_signal_rpc_signal_proto_depIdxs = nil -} \ No newline at end of file +} diff --git a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.proto b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.proto index d7915b516b..1a769aa748 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.proto +++ b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.proto @@ -29,6 +29,26 @@ service SignalServer { rpc IceRestart(ICERestartRequest) returns (ICERestartResponse); rpc SendStats(SendStatsRequest) returns (SendStatsResponse); + + rpc StartNoiseCancellation(StartNoiseCancellationRequest) returns (StartNoiseCancellationResponse); + + rpc StopNoiseCancellation(StopNoiseCancellationRequest) returns (StopNoiseCancellationResponse); +} + +message StartNoiseCancellationRequest { + string session_id = 1; +} + +message StartNoiseCancellationResponse { + models.Error error = 1; +} + +message StopNoiseCancellationRequest { + string session_id = 1; +} + +message StopNoiseCancellationResponse { + models.Error error = 1; } message SendStatsRequest { @@ -119,4 +139,4 @@ message SetPublisherResponse { string session_id = 2; bool ice_restart = 3; models.Error error = 4; -} \ No newline at end of file +} diff --git a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.twirp.go b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.twirp.go index 056fa5c567..279b032bac 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.twirp.go +++ b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal.twirp.go @@ -53,6 +53,10 @@ type SignalServer interface { IceRestart(context.Context, *ICERestartRequest) (*ICERestartResponse, error) SendStats(context.Context, *SendStatsRequest) (*SendStatsResponse, error) + + StartNoiseCancellation(context.Context, *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) + + StopNoiseCancellation(context.Context, *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) } // ============================ @@ -61,7 +65,7 @@ type SignalServer interface { type signalServerProtobufClient struct { client HTTPClient - urls [7]string + urls [9]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -89,7 +93,7 @@ func NewSignalServerProtobufClient(baseURL string, client HTTPClient, opts ...tw // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "stream.video.sfu.signal", "SignalServer") - urls := [7]string{ + urls := [9]string{ serviceURL + "SetPublisher", serviceURL + "SendAnswer", serviceURL + "IceTrickle", @@ -97,6 +101,8 @@ func NewSignalServerProtobufClient(baseURL string, client HTTPClient, opts ...tw serviceURL + "UpdateMuteStates", serviceURL + "IceRestart", serviceURL + "SendStats", + serviceURL + "StartNoiseCancellation", + serviceURL + "StopNoiseCancellation", } return &signalServerProtobufClient{ @@ -429,13 +435,105 @@ func (c *signalServerProtobufClient) callSendStats(ctx context.Context, in *Send return out, nil } +func (c *signalServerProtobufClient) StartNoiseCancellation(ctx context.Context, in *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "stream.video.sfu.signal") + ctx = ctxsetters.WithServiceName(ctx, "SignalServer") + ctx = ctxsetters.WithMethodName(ctx, "StartNoiseCancellation") + caller := c.callStartNoiseCancellation + if c.interceptor != nil { + caller = func(ctx context.Context, req *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StartNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StartNoiseCancellationRequest) when calling interceptor") + } + return c.callStartNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StartNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StartNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *signalServerProtobufClient) callStartNoiseCancellation(ctx context.Context, in *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + out := new(StartNoiseCancellationResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *signalServerProtobufClient) StopNoiseCancellation(ctx context.Context, in *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "stream.video.sfu.signal") + ctx = ctxsetters.WithServiceName(ctx, "SignalServer") + ctx = ctxsetters.WithMethodName(ctx, "StopNoiseCancellation") + caller := c.callStopNoiseCancellation + if c.interceptor != nil { + caller = func(ctx context.Context, req *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StopNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StopNoiseCancellationRequest) when calling interceptor") + } + return c.callStopNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StopNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StopNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *signalServerProtobufClient) callStopNoiseCancellation(ctx context.Context, in *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + out := new(StopNoiseCancellationResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[8], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // ======================== // SignalServer JSON Client // ======================== type signalServerJSONClient struct { client HTTPClient - urls [7]string + urls [9]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -463,7 +561,7 @@ func NewSignalServerJSONClient(baseURL string, client HTTPClient, opts ...twirp. // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "stream.video.sfu.signal", "SignalServer") - urls := [7]string{ + urls := [9]string{ serviceURL + "SetPublisher", serviceURL + "SendAnswer", serviceURL + "IceTrickle", @@ -471,6 +569,8 @@ func NewSignalServerJSONClient(baseURL string, client HTTPClient, opts ...twirp. serviceURL + "UpdateMuteStates", serviceURL + "IceRestart", serviceURL + "SendStats", + serviceURL + "StartNoiseCancellation", + serviceURL + "StopNoiseCancellation", } return &signalServerJSONClient{ @@ -803,6 +903,98 @@ func (c *signalServerJSONClient) callSendStats(ctx context.Context, in *SendStat return out, nil } +func (c *signalServerJSONClient) StartNoiseCancellation(ctx context.Context, in *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "stream.video.sfu.signal") + ctx = ctxsetters.WithServiceName(ctx, "SignalServer") + ctx = ctxsetters.WithMethodName(ctx, "StartNoiseCancellation") + caller := c.callStartNoiseCancellation + if c.interceptor != nil { + caller = func(ctx context.Context, req *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StartNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StartNoiseCancellationRequest) when calling interceptor") + } + return c.callStartNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StartNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StartNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *signalServerJSONClient) callStartNoiseCancellation(ctx context.Context, in *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + out := new(StartNoiseCancellationResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[7], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *signalServerJSONClient) StopNoiseCancellation(ctx context.Context, in *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "stream.video.sfu.signal") + ctx = ctxsetters.WithServiceName(ctx, "SignalServer") + ctx = ctxsetters.WithMethodName(ctx, "StopNoiseCancellation") + caller := c.callStopNoiseCancellation + if c.interceptor != nil { + caller = func(ctx context.Context, req *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StopNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StopNoiseCancellationRequest) when calling interceptor") + } + return c.callStopNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StopNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StopNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *signalServerJSONClient) callStopNoiseCancellation(ctx context.Context, in *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + out := new(StopNoiseCancellationResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[8], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // =========================== // SignalServer Server Handler // =========================== @@ -921,6 +1113,12 @@ func (s *signalServerServer) ServeHTTP(resp http.ResponseWriter, req *http.Reque case "SendStats": s.serveSendStats(ctx, resp, req) return + case "StartNoiseCancellation": + s.serveStartNoiseCancellation(ctx, resp, req) + return + case "StopNoiseCancellation": + s.serveStopNoiseCancellation(ctx, resp, req) + return default: msg := fmt.Sprintf("no handler for path %q", req.URL.Path) s.writeError(ctx, resp, badRouteError(msg, req.Method, req.URL.Path)) @@ -2188,6 +2386,366 @@ func (s *signalServerServer) serveSendStatsProtobuf(ctx context.Context, resp ht callResponseSent(ctx, s.hooks) } +func (s *signalServerServer) serveStartNoiseCancellation(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveStartNoiseCancellationJSON(ctx, resp, req) + case "application/protobuf": + s.serveStartNoiseCancellationProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *signalServerServer) serveStartNoiseCancellationJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "StartNoiseCancellation") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(StartNoiseCancellationRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.SignalServer.StartNoiseCancellation + if s.interceptor != nil { + handler = func(ctx context.Context, req *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StartNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StartNoiseCancellationRequest) when calling interceptor") + } + return s.SignalServer.StartNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StartNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StartNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *StartNoiseCancellationResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *StartNoiseCancellationResponse and nil error while calling StartNoiseCancellation. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *signalServerServer) serveStartNoiseCancellationProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "StartNoiseCancellation") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := ioutil.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(StartNoiseCancellationRequest) + if err = reqContent.UnmarshalVT(buf); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.SignalServer.StartNoiseCancellation + if s.interceptor != nil { + handler = func(ctx context.Context, req *StartNoiseCancellationRequest) (*StartNoiseCancellationResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StartNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StartNoiseCancellationRequest) when calling interceptor") + } + return s.SignalServer.StartNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StartNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StartNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *StartNoiseCancellationResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *StartNoiseCancellationResponse and nil error while calling StartNoiseCancellation. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := respContent.MarshalVT() + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *signalServerServer) serveStopNoiseCancellation(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveStopNoiseCancellationJSON(ctx, resp, req) + case "application/protobuf": + s.serveStopNoiseCancellationProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *signalServerServer) serveStopNoiseCancellationJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "StopNoiseCancellation") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(StopNoiseCancellationRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.SignalServer.StopNoiseCancellation + if s.interceptor != nil { + handler = func(ctx context.Context, req *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StopNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StopNoiseCancellationRequest) when calling interceptor") + } + return s.SignalServer.StopNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StopNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StopNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *StopNoiseCancellationResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *StopNoiseCancellationResponse and nil error while calling StopNoiseCancellation. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *signalServerServer) serveStopNoiseCancellationProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "StopNoiseCancellation") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := ioutil.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(StopNoiseCancellationRequest) + if err = reqContent.UnmarshalVT(buf); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.SignalServer.StopNoiseCancellation + if s.interceptor != nil { + handler = func(ctx context.Context, req *StopNoiseCancellationRequest) (*StopNoiseCancellationResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*StopNoiseCancellationRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*StopNoiseCancellationRequest) when calling interceptor") + } + return s.SignalServer.StopNoiseCancellation(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*StopNoiseCancellationResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*StopNoiseCancellationResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *StopNoiseCancellationResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *StopNoiseCancellationResponse and nil error while calling StopNoiseCancellation. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := respContent.MarshalVT() + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + func (s *signalServerServer) ServiceDescriptor() ([]byte, int) { return twirpFileDescriptor0, 0 } @@ -2769,59 +3327,64 @@ func callClientError(ctx context.Context, h *twirp.ClientHooks, err twirp.Error) } var twirpFileDescriptor0 = []byte{ - // 854 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x6e, 0xdb, 0x36, - 0x14, 0x86, 0xe2, 0xc6, 0x8b, 0x8f, 0xbb, 0xd4, 0x65, 0x0b, 0xc4, 0xd0, 0xd0, 0x75, 0xd5, 0x30, - 0x34, 0xcd, 0x36, 0x79, 0x49, 0x7b, 0xb5, 0x01, 0x03, 0xd2, 0x36, 0xd8, 0x34, 0x60, 0x40, 0x20, - 0x65, 0xb9, 0xd8, 0xc5, 0x0c, 0xfd, 0x1c, 0x27, 0x84, 0x6d, 0x49, 0x23, 0x29, 0x07, 0xbd, 0x1b, - 0x8a, 0x61, 0xc0, 0x5e, 0x62, 0x0f, 0xb0, 0x67, 0x1a, 0xb0, 0x57, 0x29, 0x44, 0xd2, 0x92, 0x2d, - 0x5b, 0x8e, 0x1d, 0x5f, 0x99, 0x26, 0xbf, 0xf3, 0xf7, 0x7d, 0x87, 0x47, 0x84, 0x67, 0x13, 0x1a, - 0x61, 0xd2, 0xe3, 0x83, 0xac, 0xc7, 0xe9, 0x55, 0xec, 0x8f, 0xfa, 0x2c, 0x0d, 0xf5, 0xd2, 0x4e, - 0x59, 0x22, 0x12, 0x72, 0xc0, 0x05, 0x43, 0x7f, 0x6c, 0x4b, 0xa4, 0xcd, 0x07, 0x99, 0xad, 0x8e, - 0xcd, 0x27, 0xa5, 0xed, 0x38, 0x89, 0x70, 0xc4, 0xf5, 0x8f, 0xb2, 0xb3, 0xfe, 0x37, 0xa0, 0xe3, - 0x61, 0x1c, 0x79, 0xc2, 0x17, 0xdc, 0xc5, 0xdf, 0x33, 0xe4, 0x82, 0x3c, 0x01, 0xe0, 0xc8, 0x39, - 0x4d, 0xe2, 0x3e, 0x8d, 0xba, 0xc6, 0x67, 0xc6, 0x61, 0xcb, 0x6d, 0xe9, 0x1d, 0x27, 0x22, 0x2f, - 0xa0, 0xc3, 0xb3, 0x80, 0x87, 0x8c, 0x06, 0xc8, 0xfa, 0x3c, 0xb7, 0xec, 0xee, 0x48, 0xd0, 0x83, - 0x72, 0x5f, 0x3a, 0x24, 0xcf, 0xe1, 0x41, 0x9a, 0x05, 0x23, 0xca, 0xaf, 0x0b, 0x64, 0x43, 0x22, - 0xf7, 0x8b, 0x6d, 0x05, 0xfc, 0x02, 0xf6, 0x6f, 0x30, 0x60, 0x22, 0xec, 0x4f, 0x90, 0xe5, 0x71, - 0xba, 0xf7, 0x24, 0xee, 0x63, 0xb5, 0x7b, 0xa9, 0x36, 0x49, 0x07, 0x1a, 0x3c, 0x1a, 0x76, 0x77, - 0xe5, 0x59, 0xbe, 0x24, 0x4f, 0xa1, 0xcd, 0xa3, 0x61, 0x61, 0xd5, 0x94, 0x27, 0xc0, 0xa3, 0xa1, - 0x36, 0xb1, 0x1c, 0x78, 0x38, 0x53, 0x20, 0x4f, 0x93, 0x98, 0x23, 0x79, 0x05, 0xbb, 0xc8, 0x58, - 0xc2, 0x64, 0x71, 0xed, 0x93, 0x4f, 0xed, 0x05, 0xfa, 0x34, 0x4b, 0x67, 0x39, 0xca, 0x55, 0x60, - 0x8b, 0xc1, 0x43, 0xe7, 0xcd, 0x99, 0x8b, 0x5c, 0xf8, 0x4c, 0xac, 0x49, 0xd6, 0xf7, 0xd0, 0x4a, - 0x11, 0x59, 0x5f, 0xbc, 0x4b, 0x51, 0xb2, 0xb4, 0x7f, 0xf2, 0xac, 0x36, 0xda, 0x39, 0x22, 0xbb, - 0x78, 0x97, 0xa2, 0xbb, 0x97, 0xea, 0x95, 0xf5, 0x13, 0x90, 0xd9, 0x98, 0x5b, 0xe5, 0xff, 0xde, - 0x80, 0x83, 0x5f, 0xd2, 0xc8, 0x17, 0xf8, 0x73, 0x26, 0x30, 0x67, 0x04, 0xd7, 0xd5, 0xfc, 0x47, - 0x68, 0x8f, 0x33, 0x81, 0x52, 0x43, 0xcc, 0x45, 0x6c, 0x1c, 0xb6, 0x4f, 0x9e, 0xdb, 0x35, 0x5d, - 0x67, 0x5f, 0x30, 0x3f, 0x1c, 0x16, 0x41, 0x5c, 0x18, 0x17, 0xf1, 0xac, 0x73, 0xe8, 0x2e, 0xe6, - 0x50, 0x2d, 0xeb, 0xde, 0x26, 0x65, 0x51, 0xd8, 0x9f, 0x8f, 0x47, 0x4e, 0x01, 0x44, 0xbe, 0xa3, - 0x58, 0x37, 0x24, 0xeb, 0x56, 0xad, 0x33, 0x69, 0x2c, 0x69, 0x6f, 0x89, 0xe9, 0x92, 0x3c, 0x86, - 0xdd, 0x3c, 0xe9, 0x48, 0x6a, 0xb6, 0xe7, 0xaa, 0x3f, 0xd6, 0x21, 0x74, 0x4e, 0xb3, 0x88, 0x26, - 0x79, 0xa8, 0x37, 0xd7, 0x7e, 0x7c, 0x85, 0x51, 0x89, 0x34, 0x2a, 0xc8, 0xcb, 0x3c, 0xd0, 0x52, - 0xe4, 0x9c, 0xcf, 0xbf, 0x0c, 0x30, 0x15, 0x23, 0x9e, 0xba, 0x3d, 0xa9, 0xa0, 0x49, 0x5c, 0x23, - 0xcc, 0x4e, 0x55, 0x18, 0x07, 0x9a, 0x32, 0xe9, 0xa9, 0x26, 0xc7, 0xab, 0x35, 0x99, 0x0d, 0xf1, - 0x16, 0x85, 0x4f, 0x47, 0xdc, 0xd5, 0x0e, 0x2c, 0x0f, 0x3e, 0x59, 0x9a, 0xc7, 0x56, 0xe2, 0xfc, - 0x67, 0x40, 0xb7, 0x2e, 0x32, 0x39, 0x80, 0x8f, 0x32, 0x8e, 0xac, 0xec, 0xb8, 0x66, 0xfe, 0xd7, - 0x89, 0x6e, 0x2b, 0x7a, 0x5e, 0xdf, 0xc6, 0x5d, 0xf4, 0x3d, 0x83, 0x56, 0x44, 0xc7, 0x18, 0x17, - 0xb3, 0x66, 0x69, 0x3b, 0x6b, 0x0f, 0x52, 0xc9, 0xb7, 0x53, 0xb8, 0x5b, 0x5a, 0x5a, 0x7f, 0x1a, - 0x6a, 0xbc, 0x9c, 0xc6, 0xfc, 0x06, 0xd9, 0x54, 0xb3, 0xb9, 0x4b, 0x6f, 0x6c, 0x7c, 0xe9, 0xd5, - 0x98, 0x4b, 0x75, 0xdd, 0xf9, 0xb2, 0x42, 0x48, 0xa3, 0x42, 0x48, 0x3e, 0x25, 0x66, 0xb3, 0xd8, - 0x4a, 0x31, 0x35, 0x71, 0x2e, 0x18, 0x0d, 0x87, 0x23, 0xdc, 0xd2, 0xd7, 0x7b, 0x03, 0x1e, 0x79, - 0x28, 0xce, 0xa7, 0xc3, 0x7e, 0x4a, 0x90, 0x2e, 0xd0, 0xa8, 0x2b, 0x70, 0x41, 0xf1, 0x6f, 0x2b, - 0x6d, 0x7e, 0x8b, 0xda, 0x4e, 0x3c, 0x48, 0x8a, 0xbe, 0xfe, 0xc7, 0x80, 0xc7, 0xf3, 0x49, 0xe8, - 0x9a, 0x36, 0xce, 0xe2, 0x29, 0xb4, 0x69, 0x88, 0x7d, 0xa6, 0xa6, 0xb1, 0x94, 0x61, 0xcf, 0x05, - 0x1a, 0xa2, 0x9e, 0xcf, 0x77, 0x63, 0xe9, 0xe4, 0xef, 0x26, 0xdc, 0xf7, 0xe4, 0x25, 0xf5, 0x90, - 0x4d, 0x90, 0x91, 0x21, 0xdc, 0x9f, 0x4d, 0x98, 0x7c, 0x55, 0x7b, 0xa9, 0x97, 0x90, 0x6b, 0x7e, - 0xbd, 0x26, 0x5a, 0xb3, 0x80, 0x00, 0x65, 0xef, 0x90, 0xa3, 0x15, 0xc6, 0x95, 0x36, 0x37, 0xbf, - 0x5c, 0x0b, 0xab, 0xc3, 0xfc, 0x06, 0xe0, 0x84, 0xa8, 0xdb, 0x8a, 0x7c, 0x5e, 0xcb, 0x4c, 0xd9, - 0x7b, 0x2b, 0xfc, 0x2f, 0x69, 0xd0, 0x3f, 0x0c, 0x78, 0xb4, 0x64, 0x7c, 0x91, 0x97, 0xb5, 0x4e, - 0xea, 0x87, 0xae, 0xf9, 0x6a, 0x33, 0x23, 0x9d, 0xc2, 0x0d, 0x74, 0xaa, 0x9f, 0x36, 0xf2, 0xcd, - 0x2d, 0x9e, 0x16, 0xbe, 0xc4, 0xe6, 0xf1, 0x06, 0x16, 0xa5, 0x84, 0x4e, 0xd9, 0x84, 0x47, 0xab, - 0x68, 0x9b, 0x7f, 0xbd, 0xac, 0xa6, 0xb8, 0xfa, 0xea, 0x08, 0xa0, 0x55, 0x3c, 0xa5, 0xc8, 0x8b, - 0x95, 0xe2, 0xcf, 0xbe, 0x27, 0xcd, 0xa3, 0x75, 0xa0, 0x2a, 0xc6, 0x6b, 0xfa, 0xba, 0xed, 0x0d, - 0x32, 0x75, 0x1b, 0x2e, 0x8f, 0xcf, 0x8d, 0x5f, 0xbf, 0xbb, 0xa2, 0xe2, 0x3a, 0x0b, 0xec, 0x30, - 0x19, 0xf7, 0x7e, 0x40, 0xe1, 0x49, 0x4f, 0x3d, 0xf9, 0x7a, 0x0d, 0x93, 0x91, 0x5a, 0x04, 0xd9, - 0xa0, 0xb7, 0xec, 0x8d, 0xfc, 0xef, 0x8e, 0xa9, 0xf0, 0x6a, 0x82, 0xdb, 0x93, 0x63, 0xdb, 0x1b, - 0x64, 0xb6, 0xf2, 0x1e, 0x34, 0xa5, 0xed, 0xcb, 0x0f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x8b, 0x67, - 0x5a, 0x88, 0x5f, 0x0b, 0x00, 0x00, -} \ No newline at end of file + // 941 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x6f, 0x6f, 0xdb, 0x44, + 0x18, 0xd7, 0x35, 0x6b, 0x69, 0x9e, 0x8c, 0x2e, 0xbb, 0x0d, 0x1a, 0x19, 0xba, 0x31, 0x23, 0xb4, + 0xae, 0x80, 0x43, 0xbb, 0x31, 0x24, 0x10, 0x93, 0xba, 0xae, 0x82, 0x4c, 0x02, 0x55, 0x76, 0xd7, + 0x17, 0xbc, 0x20, 0x72, 0xec, 0x27, 0xed, 0x29, 0x89, 0x6d, 0xee, 0xce, 0xad, 0xf6, 0x0e, 0x4d, + 0x68, 0x12, 0x5f, 0xa2, 0x1f, 0x80, 0xcf, 0x84, 0xc4, 0x57, 0x41, 0xbe, 0xbb, 0xfc, 0x73, 0xed, + 0x34, 0x69, 0x5e, 0xe5, 0x72, 0x7e, 0xfe, 0xfc, 0x9e, 0xdf, 0xef, 0xb9, 0xc7, 0x67, 0x78, 0x74, + 0xce, 0x42, 0x8c, 0x9b, 0xa2, 0x9b, 0x36, 0x05, 0x3b, 0x8d, 0xfc, 0x7e, 0x9b, 0x27, 0x81, 0x59, + 0x3a, 0x09, 0x8f, 0x65, 0x4c, 0x37, 0x85, 0xe4, 0xe8, 0x0f, 0x1c, 0x65, 0xe9, 0x88, 0x6e, 0xea, + 0xe8, 0xc7, 0xd6, 0xd6, 0xd8, 0x77, 0x10, 0x87, 0xd8, 0x17, 0xe6, 0x47, 0xfb, 0xd9, 0x2f, 0x60, + 0xcb, 0x93, 0x3e, 0x97, 0xbf, 0xc6, 0x4c, 0xe0, 0x81, 0x1f, 0x05, 0xd8, 0xef, 0xfb, 0x92, 0xc5, + 0x91, 0x8b, 0x7f, 0xa4, 0x28, 0x24, 0xdd, 0x02, 0x10, 0x28, 0x04, 0x8b, 0xa3, 0x36, 0x0b, 0x1b, + 0xe4, 0x33, 0xb2, 0x5d, 0x75, 0xab, 0x66, 0xa7, 0x15, 0xda, 0x27, 0xf0, 0xa0, 0xcc, 0x5f, 0x24, + 0x71, 0x24, 0x90, 0x3e, 0x83, 0x55, 0xe4, 0x3c, 0xe6, 0xca, 0xb7, 0xb6, 0xf7, 0xc0, 0xb9, 0x82, + 0xd4, 0x00, 0x3a, 0xcc, 0xac, 0x5c, 0x6d, 0x6c, 0xff, 0x08, 0x9f, 0x7a, 0x32, 0x4e, 0x6e, 0x0a, + 0xeb, 0x4d, 0x56, 0x56, 0xa1, 0xfb, 0x52, 0xa8, 0xfe, 0x23, 0x50, 0xf7, 0x30, 0x0a, 0x3d, 0xe9, + 0x4b, 0x31, 0x1f, 0x14, 0xfa, 0x04, 0xea, 0x22, 0xed, 0x88, 0x80, 0xb3, 0x0e, 0xf2, 0xb6, 0xc8, + 0x3c, 0x1b, 0x2b, 0xca, 0xe8, 0xce, 0x78, 0x5f, 0x05, 0xa4, 0x8f, 0xe1, 0x4e, 0x92, 0x76, 0xfa, + 0x4c, 0x9c, 0x8d, 0x2c, 0x2b, 0xca, 0x72, 0x63, 0xb4, 0xad, 0x0d, 0xbf, 0x80, 0x8d, 0x0b, 0xec, + 0x70, 0x19, 0xb4, 0xcf, 0x91, 0x67, 0x79, 0x1a, 0xb7, 0x94, 0xdd, 0x87, 0x7a, 0xf7, 0x44, 0x6f, + 0xd2, 0x3a, 0x54, 0x44, 0xd8, 0x6b, 0xac, 0xaa, 0x67, 0xd9, 0x92, 0x3e, 0x84, 0x9a, 0x08, 0x7b, + 0x23, 0xaf, 0x35, 0xf5, 0x04, 0x44, 0xd8, 0x33, 0x2e, 0x76, 0x0b, 0xee, 0x4e, 0x14, 0xb8, 0x14, + 0x59, 0x1c, 0xee, 0xb6, 0x0e, 0x0e, 0x5d, 0x14, 0x59, 0x7f, 0xcc, 0x49, 0xd6, 0x0b, 0xa8, 0x26, + 0x88, 0xbc, 0x2d, 0xdf, 0x26, 0xa8, 0x58, 0xda, 0xd8, 0x7b, 0x54, 0x9a, 0xed, 0x08, 0x91, 0x1f, + 0xbf, 0x4d, 0xd0, 0x5d, 0x4f, 0xcc, 0xca, 0x7e, 0x0d, 0x74, 0x32, 0xe7, 0x52, 0xf8, 0xdf, 0x11, + 0xd8, 0x7c, 0x93, 0x84, 0xbe, 0xc4, 0x5f, 0x52, 0x89, 0x19, 0x23, 0x38, 0xaf, 0xe6, 0x3f, 0x43, + 0x6d, 0x90, 0x4a, 0x54, 0x1a, 0x62, 0x26, 0x62, 0x65, 0xbb, 0xb6, 0xf7, 0xd8, 0x29, 0x39, 0xa3, + 0xce, 0x31, 0xf7, 0x83, 0xde, 0x28, 0x89, 0x0b, 0x83, 0x51, 0x3e, 0xfb, 0x08, 0x1a, 0x57, 0x31, + 0xe4, 0xcb, 0xba, 0xb5, 0x48, 0x59, 0x0c, 0x36, 0xa6, 0xf3, 0xd1, 0x7d, 0x00, 0x99, 0xed, 0x68, + 0xd6, 0x89, 0x62, 0xdd, 0x2e, 0x0d, 0xa6, 0x9c, 0x15, 0xed, 0x55, 0x39, 0x5c, 0xd2, 0xfb, 0xb0, + 0x9a, 0x81, 0x0e, 0x95, 0x66, 0xeb, 0xae, 0xfe, 0x63, 0x6f, 0x43, 0x7d, 0x3f, 0x0d, 0x59, 0x9c, + 0xa5, 0x3a, 0x38, 0xf3, 0xa3, 0x53, 0x0c, 0xc7, 0x96, 0x24, 0x67, 0x79, 0x92, 0x25, 0x2a, 0xb4, + 0x9c, 0x8a, 0xf9, 0x9e, 0x80, 0xa5, 0x19, 0xf1, 0xf4, 0xe9, 0x49, 0xb2, 0x73, 0x5d, 0x22, 0xcc, + 0x4a, 0x5e, 0x98, 0x16, 0xac, 0x29, 0xd0, 0x43, 0x4d, 0x76, 0x67, 0x6b, 0x32, 0x99, 0xe2, 0x15, + 0x4a, 0x9f, 0xf5, 0x85, 0x6b, 0x02, 0xd8, 0x1e, 0x7c, 0x52, 0x88, 0x63, 0x29, 0x71, 0xfe, 0x25, + 0xd0, 0x28, 0xcb, 0x4c, 0x37, 0xe1, 0x83, 0x54, 0x20, 0x1f, 0x77, 0xdc, 0x5a, 0xf6, 0xb7, 0x15, + 0x5e, 0x57, 0xf4, 0xb4, 0xbe, 0x95, 0x9b, 0xe8, 0x7b, 0x08, 0xd5, 0x90, 0x0d, 0x30, 0x1a, 0xcd, + 0x9a, 0xc2, 0x76, 0x36, 0x11, 0x94, 0x92, 0xaf, 0x86, 0xe6, 0xee, 0xd8, 0xd3, 0xfe, 0x8b, 0xe8, + 0xf1, 0xb2, 0x1f, 0x89, 0x0b, 0xe4, 0x43, 0xcd, 0xa6, 0x0e, 0x3d, 0x59, 0xf8, 0xd0, 0xeb, 0x31, + 0x97, 0x98, 0xba, 0xb3, 0x65, 0x8e, 0x90, 0x4a, 0xfe, 0xed, 0xf0, 0x1a, 0xe8, 0x24, 0x8a, 0xa5, + 0x14, 0xd3, 0x13, 0xe7, 0x98, 0xb3, 0xa0, 0xd7, 0xc7, 0x25, 0x63, 0xbd, 0x23, 0x70, 0xcf, 0x43, + 0x79, 0x34, 0x1c, 0xf6, 0x43, 0x82, 0x4c, 0x81, 0xa4, 0xac, 0xc0, 0x2b, 0x8a, 0x7f, 0x9f, 0x6b, + 0xf3, 0x6b, 0xd4, 0x6e, 0x45, 0xdd, 0x78, 0xd4, 0xd7, 0x97, 0x04, 0xee, 0x4f, 0x83, 0x30, 0x35, + 0x2d, 0x8c, 0xe2, 0x21, 0xd4, 0x58, 0x80, 0x6d, 0xae, 0xa7, 0xb1, 0x92, 0x61, 0xdd, 0x05, 0x16, + 0xa0, 0x99, 0xcf, 0x37, 0x63, 0x69, 0xef, 0x72, 0x1d, 0x6e, 0x7b, 0xea, 0x90, 0x7a, 0xc8, 0xcf, + 0x91, 0xd3, 0x1e, 0xdc, 0x9e, 0x04, 0x4c, 0xbf, 0x2a, 0x3d, 0xd4, 0x05, 0xe4, 0x5a, 0x5f, 0xcf, + 0x69, 0x6d, 0x58, 0x40, 0x80, 0x71, 0xef, 0xd0, 0x9d, 0x19, 0xce, 0xb9, 0x36, 0xb7, 0xbe, 0x9c, + 0xcb, 0xd6, 0xa4, 0xf9, 0x1d, 0xa0, 0x15, 0xa0, 0x69, 0x2b, 0xfa, 0x79, 0x29, 0x33, 0xe3, 0xde, + 0x9b, 0x11, 0xbf, 0xa0, 0x41, 0xff, 0x24, 0x70, 0xaf, 0x60, 0x7c, 0xd1, 0xa7, 0xa5, 0x41, 0xca, + 0x87, 0xae, 0xf5, 0x6c, 0x31, 0x27, 0x03, 0xe1, 0x02, 0xea, 0xf9, 0x57, 0x1b, 0xfd, 0xe6, 0x9a, + 0x48, 0x57, 0xde, 0xc4, 0xd6, 0xee, 0x02, 0x1e, 0x63, 0x09, 0x5b, 0xe3, 0x26, 0xdc, 0x99, 0x45, + 0xdb, 0xf4, 0xed, 0x65, 0x36, 0xc5, 0xf9, 0x5b, 0x47, 0x07, 0xaa, 0xa3, 0xab, 0x14, 0x7d, 0x32, + 0x53, 0xfc, 0xc9, 0xfb, 0xa4, 0xb5, 0x33, 0x8f, 0xa9, 0xc9, 0xf1, 0x37, 0x81, 0x8f, 0x8b, 0xef, + 0xdf, 0xf4, 0x79, 0x79, 0x98, 0x59, 0x17, 0x7e, 0xeb, 0xbb, 0x85, 0xfd, 0x0c, 0x96, 0xf7, 0x04, + 0x3e, 0x2a, 0xbc, 0x74, 0xd3, 0x6f, 0x67, 0x84, 0x2c, 0xbf, 0xe3, 0x5b, 0xcf, 0x17, 0x75, 0xd3, + 0x40, 0x5e, 0xb2, 0x97, 0x35, 0xaf, 0x9b, 0xea, 0x11, 0x71, 0xb2, 0x7b, 0x44, 0x7e, 0xfb, 0xe1, + 0x94, 0xc9, 0xb3, 0xb4, 0xe3, 0x04, 0xf1, 0xa0, 0xf9, 0x13, 0x4a, 0x4f, 0x45, 0x6d, 0xaa, 0x0f, + 0xa0, 0x20, 0xee, 0xeb, 0x45, 0x27, 0xed, 0x36, 0x8b, 0x3e, 0xb3, 0xfe, 0x59, 0xb1, 0xb4, 0xbd, + 0x7e, 0xad, 0x39, 0xe7, 0xbb, 0x8e, 0xd7, 0x4d, 0x1d, 0x1d, 0xbd, 0xb3, 0xa6, 0x7c, 0x9f, 0xfe, + 0x1f, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x77, 0xa7, 0x3b, 0xa2, 0x0d, 0x00, 0x00, +} diff --git a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal_vtproto.pb.go b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal_vtproto.pb.go index bde87591f2..46e5ea54ae 100644 --- a/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal_vtproto.pb.go +++ b/stream-video-android-core/src/main/proto/video/sfu/signal_rpc/signal_vtproto.pb.go @@ -20,6 +20,196 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +func (m *StartNoiseCancellationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StartNoiseCancellationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StartNoiseCancellationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.SessionId) > 0 { + i -= len(m.SessionId) + copy(dAtA[i:], m.SessionId) + i = encodeVarint(dAtA, i, uint64(len(m.SessionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StartNoiseCancellationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StartNoiseCancellationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StartNoiseCancellationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Error != nil { + if marshalto, ok := interface{}(m.Error).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Error) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StopNoiseCancellationRequest) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StopNoiseCancellationRequest) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StopNoiseCancellationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if len(m.SessionId) > 0 { + i -= len(m.SessionId) + copy(dAtA[i:], m.SessionId) + i = encodeVarint(dAtA, i, uint64(len(m.SessionId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *StopNoiseCancellationResponse) MarshalVT() (dAtA []byte, err error) { + if m == nil { + return nil, nil + } + size := m.SizeVT() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBufferVT(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StopNoiseCancellationResponse) MarshalToVT(dAtA []byte) (int, error) { + size := m.SizeVT() + return m.MarshalToSizedBufferVT(dAtA[:size]) +} + +func (m *StopNoiseCancellationResponse) MarshalToSizedBufferVT(dAtA []byte) (int, error) { + if m == nil { + return 0, nil + } + i := len(dAtA) + _ = i + var l int + _ = l + if m.unknownFields != nil { + i -= len(m.unknownFields) + copy(dAtA[i:], m.unknownFields) + } + if m.Error != nil { + if marshalto, ok := interface{}(m.Error).(interface { + MarshalToSizedBufferVT([]byte) (int, error) + }); ok { + size, err := marshalto.MarshalToSizedBufferVT(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarint(dAtA, i, uint64(size)) + } else { + encoded, err := proto.Marshal(m.Error) + if err != nil { + return 0, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = encodeVarint(dAtA, i, uint64(len(encoded))) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *SendStatsRequest) MarshalVT() (dAtA []byte, err error) { if m == nil { return nil, nil @@ -995,6 +1185,82 @@ func encodeVarint(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } +func (m *StartNoiseCancellationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SessionId) + if l > 0 { + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *StartNoiseCancellationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + if size, ok := interface{}(m.Error).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Error) + } + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *StopNoiseCancellationRequest) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.SessionId) + if l > 0 { + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + +func (m *StopNoiseCancellationResponse) SizeVT() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Error != nil { + if size, ok := interface{}(m.Error).(interface { + SizeVT() int + }); ok { + l = size.SizeVT() + } else { + l = proto.Size(m.Error) + } + n += 1 + l + sov(uint64(l)) + } + if m.unknownFields != nil { + n += len(m.unknownFields) + } + return n +} + func (m *SendStatsRequest) SizeVT() (n int) { if m == nil { return 0 @@ -1401,6 +1667,362 @@ func sov(x uint64) (n int) { func soz(x uint64) (n int) { return sov(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } +func (m *StartNoiseCancellationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StartNoiseCancellationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StartNoiseCancellationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SessionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SessionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StartNoiseCancellationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StartNoiseCancellationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StartNoiseCancellationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &models.Error{} + } + if unmarshal, ok := interface{}(m.Error).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Error); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StopNoiseCancellationRequest) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StopNoiseCancellationRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StopNoiseCancellationRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SessionId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SessionId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StopNoiseCancellationResponse) UnmarshalVT(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StopNoiseCancellationResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StopNoiseCancellationResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflow + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLength + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Error == nil { + m.Error = &models.Error{} + } + if unmarshal, ok := interface{}(m.Error).(interface { + UnmarshalVT([]byte) error + }); ok { + if err := unmarshal.UnmarshalVT(dAtA[iNdEx:postIndex]); err != nil { + return err + } + } else { + if err := proto.Unmarshal(dAtA[iNdEx:postIndex], m.Error); err != nil { + return err + } + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skip(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLength + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + m.unknownFields = append(m.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *SendStatsRequest) UnmarshalVT(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/EventTest.kt b/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/EventTest.kt index 000163b463..1623f8b5a3 100644 --- a/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/EventTest.kt +++ b/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/EventTest.kt @@ -325,5 +325,9 @@ private fun io.getstream.video.android.model.User.toUserResponse(): UserResponse createdAt = OffsetDateTime.now(), updatedAt = OffsetDateTime.now(), deletedAt = OffsetDateTime.now(), + // TODO: implement these + banned = false, + language = "", + online = false, ) } diff --git a/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/base/IntegrationTestBase.kt b/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/base/IntegrationTestBase.kt index 9c56e7b499..3707bbf9b2 100644 --- a/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/base/IntegrationTestBase.kt +++ b/stream-video-android-core/src/test/kotlin/io/getstream/video/android/core/base/IntegrationTestBase.kt @@ -34,24 +34,27 @@ import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext import kotlinx.coroutines.withTimeout import org.junit.Before -import org.openapitools.client.models.AudioSettings -import org.openapitools.client.models.BackstageSettings -import org.openapitools.client.models.BroadcastSettings +import org.openapitools.client.models.AudioSettingsResponse +import org.openapitools.client.models.BackstageSettingsResponse +import org.openapitools.client.models.BroadcastSettingsResponse import org.openapitools.client.models.CallIngressResponse import org.openapitools.client.models.CallResponse import org.openapitools.client.models.CallSettingsResponse import org.openapitools.client.models.EgressResponse -import org.openapitools.client.models.GeofenceSettings -import org.openapitools.client.models.HLSSettings +import org.openapitools.client.models.GeofenceSettingsResponse +import org.openapitools.client.models.HLSSettingsResponse +import org.openapitools.client.models.LimitsSettingsResponse import org.openapitools.client.models.RTMPIngress -import org.openapitools.client.models.RecordSettings -import org.openapitools.client.models.RingSettings -import org.openapitools.client.models.ScreensharingSettings +import org.openapitools.client.models.RecordSettingsRequest +import org.openapitools.client.models.RecordSettingsResponse +import org.openapitools.client.models.RingSettingsResponse +import org.openapitools.client.models.ScreensharingSettingsResponse import org.openapitools.client.models.TargetResolution -import org.openapitools.client.models.TranscriptionSettings +import org.openapitools.client.models.ThumbnailsSettingsResponse +import org.openapitools.client.models.TranscriptionSettingsResponse import org.openapitools.client.models.UserResponse import org.openapitools.client.models.VideoEvent -import org.openapitools.client.models.VideoSettings +import org.openapitools.client.models.VideoSettingsResponse import org.threeten.bp.Clock import org.threeten.bp.OffsetDateTime import kotlin.coroutines.Continuation @@ -202,37 +205,52 @@ open class IntegrationTestBase(val connectCoordinatorWS: Boolean = true) : TestB internal fun Call.toResponse(createdBy: UserResponse): CallResponse { val now = OffsetDateTime.now(Clock.systemUTC()) val ingress = CallIngressResponse(rtmp = RTMPIngress(address = "")) - val audioSettings = AudioSettings( + val audioSettings = AudioSettingsResponse( accessRequestEnabled = true, micDefaultOn = true, opusDtxEnabled = true, redundantCodingEnabled = true, speakerDefaultOn = true, - defaultDevice = AudioSettings.DefaultDevice.Speaker, + defaultDevice = AudioSettingsResponse.DefaultDevice.Speaker, ) val settings = CallSettingsResponse( audio = audioSettings, - backstage = BackstageSettings(enabled = false), - broadcasting = BroadcastSettings( + backstage = BackstageSettingsResponse(enabled = false), + broadcasting = BroadcastSettingsResponse( enabled = false, - hls = HLSSettings(autoOn = false, enabled = false, qualityTracks = listOf("f")), + hls = HLSSettingsResponse(autoOn = false, enabled = false, qualityTracks = listOf("f")), ), - geofencing = GeofenceSettings(names = emptyList()), - recording = RecordSettings( + geofencing = GeofenceSettingsResponse(names = emptyList()), + recording = RecordSettingsResponse( audioOnly = false, - mode = RecordSettings.Mode.Available, - quality = RecordSettings.Quality.`720p`, + mode = RecordSettingsRequest.Mode.Available.value, + quality = RecordSettingsRequest.Quality.`720p`.value, ), - ring = RingSettings(autoCancelTimeoutMs = 10000, incomingCallTimeoutMs = 10000), - screensharing = ScreensharingSettings(false, false), - transcription = TranscriptionSettings("test", TranscriptionSettings.Mode.Available), - video = VideoSettings( + ring = RingSettingsResponse( + autoCancelTimeoutMs = 10000, + incomingCallTimeoutMs = 10000, + missedCallTimeoutMs = 10000, + ), + screensharing = ScreensharingSettingsResponse(false, false), + transcription = TranscriptionSettingsResponse( + "test", + emptyList(), + TranscriptionSettingsResponse.Mode.Available, + ), + video = VideoSettingsResponse( false, false, - VideoSettings.CameraFacing.Front, + VideoSettingsResponse.CameraFacing.Front, false, TargetResolution(3000000, 1024, 1280), ), + limits = LimitsSettingsResponse( + maxParticipants = 10, + maxDurationSeconds = 10, + ), + thumbnails = ThumbnailsSettingsResponse( + enabled = false, + ), ) val response = CallResponse( id = id, diff --git a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/Dialogs.kt b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/Dialogs.kt index bab35a1a15..2ea26fc253 100644 --- a/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/Dialogs.kt +++ b/stream-video-android-ui-compose/src/main/kotlin/io/getstream/video/android/compose/ui/components/base/Dialogs.kt @@ -81,7 +81,7 @@ public fun StreamDialogPositiveNegative( title: String? = null, icon: ImageVector? = null, contentText: String? = null, - positiveButton: Triple Unit>, + positiveButton: Triple Unit>? = null, negativeButton: Triple Unit>? = null, content: (@Composable () -> Unit)? = null, ): Unit = StreamDialog( @@ -134,12 +134,14 @@ public fun StreamDialogPositiveNegative( ) Spacer(modifier = Modifier.size(16.dp)) } - StreamButton( - modifier = Modifier.weight(1f), - text = positiveButton.first, - style = positiveButton.second, - onClick = positiveButton.third, - ) + positiveButton?.let { + StreamButton( + modifier = Modifier.weight(1f), + text = it.first, + style = it.second, + onClick = it.third, + ) + } } } } diff --git a/stream-video-android-ui-core/api/stream-video-android-ui-core.api b/stream-video-android-ui-core/api/stream-video-android-ui-core.api index 3f0db5a5f8..8ce32542ef 100644 --- a/stream-video-android-ui-core/api/stream-video-android-ui-core.api +++ b/stream-video-android-ui-core/api/stream-video-android-ui-core.api @@ -67,8 +67,8 @@ public abstract class io/getstream/video/android/ui/common/StreamCallActivity : public fun onResume (Lio/getstream/video/android/core/Call;)V public final fun onStop ()V public fun onStop (Lio/getstream/video/android/core/Call;)V - public fun reject (Lio/getstream/video/android/core/Call;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V - public static synthetic fun reject$default (Lio/getstream/video/android/ui/common/StreamCallActivity;Lio/getstream/video/android/core/Call;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V + public fun reject (Lio/getstream/video/android/core/Call;Lio/getstream/video/android/core/model/RejectReason;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;)V + public static synthetic fun reject$default (Lio/getstream/video/android/ui/common/StreamCallActivity;Lio/getstream/video/android/core/Call;Lio/getstream/video/android/core/model/RejectReason;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)V } public final class io/getstream/video/android/ui/common/StreamCallActivity$Companion { diff --git a/stream-video-android-ui-core/src/main/kotlin/io/getstream/video/android/ui/common/StreamCallActivity.kt b/stream-video-android-ui-core/src/main/kotlin/io/getstream/video/android/ui/common/StreamCallActivity.kt index 39871a7a84..2e317364a9 100644 --- a/stream-video-android-ui-core/src/main/kotlin/io/getstream/video/android/ui/common/StreamCallActivity.kt +++ b/stream-video-android-ui-core/src/main/kotlin/io/getstream/video/android/ui/common/StreamCallActivity.kt @@ -47,6 +47,7 @@ import io.getstream.video.android.core.call.state.ToggleCamera import io.getstream.video.android.core.call.state.ToggleMicrophone import io.getstream.video.android.core.call.state.ToggleSpeakerphone import io.getstream.video.android.core.events.ParticipantLeftEvent +import io.getstream.video.android.core.model.RejectReason import io.getstream.video.android.core.notifications.NotificationHandler import io.getstream.video.android.model.StreamCallId import io.getstream.video.android.model.streamCallId @@ -250,24 +251,25 @@ public abstract class StreamCallActivity : ComponentActivity() { action: String?, onError: (suspend (Exception) -> Unit)? = onErrorFinish, ) { + logger.d { "[onIntentAction] #ringing; action: $action, call.cid: ${call.cid}" } when (action) { NotificationHandler.ACTION_ACCEPT_CALL -> { - logger.d { "Action ACCEPT_CALL, ${call.cid}" } + logger.v { "[onIntentAction] #ringing; Action ACCEPT_CALL, ${call.cid}" } accept(call, onError = onError) } NotificationHandler.ACTION_REJECT_CALL -> { - logger.d { "Action REJECT_CALL, ${call.cid}" } + logger.v { "[onIntentAction] #ringing; Action REJECT_CALL, ${call.cid}" } reject(call, onError = onError) } NotificationHandler.ACTION_INCOMING_CALL -> { - logger.d { "Action INCOMING_CALL, ${call.cid}" } + logger.v { "[onIntentAction] #ringing; Action INCOMING_CALL, ${call.cid}" } get(call, onError = onError) } NotificationHandler.ACTION_OUTGOING_CALL -> { - logger.d { "Action OUTGOING_CALL, ${call.cid}" } + logger.v { "[onIntentAction] #ringing; Action OUTGOING_CALL, ${call.cid}" } // Extract the members and the call ID and place the outgoing call val members = intent.getStringArrayListExtra(EXTRA_MEMBERS_ARRAY) ?: emptyList() create( @@ -280,7 +282,7 @@ public abstract class StreamCallActivity : ComponentActivity() { else -> { logger.w { - "No action provided to the intent will try to join call by default [action: $action], [cid: ${call.cid}]" + "[onIntentAction] #ringing; No action provided to the intent will try to join call by default [action: $action], [cid: ${call.cid}]" } val members = intent.getStringArrayListExtra(EXTRA_MEMBERS_ARRAY) ?: emptyList() // If the call does not exist it will be created. @@ -523,8 +525,8 @@ public abstract class StreamCallActivity : ComponentActivity() { onSuccess: (suspend (Call) -> Unit)? = null, onError: (suspend (Exception) -> Unit)? = null, ) { + logger.d { "[accept] #ringing; call.cid: ${call.cid}" } acceptOrJoinNewCall(call, onSuccess, onError) { - logger.d { "Accept then join, ${call.cid}" } call.acceptThenJoin() } } @@ -541,12 +543,13 @@ public abstract class StreamCallActivity : ComponentActivity() { @StreamCallActivityDelicateApi public open fun reject( call: Call, + reason: RejectReason? = null, onSuccess: (suspend (Call) -> Unit)? = null, onError: (suspend (Exception) -> Unit)? = null, ) { - logger.d { "Reject call, ${call.cid}" } + logger.d { "[reject] #ringing; rejectReason: $reason, call.cid: ${call.cid}" } lifecycleScope.launch(Dispatchers.IO) { - val result = call.reject() + val result = call.reject(reason) result.onOutcome(call, onSuccess, onError) // Leave regardless of outcome call.leave() @@ -566,7 +569,10 @@ public abstract class StreamCallActivity : ComponentActivity() { call: Call, onSuccess: (suspend (Call) -> Unit)? = null, onError: (suspend (Exception) -> Unit)? = null, - ): Unit = reject(call, onSuccess, onError) + ) { + logger.d { "[cancel] #ringing; call.cid: ${call.cid}" } + reject(call, RejectReason.Cancel, onSuccess, onError) + } /** * Leave the call from the parameter. @@ -622,14 +628,14 @@ public abstract class StreamCallActivity : ComponentActivity() { */ @CallSuper public open fun onCallAction(call: Call, action: CallAction) { - logger.d { "======-- Action --======\n$action\n================" } + logger.i { "[onCallAction] #ringing; action: $action, call.cid: ${call.cid}" } when (action) { is LeaveCall -> { leave(call, onSuccessFinish, onErrorFinish) } is DeclineCall -> { - reject(call, onSuccessFinish, onErrorFinish) + reject(call, RejectReason.Decline, onSuccessFinish, onErrorFinish) } is CancelCall -> { diff --git a/stream-video-android-ui-xml/src/main/kotlin/io/getstream/video/android/xml/font/VideoFontsImpl.kt b/stream-video-android-ui-xml/src/main/kotlin/io/getstream/video/android/xml/font/VideoFontsImpl.kt index 01e590a0e2..eb63806c68 100644 --- a/stream-video-android-ui-xml/src/main/kotlin/io/getstream/video/android/xml/font/VideoFontsImpl.kt +++ b/stream-video-android-ui-xml/src/main/kotlin/io/getstream/video/android/xml/font/VideoFontsImpl.kt @@ -21,7 +21,7 @@ import android.graphics.Typeface import android.widget.TextView import androidx.annotation.FontRes import androidx.core.content.res.ResourcesCompat -import io.getstream.log.StreamLog +import io.getstream.log.taggedLogger import java.util.HashMap internal class VideoFontsImpl( @@ -32,7 +32,7 @@ internal class VideoFontsImpl( private val resourceMap: MutableMap = HashMap() private val pathMap: MutableMap = HashMap() - private val logger = StreamLog.getLogger("Call:VideoFonts") + private val logger by taggedLogger("Call:VideoFonts") override fun setFont(textStyle: TextStyle, textView: TextView) { if (textStyle.font != null) { From b55c0a8fb233ea481590597562492da39c81172d Mon Sep 17 00:00:00 2001 From: Aleksandar Apostolov Date: Fri, 7 Jun 2024 12:32:02 +0200 Subject: [PATCH 4/7] Allow for `.aab` files to be uploaded as artifacts (#1107) --- .github/workflows/internal-app-distribute.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/internal-app-distribute.yml b/.github/workflows/internal-app-distribute.yml index f25c4350ee..c9fc873cfb 100644 --- a/.github/workflows/internal-app-distribute.yml +++ b/.github/workflows/internal-app-distribute.yml @@ -12,11 +12,13 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 + - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: adopt java-version: 17 + - name: Prepare environment run: | echo "${{ secrets.RELEASE_KEYSTORE }}" > .sign/release.keystore.asc @@ -26,5 +28,15 @@ jobs: echo "${{ secrets.SERVICE_ACCOUNT_CREDENTIALS }}" > .sign/service-account-credentials.json.asc gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/service-account-credentials.json.asc > .sign/service-account-credentials.json echo "${{ secrets.ENV_PROPERTIES }}" > .env.properties + + - name: Build release bundle + run: ./gradlew bundleRelease --stacktrace + + - name: Upload AAB as artifact + uses: actions/upload-artifact@v2 + with: + name: app-bundle + path: app/build/outputs/bundle/release/*.aab + - name: Publish Bundle - run: bash ./gradlew publishBundle --stacktrace \ No newline at end of file + run: bash ./gradlew publishBundle --stacktrace From e3be2bfbdef715c3178b0119fdf49f70255d51f0 Mon Sep 17 00:00:00 2001 From: Aleksandar Apostolov Date: Fri, 7 Jun 2024 13:59:54 +0200 Subject: [PATCH 5/7] Pbe 2776 video update the demo app on google play (#1108) --- .github/workflows/artifact-upload.yaml | 41 +++++++++++++++++++ .github/workflows/internal-app-distribute.yml | 11 +---- 2 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/artifact-upload.yaml diff --git a/.github/workflows/artifact-upload.yaml b/.github/workflows/artifact-upload.yaml new file mode 100644 index 0000000000..021bdca27a --- /dev/null +++ b/.github/workflows/artifact-upload.yaml @@ -0,0 +1,41 @@ +name: Build and Upload AAB + +on: + push: + branches: + - develop + workflow_dispatch: + +jobs: + build: + name: Build and Upload AAB + runs-on: ubuntu-22.04 + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up JDK 17 + uses: actions/setup-java@v2 + with: + distribution: adopt + java-version: 17 + + - name: Prepare environment + run: | + echo "${{ secrets.RELEASE_KEYSTORE }}" > .sign/release.keystore.asc + gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/release.keystore.asc > .sign/release.keystore + echo "${{ secrets.RELEASE_KEYSTORE_PROPERTIES }}" > .sign/keystore.properties.asc + gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/keystore.properties.asc > .sign/keystore.properties + echo "${{ secrets.SERVICE_ACCOUNT_CREDENTIALS }}" > .sign/service-account-credentials.json.asc + gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/service-account-credentials.json.asc > .sign/service-account-credentials.json + echo "${{ secrets.ENV_PROPERTIES }}" > .env.properties + + - name: Build release bundle + run: ./gradlew bundleRelease --stacktrace + + - name: Upload AAB as artifact + uses: actions/upload-artifact@v2 + with: + name: app-bundle + path: app/build/outputs/bundle/release/*.aab diff --git a/.github/workflows/internal-app-distribute.yml b/.github/workflows/internal-app-distribute.yml index c9fc873cfb..5a7956a171 100644 --- a/.github/workflows/internal-app-distribute.yml +++ b/.github/workflows/internal-app-distribute.yml @@ -30,13 +30,4 @@ jobs: echo "${{ secrets.ENV_PROPERTIES }}" > .env.properties - name: Build release bundle - run: ./gradlew bundleRelease --stacktrace - - - name: Upload AAB as artifact - uses: actions/upload-artifact@v2 - with: - name: app-bundle - path: app/build/outputs/bundle/release/*.aab - - - name: Publish Bundle - run: bash ./gradlew publishBundle --stacktrace + run: ./gradlew bundleRelease --stacktrace \ No newline at end of file From 3c1c891f9b84224bd748779feea196a13b8160dd Mon Sep 17 00:00:00 2001 From: Aleksandar Apostolov Date: Fri, 7 Jun 2024 15:00:24 +0200 Subject: [PATCH 6/7] Use correct folder when uploading bundle as AAB (#1109) --- .github/workflows/artifact-upload.yaml | 2 +- .github/workflows/internal-app-distribute.yml | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/artifact-upload.yaml b/.github/workflows/artifact-upload.yaml index 021bdca27a..e0979be1e4 100644 --- a/.github/workflows/artifact-upload.yaml +++ b/.github/workflows/artifact-upload.yaml @@ -38,4 +38,4 @@ jobs: uses: actions/upload-artifact@v2 with: name: app-bundle - path: app/build/outputs/bundle/release/*.aab + path: demo-app/build/outputs/bundle/productionRelease/demo-app-production-release.aab diff --git a/.github/workflows/internal-app-distribute.yml b/.github/workflows/internal-app-distribute.yml index 5a7956a171..f25c4350ee 100644 --- a/.github/workflows/internal-app-distribute.yml +++ b/.github/workflows/internal-app-distribute.yml @@ -12,13 +12,11 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - - name: Set up JDK 17 uses: actions/setup-java@v2 with: distribution: adopt java-version: 17 - - name: Prepare environment run: | echo "${{ secrets.RELEASE_KEYSTORE }}" > .sign/release.keystore.asc @@ -28,6 +26,5 @@ jobs: echo "${{ secrets.SERVICE_ACCOUNT_CREDENTIALS }}" > .sign/service-account-credentials.json.asc gpg -d --passphrase "${{ secrets.PASSPHRASE }}" --batch .sign/service-account-credentials.json.asc > .sign/service-account-credentials.json echo "${{ secrets.ENV_PROPERTIES }}" > .env.properties - - - name: Build release bundle - run: ./gradlew bundleRelease --stacktrace \ No newline at end of file + - name: Publish Bundle + run: bash ./gradlew publishBundle --stacktrace \ No newline at end of file From 257c5a4659df6e652adbdbd033e4cad6cbb9c9e9 Mon Sep 17 00:00:00 2001 From: Aleksandar Apostolov Date: Fri, 7 Jun 2024 15:42:50 +0200 Subject: [PATCH 7/7] Prepare release 1.0.5 (#1110) --- .../main/kotlin/io/getstream/video/android/Configuration.kt | 4 ++-- docusaurus/docs/Android/02-tutorials/01-video-calling.mdx | 2 +- docusaurus/docs/Android/02-tutorials/02-audio-room.mdx | 2 +- docusaurus/docs/Android/02-tutorials/03-livestream.mdx | 2 +- docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt b/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt index a8ded3fb58..d8ef9bce13 100644 --- a/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt +++ b/buildSrc/src/main/kotlin/io/getstream/video/android/Configuration.kt @@ -6,9 +6,9 @@ object Configuration { const val minSdk = 24 const val majorVersion = 1 const val minorVersion = 0 - const val patchVersion = 4 + const val patchVersion = 5 const val versionName = "$majorVersion.$minorVersion.$patchVersion" - const val versionCode = 27 + const val versionCode = 28 const val snapshotVersionName = "$majorVersion.$minorVersion.${patchVersion + 1}-SNAPSHOT" const val artifactGroup = "io.getstream" const val streamVideoCallGooglePlayVersion = "1.1.2" diff --git a/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx b/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx index af64743197..8f6a072b27 100644 --- a/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx +++ b/docusaurus/docs/Android/02-tutorials/01-video-calling.mdx @@ -31,7 +31,7 @@ If you're new to android, note that there are 2 `build.gradle` files, you want t ```kotlin dependencies { // Stream Video Compose SDK - implementation("io.getstream:stream-video-android-ui-compose:1.0.4") + implementation("io.getstream:stream-video-android-ui-compose:1.0.5") // Optionally add Jetpack Compose if Android studio didn't automatically include them implementation(platform("androidx.compose:compose-bom:2023.08.00")) diff --git a/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx b/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx index 9a83f08e39..a5f6505279 100644 --- a/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx +++ b/docusaurus/docs/Android/02-tutorials/02-audio-room.mdx @@ -35,7 +35,7 @@ If you're new to android, note that there are 2 `build.gradle` files, you want t ```groovy dependencies { // Stream Video Compose SDK - implementation("io.getstream:stream-video-android-ui-compose:1.0.4") + implementation("io.getstream:stream-video-android-ui-compose:1.0.5") // Jetpack Compose (optional/ android studio typically adds them when you create a new project) implementation(platform("androidx.compose:compose-bom:2023.08.00")) diff --git a/docusaurus/docs/Android/02-tutorials/03-livestream.mdx b/docusaurus/docs/Android/02-tutorials/03-livestream.mdx index b410a4b3fd..5e74c36855 100644 --- a/docusaurus/docs/Android/02-tutorials/03-livestream.mdx +++ b/docusaurus/docs/Android/02-tutorials/03-livestream.mdx @@ -35,7 +35,7 @@ If you're new to android, note that there are 2 `build.gradle` files, you want t ```kotlin dependencies { // Stream Video Compose SDK - implementation("io.getstream:stream-video-android-ui-compose:1.0.4") + implementation("io.getstream:stream-video-android-ui-compose:1.0.5") // Jetpack Compose (optional/ android studio typically adds them when you create a new project) implementation(platform("androidx.compose:compose-bom:2023.08.00")) diff --git a/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx b/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx index bc22beecaa..81592f3167 100644 --- a/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx +++ b/docusaurus/docs/Android/06-advanced/07-chat-with-video.mdx @@ -31,7 +31,7 @@ Let the project sync. It should have all the dependencies required for you to fi ```groovy dependencies { // Stream Video Compose SDK - implementation("io.getstream:stream-video-android-ui-compose:1.0.4") + implementation("io.getstream:stream-video-android-ui-compose:1.0.5") // Stream Chat implementation(libs.stream.chat.compose)