jacquard_api/tools_ozone/safelink/
query_rules.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: tools.ozone.safelink.queryRules
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[jacquard_derive::lexicon]
9#[derive(
10    serde::Serialize,
11    serde::Deserialize,
12    Debug,
13    Clone,
14    PartialEq,
15    Eq,
16    bon::Builder
17)]
18#[serde(rename_all = "camelCase")]
19#[builder(start_fn = new)]
20pub struct QueryRules<'a> {
21    ///Filter by action types
22    #[serde(skip_serializing_if = "std::option::Option::is_none")]
23    #[serde(borrow)]
24    pub actions: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
25    ///Filter by rule creator
26    #[serde(skip_serializing_if = "std::option::Option::is_none")]
27    #[serde(borrow)]
28    pub created_by: std::option::Option<jacquard_common::types::string::Did<'a>>,
29    ///Cursor for pagination
30    #[serde(skip_serializing_if = "std::option::Option::is_none")]
31    #[serde(borrow)]
32    #[builder(into)]
33    pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
34    ///Maximum number of results to return
35    #[serde(skip_serializing_if = "std::option::Option::is_none")]
36    pub limit: std::option::Option<i64>,
37    ///Filter by pattern type
38    #[serde(skip_serializing_if = "std::option::Option::is_none")]
39    #[serde(borrow)]
40    #[builder(into)]
41    pub pattern_type: std::option::Option<jacquard_common::CowStr<'a>>,
42    ///Filter by reason type
43    #[serde(skip_serializing_if = "std::option::Option::is_none")]
44    #[serde(borrow)]
45    #[builder(into)]
46    pub reason: std::option::Option<jacquard_common::CowStr<'a>>,
47    ///Sort direction
48    #[serde(skip_serializing_if = "std::option::Option::is_none")]
49    #[serde(borrow)]
50    #[builder(into)]
51    pub sort_direction: std::option::Option<jacquard_common::CowStr<'a>>,
52    ///Filter by specific URLs or domains
53    #[serde(skip_serializing_if = "std::option::Option::is_none")]
54    #[serde(borrow)]
55    pub urls: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
56    #[serde(flatten)]
57    #[serde(borrow)]
58    #[builder(default)]
59    pub extra_data: ::std::collections::BTreeMap<
60        ::jacquard_common::smol_str::SmolStr,
61        ::jacquard_common::types::value::Data<'a>,
62    >,
63}
64
65impl jacquard_common::IntoStatic for QueryRules<'_> {
66    type Output = QueryRules<'static>;
67    fn into_static(self) -> Self::Output {
68        QueryRules {
69            actions: self.actions.into_static(),
70            created_by: self.created_by.into_static(),
71            cursor: self.cursor.into_static(),
72            limit: self.limit.into_static(),
73            pattern_type: self.pattern_type.into_static(),
74            reason: self.reason.into_static(),
75            sort_direction: self.sort_direction.into_static(),
76            urls: self.urls.into_static(),
77            extra_data: self.extra_data.into_static(),
78        }
79    }
80}
81
82#[jacquard_derive::lexicon]
83#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
84#[serde(rename_all = "camelCase")]
85pub struct QueryRulesOutput<'a> {
86    ///Next cursor for pagination. Only present if there are more results.
87    #[serde(skip_serializing_if = "std::option::Option::is_none")]
88    #[serde(borrow)]
89    pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
90    #[serde(borrow)]
91    pub rules: Vec<crate::tools_ozone::safelink::UrlRule<'a>>,
92}
93
94impl jacquard_common::IntoStatic for QueryRulesOutput<'_> {
95    type Output = QueryRulesOutput<'static>;
96    fn into_static(self) -> Self::Output {
97        QueryRulesOutput {
98            cursor: self.cursor.into_static(),
99            rules: self.rules.into_static(),
100            extra_data: self.extra_data.into_static(),
101        }
102    }
103}
104
105impl jacquard_common::types::xrpc::XrpcRequest for QueryRules<'_> {
106    const NSID: &'static str = "tools.ozone.safelink.queryRules";
107    const METHOD: jacquard_common::types::xrpc::XrpcMethod = jacquard_common::types::xrpc::XrpcMethod::Procedure(
108        "application/json",
109    );
110    const OUTPUT_ENCODING: &'static str = "application/json";
111    type Output<'de> = QueryRulesOutput<'de>;
112    type Err<'de> = jacquard_common::types::xrpc::GenericError<'de>;
113}