jacquard_api/com_atproto/server/
get_service_auth.rs1#[derive(
9 serde::Serialize,
10 serde::Deserialize,
11 Debug,
12 Clone,
13 PartialEq,
14 Eq,
15 jacquard_derive::IntoStatic
16)]
17#[serde(rename_all = "camelCase")]
18pub struct GetServiceAuth<'a> {
19 #[serde(borrow)]
20 pub aud: jacquard_common::types::string::Did<'a>,
21 #[serde(skip_serializing_if = "std::option::Option::is_none")]
22 pub exp: std::option::Option<i64>,
23 #[serde(skip_serializing_if = "std::option::Option::is_none")]
24 #[serde(borrow)]
25 pub lxm: std::option::Option<jacquard_common::types::string::Nsid<'a>>,
26}
27
28pub mod get_service_auth_state {
29
30 pub use crate::builder_types::{Set, Unset, IsSet, IsUnset};
31 #[allow(unused)]
32 use ::core::marker::PhantomData;
33 mod sealed {
34 pub trait Sealed {}
35 }
36 pub trait State: sealed::Sealed {
38 type Aud;
39 }
40 pub struct Empty(());
42 impl sealed::Sealed for Empty {}
43 impl State for Empty {
44 type Aud = Unset;
45 }
46 pub struct SetAud<S: State = Empty>(PhantomData<fn() -> S>);
48 impl<S: State> sealed::Sealed for SetAud<S> {}
49 impl<S: State> State for SetAud<S> {
50 type Aud = Set<members::aud>;
51 }
52 #[allow(non_camel_case_types)]
54 pub mod members {
55 pub struct aud(());
57 }
58}
59
60pub struct GetServiceAuthBuilder<'a, S: get_service_auth_state::State> {
62 _phantom_state: ::core::marker::PhantomData<fn() -> S>,
63 __unsafe_private_named: (
64 ::core::option::Option<jacquard_common::types::string::Did<'a>>,
65 ::core::option::Option<i64>,
66 ::core::option::Option<jacquard_common::types::string::Nsid<'a>>,
67 ),
68 _phantom: ::core::marker::PhantomData<&'a ()>,
69}
70
71impl<'a> GetServiceAuth<'a> {
72 pub fn new() -> GetServiceAuthBuilder<'a, get_service_auth_state::Empty> {
74 GetServiceAuthBuilder::new()
75 }
76}
77
78impl<'a> GetServiceAuthBuilder<'a, get_service_auth_state::Empty> {
79 pub fn new() -> Self {
81 GetServiceAuthBuilder {
82 _phantom_state: ::core::marker::PhantomData,
83 __unsafe_private_named: (None, None, None),
84 _phantom: ::core::marker::PhantomData,
85 }
86 }
87}
88
89impl<'a, S> GetServiceAuthBuilder<'a, S>
90where
91 S: get_service_auth_state::State,
92 S::Aud: get_service_auth_state::IsUnset,
93{
94 pub fn aud(
96 mut self,
97 value: impl Into<jacquard_common::types::string::Did<'a>>,
98 ) -> GetServiceAuthBuilder<'a, get_service_auth_state::SetAud<S>> {
99 self.__unsafe_private_named.0 = ::core::option::Option::Some(value.into());
100 GetServiceAuthBuilder {
101 _phantom_state: ::core::marker::PhantomData,
102 __unsafe_private_named: self.__unsafe_private_named,
103 _phantom: ::core::marker::PhantomData,
104 }
105 }
106}
107
108impl<'a, S: get_service_auth_state::State> GetServiceAuthBuilder<'a, S> {
109 pub fn exp(mut self, value: impl Into<Option<i64>>) -> Self {
111 self.__unsafe_private_named.1 = value.into();
112 self
113 }
114 pub fn maybe_exp(mut self, value: Option<i64>) -> Self {
116 self.__unsafe_private_named.1 = value;
117 self
118 }
119}
120
121impl<'a, S: get_service_auth_state::State> GetServiceAuthBuilder<'a, S> {
122 pub fn lxm(
124 mut self,
125 value: impl Into<Option<jacquard_common::types::string::Nsid<'a>>>,
126 ) -> Self {
127 self.__unsafe_private_named.2 = value.into();
128 self
129 }
130 pub fn maybe_lxm(
132 mut self,
133 value: Option<jacquard_common::types::string::Nsid<'a>>,
134 ) -> Self {
135 self.__unsafe_private_named.2 = value;
136 self
137 }
138}
139
140impl<'a, S> GetServiceAuthBuilder<'a, S>
141where
142 S: get_service_auth_state::State,
143 S::Aud: get_service_auth_state::IsSet,
144{
145 pub fn build(self) -> GetServiceAuth<'a> {
147 GetServiceAuth {
148 aud: self.__unsafe_private_named.0.unwrap(),
149 exp: self.__unsafe_private_named.1,
150 lxm: self.__unsafe_private_named.2,
151 }
152 }
153}
154
155#[jacquard_derive::lexicon]
156#[derive(
157 serde::Serialize,
158 serde::Deserialize,
159 Debug,
160 Clone,
161 PartialEq,
162 Eq,
163 jacquard_derive::IntoStatic,
164 Default
165)]
166#[serde(rename_all = "camelCase")]
167pub struct GetServiceAuthOutput<'a> {
168 #[serde(borrow)]
169 pub token: jacquard_common::CowStr<'a>,
170}
171
172#[jacquard_derive::open_union]
173#[derive(
174 serde::Serialize,
175 serde::Deserialize,
176 Debug,
177 Clone,
178 PartialEq,
179 Eq,
180 thiserror::Error,
181 miette::Diagnostic,
182 jacquard_derive::IntoStatic
183)]
184#[serde(tag = "error", content = "message")]
185#[serde(bound(deserialize = "'de: 'a"))]
186pub enum GetServiceAuthError<'a> {
187 #[serde(rename = "BadExpiration")]
189 BadExpiration(std::option::Option<String>),
190}
191
192impl std::fmt::Display for GetServiceAuthError<'_> {
193 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
194 match self {
195 Self::BadExpiration(msg) => {
196 write!(f, "BadExpiration")?;
197 if let Some(msg) = msg {
198 write!(f, ": {}", msg)?;
199 }
200 Ok(())
201 }
202 Self::Unknown(err) => write!(f, "Unknown error: {:?}", err),
203 }
204 }
205}
206
207pub struct GetServiceAuthResponse;
210impl jacquard_common::xrpc::XrpcResp for GetServiceAuthResponse {
211 const NSID: &'static str = "com.atproto.server.getServiceAuth";
212 const ENCODING: &'static str = "application/json";
213 type Output<'de> = GetServiceAuthOutput<'de>;
214 type Err<'de> = GetServiceAuthError<'de>;
215}
216
217impl<'a> jacquard_common::xrpc::XrpcRequest for GetServiceAuth<'a> {
218 const NSID: &'static str = "com.atproto.server.getServiceAuth";
219 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
220 type Response = GetServiceAuthResponse;
221}
222
223pub struct GetServiceAuthRequest;
226impl jacquard_common::xrpc::XrpcEndpoint for GetServiceAuthRequest {
227 const PATH: &'static str = "/xrpc/com.atproto.server.getServiceAuth";
228 const METHOD: jacquard_common::xrpc::XrpcMethod = jacquard_common::xrpc::XrpcMethod::Query;
229 type Request<'de> = GetServiceAuth<'de>;
230 type Response = GetServiceAuthResponse;
231}