commonMain.net.folivo.trixnity.clientserverapi.model.authentication.Login.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of trixnity-clientserverapi-model Show documentation
Show all versions of trixnity-clientserverapi-model Show documentation
Multiplatform Kotlin SDK for matrix-protocol
package net.folivo.trixnity.clientserverapi.model.authentication
import io.ktor.resources.*
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import net.folivo.trixnity.core.HttpMethod
import net.folivo.trixnity.core.HttpMethodType.POST
import net.folivo.trixnity.core.MatrixEndpoint
import net.folivo.trixnity.core.WithoutAuth
import net.folivo.trixnity.core.model.UserId
/**
* @see matrix spec
*/
@Serializable
@Resource("/_matrix/client/v3/login")
@HttpMethod(POST)
@WithoutAuth
object Login : MatrixEndpoint {
@Serializable
data class Request(
@SerialName("type")
val type: String,
@SerialName("identifier")
val identifier: IdentifierType? = null,
@SerialName("password")
val password: String? = null,
@SerialName("refresh_token")
val refreshToken: Boolean? = null,
@SerialName("token")
val token: String? = null,
@SerialName("device_id")
val deviceId: String? = null,
@SerialName("initial_device_display_name")
val initialDeviceDisplayName: String? = null
)
@Serializable
data class Response(
@SerialName("user_id")
val userId: UserId,
@SerialName("access_token")
val accessToken: String,
@SerialName("expires_in_ms")
val accessTokenExpiresInMs: Long? = null,
@SerialName("refresh_token")
val refreshToken: String? = null,
@SerialName("device_id")
val deviceId: String,
@SerialName("well_known")
val discoveryInformation: DiscoveryInformation? = null
)
}