commonMain.net.folivo.trixnity.clientserverapi.model.keys.GetKeys.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.keys
import io.ktor.resources.*
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonElement
import net.folivo.trixnity.core.HttpMethod
import net.folivo.trixnity.core.HttpMethodType.POST
import net.folivo.trixnity.core.MatrixEndpoint
import net.folivo.trixnity.core.model.UserId
import net.folivo.trixnity.core.model.keys.SignedCrossSigningKeys
import net.folivo.trixnity.core.model.keys.SignedDeviceKeys
import net.folivo.trixnity.core.serialization.events.EventContentSerializerMappings
/**
* @see matrix spec
*/
@Serializable
@Resource("/_matrix/client/v3/keys/query")
@HttpMethod(POST)
data class GetKeys(
@SerialName("user_id") val asUserId: UserId? = null
) : MatrixEndpoint {
override fun responseSerializerBuilder(
mappings: EventContentSerializerMappings,
json: Json,
value: Response?
): KSerializer = CatchingGetKeysResponseSerializer
@Serializable
data class Request(
@SerialName("device_keys")
val keysFrom: Map>,
@SerialName("timeout")
val timeout: Long?,
)
@Serializable
data class Response(
@SerialName("failures")
val failures: Map?,
@SerialName("device_keys")
val deviceKeys: Map>?,
@SerialName("master_keys")
val masterKeys: Map?,
@SerialName("self_signing_keys")
val selfSigningKeys: Map?,
@SerialName("user_signing_keys")
val userSigningKeys: Map?,
)
}