commonMain.net.folivo.trixnity.clientserverapi.model.rooms.JoinRoom.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.rooms
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.model.RoomId
import net.folivo.trixnity.core.model.UserId
import net.folivo.trixnity.core.model.keys.Signed
/**
* @see matrix spec
*/
@Serializable
@Resource("/_matrix/client/v3/join/{roomIdOrRoomAliasId}")
@HttpMethod(POST)
data class JoinRoom(
@SerialName("roomIdOrRoomAliasId") val roomIdOrRoomAliasId: String,
@SerialName("server_name") val serverNames: Set? = null,
@SerialName("user_id") val asUserId: UserId? = null
) : MatrixEndpoint {
@Serializable
data class Request(
@SerialName("reason") val reason: String?,
@SerialName("third_party_signed") val thirdPartySigned: Signed?,
) {
@Serializable
data class ThirdParty(
@SerialName("sender") val sender: UserId,
@SerialName("mxid") val mxid: UserId,
@SerialName("token") val token: String,
)
}
@Serializable
data class Response(
@SerialName("room_id") val roomId: RoomId
)
}