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