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}