atproto blogging
1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: com.atproto.server.describeServer
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 jacquard_derive::IntoStatic,
17 Default
18)]
19#[serde(rename_all = "camelCase")]
20pub struct Contact<'a> {
21 #[serde(skip_serializing_if = "std::option::Option::is_none")]
22 #[serde(borrow)]
23 pub email: std::option::Option<jacquard_common::CowStr<'a>>,
24}
25
26fn lexicon_doc_com_atproto_server_describeServer() -> ::jacquard_lexicon::lexicon::LexiconDoc<
27 'static,
28> {
29 ::jacquard_lexicon::lexicon::LexiconDoc {
30 lexicon: ::jacquard_lexicon::lexicon::Lexicon::Lexicon1,
31 id: ::jacquard_common::CowStr::new_static("com.atproto.server.describeServer"),
32 revision: None,
33 description: None,
34 defs: {
35 let mut map = ::alloc::collections::BTreeMap::new();
36 map.insert(
37 ::jacquard_common::smol_str::SmolStr::new_static("contact"),
38 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
39 description: None,
40 required: None,
41 nullable: None,
42 properties: {
43 #[allow(unused_mut)]
44 let mut map = ::alloc::collections::BTreeMap::new();
45 map.insert(
46 ::jacquard_common::smol_str::SmolStr::new_static("email"),
47 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
48 description: None,
49 format: None,
50 default: None,
51 min_length: None,
52 max_length: None,
53 min_graphemes: None,
54 max_graphemes: None,
55 r#enum: None,
56 r#const: None,
57 known_values: None,
58 }),
59 );
60 map
61 },
62 }),
63 );
64 map.insert(
65 ::jacquard_common::smol_str::SmolStr::new_static("links"),
66 ::jacquard_lexicon::lexicon::LexUserType::Object(::jacquard_lexicon::lexicon::LexObject {
67 description: None,
68 required: None,
69 nullable: None,
70 properties: {
71 #[allow(unused_mut)]
72 let mut map = ::alloc::collections::BTreeMap::new();
73 map.insert(
74 ::jacquard_common::smol_str::SmolStr::new_static(
75 "privacyPolicy",
76 ),
77 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
78 description: None,
79 format: Some(
80 ::jacquard_lexicon::lexicon::LexStringFormat::Uri,
81 ),
82 default: None,
83 min_length: None,
84 max_length: None,
85 min_graphemes: None,
86 max_graphemes: None,
87 r#enum: None,
88 r#const: None,
89 known_values: None,
90 }),
91 );
92 map.insert(
93 ::jacquard_common::smol_str::SmolStr::new_static(
94 "termsOfService",
95 ),
96 ::jacquard_lexicon::lexicon::LexObjectProperty::String(::jacquard_lexicon::lexicon::LexString {
97 description: None,
98 format: Some(
99 ::jacquard_lexicon::lexicon::LexStringFormat::Uri,
100 ),
101 default: None,
102 min_length: None,
103 max_length: None,
104 min_graphemes: None,
105 max_graphemes: None,
106 r#enum: None,
107 r#const: None,
108 known_values: None,
109 }),
110 );
111 map
112 },
113 }),
114 );
115 map.insert(
116 ::jacquard_common::smol_str::SmolStr::new_static("main"),
117 ::jacquard_lexicon::lexicon::LexUserType::XrpcQuery(::jacquard_lexicon::lexicon::LexXrpcQuery {
118 description: None,
119 parameters: None,
120 output: None,
121 errors: None,
122 }),
123 );
124 map
125 },
126 }
127}
128
129impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Contact<'a> {
130 fn nsid() -> &'static str {
131 "com.atproto.server.describeServer"
132 }
133 fn def_name() -> &'static str {
134 "contact"
135 }
136 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
137 lexicon_doc_com_atproto_server_describeServer()
138 }
139 fn validate(
140 &self,
141 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
142 Ok(())
143 }
144}
145
146#[jacquard_derive::lexicon]
147#[derive(
148 serde::Serialize,
149 serde::Deserialize,
150 Debug,
151 Clone,
152 PartialEq,
153 Eq,
154 jacquard_derive::IntoStatic,
155 Default
156)]
157#[serde(rename_all = "camelCase")]
158pub struct Links<'a> {
159 #[serde(skip_serializing_if = "std::option::Option::is_none")]
160 #[serde(borrow)]
161 pub privacy_policy: std::option::Option<jacquard_common::types::string::Uri<'a>>,
162 #[serde(skip_serializing_if = "std::option::Option::is_none")]
163 #[serde(borrow)]
164 pub terms_of_service: std::option::Option<jacquard_common::types::string::Uri<'a>>,
165}
166
167impl<'a> ::jacquard_lexicon::schema::LexiconSchema for Links<'a> {
168 fn nsid() -> &'static str {
169 "com.atproto.server.describeServer"
170 }
171 fn def_name() -> &'static str {
172 "links"
173 }
174 fn lexicon_doc() -> ::jacquard_lexicon::lexicon::LexiconDoc<'static> {
175 lexicon_doc_com_atproto_server_describeServer()
176 }
177 fn validate(
178 &self,
179 ) -> ::core::result::Result<(), ::jacquard_lexicon::validation::ConstraintError> {
180 Ok(())
181 }
182}
183
184#[jacquard_derive::lexicon]
185#[derive(
186 serde::Serialize,
187 serde::Deserialize,
188 Debug,
189 Clone,
190 PartialEq,
191 Eq,
192 jacquard_derive::IntoStatic
193)]
194#[serde(rename_all = "camelCase")]
195pub struct DescribeServerOutput<'a> {
196 /// List of domain suffixes that can be used in account handles.
197 #[serde(borrow)]
198 pub available_user_domains: Vec<jacquard_common::CowStr<'a>>,
199 /// Contact information
200 #[serde(skip_serializing_if = "std::option::Option::is_none")]
201 #[serde(borrow)]
202 pub contact: std::option::Option<
203 crate::com_atproto::server::describe_server::Contact<'a>,
204 >,
205 #[serde(borrow)]
206 pub did: jacquard_common::types::string::Did<'a>,
207 /// If true, an invite code must be supplied to create an account on this instance.
208 #[serde(skip_serializing_if = "std::option::Option::is_none")]
209 pub invite_code_required: std::option::Option<bool>,
210 /// URLs of service policy documents.
211 #[serde(skip_serializing_if = "std::option::Option::is_none")]
212 #[serde(borrow)]
213 pub links: std::option::Option<
214 crate::com_atproto::server::describe_server::Links<'a>,
215 >,
216 /// If true, a phone verification token must be supplied to create an account on this instance.
217 #[serde(skip_serializing_if = "std::option::Option::is_none")]
218 pub phone_verification_required: std::option::Option<bool>,
219}
220
221/// XRPC request marker type
222#[derive(
223 Debug,
224 Clone,
225 Copy,
226 PartialEq,
227 Eq,
228 serde::Serialize,
229 serde::Deserialize,
230 jacquard_derive::IntoStatic
231)]
232pub struct DescribeServer;
233/// Response type for
234///com.atproto.server.describeServer
235pub struct DescribeServerResponse;
236impl jacquard_common::xrpc::XrpcResp for DescribeServerResponse {
237 const NSID: &'static str = "com.atproto.server.describeServer";
238 const ENCODING: &'static str = "application/json";
239 type Output<'de> = DescribeServerOutput<'de>;
240 type Err<'de> = jacquard_common::xrpc::GenericError<'de>;
241}
242
243impl jacquard_common::xrpc::XrpcRequest for DescribeServer {
244 const NSID: &'static str = "com.atproto.server.describeServer";
245 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
246 type Response = DescribeServerResponse;
247}
248
249/// Endpoint type for
250///com.atproto.server.describeServer
251pub struct DescribeServerRequest;
252impl jacquard_common::xrpc::XrpcEndpoint for DescribeServerRequest {
253 const PATH: &'static str = "/xrpc/com.atproto.server.describeServer";
254 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
255 type Request<'de> = DescribeServer;
256 type Response = DescribeServerResponse;
257}