ruma_federation_api/membership/create_leave_event/
v1.rs1use ruma_common::{
6 OwnedEventId, OwnedRoomId,
7 api::{request, response},
8 metadata,
9};
10use serde::{Deserialize, Serialize};
11use serde_json::value::RawValue as RawJsonValue;
12
13use crate::authentication::ServerSignatures;
14
15metadata! {
16 method: PUT,
17 rate_limited: false,
18 authentication: ServerSignatures,
19 path: "/_matrix/federation/v1/send_leave/{room_id}/{event_id}",
20}
21
22#[request]
24#[deprecated = "Since Matrix Server-Server API r0.1.4. Use the v2 endpoint instead."]
25pub struct Request {
26 #[ruma_api(path)]
30 pub room_id: OwnedRoomId,
31
32 #[ruma_api(path)]
34 pub event_id: OwnedEventId,
35
36 #[ruma_api(body)]
38 pub pdu: Box<RawJsonValue>,
39}
40
41#[response]
43#[derive(Default)]
44#[deprecated = "Since Matrix Server-Server API r0.1.4. Use the v2 endpoint instead."]
45pub struct Response {
46 #[ruma_api(body)]
50 #[serde(with = "crate::serde::v1_pdu")]
51 pub empty: Empty,
52}
53
54#[allow(deprecated)]
55impl Request {
56 pub fn new(room_id: OwnedRoomId, event_id: OwnedEventId, pdu: Box<RawJsonValue>) -> Self {
58 Self { room_id, event_id, pdu }
59 }
60}
61
62#[allow(deprecated)]
63impl Response {
64 pub fn new() -> Self {
66 Self { empty: Empty {} }
67 }
68}
69
70#[derive(Clone, Debug, Default, Deserialize, Serialize)]
72#[allow(clippy::exhaustive_structs)]
73pub struct Empty {}
74
75impl Empty {
76 pub fn new() -> Self {
78 Self {}
79 }
80}