ruma_client_api/push/delete_pushrule.rs
1//! `DELETE /_matrix/client/*/pushrules/global/{kind}/{ruleId}`
2//!
3//! This endpoint removes the push rule defined in the path.
4
5pub mod v3 {
6 //! `/v3/` ([spec])
7 //!
8 //! [spec]: https://spec.matrix.org/v1.18/client-server-api/#delete_matrixclientv3pushrulesglobalkindruleid
9
10 use ruma_common::{
11 api::{auth_scheme::AccessToken, request, response},
12 metadata,
13 };
14
15 use crate::push::RuleKind;
16
17 metadata! {
18 method: DELETE,
19 rate_limited: false,
20 authentication: AccessToken,
21 history: {
22 1.0 => "/_matrix/client/r0/pushrules/global/{kind}/{rule_id}",
23 1.1 => "/_matrix/client/v3/pushrules/global/{kind}/{rule_id}",
24 }
25 }
26
27 /// Request type for the `delete_pushrule` endpoint.
28 #[request]
29 pub struct Request {
30 /// The kind of rule
31 #[ruma_api(path)]
32 pub kind: RuleKind,
33
34 /// The identifier for the rule.
35 #[ruma_api(path)]
36 pub rule_id: String,
37 }
38
39 /// Response type for the `delete_pushrule` endpoint.
40 #[response]
41 #[derive(Default)]
42 pub struct Response {}
43
44 impl Request {
45 /// Creates a new `Request` with the given kind and rule ID.
46 pub fn new(kind: RuleKind, rule_id: String) -> Self {
47 Self { kind, rule_id }
48 }
49 }
50
51 impl Response {
52 /// Creates an empty `Response`.
53 pub fn new() -> Self {
54 Self {}
55 }
56 }
57}