ruma_client_api/room/
upgrade_room.rs1pub mod v3 {
6 use ruma_common::{
11 api::{request, response, Metadata},
12 metadata, OwnedRoomId, OwnedUserId, RoomVersionId,
13 };
14
15 const METADATA: Metadata = metadata! {
16 method: POST,
17 rate_limited: false,
18 authentication: AccessToken,
19 history: {
20 1.0 => "/_matrix/client/r0/rooms/{room_id}/upgrade",
21 1.1 => "/_matrix/client/v3/rooms/{room_id}/upgrade",
22 }
23 };
24
25 #[request(error = crate::Error)]
27 pub struct Request {
28 #[serde(default, skip_serializing_if = "<[_]>::is_empty")]
31 pub additional_creators: Vec<OwnedUserId>,
32
33 #[ruma_api(path)]
35 pub room_id: OwnedRoomId,
36
37 pub new_version: RoomVersionId,
39 }
40
41 #[response(error = crate::Error)]
43 pub struct Response {
44 pub replacement_room: OwnedRoomId,
46 }
47
48 impl Request {
49 pub fn new(room_id: OwnedRoomId, new_version: RoomVersionId) -> Self {
51 Self { room_id, new_version, additional_creators: Vec::new() }
52 }
53 }
54
55 impl Response {
56 pub fn new(replacement_room: OwnedRoomId) -> Self {
58 Self { replacement_room }
59 }
60 }
61}